La fase di Post-Exploitation

L

NOVITA’ 2019!

Parliamoci chiaro: non puoi pensare di diventare un ETHICAL HACKER senza conoscere almeno un LINGUAGGIO DI PROGRAMMAZIONE!

Accedi adesso al corso “PYTHON PER HACKER – 2019”

Oltre 10 ORE di VIDEO LEZIONI e oltre 100 CODICI PRONTI DA ESEGUIRE!




Nei precedenti articoli, abbiamo visto come compromettere l’host, adesso dobbiamo analizzare più a fondo, tutte quelle attività che è auspicabile effettuare dopo la fase di exploitation. Tra queste, le più significative sono:

  • Privilege escalation.
  • Mantenimento dell’accesso.
  • Raccolta dei dati.
  • Processo ciclico di scansione della rete verso nuovi host.
  • Processo ciclico di exploitation verso nuovi host.

PRIVILEGE ESCALATION

Molto spesso, quando riusciamo ad accedere ad un host, non abbiamo i privilegi più elevati ma siamo dei “semplici” utenti non autorizzati a compiere particolari operazioni.

Lo scopo di questa sottofase è di “scalare” i privilegi fino al punto più alto. Nel caso di sistemi operativi Windows dovremo diventare “Administrator” o “SYSTEM” e nel caso di sistemi operativi Linux dovremo diventare “root”.

MANTENIMENTO DELL’ACCESSO

La sessione stabilita con l’host compromesso può accidentalmente essere chiusa e questo comporta la perdita del controllo su di esso.

I motivi per cui ciò si verifica sono molteplici: l’utente riavvia il PC, il processo coinvolto si blocca o l’applicazione exploitata viene chiusa.

Risulta quindi necessario rendere la nostra sessione “persistente”, così da poter accedere all’host ogni volta che vogliamo.

RACCOLTA DEI DATI

Dentro l’host sono contenute informazioni più o meno sensibili ed importanti. Queste ultime vanno raccolte ed organizzate così da inserirle eventualmente nel report finale da consegnare al cliente.

Spesso questa è l’unica vera dimostrazione “forte” per far percepire al management quanto grave possa essere una violazione della rete, e come sia necessario proteggere adeguatamente quest’ultima.

PROCESSO CICLICO DI SCANSIONE E EXPLOITATION

In linea generale, ogni volta che accediamo ad un nuovo host, dobbiamo compiere nuovamente i passi visti nei capitoli precedenti. Per cui effettueremo:

  • Scansione della rete.
  • Cattura di eventuli banner.
  • Enumerazione.
  • Ricerca delle vulnerabilità.
  • Exploitation.
  • Post exploitation.

PRIVILEGE ESCALATION

Ripartiamo adesso da quanto visto nell’articolo precedente.

Supponiamo di avere una sessione “meterpreter” già stabilita sul nostro bersaglio. Quest’ultima non è “persistente”, quindi può essere chiusa dall’utente insieme al processo che ha permesso di iniziare la comunicazione.

Dobbiamo innanzitutto effettuare l’operazione di “migrate”, migrando preferibilmente su un processo più stabile, che abbia maggiori possibilità di restare attivo. Si può procedere in modo automatico oppure manuale.

In modalità automatica digitiamo il seguente comando:

Manualmente dobbiamo ottenere la lista dei processi in esecuzione, selezionarne uno di nostro interesse annotando il suo ID e poi, con il comando “migrate ID”, effettuare la migrazione:

Ci preoccupiamo adesso di mantere “persistente” la nostra connessione sull’host bersaglio.

Il primo punto da osservare è che la persistenza di una connessione è direttamente legata alla tipologia di privilegi che abbiamo sulla macchina.

Per questo dovremmo cercare di elevare i nostri privilegi. Il comando che si utilizza in questi casi è “get system”, che utilizzerà un insieme di tecniche volte ad elevare i nostri privilegi, fino a trovare quella idonea al raggiungimento del nostro scopo.

Verifichiamo con il comando “getuid” se effettivamente l’attività è riuscita, come in questo caso in cui siamo diventati utenti SYSTEM.

PRIVILEGE ESCALATION CON UAC DISABILITATA

Quando si effettua una “privilege escalation” su sistemi operativi Windows 7 e superiori, è necessario tenere conto di un meccanismo di sicurezza che potrebbe crearci qualche difficoltà. Mi riferisco alla UAC (User Account Control) che permette ad un utente amministratore di effettuare dei task amministrativi durante una sessione di un utente standard.

Se la UAC è abilitata sarà impossibile effettuare privilege escalation senza compiere prima delle attività aggiuntive.

Per verificare se la UAC è attiva o meno all’interno di un certo host ci si reca su “pannello di controllo” -> “centro operativo” -> “modifica impostazioni di controllo dell’account utente”.

Come prima prova, disabilitiamola ed effettuiamo la privilege escalation.

Come ci aspettavamo, con UAC disabilitata siamo riusciti ad effettuare privilege escalation.

PRIVILEGE ESCALATION CON UAC ABILITATA

Un’operazione preliminare da compiere è verificare se la UAC sia abilitata o meno, ed esiste a tal proposito un modulo di Metasploit che ci permette di farlo. Il suo nome è “win_privs”.

Nell’esempio superiore la UAC è disabilitata: il campo “UAC Enabled” è impostato su FALSE.

Abilitiamo adesso la UAC sulle impostazioni di default.

Lanciamo nuovamente il comando di verifica della UAC:

Questa volta il campo “UAC Enabled” mostra che la UAC è abilitata. Tentiamo una privilege escalation con “getsystem”:

