
OSCP/침투 테스트를 위한 Hashcat 참조: 해시 식별, Linux, Windows, 아카이브, 데이터베이스, Kerberos 티켓 및 규칙 기반 공격을 위한 크래킹 구문.
OSCP를 위한 Hashcat 치트시트 https://hashcat.net/wiki/doku.php?id=hashcat
hash-identifier
예시 해시: https://hashcat.net/wiki/doku.php?id=example_hashes
해시 크래킹 성능을 더 끌어올리기 위해 다음 매개변수를 추가하면 효과가 있었습니다:
--force -O -w 4 --opencl-device-types 1,2
이 매개변수들은 Hashcat이 CUDA GPU 인터페이스를 사용하도록 강제합니다. 이 인터페이스는 버그가 많지만 더 나은 성능을 제공합니다(–force). 또한 32자 이하 암호에 맞게 최적화하고(-O), 작업 부하를 "Insane"(-w 4)으로 설정하여 크래킹 과정 동안 컴퓨터를 사실상 사용할 수 없게 만듭니다. 마지막으로 "--opencl-device-types 1,2"는 Hashcat이 GPU와 CPU를 모두 사용하여 크래킹을 처리하도록 강제합니다.
크래킹하려는 모든 해시를 담은 .hash 파일(puthasheshere.hash)을 생성하세요: $1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/
rockyou를 사용하여 Linux md5crypt($1$) 암호를 크래킹하는 Hashcat 예시:
hashcat --force -m 500 -a 0 -o found1.txt --remove puthasheshere.hash /usr/share/wordlists/rockyou.txt
rockyou를 사용하여 Wordpress 암호를 크래킹하는 Hashcat 예시:
hashcat --force -m 400 -a 0 -o found1.txt --remove wphash.hash /usr/share/wordlists/rockyou.txt
샘플 해시 http://openwall.info/wiki/john/sample-hashes
Not So Secure가 만든 커스텀 규칙으로, 이전에 효과를 본 적이 있습니다:
https://www.notsosecure.com/one-rule-to-rule-them-all/
해당 규칙은 그들의 Github 사이트에서 다운로드할 수 있습니다:
https://github.com/NotSoSecure/password_cracking_rules
저는 보통 OneRuleToRuleThemAll.rule 파일을 rules 하위 폴더에 넣고 Windows 시스템에서 다음과 같이 실행합니다(notsosecure 문서 기반):
hashcat64.exe --force -m300 --status -w3 -o found.txt --remove --potfile-disable -r rules\OneRuleToRuleThemAll.rule hash.txt rockyou.txt
predefined charsets
?l = abcdefghijklmnopqrstuvwxyz
?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
?d = 0123456789
?s = «space»!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
?a = ?l?u?d?s
?b = 0x00 - 0xff
?l?d?u는 다음과 같습니다:
?ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
가능한 문자 A-Z a-z 0-9를 사용하여 길이 1~8의 모든 암호를 무차별 대입합니다
hashcat64 -m 500 hashes.txt -a 3 ?1?1?1?1?1?1?1?1 --increment -1 ?l?d?u
| ID | 설명 | 유형 |
|---|---|---|
| 3000 | LM | 운영 체제 |
| 1000 | NTLM | 운영 체제 |
Windows 시스템에서 NTDS.dit와 SYSTEM 레지스트리 하이브를 확보하거나 LSASS 메모리를 덤프한 후에는 종종 NTLM 해시를 얻게 됩니다.
| 경로 | 설명 |
|---|---|
| C:\Windows\NTDS\ntds.dit | Active Directory 데이터베이스 |
| C:\Windows\System32\config\SYSTEM | 해시를 암호화하는 데 사용되는 키를 포함하는 레지스트리 하이브 |
그리고 Impacket을 사용하여 해시를 덤프합니다
impacket-secretsdump -system SYSTEM -ntds ntds.dit -hashes lmhash:nthash LOCAL -outputfile ntlm-extract
다음 hashcat 구문을 사용하여 NTLM 해시 덤프를 크래킹할 수 있습니다:
hashcat64 -m 1000 -a 0 -w 4 --force --opencl-device-types 1,2 -O d:\hashsample.hash "d:\WORDLISTS\realuniq.lst" -r OneRuleToRuleThemAll.rule
Nvidia 2060 GTX를 사용한 벤치마크: 속도: 7000 MH/s 복구율: 12.47% 경과 시간: 2시간 35분
SPN(서비스 사용자 이름)은 서비스 인스턴스의 고유 식별자입니다. SPN은 Kerberos 인증에서 서비스 인스턴스를 서비스 로그온 계정에 연결하는 데 사용됩니다. 이를 통해 클라이언트 애플리케이션은 계정 이름을 알지 못해도 서비스에 계정 인증을 요청할 수 있습니다. KRB5TGS - SPN을 사용하는 Kerberoasting 서비스 계정. Kerberoastable 서비스 계정(Bloodhound? Powershell Empire? 아마도 MS SQL Server 서비스 계정)을 식별한 후에는 모든 AD 사용자가 해당 계정에서 krb5tgs 해시를 요청할 수 있으며, 이를 사용하여 암호를 크래킹할 수 있습니다.
제 벤치마킹에 따르면 KRB5TGS 크래킹은 NTLM보다 28배 느립니다.
Hashcat은 여러 버전의 KRB5TGS 해시를 지원하며, 해시 내부의 달러 기호 사이에 있는 숫자로 쉽게 식별할 수 있습니다.
KRB5TGS 유형 23 - OneRuleToRuleThemAll 변형 규칙 목록이 포함된 Crackstation humans 전용 단어 목록.
hashcat64 -m 13100 -a 0 -w 4 --force --opencl-device-types 1,2 -O d:\krb5tgs.hash d:\WORDLISTS\realhuman_phill.txt -r OneRuleToRuleThemAll.rule
Nvidia 2060 GTX를 사용한 벤치마크: 속도: 250 MH/s 경과 시간: 9분
패킷 캡처에서 SMB 인증(NTLMv2)의 암호를 복구하라는 요청을 받을 수 있습니다. 다음은 이를 위해 해시를 올바르게 포맷하는 9단계 프로세스입니다. https://research.801labs.org/cracking-an-ntlmv2-hash/
unshadow passwd-file.txt shadow-file.txt
unshadow passwd-file.txt shadow-file.txt > unshadowed.txt
zip2john Zipfile.zip | cut -d ':' -f 2 > hashes.txt
hashcat -a 0 -m 13600 hashes.txt /usr/share/wordlists/rockyou.txt
Hashcat은 zip2john으로 생성된 일부 zip 해시 형식에 문제가 있는 것 같습니다. zip 해시 내용을 hashcat 예제 페이지에 있는 예제 zip 해시 형식에 맞게 편집하여 이 문제를 해결할 수 있습니다:
$zip2$*0*3*0*b5d2b7bf57ad5e86a55c400509c672bd*d218*0**ca3d736d03a34165cfa9*$/zip2$
John은 크래킹에 더 다양한 zip 형식을 허용하는 것으로 보입니다.
PRINCE(PRobability INfinite Chained Elements)는 가능성 있는 암호를 무작위로 생성하는 hashcat 유틸리티입니다:
pp64.bin --pw-min=8 < dict.txt | head -20 shuf dict.txt | pp64.bin --pw-min=8 | head -20
참고:
https://github.com/hashcat/princeprocessor
Purple Rain 공격은 Prince, 사전, 무작위 변형(Mutation) 규칙을 조합하여 무한한 암호 조합을 동적으로 생성합니다.
shuf dict.txt | pp64.bin --pw-min=8 | hashcat -a 0 -m #type -w 4 -O hashes.txt -g 300000
| ID |
|---|
| 설명 |
|---|
| 유형 |
|---|
| 500 | md5crypt $1$, MD5(Unix) | 운영 체제 |
| 200 | bcrypt $2*, Blowfish(Unix) | 운영 체제 |
| 400 | sha256crypt $5$, SHA256(Unix) | 운영 체제 |
| 1800 | sha512crypt $6$, SHA512(Unix) | 운영 체제 |
| ID | 설명 | 유형 |
|---|
| 900 | MD4 | 원시 해시 |
| 0 | MD5 | 원시 해시 |
| 5100 | Half MD5 | 원시 해시 |
| 100 | SHA1 | 원시 해시 |
| 10800 | SHA-384 | 원시 해시 |
| 1400 | SHA-256 | 원시 해시 |
| 1700 | SHA-512 | 원시 해시 |
| ID | 설명 | 유형 |
|---|
| 11600 | 7-Zip | 압축 파일 |
| 12500 | RAR3-hp | 압축 파일 |
| 13000 | RAR5 | 압축 파일 |
| 13200 | AxCrypt | 압축 파일 |
| 13300 | AxCrypt in-memory SHA1 | 압축 파일 |
| 13600 | WinZip | 압축 파일 |
| 9700 | MS Office <= 2003 $0/$1, MD5 + RC4 | 문서 |
| 9710 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #1 | 문서 |
| 9720 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #2 | 문서 |
| 9800 | MS Office <= 2003 $3/$4, SHA1 + RC4 | 문서 |
| 9810 | MS Office <= 2003 $3, SHA1 + RC4, collider #1 | 문서 |
| 9820 | MS Office <= 2003 $3, SHA1 + RC4, collider #2 | 문서 |
| 9400 | MS Office 2007 | 문서 |
| 9500 | MS Office 2010 | 문서 |
| 9600 | MS Office 2013 | 문서 |
| 10400 | PDF 1.1 - 1.3 (Acrobat 2 - 4) | 문서 |
| 10410 | PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #1 | 문서 |
| 10420 | PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #2 | 문서 |
| 10500 | PDF 1.4 - 1.6 (Acrobat 5 - 8) | 문서 |
| 10600 | PDF 1.7 Level 3 (Acrobat 9) | 문서 |
| 10700 | PDF 1.7 Level 8 (Acrobat 10 - 11) | 문서 |
| 16200 | Apple Secure Notes | 문서 |
| ID | 설명 | 유형 | 예시 해시 |
|---|
| 12 | PostgreSQL | 데이터베이스 서버 | a6343a68d964ca596d9752250d54bb8a:postgres |
| 131 | MSSQL (2000) | 데이터베이스 서버 | 0x01002702560500000000000000000000000000000000000000008db43dd9b1972a636ad0c7d4b8c515cb8ce46578 |
| 132 | MSSQL (2005) | 데이터베이스 서버 | 0x010018102152f8f28c8499d8ef263c53f8be369d799f931b2fbe |
| 1731 | MSSQL (2012, 2014) | 데이터베이스 서버 | 0x02000102030434ea1b17802fd95ea6316bd61d2c94622ca3812793e8fb1672487b5c904a45a31b2ab4a78890d563d2fcf5663e46fe797d71550494be50cf4915d3f4d55ec375 |
| 200 | MySQL323 | 데이터베이스 서버 | 7196759210defdc0 |
| 300 | MySQL4.1/MySQL5 | 데이터베이스 서버 | fcf7c1b8749cf99d88e5f34271d636178fb5d130 |
| 3100 | Oracle H: Type (Oracle 7+) | 데이터베이스 서버 | 7A963A529D2E3229:3682427524 |
| 112 | Oracle S: Type (Oracle 11+) | 데이터베이스 서버 | ac5f1e62d21fd0529428b84d42e8955b04966703:38445748184477378130 |
| 12300 | Oracle T: Type (Oracle 12+) | 데이터베이스 서버 | 78281A9C0CF626BD05EFC4F41B515B61D6C4D95A250CD4A605CA0EF97168D670EBCB5673B6F5A2FB9CC4E0C0101E659C0C4E3B9B3BEDA846CD15508E88685A2334141655046766111066420254008225 |
| 8000 | Sybase ASE | 데이터베이스 서버 | 0xc00778168388631428230545ed2c976790af96768afa0806fe6c0da3b28f3e132137eac56f9bad027ea2 |