
Scriem periodic despre cum hackerii se bazează adesea pe utilizarea , pentru a evita detectarea. Ei practic , folosind instrumente standard Windows, eludând astfel antivirusurile și alte utilitare de detectare a activităților malițioase. Noi, ca apărători, suntem acum nevoiți să ne confruntăm cu consecințele triste ale acestor tehnici perfide de hacking: un angajat bine poziționat poate folosi aceeași abordare pentru a fura date în secret (proprietatea intelectuală a companiei, numere de carduri de credit). Și dacă el nu se grăbește, ci lucrează încet și discret, va fi extrem de greu — dar totuși posibil, dacă se aplică abordarea corectă și corespondența , — a identifica o astfel de activitate.
Pe de altă parte, nu mi-ar plăcea să demonizez angajații, deoarece nimeni nu dorește să lucreze într-un mediu de afaceri direct din „1984” al lui Orwell. Din fericire, există câteva măsuri practice și soluții care pot complica semnificativ viața insiderilor. Vom analiza metodele ascunse de atac, utilizate de hackerii angajați cu un oarecare fundal tehnic. Apoi, vom discuta despre opțiunile pentru reducerea acestor riscuri – vom explora atât opțiunile tehnice, cât și cele organizaționale.
Ce este rău în PsExec?
Edward Snowden a devenit, pe bună dreptate sau nu, sinonim cu furtul de date din interior. Apropo, nu uitați să aruncați o privire la despre alți insideri care merită, de asemenea, un anumit statut de notorietate. Este important să subliniem un aspect referitor la metodele folosite de Snowden — așa cum știm, el nu a instalat niciun software malițios extern!
Dimpotrivă, Snowden a utilizat puțină inginerie socială și a profitat de poziția sa de administrator de sistem pentru a colecta parole și a crea conturi. Nimic complicat — fără , atacuri sau .
Angajații organizațiilor nu se află întotdeauna într-o poziție unică ca Snowden, dar din conceptul „supraviețuirii cu resturi” se pot extrage câteva lecții de care ar trebui să țină cont — să nu întreprindă nicio acțiune malițioasă care poate fi detectată și, în special, să folosească datele de acreditive cu precauție. Amintiți-vă această idee.
și verii săi au impresionat numeroși pen-testeri, hackeri și bloggeri de securitate informatică. Iar în combinație cu mimikatz, psexec permite atacatorilor să se miște în interiorul rețelei fără a necesita cunoașterea parolei în mod deschis.
Mimikatz interceptă hash-ul NTLM al procesului LSASS, apoi transmite un token sau datele de autentificare - așa-numita atac „pass the hash” – în psexec, permițând atacatorului să se conecteze pe un alt server în numele altui utilizator. Și cu fiecare mișcare ulterioară pe un server nou, atacatorul colectează date de autentificare suplimentare, extinzându-și modalitățile de a căuta conținut disponibil.
Când am început pentru prima dată să lucrez cu psexec, mi s-a părut pur și simplu magic – mulțumesc , genialul creator al psexec, – dar știu de asemenea și despre componentele sale zgomotoase . Nu este deloc discret!
Primul fapt interesant despre psexec este că utilizează un protocol de fișiere de rețea SMB de la Microsoft. Prin intermediul SMB, psexec transferă mici fișiere binare pe sistemul țintă, plasându-le în folderul C:Windows. Apoi, psexec creează un serviciu Windows folosind binarul copiat și îl lansează sub un nume foarte "neobișnuit", PSEXECSVC. În acest timp, puteți vedea toate acestea, la fel cum am făcut și eu, observând mașina de la distanță (vezi mai jos).
Cartela de vizită Psexec: serviciul „PSEXECSVC”. Acesta rulează un fișier binar care a fost plasat prin SMB în folderul C:Windows.

