Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1
Onlangs het 'n Europese vervaardiger van elektriese installasietoerusting Group-IB gekontak - sy werknemer het 'n verdagte brief met 'n kwaadwillige aanhangsel in die pos ontvang. Ilya Pomerantsev, 'n wanware-ontledingspesialis by CERT Group-IB, het 'n gedetailleerde ontleding van hierdie lêer gedoen, die AgentTesla-spioenware daar ontdek en vertel wat om van sulke wanware te verwag en hoe dit gevaarlik is.

Met hierdie pos open ons 'n reeks artikels oor hoe om sulke potensieel gevaarlike lêers te ontleed, en ons wag vir die mees nuuskieriges op 5 Desember vir 'n gratis interaktiewe webinar oor die onderwerp "Walware-analise: ontleding van werklike gevalle". Al die besonderhede is onder die snit.

Verspreidingsmeganisme

Ons weet dat die wanware die slagoffer se masjien bereik het via uitvissing-e-posse. Die ontvanger van die brief was waarskynlik BCCed.

Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1
Ontleding van die opskrifte toon dat die afsender van die brief bedrieg is. Trouens, die brief gelaat met vps56[.]oneworldhosting[.]com.

Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1
Die e-posaanhangsel bevat 'n WinRar-argief qoute_jpeg56a.r15 met 'n kwaadwillige uitvoerbare lêer QOUTE_JPEG56A.exe binne.

Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

HPE ekosisteem

Kom ons kyk nou hoe die ekosisteem van die wanware wat bestudeer word, lyk. Die diagram hieronder toon die struktuur daarvan en die rigtings van interaksie van die komponente.

Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1
Kom ons kyk nou na elk van die malware-komponente in meer besonderhede.

Laaier

Oorspronklike lêer QOUTE_JPEG56A.exe is 'n saamgestelde AutoIt v3 skrif.

Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1
Om die oorspronklike skrif te verduister, 'n obfuscator met soortgelyke PELock AutoIT-Obfuscator eienskappe.
Deobfuskasie word in drie fases uitgevoer:

  1. Verwydering van verduistering Vir-As

    Die eerste stap is om die skrif se beheervloei te herstel. Control Flow Flattening is een van die mees algemene maniere om toepassingsbinêre kode teen analise te beskerm. Verwarrende transformasies verhoog dramaties die kompleksiteit van onttrekking en herkenning van algoritmes en datastrukture.

    Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

  2. Ry herstel

    Twee funksies word gebruik om stringe te enkripteer:

    • gdorizabegkvfca - Voer Base64-agtige dekodering uit

      Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

    • xgacyukcyzxz - eenvoudige byte-byte XOR van die eerste string met die lengte van die tweede

      Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

    Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

  3. Verwydering van verduistering BinaryToString и Voer

    Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

Die hooflading word in 'n verdeelde vorm in die gids gestoor Fonts hulpbronafdelings van die lêer.

Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1
Die plakvolgorde is soos volg: TIEQHCXWFG, EMI, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, AOCHKRWWSKWO, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, HWJHO, AVZOUMVFRDWFLWU.

Die WinAPI-funksie word gebruik om die onttrekde data te dekripteer CryptDecrypt, en die sessiesleutel wat op grond van die waarde gegenereer word, word as die sleutel gebruik fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.

Die gedekripteerde uitvoerbare lêer word na die funksie-invoer gestuur RunPE, wat uitvoer ProsesInspuit в RegAsm.exe met behulp van ingeboude Shell-kode (ook bekend as RunPE ShellCode). Outeurskap behoort aan die gebruiker van die Spaanse forum onopspoorbare[.]net onder die bynaam Wardow.

Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1
Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1
Dit is ook opmerklik dat in een van die drade van hierdie forum, 'n obfuscator vir By die dak met soortgelyke eienskappe wat tydens monsterontleding geïdentifiseer is.

Homself Shell-kode redelik eenvoudig en trek aandag net geleen van die hacker-groep AnunakCarbanak. API oproep hashing funksie.

Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1
Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

Ons is ook bewus van gebruiksgevalle Frenchy Shellcode verskillende weergawes.
Benewens die beskryfde funksionaliteit, het ons ook onaktiewe funksies geïdentifiseer:

  • Blokkeer handmatige prosesbeëindiging in taakbestuurder

    Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

  • Herbegin 'n kinderproses wanneer dit beëindig word

    Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

  • Omseil UAC

    Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

  • Stoor die loonvrag na 'n lêer

    Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

  • Demonstrasie van modale vensters

    Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

  • Wag vir die posisie van die muiswyser om te verander

    Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

  • AntiVM en AntiSandbox

    Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

  • selfvernietiging

    Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

  • Pomp loonvrag vanaf die netwerk

    Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

