Hashcat - 해시 크래킹 도구
1.Hashcat 이란?
오픈소스로 공개된 고성능 해시 크래킹 도구이다.
다양한 해시 알고리즘을 지원하며 GPU를 활용한 병렬 처리 덕분에 매우 빠른 속도로 해시를 크래킹 할 수 있다.
2. 주요 특징
- GPU 기반 병렬 처리 지원
- 다양한 공격 방식 지원 (사전대입, 무작위대입공격, 하이브리드, 룰 베이스, 마스크 등등)
- 광범위한 해시 알고리즘 지원 (MD5 , SHA1, SHA256 등등 너무 많음)
[지원 알고리즘 정리는 더보기에 있다]
[Hashcat 지원 알고리즘 정리] (GPT)
🔐 1. 일반 해시 함수 (Hash Functions)
MD 계열: MD4, MD5, Half MD5, md5(utf16 le($pass)), md5($pass.$salt) 등
SHA-1 / SHA-2 계열: SHA1, SHA2-224, SHA2-256, SHA2-384, SHA2-512, sha1(utf16 le($pass)), sha1($salt.$pass) 등
SHA-3 / Keccak 계열: SHA3-224, SHA3-256, SHA3-384, SHA3-512, Keccak-224, Keccak-256,...
RIPEMD 계열: RIPEMD-160
Streebog: GOST R 34.11-2012 (256, 512-bit)
BLAKE2: BLAKE2 b-512, BLAKE2 b-512($pass.$salt) 등
Whirlpool, CRC32, CRC64 Jones, MurmurHash, Java Object hashCode(),...
🧬 2. HMAC 해시 (Keyed Hashing)
HMAC-MD5, HMAC-SHA1, HMAC-SHA256, HMAC-SHA512
HMAC-Streebog-256/512 (big-endian)
SNMPv3 HMAC-* 계열
🔑 3. 암호화 알고리즘 (Symmetric Ciphers)
AES: AES-128/192/256-ECB, AES Crypt, AES-256-CBC
3 DES, DES, Skip32, ChaCha20, Blowfish
PBKDF 계열: PBKDF2-HMAC-*, scrypt, bcrypt, phpass
암호화 응용: BitLocker, LUKS, TrueCrypt, VeraCrypt, DiskCryptor, Apple File System
웹/소프트웨어 보안: JWT, Ansible Vault, Django, Flask, Web2 py,...
🛡️ 4. 패스워드 저장 포맷 및 인증 방식
운영체제 관련: Windows Hello, NTLM, LM, DCC, macOS, Linux shadow 등
애플리케이션 관련: hMailServer, MyBB, vBulletin, Drupal, MediaWiki, SAP, Cisco, Juniper, Oracle, MS SQL, MySQL, PostgreSQL, MongoDB,...
파일 포맷: RAR3, RAR5, 7-Zip, ZIP, PDF, Office, ODF, Apple Notes, iTunes Backup 등
🧩 5. 암호화된 지갑 및 암호화폐 포맷
Bit coin: wallet.dat, WIF (P2 PKH, P2SH, P2 WPKH)
Ethereum: Presale Wallet, SCRYPT, PBKDF2
Electrum Wallet (타입 1~5)
Exodus, Terra Station, Blockchain My Wallet, Stellar, BitShares,...
🌐 6. 프로토콜/네트워크 인증
WPA 계열: WPA-EAPOL, WPA-PMK, WPA-PMKID
IKE, CHAP, TACACS+, CRAM-MD5, SIP digest, Kerberos 5, NetNTLMv1/v2, SNMPv3, IPMI2,...
🧱 7. 포럼/웹 CMS/웹앱
Joomla, OpenCart, PrestaShop, PunBB, SMF, PHPS, Redmine, Umbraco,...
MediaWiki, Drupal, vBulletin, MyBB, WBB3, osCommerce
🔐 8. 기타 보안 구성요소
TOTP, Kerberos, LDAP, Mozilla Key3/Key4, Apple Keychain, ColdFusion, SolarWinds,...
iPhone, Samsung Android, macOS 10.x, Apple iWork, 1 Password, LastPass, Bitwarden, KeePass, Password Safe,...
3. 설치 방법
hashcat - advanced password recovery
Download Name Version Date Download Signature hashcat binaries v6.2.6 2022.09.02 Download PGP hashcat sources v6.2.6 2022.09.02 Download PGP Signing key on PGP keyservers: RSA, 2048-bit. Key ID: 2048R/8A16544F. Fingerprint: A708 3322 9D04 0B41 99CC 0052 3C
hashcat.net
1. 사이트 접속
1. download 클릭하고 압축 풀기
압축 푼 파일 내용
4. 사용 방법
무작위 대입 공격 기능도 지원을 하지만 해시크랙에 경우에는 사전파일 대입이 좀 더 현실적이다.
해시를 무작위대입으로 크랙 한다는 건 좀 힘든 부분이 있다 (최소 조, 경 단위로 해야 하기 때문)
[간단한 방법예시는 더보기에 있다]
📘 실전 명령어 예시들
✅ 1. 사전 대입 공격 (Dictionary Attack)
hashcat -m 0 -a 0 hash.txt rockyou.txt
-m 0: MD5
-a 0: Dictionary
rockyou.txt: 사전 파일
✅ 2. 브루트 포스 공격 (Brute-Force)
hashcat -m 0 -a 3 hash.txt ?l?l?l?l?l?l?l?l
?l: 소문자
?d: 숫자
?u: 대문자
?s: 특수문자
복합 예시: ?u?l?l?l?d?d?d!? → 첫 자 대문자, 3 소문자, 3 숫자, 특수문자
✅ 3. 사전 + 룰 (패스워드 변형) 조합
hashcat -m 0 -a 0 hash.txt rockyou.txt -r rules/best64.rule
룰은 단어에 변형(뒤에 숫자 추가, 대소문자 변경 등)을 자동 적용
✅ 4. Hybrid (사전 + 마스크)
hashcat -m 0 -a 6 hash.txt rockyou.txt ?d?d
단어 뒤에 숫자 2자리를 붙여서 시도 (예: password12, admin98 등)
✅ 5. 결과 확인
hashcat --show -m 0 hash.txt
크랙 완료된 해시의 평문을 확인할 수 있음
⚙️ 추가 옵션들
옵션 설명
--force 강제로 실행 (OpenCL 문제 회피, 주의 필요)
--remove 크랙된 해시는 자동으로 파일에서 제거
--status 현재 상태 계속 출력
--session 세션 저장 및 이어하기 지원
--restore 중단된 세션 이어서 실행
--outfile=파일 결과 저장
📂 유명한 워드리스트 위치
이름 경로 (Kali 기준)
rockyou /usr/share/wordlists/rockyou.txt
SecLists /usr/share/seclists/Passwords/Common-Credentials/
CrackStation https://crackstation.net
🔐 다양한 해시 알고리즘 번호 예시
해시 종류 -m 번호
MD5 0
SHA1 100
SHA256 1400
bcrypt 3200
NTLM 1000
Wordpress 400
그래서 사전대입공격으로 실습을 해보겠다.
먼저 준비물
1. 사전대입할 패스워드 목록 (rockyou.txt 등등)
2. 암호화된 패스워드 txt 파일 (md5 , SHA256 등등)
4-1. 사전대입 패스워드 목록
https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
필자는 rockyou 를 썼음 물론 다른 파일도 존재함
4-2. 암호화된 패스워드 txt 파일
이런 식으로 txt파일을 추가해 준다 물론 hashcat 경로랑 같은 경로에 있는 게 사용하기 편하다.
4-3. hashcat 사전대입공격 실행
hashcat -m [해시모드] -a 0 [해시파일] [사전파일]
-m: 해시 알고리즘 번호 (예: MD5는 0, SHA1은 100, bcrypt는 3200 등)
-a 0: 공격 모드 0번 = Dictionary Attack
[해시파일]: 해시값이 들어있는 파일 (예: hash.txt)
[사전파일]: 워드리스트 (예: rockyou.txt)
마지막을 보면 해시크랙을 통해 평문이 나타나는 걸 볼 수 있다.
5. 마치며..
솔직히 말해서 크랙이 언제나 통하는 건 아니다.
하지만 그렇다고 해서 "암호화되어 있으니 안전하다"는 맹신도 위험하다.
문제는 방심에서 시작하기 때문이고 누군가 그 틈을 파고들어 해시가 크랙 되는 순간 모든 것은 평문으로 바뀌어버린다.
잘 관리하자.