Come al solito inizio con una scansione Nmap:
USER FLAG
Non c’è nessuna applicazione web che gira sulla macchina, mi fa pensare che la via d’accesso sia LDAP. Una scansione più approfondita dei servizi rivela il nome del dominio CASCADE.local.
ldapsearch -h 10.10.10.182 -p 389 -x -b "dc=cascade,dc=local
Leggendo attentamente l’output della query LDAP è possibile leggere la password dell’utente r.thompson:
Provo a collegarmi con evil-winrm ma non funziona, quindi vado di smb:
Mi connetto a Data, l’unico share accessibile e scarico tutto sulla mia macchina.
RECURSE ON
PROMPT OFF
mget *
All’interno di una cartella c’è una mail interessante che parla di un utenza amministratore temporanea “TempAdmin” che è stata cancellata:
La mail inoltre dice che TempAdmin ha la stessa password che viene utilizzata per tutti gli account da amministratore, questa è una info da tenere a mente.
Scorrendo tra gli altri file, in una cartella nominata s.smith, c’è una configurazione del registro di windows di un server VNC “VNC install.reg” che contiene una password esadecimale: “Password”=hex:6b,cf,2a,4b,6e,5a,ca,0f
Al seguente link è possibile scaricare un tool che prende come input questo valore esadecimale e restituisce la password in chiaro: http://aluigi.org/pwdrec/vncpwd.zip
Con questa password è possibile connettersi alla macchina con l’utenza di s.smith e ottenere la user flag:
ROOT FLAG
Dopo aver enumerato la macchina con l’utente s.smith, non trovando niente, provo ad accedere con le stesse credenziali a smb, dal momento che c’erano numerosi share non accessibili con l’altra utenza. Lo share Audit che prima era inaccessibile adesso lo è:
Scarico tutta la cartella e dopo aver dato un’occhiata a tutti i file, trovo delle informazioni interessanti all’interno del file Audit.db, un database sqlite:
In una tabella trovo alcuni dettagli dell’utente TempAdmin di cui parlava la mail trovata in precedenza.
Tra gli altri file c’è un file BAT che richiama il file EXE passandogli come argomento in database Audit.db
CascAudit.exe "\\CASC-DC1\Audit$\DB\Audit.db"
Decido di ispezionare il file exe utilizzando ILSpy e trovo delle informazioni importanti:
Il programma fa delle query LDAP e seleziona dal database SQLite l’utenza con cui fare le query. Nel codice qua sopra c’è anche la chiave per decifrare la password: c4scadek3y654321.
Continuando ad analizzare il codice vedo che la password è cifrata con algoritmo AES e per decifrarla oltre alla chiave potrei aver bisogno dell’IV, l’Initialization Vector. Negli algoritmi di cifratura a blocchi, il dato da cifrare viene suddiviso in blocchi e poiché la cifratura di ogni blocco dipende dal blocco precedente, l’initialization vector è un oggetto che viene dato in pasto al primo blocco dal momento che non esiste nessun blocco precedente.
Vado a vedere la funzione che decifra e infatti trovo l’IV:
Non mi resta che decifrare la password trovata nel database per l’utenza ArkSvc:
https://gchq.github.io/CyberChef/
Con la password posso collegarmi alla box come ArkSvc:
Il da farsi è piuttosto chiaro, ho trovato una mail in cui si parlava di un utente TempAdmin che è stato cancellato, la stessa informazione l’ho trovata all’interno del database SQLite utilizzato dal programma che faceva query LDAP sugli utenti cancellati. La stessa cosa la faccio io, dopo aver importato però il modulo Active Directory di Microsoft:
https://github.com/samratashok/ADModule
Get-ADObject -Filter 'ObjectClass -eq "user" -and isDeleted -eq $True' -IncludeDeletedObjects -Properties *
Espando le proprietà dell’utente TempAdmin e trovo la password codificata base64:
Get-ADObject -Filter 'ObjectClass -eq "user" -and isDeleted -eq $True' -IncludeDeletedObjects -Properties *
echo -n YmFDVDNyMWFOMDBkbGVz |base64 -d
baCT3r1aN00dles
Con la password mi connetto come Administrator e prendo la flag di root: