Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3

Kwa makala hii tunakamilisha mfululizo wa machapisho yaliyotolewa kwa uchambuzi wa programu hasidi. KATIKA sehemu ya kwanza Tulifanya uchanganuzi wa kina wa faili iliyoambukizwa ambayo kampuni ya Uropa ilipokea kwa barua na kugundua vidadisi vya AgentTesla hapo. Katika sehemu ya pili ilielezea matokeo ya uchambuzi wa hatua kwa hatua wa moduli kuu ya AgentTesla.

Leo Ilya Pomerantsev, mtaalamu wa uchambuzi wa programu hasidi katika CERT Group-IB, atazungumza juu ya hatua ya kwanza ya uchanganuzi wa programu hasidi - upakuaji wa nusu otomatiki wa sampuli za AgentTesla kwa kutumia mfano wa kesi tatu ndogo kutoka kwa mazoezi ya wataalam wa CERT Group-IB.

Kwa kawaida, hatua ya kwanza katika uchanganuzi wa programu hasidi ni kuondolewa kwa ulinzi kwa njia ya kipakiaji, kibadilishaji ficha, mlinzi au kipakiaji. Mara nyingi, tatizo hili linaweza kutatuliwa kwa kuendesha programu hasidi na kufanya utupaji, lakini kuna hali ambapo njia hii haifai. Kwa mfano, ikiwa programu hasidi ni encryptor, ikiwa inalinda maeneo yake ya kumbukumbu dhidi ya kutupwa, ikiwa msimbo una njia za kutambua mashine pepe, au ikiwa programu hasidi itawashwa tena mara baada ya kuanza. Katika hali hiyo, kinachojulikana kama "nusu-otomatiki" unpacking hutumiwa, yaani, mtafiti ana udhibiti kamili juu ya mchakato na anaweza kuingilia wakati wowote. Hebu tuzingatie utaratibu huu kwa kutumia sampuli tatu za familia ya AgentTesla kama mfano. Hii ni programu hasidi isiyo na madhara ikiwa utazima ufikiaji wake wa mtandao.

Sampuli nambari 1

Faili chanzo ni hati ya MS Word inayotumia uwezekano wa CVE-2017-11882.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Matokeo yake, mzigo wa malipo unapakuliwa na kuzinduliwa.

Uchambuzi wa mti wa mchakato na alama za tabia unaonyesha kuingizwa kwenye mchakato RegAsm.exe.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Kuna alama za tabia za AgentTesla.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Sampuli iliyopakuliwa ndiyo inayoweza kutekelezwa . NET-faili iliyolindwa na mlinzi NET Reactor.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Wacha tuifungue kwenye matumizi dnSpy x86 na uendelee hadi mahali pa kuingilia.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Kwa kwenda kwenye tamasha DateTimeOffset, tutapata msimbo wa uanzishaji wa mpya . NET-moduli. Hebu tuweke mahali pa kuvunja kwenye mstari tunavutiwa na kuendesha faili.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Katika moja ya bafa zilizorejeshwa unaweza kuona saini ya MZ (0x4D 0x5A) Hebu tuihifadhi.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Faili inayoweza kutekelezwa iliyotupwa ni maktaba yenye nguvu ambayo ni kipakiaji, i.e. huchota mzigo kutoka kwa sehemu ya rasilimali na kuizindua.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Wakati huo huo, rasilimali muhimu zenyewe hazipo kwenye dampo. Ziko katika sampuli ya mzazi.

Huduma dnSpy ina utendakazi wawili muhimu sana ambao utatusaidia kuunda haraka "Frankenstein" kutoka faili mbili zinazohusiana.

  1. Ya kwanza hukuruhusu "kubandika" maktaba inayobadilika kwenye sampuli ya mzazi.

    Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3

  2. Ya pili ni kuandika upya msimbo wa chaguo la kukokotoa katika sehemu ya kuingilia ili kuita njia inayotakiwa ya maktaba yenye nguvu iliyoingizwa.

    Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3

Tunaokoa "Frankenstein" yetu, iliyowekwa mahali pa kuvunja kwenye mstari unaorudisha bafa iliyo na rasilimali zilizosimbwa, na kutoa utupaji kwa mlinganisho na hatua ya awali.

