Hashcat 크래킹 세션 관리하기

Kali LinuxBeginner
지금 연습하기

소개

Hashcat 은 강력하고 인기 있는 비밀번호 복구 도구입니다. 비밀번호 크래킹은 매우 시간이 많이 소요되는 프로세스일 수 있으며, 때로는 몇 시간, 며칠 또는 몇 주가 걸리기도 합니다. 이 때문에 이러한 장기 실행 작업을 관리하는 방법을 아는 것이 중요합니다. 시스템 리소스를 확보하기 위해 작업을 일시 중지해야 할 수도 있고, 예기치 않은 시스템 종료에 직면할 수도 있습니다. 적절한 세션 관리 없이는 전체 프로세스를 처음부터 다시 시작해야 하므로 귀중한 시간을 낭비하게 됩니다.

이 실습에서는 Hashcat 의 세션 관리 기본 사항을 배우게 됩니다. 이름이 지정된 세션을 시작하고, 대화식으로 일시 중지 및 재개하며, Hashcat 의 내장 세션 관리 기능을 사용하여 중지 및 복원하는 연습을 하게 됩니다. 이러한 기술은 Hashcat 의 모든 실용적인 사용에 필수적입니다.

장기 크래킹 세션 시작하기

이 단계에서는 비밀번호 크래킹 작업을 시작하고 특정 세션 이름을 지정합니다. 세션에 이름을 지정하는 것은 관리를 위한 첫 번째이자 가장 중요한 단계입니다. 이는 Hashcat 이 이 특정 작업의 진행 상황을 추적하고 저장하도록 지시하기 때문입니다.

기본 사전 공격을 사용합니다. 명령 구조는 여러 플래그를 사용합니다.

  • -m 0: 해시 유형을 지정합니다. 0은 MD5 에 해당합니다.
  • -a 0: 공격 모드를 지정합니다. 0은 Straight (사전) 공격에 해당합니다.
  • --session <name>: 현재 세션에 이름을 할당합니다. 이는 일시 중지 및 복원에 중요합니다.

먼저, 설정 스크립트가 필요한 파일 (hashes.txtwordlist.txt) 을 생성한 ~/project 디렉토리에 있는지 확인하십시오.

이제 my_session이라는 크래킹 세션을 시작하려면 다음 명령을 실행하십시오.

hashcat -m 0 -a 0 hashes.txt wordlist.txt --session my_session

명령을 실행한 후 Hashcat 이 초기화되고 터미널에 상태 화면이 표시됩니다. 이 화면은 크래킹 진행 상황에 대한 실시간 정보를 제공합니다.

hashcat (v6.2.x) starting...

...

Session..........: my_session
Status...........: Running
Hash.Name........: MD5
Hash.Target......: 5f4dcc3b5aa765d61d8327deb882cf99
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#*.........: ...
...
Progress.........: 123456/1000001 (12.34%)
...

[s]tatus [p]ause [r]esume [b]ypass [q]uit =>

세션 이름이 my_session임을 확인하는 Session..........: my_session 줄에 주목하십시오. StatusRunning이고 Progress 막대가 진행되고 있습니다. 다음 단계로 진행하기 전에 몇 분 동안 프로세스를 실행하십시오.

'p' 키를 눌러 세션 일시 중지하기

이 단계에서는 활성 Hashcat 세션을 일시 중지하는 방법을 배우게 됩니다. 크래킹 진행 상황을 잃지 않고 컴퓨터 리소스를 다른 작업에 일시적으로 할당해야 하는 경우 유용합니다.

Hashcat 은 상태 화면 하단에 대화형 메뉴를 제공합니다. 사용 가능한 옵션인 [s]tatus [p]ause [r]esume [b]ypass [q]uit를 볼 수 있습니다.

세션을 일시 중지하려면 Hashcat 터미널 창이 활성화된 상태에서 키보드의 p 키를 누르기만 하면 됩니다. Enter 키를 누를 필요는 없습니다.

지금 p를 누르십시오.

화면의 Status 필드가 즉시 Running에서 Paused로 변경되는 것을 볼 수 있습니다.

...
Session..........: my_session
Status...........: Paused
...

[s]tatus [p]ause [r]esume [b]ypass [q]uit =>

세션이 일시 중지되는 동안 Hashcat 은 모든 처리를 중지하고 작업에 대한 GPU/CPU 사용량이 0 으로 떨어집니다. 그러나 애플리케이션은 터미널에서 활성 상태로 유지되며 추가 지시를 기다립니다.

'r' 키를 눌러 세션 재개하기

이 단계에서는 방금 일시 중지한 세션을 재개합니다.

p 키를 사용하여 일시 중지한 것처럼, r 키를 사용하여 재개할 수 있습니다. 이렇게 하면 Hashcat 은 일시 중지된 정확한 지점부터 크래킹 프로세스를 계속하도록 지시합니다.

