Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa

Ar Å”o rakstu mēs pabeidzam publikāciju sēriju, kas veltÄ«ta ļaunprātÄ«gas programmatÅ«ras analÄ«zei. IN pirmā daļa Mēs veicām detalizētu inficētā faila analÄ«zi, ko Eiropas uzņēmums saņēma pa pastu, un atklājām tajā AgentTesla spiegprogrammatÅ«ru. In otrā daļa aprakstÄ«ja galvenā AgentTesla moduļa soli pa solim analÄ«zes rezultātus.

Å odien Iļja Pomerancevs, CERT Group-IB ļaunprātÄ«gas programmatÅ«ras analÄ«zes speciālists, runās par ļaunprogrammatÅ«ras analÄ«zes pirmo posmu - AgentTesla paraugu pusautomātisko izsaiņoÅ”anu, izmantojot trÄ«s mini gadÄ«jumu piemēru no CERT Group-IB speciālistu prakses.

Parasti ļaunprogrammatÅ«ras analÄ«zes pirmais posms ir aizsardzÄ«bas noņemÅ”ana pakotnes, Å”ifrētāja, aizsarga vai ielādētāja veidā. Vairumā gadÄ«jumu Å”o problēmu var atrisināt, palaižot ļaunprogrammatÅ«ru un veicot izgāztuves, taču ir situācijas, kad Ŕī metode nav piemērota. Piemēram, ja ļaunprogrammatÅ«ra ir Å”ifrētājs, ja tā aizsargā savus atmiņas apgabalus no dumpinga, ja kodā ir ietverti virtuālās maŔīnas noteikÅ”anas mehānismi vai ja ļaunprātÄ«ga programmatÅ«ra tiek atsāknēta tÅ«lÄ«t pēc palaiÅ”anas. Šādos gadÄ«jumos tiek izmantota tā sauktā ā€œpusautomātiskāā€ izpakoÅ”ana, tas ir, pētnieks pilnÄ«bā kontrolē procesu un var iejaukties jebkurā laikā. ApskatÄ«sim Å”o procedÅ«ru, kā piemēru izmantojot trÄ«s AgentTesla saimes paraugus. Å Ä« ir salÄ«dzinoÅ”i nekaitÄ«ga ļaunprātÄ«ga programmatÅ«ra, ja atspējojat tās piekļuvi tÄ«klam.

Paraugs Nr.1

Avota fails ir MS Word dokuments, kas izmanto ievainojamību CVE-2017-11882.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Rezultātā krava tiek lejupielādēta un palaista.

Procesa koka un uzvedības marķieru analīze parāda ievadīŔanu procesā RegAsm.exe.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Ir AgentTesla raksturīgie uzvedības marķieri.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Lejupielādētais paraugs ir izpildāmais NET.-fails, ko aizsargā aizsargs .NET reaktors.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Atvērsim to utilītprogrammā dnSpy x86 un pārejiet uz ieejas punktu.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Dodoties uz funkciju DateTimeOffset, mēs atradīsim inicializācijas kodu jaunajam NET.- modulis. Liekam pārtraukuma punkts uz līnijas, kas mūs interesē, un palaidiet failu.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Vienā no atgrieztajiem buferiem var redzēt MZ parakstu (0x4D 0x5A). Saglabāsim to.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Izmests izpildāmais fails ir dinamiska bibliotēka, kas ir ielādētājs, t.i. izvelk lietderīgo slodzi no resursu sadaļas un palaiž to.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Tajā paŔā laikā paÅ”i nepiecieÅ”amie resursi izgāztuvē neatrodas. Tie ir vecāku izlasē.

LietderÄ«ba dnSpy ir divas ārkārtÄ«gi noderÄ«gas funkcijas, kas mums palÄ«dzēs diezgan ātri izveidot ā€œFrankenÅ”teinuā€ no diviem saistÄ«tiem failiem.

  1. Pirmais ļauj ā€œielÄ«mētā€ dinamisko bibliotēku vecāka paraugā.

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa

  2. Otrais ir pārrakstīt funkcijas kodu ieejas punktā, lai izsauktu ievietotās dinamiskās bibliotēkas vēlamo metodi.

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa

Saglabājam savu ā€œFrankenÅ”teinuā€, komplektu pārtraukuma punkts rindā, kas atgriež buferi ar atÅ”ifrētiem resursiem, un izveido izgāztuves pēc analoÄ£ijas ar iepriekŔējo posmu.