Dampo la pili limeandikwa ndani VB.NET faili inayoweza kutekelezwa ambayo inalindwa na mlinzi anayejulikana kwetu ConfuserEx.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Baada ya kuondoa mlinzi, tunatumia sheria za YARA zilizoandikwa mapema na kuhakikisha kuwa programu hasidi ambayo haijapakiwa ni AgentTesla.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3

Sampuli nambari 2

Faili ya chanzo ni hati ya MS Excel. Jumla iliyojengewa ndani husababisha utekelezaji wa msimbo hasidi.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Kama matokeo, hati ya PowerShell inazinduliwa.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Hati huondoa msimbo wa C# na kuhamisha udhibiti kwake. Nambari yenyewe ni bootloader, kama inavyoweza kuonekana kutoka kwa ripoti ya sanduku la mchanga.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Mzigo unaweza kutekelezwa . NET-faili.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Kufungua faili ndani dnSpy x86, unaweza kuona kuwa imefichwa. Kuondoa obfuscation kwa kutumia matumizi de4dot na kurudi kwenye uchambuzi.

Wakati wa kuchunguza msimbo, unaweza kugundua kazi ifuatayo:

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Mistari iliyosimbwa inavutia EntryPoint ΠΈ Kuomba. Tunaweka mahali pa kuvunja kwa mstari wa kwanza, endesha na uhifadhi thamani ya bafa byte_0.

Dampo ni maombi tena . NET na kulindwa ConfuserEx.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Tunaondoa obfuscation kwa kutumia de4dot na upakie kwa dnSpy. Kutoka kwa maelezo ya faili tunaelewa kuwa tunakabiliwa nayo Kipakiaji cha CyaX-Sharp.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Kipakiaji hiki kina utendaji mpana wa kupinga uchanganuzi.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Utendaji huu ni pamoja na kukwepa mifumo ya ulinzi ya Windows iliyojengewa ndani, kuzima Windows Defender, pamoja na kisanduku cha mchanga na mbinu za kutambua mashine pepe. Inawezekana kupakia mzigo kutoka kwa mtandao au kuhifadhi katika sehemu ya rasilimali. Uzinduzi unafanywa kwa njia ya sindano katika mchakato wake yenyewe, katika nakala ya mchakato wake, au katika michakato MSBuild.exe, vbc.exe ΠΈ RegSvcs.exe kulingana na parameter iliyochaguliwa na mshambuliaji.

Walakini, kwetu sisi sio muhimu kuliko AntiDump-kazi inayoongeza ConfuserEx. Nambari yake ya chanzo inaweza kupatikana GitHub.

Ili kuzima ulinzi, tutatumia fursa hiyo dnSpy, ambayo hukuruhusu kuhariri IL- kanuni.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Hifadhi na usakinishe mahali pa kuvunja kwa mstari wa kupiga kazi ya usimbuaji wa upakiaji. Iko katika mjenzi wa darasa kuu.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Tunazindua na kutupa mzigo. Kwa kutumia sheria za YARA zilizoandikwa hapo awali, tunahakikisha kwamba huyu ni AgentTesla.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3

Sampuli nambari 3

Faili ya chanzo ndiyo inayoweza kutekelezwa VB Native PE32-faili.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Uchanganuzi wa entropy unaonyesha uwepo wa kipande kikubwa cha data iliyosimbwa.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Wakati wa kuchambua fomu ya maombi katika VB Decompiler unaweza kugundua mandharinyuma ya ajabu ya pixelated.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Grafu ya Entropy bmp-image inafanana na grafu ya entropy ya faili asili, na saizi ni 85% ya saizi ya faili.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Muonekano wa jumla wa picha unaonyesha matumizi ya steganografia.

Hebu makini na kuonekana kwa mti wa mchakato, pamoja na kuwepo kwa alama ya sindano.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Hii inaonyesha kuwa upakuaji unaendelea. Kwa vipakiaji vya Visual Basic (aka VBKrypt au VBInjector) matumizi ya kawaida shellcode kuanzisha malipo, na pia kutekeleza sindano yenyewe.

Uchambuzi katika VB Decompiler ilionyesha uwepo wa tukio mzigo kwenye fomu FegatassocPuto ya hewa2.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Twende IDA pro kwa anwani maalum na usome kazi. Msimbo umefichwa sana. Kipande ambacho kinatuvutia kimewasilishwa hapa chini.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Hapa nafasi ya anwani ya mchakato inachanganuliwa ili kupata saini. Mbinu hii inatia shaka sana.

