Mat dësem Artikel kompletéiere mir d'Serie vu Publikatiounen déi der Analyse vu béiswëlleger Software gewidmet sinn. IN
Haut Ilya Pomerantsev, e Spezialist an der Malware Analyse bei CERT Group-IB, wäert iwwer déi éischt Stuf vun der Malware Analyse schwätzen - semi-automatesch Auspackung vun AgentTesla Echantillon mam Beispill vun dräi Mini-Fäll aus der Praxis vun CERT Group-IB Spezialisten.
Typesch ass déi éischt Stuf an der Malwareanalyse d'Entfernung vum Schutz a Form vun engem Packer, Kryptor, Protector oder Loader. An deene meeschte Fäll kann dëse Problem geléist ginn andeems d'Malware leeft an en Dump ausféiert, awer et gi Situatiounen wou dës Method net gëeegent ass. Zum Beispill, wann d'Malware en Encryptor ass, wann et seng Erënnerungsregioune schützt fir ze dumpen, wann de Code virtuell Maschinn Detektiounsmechanismen enthält, oder wann d'Malware direkt nom Start nei start. An esou Fäll gëtt sougenannt "semi-automatesch" Auspackung benotzt, dat heescht, de Fuerscher huet komplett Kontroll iwwer de Prozess a kann zu all Moment intervenéieren. Loosst eis dës Prozedur mat dräi Proben vun der AgentTesla Famill als Beispill betruechten. Dëst ass eng relativ harmlos Malware wann Dir säin Netzzougang deaktivéiert.
Probe Nr 1
D'Quelldatei ass e MS Word Dokument dat d'Vulnerabilitéit CVE-2017-11882 ausnotzt.
Als Resultat gëtt d'Notzlaascht erofgelueden a lancéiert.
Analyse vum Prozessbaum a Verhalensmarker weist d'Injektioun an de Prozess RegAsm.exe.
Et gi Verhalensmarker charakteristesch fir AgentTesla.
Déi erofgeluede Probe ass déi ausführbar .NET-Datei geschützt vun engem Protecteur .NET Reaktor.
Loosst eis et am Utility opmaachen dnSpy x86 a fuert weider op den Entréespunkt.
Andeems Dir op d'Funktioun geet DatumTimeOffset, wäerte mir den Initialiséierungscode fir déi nei fannen .NET-modul. Loosst eis setzen Breakpoint op der Linn mir interesséiert sinn an de Fichier lafen.
An engem vun de zréckkomm Puffer kënnt Dir d'MZ Ënnerschrëft gesinn (0x4D 0x5A). Loosst eis et retten.
Eng dumpte ausführbar Datei ass eng dynamesch Bibliothéik déi e Loader ass, d.h. extrahéiert d'Notzlaascht aus der Ressource Sektioun a lancéiert se.
Zur selwechter Zäit sinn déi néideg Ressourcen selwer net am Dump präsent. Si sinn an der Elteren Prouf.
Utility dnSpy huet zwee extrem nëtzlech Funktionalitéit, déi eis hëllefe ganz séier e "Frankenstein" aus zwee verbonne Dateien ze kreéieren.
- Déi éischt erlaabt Iech eng dynamesch Bibliothéik an d'Eltereprobe ze "paste".
- Déi zweet ass de Funktiounscode um Entréespunkt ëmzeschreiwen fir déi gewënschte Method vun der agebauter dynamescher Bibliothéik ze ruffen.
Mir späicheren eis "Frankenstein", Set Breakpoint op der Linn e Puffer mat entschlësselte Ressourcen zréckzeginn, a produzéiert en Dump no Analogie mat der viregter Etapp.
Den zweeten Dump ass geschriwwen VB.NET eng ausführbar Datei déi geschützt ass vun engem Protecteur deen eis vertraut ass ConfuserEx.
Nodeems mir de Protecteur ewechgeholl hunn, benotze mir d'YARA Reegelen déi virdru geschriwwe goufen a stellen sécher datt déi ausgepackt Malware wierklech AgentTesla ass.
Probe Nr 2
D'Quelldatei ass en MS Excel Dokument. En agebaute Makro verursaacht Ausféierung vu béiswëllegen Code.
Als Resultat gëtt de PowerShell Skript gestart.
De Skript entschlësselt den C # Code an iwwerdréit d'Kontroll un. De Code selwer ass e Bootloader, wéi och aus dem Sandbox Bericht gesi ka ginn.
D'Notzlaascht ass en ausführbar .NET- Datei.
D'Datei opmaachen an dnSpy x86, Dir kënnt gesinn datt et verstoppt ass. Ewechzehuelen Obfuscatioun mam Utility de4 dot an zréck op d'Analyse.
Wann Dir de Code iwwerpréift, kënnt Dir déi folgend Funktioun entdecken:
Déi kodéiert Linnen sinn opfälleg EntryPoint и Opruff. Mir setzen Breakpoint op déi éischt Zeil, lafen a späichert de Pufferwäert byte_0.
Den Dump ass erëm eng Applikatioun op .NET a geschützt ConfuserEx.
Mir ewechzehuelen obfuscation benotzt de4 dot an eropluede op dnSpy. Vun der Dateibeschreiwung verstinn mir datt mir konfrontéiert sinn CyaX-Sharp Loader.
Dëse Loader huet extensiv Anti-Analysefunktionalitéit.
Dës Funktionalitéit beinhalt d'Contournement vun agebaute Windows Schutzsystemer, deaktivéieren Windows Defender, souwéi Sandkëscht a virtuell Maschinn Detektiounsmechanismen. Et ass méiglech d'Notzlaascht aus dem Netz ze lueden oder se an der Ressource Sektioun ze späicheren. De Start gëtt duerch Injektioun an säin eegene Prozess gemaach, an en Duplikat vu sengem eegene Prozess oder a Prozesser MSBuild.exe, vbc.exe и RegSvcs.exe ofhängeg vum Parameter, deen den Ugräifer gewielt huet.
Fir eis si se awer manner bedeitend wéi Antidump-Funktioun déi dobäi ConfuserEx. Seng Quellcode kann op fonnt ginn
Fir de Schutz auszeschalten, benotze mir d'Geleeënheet dnSpy, wat Iech erlaabt ze änneren IL-Code.
Späicheren an installéieren Breakpoint op d'Linn vum Opruff vun der Notzlaaschttschlësselungsfunktioun. Et läit am Konstruktor vun der Haaptklass.
Mir starten a dumpen d'Notzlaascht. Mat de virdru geschriwwene YARA Reegelen suerge mir datt dëst AgentTesla ass.
Probe Nr 3
D'Quelldatei ass den ausführbar VB Native PE32- Datei.
Entropie Analyse weist d'Präsenz vun engem grousse Stéck verschlësselte Donnéeën.
Wann Dir den Umeldungsformular analyséiert an VB Decompiler Dir kënnt e komeschen pixeléierten Hannergrond bemierken.
Entropie Grafik bmp-image ass identesch mat der Entropiegrafik vun der Originaldatei, an d'Gréisst ass 85% vun der Dateigréisst.
D'allgemeng Erscheinung vum Bild weist d'Benotzung vu Steganographie un.
Loosst eis op d'Erscheinung vum Prozessbaum oppassen, wéi och d'Präsenz vun engem Injektiounsmarker.
Dëst weist datt d'Auspackung amgaang ass. Fir Visual Basic Loader (aka VBKrypt oder VBInjector) typesch Notzung shellcode fir d'Notzlaascht ze initialiséieren, wéi och d'Injektioun selwer auszeféieren.
Analyse an VB Decompiler huet d'Präsenz vun engem Event gewisen Lueden an der Form FegatassocAirballoon2.
Loosst eis op IDA pro op déi spezifizéiert Adress a studéiert d'Funktioun. De Code ass schwéier verstoppt. De Fragment dat eis interesséiert gëtt hei ënnen presentéiert.
Hei gëtt den Adressraum vum Prozess fir eng Ënnerschrëft gescannt. Dës Approche ass extrem zweifelhaft.
Éischt, d'Scannen Start Adress 0x400100. Dëse Wäert ass statesch a gëtt net ugepasst wann d'Basis verréckelt gëtt. An idealen Treibhausbedingungen wäert et d'Enn uginn PE- den Header vun der ausführbarer Datei. Wéi och ëmmer, d'Datebank ass net statesch, säi Wäert kann änneren, an d'Sich no der richteger Adress vun der erfuerderter Ënnerschrëft, obwuel et net e variabelen Iwwerschwemmung verursaacht, kann ganz laang daueren.
Zweetens, d'Bedeitung vun der Ënnerschrëft iWGK. Ech mengen et ass offensichtlech datt 4 Bytes ze kleng ass fir Eenzegaartegkeet ze garantéieren. A wann Dir den éischte Punkt berücksichtegt, ass d'Wahrscheinlechkeet e Feeler ze maachen zimlech héich.
Tatsächlech ass dat erfuerderlecht Fragment um Enn vum virdru fonnte befestegt bmp-Biller duerch Offset 0xA1D0D.
Leeschtung Shellcode an zwou Etappen duerchgefouert. Déi éischt entschlësselt den Haaptkierper. An dësem Fall gëtt de Schlëssel duerch brute Kraaft bestëmmt.
Dump déi entschlësselte Shellcode a kuckt op d'Linnen.
Als éischt kennen mir elo d'Funktioun fir e Kandprozess ze kreéieren: CreateProcessInternalW.
Zweetens goufe mir de Mechanismus vun der Fixatioun am System bewosst.
Komme mer zréck op den urspréngleche Prozess. Loosst eis setzen Breakpoint op CreateProcessInternalW a weider Ausféierung. Als nächst gesi mir d'Verbindung NtGetContextThread/NtSetContextThread, déi d'Ausféierungsstartadress op d'Adress ännert ShellCode.
Mir verbannen dem erstallte Prozess mat engem Debugger an aktivéieren den Event Suspendéiert op d'Bibliothéik Lueden / Ausluede, fuert de Prozess weider a waart op d'Luede .NET- Bibliothéiken.
Weider benotzen ProzessHacker Dumpregiounen enthalen ausgepackt .NET- Applikatioun.
Mir stoppen all Prozesser a läschen d'Kopie vun der Malware déi am System agebonne gouf.
Déi gedumpte Datei ass vun engem Protecteur geschützt .NET Reaktor, déi einfach mat engem Utility ewechgeholl ka ginn de4 dot.
Mat de YARA Reegelen déi virdru geschriwwe goufen, suerge mir datt dëst AgentTesla ass.
Komme mer zesummegefaasst
Also, mir hunn am Detail de Prozess vun der semi-automatescher Probe Auspackung mat dräi Mini-Fäll als Beispill bewisen, an och Malware analyséiert baséiert op engem vollwäertege Fall, erauszefannen datt d'Probe déi studéiert ass AgentTesla ass, seng Funktionalitéit an eng komplett Lëscht vun Indicateuren vun Kompromëss.
D'Analyse vum béiswëllegen Objet, dee mir duerchgefouert hunn, erfuerdert vill Zäit an Effort, an dës Aarbecht soll vun engem speziellen Employé an der Firma ausgefouert ginn, awer net all Firmen si prett fir en Analyst ze beschäftegen.
Ee vun de Servicer, déi vum Group-IB Laboratory of Computer Forensics and Malicious Code Analysis zur Verfügung gestallt gëtt, ass d'Äntwert op Cyber Tëschefäll. A fir datt d'Clienten keng Zäit verschwenden fir Dokumenter z'accordéieren an ze diskutéieren an der Mëtt vun engem Cyberattack, huet Group-IB gestart Tëschefall Äntwert Retainer, e Pre-Abonnement Incident Response Service deen och e Malware Analyse Schrëtt enthält. Méi Informatiounen iwwer dëst kann fonnt ginn
Wann Dir nach eng Kéier studéiere wëllt wéi AgentTesla Proben ausgepackt ginn a kucken wéi e CERT Group-IB Spezialist et mécht, kënnt Dir de Webinar Opzeechnung iwwer dëst Thema eroflueden
Source: will.com