Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa
Hiljuti võttis Group IB-ga ühendust Euroopa elektripaigaldusseadmete tootja – selle töötaja sai posti teel kahtlase kirja pahatahtliku manusega. Ilja Pomerantsev, CERT Group-IB pahavaraanalüüsi spetsialist, viis läbi selle faili üksikasjaliku analüüsi, avastas seal AgentTesla nuhkvara ja rääkis, mida selliselt pahavaralt oodata ja kui ohtlik see on.

Selle postitusega avame artiklite sarja, kuidas selliseid potentsiaalselt ohtlikke faile analüüsida ning ootame uudishimulikumaid 5. detsembril teemalisele tasuta interaktiivsele veebiseminarile. "Pahavara analüüs: tegelike juhtumite analüüs". Kõik detailid on lõike all.

Jaotusmehhanism

Teame, et pahavara jõudis ohvri masinasse andmepüügimeilide kaudu. Kirja saaja oli tõenäoliselt BCC-ga.

Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa
Päiste analüüs näitab, et kirja saatja oli võltsitud. Tegelikult kiri lahkus vps56[.]oneworldhosting[.]com.

Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa
Meili manus sisaldab WinRari arhiivi qoute_jpeg56a.r15 pahatahtliku käivitatava failiga QOUTE_JPEG56A.exe sees.

Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

Pahavara ökosüsteem

Nüüd vaatame, milline näeb välja uuritava pahavara ökosüsteem. Alloleval diagrammil on näidatud selle struktuur ja komponentide koostoime suunad.

Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa
Nüüd vaatame iga pahavara komponenti üksikasjalikumalt.

Laadija

Algne fail QOUTE_JPEG56A.exe on koostatud AutoIt v3 stsenaarium.

Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa
Algse skripti häguseks muutmiseks sarnasega hägustaja PELock AutoIT-obfuskaator omadused.
Deobfuskatsioon viiakse läbi kolmes etapis:

  1. Hägustuse eemaldamine For-If

    Esimene samm on skripti juhtimisvoo taastamine. Control Flow Flattening on üks levinumaid viise rakenduse binaarkoodi kaitsmiseks analüüsi eest. Segadust tekitavad teisendused muudavad algoritmide ja andmestruktuuride ekstraheerimise ja tuvastamise järsult keerukamaks.

    Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

  2. Rea taastamine

    Stringide krüptimiseks kasutatakse kahte funktsiooni:

    • gdorizabegkvfca – teostab Base64-laadset dekodeerimist

      Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

    • xgacyukcyzxz – esimese stringi lihtne bait-bait XOR teise stringi pikkusega

      Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

    Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

  3. Hägustuse eemaldamine BinaryToString и Täitma

    Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

Põhikoormus salvestatakse kataloogis jagatud kujul Fondid faili ressursiosades.

Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa
Liimimise järjekord on järgmine: TIEQHCXWFG, EMI, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, AOCHKRWWSKWO, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, HWJHO, AVZOUMVFRDWFLWU.

Ekstraheeritud andmete dekrüpteerimiseks kasutatakse funktsiooni WinAPI CryptDecrypt, ja võtmena kasutatakse väärtuse põhjal loodud seansivõtit fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.

Dekrüpteeritud käivitatav fail saadetakse funktsiooni sisendisse RunPE, mis teostab ProcessInject в RegAsm.exe kasutades sisseehitatud ShellCode (tuntud ka kui RunPE ShellCode). Autorsus kuulub Hispaania foorumi kasutajale tuvastatavad[.]võrk hüüdnime Wardow all.

Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa
Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa
Samuti väärib märkimist, et ühes selle foorumi lõimes on hägustaja jaoks Katuse juures proovi analüüsi käigus tuvastatud sarnaste omadustega.

Ise ShellCode üsna lihtne ja äratab tähelepanu vaid häkkerirühmitusest AnunakCarbanak laenatud. API-kõnede räsifunktsioon.

Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa
Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

Oleme teadlikud ka kasutusjuhtudest Prantsuse Shellcode erinevad versioonid.
Lisaks kirjeldatud funktsioonidele tuvastasime ka mitteaktiivsed funktsioonid:

  • Protsessi käsitsi lõpetamise blokeerimine tegumihalduris

    Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

  • Alamprotsessi taaskäivitamine, kui see lõpeb

    Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

  • UAC ümbersõit

    Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

  • Kasuliku koormuse salvestamine faili

    Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

  • Modaakende demonstreerimine

    Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

  • Ootab hiirekursori asukoha muutumist

    Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

  • AntiVM ja AntiSandbox

    Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

  • Enesehävitamine

    Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

  • Kasuliku koormuse pumpamine võrgust

    Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

