Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3

Uban niini nga artikulo among gikompleto ang serye sa mga publikasyon nga gipahinungod sa pagtuki sa malisyosong software. SA ang una nga bahin Naghimo kami usa ka detalyado nga pagtuki sa usa ka nataptan nga file nga nadawat sa usa ka kompanya sa Europe pinaagi sa koreo ug nakit-an ang AgentTesla spyware didto. Sa ikaduhang bahin naghulagway sa mga resulta sa usa ka lakang-sa-lakang nga pagtuki sa nag-unang AgentTesla module.

Karon si Ilya Pomerantsev, usa ka espesyalista sa pag-analisa sa malware sa CERT Group-IB, maghisgot bahin sa una nga yugto sa pagtuki sa malware - semi-awtomatikong pag-unpack sa mga sample sa AgentTesla gamit ang panig-ingnan sa tulo nga mga mini nga kaso gikan sa praktis sa mga espesyalista sa CERT Group-IB.

Kasagaran, ang unang yugto sa pagtuki sa malware mao ang pagtangtang sa proteksyon sa porma sa packer, cryptor, protector o loader. Sa kadaghanan nga mga kaso, kini nga problema mahimong masulbad pinaagi sa pagpadagan sa malware ug paghimo sa usa ka dump, apan adunay mga sitwasyon diin kini nga pamaagi dili angay. Pananglitan, kung ang malware usa ka encryptor, kung gipanalipdan niini ang mga rehiyon sa panumduman gikan sa paglabay, kung ang code adunay mga mekanismo sa pag-detect sa virtual machine, o kung ang malware nag-reboot dayon pagkahuman nagsugod. Sa ingon nga mga kaso, gigamit ang gitawag nga "semi-awtomatikong" pag-unpack, nga mao, ang tigdukiduki adunay hingpit nga pagkontrol sa proseso ug mahimong mangilabot sa bisan unsang oras. Atong tagdon kini nga pamaagi gamit ang tulo ka sample sa pamilyang AgentTesla isip usa ka pananglitan. Kini usa ka medyo dili makadaot nga malware kung imong gi-disable ang pag-access sa network niini.

Sampol No. 1

Ang gigikanan nga file usa ka dokumento sa MS Word nga nagpahimulos sa pagkahuyang sa CVE-2017-11882.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Ingon nga resulta, ang payload gi-download ug gilunsad.

Ang pag-analisa sa punoan sa proseso ug mga marka sa pamatasan nagpakita sa pag-inject sa proseso RegAsm.exe.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Adunay mga kinaiya nga marka nga kinaiya sa AgentTesla.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Ang na-download nga sample mao ang executable .NET-file nga gipanalipdan sa usa ka tigpanalipod .NET Reactor.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Atong ablihan kini sa utility dnSpy x86 ug magpadayon sa entry point.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Pinaagi sa pag-adto sa function DateTimeOffset, atong pangitaon ang initialization code para sa bag-o .NET- module. Ibutang nato break point sa linya nga interesado kami ug ipadagan ang file.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Sa usa sa mga gibalik nga buffer makita nimo ang pirma sa MZ (0x4D 0x5A). Atong tipigan.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Ang usa ka dumped executable file usa ka dinamikong librarya nga usa ka loader, i.e. gikuha ang payload gikan sa seksyon sa kapanguhaan ug gilunsad kini.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Sa samang higayon, ang gikinahanglan nga mga kahinguhaan mismo wala diha sa dump. Naa sila sa sample sa ginikanan.

Gamit dnSpy adunay duha ka labi ka mapuslanon nga gamit nga makatabang kanamo nga dali nga makahimo usa ka "Frankenstein" gikan sa duha nga may kalabutan nga mga file.

  1. Ang una nagtugot kanimo nga "i-paste" ang usa ka dinamikong librarya sa sample sa ginikanan.

    Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3

  2. Ang ikaduha mao ang pagsulat pag-usab sa function code sa entry point aron tawagan ang gusto nga pamaagi sa gisulod nga dinamikong librarya.

    Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3

Gitipigan namo ang among "Frankenstein", set break point sa linya nga nagbalik sa usa ka buffer nga adunay decrypted nga mga kapanguhaan, ug naghimo usa ka dump pinaagi sa pagkasama sa miaging yugto.