Otrā izgāztuve ir ierakstīta VB.NET izpildāms fails, ko aizsargā mums pazīstams aizsargs ConfuserEx.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Pēc aizsarga noņemÅ”anas mēs izmantojam iepriekÅ” rakstÄ«tos YARA noteikumus un pārliecināmies, ka izpakotā ļaunprogrammatÅ«ra patieŔām ir AgentTesla.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa

Paraugs Nr.2

Avota fails ir MS Excel dokuments. Iebūvēts makro izraisa ļaunprātīga koda izpildi.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Rezultātā tiek palaists PowerShell skripts.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Skripts atÅ”ifrē C# kodu un nodod tam kontroli. Pats kods ir sāknÄ“Å”anas ielādētājs, kā to var redzēt arÄ« no smilÅ”kastes pārskata.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Lietderīgā slodze ir izpildāma NET.- fails.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Faila atvērÅ”ana iekŔā dnSpy x86, var redzēt, ka tas ir apmulsis. Apmulsuma noņemÅ”ana, izmantojot utilÄ«tu de4dot un atgriezties pie analÄ«zes.

Pārbaudot kodu, jūs varat atklāt Ŕādu funkciju:

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Kodētās lÄ«nijas ir pārsteidzoÅ”as Ieejas punkts Šø piesaukt. Mēs liekam pārtraukuma punkts uz pirmo rindiņu, palaidiet un saglabājiet bufera vērtÄ«bu baits_0.

Izgāztuve atkal ir lietojumprogramma NET. un aizsargāts ConfuserEx.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Mēs noņemam neskaidrÄ«bas, izmantojot de4dot un augÅ”upielādēt uz dnSpy. No faila apraksta mēs saprotam, ar ko mēs saskaramies CyaX-Sharp iekrāvējs.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Å im iekrāvējam ir plaÅ”a pretanalÄ«zes funkcionalitāte.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Å Ä« funkcionalitāte ietver iebÅ«vēto Windows aizsardzÄ«bas sistēmu apieÅ”anu, Windows Defender atspējoÅ”anu, kā arÄ« smilÅ”kastes un virtuālās maŔīnas noteikÅ”anas mehānismus. Ir iespējams ielādēt kravnesÄ«bu no tÄ«kla vai uzglabāt resursu sadaļā. PalaiÅ”ana tiek veikta, ievadot savā procesā, sava procesa dublikātā vai procesos MSBuild.exe, vbc.exe Šø RegSvcs.exe atkarÄ«bā no uzbrucēja izvēlētā parametra.

Tomēr mums tie ir mazāk nozīmīgi nekā Antidempings-funkcija, kas papildina ConfuserEx. Tās avota kodu var atrast vietnē GitHub.

Lai atspējotu aizsardzību, mēs izmantosim iespēju dnSpy, kas ļauj rediģēt IL-kods.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Saglabājiet un instalējiet pārtraukuma punkts uz lietderÄ«gās slodzes atÅ”ifrÄ“Å”anas funkcijas izsaukÅ”anas lÄ«niju. Tas atrodas galvenās klases konstruktorā.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Mēs palaižam un izmetam kravnesÄ«bu. Izmantojot iepriekÅ” rakstÄ«tos YARA noteikumus, mēs pārliecināmies, ka tas ir AgentTesla.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa

Paraugs Nr.3

Avota fails ir izpildāmais fails VB Native PE32- fails.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Entropijas analÄ«ze parāda liela Å”ifrētu datu daļas klātbÅ«tni.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Analizējot pieteikuma veidlapu in VB dekompilators jūs varat pamanīt dīvainu pikseļu fonu.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Entropijas grafiks bmp-image ir identisks oriģinālā faila entropijas grafikam, un izmērs ir 85% no faila lieluma.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Attēla vispārējais izskats norāda uz steganogrāfijas izmantoÅ”anu.

Pievērsīsim uzmanību procesa koka izskatam, kā arī injekcijas marķiera klātbūtnei.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Tas norāda, ka notiek izpakoÅ”ana. Visual Basic iekrāvējiem (aka VBKrypt vai VBI inžektors) tipisks lietojums čaulas kods lai inicializētu kravnesÄ«bu, kā arÄ« veiktu paÅ”u injekciju.

Analīze iekŔā VB dekompilators parādīja notikuma klātbūtni Slodze pie veidlapas FegatassocAirballoon2.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Ejam uz IDA pro uz norādīto adresi un izpēti funkciju. Kods ir stipri aizsegts. Fragments, kas mūs interesē, ir parādīts zemāk.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Šeit procesa adreŔu telpa tiek pārbaudīta, lai iegūtu parakstu. Šī pieeja ir ārkārtīgi apŔaubāma.