Teame, et selline funktsionaalsus on kaitsjale omane CypherIT, mis ilmselt on kõnealune alglaadur.

Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

Tarkvara põhimoodul

Järgmisena kirjeldame lühidalt pahavara põhimoodulit ja käsitleme seda teises artiklis üksikasjalikumalt. Sel juhul on see rakendus . NET.

Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa
Analüüsi käigus avastasime, et kasutati obfuskaatorit ConfuserEX.

Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

IELibrary.dll

Teek on salvestatud peamise mooduli ressursina ja on selle jaoks tuntud pistikprogramm AgentTesla, mis pakub funktsioone Internet Exploreri ja Edge'i brauseritest erineva teabe hankimiseks.

Agent Tesla on modulaarne nuhkimistarkvara, mida levitatakse seadusliku klahvilogija toote varjus pahavara kui teenuse mudelit kasutades. Agent Tesla on võimeline hankima ja edastama kasutaja mandaate brauserite, meiliklientide ja FTP-klientide kaudu ründajatele serverisse, salvestama lõikelaua andmeid ja jäädvustama seadme ekraani. Analüüsi ajal ei olnud arendajate ametlik veebisait saadaval.

Sisendpunkt on funktsioon GetSavedPasswords klassi InternetExplorer.

Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa
Üldiselt on koodi täitmine lineaarne ega sisalda analüüsi eest kaitset. Tähelepanu väärib ainult realiseerimata funktsioon GetSavedCookies. Ilmselt pidi pistikprogrammi funktsionaalsust laiendama, kuid seda ei tehtud kunagi.

Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

Alglaaduri ühendamine süsteemiga

Uurime, kuidas alglaadur on süsteemi külge kinnitatud. Uuritav proov ei ankurdu, kuid sarnaste sündmuste korral toimub see vastavalt järgmisele skeemile:

  1. Kaustas C:UsersPublic skript luuakse Visual Basic

    Skripti näide:

    Osalemine ebaõnnestus: laseme AgentTesla puhta veega kokku puutuda. 1. osa

  2. Laadimisfaili sisu on polsterdatud nullmärgiga ja salvestatud kausta %Temp%
  3. Skriptifaili jaoks luuakse registris automaatkäivitusvõti HKCUSoftwareMicrosoftWindowsCurrentVersionRun

Seega saime analüüsi esimese osa tulemuste põhjal kindlaks teha kõigi uuritava pahavara komponentide perekondade nimed, analüüsida nakatumismustrit ning hankida ka objekte allkirjade kirjutamiseks. Selle objekti analüüsi jätkame järgmises artiklis, kus vaatleme põhimoodulit üksikasjalikumalt AgentTesla. Ära igatse!

Muide, 5. detsembril kutsume kõiki lugejaid tasuta interaktiivsele veebiseminarile teemal “Pahavara analüüs: reaalsete juhtumite analüüs”, kus käesoleva artikli autor, CERT-GIB spetsialist, näitab veebis esimese etapi pahavara analüüs - proovide poolautomaatne lahtipakkimine kolme tõelise minijuhtumi näitel praktikast ja saate analüüsist osa võtta. Veebiseminar sobib spetsialistidele, kellel on juba kogemusi pahatahtlike failide analüüsimisel. Registreerimine toimub rangelt ettevõtte e-posti teel: registreerima. Ootan sind!

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
}

Räsid

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

890E643316E9276156EDC8A

KASUTUSALA Arhiiv WinRAR
SUURUS 823014
Nimi QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
SHA1 8010CC2AF398F9F951555F7D481CE13DF60BBECF
SHA256 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

KASUTUSALA PE (kompileeritud AutoIt skript)
SUURUS 1327616
OriginalName Tundmatu
Kuupäevatempel 15.07.2019
Lingid Microsoft Linker (12.0)[EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
SHA1 79B445DE923C92BF378B19D12A309C0E9C5851BF
SHA256 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

KASUTUSALA ShellCode
SUURUS 1474

Allikas: www.habr.com

Lisa kommentaar