Kwanza, anwani ya kuanza skanning 0x400100. Thamani hii ni tuli na hairekebishwi wakati msingi unapohamishwa. Katika hali nzuri ya chafu itaonyesha mwisho PE-kichwa cha faili inayoweza kutekelezwa. Walakini, hifadhidata sio tuli, thamani yake inaweza kubadilika, na kutafuta anwani halisi ya saini inayohitajika, ingawa haitasababisha kufurika kwa kutofautiana, inaweza kuchukua muda mrefu sana.

Pili, maana ya saini iWGK. Nadhani ni dhahiri kuwa ka 4 ni ndogo sana ili kuhakikisha upekee. Na ikiwa utazingatia jambo la kwanza, uwezekano wa kufanya makosa ni mkubwa sana.

Kwa kweli, kipande kinachohitajika kinaunganishwa hadi mwisho wa kupatikana hapo awali bmp-picha kwa kukabiliana 0xA1D0D.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Utimilifu Msimbo wa shell kufanyika katika hatua mbili. Ya kwanza inafafanua mwili mkuu. Katika kesi hii, ufunguo umedhamiriwa na nguvu kali.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Tupa ile iliyosimbwa Msimbo wa shell na angalia mistari.

Kwanza, sasa tunajua kazi ya kuunda mchakato wa mtoto: CreateProcessInternalW.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Pili, tulifahamu utaratibu wa urekebishaji katika mfumo.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Hebu turudi kwenye mchakato wa awali. Hebu tuweke mahali pa kuvunja juu ya CreateProcessInternalW na kuendelea na utekelezaji. Ifuatayo tunaona uunganisho NtGetContextThread/NtSetContextThread, ambayo hubadilisha anwani ya kuanza kwa utekelezaji kwa anwani Msimbo wa Shell.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Tunaunganisha kwenye mchakato ulioundwa na kitatuzi na kuamilisha tukio Sitisha upakiaji/upakuaji wa maktaba, endelea mchakato na usubiri upakiaji . NET- maktaba.

Kutumia zaidi ProcessHacker maeneo ya kutupa ambayo hayajapakiwa . NET-maombi.

Tunasimamisha michakato yote na kufuta nakala ya programu hasidi ambayo imepachikwa kwenye mfumo.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Faili iliyotupwa inalindwa na mlinzi NET Reactor, ambayo inaweza kuondolewa kwa urahisi kwa kutumia matumizi de4dot.

Upigaji kura haukufaulu: wacha tufichue AgentTesla kwenye maji safi. Sehemu ya 3
Kwa kutumia sheria za YARA zilizoandikwa hapo awali, tunahakikisha kwamba huyu ni AgentTesla.

Hebu tufafanue

Kwa hivyo, tulionyesha kwa undani mchakato wa upakuaji wa sampuli otomatiki kwa kutumia visa vidogo vitatu kama mfano, na pia tukachambua programu hasidi kulingana na kesi kamili, na kugundua kuwa sampuli inayochunguzwa ni AgentTesla, ikianzisha utendakazi wake na a. orodha kamili ya viashiria vya maelewano.

Uchambuzi wa kitu kibaya ambacho tulifanya unahitaji muda mwingi na bidii, na kazi hii inapaswa kufanywa na mfanyakazi maalum katika kampuni, lakini sio kampuni zote ziko tayari kuajiri mchambuzi.

Moja ya huduma zinazotolewa na Maabara ya Kundi-IB ya Uchunguzi wa Uchunguzi wa Kompyuta na Uchambuzi wa Kanuni Hasidi ni kukabiliana na matukio ya mtandao. Na ili wateja wasipoteze muda kuidhinisha hati na kuzijadili katikati ya shambulio la mtandao, Group-IB ilizindua Kihifadhi Majibu ya Tukio, huduma ya majibu ya matukio ya kujisajili mapema ambayo pia inajumuisha hatua ya uchanganuzi wa programu hasidi. Maelezo zaidi kuhusu hili yanaweza kupatikana hapa.

Ikiwa ungependa kusoma tena jinsi sampuli za AgentTesla zinavyotolewa na kuona jinsi mtaalamu wa CERT Group-IB anavyofanya, unaweza kupakua rekodi ya mtandao kwenye mada hii. hapa.

Chanzo: mapenzi.com

Kuongeza maoni