Ar Å”o rakstu mÄs pabeidzam publikÄciju sÄriju, kas veltÄ«ta ļaunprÄtÄ«gas programmatÅ«ras analÄ«zei. IN
Å 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.
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.
Ir AgentTesla raksturīgie uzvedības marķieri.
LejupielÄdÄtais paraugs ir izpildÄmais NET.-fails, ko aizsargÄ aizsargs .NET reaktors.
AtvÄrsim to utilÄ«tprogrammÄ dnSpy x86 un pÄrejiet uz ieejas punktu.
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.
VienÄ no atgrieztajiem buferiem var redzÄt MZ parakstu (0x4D 0x5A). SaglabÄsim to.
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.
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.
- Pirmais ļauj āielÄ«mÄtā dinamisko bibliotÄku vecÄka paraugÄ.
- Otrais ir pÄrrakstÄ«t funkcijas kodu ieejas punktÄ, lai izsauktu ievietotÄs dinamiskÄs bibliotÄkas vÄlamo metodi.
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.
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.
Paraugs Nr.2
Avota fails ir MS Excel dokuments. IebÅ«vÄts makro izraisa ļaunprÄtÄ«ga koda izpildi.
RezultÄtÄ tiek palaists PowerShell skripts.
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.
LietderÄ«gÄ slodze ir izpildÄma NET.- fails.
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:
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.
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.
Å im iekrÄvÄjam ir plaÅ”a pretanalÄ«zes funkcionalitÄte.
Å Ä« 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Ä
Lai atspÄjotu aizsardzÄ«bu, mÄs izmantosim iespÄju dnSpy, kas ļauj rediÄ£Ät IL-kods.
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Ä.
MÄs palaižam un izmetam kravnesÄ«bu. Izmantojot iepriekÅ” rakstÄ«tos YARA noteikumus, mÄs pÄrliecinÄmies, ka tas ir AgentTesla.
Paraugs Nr.3
Avota fails ir izpildÄmais fails VB Native PE32- fails.
Entropijas analÄ«ze parÄda liela Å”ifrÄtu datu daļas klÄtbÅ«tni.
AnalizÄjot pieteikuma veidlapu in VB dekompilators jÅ«s varat pamanÄ«t dÄ«vainu pikseļu fonu.
Entropijas grafiks bmp-image ir identisks oriÄ£inÄlÄ faila entropijas grafikam, un izmÄrs ir 85% no faila lieluma.
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.
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.
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.
Å 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.
PiepildÄ«jums Shellcode veikta divos posmos. Pirmais atÅ”ifrÄ galveno korpusu. Å ajÄ gadÄ«jumÄ atslÄgu nosaka brutÄls spÄks.
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.
OtrkÄrt, mÄs apzinÄjÄmies fiksÄcijas mehÄnismu sistÄmÄ.
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.
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Ä.
Izmesto failu aizsargÄ aizsargs .NET reaktors, kuru var viegli noÅemt, izmantojot utilÄ«tu de4dot.
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
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
Avots: www.habr.com