Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis
Neseniai Europos elektros instaliacijos įrangos gamintojas susisiekė su Group IB – jos darbuotojas paštu gavo įtartiną laišką su kenkėjišku priedu. Ilja Pomerancevas, CERT Group-IB kenkėjiškų programų analizės specialistas, atliko išsamią šio failo analizę, jame aptiko AgentTesla šnipinėjimo programą ir pasakė, ko tikėtis iš tokios kenkėjiškos programos ir kuo ji pavojinga.

Šiuo įrašu pradedame straipsnių ciklą, kaip analizuoti tokius potencialiai pavojingus failus, o smalsiausiųjų laukiame gruodžio 5 d. į nemokamą interaktyvų internetinį seminarą šia tema „Kenkėjiškų programų analizė: realių atvejų analizė“. Visos detalės yra po pjūviu.

Paskirstymo mechanizmas

Žinome, kad kenkėjiška programa aukos kompiuterį pasiekė sukčiavimo el. laiškais. Laiško gavėjas tikriausiai buvo BCC.

Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis
Antraščių analizė rodo, kad laiško siuntėjas buvo apgautas. Tiesą sakant, laišką paliko vps56[.]oneworldhosting[.]com.

Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis
El. laiško priede yra WinRar archyvas qoute_jpeg56a.r15 su kenkėjišku vykdomuoju failu QOUTE_JPEG56A.exe viduje.

Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

Kenkėjiškų programų ekosistema

Dabar pažiūrėkime, kaip atrodo tiriamos kenkėjiškos programos ekosistema. Žemiau esančioje diagramoje parodyta jo struktūra ir komponentų sąveikos kryptys.

Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis
Dabar pažvelkime į kiekvieną kenkėjiškų programų komponentą išsamiau.

Krautuvas

Originalus failas QOUTE_JPEG56A.exe yra sudarytas AutoIt v3 scenarijus.

Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis
Norėdami užmaskuoti originalų scenarijų, užtemdykite panašią „PELock AutoIT-Obfuscator“. charakteristikos.
Deobfuskacija atliekama trimis etapais:

  1. Pašalina užtemimą Jei

    Pirmasis žingsnis yra atkurti scenarijaus valdymo srautą. Valdymo srauto išlyginimas yra vienas iš labiausiai paplitusių būdų apsaugoti programos dvejetainį kodą nuo analizės. Painios transformacijos smarkiai padidina algoritmų ir duomenų struktūrų išgavimo ir atpažinimo sudėtingumą.

    Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

  2. Eilučių atkūrimas

    Eilėms užšifruoti naudojamos dvi funkcijos:

    • gdorizabegkvfca – atlieka į Base64 panašų dekodavimą

      Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

    • xgacyukcyzxz – paprastas pirmosios eilutės baitas XOR su antrosios eilutės ilgiu

      Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

    Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

  3. Pašalina užtemimą BinaryToString и Vykdyti

    Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

Pagrindinė apkrova kataloge saugoma padalinta forma Šriftai failo išteklių skyriuose.

Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis
Klijavimo tvarka yra tokia: TIEQHCXWFG, EMI, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, AOCHKRWWSKWO, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, HWJHO, AVZOUMVFRDWFLWU.

Funkcija „WinAPI“ naudojama iššifruotiems duomenims iššifruoti CryptDecrypt, o seanso raktas, sugeneruotas pagal reikšmę, naudojamas kaip raktas fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.

Iššifruotas vykdomasis failas siunčiamas į funkcijos įvestį RunPE, kuri atlieka ProcessInject в RegAsm.exe naudojant įmontuotą ShellCode (taip pat žinomas kaip RunPE ShellCode). Autorystė priklauso ispanų forumo vartotojui neaptinkami[.]tinklas Vardo slapyvardžiu.

Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis
Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis
Taip pat verta paminėti, kad vienoje iš šio forumo temų yra užmaskavimo priemonė AutoIt su panašiomis savybėmis, nustatytomis mėginio analizės metu.

Pats ShellCode gana paprastas ir patraukia dėmesį tik pasiskolintas iš įsilaužėlių grupės AnunakCarbanak. API skambučių maišos funkcija.

Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis
Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

Taip pat žinome naudojimo atvejus Frenchy Shellcode skirtingos versijos.
Be aprašytų funkcijų, mes taip pat nustatėme neaktyvias funkcijas:

  • Neautomatinio proceso užbaigimo blokavimas užduočių tvarkyklėje

    Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

  • Antrinio proceso paleidimas iš naujo, kai jis baigiasi

    Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

  • Apeiti UAC

    Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

  • Naudingojo krovinio įrašymas į failą

    Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

  • Modalinių langų demonstravimas

    Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

  • Laukiama, kol pasikeis pelės žymeklio padėtis

    Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

  • AntiVM ir AntiSandbox

    Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

  • Savęs naikinimas

    Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

  • Naudingosios apkrovos siurbimas iš tinklo

    Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

Žinome, kad tokia apsauga yra būdinga CypherIT, kuri, matyt, yra aptariama įkrovos programa.

Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

Pagrindinis programinės įrangos modulis

