D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1
Viru kuerzem huet en europäeschen Hiersteller vun elektreschen Installatiounsausrüstung Group-IB kontaktéiert - säin Employé krut e verdächtege Bréif mat engem béiswëllegen Uschloss an der Mail. Ilya Pomerantsev, e Malware Analyse Spezialist bei CERT Group-IB, huet eng detailléiert Analyse vun dëser Datei gemaach, entdeckt d'AgentTesla Spyware do a sot wat Dir vun esou Malware erwaart a wéi et geféierlech ass.

Mat dësem Post öffnen mir eng Serie vun Artikelen op wéi een esou potenziell geféierlech Dateien analyséiert, a mir waarden op déi virwëtzegst de 5. Dezember op e gratis interaktiven Webinar zum Thema "Malware Analyse: Analyse vun Real Fäll". All Detailer sinn ënner dem Schnëtt.

Verdeelung Mechanismus

Mir wëssen datt d'Malware d'Maschinn vum Affer iwwer Phishing-E-Mailen erreecht huet. Den Empfänger vum Bréif war wahrscheinlech BCCed.

D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1
Analyse vun den Header weist datt de Sender vum Bréif gefälscht gouf. Tatsächlech, de Bréif lénks mat vps56[.]oneworldhosting[.]com.

D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1
Den E-Mail-Uschloss enthält e WinRar-Archiv qoute_jpeg56a.r15 mat enger béiswëlleger ausführbarer Datei QOUTE_JPEG56A.exe bannen.

D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

Malware Ökosystem

Loosst eis elo kucken wéi den Ökosystem vun der Malware ënner Studie ausgesäit. D'Diagramm hei ënnen weist seng Struktur an d'Richtungen vun der Interaktioun vun de Komponenten.

D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1
Loosst eis elo jidderee vun de Malware Komponenten méi detailléiert kucken.

Loader

Original Fichier QOUTE_JPEG56A.exe ass eng kompiléiert AutoIt v3 Schrëft.

D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1
Fir d'Original Schrëft ze obfuscéieren, en obfuscator mat ähnlechen PELock AutoIT-Obfuscator Charakteristiken.
Deobfuscatioun gëtt an dräi Etappen duerchgefouert:

  1. Entfernung vun Obfuscatioun Fir - Wann

    Den éischte Schrëtt ass d'Kontrollfloss vum Skript ze restauréieren. Control Flow Flattening ass ee vun den allgemengste Weeër fir Applikatioun binäre Code géint Analyse ze schützen. Duercherneen Transformatiounen erhéijen dramatesch d'Komplexitéit vum Extrait an der Unerkennung vun Algorithmen an Datestrukturen.

    D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

  2. Rei Erhuelung

    Zwee Funktiounen gi benotzt fir Strings ze verschlësselen:

    • gdorizabegkvfca - Féiert Base64-ähnlech Dekodéierung

      D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

    • xgacyukcyzxz - einfach Byte-Byte XOR vun der éischter String mat der Längt vun der zweeter

      D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

    D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

  3. Entfernung vun Obfuscatioun BinaryToString и Virschau

    D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

D'Haaptlaascht gëtt an enger opgedeelt Form am Verzeechnes gespäichert Policen Ressource Sektiounen vun der Datei.

D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1
D'Uerdnung vum Klebstoff ass wéi follegt: TIEQHCXWFG, EMI, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, AOCHKRWWSKWO, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, HWJHO, AVZOUMVFRDWFLWU.

D'WinAPI Funktioun gëtt benotzt fir déi extrahéiert Donnéeën ze entschlësselen CryptDecrypt, an de Sessiounsschlëssel generéiert op Basis vum Wäert gëtt als Schlëssel benotzt fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.

Déi dekryptéiert ausführbar Datei gëtt op d'Funktiounsinput geschéckt RunPE, déi duerchféiert ProcessInject в RegAsm.exe benotzt gebaut-an ShellCode (och bekannt als RunPE ShellCode). Autoritéit gehéiert dem Benotzer vum spuenesche Forum indetectables[.]net ënner dem Spëtznumm Wardow.

D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1
D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1
Et ass och ze bemierken datt an engem vun de thread vun dësem Forum en Obfuscator fir Um Daach mat ähnlechen Eegeschafte identifizéiert während der Probeanalyse.

Selwer ShellCode ganz einfach an zitt Opmierksamkeet nëmmen aus dem Hacker Grupp AnunakCarbanak geléint. API Call hashing Funktioun.

D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1
D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

