Um Enn Mee hu mir eng Kampagne entdeckt fir Remote Access Trojan (RAT) Malware ze verdeelen - Programmer déi Ugräifer erlaben en infizéierte System op afstand ze kontrolléieren.
D'Grupp, déi mir iwwerpréift hunn, ënnerscheede sech duerch d'Tatsaach datt et keng spezifesch RAT Famill fir Infektioun ausgewielt huet. Verschidde Trojaner goufen an Attacke bannent der Campagne gemierkt (déi all wäit verfügbar waren). Mat dëser Fonktioun huet d'Grupp eis un de Rattekinnek erënnert - e mythescht Déier dat aus Nager mat vernetzten Schwänz besteet.
D'Original ass aus der Monographie vum K. N. Rossikov geholl "Mais a Mausähnlech Nager, déi wirtschaftlech wichtegst" (1908)
Zu Éiere vun dëser Kreatur hu mir de Grupp genannt, dee mir als RATKing betruechten. An dësem Post wäerte mir am Detail goen wéi d'Ugräifer den Attack duerchgefouert hunn, wéi eng Tools se benotzt hunn, an och eis Gedanken iwwer d'Attributioun fir dës Kampagne deelen.
Fortschrëtt vun der Attack
All Attacken an dëser Campagne sinn nom folgenden Algorithmus stattfonnt:
De Benotzer krut eng Phishing-E-Mail mat engem Link op Google Drive.
Mat Hëllef vum Link huet d'Affer e béiswëlleg VBS-Skript erofgelueden, deen eng DLL-Bibliothéik spezifizéiert huet fir déi lescht Notzlaascht an de Windows Registry ze lueden an PowerShell gestart fir se auszeféieren.
D'DLL Bibliothéik huet déi lescht Notzlaascht - tatsächlech, ee vun de RATs, déi vun Ugräifer benotzt ginn - an de Systemprozess injizéiert an e VBS Skript fir Autorun verschriwwen fir Fouss an der infizéierter Maschinn ze kréien.
Déi lescht Notzlaascht gouf an engem Systemprozess ausgefouert an huet dem Ugräifer d'Fäegkeet fir den infizéierte Computer ze kontrolléieren.
Schematesch kann et esou duergestallt ginn:
Als nächst wäerte mir op déi éischt dräi Etappe konzentréieren, well mir interesséiert sinn am Malware Liwwermechanismus. Mir wäerten net am Detail de Mechanismus vun der Operatioun vun der Malware selwer beschreiwen. Si si wäit verfügbar - entweder op spezialiséierte Foren verkaaft, oder souguer als Open Source Projete verdeelt - an dofir sinn net eenzegaarteg fir de RATKing Grupp.
Анализ этапов атаки
Etapp 1. Phishing Email
D'Attack huet ugefaang mat dem Affer e béise Bréif ze kréien (d'Ugräifer hunn verschidde Templates mat Text benotzt; de Screenshot hei ënnen weist ee Beispill). De Message enthält e Link op e legitime Repository drive.google.com, déi vermeintlech zu enger PDF Dokument Download Säit gefouert huet.
Phishing E-Mail Beispill
Wéi och ëmmer, et war net e PDF Dokument dat iwwerhaapt gelueden gouf, mee e VBS Skript.
Wann Dir op de Link vun der E-Mail am Screenshot hei uewen geklickt hutt, gëtt eng Datei mam Numm Cargo Flight Details.vbs. An dësem Fall hunn d'Täter net emol probéiert d'Datei als legitim Dokument ze verkleeden.
Zur selwechter Zäit, als Deel vun dëser Campagne, hu mir e Skript mam Numm entdeckt Cargo Trip Detail.pdf.vbs. Et kéint scho fir e legitimen PDF passéieren, well Windows verstoppt Dateiextensiounen als Standard. Richteg, an dësem Fall konnt de Verdacht nach ëmmer duerch seng Ikon erwächt ginn, déi dem VBS Skript entsprécht.
Op dëser Etapp konnt d'Affer d'Täuschung erkennen: kuckt just déi erofgeluede Dateie fir eng Sekonn méi no. Wéi och ëmmer, an esou Phishing Kampagnen vertrauen Ugräifer dacks op en onopmerksamen oder räissende Benotzer.
Etapp 2. VBS Schrëft Operatioun
De VBS Skript, deen de Benotzer zoufälleg opmaache konnt, huet eng DLL Bibliothéik am Windows Registry registréiert. D'Skript war verstoppt: d'Zeilen an et goufen als Bytes geschriwwe vun engem arbiträr Charakter.
Beispill vun engem obfuscéierten Skript
Den Deobfuscatiounsalgorithmus ass ganz einfach: all drëtt Charakter gouf aus der obfuscéierter String ausgeschloss, duerno gouf d'Resultat vun der Base16 an den Original String dekodéiert. Zum Beispill, aus dem Wäert 57Q53s63t72s69J70r74e2El53v68m65j6CH6Ct (beliicht am Screenshot uewen) déi resultéierend Linn war WScript.Shell.
Fir Strings ze deobfuscate, hu mir d'Python Funktioun benotzt:
def decode_str(data_enc):
return binascii.unhexlify(''.join([data_enc[i:i+2] for i in range(0, len(data_enc), 3)]))
Drënner, op de Linnen 9-10, markéiere mir de Wäert deem seng Deobfuscatioun zu enger DLL Datei gefouert huet. Et war hien deen op der nächster Etapp mat PowerShell gestart gouf.
String mat obfuscéierten DLL
All Funktioun am VBS Skript gouf ausgefouert wéi d'Saiten deobfuscéiert goufen.
Nodeems de Skript gelaf ass, gouf d'Funktioun genannt wscript.sleep - et gouf benotzt fir ausgeschloss Ausféierung ze maachen.
Als nächst huet de Skript mat der Windows Registry geschafft. Hien huet WMI Technologie fir dës benotzt. Mat senger Hëllef gouf en eenzegaartege Schlëssel erstallt, an de Kierper vun der ausführbarer Datei gouf op säi Parameter geschriwwe. De Registry gouf iwwer WMI zougänglech mam folgendem Kommando:
Eng Entrée gemaach am Registry vun engem VBS Skript
Etapp 3. Operatioun vun der DLL Bibliothéik
Op der drëtter Stuf huet déi béiswëlleg DLL déi lescht Notzlaascht gelueden, an de Systemprozess injizéiert a gesuergt datt de VBS-Skript automatesch gestart huet wann de Benotzer ageloggt ass.
Run iwwer PowerShell
D'DLL gouf mat dem folgenden Kommando an PowerShell ausgefouert:
krut Registry Wäert Daten mam Numm rnd_value_name - dës Donnéeën waren eng DLL-Datei, déi op der .Net Plattform geschriwwe gouf;
gelueden déi doraus resultéierend .Net Modul an Prozess Erënnerung powershell.exe benotzt d'Funktioun [System.Threading.Thread]::GetDomain().Load()(detailléiert Beschreiwung vun der Luet () Funktioun verfügbar op der Microsoft Websäit);
d'Funktioun gemaach GUyyvmzVhebFCw]::EhwwK() - d'Ausféierung vun der DLL-Bibliothéik huet domat ugefaang - mat Parameteren vbsScriptPath, xorKey, vbsScriptName. Parameter xorKey de Schlëssel fir d'Entschlësselung vun der Finale Notzlaascht gespäichert, an d'Parameteren vbsScriptPath и vbsScriptName goufen transferéiert fir e VBS Skript am Autorun anzeschreiwen.
Beschreiwung vun der DLL Bibliothéik
An dekompiléierter Form huet de Bootloader esou ausgesinn:
Loader an dekompiléierter Form (d'Funktioun mat där d'Ausféierung vun der DLL-Bibliothéik ugefaang huet ass rout ënnersträicht)
De Bootloader ass geschützt vum .Net Reactor Protector. Den de4dot Utility mécht eng exzellent Aarbecht fir dëse Protecteur ze läschen.
Dëse Loader:
huet d'Notzlaascht an de Systemprozess injizéiert (an dësem Beispill et svchost.exe);
Ech hunn e VBS Skript fir Autorun bäigefüügt.
Инжект пейлоада
Loosst eis d'Funktioun kucken, déi de PowerShell Skript genannt huet.
Funktioun genannt vum PowerShell Skript
Dës Funktioun huet déi folgend Aktiounen gemaach:
entschlësselt zwee Datesätz (array и array2 am Screenshot). Si goufen ursprénglech mat gzip kompriméiert a verschlësselt mam XOR Algorithmus mam Schlëssel xorKey;
kopéiert Daten op zougewisen Erënnerung Beräicher. Daten aus array - op d'Erënnerung Beräich weist op intPtr (payload pointer am Screenshot); daten vun array2 - op d'Erënnerung Beräich weist op intPtr2 (shellcode pointer am Screenshot);
Funktioun genannt CallWindowProcA(описание Dës Funktioun ass op der Microsoft Websäit verfügbar) mat de folgende Parameteren (d'Nimm vun de Parameteren sinn hei ënnendrënner opgezielt, am Screenshot sinn se an der selwechter Uerdnung, awer mat Aarbechtswäerter):
lpPrevWndFunc - Zeigefanger zu Daten aus array2;
hWnd - Zeiger op eng String déi de Wee op d'ausführbar Datei enthält svchost.exe;
Msg - Zeigefanger zu Daten aus array;
wParam, lParam - Message Parameteren (an dësem Fall goufen dës Parameteren net benotzt an haten Wäerter vun 0);
eng Datei erstallt %AppData%MicrosoftWindowsStart MenuProgramsStartup<name>.urlwou <name> - dat sinn déi éischt 4 Zeeche vum Parameter vbsScriptName (am Screenshot fänkt de Codefragment mat dëser Aktioun mam Kommando un File.Copy). Op dës Manéier huet d'Malware eng URL-Datei op d'Lëscht vun Autorun-Dateien bäigefüügt wann de Benotzer ageloggt ass an domat un den infizéierte Computer verbonnen ass. D'URL-Datei enthält e Link zum Skript:
Fir ze verstoen wéi d'Injektioun duerchgefouert gouf, hu mir d'Datenarrays entschlësselt array и array2. Fir dëst ze maachen hu mir déi folgend Python Funktioun benotzt:
def decrypt(data, key):
return gzip.decompress(
bytearray([data[i] ^ key[i % len(key)] for i in range(len(data))])[4:])
Als Resultat hu mir erausfonnt datt:
array war eng PE-Datei - dëst ass déi lescht Notzlaascht;
array2 представлял собой шелл-код, необходимый для осуществления инжекта.
Shellcode vun enger Array array2 als Funktiounswäert iwwerginn lpPrevWndFunc an eng Funktioun CallWindowProcA. lpPrevWndFunc - Callback Funktioun, säi Prototyp gesäit esou aus:
Also wann Dir d'Funktioun leeft CallWindowProcA mat Parameteren hWnd, Msg, wParam, lParam Shellcode aus der Array gëtt ausgefouert array2 mat Argumenter hWnd и Msg. hWnd ass e Pointer op eng String déi de Wee op déi ausführbar Datei enthält svchost.exean Msg - Hibléck op déi lescht Notzlaascht.
De Shellcode krut Funktiounsadressen vun kernel32.dll и ntdll32.dll baséiert op Hashwäerter vun hiren Nimm an huet déi lescht Notzlaascht an d'Prozess Memory injizéiert svchost.exemat der Process Hollowing Technik (Dir kënnt méi doriwwer liesen an dësem Artikel). Wann Dir de Shellcode injizéiert:
e Prozess erstallt svchost.exe an engem suspendéierte Staat mat der Funktioun CreateProcessW;
verstoppt dann den Affichage vun der Sektioun am Adressraum vum Prozess svchost.exe benotzt d'Funktioun NtUnmapViewOfSection. Sou huet de Programm d'Erënnerung un den originelle Prozess befreit svchost.exefir dann Erënnerung fir d'Notzlaascht op dëser Adress ze verdeelen;
zougewisen Erënnerung fir d'Notzlaascht am Prozess Adress Raum svchost.exe benotzt d'Funktioun VirtualAllocEx;
Start vun der Injektiounsprozess
huet den Inhalt vun der Notzlaascht an de Prozessadressraum geschriwwen svchost.exe benotzt d'Funktioun WriteProcessMemory (wéi am Screenshot hei drënner);
huet de Prozess erëm opgeholl svchost.exe benotzt d'Funktioun ResumeThread.
Ofschloss vum Injektiounsprozess
Downloadbar Malware
Als Resultat vun den beschriwwenen Aktiounen gouf eng vun e puer RAT-Klass Malware um infizéierte System installéiert. D'Tabell hei drënner weist d'Malware, déi an der Attack benotzt ginn, déi mir zouversiichtlech un eng Grupp vun Ugräifer kënnen zouzeschreiwen, well d'Proben op deeselwechte Kommando- a Kontrollserver zougänglech sinn.
Numm vun der Malware
Éischt gesinn
SHA-256
C&C
De Prozess an deem d'Injektioun duerchgefouert gëtt
Beispiller vu verdeelt Malware mat dem selwechte Kontrollserver
Zwou Saache sinn hei bemierkenswäert.
Éischtens, de Fakt datt d'Ugräifer verschidde verschidde RAT Famillen gläichzäiteg benotzt hunn. Dëst Verhalen ass net typesch fir bekannte Cybergruppen, déi dacks ongeféier deeselwechte Set vun Tools benotzen, déi hinnen vertraut sinn.
Zweetens, RATKing benotzt Malware déi entweder op spezialiséierte Foren fir e klenge Präis verkaaft gëtt, oder souguer en Open Source Projet ass.
Eng méi komplett Lëscht vu Malware, déi an der Kampagne benotzt gëtt - mat engem wichtegen Opgepasst - gëtt um Enn vum Artikel uginn.
Iwwer de Grupp
Mir kënnen déi beschriwwe béiswëlleg Kampagne net un all bekannten Ugräifer zouzeschreiwen. Fir de Moment gleewen mir datt dës Attacke vun enger grondleeënd neier Grupp duerchgefouert goufen. Wéi mir am Ufank geschriwwen hunn, hu mir et RATKing genannt.
Fir de VBS Skript ze kreéieren, huet d'Grupp wahrscheinlech e Tool benotzt ähnlech wéi d'Utility VBS-Crypter vum Entwéckler NYAN-x-CAT. Dëst gëtt uginn duerch d'Ähnlechkeet vum Skript deen dëse Programm mam Skript vun den Ugräifer erstellt. Speziell si béid:
verspéit Ausféierung mat der Funktioun ausféieren Sleep;
используют WMI;
registréiert de Kierper vun der ausführbarer Datei als Registry Key Parameter;
dës Datei mat PowerShell a sengem eegene Adressraum auszeféieren.
Fir Kloerheet, vergläicht de PowerShell Kommando fir eng Datei aus der Registry ze lafen, déi vun engem Skript benotzt gëtt deen mat VBS-Crypter erstallt gëtt:
Notéiert datt d'Ugräifer en anert Utility vum NYAN-x-CAT als ee vun de Notzlaascht benotzt hunn - LimeRAT.
D'Adresse vun de C&C Serveren weisen eng aner ënnerscheedend Feature vum RATKing un: de Grupp léiwer dynamesch DNS-Servicer (kuckt d'Lëscht vun den C&Cen an der IoC Tabell).
IoC
D'Tabell hei ënnendrënner gëtt eng komplett Lëscht vun VBS Scripten déi meescht wahrscheinlech un der beschriwwen Campagne zougeschriwwen ginn. All dës Skripte sinn ähnlech a maachen ongeféier déiselwecht Sequenz vun Aktiounen. All vun hinnen sprëtzen RAT Klass Malware an e vertrauenswürdege Windows Prozess. All vun hinnen hunn C&C Adressen registréiert mat Dynamic DNS Servicer.
Mir kënnen awer net behaapten datt all dës Scripte vun deene selwechte Ugräifer verdeelt goufen, mat Ausnam vun Echantillon mat der selwechter C & C Adressen (Zum Beispill, kimjoy007.dyndns.org).
Numm vun der Malware
SHA-256
C&C
De Prozess an deem d'Injektioun duerchgefouert gëtt