A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3

Cù questu articulu compiemu a seria di publicazioni dedicate à l'analisi di software maliziusi. IN a prima parte Avemu realizatu un analisi detallatu di un schedariu infettatu chì una cumpagnia europea hà ricevutu per mail è scupertu AgentTesla spyware quì. In seconda parte hà descrittu i risultati di un analisi passu à passu di u modulu principale AgentTesla.

Oghje Ilya Pomerantsev, un specialistu in l'analisi di malware in CERT Group-IB, parlerà di a prima tappa di l'analisi di malware - unpacking semi-automaticu di campioni AgentTesla utilizendu l'esempiu di trè mini-casi da a pratica di specialisti CERT Group-IB.

Di genere, a prima tappa in l'analisi di malware hè a rimuzione di prutezzione in forma di packer, cryptor, protettore o caricatore. In a maiò parte di i casi, stu prublema pò esse risolta cù u malware è eseguisce un dump, ma ci sò situazioni induve stu metudu ùn hè micca adattatu. Per esempiu, se u malware hè un encryptor, se prutege e so regioni di memoria da esse scaricate, se u codice cuntene miccanismi di deteczione di a macchina virtuale, o se u malware reboots immediatamenti dopu avè principiatu. In tali casi, u dispacking chjamatu "semi-automaticu" hè utilizatu, vale à dì chì l'investigatore hà un cuntrollu tutale di u prucessu è pò intervene in ogni mumentu. Cunsideremu sta prucedura utilizendu trè campioni di a famiglia AgentTesla cum'è un esempiu. Questu hè un malware relativamente innocu se disattivate u so accessu à a rete.

Esempiu n ° 1

U schedariu fonte hè un documentu MS Word chì sfrutta a vulnerabilità CVE-2017-11882.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
In u risultatu, a carica hè scaricata è lanciata.

L'analisi di l'arburu di prucessu è i marcatori di cumportamentu mostra l'iniezione in u prucessu RegAsm.exe.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Ci sò marcatori di cumpurtamentu caratteristiche di AgentTesla.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
L'esempiu telecaricatu hè quellu eseguibile .net-file prutettu da un protettore .NET Reactor.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Apertemu in l'utilità dnSpy x86 è andate à u puntu di entrata.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Andendu à a funzione DateTimeOffset, Truveremu u codice di inizializazione per u novu .net- modulu. Mettimu puntu di rumpitura nantu à a linea chì ci interessa è eseguisce u schedariu.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
In unu di i buffer restituiti pudete vede a firma MZ (0x4D 0x5A). Salvemu.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Un schedariu eseguibile dumped hè una biblioteca dinamica chì hè un caricatore, i.e. estrae a carica utile da a sezione di risorse è lancia.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
À u listessu tempu, i risorse necessarii stessi ùn sò micca prisenti in u dump. Sò in u sample parent.

Utilità dnSpy hà duie funziunalità estremamente utili chì ci aiuteranu abbastanza rapidamente à creà un "Frankenstein" da dui schedarii rilativi.

  1. U primu permette di "incollà" una biblioteca dinamica in u sample parenti.

    A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3

  2. U sicondu hè di riscrive u codice di funzione à u puntu di ingressu per chjamà u metudu desideratu di a biblioteca dinamica inserita.

    A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3

Salvemu u nostru "Frankenstein", set puntu di rumpitura nantu à a linea chì torna un buffer cù risorse decriptate, è pruduce un dump per analogia cù a tappa precedente.

U sicondu dump hè scrittu in VB.NET un schedariu eseguibile chì hè prutettu da un protettore familiarizatu per noi ConfuserEx.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Dopu avè sguassatu u protettore, usemu e regule YARA scritte prima è assicuratevi chì u malware unpacked hè veramente AgentTesla.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3

Esempiu n ° 2

U schedariu fonte hè un documentu MS Excel. Una macro integrata provoca l'esecuzione di codice maliziusu.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
In u risultatu, u script PowerShell hè lanciatu.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
U script decrypts u codice C# è trasferisce u cuntrollu. U codice stessu hè un bootloader, cum'è pò ancu esse vistu da u rapportu di sandbox.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
U payload hè un eseguibile .net- schedariu.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Apertura di u schedariu in dnSpy x86, pudete vede chì hè offuscata. Eliminà l'obfuscazione cù l'utilità de4 punti è torna à l'analisi.

Quandu esaminà u codice, pudete scopre a seguente funzione:

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
E linee codificate sò impressiunanti Puntu d'entrata и Invoca. Mettimu puntu di rumpitura à a prima linea, eseguite è salvà u valore di buffer byte_0.

U dump hè di novu una applicazione .net è prutetta ConfuserEx.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Rimuovemu l'obfuscazione usendu de4 punti è carica à dnSpy. Da a discrizzione di u schedariu avemu capitu chì avemu affruntatu Caricatore CyaX-Sharp.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Stu caricatore hà una larga funziunalità anti-analisi.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Questa funziunalità include l'annullamentu di i sistemi di prutezzione integrati di Windows, disattivà Windows Defender, è ancu i meccanismi di rilevazione di sandbox è di macchina virtuale. Hè pussibule carricà u payload da a reta o almacenà in a seccione di risorse. U lanciamentu hè realizatu per iniezione in u so propiu prucessu, in un duplicatu di u so propiu prucessu, o in prucessi MSBuild.exe, vbc.exe и RegSvcs.exe sicondu u paràmetru sceltu da l'attaccante.

Tuttavia, per noi sò menu significati chè AntiDump-funzione chì aghjunghje ConfuserEx. U so codice fonte pò esse trovu à GitHub.

