Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1
Koartlyn, in Jeropeeske fabrikant fan elektryske ynstallaasje apparatuer kontakt Group-IB - syn meiwurker krige in fertochte brief mei in kwea-aardich taheaksel yn 'e post. Ilya Pomerantsev, in malware-analyze-spesjalist by CERT Group-IB, die in detaillearre analyze fan dit bestân, ûntduts dêr de AgentTesla-spyware en fertelde wat te ferwachtsjen fan sokke malware en hoe't it gefaarlik is.

Mei dizze post iepenje wy in searje artikels oer hoe't jo sokke potinsjeel gefaarlike bestannen kinne analysearje, en wy wachtsje op de meast nijsgjirrige op 5 desimber foar in fergese ynteraktyf webinar oer it ûnderwerp "Malware-analyze: Analyse fan echte gefallen". Alle details binne ûnder de besuniging.

Ferdieling meganisme

Wy witte dat de malware de masine fan it slachtoffer berikte fia phishing-e-mails. De ûntfanger fan it brief wie wierskynlik BCCed.

Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1
Analyse fan de kopteksten docht bliken dat de ôfstjoerder fan de brief spoofed is. Yn feite, de brief liet mei vps56[.]oneworldhosting[.]com.

Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1
De e-postbylage befettet in WinRar-argyf qoute_jpeg56a.r15 mei in kwea-aardich útfierber bestân QOUTE_JPEG56A.exe binnenkant.

Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

Malware ekosysteem

Litte wy no sjen hoe't it ekosysteem fan 'e malware ûnder stúdzje der útsjocht. It diagram hjirûnder toant de struktuer en de rjochtingen fan ynteraksje fan 'e komponinten.

Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1
Litte wy no elk fan 'e malware-komponinten yn mear detail sjen.

Loader

Orizjinele triem QOUTE_JPEG56A.exe is in gearstald AutoIt v3 skrift.

Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1
Om it orizjinele skript te ferbergjen, in obfuscator mei ferlykbere PELock AutoIT-Obfuscator skaaimerken.
Deobfuscation wurdt útfierd yn trije stadia:

  1. It fuortsmiten fan obfuscation Foar-As

    De earste stap is om de kontrôlestream fan it skript te herstellen. Control Flow Flattening is ien fan 'e meast foarkommende manieren om binêre koade fan applikaasje te beskermjen tsjin analyse. Betiizjende transformaasjes fergrutsje dramatysk de kompleksiteit fan it ekstrahearjen en werkennen fan algoritmen en gegevensstruktueren.

    Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

  2. Rige herstel

    Twa funksjes wurde brûkt om strings te fersiferjen:

    • gdorizabegkvfca - Fiert Base64-like dekodearring út

      Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

    • xgacyukcyzxz - ienfâldige byte-byte XOR fan 'e earste tekenrige mei de lingte fan' e twadde

      Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

    Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

  3. It fuortsmiten fan obfuscation BinaryToString и Utfiere

    Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

De wichtichste lading wurdt opslein yn in ferdield foarm yn 'e map lettertypen boarne seksjes fan it bestân.

Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1
De folchoarder fan lijm is as folget: TIEQHCXWFG, EMI, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, AOCHKRWWSKWO, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, HWJHO, AVZOUMVFRDWFLWU.

De WinAPI-funksje wurdt brûkt om de ekstrahearre gegevens te ûntsiferjen CryptDecrypt, en de sesjekaai oanmakke op basis fan de wearde wurdt brûkt as de kaai fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.

It dekodearre útfierbere bestân wurdt stjoerd nei de funksje-ynfier RunPE, dy't útfiert ProcessInject в RegAsm.exe mei help fan ynboude ShellCode (ek bekind as RunPE ShellCode). It auteurskip heart by de brûker fan it Spaanske foarum yndetectables[.]net ûnder de bynamme Wardow.

Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1
Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1
It is ek de muoite wurdich opskriuwen dat yn ien fan de triedden fan dit foarum, in obfuscator foar By it dak mei ferlykbere eigenskippen identifisearre tidens sample analyze.

Himself ShellCode frij simpel en lûkt oandacht allinnich liend fan de hacker groep AnunakCarbanak. API oprop hashing funksje.

Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1
Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

