Uban niini nga artikulo among gikompleto ang serye sa mga publikasyon nga gipahinungod sa pagtuki sa malisyosong software. SA
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.
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.
Adunay mga kinaiya nga marka nga kinaiya sa AgentTesla.
Ang na-download nga sample mao ang executable .NET-file nga gipanalipdan sa usa ka tigpanalipod .NET Reactor.
Atong ablihan kini sa utility dnSpy x86 ug magpadayon sa entry point.
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.
Sa usa sa mga gibalik nga buffer makita nimo ang pirma sa MZ (0x4D 0x5A). Atong tipigan.
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.
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.
- Ang una nagtugot kanimo nga "i-paste" ang usa ka dinamikong librarya sa sample sa ginikanan.
- Ang ikaduha mao ang pagsulat pag-usab sa function code sa entry point aron tawagan ang gusto nga pamaagi sa gisulod nga dinamikong librarya.
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.
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.
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.
Ingon nga resulta, ang PowerShell script gilunsad.
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.
Ang payload usa ka executable .NET- file.
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:
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.
Atong tangtangon ang obfuscation gamit de4dot ug upload sa dnSpy. Gikan sa paghulagway sa file atong nasabtan nga atong giatubang CyaX-Sharp loader.
Kini nga loader adunay kaylap nga anti-analysis functionality.
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
Aron ma-disable ang proteksyon, gamiton namo ang oportunidad dnSpy, nga nagtugot kanimo sa pag-edit IL-Code.
I-save ug i-install break point sa linya sa pagtawag sa payload decryption function. Kini nahimutang sa constructor sa nag-unang klase.
Among gilusad ug gilabay ang payload. Gamit ang kaniadto nga gisulat nga mga lagda sa YARA, among gisiguro nga kini ang AgentTesla.
Sampol No. 3
Ang tinubdan nga file mao ang executable VB Lumad PE32- file.
Ang pagtuki sa entropy nagpakita sa presensya sa usa ka dako nga piraso sa naka-encrypt nga datos.
Kung gi-analisar ang porma sa aplikasyon sa VB Decompiler mahimo nimong mamatikdan ang usa ka katingad-an nga background sa pixel.
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.
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.
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.
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.
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.
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.
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.
Ikaduha, nahibal-an namon ang mekanismo sa pag-ayo sa sistema.
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.
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.
Ang gilabay nga file gipanalipdan sa usa ka tigpanalipod .NET Reactor, nga daling matangtang gamit ang utility de4dot.
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
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
Source: www.habr.com