Pirmkārt, skenÄ“Å”anas sākuma adrese 0x400100. Å Ä« vērtÄ«ba ir statiska un netiek koriģēta, pārvietojot pamatni. Ideālos siltumnÄ«cas apstākļos tas norādÄ«s beigas PE- izpildāmā faila galvene. Taču datu bāze nav statiska, tās vērtÄ«ba var mainÄ«ties, un vajadzÄ«gā paraksta Ä«stās adreses meklÄ“Å”ana, lai arÄ« tā neizraisÄ«s mainÄ«go pārplÅ«di, var aizņemt ļoti ilgu laiku.

Otrkārt, paraksta nozīme iWGK. Es domāju, ka ir acīmredzams, ka 4 baiti ir pārāk mazs, lai garantētu unikalitāti. Un, ja ņem vērā pirmo punktu, varbūtība kļūdīties ir diezgan augsta.

Faktiski vajadzÄ«gais fragments ir pievienots iepriekÅ” atrastajam galā bmp-attēli ar nobÄ«di 0xA1D0D.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
PiepildÄ«jums Shellcode veikta divos posmos. Pirmais atÅ”ifrē galveno korpusu. Å ajā gadÄ«jumā atslēgu nosaka brutāls spēks.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Izmetiet atÅ”ifrēto Shellcode un paskaties uz lÄ«nijām.

Pirmkārt, mēs tagad zinām funkciju, lai izveidotu bērnu procesu: CreateProcessInternalW.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Otrkārt, mēs apzinājāmies fiksācijas mehānismu sistēmā.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Atgriezīsimies pie sākotnējā procesa. Liekam pārtraukuma punkts par CreateProcessInternalW un turpināt izpildi. Tālāk mēs redzam savienojumu NtGetContextThread/NtSetContextThread, kas maina izpildes sākuma adresi uz adresi ShellCode.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Mēs pieslēdzamies izveidotajam procesam ar atkļūdotāju un aktivizējam notikumu Apturēt bibliotēkas ielādi/izlādÄ“Å”anu, atsāciet procesu un gaidiet ielādi NET.- bibliotēkas.

Turpmāka lietoŔana ProcessHacker izgāztuves reģioni, kuros ir neizpakots NET.-pieteikums.

Mēs apturam visus procesus un izdzÄ“Å”am ļaunprātÄ«gās programmatÅ«ras kopiju, kas ir iegulta sistēmā.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Izmesto failu aizsargā aizsargs .NET reaktors, kuru var viegli noņemt, izmantojot utilītu de4dot.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 3. daļa
Izmantojot iepriekÅ” rakstÄ«tos YARA noteikumus, mēs pārliecināmies, ka tas ir AgentTesla.

Apkopojot

Tātad, mēs detalizēti demonstrējām pusautomātiskās parauga izpakoÅ”anas procesu, kā piemēru izmantojot trÄ«s mini lietas, kā arÄ« analizējām ļaunprātÄ«gu programmatÅ«ru, pamatojoties uz pilnvērtÄ«gu lietu, uzzinot, ka pētāmais paraugs ir AgentTesla, nosakot tā funkcionalitāti un pilns kompromisa rādÄ«tāju saraksts.

Ä»aunprātÄ«gā objekta analÄ«ze, ko mēs veicām, prasa daudz laika un pūļu, un Å”is darbs uzņēmumā bÅ«tu jāveic speciālam darbiniekam, taču ne visi uzņēmumi ir gatavi pieņemt darbā analÄ«tiÄ·i.

Viens no Group-IB Datoru kriminālistikas un ļaunprātÄ«go kodu analÄ«zes laboratorijas sniegtajiem pakalpojumiem ir reaģēŔana uz kiberincidentiem. Un, lai klienti netērētu laiku dokumentu apstiprināŔanai un to apsprieÅ”anai kiberuzbrukuma laikā, Group-IB uzsāka Incidentu reaģēŔanas glabātājs, pirmsabonÄ“Å”anas incidentu reaģēŔanas pakalpojums, kas ietver arÄ« ļaunprātÄ«gas programmatÅ«ras analÄ«zes darbÄ«bu. PlaŔāku informāciju par to var atrast Å”eit.

Ja vēlaties vēlreiz izpētÄ«t, kā tiek izpakoti AgentTesla paraugi, un redzēt, kā to dara CERT Group-IB speciālists, varat lejupielādēt vebināra ierakstu par Å”o tēmu Å”eit.

Avots: www.habr.com

Pievieno komentāru