Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1
Äskettäin eurooppalainen sähköasennuslaitteiden valmistaja otti yhteyttä Group IB:hen – sen työntekijä sai postissa epäilyttävän kirjeen, jossa oli haitallinen liite. Ilja Pomerantsev, CERT Group-IB:n haittaohjelmien analysointiasiantuntija, suoritti tämän tiedoston yksityiskohtaisen analyysin, löysi sieltä AgentTesla-vakoiluohjelman ja kertoi, mitä tällaisilta haittaohjelmilta on odotettavissa ja kuinka vaarallisia se on.

Tällä postauksella avaamme artikkelisarjan tällaisten mahdollisesti vaarallisten tiedostojen analysoinnista ja odotamme uteliaimpia 5. joulukuuta ilmaiseen interaktiiviseen webinaariin aiheesta "Haittaohjelmaanalyysi: todellisten tapausten analyysi". Kaikki yksityiskohdat ovat leikkauksen alla.

Jakomekanismi

Tiedämme, että haittaohjelma saapui uhrin koneelle tietojenkalasteluviestien kautta. Kirjeen vastaanottaja oli todennäköisesti BCC-koodi.

Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1
Otsikkojen analyysi osoittaa, että kirjeen lähettäjää on huijattu. Itse asiassa kirje lähti vps56[.]oneworldhosting[.]com.

Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1
Sähköpostin liite sisältää WinRar-arkiston qoute_jpeg56a.r15 haitallisen suoritettavan tiedoston kanssa QOUTE_JPEG56A.exe sisällä.

Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

Haittaohjelmaekosysteemi

Katsotaan nyt, miltä tutkittavan haittaohjelman ekosysteemi näyttää. Alla olevasta kaaviosta näkyy sen rakenne ja komponenttien vuorovaikutussuunnat.

Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1
Tarkastellaan nyt kutakin haittaohjelmakomponenttia yksityiskohtaisemmin.

Kuormaaja

Alkuperäinen tiedosto QOUTE_JPEG56A.exe on koottu AutoIt v3 käsikirjoitus.

Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1
Alkuperäisen käsikirjoituksen hämärtämiseksi käytetään samankaltaista obfuskaattoria PELock AutoIT-obfuscator ominaisuudet.
Deobfuskaatio suoritetaan kolmessa vaiheessa:

  1. Hämärän poistaminen For-If

    Ensimmäinen askel on palauttaa komentosarjan ohjausvirta. Control Flow Flattening on yksi yleisimmistä tavoista suojata sovellusbinaarikoodia analyysiltä. Hämmentävät muunnokset lisäävät dramaattisesti algoritmien ja tietorakenteiden poimimisen ja tunnistamisen monimutkaisuutta.

    Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

  2. Rivien palautus

    Merkkijonojen salaamiseen käytetään kahta toimintoa:

    • gdorizabegkvfca - Suorittaa Base64-kaltaisen dekoodauksen

      Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

    • xgacyukcyzxz - ensimmäisen merkkijonon yksinkertainen tavutavu XOR toisen merkkijonon pituudella

      Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

    Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

  3. Hämärän poistaminen BinaryToString и Suorittaa

    Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

Pääkuorma tallennetaan hakemistoon jaetussa muodossa Fontit tiedoston resurssiosat.

Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1
Liimausjärjestys on seuraava: TIEQHCXWFG, IME, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, AOCHKRWWSKWO, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, HWJHO, AVZOUMVFRDWFLWU.

WinAPI-toimintoa käytetään purettujen tietojen salauksen purkamiseen SalausPuraa, ja avaimena käytetään arvon perusteella luotua istuntoavainta fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.

Purettu suoritettava tiedosto lähetetään funktion tuloon RunPE, joka suorittaa ProcessInject в RegAsm.exe käyttämällä sisäänrakennettua ShellCode (tunnetaan myös RunPE ShellCode). Tekijäoikeus kuuluu espanjalaisen foorumin käyttäjälle havaitsevat [.]net lempinimen Wardow alla.

Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1
Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1
On myös syytä huomata, että yhdessä tämän foorumin säikeistä, obfuscator for AutoIt joilla on samanlaiset ominaisuudet, jotka tunnistettiin näyteanalyysin aikana.

Itse ShellCode melko yksinkertainen ja herättää huomiota vain lainattu hakkeriryhmä AnunakCarbanak. API-puhelun hajautustoiminto.

Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1
Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

Olemme tietoisia myös käyttötapauksista ranskalainen Shellcode eri versioita.
Kuvattujen toimintojen lisäksi tunnistimme myös ei-aktiivisia toimintoja:

  • Manuaalisen prosessin lopettamisen estäminen tehtävähallinnassa

    Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

  • Aliprosessin käynnistäminen uudelleen, kun se päättyy

    Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

  • Ohita UAC

    Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

  • Hyötykuorman tallentaminen tiedostoon

    Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

  • Modaaliikkunoiden esittely

    Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

  • Odotetaan, että hiiren kohdistimen sijainti muuttuu

    Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

  • AntiVM ja AntiSandbox

    Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

  • itsetuho

    Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

  • Hyötykuorman pumppaus verkosta

    Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