Ang ikaduhang dump gisulat sa VB.NET usa ka executable file nga gipanalipdan sa usa ka tigpanalipod nga pamilyar kanamo ConfuserEx.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Pagkahuman sa pagtangtang sa tigpanalipod, gigamit namon ang mga lagda sa YARA nga gisulat sa sayo pa ug siguruha nga ang wala ma-pack nga malware mao gyud ang AgentTesla.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3

Sampol No. 2

Ang gigikanan nga file usa ka dokumento sa MS Excel. Ang usa ka built-in nga macro hinungdan sa pagpatuman sa malisyosong code.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Ingon nga resulta, ang PowerShell script gilunsad.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Gi-decrypt sa script ang C# code ug gibalhin ang kontrol niini. Ang code mismo usa ka bootloader, ingon usab makita gikan sa taho sa sandbox.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Ang payload usa ka executable .NET- file.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Pag-abli sa file sa dnSpy x86, makita nimo nga kini natabunan. Pagtangtang sa obfuscation gamit ang utility de4dot ug balik sa pagtuki.

Kung gisusi ang code, mahimo nimong makit-an ang mosunud nga function:

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Talagsaon ang mga linya nga gi-encode EntryPoint ΠΈ Pagdapit. Among gibutang break point sa unang linya, pagdagan ug i-save ang buffer value byte_0.

Ang dump usa na usab nga aplikasyon .NET ug gipanalipdan ConfuserEx.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Atong tangtangon ang obfuscation gamit de4dot ug upload sa dnSpy. Gikan sa paghulagway sa file atong nasabtan nga atong giatubang CyaX-Sharp loader.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Kini nga loader adunay kaylap nga anti-analysis functionality.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Kini nga gamit naglakip sa pag-bypass sa mga built-in nga Windows nga sistema sa pagpanalipod, pag-disable sa Windows Defender, ingon man sa sandbox ug virtual machine detection mechanisms. Posible nga i-load ang payload gikan sa network o itago kini sa seksyon sa kapanguhaan. Ang paglansad gihimo pinaagi sa pag-inject sa kaugalingon nga proseso, sa usa ka doble sa kaugalingon nga proseso, o sa mga proseso MSBuild.exe, vbc.exe ΠΈ RegSvcs.exe depende sa parameter nga gipili sa tig-atake.

Bisan pa, alang kanamo sila dili kaayo hinungdanon kaysa AntiDump-function nga nagdugang ConfuserEx. Ang source code niini makita sa GitHub.

Aron ma-disable ang proteksyon, gamiton namo ang oportunidad dnSpy, nga nagtugot kanimo sa pag-edit IL-Code.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
I-save ug i-install break point sa linya sa pagtawag sa payload decryption function. Kini nahimutang sa constructor sa nag-unang klase.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Among gilusad ug gilabay ang payload. Gamit ang kaniadto nga gisulat nga mga lagda sa YARA, among gisiguro nga kini ang AgentTesla.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3

Sampol No. 3

Ang tinubdan nga file mao ang executable VB Lumad PE32- file.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Ang pagtuki sa entropy nagpakita sa presensya sa usa ka dako nga piraso sa naka-encrypt nga datos.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Kung gi-analisar ang porma sa aplikasyon sa VB Decompiler mahimo nimong mamatikdan ang usa ka katingad-an nga background sa pixel.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Entropy graph bmp-Ang imahe parehas sa entropy graph sa orihinal nga file, ug ang gidak-on mao ang 85% sa gidak-on sa file.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Ang kinatibuk-ang dagway sa imahe nagpakita sa paggamit sa steganography.

Atong hatagan ug pagtagad ang hitsura sa punoan sa proseso, ingon man ang presensya sa usa ka marka sa pag-injection.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Kini nagpakita nga ang pag-unpack nagpadayon. Alang sa Visual Basic loaders (aka VBKrypt o VBInjector) tipikal nga paggamit shellcode sa pagsugod sa payload, ingon man sa pagbuhat sa indeyksiyon sa iyang kaugalingon.

Pagtuki sa VB Decompiler nagpakita sa presensya sa usa ka panghitabo load sa porma FegatassocAirballoon2.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Adto ta sa IDA pro sa gipiho nga adres ug tun-i ang function. Ang kodigo hilabihan nga nalibog. Ang tipik nga nakapainteres kanato gipresentar sa ubos.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Dinhi ang luna sa address sa proseso gi-scan alang sa usa ka pirma. Kini nga pamaagi hilabihan ka kadudahan.