Ca etapă finală, fișierul binar copiat deschide
o conexiune RPC la serverul țintă și apoi primește comenzi de control (în mod implicit – prin shell-ul cmd Windows), executându-le și redirecționând intrarea și ieșirea către mașina de acasă a atacatorului. În acest fel, atacatorul vede consola de bază – la fel ca și cum ar fi fost conectat direct. Multe componente și un proces foarte zgomotos!
Mecanismul complicat al proceselor interne ale psexec explică mesajul care m-a nedumerit în timpul primelor mele teste acum câțiva ani: „Starting PSEXECSVC …” și pauza ulterioară înainte de apariția consolei.
Psexec de la Impacket arată în realitate ce se întâmplă „sub capotă".

Psexec de la Impacket arată efectiv ce se întâmplă „sub capotă”.
Nu este surprinzător: psexec a realizat o cantitate imensă de muncă "sub capot". Dacă te interesează o explicație mai detaliată, consultă descriere minunată.
Este evident că, utilizat ca instrument de administrare a sistemului, care era scopul său inițial psexec, nu există nimic în neregulă cu "zumzetul" tuturor acestor mecanisme Windows. Pentru un atacator, însă, psexec va crea complicații, iar pentru un insider precaut și isteț, cum ar fi Snowden, psexec sau o utilitară similară va reprezenta un risc prea mare.
Și aici intervine Smbexec
SMB este un mod ingenios și subtil de a transfera fișiere între servere, iar hackerii s-au infiltrat direct în SMB din cele mai vechi timpuri. Cred că toată lumea știe că nu trebuie porturile SMB 445 și 139 către internet, nu-i așa?
În 2013, la Defcon, Eric Milman () a prezentat , astfel încât testatorii de penetrare să poată încerca atacul subtil asupra SMB. Nu cunosc toată povestea, dar apoi Impacket a rafinat și mai mult smbexec. De fapt, pentru testarea mea am descărcat scripturi de la Impacket în Python de la .
Spre deosebire de psexec, smbexec evită transferul unui fișier binar potențial detectabil pe mașina țintă. În schimb, utilitară funcționează complet din "mâncare" prin rularea comenzii locale de linie de comandă Windows.
Iată ce face: transmite o comandă de pe mașina atacatorului prin SMB într-un fișier special de intrare, iar apoi creează și rulează o linie de comandă complexă (ca un serviciu Windows), care le va părea familiară utilizatorilor de Linux. Pe scurt: pornește shell-ul nativ cmd Windows, redirecționează ieșirea într-un alt fișier și apoi îl trimite prin SMB înapoi pe mașina atacatorului.
Cel mai bun mod de a înțelege acest lucru va fi să studiez linia de comandă pe care am reușit să o obțin din jurnalul evenimentelor (vezi mai jos).

Nu este acesta cea mai mare metodă de redirecționare a inputului/outputului? Apropo, crearea unui serviciu are un identificator de eveniment 7045.
La fel ca psexec, creează de asemenea un serviciu care își îndeplinește toată munca, dar serviciul este apoi șters – este folosit o singură dată pentru a rula comanda și apoi dispare! Un angajat în domeniul securității informației care observă mașina victimei nu va putea descoperi nimic evident indicatoare de atac: nu există fișiere executabile malițioase, nu se instalează servicii persistente și nu există dovezi ale utilizării RPC, deoarece SMB este singurul mijloc de transmitere a datelor. Genial!
Din partea atacatorului, există un «pseudo-shell» cu întârzieri între trimiterea unei comenzi și primirea unui răspuns. Dar acest lucru este suficient pentru ca un atacator – fie un insider, fie un hacker extern care are deja un teren de desfășurare – să înceapă căutarea unui conținut interesant.