Tiedämme, että tällainen toiminto on tyypillinen suojalle CypherIT, joka ilmeisesti on kyseessä oleva käynnistyslatain.

Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

Ohjelmiston päämoduuli

Seuraavaksi kuvaamme lyhyesti haittaohjelman päämoduulia ja tarkastelemme sitä yksityiskohtaisemmin toisessa artikkelissa. Tässä tapauksessa se on sovellus . NET.

Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1
Analyysin aikana havaitsimme, että käytettiin hämärälaitetta ConfuserEX.

Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

IELibrary.dll

Kirjasto on tallennettu moduulin pääresurssiksi ja se on tunnettu laajennus AgentTesla, joka tarjoaa toiminnot erilaisten tietojen poimimiseen Internet Explorer- ja Edge-selaimista.

Agent Tesla on modulaarinen vakoiluohjelmisto, jota jaetaan käyttämällä haittaohjelma-as-a-service -mallia laillisen keylogger-tuotteen varjolla. Agent Tesla pystyy poimimaan ja lähettämään käyttäjätunnuksia selaimista, sähköpostiohjelmista ja FTP-asiakkaista palvelimelle hyökkääjille, tallentamaan leikepöydän tietoja ja kaappaamaan laitteen näytön. Analyysin aikaan kehittäjien virallinen verkkosivusto ei ollut käytettävissä.

Aloituskohta on toiminto HankiSavedPasswords luokan InternetExplorer.

Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1
Yleensä koodin suoritus on lineaarista eikä sisällä mitään suojaa analyysiä vastaan. Vain toteuttamaton toiminto ansaitsee huomion GetSavedCookies. Ilmeisesti laajennuksen toimintoja piti laajentaa, mutta sitä ei koskaan tehty.

Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

Käynnistyslataimen liittäminen järjestelmään

Tutkitaan kuinka käynnistyslatain on liitetty järjestelmään. Tutkittava näyte ei ankkuroi, mutta vastaavissa tapahtumissa se tapahtuu seuraavan kaavion mukaisesti:

  1. Kansiossa C:UsersPublic skripti luodaan Visual Basic

    Esimerkki skriptistä:

    Äänestysprosentti epäonnistui: altistetaan AgentTesla puhtaalle vedelle. Osa 1

  2. Lataustiedoston sisältö täytetään nolla-merkillä ja tallennetaan kansioon %Temp%<Muokatun kansion nimi><Tiedoston nimi>
  3. Skriptitiedostoa varten luodaan rekisteriin automaattinen käynnistysavain HKCUSoftwareMicrosoftWindowsCurrentVersionRun<komentosarjan nimi>

Joten analyysin ensimmäisen osan tulosten perusteella pystyimme selvittämään kaikkien tutkittavien haittaohjelmien komponenttien perheiden nimet, analysoimaan tartuntakuvion ja hankkimaan myös objekteja allekirjoitusten kirjoittamista varten. Jatkamme tämän objektin analysointia seuraavassa artikkelissa, jossa tarkastellaan päämoduulia yksityiskohtaisemmin AgentTesla. Älä missaa!

Muuten, 5. joulukuuta kutsumme kaikki lukijat ilmaiseen interaktiiviseen webinaariin aiheesta "Haittaohjelmien analyysi: todellisten tapausten analyysi", jossa tämän artikkelin kirjoittaja, CERT-GIB-asiantuntija, näyttää verkossa ensimmäisen vaiheen haittaohjelmaanalyysi - puoliautomaattinen näytteiden purkaminen kolmen todellisen minitapauksen esimerkin avulla käytännössä, ja voit osallistua analyysiin. Webinaari sopii asiantuntijoille, joilla on jo kokemusta haitallisten tiedostojen analysoinnista. Ilmoittautuminen tapahtuu ehdottomasti yrityksen sähköpostista: зарегистрируйтесь. Odotan sinua!

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
}

Hajautukset

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

890E643316E9276156EDC8A

Tyyppi Arkistoi WinRAR
Koko 823014
Nimi QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
SHA1 8010CC2AF398F9F951555F7D481CE13DF60BBECF
SHA256 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

Tyyppi PE (käännetty AutoIt Script)
Koko 1327616
AlkuperäinenNimi tuntematon
Päiväys leima 15.07.2019
Linkit Microsoft Linker (12.0)[EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
SHA1 79B445DE923C92BF378B19D12A309C0E9C5851BF
SHA256 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

Tyyppi ShellCode
Koko 1474

Lähde: will.com

Lisää kommentti