Una, ang adres sa pagsugod sa pag-scan 0x400100. Kini nga bili kay static ug dili i-adjust kung ang base gibalhin. Sa sulundon nga kahimtang sa greenhouse kini magpakita sa katapusan PE-ang ulohan sa executable file. Bisan pa, ang database dili static, ang kantidad niini mahimong mabag-o, ug ang pagpangita sa tinuud nga adres sa gikinahanglan nga pirma, bisan kung dili kini hinungdan sa usa ka variable nga pag-awas, mahimong dugay kaayo.

Ikaduha, ang kahulogan sa pirma iWGK. Sa akong hunahuna kini klaro nga ang 4 bytes gamay ra kaayo aron magarantiya ang pagkatalagsaon. Ug kung imong tagdon ang una nga punto, ang posibilidad nga makahimo usa ka sayup medyo taas.

Sa tinuud, ang gikinahanglan nga tipik gilakip sa katapusan sa nakit-an kaniadto bmp-mga hulagway pinaagi sa offset 0xA1D0D.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Pag-ayo Shellcode gihimo sa duha ka yugto. Ang una nag-decipher sa panguna nga lawas. Sa kini nga kaso, ang yawe gitino pinaagi sa brute force.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Ilabay ang na-decrypted Shellcode ug tan-awa ang mga linya.

Una, nahibal-an na nato karon ang function sa paghimo og proseso sa bata: PaghimoProcessInternalW.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Ikaduha, nahibal-an namon ang mekanismo sa pag-ayo sa sistema.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Balik ta sa orihinal nga proseso. Ibutang nato break point sa PaghimoProcessInternalW ug magpadayon sa pagpatay. Sunod atong makita ang koneksyon NtGetContextThread/NtSetContextThread, nga nagbag-o sa adres sa pagsugod sa pagpatuman ngadto sa adres ShellCode.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Nagkonektar kami sa gihimo nga proseso gamit ang usa ka debugger ug gi-aktibo ang panghitabo Suspindihon ang pagkarga/pagdiskarga sa libraryu, ipadayon ang proseso ug maghulat sa pagkarga .NET- mga librarya.

Dugang nga paggamit ProcessHacker dump rehiyon nga adunay sulod unpacked .NET-aplikasyon.

Gipahunong namo ang tanang proseso ug gitangtang ang kopya sa malware nga na-embed sa sistema.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Ang gilabay nga file gipanalipdan sa usa ka tigpanalipod .NET Reactor, nga daling matangtang gamit ang utility de4dot.

Napakyas ang turnout: atong ibutyag ang AgentTesla sa limpyo nga tubig. Bahin 3
Gamit ang mga lagda sa YARA nga gisulat sa sayo pa, gisiguro namon nga kini ang AgentTesla.

Himoon nato ang summarize

Busa, gipakita namo sa detalye ang proseso sa semi-awtomatikong pag-unpack sa sample gamit ang tulo ka mini-cases isip usa ka pananglitan, ug gi-analisar usab ang malware base sa usa ka bug-os nga kaso, nahibal-an nga ang sample nga gitun-an mao ang AgentTesla, nga nagtukod sa iyang gamit ug usa ka kompletong listahan sa mga timailhan sa pagkompromiso.

Ang pag-analisar sa malisyosong butang nga among gihimo nanginahanglan daghang oras ug paningkamot, ug kini nga trabaho kinahanglan himuon sa usa ka espesyal nga empleyado sa kompanya, apan dili tanan nga mga kompanya andam nga mogamit usa ka analista.

Usa sa mga serbisyo nga gihatag sa Group-IB Laboratory of Computer Forensics ug Malicious Code Analysis mao ang tubag sa mga insidente sa cyber. Ug aron ang mga kustomer dili mag-usik sa oras sa pag-apruba sa mga dokumento ug paghisgot niini taliwala sa usa ka pag-atake sa cyber, gilusad sa Group-IB Retainer sa Tubag sa Insidente, usa ka pre-subscription nga serbisyo sa pagtubag sa insidente nga naglakip usab sa lakang sa pagtuki sa malware. Makita ang dugang nga impormasyon bahin niini dinhi.

Kung gusto nimo nga tun-an pag-usab kung giunsa pag-unpack ang mga sample sa AgentTesla ug tan-awa kung giunsa kini gihimo sa usa ka espesyalista sa CERT Group-IB, mahimo nimong i-download ang pagrekord sa webinar sa kini nga hilisgutan dinhi.

Source: www.habr.com

Idugang sa usa ka comment