Enumerazione sistemi Windows

Tempo di lettura: 6 minuti
Data pubblicazione: February 19, 2019

Nella preparazione per l’esame all’OSCP mi sono accorto che raramente mi è capitato di esercitarmi ad exploitare macchine Windows, scontrandomi quindi con il fatto di essere abbastanza ignorante su tutto l’ecosistema che ci gira intorno, come powershell, wmic, processi e quant’altro. In questo articolo farò una panoramica sull’enumerazione dei servizi, file ed in generale sulla post-exploitation di un computer Windows (quindi in seguito all’ottenimento di una connessione diretta tramite una vulnerabilità).

Enumerazione manuale

Una volta ottenuta la shell, la prima azione da fare è capire con che privilegi la si è ottenuta, capire la versione del sistema e il livello di aggiornamento del sistema operativo (molto utile per una possibile privilege escalation).

Per identificare l’utente a cui siamo connessi, molto semplicemente digitiamo:

C:\Users\wind7\Downloads>whoami /all
Comando whoami
Comando whoami

Come si può notare dalle screenshot, siamo l’utente wind7.

Altri comandi base per identificare le informazioni fondamentali sono:

  • systeminfo: permette di vedere le caratteristiche del computer, in particolare versione e architettura
  • hostname : identifica il nome del sistema
  • echo %username%: il nome dell’utente
  • net user: stampa tutti gli utenti del sistema
  • net user “nomeutente: informazioni dettagliate dell’utente
  • ipconfig /all : come Linux, identifica le reti e le interfacce di rete
  • netstat -ano : stampa le informazioni relative alle porte aperte e le connessioni
  • tasklist /SVC : stampa i processi attualmente attivi
Comando systeminfo
Comando systeminfo
Comando net user
Comando net user
Comando netstat
Comando netstat

Una modalità che trovo utilissima è utilizzare il database di comandi presi dal libro RTFM (che consiglio vivamente) e cercare tramite i tag ciò che vorremmo scoprire. Una volta scaricato da github, è sufficente digitare rtfm -t stringa e il tool stamperà tutto ciò che corrisponde a quello che cerchiamo

Comandi per l'enumerazione di sistemi windows ed inerenti alla rete
Comandi per l'enumerazione di sistemi windows ed inerenti alla rete

Per altri comandi utili consiglio questo articolo.

Enumerazione automatica

Ovviamente l’attività descritta precedentemente è possibile (e consigliabile) renderla automatica, in quanto si tratta di inserire molteplici stringhe e osservare le informazioni stampate.

La prima modalità è quella di utilizzare un file .bat ed eseguirlo nel sistema. All’interno del file basterà inserire tutti i comandi che vogliamo stampare e il sistema lo eseguirà in una sola volta.

FIle .bat
FIle .bat

Per lanciarlo basterà eseguire:

C:\Users\wind7\Desktop>comandi.bat

Altri hanno già scritto script in Powershell per l’enumerazione dei servizi, tra i quali JAWS e WindowsEnum.

Un software a mio parere fantastico è invece LaZagne, il quale cerca in tutto il sistema credenziali e password salvate all’interno del sistema o di programmi (come il browser), stampando successivamente tutto ciò che ha trovato. L’unica problematica è che viene rilevato dagli antivirus come malevolo, di conseguenza non è troppo semplice riuscire ad eseguirlo.

Lazagne.exe
Lazagne.exe

Come si può vedere ha trovato delle credenziali salvate all’interno del browser (per questo motivo esiste la Master Password) ed ha trovato anche un hash locale. Successivamente si potrebbe provare a craccarlo utilizzando john the ripper.

Hash identificato con successo tramite John
Hash identificato con successo tramite John

Conclusioni

L’enumerazione sembra un processo noioso ma è fondamentale per cercare di estrapolare informazioni dal computer e trovare file, processi o connessioni che possano permettere una privilege escalation o di trovare informazioni nascoste che ci permettano di passare da un host ad un altro nella rete. In rete ci sono decine di guide, quelle che consiglio sono quelle di FuzzSecurity e PwnWiki.