Hashcat 터미널이 여전히 활성화된 상태에서 r 키를 누르십시오.

Status 필드가 Paused에서 Running으로 다시 변경되며, ProgressSpeed 표시기가 다시 활성화되는 것을 볼 수 있습니다.

...
Session..........: my_session
Status...........: Running
...

[s]tatus [p]ause [r]esume [b]ypass [q]uit =>

세션이 다시 실행 중이며 진행 상황이 손실되지 않았습니다. 이 일시 중지/재개 주기는 필요한 만큼 여러 번 반복할 수 있습니다.

세션 중지 및 .restore 파일 이해하기

이 단계에서는 세션을 완전히 중지하고 Hashcat 이 상태를 저장하는 데 사용하는 파일을 검사하는 방법을 배우게 됩니다. 이는 일시 중지와는 다릅니다. 중지는 애플리케이션을 완전히 종료합니다. 컴퓨터를 종료해야 하는 경우 이 작업을 수행하게 됩니다.

세션을 정상적으로 중지하려면 q 키 (quit) 를 누르십시오.

지금 q를 누르십시오.

Hashcat 은 크래킹 프로세스를 중지하고 종료하여 명령 프롬프트로 돌아갑니다.

이름이 지정된 세션을 사용할 때 Hashcat 은 자동으로 진행 상황을 복원 파일에 저장합니다. 이 파일은 세션과 동일한 이름을 가지며 .restore 확장자가 붙습니다.

이 파일이 생성되었는지 확인해 보겠습니다. 현재 디렉터리의 파일을 나열합니다.

ls -l

파일 목록에서 my_session.restore를 볼 수 있어야 합니다.

-rw-r--r-- 1 labex labex    28 Jul 10 10:30 hashes.txt
-rw-r--r-- 1 labex labex    48 Jul 10 10:32 my_session.restore
-rw-r--r-- 1 labex labex 8888898 Jul 10 10:30 wordlist.txt

이 파일에는 원래 명령줄 인수와 테스트된 마지막 비밀번호 후보를 포함하여 Hashcat 이 나중에 세션을 재개하는 데 필요한 모든 정보가 포함되어 있습니다. cat 명령으로 내용을 볼 수 있습니다.

cat my_session.restore

출력은 세션의 구성 및 진행 상황을 포함하는 일련의 줄입니다. 이 파일은 Hashcat 의 강력한 세션 관리 기능의 핵심입니다.

--session 및 --restore 플래그를 사용하여 이전 세션 복원하기

이 마지막 단계에서는 완전히 중지된 세션을 복원하는 방법을 배우게 됩니다. 이는 재부팅 후 또는 의도적으로 장기 실행 작업을 중지한 후 작업을 계속하는 데 매우 유용합니다.

세션을 복원하려면 --restore 플래그와 함께 --session 플래그를 사용하여 재개할 세션을 지정합니다. 이 방법의 주요 편리한 점은 원래 해시 유형, 공격 모드 또는 파일 경로를 다시 제공할 필요가 없다는 것입니다. Hashcat 은 해당 모든 정보를 .restore 파일에서 읽습니다.

my_session을 복원하려면 다음 명령을 실행합니다.

hashcat --session my_session --restore

Hashcat 이 다시 시작되고 my_session.restore 파일에서 상태를 자동으로 로드합니다. 상태 화면이 나타나고 중요한 것은 Progress가 처음부터가 아니라 중지된 지점부터 시작된다는 것입니다.

...
Session..........: my_session
Status...........: Running
...
Progress.........: 123456/1000001 (12.34%) -> (Resuming from where it was stopped)
...

[s]tatus [p]ause [r]esume [b]ypass [q]uit =>

중지된 세션을 성공적으로 복원했습니다. 이제 완료될 때까지 실행하거나 q를 눌러 다시 종료할 수 있습니다.

요약

이 실습에서는 Hashcat 에서 크래킹 세션을 관리하는 필수 기술을 배웠습니다. 이제 중단으로 인해 진행 상황을 잃을까 두려워하지 않고 장기 실행 작업을 처리하는 방법을 알게 되었습니다.

다음 내용을 배웠습니다.

  • 세션 관리의 기초인 --session 플래그를 사용하여 이름이 지정된 세션을 시작하는 방법.
  • p를 눌러 일시 중지하고 r을 눌러 재개하여 실행 중인 세션을 대화식으로 제어하는 방법.
  • q를 사용하여 세션을 정상적으로 중지하고 Hashcat 이 상태를 저장하기 위해 .restore 파일을 자동으로 생성한다는 것을 이해하는 방법.
  • --session--restore 플래그를 사용하여 완전히 중지된 세션을 복원하여 작업을 효율적으로 계속할 수 있는 방법.

이러한 기능을 숙달하는 것은 사소하지 않은 비밀번호 크래킹 작업에서 Hashcat 을 효과적으로 사용하는 데 매우 중요합니다.