Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1
Nyligen kontaktade en europeisk tillverkare av elektrisk installationsutrustning Group-IB - dess medarbetare fick ett misstänkt brev med en skadlig bilaga på posten. Ilja Pomerantsev, en specialist på analys av skadlig programvara på CERT Group-IB, genomförde en detaljerad analys av den här filen, upptäckte AgentTeslas spionprogram där och berättade vad man kan förvänta sig av sådan skadlig programvara och hur den är farlig.

Med det här inlägget öppnar vi en serie artiklar om hur man analyserar sådana potentiellt farliga filer, och vi väntar på de mest nyfikna den 5 december för ett gratis interaktivt webbseminarium om ämnet "Malware Analysis: Analysis of Real Cases". Alla detaljer är under snittet.

Distributionsmekanism

Vi vet att skadlig programvara nådde offrets dator via nätfiske-e-post. Mottagaren av brevet var förmodligen hemligstämplad.

Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1
Analys av rubrikerna visar att avsändaren av brevet var falsk. Faktum är att brevet kvar med vps56[.]oneworldhosting[.]com.

Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1
E-postbilagan innehåller ett WinRar-arkiv qoute_jpeg56a.r15 med en skadlig körbar fil QOUTE_JPEG56A.exe inuti.

Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

Malware ekosystem

Låt oss nu se hur ekosystemet för den skadliga programvaran som studeras ser ut. Diagrammet nedan visar dess struktur och komponenternas samverkansriktningar.

Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1
Låt oss nu titta på var och en av de skadliga komponenterna mer i detalj.

Lastare

Originalfil QOUTE_JPEG56A.exe är en sammanställd AutoIt v3 manus.

Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1
För att fördunkla det ursprungliga skriptet, en obfuscator med liknande PELock AutoIT-Obfuscator egenskaper.
Deobfuskering utförs i tre steg:

  1. Ta bort obfuskation För om

    Det första steget är att återställa skriptets kontrollflöde. Control Flow Flattening är ett av de vanligaste sätten att skydda applikationens binära kod från analys. Förvirrande transformationer ökar dramatiskt komplexiteten i att extrahera och känna igen algoritmer och datastrukturer.

    Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

  2. Radåterställning

    Två funktioner används för att kryptera strängar:

    • gdorizabegkvfca - Utför Base64-liknande avkodning

      Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

    • xgacyukcyzxz - enkel byte-byte XOR för den första strängen med längden på den andra

      Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

    Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

  3. Ta bort obfuskation BinaryToString и Utförande

    Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

Huvudbelastningen lagras i en uppdelad form i katalogen Teckensnitt resurssektioner av filen.

Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1
Limningsordningen är följande: TIEQHCXWFG, IME, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, AOCHKRWWSKWO, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, HWJHO, AVZOUMVFRDWFLWU.

WinAPI-funktionen används för att dekryptera extraherade data CryptDecrypt, och den sessionsnyckel som genereras baserat på värdet används som nyckel fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.

Den dekrypterade körbara filen skickas till funktionsingången RunPE, som genomför ProcessInject в RegAsm.exe med inbyggd ShellCode (också känd som Kör PE ShellCode). Författarskapet tillhör användaren av det spanska forumet oupptäckbara[.]net under smeknamnet Wardow.

Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1
Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1
Det är också värt att notera att i en av trådarna i detta forum, en obfuscator för AutoIt med liknande egenskaper identifierade under provanalys.

Själv ShellCode ganska enkel och väcker uppmärksamhet endast lånad från hackergruppen AnunakCarbanak. API-anrops-hashningsfunktion.

Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1
Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

Vi är också medvetna om användningsfall Frenchy Shellcode olika versioner.
Utöver den beskrivna funktionaliteten identifierade vi också inaktiva funktioner:

  • Blockerar manuell processavslutning i Aktivitetshanteraren

    Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

  • Startar om en underordnad process när den avslutas

    Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

  • Bypass UAC

    Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

  • Spara nyttolasten till en fil

    Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

  • Demonstration av modala fönster

    Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

  • Väntar på att muspekarens position ska ändras

    Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

  • AntiVM och AntiSandbox

    Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

  • självförstörelse

    Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

  • Pumpar nyttolast från nätverket

    Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

