Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa
Nesen ar Group IB sazinājās kāds Eiropas elektroinstalācijas iekārtu ražotājs - tā darbinieks pa pastu saņēmis aizdomÄ«gu vēstuli ar ļaunprātÄ«gu pielikumu. Iļja Pomerancevs, ļaunprātÄ«gas programmatÅ«ras analÄ«zes speciālists no CERT Group-IB, veica detalizētu Ŕī faila analÄ«zi, atklāja tajā esoÅ”o AgentTesla spiegprogrammatÅ«ru un pastāstÄ«ja, ko sagaidÄ«t no Ŕādas ļaunprātÄ«gas programmatÅ«ras un cik tā ir bÄ«stama.

Ar Å”o ierakstu mēs atklājam rakstu sēriju par to, kā analizēt Ŕādus potenciāli bÄ«stamus failus, un gaidÄ«sim ziņkārÄ«gākos 5. decembrÄ« uz bezmaksas interaktÄ«vu vebināru par Å”o tēmu. ā€œÄ»aunprātÄ«gas programmatÅ«ras analÄ«ze: reālu gadÄ«jumu analÄ«zeā€. Visas detaļas ir zem griezuma.

Sadales mehānisms

Mēs zinām, ka ļaunprogrammatÅ«ra sasniedza upura maŔīnu, izmantojot pikŔķerÄ“Å”anas e-pastus. Vēstules saņēmējs, iespējams, bija BCC.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa
Virsrakstu analīze liecina, ka vēstules sūtītājs ir bijis viltots. Patiesībā vēstuli atstāja ar vps56[.]oneworldhosting[.]com.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa
E-pasta pielikumā ir WinRar arhīvs qoute_jpeg56a.r15 ar ļaunprātīgu izpildāmo failu QOUTE_JPEG56A.exe iekŔā.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

Ļaunprātīgas programmatūras ekosistēma

Tagad apskatīsim, kā izskatās pētāmās ļaunprogrammatūras ekosistēma. Zemāk redzamā diagramma parāda tā struktūru un komponentu mijiedarbības virzienus.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa
Tagad aplūkosim katru ļaunprātīgās programmatūras komponentu sīkāk.

Iekrāvējs

Oriģinālais fails QOUTE_JPEG56A.exe ir apkopots AutoIt v3 skripts.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa
Lai aptumÅ”otu sākotnējo skriptu, obfuscator ar lÄ«dzÄ«gu PELock AutoIT-Obfuscator Ä«paŔības.
Debfuskācija tiek veikta trīs posmos:

  1. Apmulsuma noņemÅ”ana Par-Ja

    Pirmais solis ir atjaunot skripta vadÄ«bas plÅ«smu. Kontroles plÅ«smas izlÄ«dzināŔana ir viens no visizplatÄ«tākajiem veidiem, kā aizsargāt lietojumprogrammas bināro kodu no analÄ«zes. MulsinoÅ”as transformācijas ievērojami palielina algoritmu un datu struktÅ«ru iegÅ«Å”anas un atpazÄ«Å”anas sarežģītÄ«bu.

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

  2. Rindu atkopŔana

    Virkņu Å”ifrÄ“Å”anai tiek izmantotas divas funkcijas:

    • gdorizabegkvfca ā€” veic Base64 lÄ«dzÄ«gu dekodÄ“Å”anu

      Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

    • xgacyukcyzxz ā€” pirmās virknes vienkārÅ”s baits-baits XOR ar otrās virknes garumu

      Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

  3. Apmulsuma noņemÅ”ana BinaryToString Šø IzpildÄ«t

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

Galvenā slodze direktorijā tiek saglabāta sadalītā veidā Fonti faila resursu sadaļas.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa
LÄ«mÄ“Å”anas secÄ«ba ir Ŕāda: TIEQHCXWFG, EMI, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, AOCHKRWWSKWO, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, HWJHO, AVZOUMVFRDWFLWU.

Funkcija WinAPI tiek izmantota, lai atÅ”ifrētu iegÅ«tos datus CryptDecrypt, un kā atslēga tiek izmantota sesijas atslēga, kas Ä£enerēta, pamatojoties uz vērtÄ«bu fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.

AtÅ”ifrētais izpildāmais fails tiek nosÅ«tÄ«ts uz funkcijas ievadi RunPE, kas veic ProcessInject Š² RegAsm.exe izmantojot iebÅ«vēto ShellCode (zināms arÄ« kā RunPE ShellCode). AutorÄ«ba pieder spāņu foruma lietotājam nosakāmie[.]tÄ«kls ar segvārdu Wardow.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa
Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa
Ir arÄ« vērts atzÄ«mēt, ka vienā no Ŕī foruma pavedieniem, obfuscator for Pie jumta ar lÄ«dzÄ«gām Ä«paŔībām, kas konstatētas paraugu analÄ«zes laikā.

Pats ShellCode pavisam vienkārŔs un piesaista uzmanību tikai aizgūts no hakeru grupas AnunakCarbanak. API zvanu jaukŔanas funkcija.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa
Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

Mēs esam informēti arÄ« par lietoÅ”anas gadÄ«jumiem Frenchy Shellcode dažādas versijas.
Papildus aprakstītajai funkcionalitātei mēs identificējām arī neaktīvās funkcijas:

  • Manuāla procesa pārtraukÅ”anas bloÄ·Ä“Å”ana uzdevumu pārvaldniekā

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

  • Bērna procesa restartÄ“Å”ana, kad tas tiek pārtraukts

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

  • Apiet UAC

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

  • Kravas saglabāŔana failā

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

  • Modālo logu demonstrÄ“Å”ana

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

  • Gaida, lÄ«dz mainÄ«sies peles kursora pozÄ«cija

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

  • AntiVM un AntiSandbox

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

  • PaÅ”iznÄ«cināŔana

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

  • Kravas atsÅ«knÄ“Å”ana no tÄ«kla

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