Ons weet dat sulke funksionaliteit tipies is vir die beskermer CypherIT, wat blykbaar die betrokke selflaaiprogram is.

Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

Hoofmodule van sagteware

Vervolgens sal ons die hoofmodule van die wanware kortliks beskryf en dit in meer besonderhede in die tweede artikel oorweeg. In hierdie geval is dit 'n aansoek op NET..

Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1
Tydens die analise het ons ontdek dat 'n obfuscator gebruik is ConfuserEX.

Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

IELibrary.dll

Die biblioteek word as 'n hoofmodule-hulpbron gestoor en is 'n bekende inprop vir Agent Tesla, wat funksionaliteit bied om verskeie inligting uit Internet Explorer en Edge-blaaiers te onttrek.

Agent Tesla is 'n modulêre spioenasieprogrammatuur wat versprei word deur 'n wanware-as-'n-diens-model onder die dekmantel van 'n wettige keylogger-produk te gebruik. Agent Tesla is in staat om gebruikersbewyse van blaaiers, e-poskliënte en FTP-kliënte na die bediener na aanvallers te onttrek en oor te dra, klemborddata op te neem en die toestelskerm vas te vang. Ten tyde van ontleding was die amptelike webwerf van die ontwikkelaars nie beskikbaar nie.

Die toegangspunt is die funksie Get SavedPasswords klas InternetExplorer.

Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1
Oor die algemeen is kode-uitvoering lineêr en bevat geen beskerming teen analise nie. Slegs die ongerealiseerde funksie verdien aandag GetSavedCookies. Blykbaar was die funksionaliteit van die inprop veronderstel om uitgebrei te word, maar dit is nooit gedoen nie.

Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

Koppel die selflaaiprogram aan die stelsel

Kom ons bestudeer hoe die selflaaiprogram aan die stelsel gekoppel is. Die monster onder studie voer nie ankering uit nie, maar in soortgelyke gebeure vind dit volgens die volgende skema plaas:

  1. In vouer C:Gebruikers Publiek skrif geskep word Visual Basic

    Skrip voorbeeld:

    Opkoms het misluk: kom ons stel AgentTesla bloot aan skoon water. Deel 1

  2. Die inhoud van die selflaaiprogramlêer is opgevul met 'n nulkarakter en in die gids gestoor %Temp%
  3. 'n Outorun-sleutel word in die register vir die skriplêer geskep HKCUSoftwareMicrosoftWindowsCurrentVersionRun

Dus, gebaseer op die resultate van die eerste deel van die analise, kon ons die name van die families van alle komponente van die wanware wat bestudeer word vasstel, die infeksiepatroon ontleed en ook voorwerpe kry om handtekeninge te skryf. Ons gaan voort met ons ontleding van hierdie voorwerp in die volgende artikel, waar ons in meer besonderhede na die hoofmodule sal kyk Agent Tesla. Moet nie misloop nie!

Terloops, op 5 Desember nooi ons alle lesers uit na 'n gratis interaktiewe webinar oor die onderwerp "Analise van wanware: ontleding van werklike gevalle", waar die skrywer van hierdie artikel, 'n CERT-GIB-spesialis, die eerste fase van malware-analise - semi-outomatiese uitpak van monsters met behulp van die voorbeeld van drie regte mini-gevalle uit die praktyk, en jy kan deelneem aan die ontleding. Die webinar is geskik vir spesialiste wat reeds ondervinding het in die ontleding van kwaadwillige lêers. Registrasie is streng vanaf korporatiewe e-pos: registreer. Wag vir jou!

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
}

Haas

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

890E643316E9276156EDC8A

Tipe Argief WinRAR
grootte 823014
Naam QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
SHA1 8010CC2AF398F9F951555F7D481CE13DF60BBECF
SHA256 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

Tipe PE (saamgestelde AutoIt-skrip)
grootte 1327616
Oorspronklike Naam Unknown
Datumstempel 15.07.2019
Links Microsoft Linker(12.0)[EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
SHA1 79B445DE923C92BF378B19D12A309C0E9C5851BF
SHA256 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

Tipe Shell-kode
grootte 1474

Bron: will.com

Voeg 'n opmerking