Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del
Pred kratkim se je na Group-IB obrnil evropski proizvajalec elektroinstalacijske opreme - njegov zaposleni je po pošti prejel sumljivo pismo z zlonamerno priponko. Ilya Pomerantsev, specialist za analizo zlonamerne programske opreme pri CERT Group-IB, je izvedel podrobno analizo te datoteke, tam odkril vohunsko programsko opremo AgentTesla in povedal, kaj lahko pričakujemo od takšne zlonamerne programske opreme in kako nevarna je.

S to objavo odpiramo serijo člankov o tem, kako analizirati tovrstne potencialno nevarne datoteke, najbolj radovedne pa 5. decembra pričakujemo na brezplačnem interaktivnem webinarju na to temo »Analiza zlonamerne programske opreme: analiza resničnih primerov«. Vsi detajli so pod krojem.

Mehanizem distribucije

Vemo, da je zlonamerna programska oprema prišla do žrtvinega računalnika prek e-pošte z lažnim predstavljanjem. Prejemnik pisma je bil verjetno BCCed.

Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del
Analiza glav kaže, da je bil pošiljatelj pisma lažen. Pravzaprav je pismo ostalo z vps56[.]oneworldhosting[.]com.

Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del
E-poštna priloga vsebuje arhiv WinRar qoute_jpeg56a.r15 z zlonamerno izvršljivo datoteko QOUTE_JPEG56A.exe notri.

Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

Ekosistem zlonamerne programske opreme

Zdaj pa poglejmo, kako izgleda ekosistem proučevane zlonamerne programske opreme. Spodnji diagram prikazuje njegovo zgradbo in smer interakcije komponent.

Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del
Zdaj pa si podrobneje oglejmo vsako komponento zlonamerne programske opreme.

Nakladalnik

Izvirna datoteka QOUTE_JPEG56A.exe je sestavljeno AutoIt v3 scenarij.

Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del
Če želite zamegliti izvirni skript, uporabite obfuscator s podobnim PELock AutoIT-Obfuscator značilnosti.
Razkrivanje poteka v treh fazah:

  1. Odstranjevanje zamegljenosti Za-Če

    Prvi korak je obnovitev nadzornega toka skripta. Izravnavanje toka nadzora je eden najpogostejših načinov za zaščito binarne kode aplikacije pred analizo. Zmedene transformacije dramatično povečajo kompleksnost pridobivanja in prepoznavanja algoritmov in podatkovnih struktur.

    Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

  2. Obnovitev vrstice

    Za šifriranje nizov se uporabljata dve funkciji:

    • gdorizabegkvfca - Izvaja dekodiranje, podobno Base64

      Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

    • xgacyukcyzxz - preprost bajt-bajt XOR prvega niza z dolžino drugega

      Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

    Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

  3. Odstranjevanje zamegljenosti BinaryToString и Izvedba

    Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

Glavna obremenitev je shranjena v razdeljeni obliki v imeniku Pisave razdelke virov datoteke.

Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del
Vrstni red lepljenja je naslednji: TIEQHCXWFG, JAZ MENE, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, AOCHKRWWSKWO, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, HWJHO, AVZOUMVFRDWFLWU.

Funkcija WinAPI se uporablja za dešifriranje ekstrahiranih podatkov CryptDecrypt, in ključ seje, ustvarjen na podlagi vrednosti, se uporabi kot ključ fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.

Dešifrirana izvedljiva datoteka se pošlje na vhod funkcije RunPE, ki izvaja ProcessInject в RegAsm.exe z uporabo vgrajenega ShellCode (poznan tudi kot RunPE ShellCode). Avtorstvo pripada uporabniku španskega foruma nezaznavne [.]net pod vzdevkom Wardow.

Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del
Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del
Prav tako je treba omeniti, da je v eni od tem tega foruma prikrivanje za Na strehi s podobnimi lastnostmi, ugotovljenimi med analizo vzorca.

Sam ShellCode precej preprosto in pritegne pozornost le sposojeno od hekerske skupine AnunakCarbanak. Funkcija zgoščevanja klicev API.

Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del
Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