Mēs zinām, ka Ŕāda funkcionalitāte ir raksturÄ«ga aizsargam CypherIT, kas acÄ«mredzot ir attiecÄ«gais sāknÄ“Å”anas ielādētājs.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

Galvenais programmatūras modulis

Tālāk mēs īsi aprakstīsim galveno ļaunprātīgās programmatūras moduli un sīkāk to aplūkosim otrajā rakstā. Šajā gadījumā tā ir lietojumprogramma NET..

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa
Analīzes laikā mēs atklājām, ka tika izmantots obfuskators ConfuserEX.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

IELibrary.dll

Bibliotēka tiek glabāta kā galvenais moduļa resurss un ir labi zināms spraudnis AÄ£ents Tesla, kas nodroÅ”ina funkcionalitāti dažādas informācijas iegÅ«Å”anai no pārlÅ«kprogrammām Internet Explorer un Edge.

AÄ£ents Tesla ir modulāra spiegoÅ”anas programmatÅ«ra, kas tiek izplatÄ«ta, izmantojot ļaunprogrammatÅ«ras kā pakalpojuma modeli likumÄ«ga taustiņu bloķētāja produkta aizsegā. AÄ£ents Tesla spēj iegÅ«t un pārsÅ«tÄ«t lietotāju akreditācijas datus no pārlÅ«kprogrammām, e-pasta klientiem un FTP klientiem uz serveri uzbrucējiem, ierakstÄ«t starpliktuves datus un tvert ierÄ«ces ekrānu. AnalÄ«zes laikā izstrādātāju oficiālā vietne nebija pieejama.

Ieejas punkts ir funkcija GetSavedPasswords klases InternetExplorer.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa
Kopumā koda izpilde ir lineāra un nesatur nekādu aizsardzÄ«bu pret analÄ«zi. Tikai nerealizētā funkcija ir pelnÄ«jusi uzmanÄ«bu GetSavedCookies. AcÄ«mredzot bija paredzēts paplaÅ”ināt spraudņa funkcionalitāti, taču tas nekad netika izdarÄ«ts.

Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

SāknÄ“Å”anas ielādēja pievienoÅ”ana sistēmai

IzpētÄ«sim, kā sāknÄ“Å”anas ielādētājs ir pievienots sistēmai. PētÄ«tais paraugs nenoenkurojas, bet lÄ«dzÄ«gos gadÄ«jumos tas notiek saskaņā ar Ŕādu shēmu:

  1. Mapē C:UsersPublic tiek izveidots skripts Visual Basic

    Skripta piemērs:

    Vēlētāju dalība neizdevās: pakļausim AgentTesla tīram ūdenim. 1. daļa

  2. Ielādētāja faila saturs tiek polsterēts ar nulles rakstzīmi un saglabāts mapē %Temp%<Pielāgotās mapes nosaukums><Faila nosaukums>
  3. Skripta faila reÄ£istrā tiek izveidota automātiskās palaiÅ”anas atslēga HKCUSoftwareMicrosoftWindowsCurrentVersionRun<Skripta nosaukums>

Tātad, pamatojoties uz analÄ«zes pirmās daļas rezultātiem, mēs varējām noteikt visu pētāmās ļaunprātÄ«gās programmatÅ«ras komponentu Ä£imeņu nosaukumus, analizēt infekcijas modeli un arÄ« iegÅ«t objektus parakstu rakstÄ«Å”anai. Mēs turpināsim Ŕī objekta analÄ«zi nākamajā rakstā, kur sÄ«kāk aplÅ«kosim galveno moduli AÄ£ents Tesla. Nepalaid garām!

Starp citu, 5. decembrÄ« aicinām visus lasÄ«tājus uz bezmaksas interaktÄ«vu vebināru par tēmu ā€œÄ»aunprātÄ«gas programmatÅ«ras analÄ«ze: reālu gadÄ«jumu analÄ«zeā€, kurā Ŕī raksta autors, CERT-GIB speciālists tieÅ”saistē rādÄ«s pirmo posmu ļaunprātÄ«gas programmatÅ«ras analÄ«ze - pusautomātiska paraugu izpakoÅ”ana, izmantojot trÄ«s reālus mini gadÄ«jumus no prakses, un jÅ«s varat piedalÄ«ties analÄ«zē. Vebinārs ir piemērots speciālistiem, kuriem jau ir pieredze ļaunprātÄ«gu failu analÄ«zē. ReÄ£istrācija notiek tikai no korporatÄ«vā e-pasta: reÄ£istrējieties tagad. Gaidot tevi!

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ŔiŔi

Vārds qoute_jpeg56a.r15
MD5 53BE8F9B978062D4411F71010F49209E
SHA1 A8C2765B3D655BA23886D663D22BDD8EF6E8E894
SHA256 2641DAFB452562A0A92631C2849B8B9CE880F0F8F

890E643316E9276156EDC8A

tips Arhivēt WinRAR
Izmēri 823014
Vārds QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
SHA1 8010CC2AF398F9F951555F7D481CE13DF60BBECF
SHA256 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

tips PE (kompilētais AutoIt skripts)
Izmēri 1327616
OriginalName nezināms
Datuma zīmogs 15.07.2019
Saites Microsoft Linker (12.0)[EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
SHA1 79B445DE923C92BF378B19D12A309C0E9C5851BF
SHA256 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

tips ShellCode
Izmēri 1474

Avots: www.habr.com

Pievieno komentāru