Cu acest articol începem o serie de publicații despre malware evaziv. Programele de hacking fără fișiere, cunoscute și sub numele de programe de hacking fără fișiere, folosesc de obicei PowerShell pe sistemele Windows pentru a rula în tăcere comenzi pentru a căuta și a extrage conținut valoros. Detectarea activității hackerilor fără fișiere rău intenționate este o sarcină dificilă, deoarece... antivirusurile și multe alte sisteme de detectare funcționează pe baza analizei semnăturilor. Dar vestea bună este că un astfel de software există. De exemplu,
Când am început să cercetez subiectul hackerilor răi,
Marele și Puternicul PowerShell
Am mai scris despre unele dintre aceste idei în
Pe lângă mostrele în sine, pe site puteți vedea ce fac aceste programe. Analiza hibridă rulează malware în propriul sandbox și monitorizează apelurile de sistem, procesele care rulează și activitatea în rețea și extrage șiruri de text suspecte. Pentru fișiere binare și alte fișiere executabile, de ex. unde nici măcar nu poți privi codul real de nivel înalt, analiza hibridă decide dacă software-ul este rău intenționat sau doar suspect pe baza activității sale de rulare. Și după aceea eșantionul este deja evaluat.
În cazul PowerShell și al altor exemple de scripturi (Visual Basic, JavaScript etc.), am putut vedea codul în sine. De exemplu, am dat peste această instanță PowerShell:
De asemenea, puteți rula PowerShell în codificare base64 pentru a evita detectarea. Observați utilizarea parametrilor Noninteractiv și Hidden.
Dacă ați citit postările mele despre ofuscare, atunci știți că opțiunea -e specifică că conținutul este codificat în base64. Apropo, analiza hibridă ajută și la acest lucru, decodând totul înapoi. Dacă doriți să încercați dvs. să decodați base64 PowerShell (denumit în continuare PS), trebuie să rulați această comandă:
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))
Mergi mai adânc
Am decodat scriptul nostru PS folosind această metodă, mai jos este textul programului, deși ușor modificat de mine:
Rețineți că scriptul a fost legat de data de 4 septembrie 2017 și a transmis cookie-uri de sesiune.
Am scris despre acest stil de atac în
Ce face?
Pentru software-ul de securitate care scanează jurnalele de evenimente Windows sau paravanele de protecție, codarea în bază64 împiedică detectarea șirului „WebClient” de un model de text simplu pentru a proteja împotriva efectuării unei astfel de solicitări web. Și din moment ce tot „răul” malware-ului este apoi descărcat și trecut în PowerShell-ul nostru, această abordare ne permite astfel să evităm complet detectarea. Sau, mai degrabă, asta am crezut la început.
Se pare că, cu Windows PowerShell Advanced Logging activat (vezi articolul meu), veți putea vedea linia încărcată în jurnalul de evenimente. eu sunt ca
Să adăugăm scenarii suplimentare
Hackerii ascund în mod inteligent atacurile PowerShell în macrocomenzile Microsoft Office scrise în Visual Basic și în alte limbaje de scripting. Ideea este ca victima sa primeasca un mesaj, de exemplu de la un serviciu de livrare, cu un raport atasat in format .doc. Deschideți acest document care conține macrocomanda și ajunge să lanseze PowerShell rău intenționat.
Adesea, scriptul Visual Basic în sine este obscurcat, astfel încât să se sustragă în mod liber antivirus și alte scanere malware. În spiritul celor de mai sus, am decis să codific PowerShell de mai sus în JavaScript ca exercițiu. Mai jos sunt rezultatele muncii mele:
JavaScript obscurcat care ascunde PowerShell-ul nostru. Hackerii adevărați fac asta o dată sau de două ori.
Aceasta este o altă tehnică pe care am văzut-o plutind pe web: folosind Wscript.Shell pentru a rula PowerShell codificat. Apropo, JavaScript în sine este
În cazul nostru, scriptul JS rău intenționat este încorporat ca fișier cu extensia .doc.js. Windows va afișa de obicei doar primul sufix, așa că va apărea victimei ca un document Word.
Pictograma JS apare numai în pictograma de defilare. Nu este surprinzător că mulți oameni vor deschide acest atașament crezând că este un document Word.
În exemplul meu, am modificat PowerShell de mai sus pentru a descărca scriptul de pe site-ul meu. Scriptul PS de la distanță imprimă doar „Evil Malware”. După cum puteți vedea, el nu este deloc rău. Desigur, adevărații hackeri sunt interesați să obțină acces la un laptop sau un server, să zicem, printr-un shell de comandă. În următorul articol, vă voi arăta cum să faceți acest lucru folosind PowerShell Empire.
Sper că pentru primul articol introductiv nu ne-am scufundat prea adânc în subiect. Acum vă voi lăsa să respirați, iar data viitoare vom începe să ne uităm la exemple reale de atacuri care utilizează programe malware fără fișiere, fără cuvinte introductive sau pregătire inutile.
Sursa: www.habr.com