Come atteso, l’operazione non è riuscita.

Esiste un modulo Metasploit denominato “bypass UAC” che ci permette di aggirare questo ostacolo.

Teniamo conto che quest’ultimo ha buone probabilità di successo solo se la UAC è impostata ai livelli di default e non al livello massimo.

Digitando il comando “show options” vedremo quali settaggi sono necessari.

Nello specifico dobbiamo inserire l’ID della sessione in cui ci troviamo, e per farlo digitiamo il comando “session -l” appuntando l’ID. Supponendo che la sessione abbia ID 2, digitiamo “set session 2”.

Infine lanciamo il modulo con il comando “exploit” e attendiamo qualche secondo.

Se il comando avrà dato esito positivo dovremmo trovare una nuova sessione digitando il comando “sessions -l”.

Eleviamo i nostri privilegi con “getsystem” e verifichiamo con “getuid”.

HASHDUMP DELLE CREDENZIALI

Un’operazione tipica di questi contesti è quella di riuscire ad ottenere l’hash delle credenziali.

In parole semplici, l’hash è una stringa univoca generata a partire da una certa password ed in base ad un algoritmo crittografico.

Se l’hash è poco robusto è possibile effettuare un processo di “ingegneria inversa” per recuperare la password iniziale.

Supponiamo ora di avere una sessione stabilita con privilegi amministrativi e digitiamo il comando “hashdump”:

Come si osserva è stato recuperato l’hash degli utenti “Administrator”, “eugenio” e “guest”.

Volendo si può tentare un recupero (“password cracking”) della password a partire da questi hash.

LOCAL EXPLOIT SUGGESTER

In precedenza abbiamo visto che il comando “getsystem” permette di ottenere i privilegi elevati su un certo host.

Tuttavia, se quest’ultimo non offre esito positivo, ci viene incontro un modulo Metasploit che effettua l’enumerazione della macchina in questione alla ricerca di alcuni exploit che hanno buone possibilità di successo.

Il modulo è il seguente:

Necessario sempre lanciarlo a sessione meterpreter attiva. Di seguito la lista degli exploit suggeriti:

Ora è possibile iniziare a provarne alcuni fino a trovare quello idoneo al raggiungimento dello scopo. Utilizziamo ad esempio il seguente:

Settiamo, come al solito, il payload:

E LHOST e SESSION (verificare sempre con il comando “show options”):

Digitiamo “exploit” per lanciare l’attacco. In questo caso avremo esito positivo e risulteremo utenti SYSTEM:

UTILIZZO DEL MODULO “MIMIKATZ”

Il tool “Mimikatz” presente in Metasploit, ci permetterà di raccogliere le credenziali della macchina a cui siamo loggati.

E’ necessario avere una sessione meterpreter stabilita ed avere i privilegi SYSTEM.

Prima di tutto deve essere caricato il modulo in Metasploit con il comando “load mimiakatz”. Successivamente si digita il comando “wdigest”, e il risultato è il seguente:

E’ stato effettuato l’hash della password direttamente dalla memoria del sistema e abbiamo ottenuto le credenziali in chiaro.

INSTALLAZIONE DI UNA BACKDOOR SUL SISTEMA BERSAGLIO

Installiamo adesso una “backdoor” sul sistema bersaglio così da rendere la sessione meterpreter persistente a tutti gli effetti, per poter tornare sul sistema bersaglio ogni volta che lo riterremo opportuno.

Ricordiamoci comunque che a fine dell’ingaggio quest’ultima deve essere rimossa.

Innanzitutto dobbiamo avere la sessione meterpreter già stabilità con privilegi “SYSTEM” o “Administrator”.

La backdoor che utilizzeremo verrà installata su una chiave di registro della macchina bersaglio con la possibilità di farla partire ad ogni avvio della macchina.

Il modulo è denominato “PERSISTENCE” e queste sono le opzioni:

Nello specifico:

Nel dettaglio:

  • L’opzione “-X” avvia la backdoor ad ogni avvio del sistema.
  • L’opzione “-p 8081” è la porta su cui il sistema attaccante resterà in ascolto.
  • L’opzione “-r” specifica l’indirizzo IP della macchina attaccante.
  • L’opzione “-i 5” è l’intervallo in secondi tra ogni tentativo di connessione.

Di seguito osserviamo le chiavi di registro su cui è stata installata la backdoor:

Proviamo adesso un riavvio della macchina bersaglio e verifichiamo che venga creata automaticamente una shell meterpreter.

Se facciamo cadere la sessione, essa verrà ristabilita dopo 5 secondi grazie all’opzione “-i 5”, specificata in precedenza.

MAPPING DELLA RETE INTERNA

Il passo successivo in fase di exploitation, è il mapping della rete interna per scoprire altri eventuali host.

Il primo comando utile è “ipconfig”, per avere una panoramica delle interfacce di rete eventualmente disponibili.

Poi, tramite “route print”, possiamo analizzare la tabella di routing della macchina in oggetto così da iniziare a disegnare la mappa della rete interna.

Il comando “arp -a” ci offre evidenza di tutte le macchine connesse a quel determinato segmento di rete.

Le connessioni attive sulla macchina si possono visualizzare con il comando “netstat -an”:

Direttamente dalla shell meterpreter possiamo lanciare un ARP scanning sull’intera sottorete:

Altrimenti possiamo effettuare un “ping sweep” per scoprire altre nuove macchine connesse a quella specifica sottorete:

Aggiungi un commento

Articoli recenti

Categorie