비교를 위한 Hashcat 해시 해독
John the Ripper는 훌륭한 도구이지만, Hashcat과 같은 대안에도 익숙해지는 것이 좋습니다. Hashcat은 특히 GPU 가 장착된 시스템에서 매우 빠른 속도로 유명합니다. 여기서는 Hashcat을 사용하여 동일한 사전 공격 (dictionary attack) 을 수행해 보겠습니다.
Hashcat은 해시 값만 포함된 깨끗한 파일을 선호합니다. awk 명령어를 사용하여 sample_hashes.txt에서 두 번째 필드 (해시) 만 추출하여 새 파일인 clean_hashes.txt에 저장합니다.
awk -F':' '{print $2}' /root/sample_hashes.txt > /root/clean_hashes.txt
새 파일의 내용을 확인합니다.
cat /root/clean_hashes.txt
출력 결과에는 해시 문자열만 포함되어야 합니다.
$6$randomsalt$WS2qjCQ1JrmZv8otdbtntIYu6lRzkk2aIVhgIMdMexOcvD9bEAoxtKcyZLXbR3wlhOOPBscJbLCPUU/fYjFhM0
$6$anothersalt$ZffCt8y5Hl8gLYS79/rhyT76C12kNhuOvkFR8Ll0RXcjQz2Nzuh3VUdT//e21HYfH6fP9btOp2aG22O3S7q1z/
이제 Hashcat을 실행합니다. 해시 모드 (SHA-512 crypt 의 경우 -m 1800) 와 공격 모드 (일반 사전 공격의 경우 -a 0) 를 지정해야 합니다.
hashcat -m 1800 -a 0 /root/clean_hashes.txt /root/custom_wordlist.txt
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 1800 (sha512crypt $6$, SHA512 (Unix))
Hash.Target......: /root/clean_hashes.txt
Time.Started.....: Mon Sep 1 06:33:21 2025 (0 secs)
Time.Estimated...: Mon Sep 1 06:33:21 2025 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (/root/custom_wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 226 H/s (5.08ms) @ Accel:8 Loops:1024 Thr:1 Vec:8
Recovered........: 2/2 (100.00%) Digests (total), 1/2 (50.00%) Digests (new), 2/2 (100.00%) Salts
Progress.........: 6/12 (50.00%)
Rejected.........: 0/6 (0.00%)
Restore.Point....: 0/6 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:4096-5000
Candidate.Engine.: Device Generator
Candidates.#1....: password -> password123
Hashcat이 크래킹 세션을 시작합니다. 워드리스트에 올바른 비밀번호 (password 및 123456) 가 있으므로 Hashcat 은 이 해시들을 매우 빠르게 해독할 것입니다. 완료된 후, 동일한 명령어에 --show 플래그를 추가하여 해독된 비밀번호를 확인합니다.
hashcat -m 1800 -a 0 /root/clean_hashes.txt /root/custom_wordlist.txt --show
공격에 성공하면 Hashcat은 해시 뒤에 콜론으로 구분된 해독 비밀번호를 표시합니다.
$6$randomsalt$WS2qjCQ1JrmZv8otdbtntIYu6lRzkk2aIVhgIMdMexOcvD9bEAoxtKcyZLXbR3wlhOOPBscJbLCPUU/fYjFhM0:password
$6$anothersalt$ZffCt8y5Hl8gLYS79/rhyT76C12kNhuOvkFR8Ll0RXcjQz2Nzuh3VUdT//e21HYfH6fP9btOp2aG22O3S7q1z/:123456
이 단계를 통해 비밀번호 크래킹을 위한 강력한 대안인 Hashcat을 경험해 보았습니다. 마지막 단계에서는 발견한 내용을 적절하게 문서화하는 방법을 배웁니다.