Pentru a retransmite datele de la mașina țintă la mașina atacatorului, se folosește . Da, este aceeași Samba , dar reprogramată sub script Python de către Impacket. De fapt, smbclient vă permite să organizați în mod discret transferul FTP peste SMB.
Să facem un pas înapoi și să ne gândim la ce ar putea însemna asta pentru un angajat. În scenariul meu fictiv, să spunem că unui blogger, unui analist financiar sau unui consultant de securitate bine plătit i se permite să folosească un laptop personal pentru muncă. Ca urmare a unui anumit proces magic, se supără pe companie și «se lasă dusă de val». În funcție de sistemul de operare al laptopului, folosește fie versiunea Python de la Impact, fie versiunea Windows smbexec sau smbclient sub formă de fișier .exe.
Ca și Snowden, află parola unui alt utilizator fie spionând-o pe furiș, fie având noroc și dându-se peste un fișier text cu parola. Și cu aceste date de acreditive, începe să sape în sistem la un nou nivel de privilegii.
Spargerea DCC: nu avem nevoie de niciun «instrument stupid» Mimikatz
În postările mele anterioare despre pentesting, am folosit foarte des mimikatz. Este un instrument minunat pentru interceptarea acreditivelor – hash-uri NTLM și chiar parole în clar, ascunse în interiorul laptopurilor, așteptând să fie folosite.
Timpii s-au schimbat. Instrumentele de monitorizare s-au îmbunătățit în detectarea și blocarea mimikatz. Administrațiile de securitate informațională au, de asemenea, un număr mai mare de opțiuni pentru reducerea riscurilor asociate atacurilor de tip «pass the hash» (PtH).
Deci, ce ar trebui să facă un angajat inteligent pentru a aduna acreditive suplimentare fără a folosi mimikatz?
Pachetul de la Impacket include o utilitate denumită , care extrage datele de autentificare din cache-ul Domain Credential Cache, sau pe scurt DCC. Din câte înțeleg, dacă un utilizator de domeniu se conectează la server, dar controlerul de domeniu nu este disponibil, DCC permite serverului să autentifice utilizatorul. Oricum, secretsdump vă permite să extrageți toate aceste hash-uri, dacă sunt disponibile.
Hash-urile DCC sunt nu hash-uri NTML și ai lor nu pot fi folosite pentru un atac PtH.
Ei bine, puteți încerca să le spargeți pentru a obține parola originală. Cu toate acestea, Microsoft a devenit mai inteligentă în ceea ce privește DCC și spargerea hash-urilor DCC a devenit extrem de dificilă. Da, există , «cel mai rapid generator de parole din lume», dar necesită un GPU pentru a funcționa eficient.
În schimb, să încercăm să gândim ca Snowden. Un angajat poate realiza inginerie socială față în față și, posibil, să afle informații despre persoana al cărei parolă dorește să o spargă. De exemplu, să afle dacă contul online al acestei persoane a fost vreodată spart și să analizeze parola în clar pentru orice sugestii.
Și acesta este scenariul pe care am decis să urmez. Să presupunem că un insider a aflat că șeful său, Cruella, a fost spart de mai multe ori pe diferite site-uri web. După analiza mai multor astfel de parole, el își dă seama că Cruella preferă să folosească formatul numelui echipei de baseball «Yankees» urmat de anul curent – «Yankees2015».
Dacă încerci acum să reproduci asta acasă, poți descărca un mic «C» , care implementează algoritmul de hashing DCC, și îl poți compila. , apropo, a adăugat suport pentru DCC, așa că poate fi, de asemenea, folosit. Să presupunem că insider-ul nu vrea să se ocupe de studierea John the Ripper și îi place să ruleze «gcc» pe codul C învechit.
Înfățișând rolul insider-ului, am rulat mai multe combinații diferite și, în cele din urmă, am reușit să descopăr că parola lui Cruella este «Yankees2019» (vezi mai jos). Misiune îndeplinită!

Puțină inginerie socială, o fărâmă de ghicit și un praf de Maltego – și deja ești pe calea de a sparge hash-ul DCC.
Propun să încheiem aici. Ne vom întoarce la această problemă în alte publicații și vom explora și alte metode de atac lente și ascunse, continuând să ne bazăm pe un set minunat de utilitare de la Impacket.
Sursa: habr.com