Vi vet att sådan funktionalitet är typisk för skyddet CypherIT, som uppenbarligen är bootloadern i fråga.

Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

Huvudmodul av programvara

Därefter kommer vi kort att beskriva huvudmodulen för skadlig programvara och överväga den mer i detalj i den andra artikeln. I det här fallet är det en ansökan på . NET.

Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1
Under analysen upptäckte vi att en obfuscator användes ConfuserEX.

Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

IELibrary.dll

Biblioteket lagras som en huvudmodulresurs och är ett välkänt plugin för Agent Tesla, som tillhandahåller funktionalitet för att extrahera olika information från webbläsarna Internet Explorer och Edge.

Agent Tesla är en modulär spionprogramvara som distribueras med en malware-as-a-service-modell under sken av en legitim keylogger-produkt. Agent Tesla kan extrahera och överföra användaruppgifter från webbläsare, e-postklienter och FTP-klienter till servern till angripare, spela in urklippsdata och fånga enhetens skärm. Vid tidpunkten för analysen var utvecklarnas officiella webbplats inte tillgänglig.

Ingångspunkten är funktionen Get SavedPasswords klass InternetExplorer.

Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1
I allmänhet är kodexekveringen linjär och innehåller inget skydd mot analys. Endast den orealiserade funktionen förtjänar uppmärksamhet Get SavedCookies. Uppenbarligen var det meningen att funktionaliteten för pluginet skulle utökas, men detta gjordes aldrig.

Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

Ansluter starthanteraren till systemet

Låt oss studera hur starthanteraren är kopplad till systemet. Provet som studeras förankras inte, men i liknande händelser inträffar det enligt följande schema:

  1. I mappen C:UsersPublic skriptet skapas Visual Basic

    Skriptexempel:

    Valdeltagandet misslyckades: låt oss utsätta AgentTesla för rent vatten. Del 1

  2. Innehållet i laddningsfilen är vadderat med ett nolltecken och sparas i mappen %Temp%
  3. En autorun-nyckel skapas i registret för skriptfilen HKCUSoftwareMicrosoftWindowsCurrentVersionRun

Så, baserat på resultaten från den första delen av analysen, kunde vi fastställa namnen på familjerna för alla komponenter i den skadliga programvaran som studeras, analysera infektionsmönstret och även skaffa objekt för att skriva signaturer. Vi kommer att fortsätta vår analys av detta objekt i nästa artikel, där vi kommer att titta på huvudmodulen mer i detalj Agent Tesla. Missa inte!

Förresten, den 5 december bjuder vi in ​​alla läsare till ett gratis interaktivt webbseminarium om ämnet "Analys av skadlig programvara: analys av verkliga fall", där författaren till denna artikel, en CERT-GIB-specialist, kommer att visa online det första steget av malware analys - halvautomatisk uppackning av prover med hjälp av exemplet med tre riktiga mini-case från praktiken, och du kan ta del av analysen. Webinariet är lämpligt för specialister som redan har erfarenhet av att analysera skadliga filer. Registrering sker enbart från företagets e-post: registrera. Väntar på dig!

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
}

hashes

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

890E643316E9276156EDC8A

Typ Arkiv WinRAR
Storlek 823014
Namn QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
SHA1 8010CC2AF398F9F951555F7D481CE13DF60BBECF
SHA256 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

Typ PE (Kompilerat AutoIt-skript)
Storlek 1327616
Originalnamn Okänd
Datumstämpel 15.07.2019
länkar Microsoft Linker(12.0)[EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
SHA1 79B445DE923C92BF378B19D12A309C0E9C5851BF
SHA256 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

Typ ShellCode
Storlek 1474

Källa: will.com

Lägg en kommentar