Toliau trumpai apibūdinsime pagrindinį kenkėjiškos programos modulį, o išsamiau apsvarstysime antrajame straipsnyje. Šiuo atveju tai yra programa . NET.

Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis
Analizės metu nustatėme, kad buvo naudojamas obfuskatorius ConfuserEX.

Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

IELibrary.dll

Biblioteka saugoma kaip pagrindinis modulio šaltinis ir yra gerai žinomas priedas Agentas Tesla, kuri suteikia įvairios informacijos ištraukimo iš Internet Explorer ir Edge naršyklių funkcionalumą.

Agentas Tesla yra modulinė šnipinėjimo programinė įranga, platinama naudojant kenkėjiškų programų kaip paslaugos modelį, prisidengiant teisėtu klavišų kaupiklio produktu. Agentas Tesla gali išgauti ir perduoti vartotojo kredencialus iš naršyklių, el. pašto programų ir FTP klientų į serverį užpuolikams, įrašyti iškarpinės duomenis ir užfiksuoti įrenginio ekraną. Analizės metu oficiali kūrėjų svetainė nebuvo pasiekiama.

Įėjimo taškas yra funkcija GetSavedPasswords klasės InternetExplorer.

Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis
Apskritai kodo vykdymas yra linijinis ir neapsaugo nuo analizės. Tik nerealizuota funkcija nusipelno dėmesio GetSavedCookies. Matyt, įskiepio funkcionalumas turėjo būti išplėstas, tačiau tai nebuvo padaryta.

Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

Įkrovos tvarkyklės prijungimas prie sistemos

Panagrinėkime, kaip įkrovos įkroviklis yra prijungtas prie sistemos. Tiriamas pavyzdys nepritvirtina, tačiau panašiais įvykiais jis įvyksta pagal šią schemą:

  1. Aplanke C:UsersPublic sukurtas scenarijus "Visual Basic"

    Scenarijaus pavyzdys:

    Rinkimuose nepavyko: paleiskite AgentTesla švariu vandeniu. 1 dalis

  2. Įkrovos įkėlimo failo turinys užpildomas nuliniu simboliu ir išsaugomas aplanke %Temp%<Pasirinktinis aplanko pavadinimas><Failo pavadinimas>
  3. Scenarijaus failo registre sukuriamas automatinio paleidimo raktas HKCUSoftwareMicrosoftWindowsCurrentVersionRun<Scenarijaus pavadinimas>

Taigi, remiantis pirmosios analizės dalies rezultatais, mums pavyko nustatyti visų tiriamų kenkėjiškų programų komponentų šeimų pavadinimus, išanalizuoti užkrėtimo modelį, taip pat gauti parašų rašymo objektus. Šio objekto analizę tęsime kitame straipsnyje, kuriame plačiau apžvelgsime pagrindinį modulį Agentas Tesla. Nepraleisk!

Beje, gruodžio 5 dieną visus skaitytojus kviečiame į nemokamą interaktyvų internetinį seminarą tema „Kenkėjiškų programų analizė: realių atvejų analizė“, kuriame šio straipsnio autorė, CERT-GIB specialistė, internete parodys pirmąjį etapą kenkėjiškų programų analizė - pusiau automatinis mėginių išpakavimas, naudojant trijų realių mini atvejų pavyzdį iš praktikos, ir jūs galite dalyvauti analizėje. Webinaras tinka specialistams, jau turintiems kenkėjiškų failų analizės patirties. Registracija vykdoma tik iš įmonės el. registruotis. Laukiu tavęs!

Yara

rule AgentTesla_clean{
meta:
    author = "Group-IB"
    file = "78566E3FC49C291CB117C3D955FA34B9A9F3EEFEFAE3DE3D0212432EB18D2EAD"
    scoring = 5
    family = "AgentTesla"
strings:
    $string_format_AT = {74 00 79 00 70 00 65 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 68 00 77 00 69 00 64 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 74 00 69 00 6D 00 65 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 63 00 6E 00 61 00 6D 00 65 00 3D 00 7B 00 33 00 7D 00 0D 00 0A 00 6C 00 6F 00 67 00 64 00 61 00 74 00 61 00 3D 00 7B 00 34 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 3D 00 7B 00 35 00 7D 00 0D 00 0A 00 69 00 70 00 61 00 64 00 64 00 3D 00 7B 00 36 00 7D 00 0D 00 0A 00 77 00 65 00 62 00 63 00 61 00 6D 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 37 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 38 00 7D 00 0D 00 0A 00 5B 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 73 00 5D 00}
    $web_panel_format_string = {63 00 6C 00 69 00 65 00 6E 00 74 00 5B 00 5D 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 6C 00 69 00 6E 00 6B 00 5B 00 5D 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 75 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 5B 00 5D 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 5B 00 5D 00 3D 00 7B 00 33 00 7D 00 00 15 55 00 52 00 4C 00 3A 00 20 00 20 00 20 00 20 00 20 00 20 00 00 15 55 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 3A 00 20 00 00 15 50 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 3A 00}
condition:
     all of them
}