Zavedamo se tudi primerov uporabe Francoska shellcode različne različice.
Poleg opisane funkcionalnosti smo identificirali tudi neaktivne funkcije:

  • Blokiranje ročnega zaključka procesa v upravitelju opravil

    Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

  • Ponovni zagon podrejenega procesa, ko se zaključi

    Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

  • Obhod UAC

    Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

  • Shranjevanje koristnega tovora v datoteko

    Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

  • Predstavitev modalnih oken

    Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

  • Čakanje na spremembo položaja kazalca miške

    Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

  • AntiVM in AntiSandbox

    Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

  • Samouničenje

    Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

  • Črpanje tovora iz omrežja

    Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

Vemo, da je takšna funkcionalnost tipična za protektor CypherIT, ki je očitno zadevni zagonski nalagalnik.

Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

Glavni modul programske opreme

Nato bomo na kratko opisali glavni modul zlonamerne programske opreme in ga podrobneje obravnavali v drugem članku. V tem primeru gre za aplikacijo na NET..

Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del
Med analizo smo odkrili, da je bil uporabljen obfuskator ConfuserEX.

Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

IELibrary.dll

Knjižnica je shranjena kot glavni vir modula in je dobro znan vtičnik za Agent Tesla, ki zagotavlja funkcionalnost za pridobivanje različnih informacij iz brskalnikov Internet Explorer in Edge.

Agent Tesla je modularna vohunska programska oprema, ki se distribuira z uporabo modela zlonamerne programske opreme kot storitve pod krinko legitimnega izdelka za zapisovanje tipk. Agent Tesla je sposoben pridobiti in posredovati uporabniške poverilnice iz brskalnikov, e-poštnih odjemalcev in odjemalcev FTP na strežnik do napadalcev, snemati podatke iz odložišča in zajemati zaslon naprave. V času analize uradna spletna stran razvijalcev ni bila na voljo.

Vstopna točka je funkcija GetSavedPasswords razreda InternetExplorer.

Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del
Na splošno je izvajanje kode linearno in ne vsebuje zaščite pred analizo. Pozornost si zasluži le nerealizirana funkcija GetSavedCookies. Očitno naj bi bila funkcionalnost vtičnika razširjena, vendar to nikoli ni bilo storjeno.

Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

Priključitev zagonskega nalagalnika na sistem

Preučimo, kako je zagonski nalagalnik pritrjen na sistem. Preučevani primerek se ne zasidra, vendar se v podobnih dogodkih zgodi po naslednji shemi:

  1. V mapi C:UsersPublic skript je ustvarjen Visual Basic

    Primer skripta:

    Volilna udeležba ni uspela: izpostavimo AgentTeslo čisti vodi. 1. del

  2. Vsebina nalagalne datoteke je dopolnjena z ničelnim znakom in shranjena v mapo %Temp%
  3. Za datoteko skripta se v registru ustvari ključ za samodejni zagon HKCUSoftwareMicrosoftWindowsCurrentVersionRun

Tako smo na podlagi rezultatov prvega dela analize lahko določili imena družin vseh komponent proučevane zlonamerne programske opreme, analizirali vzorec okužbe in pridobili tudi predmete za pisanje podpisov. Z analizo tega predmeta bomo nadaljevali v naslednjem članku, kjer si bomo podrobneje ogledali glavni modul Agent Tesla. Ne spreglejte!

Mimogrede, 5. decembra vse bralce vabimo na brezplačen interaktivni webinar na temo "Analiza zlonamerne programske opreme: analiza resničnih primerov", kjer bo avtor tega članka, specialist CERT-GIB, na spletu prikazal prvo stopnjo malware analiza - polavtomatsko razpakiranje vzorcev na primeru treh resničnih mini primerov iz prakse, pri analizi pa lahko sodelujete tudi vi. Webinar je primeren za strokovnjake, ki že imajo izkušnje z analizo zlonamernih datotek. Registracija je izključno s službenega e-poštnega naslova: registrirati. Čakam te!

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
}

Haše

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

890E643316E9276156EDC8A

tip Arhiv WinRAR
Velikosti 823014
Ime QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
SHA1 8010CC2AF398F9F951555F7D481CE13DF60BBECF
SHA256 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

tip PE (preveden skript AutoIt)
Velikosti 1327616
OriginalName Neznan
Datumski žig 15.07.2019
Vezni Microsoftov povezovalnik (12.0) [EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
SHA1 79B445DE923C92BF378B19D12A309C0E9C5851BF
SHA256 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

tip ShellCode
Velikosti 1474

Vir: www.habr.com

Dodaj komentar