Wy binne ek bewust fan gebrûk gefallen Frenchy Shellcode ferskillende ferzjes.
Neist de beskreaune funksjonaliteit identifisearren wy ek ynaktive funksjes:

  • Hânlieding prosesbeëiniging blokkearje yn taakbehearder

    Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

  • In bernproses opnij starte as it beëiniget

    Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

  • Bypass UAC

    Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

  • It bewarjen fan de lading nei in bestân

    Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

  • Demonstraasje fan modale finsters

    Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

  • Wachtsje oant de posysje fan de mûsoanwizer feroaret

    Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

  • AntiVM en AntiSandbox

    Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

  • Selsdestruksje

    Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

  • Pumping payload út it netwurk

    Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

Wy witte dat sa'n funksjonaliteit typysk is foar de beskermer CypherIT, dy't, blykber, de bootloader yn kwestje is.

Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

Main module fan software

Folgjende sille wy koart beskriuwe de haadmodule fan 'e malware, en beskôgje it yn mear detail yn it twadde artikel. Yn dit gefal is it in applikaasje op .NET.

Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1
Tidens de analyze ûntdutsen wy dat in obfuscator waard brûkt ConfuserEX.

Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

IELibrary.dll

De bibleteek wurdt opslein as in haadmoduleboarne en is in bekende plugin foar Agent Tesla, dy't funksjonaliteit leveret foar it ekstrahearjen fan ferskate ynformaasje út Internet Explorer en Edge-browsers.

Agent Tesla is in modulêre spyingsoftware ferspraat mei in malware-as-a-service-model ûnder it mom fan in legitime keylogger-produkt. Agent Tesla is yn steat om brûkersbewizen fan browsers, e-postkliïnten en FTP-kliïnten te ekstrahearjen en te ferstjoeren nei de tsjinner nei oanfallers, klamboerdgegevens opnimme en it apparaatskerm opnimme. Op it momint fan analyse wie de offisjele webside fan 'e ûntwikkelders net beskikber.

It yngongspunt is de funksje GetSavedPasswords klasse InternetExplorer.

Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1
Yn 't algemien is koade-útfiering lineêr en befettet gjin beskerming tsjin analyse. Allinnich de net realisearre funksje fertsjinnet omtinken GetSavedCookies. Blykber soe de funksjonaliteit fan 'e plugin útwreide wurde, mar dit waard nea dien.

Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

Befestigje de bootloader oan it systeem

Litte wy studearje hoe't de bootloader is hechte oan it systeem. It eksimplaar ûnder stúdzje docht gjin ankering, mar yn ferlykbere eveneminten komt it foar neffens it folgjende skema:

  1. Yn map C: Brûkers Publyk skript wurdt makke Visual Basic

    Skript foarbyld:

    Opkomst mislearre: lit ús AgentTesla bleatstelle oan skjin wetter. Diel 1

  2. De ynhâld fan it loader-bestân wurdt opfold mei in nul-karakter en bewarre yn 'e map %Temp%
  3. In autorun-kaai wurdt makke yn it register foar it skriptbestân HKCUSoftwareMicrosoftWindowsCurrentVersionRun

Dat, op basis fan 'e resultaten fan it earste diel fan' e analyse, koene wy ​​​​de nammen fan 'e famyljes fan alle komponinten fan' e ûndersochte malware fêststelle, it ynfeksjepatroan analysearje, en ek objekten krije foar it skriuwen fan hantekeningen. Wy sille trochgean mei ús analyze fan dit objekt yn it folgjende artikel, wêr't wy de haadmodule yn mear detail sille besjen Agent Tesla. Net misse!

Trouwens, op 5 desimber noegje wy alle lêzers út foar in fergese ynteraktyf webinar oer it ûnderwerp "Analyse fan malware: analyze fan echte gefallen", wêr't de skriuwer fan dit artikel, in CERT-GIB-spesjalist, de earste faze fan online sil sjen litte malware analyze - semy-automatyske útpakke fan samples mei it foarbyld fan trije echte mini-gefallen út 'e praktyk, en jo kinne dielnimme oan' e analyse. It webinar is geskikt foar spesjalisten dy't al ûnderfining hawwe yn it analysearjen fan kweade bestannen. Registraasje is strikt fan bedriuws-e-post: Ynskriuwe. Wachtsje op dy!

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

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

890E643316E9276156EDC8A

Type Argyf WinRAR
Grutte 823014
namme QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
SHA1 8010CC2AF398F9F951555F7D481CE13DF60BBECF
SHA256 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

Type PE (Compiled AutoIt Script)
Grutte 1327616
OriginalName Ûnbekend
Datum stimpel 15.07.2019
linker Microsoft Linker(12.0)[EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
SHA1 79B445DE923C92BF378B19D12A309C0E9C5851BF
SHA256 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

Type ShellCode
Grutte 1474

Boarne: www.habr.com

Add a comment