rule  AgentTesla_obfuscated {
meta:
    author = "Group-IB"
    file = "41DC0D5459F25E2FDCF8797948A7B315D3CB075398D808D1772CACCC726AF6E9"
    scoring = 5
    family = "AgentTesla"
strings:
    $first_names = {61 66 6B 00 61 66 6D 00 61 66 6F 00 61 66 76 00 61 66 79 00 61 66 78 00 61 66 77 00 61 67 6A 00 61 67 6B 00 61 67 6C 00 61 67 70 00 61 67 72 00 61 67 73 00 61 67 75 00}
    $second_names = "IELibrary.resources"
condition:
     all of them
}

rule AgentTesla_module_for_IE{
meta:
    author = "Group-IB"
    file = "D55800A825792F55999ABDAD199DFA54F3184417215A298910F2C12CD9CC31EE"
    scoring = 5
    family = "AgentTesla_module_for_IE"
strings:
    $s0 = "ByteArrayToStructure" 
    $s1 = "CryptAcquireContext" 
    $s2 = "CryptCreateHash" 
    $s3 = "CryptDestroyHash" 
    $s4 = "CryptGetHashParam" 
    $s5 = "CryptHashData"
    $s6 = "CryptReleaseContext" 
    $s7 = "DecryptIePassword" 
    $s8 = "DoesURLMatchWithHash" 
    $s9 = "GetSavedCookies" 
    $s10 = "GetSavedPasswords" 
    $s11 = "GetURLHashString"  
condition:
     all of them
}

rule RunPE_shellcode {
meta:
    author = "Group-IB"
    file = "37A1961361073BEA6C6EACE6A8601F646C5B6ECD9D625E049AD02075BA996918"
    scoring = 5
    family = "RunPE_shellcode"
strings:
    $malcode = {
      C7 [2-5] EE 38 83 0C // mov     dword ptr [ebp-0A0h], 0C8338EEh
      C7 [2-5] 57 64 E1 01 // mov     dword ptr [ebp-9Ch], 1E16457h
      C7 [2-5] 18 E4 CA 08 // mov     dword ptr [ebp-98h], 8CAE418h
      C7 [2-5] E3 CA D8 03 // mov     dword ptr [ebp-94h], 3D8CAE3h
      C7 [2-5] 99 B0 48 06 // mov     dword ptr [ebp-90h], 648B099h
      C7 [2-5] 93 BA 94 03 // mov     dword ptr [ebp-8Ch], 394BA93h
      C7 [2-5] E4 C7 B9 04 // mov     dword ptr [ebp-88h], 4B9C7E4h
      C7 [2-5] E4 87 B8 04 // mov     dword ptr [ebp-84h], 4B887E4h
      C7 [2-5] A9 2D D7 01 // mov     dword ptr [ebp-80h], 1D72DA9h
      C7 [2-5] 05 D1 3D 0B // mov     dword ptr [ebp-7Ch], 0B3DD105h
      C7 [2-5] 44 27 23 0F // mov     dword ptr [ebp-78h], 0F232744h
      C7 [2-5] E8 6F 18 0D // mov     dword ptr [ebp-74h], 0D186FE8h
      }
condition:
    $malcode 
}

rule AgentTesla_AutoIT_module{
meta:
    author = "Group-IB"
    file = "49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08C05B5E3BD36FD52668D196AF"
    scoring = 5
    family = "AgentTesla"
strings:                                    
    $packedexeau = {55 ED F5 9F 92 03 04 44 7E 16 6D 1F 8C D7 38 E6 29 E4 C8 CF DA 2C C4 E1 F3 65 48 25 B8 93 9D 66 A4 AD 3C 39 50 00 B9 60 66 19 8D FC 20 0A A0 56 52 8B 9F 15 D7 62 30 0D 5C C3 24 FE F8 FC 39 08 DF 87 2A B2 1C E9 F7 06 A8 53 B2 69 C3 3C D4 5E D4 74 91 6E 9D 9A A0 96 FD DB 1F 5E 09 D7 0F 25 FB 46 4E 74 15 BB AB DB 17 EE E7 64 33 D6 79 02 E4 85 79 14 6B 59 F9 43 3C 81 68 A8 B5 32 BC E6}
condition:
     all of them
}

Maišos

Vardas qoute_jpeg56a.r15
MD5 53BE8F9B978062D4411F71010F49209E
SHA1 A8C2765B3D655BA23886D663D22BDD8EF6E8E894
SHA256 2641DAFB452562A0A92631C2849B8B9CE880F0F8F

890E643316E9276156EDC8A

Tipas Archyvas WinRAR
Dydis 823014
Vardas QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
SHA1 8010CC2AF398F9F951555F7D481CE13DF60BBECF
SHA256 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

Tipas PE (sudarytas AutoIt scenarijus)
Dydis 1327616
OriginalName nežinomas
Datos antspaudas 15.07.2019
Nuoroda „Microsoft Linker“ (12.0) [EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
SHA1 79B445DE923C92BF378B19D12A309C0E9C5851BF
SHA256 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

Tipas ShellCode
Dydis 1474

Šaltinis: www.habr.com

Добавить комментарий