Mir sinn och bewosst Benotzungsfäll Frenchy Shellcode verschidde Versiounen.
Zousätzlech zu der beschriwwener Funktionalitéit hu mir och inaktiv Funktiounen identifizéiert:

  • Spär manuell Prozesskënnegung am Task Manager

    D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

  • E Kand Prozess nei starten wann et ophält

    D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

  • Bypass UAC

    D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

  • Späichert d'Notzlaascht op eng Datei

    D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

  • Demonstratioun vun modal Fënsteren

    D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

  • Waart op d'Positioun vum Mauszeiger ze änneren

    D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

  • AntiVM an AntiSandbox

    D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

  • Selbstzerstéierung

    D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

  • Pompelen Notzlaascht aus dem Netz

    D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

Mir wëssen datt esou Funktionalitéit typesch fir de Protector ass CypherIT, deen, anscheinend, de Bootloader a Fro ass.

D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

Main Modul vun Software

Als nächst wäerte mir den Haaptmodul vun der Malware kuerz beschreiwen, a méi am Detail am zweeten Artikel betruechten. An dësem Fall ass et eng Applikatioun op .NET.

D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1
Wärend der Analyse hu mir entdeckt datt en Obfuscator benotzt gouf ConfuserEX.

D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

IELibrary.dll

D'Bibliothéik gëtt als Haaptmodul Ressource gespäichert an ass e bekannte Plugin fir Agent Tesla, déi Funktionalitéit ubitt fir verschidde Informatioun aus Internet Explorer an Edge Browser ze extrahieren.

Agent Tesla ass eng modulär Spiounssoftware verdeelt mat engem Malware-as-a-Service Modell ënner dem Deckmantel vun engem legitimen Keylogger Produkt. Agent Tesla ass fäeg d'Benotzer Umeldungsinformatioune vu Browser, E-Mail Clienten a FTP Clienten op de Server un Ugräifer ze extrahéieren an ze vermëttelen, Clipboarddaten opzehuelen an den Apparatbildschierm opzehuelen. Zu der Zäit vun der Analyse war déi offiziell Websäit vun den Entwéckler net verfügbar.

Den Entrée ass d'Funktioun GetSavedPasswords Klass InternetExplorer.

D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1
Allgemeng ass d'Code-Ausféierung linear an enthält kee Schutz géint Analyse. Nëmmen déi onrealiséiert Funktioun verdéngt Opmierksamkeet GetSavedCookies. Anscheinend sollt d'Funktionalitéit vum Plugin erweidert ginn, awer dëst gouf ni gemaach.

D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

Befestegt de Bootloader op de System

Loosst eis studéieren wéi de Bootloader un de System verbonnen ass. D'Exemplar ënner der Studie verankert net, awer an ähnlechen Eventer geschitt et no dem folgende Schema:

  1. Am Dossier C: BenotzerPublic Skript erstallt visuell Grondleegend

    Skript Beispill:

    D'Walbedeelegung gescheitert: loosst eis den AgentTesla proppert Waasser ausstellen. Deel 1

  2. Den Inhalt vun der Loader Datei gëtt mat engem Null Charakter gepolstert an an den Dossier gespäichert %Temp%
  3. En Autorun Schlëssel gëtt am Registry fir d'Skriptdatei erstallt HKCUSoftwareMicrosoftWindowsCurrentVersionRun

Also, baséiert op d'Resultater vum éischten Deel vun der Analyse, konnte mir d'Nimm vun de Familljen vun alle Komponente vun der Malware ënner Studie feststellen, d'Infektiounsmuster analyséieren an och Objete kréien fir Ënnerschrëften ze schreiwen. Mir wäerten eis Analyse vun dësem Objet am nächsten Artikel weiderféieren, wou mir den Haaptmodul méi detailléiert kucken Agent Tesla. Verpasst net!

Iwwregens, de 5. Dezember invitéiere mir all d'Lieser op e gratis interaktiven Webinar zum Thema "Analyse vu Malware: Analyse vun echte Fäll", wou den Auteur vun dësem Artikel, e CERT-GIB Spezialist, online déi éischt Etapp vun weist. malware Analyse - semi-automatesch Auspakung vun Echantillon mat der Beispill vun dräi real Mini-Fäll aus Praxis, an Dir kënnt Deel vun der Analyse huelen. De Webinar ass gëeegent fir Spezialisten déi scho Erfahrung hunn an der Analyse vun béiswëlleg Dateien. Umeldung ass strikt vun der Firma E-Mail: aschreiwen. Waarden op dech!

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
}

Haischen

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

Spezifikatioune vun 890E643316E9276156EDC8A

Type Archiv WinRAR
Gréisst 823014
Numm QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
SHA1 8010CC2AF398F9F951555F7D481CE13DF60BBECF
SHA256 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

Type PE (Kompiléiert AutoIt Skript)
Gréisst 1327616
Original Numm onbekannt
Datum Stamp 15.07.2019
linker Microsoft Linker(12.0)[EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
SHA1 79B445DE923C92BF378B19D12A309C0E9C5851BF
SHA256 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

Type ShellCode
Gréisst 1474

Source: will.com

Setzt e Commentaire