--left 및 --show 로 해시 필터링하기

Kali LinuxBeginner
지금 연습하기

소개

Hashcat 은 강력하고 인기 있는 비밀번호 복구 도구입니다. 매우 큰 해시 목록으로 작업할 때, 크래킹 세션은 오랜 시간이 걸릴 수 있으며 중단될 수도 있습니다. 이러한 상황에서는 이미 크랙된 해시와 아직 크랙되지 않은 해시를 아는 것이 중요합니다.

이 랩에서는 두 가지 필수적인 hashcat 플래그인 --show--left를 사용하는 방법을 배우게 됩니다. --show 플래그는 이미 성공적으로 크랙된 비밀번호를 볼 수 있게 해주고, --left 플래그는 아직 크랙되지 않은 해시만 보여줍니다. 이를 통해 비밀번호 크래킹 작업을 효율적으로 관리할 수 있습니다.

대규모 해시 목록에 대한 공격 시작

이 단계에서는 hashcat 으로 표준 사전 공격을 시작합니다. ~/project 디렉터리에 두 개의 파일이 준비되어 있습니다. hashes.txt는 MD5 해시 목록을 포함하고 있으며, wordlist.txt는 잠재적인 비밀번호의 작은 사전입니다.

hashcat 공격의 기본 명령 구조는 hashcat -m <mode> <hash_file> <wordlist_file>입니다. 해시가 MD5 임을 지정하기 위해 -m 0을 사용합니다.

공격을 시작하려면 터미널에서 다음 명령을 실행하십시오.

hashcat -m 0 hashes.txt wordlist.txt

Hashcat 이 시작되고 백엔드가 초기화되며 크래킹 프로세스가 시작됩니다. 실시간으로 업데이트되는 상태 화면이 표시됩니다. 몇 초 동안 실행되도록 둡니다.

hashcat (v6.2.6) starting

...

Session..........: hashcat
Status...........: Running
Hash.Name........: MD5
Hash.Target......: hashes.txt
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:   ... H/s (0.01ms) @ Accel:128 Loops:1 Thr:1 Vec:8
Recovered........: 3/5 (60.00%) Digests
Progress.........: 5/5 (100.00%)
Rejected.........: 0/5 (0.00%)
Restore.Point....: 5/5 (100.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: password -> admin
Hardware.Mon.#1..: Temp: 46c

[s]tatus [p]ause [b]ypass [c]heckpoint [q]uit =>

공격 중간에 중지하기

이 단계에서는 크래킹 프로세스가 완전히 완료되기 전에 중단하거나 중단해야 하는 상황을 시뮬레이션합니다. Hashcat 은 진행 상황을 저장하여 나중에 다시 시작하거나 결과를 검사할 수 있도록 정상적으로 종료할 수 있습니다.

터미널에서 hashcat 상태 화면이 활성화된 동안 키보드에서 q 키를 누르면 종료됩니다.

q

q를 누르면 hashcat 이 세션을 중지하고 명령 프롬프트로 돌아갑니다. 작업 디렉터리에 hashcat.potfile이라는 파일에 모든 크랙된 비밀번호를 자동으로 저장합니다. 이 파일은 다음 단계에 매우 중요합니다.

Session hashcat stopping.

이미 크랙된 해시를 보기 위해 --show 플래그 사용하기

세션이 중지되었으므로 지금까지 성공적으로 복구된 비밀번호를 확인하고 싶을 수 있습니다. 이때 --show 플래그가 유용합니다. 이 플래그는 입력 해시 파일을 hashcat.potfile과 비교하여 일치하는 항목을 표시합니다.

터미널에서 동일한 해시 파일에 대해 hashcat 명령을 다시 실행하되, 이번에는 --show 플래그를 추가합니다.

hashcat -m 0 hashes.txt --show

출력에는 각 크랙된 해시와 해당 평문 비밀번호가 콜론으로 구분되어 나열됩니다.

5f4dcc3b5aa765d61d8327deb882cf99:password
e10adc3949ba59abbe56e057f20f883e:123456
e9a71b642151421421257419a0a23d89:sunshine

이를 통해 다섯 개의 해시 중 세 개가 단어 목록을 사용하여 성공적으로 크랙되었음을 확인할 수 있습니다.

크랙되지 않은 해시를 보기 위해 --left 플래그 사용하기

크랙된 항목을 보는 것이 유용한 것처럼, 남아있는 항목을 보는 것도 마찬가지로 중요합니다. --left 플래그는 --show와 반대되는 역할을 합니다. 입력 해시 파일을 hashcat.potfile과 비교하여 아직 크랙되지 않은 해시만 표시합니다.

남아있는 해시를 보려면 --left 플래그와 함께 hashcat 명령을 실행합니다.

hashcat -m 0 hashes.txt --left

출력은 hashes.txt에서 아직 hashcat.potfile에 없는 해시 목록이 됩니다.

2c7e3378803a5b054952514139821a79
b8d3c555434b89a01af1654b26d30609

이것들은 우리의 wordlist.txt가 크랙하지 못한 두 개의 해시입니다.

크랙되지 않은 해시만 포함된 새 파일 만들기

일반적인 워크플로우는 남아있는 크랙되지 않은 해시를 새 파일에 저장하는 것입니다. 이렇게 하면 이미 크랙한 해시에 시간을 낭비하지 않고, 향후 다른 단어 목록이나 다른 공격 모드를 사용하여 특정 해시를 대상으로 삼을 수 있습니다.

--left 명령의 출력을 새 파일로 리디렉션하여 쉽게 수행할 수 있습니다. 이 파일을 uncracked.txt라고 부르겠습니다.

hashcat -m 0 hashes.txt --left > uncracked.txt

이 명령은 출력이 파일로 리디렉션되었기 때문에 터미널에 아무런 출력을 생성하지 않습니다. 작동했는지 확인하려면 cat 명령을 사용하여 새 파일의 내용을 표시할 수 있습니다.

cat uncracked.txt

이제 다음 크랙 시도에 사용할 준비가 된 두 개의 크랙되지 않은 해시를 볼 수 있습니다.

2c7e3378803a5b054952514139821a79
b8d3c555434b89a01af1654b26d30609

요약

이 실습에서는 hashcat 을 사용한 비밀번호 크랙 세션 중에 해시 목록을 관리하고 필터링하는 방법을 배웠습니다.

공격을 시작한 다음 중지하여 일반적인 실제 시나리오를 시뮬레이션했습니다. 그런 다음 --show 플래그를 사용하여 성공적으로 크랙된 비밀번호를 보고, --left 플래그를 사용하여 크랙되지 않은 해시를 분리했습니다. 마지막으로, 향후 공격을 위해 남아있는 해시를 새 파일에 저장하는 실용적인 기술을 배웠습니다.

--show--left를 숙달하는 것은 효율적인 비밀번호 복구 워크플로우, 특히 대규모 작업을 처리할 때 필수적입니다.