Per disattivà a prutezzione, useremu l'oppurtunità dnSpy, chì permette di edità IL- codice.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Salvà è stallà puntu di rumpitura à a linea di chjamà a funzione di decryption di carichi. Hè situatu in u custruttore di a classa principale.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Lanciamu è scaricate a carica utile. Utilizendu e regule YARA scritte prima, avemu assicuratu chì questu hè AgentTesla.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3

Esempiu n ° 3

U schedariu fonte hè l'eseguibile VB nativu PE32- schedariu.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
L'analisi di l'entropia mostra a presenza di un grande pezzu di dati criptati.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Quandu analizà u modulu di candidatura in VB Decompiler pudete nutà un stranu fondu pixelatu.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Graficu di l'entropia bmp-image hè identica à u graficu di entropia di u schedariu originale, è a dimensione hè 85% di a dimensione di u schedariu.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
L'aspettu generale di l'imaghjini indica l'usu di steganografia.

Fighjemu attente à l'apparizione di l'arbulu di prucessu, è ancu a presenza di un marcatu di iniezione.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Questu indica chì u disimballamentu hè in corso. Per i caricatori di Visual Basic (aka VBKrypt o VBInjector) usu tipicu shellcode per inizializà a carica utile, è ancu per fà l'iniezione stessu.

Analisi in VB Decompiler dimustrava a prisenza di un avvenimentu Load à a forma FegatassocAirballoon2.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Andemu à IDA pro à l'indirizzu specificatu è studià a funzione. U codice hè assai oscuratu. U frammentu chì ci interessa hè prisentatu quì sottu.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Quì u spaziu di indirizzu di u prucessu hè scansatu per una firma. Stu approcciu hè assai dubbitu.

Prima, l'indirizzu iniziale di scanning 0x400100. Stu valore hè staticu è ùn hè micca aghjustatu quandu a basa hè cambiata. In cundizioni ideali di serra indicà a fine PE- l'intestazione di u schedariu eseguibile. In ogni casu, a basa di dati ùn hè micca statica, u so valore pò cambià, è a ricerca di l'indirizzu veru di a firma necessaria, ancu s'ellu ùn pruvucarà micca un overflow variabile, pò piglià assai tempu.

Siconda, u significatu di a firma iWGK. Pensu chì hè ovvi chì 4 bytes hè troppu chjucu per guarantiscenu l'unicità. È se tenete in contu u primu puntu, a probabilità di fà un sbagliu hè abbastanza alta.

In fatti, u frammentu necessariu hè attaccatu à a fine di l'attuale trovu bmp-Immagini per offset 0xA1D0D.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Rendimentu Shellcode realizatu in dui fasi. U primu decifra u corpu principale. In questu casu, a chjave hè determinata da a forza bruta.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Dump the decrypted one Shellcode è fighjate à e linee.

Prima, sapemu avà a funzione per creà un prucessu di u zitellu: Crea ProcessInternalW.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Siconda, avemu fattu cuscenza di u miccanisimu di fissazione in u sistema.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Riturnemu à u prucessu originale. Mettimu puntu di rumpitura nantu Crea ProcessInternalW è cuntinuà l'esecuzione. Dopu vedemu a cunnessione NtGetContextThread/NtSetContextThread, chì cambia l'indirizzu iniziale di l'esekzione à l'indirizzu ShellCode.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Cunnettamu à u prucessu creatu cù un debugger è attivemu l'avvenimentu Suspende nantu à a biblioteca o carica / scaricate, ripiglià u prucessu è aspettate u caricamentu .net- biblioteche.

Utilizendu più ProcessHacker dump regioni chì cuntenenu unpacked .net- applicazione.

Firmemu tutti i prucessi è sguassate a copia di u malware chì hè diventatu incrustatu in u sistema.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
U schedariu dumped hè prutettu da un protettore .NET Reactor, chì pò esse facilmente eliminatu cù una utilità de4 punti.

A participazione hà fiascatu: espunemu AgentTesla à l'acqua pulita. Parte 3
Utilizendu e regule YARA scritte prima, assicuremu chì questu hè AgentTesla.

Impariscamu

Cusì, avemu dimustratu in dettagliu u prucessu di disimballamentu di campionu semi-automaticu utilizendu trè mini-casi cum'è un esempiu, è ancu analizatu malware basatu annantu à un casu cumpletu, scopre chì l'esempiu studiatu hè AgentTesla, stabilendu a so funziunalità è un lista cumpleta di indicatori di cumprumissu.

L'analisi di l'ughjettu maliziusi chì avemu realizatu richiede assai tempu è sforzu, è questu travagliu deve esse realizatu da un impiigatu speciale in a cumpagnia, ma micca tutti l'imprese sò pronti à impiegà un analista.

Unu di i servizii furniti da u Laboratoriu Group-IB di Computer Forensics è Analisi di Codici Maliziusi hè a risposta à incidenti cibernetici. È cusì chì i clienti ùn perdi micca u tempu appruvendu documenti è discutendu in mezu à un attaccu ciberneticu, Group-IB hà lanciatu Retainer di Risposta à l'Incident, un serviziu di risposta à incidenti di pre-abbonamentu chì include ancu un passu di analisi di malware. Più infurmazione nantu à questu pò esse truvata ccà.

Se vulete una volta studià cumu i campioni di AgentTesla sò sbulicati è vede cumu fà un specialista CERT Group-IB, pudete scaricà a registrazione di u webinar nantu à questu tema. ccà.

Source: www.habr.com

Add a comment