I flera år har Mellanöstern behållit sitt rykte som en bördig grund för avancerade ihållande hot (APT). Mitt under rutinmässig övervakning av misstänkta aktiviteter på system hos högprofilerade kunder, några baserade i denna region, snubblade ESET Research över en mycket sofistikerad och okänd bakdörr som vi har döpt till Deadglyph. Vi härledde namnet från artefakter som hittades i bakdörren (som t.ex 0xDÖDB001, visas också i REF _Ref111452440 h Bord 1
), tillsammans med närvaron av en homoglyf ge sig på. Så vitt vi vet är detta den första offentliga analysen av denna tidigare odokumenterade bakdörr, som används av en grupp som uppvisar en anmärkningsvärd grad av sofistikering och expertis. Baserat på inriktningen och ytterligare bevis tillskriver vi Stealth Falcon APT-gruppen med högt självförtroende Deadglyph.
Deadglyphs arkitektur är ovanlig som den består av samverkande komponenter – den ena en inbyggd x64-binär, den andra en .NET-sammansättning. Denna kombination är ovanlig eftersom skadlig programvara vanligtvis bara använder ett programmeringsspråk för sina komponenter. Denna skillnad kan indikera separat utveckling av dessa två komponenter samtidigt som de drar fördel av unika egenskaper hos de distinkta programmeringsspråken de använder. Olika språk kan också utnyttjas för att hindra analys, eftersom blandad kod är svårare att navigera och felsöka.
De traditionella bakdörrskommandona implementeras inte i bakdörrsbinären; istället tas de dynamiskt emot av den från kommando- och kontrollservern (C&C) i form av ytterligare moduler. Denna bakdörr har också ett antal funktioner för att undvika att bli upptäckt.
I det här blogginlägget tar vi en närmare titt på Deadglyph och ger en teknisk analys av denna bakdörr, dess syfte och några av de ytterligare komponenterna vi fick. Vi presenterar också våra resultat om Deadglyph på LABScon 2023 konferens.
Huvudpunkterna i blogginlägget:
- ESET Research upptäckte en sofistikerad bakdörr med ovanlig arkitektur som vi har döpt till Deadglyph.
- Huvudkomponenterna krypteras med en maskinspecifik nyckel.
- Traditionella bakdörrskommandon implementeras via ytterligare moduler som tas emot från dess C&C-server.
- Vi fick tre av många moduler – processskapare, filläsare och infosamlare.
- Vi tillskriver Deadglyph till gruppen Stealth Falcon.
- Dessutom hittade vi en relaterad shellcode-nedladdare; vi antar att det potentiellt kan användas för installation av Deadglyph.
Offret för den analyserade infiltrationen är en statlig enhet i Mellanöstern som äventyrades i spionagesyfte. Ett relaterat prov som hittades på VirusTotal laddades också upp till filskanningsplattformen från denna region, särskilt från Qatar. Den riktade regionen är avbildad på kartan i REF _Ref143614671 h Figur 1
.
Stealth Falcon (även känd som Project Raven eller FruityArmor) är en hotgrupp kopplad till Förenade Arabemiraten enligt MITER. Stealth Falcon har varit verksam sedan 2012 och är känd för att rikta sig mot politiska aktivister, journalister och dissidenter i Mellanöstern. Den upptäcktes och beskrevs först av medborgare Lab, som publicerade en analys av en kampanj med spionprogramsattacker 2016.
I januari 2019 publicerade Reuters en undersökande rapport på Project Raven, ett initiativ som påstås anställa före detta NSA-agenter och syfta till samma typer av mål som Stealth Falcon. Baserat på dessa två rapporter som hänvisar till samma mål och attacker, Amnesty International har kommit fram till (visas i REF _Ref144978712 h Figur 2
) att Stealth Falcon och Project Raven faktiskt är samma grupp.
I september 2019 har vi publicerad forskning på en bakdörr, tillskriven Stealth Falcon, som använde en ovanlig teknik, Background Intelligent Transfer Service, för C&C-kommunikation. Vi avslöjar nu resultatet av vår djupgående analys av vad som förmodligen är det senaste tillskottet till Stealth Falcons spionageverktyg.
Deadglyph bakdörr
Deadglyphs lastkedja består av flera komponenter, som illustreras i REF _Ref144978760 h Figur 3
. Den initiala komponenten är en registry shellcode loader, som laddar shellcode från registret. Denna extraherade skalkod laddar i sin tur den ursprungliga x64-delen av bakdörren – Executor. Executorn laddar därefter .NET-delen av bakdörren – Orchestrator. Noterbart är att den enda komponenten på systemets disk som en fil är den initiala komponenten, som är i form av ett Dynamic Link Library (DLL). De återstående komponenterna krypteras och lagras i ett binärt registervärde.
Även om den exakta metoden för den initiala kompromissvektorn ännu inte är fastställd, är vår misstanke att en installationskomponent är inblandad i att distribuera ytterligare komponenter och etablera beständighet i systemet.
I resten av det här avsnittet analyserar vi varje komponent.
Registry shellcode loader
Deadglyphs initiala komponent är en liten DLL med en enda export, som heter 1. Denna komponent används fortfarande Windows Management Instrumentation (WMI) händelseprenumeration och fungerar som en registry shellcode loader. Det exekveras via kommandoraden rundll32 C:WINDOWSSystem32pbrtl.dll,#1.
Registry shellcode loader börjar sin verksamhet genom att dekryptera sökvägen till den krypterade skalkoden som lagras i Windows-registret, med hjälp av RC4. Vi misstänker att vägen är unik för varje offer; i fallet som analyseras här var registersökvägen:
SoftwareClassesCLSID{5abc7f42-1112-5099-b082-ce8d65ba0c47}cAbRGHLg
Rotregisternyckeln är antingen hklm or HKCU, beroende på om den aktuella processen körs med förhöjda privilegier eller inte. Samma logik finns i ytterligare komponenter.
Efter detta härleder laddaren en maskinspecifik RC4-nyckel med hjälp av systemets UUID som hämtas från rå SMBIOS firmware tabell. Med den här nyckeln laddar den, dekrypterar och exekverar sedan skalkoden. Det är viktigt att betona att denna nyckelhärledningsmetod säkerställer att korrekt dekryptering inte kommer att ske om laddaren körs på en annan dator.
Intressant nog kan laddaren också konfigureras med en flagga i dess .data avsnitt för att använda en hårdkodad nyckel för att dekryptera skalkoden, istället för den maskinspecifika.
Vi såg en homoglyfattack som efterliknade Microsoft Corporation i INFORMATION OM VERSIONEN resurs för denna och andra PE-komponenter. Denna metod använder distinkta Unicode-tecken som ser ut att vara visuellt lika, men i det här fallet inte identiska, med originaltecken, särskilt grekisk versal San (U+03FA, Ϻ) och kyrillisk liten bokstav O (U+043E, о) i Ϻicrоsоft Corpоratiоn.
Registrets skalkod
Består av två delar, registrets skalkod består av en dekrypteringsrutin och en krypterad kropp. Först roterar dekrypteringsrutinen varje byte i den krypterade kroppen åt vänster med en (ROL 0x01). Därefter överförs kontrollen till denna dekrypterade kropp. Den dekrypterade kroppen består av en PE-laddare och en PE-fil, den senare är Executor, som representerar den ursprungliga delen av bakdörren. Den här laddaren ansvarar för att analysera och ladda den associerade PE-filen.
Testamentsexekutor
Executor är den ursprungliga x64-delen av Deadglyph-bakdörren, som gör följande:
- laddar dess konfiguration,
- initierar .NET runtime,
- laddar den inbäddade .NET-delen av bakdörren (orkesteraren), och
- fungerar som bibliotek åt orkesteraren.
Först två standardkonfigurationer inbäddade i .data sektionen är AES-dekrypterad. Konfigurationerna omfattar olika parametrar, inklusive krypteringsnycklar, säkerhets- och flyktinställningar och ingångspunkten för den efterföljande komponenten.
Under den initiala körningen lagras dessa två standardkonfigurationer i Windows-registret, varifrån de laddas vid efterföljande körningar, vilket möjliggör implementering av uppdateringar. Registersökvägen för varje konfiguration genereras med följande format:
{HKCU|HKLM}SoftwareClassesCLSID{ }(Standard)
är en genererad GUID, som är unik för varje offer.
Efter detta initieras .NET-körtiden, sedan dekrypterar Executor RC4 .NET-delen av bakdörren som kallas Orchestrator. The Orchestrator är belägen inom .rsrc sektion av exekutören. Konfigurationen anger Orchestrators exekveringsmetod som en ingångspunkt. Dessutom tillhandahålls en distinkt struktur för att underlätta åtkomsten av exekutorens funktioner för Orchestrator.
Efter att ha lanserat Orchestrator agerar Executor som ett stödbibliotek för Orchestrator. Executor innehåller många intressanta funktioner; vi beskriver några av dem i följande avsnitt, i samband med deras användning av Orchestrator och ytterligare laddade moduler.
Orchestrator
Orchestrator är skriven i .NET och är huvudkomponenten i Deadglyph-bakdörren. Denna komponents primära roll involverar att upprätta kommunikation med C&C-servern och utföra kommandon, ofta underlättat genom den förmedlande rollen som Executor. I motsats till de föregående komponenterna är Orchestrator fördunklad och använder .NET Reactor. Internt kallas bakdörren medlet, vilket är ett vanligt namn för klientdelen i olika ramverk efter exploatering.
Initieringen
Orchestrator laddar först sin konfiguration och två inbäddade moduler, var och en åtföljd av sin egen uppsättning konfigurationer, från resurser. Dessa resurser är Töm luft komprimerade och AES krypterad. De refereras av ett ID som är SHA-1 hashaat till ett resursnamn. En översikt över dessa resurser finns i REF _Ref111452440 h Bord 1
.
Tabell 1. Orchestrator-resurser
Resursnamn |
ID (decimal) |
ID (hex) |
Beskrivning |
43ed9a3ad74ed7ab74c345a876b6be19039d4c8c |
2570286865 |
0x99337711 |
Orchestrator konfiguration. |
3a215912708eab6f56af953d748fbfc38e3bb468 |
3740250113 |
0xDEEFB001 |
Nätverksmodul. |
42fb165bc9cf614996027a9fcb261d65fd513527 |
3740250369 |
0xDEEFB101 |
Nätverksmodulkonfiguration. |
e204cdcf96d9f94f9c19dbe385e635d00caaf49d |
3735924737 |
0xDEADB001 |
Timermodul. |
abd2db754795272c21407efd5080c8a705a7d151 |
3735924993 |
0xDEADB101 |
Timermodulkonfiguration. |
Konfigurationen av Orchestrator och inbäddade moduler lagras i XML-format. Ett exempel på en Orchestrator-konfiguration visas i REF _Ref111452611 h
Figur 4
.
Beskrivningen av Orchestrator-konfigurationsposter visas i REF _Ref111452782 h Bord 2
.
Tabell 2. Orchestrator-konfigurationsposter
Nyckel |
Beskrivning |
k
|
AES-nyckel som används för beständiga modulkonfigurationer. |
a
|
Namn på nätverksmodulinitieringsmetod. |
b
|
Okänd nätverksmodulrelaterad flagga. |
c
|
Namn på timermodulens initialiseringsmetod. |
d
|
Flagga som möjliggör användning av maskinspecifik AES-nyckel (system-UUID) för resurser. |
p
|
Nätverksmodulens resurs-ID. |
t
|
Timermodulens resurs-ID. |
Efter att resurskomponenterna har laddats skapas flera trådar för att utföra distinkta uppgifter. En av dessa trådar är ansvarig för att utföra miljökontroller, en funktion implementerad inom Executor. En annan tråd ägnas åt att upprätta periodisk kommunikation med C&C-servern, vilket möjliggör hämtning av kommandon. Slutligen används en uppsättning av tre trådar i syfte att exekvera mottagna kommandon och därefter sända eventuella genererade utdata tillbaka till C&C-servern.
Tråden för miljökontroll övervakar pågående processer för att identifiera oönskade. Den här tråden fungerar med två distinkta listor med processnamn. Om en process på den första listan upptäcks, pausas C&C-kommunikation och kommandoexekvering tills den oönskade processen inte längre existerar. Om det finns en matchning för någon process på den andra listan, avslutas bakdörren omedelbart och avinstallerar sig själv.
Ingen av listan konfigurerades i den analyserade instansen, så vi vet inte vilka processer som vanligtvis kan kontrolleras för; vi tror att det förmodligen är avsett att undvika analysverktyg som kan upptäcka misstänkt aktivitet och leda till upptäckt av bakdörren.
Kommunikation
Orchestratorn använder två inbyggda moduler för C&C-kommunikation – Timer och Network. Liksom Orchestrator är dessa moduler obfuscerade med .NET Reactor. Konfigurationen för båda modulerna tillhandahålls av Orchestrator. Inom Orchestrator ingår en förinställd konfiguration för modulerna; Alternativt kan Orchestrator också ladda en uppdaterad konfigurationsversion från registret:
{HKCU|HKLM}SoftwareClassesCLSID{ }
Bakdörren innehåller en intressant säkerhetsåtgärd relaterad till kommunikation. Om bakdörren inte kan upprätta kommunikation med C&C-servern under en tid som överstiger ett fördefinierat tröskelvärde, konfigurerat inom exekutorn, utlöses en självavinstallationsmekanism. Denna tidsgräns anges i timmar och sattes till en timme i det undersökta fallet.
Detta tillvägagångssätt tjänar ett dubbelt syfte. Å ena sidan förhindrar det generering av redundanta nätverksbegäranden mot en otillgänglig server. Å andra sidan minskar det chanserna för efterföljande upptäckt om operatörerna tappar kontrollen över bakdörren.
Timermodul
Denna lilla modul utför den angivna återuppringningen med ett konfigurerbart intervall. Den används av Orchestrator i kombination med nätverksmodulen för att regelbundet kommunicera med C&C-servern. För att förhindra skapandet av detekterbara mönster i nätverksloggar, är exekveringsintervallet föremål för randomisering, baserat på en procentandel som anges i konfigurationen. I det analyserade fallet sattes intervallet till fem minuter, med en ±20 % variation införd för slumpmässighet.
En annan metod för att undvika detekterbara nätverksmönster i periodisk kommunikation kan hittas i generering av förfrågningar som skickas till C&C-servern. Denna mekanism, implementerad i exekutorn, inbegriper inkluderingen av utfyllnad av varierande längd, bestående av slumpmässiga bytes, inom förfrågningarna, vilket resulterar i förfrågningar av olika storlekar.
Nätverksmodul
Nätverksmodulen implementerar kommunikation med de C&C-servrar som anges i dess konfiguration. Den kan skicka data till en C&C-server med hjälp av HTTP(S) POST-förfrågningar. Speciellt erbjuder den flera mekanismer för att få information om proxykonfiguration. Den här funktionen föreslår ett potentiellt fokus på miljöer där direkt internetåtkomst inte är tillgänglig.
Ett exempel på en dekrypterad (och förskönad) konfiguration visas i REF _Ref144978805 h Figur 5
.
Konfigurationsposter innehåller information om nätverkskommunikation – C&C-URL:er, HTTP User-Agent och eventuellt en proxykonfiguration.
Vid kommunikation med C&C-servern används ett anpassat binärt protokoll med krypterat innehåll under HTTPS.
Kommandon
Orchestratorn tar emot kommandon från C&C-servern i form av uppgifter, som köas för exekvering. Det finns tre typer av uppgifter som behandlas:
- Orkesteraruppgifter,
- Exekutoruppgifter, och
- Ladda upp uppgifter.
De två första typerna tas emot från C&C-servern och den tredje skapas internt för att ladda upp utdata av kommandon och fel.
Orkesteraruppgifter
Orchestrator-uppgifter erbjuder möjligheten att hantera konfigurationen av nätverks- och timermodulerna, och även att avbryta väntande uppgifter. Översikten över Orchestrator-uppgifter visas i REF _Ref111101783 h Bord 3
.
Tabell 3. Orkesteraruppgifter
Typ |
Beskrivning |
0x80
|
Ställ in konfiguration av nätverk och timermoduler. |
0x81
|
Få konfiguration av nätverk och timermoduler. |
0x82
|
Avbryt uppgift. |
0x83
|
Avbryt alla uppgifter. |
Utföraruppgifter
Exekutoruppgifter erbjuder möjligheten att hantera bakdörren och exekvera ytterligare moduler. Det är anmärkningsvärt att den traditionella bakdörrsfunktionen inte är inneboende närvarande i själva binären. Istället erhålls dessa funktioner från C&C-servern i form av PE-filer eller skalkod. Den fulla omfattningen av bakdörrens potential förblir okänd utan dessa ytterligare moduler, som effektivt låser upp dess verkliga möjligheter. En översikt över moduluppgifter visas i REF _Ref117677179 h Bord 4
, som innehåller detaljer om de få identifierade modulerna. Liknande, REF _Ref117677188 h Bord 5
ger en översikt över ledningsuppgifter kopplade till Executor.
Tabell 4. Utföraruppgifter – moduler
Typ |
Beskrivning |
0x??–0x63
|
Okänd |
0x64
|
Filläsare |
0x65
|
Okänd |
0x66
|
Okänd |
0x67
|
Okänd |
0x68
|
Okänd |
0x69
|
Processskapare |
0x6A
|
Okänd |
0x6B
|
Okänd |
0x6C
|
Infosamlare |
0x6D
|
Okänd |
0x6E
|
Okänd |
Tabell 5. Utföraruppgifter – ledning
Typ |
Beskrivning |
0x6F-0x76 |
Ej implementerad |
0x77 |
Ställ in Executor-konfiguration |
0x78 |
Hämta Executor-konfiguration |
0x79-0x7C |
Ej implementerad |
0x7D |
Uppdatering |
0x7E |
Avsluta |
0x7F |
Avinstallera |
Kommandot som ställer in Executor-konfigurationen kan ändra:
- oönskade processlistor,
- tidsgräns för C&C-kommunikationsfel, och
- tidsfrist för genomförande av ytterligare moduler.
Moduler
Vi lyckades erhålla tre unika moduler från C&C-servern, som var och en motsvarar en annan exekutoruppgiftstyp, som visas i REF _Ref117677179 h Bord 4 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003100310037003600370037003100370039000000
. Baserat på tillgänglig information uppskattar vi att det finns nio till fjorton moduler totalt. Eftersom modulerna i själva verket är bakdörrskommandon har de en grundläggande operation att utföra och sedan valfritt returnera sin utdata. Modulerna vi fick är DLL-filer med en namnlös export (ordinal 1), där de löser nödvändiga API-funktioner och anropar huvudfunktionen.
När de körs förses modulerna med en API-upplösningsfunktion, som kan lösa Windows API:er och anpassade Executor API:er. Windows API:er refereras av en DWORD-hash, beräknad från namnet på API:et och dess DLL. Små hashvärden (<41) behandlas speciellt, med hänvisning till Executor API-funktionen. Executor API omfattar totalt 39 funktioner som är tillgängliga för modulerna. Dessa funktioner hänför sig till en mängd olika operationer, inklusive:
- filoperationer,
- kryptering och hash,
- kompression,
- PE laddning,
- komma åt Token Impersonation, och
- verktyg.
I resten av det här avsnittet beskriver vi de moduler som vi fick.
Processskapare
Modulerna 0x69 exekverar den angivna kommandoraden som en ny process och ger den resulterande utdata tillbaka till Orchestrator. Processen kan skapas under en annan användare och dess utförandetid kan begränsas. Särskilt en ovanlig Job API används i denna moduls funktionalitet.
Den här modulen serverades med kommandoraden cmd.exe /c uppgiftslista /v.
Vi antar att det fungerar som ett tomgångskommando som utfärdas automatiskt, medan operatörerna väntar på att något intressant ska hända på den komprometterade datorn.
Infosamlare
Modulerna 0x6C samlar in omfattande information om datorn via WMI-frågor och skickar tillbaka den till Orchestrator. Information om följande samlas in:
- operativ system,
- nätverkskort,
- installerad programvara,
- enheter,
- tjänster,
- förare,
- processer,
- användare,
- miljövariabler och
- säkerhetsprogramvara.
Filläsare
Modulerna 0x64 läser den angivna filen och skickar innehållet tillbaka till Orchestrator. Alternativt kan den radera filen efter att ha läst den.
Vi såg den här modulen användas för att hämta offrets Outlook-datafil
c:Användare AppDataLocalMicrosoftOutlookoutlook.ost.
Kedja med shellcode-nedladdare
I processen med att undersöka Deadglyph stötte vi på en tvivelaktig CPL-fil signerad med ett utgånget certifikat och ingen motsignatur med en tidsstämpel, som hade laddats upp till VirusTotal från Qatar. Vid närmare granskning blev det uppenbart att denna CPL-fil fungerade som en flerstegs shellcode-nedladdare, och delade vissa kodlikheter med Deadglyph. Lastkedjan illustreras i REF _Ref143693067 h Figur 6
.
I sin ursprungliga form, som fungerar som det första steget, förväntar sig denna fil att ha en . Cpl förlängning (kontrollpanelsfil) och är avsedd att köras via en dubbelklicksåtgärd. Vid exekvering på detta sätt genomgår den inbäddade skalkoden XOR-dekryptering, och de pågående processerna kontrolleras för att identifiera en lämplig värdprocess för efterföljande injektion.
If avp.exe (en Kaspersky-slutpunktssäkerhetsprocess) körs, %windir%system32UserAccountBroker.exe är använd. Annars används standardwebbläsaren. Sedan skapar den värdprocessen i ett avstängt tillstånd, injicerar skalkoden genom att kapa dess huvudtråd och återupptar tråden.
Det andra steget, skalkoden, består av två delar. Den första delen av skalkoden löser API-hashar, med samma unika hashberäkningsteknik som används i Deadglyph, och dekrypterar strängar med processnamn. Den startar en självraderingstråd som har till uppgift att skriva över och därefter radera filen i första steget. Efter detta fortsätter skalkoden för att inspektera de för närvarande aktiva processerna, med inriktning på en säkerhetslösning.
Om någon av de angivna processerna upptäcks skapar skalkoden en sliper-tråd med lägst prioritet (THREAD_PRIORITY_IDLE) och låter den förbli aktiv i 60 sekunder innan den avslutas. Detta intervall är sannolikt implementerat som en försiktighetsåtgärd för att undvika vissa detekteringsmekanismer som används av säkerhetslösningar. Slutligen fortsätter skalkoden med att anropa exekveringen av den andra delen av sin kod.
Den andra delen av skalkoden laddar en inbäddad PE-fil med steg tre och anropar dess export med ordningsnummer 1.
Det tredje steget, en DLL, fungerar som en .NET-lastare och innehåller nyttolasten i dess .rsrc sektion.
För att ladda nyttolasten initieras .NET-körtiden. Under .NET-initieringen utförs två spännande tekniker, till synes avsedda att undvika Windows Antimalware Scan Interface (AMSI) skanning:
- .NET-lastaren kopplar tillfälligt till
- Det lappar sedan subtilt till AmsiInitialisera importera namnsträngen i .rdata sektion av den laddade clr.dll till amsiiinitialisera.
Det fjärde steget är en .NET-sammansättning, obfuskerad med ConfuserEx, som fungerar som en skalkodsnedladdning. Först XOR-dekrypterar den sin konfiguration i XML-format från sina resurser. En förskönad version av den extraherade konfigurationen presenteras i REF _Ref143695453 h Figur 7
. Konfigurationsposterna innehåller detaljer relaterade till nätverkskommunikation och blockerade processer.
Innan du fortsätter kontrollerar den de pågående processerna mot en lista över blockerade processer från konfigurationen. Om en matchning upptäcks avbryts utförandet. Det är viktigt att notera att den här blockeringslistan inte konfigurerades i det analyserade fallet.
Därefter skickar den en HTTP GET-begäran till C&C-servern för att hämta viss skalkod, med hjälp av parametrar som anges i konfigurationen (URL, User-Agent och eventuellt proxy). Under vår undersökning kunde vi tyvärr inte hämta någon skalkod från C&C-servern. Icke desto mindre antar vi att innehållet som hämtas potentiellt kan fungera som installationsprogrammet för Deadglyph.
Efter detta exekveras den hämtade skalkoden i en nyskapad tråd. Efter att ha väntat tills skalkodstråden avslutas körningen, tar nedladdningsprogrammet bort alla filer som finns i katalogen %WINDIR%ServiceProfilesLocalServiceAppDataLocalTempTfsStoreTfs_DAV.
Slutligen gör den ett försök att ta bort sig själv efter ett 20-sekundersintervall, med hjälp av det efterföljande kommandot, innan den avslutar sin operation och avslutar:
cmd.exe val /CY /N /DY /T 20 & Del /f /q
Denna självradering är inte meningsfull i den här kedjan. Detta beror på det faktum att shellcode-nedladdaren exekveras i en webbläsare eller systemprocess efter att ha injicerats, snarare än att fungera som en oberoende körbar fil. Dessutom var den ursprungliga filen redan raderad i det andra steget. Denna observation antyder att nedladdningsprogrammet för shellcode kanske inte är en exklusiv nyttolast i denna kedja och kan även användas separat i andra operationer.
Slutsats
Vi har upptäckt och analyserat en sofistikerad bakdörr som används av Stealth Falcon-gruppen som vi har döpt till Deadglyph. Den har en ovanlig arkitektur och dess bakdörrsfunktioner tillhandahålls av dess C&C i form av ytterligare moduler. Vi lyckades skaffa tre av dessa moduler och avslöjade en bråkdel av Deadglyphs fulla kapacitet.
Noterbart, Deadglyph har en rad motdetekteringsmekanismer, inklusive kontinuerlig övervakning av systemprocesser och implementering av randomiserade nätverksmönster. Dessutom kan bakdörren avinstallera sig själv för att minimera sannolikheten för att den upptäcks i vissa fall.
Dessutom ledde vår undersökning oss till upptäckten av en övertygande flerstegs shellcode-nedladdningskedja på VirusTotal. Vi misstänker att den här nedladdningskedjan troligen utnyttjas i installationsprocessen av Deadglyph.
För eventuella frågor om vår forskning publicerad på WeLiveSecurity, vänligen kontakta oss på hotintel@eset.com.
ESET Research erbjuder privata APT-underrättelserapporter och dataflöden. För eventuella frågor om denna tjänst, besök ESET Threat Intelligence sida.
IOCS
Filer
SHA-1 |
Filnamn |
Detektering |
Beskrivning |
C40F1F46D230A85F702DAA38CFA18D60481EA6C2 |
pbrtl.dll |
Win64/Deadglyph.A |
Registry Shellcode Loader. |
740D308565E215EB9B235CC5B720142428F540DB |
N / A |
Win64/Deadglyph.A |
Deadglyph Backdoor – Executor. |
1805568D8362A379AF09FD70D3406C6B654F189F |
N / A |
MSIL/Deadglyph.A |
Deadglyph Backdoor – Orchestrator. |
9CB373B2643C2B7F93862D2682A0D2150C7AEC7E |
N / A |
MSIL/Deadglyph.A |
Orchestrator Network-modul. |
F47CB40F6C2B303308D9D705F8CAD707B9C39FA5 |
N / A |
MSIL/Deadglyph.A |
Orchestrator Timer-modul. |
3D4D9C9F2A5ACEFF9E45538F5EBE723ACAF83E32 |
N / A |
Win64/Deadglyph.A.gen |
Processskapare modul. |
3D2ACCEA98DBDF95F0543B7C1E8A055020E74960 |
N / A |
Win64/Deadglyph.A |
Filläsarmodul. |
4E3018E4FD27587BD1C566930AE24442769D16F0 |
N / A |
Win64/Deadglyph.A |
Infosamlarmodul. |
7F728D490ED6EA64A7644049914A7F2A0E563969 |
N / A |
Win64/Injector.MD |
Första steget av shellcode-nedladdningskedjan. |
Certifikat
Serienummer |
00F0FB1390F5340CD2572451D95DB1D92D |
Tumavtryck |
DB3614DAF58D041F96A5B916281EA0DC97AA0C29 |
Ämne CN |
RHM LIMITED |
Ämne O |
RHM LIMITED |
Ämne L |
St. Albans |
Ämne S |
Hertfordshire |
Ämne C |
GB |
E-postadress |
rhm@rhmlimited[.]co.uk |
Giltig från |
2021-03-16 00:00:00 |
Giltig till |
2022-03-16 23:59:59 |
C&C-servrar
IP |
Domän |
Först sett |
Kommentar |
185.25.50[.]60 |
chessandlinkss[.]com |
2021-08-25 |
Deadglyph C&C-server. |
135.125.78[.]187 |
easymathpath[.]com |
2021-09-11 |
Deadglyph C&C-server. |
45.14.227[.]55 |
joinushealth[.]com |
2022-05-29 |
Shellcode downloader C&C server. |
MITER ATT & CK tekniker
Detta bord byggdes med hjälp av version 13 av MITER ATT & CK -ramverket.
Taktik |
ID |
Namn |
Beskrivning |
Resursutveckling |
Skaffa infrastruktur: domäner |
Stealth Falcon har registrerat domäner för C&C-servrar och för att få ett kodsigneringscertifikat. |
|
Skaffa infrastruktur: Virtual Private Server |
Stealth Falcon har använt VPS-värdleverantörer för C&C-servrar. |
||
Utveckla förmågor: Malware |
Stealth Falcon har utvecklat anpassad skadlig programvara, inklusive anpassade laddare och Deadglyph-bakdörren. |
||
Skaffa funktioner: Certifikat för kodsignering |
Stealth Falcon har fått ett kodsigneringscertifikat. |
||
Utförande |
Windows Management Instrumentation |
Deadglyph använder WMI för att utföra sin laddningskedja. |
|
Kommando- och skripttolk: Windows Command Shell |
Shellcode downloader använder cmd.exe att radera sig själv. |
||
Native API |
En Deadglyph-modul använder CreateProcessW och CreateProcessAsUserW API-funktioner för exekvering. |
||
Användarutförande: Skadlig fil |
Shellcode-nedladdningskedjan kräver att användaren dubbelklickar och kör den. |
||
Persistens |
Händelseutlöst exekvering: Windows Management Instrumentation Event Prenumeration |
Den initiala Deadglyph-laddaren fortsätter med WMI-händelseprenumeration. |
|
Försvarsflykt |
Fördubblade filer eller information |
Deadglyph-komponenter är krypterade. Deadglyph Orchestrator och inbyggda moduler är obfuscerade med .NET Reactor. Skalkodsnedladdaren är obfuskerad med ConfuserEx. |
|
Indikatorborttagning: Filradering |
Deadglyph kan avinstallera sig själv. Shellcode-nedladdningskedjan tar bort sig själv och tar bort filer i WebDAV-cachen. |
||
Ändra registret |
Deadglyph lagrar dess konfiguration och krypterade nyttolast i registret. |
||
Access Token Manipulation |
Deadglyph kan imitera en annan användare. |
||
Deobfuskera/avkoda filer eller information |
Deadglyph dekrypterar krypterade strängar. Shellcode-nedladdningskedjan dekrypterar dess komponenter och konfigurationer. |
||
System binär proxyexekvering: Rundll32 |
Den initiala Deadglyph-laddaren exekveras med rundll32.exe. |
||
Utförande skyddsräcken: Miljönyckel |
Deadglyph krypteras med en maskinspecifik nyckel härledd från systemets UUID. |
||
Försämra försvar: Inaktivera eller ändra verktyg |
Shellcode-nedladdaren undviker AMSI-skanning genom att patcha clr.dll i minne . |
||
Reflekterande kodladdning |
Deadglyph laddar sina moduler reflekterande med en anpassad PE-lastare. |
||
Discovery |
Systemtjänst upptäckt |
A Deadglyph-modulen upptäcker tjänster med hjälp av WMI-frågan VÄLJ * FRÅN Win32_Service. |
|
Fråga registret |
Shellcode-nedladdningskedjan frågar efter standardwebbläsaren i registret. |
||
System Network Configuration Discovery |
En Deadglyph-modul upptäcker nätverkskort med hjälp av WMI-frågor VÄLJ * FRÅN Win32_NetworkAdapter och VÄLJ * FRÅN Win32_NetworkAdapterConfiguration där InterfaceIndex=%d. |
||
Systemägare/användarupptäckt |
En Deadglyph-modul upptäcker användare med WMI-frågan VÄLJ * FRÅN Win32_UserAccount. |
||
Processupptäckt |
En Deadglyph-modul upptäcker processer med hjälp av WMI-fråga VÄLJ * FRÅN Win32_Process. |
||
Systeminformation upptäckt |
En Deadglyph-modul upptäcker systeminformation som OS-version, enheter, miljövariabler och drivrutiner med hjälp av WMI-frågor. |
||
Software Discovery |
En Deadglyph-modul upptäcker installerad programvara med hjälp av WMI-fråga VÄLJ * FRÅN Win32_Product. |
||
Software Discovery: Security Software Discovery |
En Deadglyph-modul upptäcker säkerhetsprogramvara med hjälp av WMI-frågor VÄLJ * FRÅN AntiVirusprodukt, VÄLJ * FRÅN AntiSpywareProduct och VÄLJ * FRÅN FirewallProduct. Shellcode-nedladdningskedjan kontrollerar pågående processer för en säkerhetslösning. |
||
Samling |
Data från lokalt system |
Deadglyph har en modul för att läsa filer. |
|
Command and Control |
Application Layer Protocol: webbprotokoll |
Deadglyph och shellcode-nedladdaren kommunicerar med C&C-servern via HTTP-protokollet. |
|
Proxy |
Deadglyph och shellcode-nedladdaren kan använda HTTP-proxy för C&C-kommunikation. |
||
Krypterad kanal: Symmetrisk kryptografi |
Deadglyph använder AES för att kryptera C&C-kommunikation. |
||
exfiltration |
Exfiltrering över C2 -kanal |
Deadglyph använder C&C-kanalen för exfiltrering. |
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://www.welivesecurity.com/en/eset-research/stealth-falcon-preying-middle-eastern-skies-deadglyph/
- : har
- :är
- :inte
- :var
- $UPP
- 1
- 10
- 100
- 11
- 125
- 14
- 15%
- 179
- 180
- 20
- 2012
- 2016
- 2019
- 23
- 25
- 321
- 39
- 41
- 60
- 7
- 75
- 8
- 9
- 91
- a
- förmåga
- Om oss
- tillgång
- tillgänglighet
- tillgänglig
- åtföljas
- förvärva
- Handling
- aktiv
- aktivister
- aktiviteter
- aktivitet
- handlingar
- faktiskt
- Dessutom
- Annat
- avancerat
- Fördel
- AES
- Efter
- mot
- sikta
- Alla
- påstås
- tillåter
- redan
- också
- an
- analys
- analysera
- analyseras
- och
- Annan
- förutser
- vilken som helst
- api
- API: er
- visas
- tillvägagångssätt
- APT
- arab
- Arabemiraten
- arkitektur
- ÄR
- AS
- Montage
- associerad
- utgå ifrån
- At
- attackera
- Attacker
- automatiskt
- tillgänglig
- undvika
- tillbaka
- bakdörr
- baserat
- grundläggande
- BE
- blev
- därför att
- varit
- innan
- Där vi får lov att vara utan att konstant prestera,
- tro
- BÄST
- ståtar
- kropp
- båda
- webbläsare
- byggt
- men
- by
- cache
- beräknat
- beräkning
- Ring
- kallas
- anropande
- Samtal
- Kampanj
- KAN
- kapacitet
- kapabel
- kapital
- bära
- Vid
- fall
- Centrum
- vissa
- certifikat
- kedja
- chanser
- byta
- Kanal
- tecken
- kontrollerade
- Kontroller
- val
- klient
- närmare
- koda
- Kollektorn
- samlar
- färg
- COM
- kombination
- Gemensam
- kommunicera
- kommunicera
- Kommunikation
- Trygghet i vårdförloppet
- övertygande
- komponent
- komponenter
- Består
- innefattar
- kompromiss
- Äventyras
- dator
- ledande
- Konferens
- förtroende
- konfiguration
- konfigurerad
- anslutna
- består
- kontakta
- innehålla
- innehåller
- innehåll
- sammanhang
- kontinuerlig
- Däremot
- kontroll
- kontrollpanel
- FÖRETAG
- Motsvarande
- kunde
- kopplad
- skapas
- skapar
- skapande
- skaparen
- Aktuella
- För närvarande
- beställnings
- Kunder
- mörkare
- datum
- Avkryptera
- Standard
- Examen
- beroende
- utplacera
- Härledd
- beskriva
- beskriven
- beskrivning
- detaljer
- detekterad
- Detektering
- bestämd
- utvecklade
- Utveckling
- Skillnaden
- olika
- svårt
- rikta
- upptäckt
- upptäcker
- Upptäckten
- distinkt
- flera
- gör
- domäner
- inte
- chaufförer
- enheter
- grund
- varaktighet
- under
- dynamisk
- dynamiskt
- varje
- öster
- östra
- effektivt
- antingen
- förhöjd
- inbäddade
- Emirates
- anställd
- sysselsätter
- möjliggör
- omfatta
- krypterad
- kryptering
- Slutpunkt
- Slutpunktsäkerhet
- säkerställer
- enhet
- inträde
- Miljö
- miljömässigt
- miljöer
- fel
- ESET Research
- spionage
- etablera
- upprättandet
- uppskatta
- Eter (ETH)
- händelse
- bevis
- uppenbart
- undersökning
- exempel
- Exklusiv
- exekvera
- exekveras
- Utför
- exekvera
- utförande
- exfiltrering
- utställningar
- finns
- avsluta
- expertis
- export
- förlängning
- omfattande
- utsträckning
- främja
- underlättas
- Faktum
- Misslyckande
- falk
- Leverans
- Funktioner
- få
- Figur
- Fil
- Filer
- Slutligen
- resultat
- Förnamn
- fem
- Fokus
- efter
- För
- formen
- format
- Tidigare
- hittade
- Fjärde
- fraktion
- Ramverk
- ramar
- från
- full
- fungera
- funktionalitet
- funktioner
- ytterligare
- Vidare
- genereras
- generering
- skaffa sig
- statliga
- grekisk
- Marken
- Grupp
- hade
- sidan
- hända
- hash
- hashade
- hasch
- Har
- har
- här.
- HEX
- Hög
- hög profil
- Markera
- hindra
- krokar
- värd
- värd
- timme
- ÖPPETTIDER
- http
- HTTPS
- ID
- identiska
- identifierade
- identifiera
- Idle
- if
- bild
- blir omedelbart
- genomförande
- genomföras
- redskap
- importera
- med Esport
- in
- I andra
- djupgående
- otillgängliga
- ingår
- innefattar
- Inklusive
- integration
- oberoende
- indikerar
- info
- informationen
- Infrastruktur
- inneboende
- inledande
- Initiativ
- förfrågningar
- Installationen
- exempel
- istället
- Intelligens
- Intelligent
- avsedd
- intressant
- Gränssnitt
- mellanhand
- invändigt
- Internationell
- Internet
- internetåtkomst
- in
- fängslande
- introducerade
- Undersökningen
- involverade
- innebär
- Utfärdad
- IT
- DESS
- sig
- Januari
- journalister
- kaspersky
- Nyckel
- nycklar
- Vet
- kunskap
- känd
- språk
- Språk
- lansera
- lager
- leda
- Led
- vänster
- Längd
- brev
- belånade
- Bibliotek
- tycka om
- sannolikhet
- sannolikt
- BEGRÄNSA
- Begränsad
- linje
- LINK
- kopplade
- Lista
- listor
- läsa in
- Lastaren
- läser in
- laster
- lokal
- belägen
- Logiken
- längre
- se
- förlorar
- lägst
- Huvudsida
- göra
- GÖR
- malware
- hantera
- förvaltade
- ledning
- sätt
- många
- karta
- Match
- Maj..
- menas
- mäta
- mekanism
- mekanismer
- Minne
- metod
- Microsoft
- Mitten
- Mellanöstern
- kanske
- minuter
- blandad
- modifiera
- modul
- Moduler
- övervakning
- monitorer
- mer
- Dessutom
- multipel
- namn
- Som heter
- namn
- nativ
- Navigera
- nödvändigt för
- netto
- nät
- Nya
- Senaste
- nytt
- Nej
- anmärkningsvärd
- i synnerhet
- Notera
- nu
- antal
- få
- erhållna
- inträffa
- of
- erbjudanden
- Erbjudanden
- Ofta
- on
- ONE
- ettor
- endast
- fungerar
- drift
- drift
- Verksamhet
- operatörer
- or
- ursprungliga
- OS
- Övriga
- annat
- vår
- ut
- utsikterna
- produktion
- över
- Översikt
- egen
- P&E
- sida
- panel
- parametrar
- del
- reservdelar till din klassiker
- passerar
- Plåster
- Patching
- bana
- mönster
- väntan
- procentuell
- utfört
- periodisk
- persistens
- plattform
- plato
- Platon Data Intelligence
- PlatonData
- snälla du
- vänligen kontakta
- Punkt
- poäng
- politiska
- Inlägg
- potentiell
- potentiellt
- exakt
- Närvaron
- presentera
- presenteras
- förhindra
- förhindrar
- tidigare
- primär
- prioritet
- privat
- privilegier
- förmodligen
- vinning
- process
- bearbetade
- processer
- Programmering
- programmeringsspråk
- projektet
- rätt
- protokoll
- ge
- förutsatt
- leverantörer
- ger
- ombud
- allmän
- publicerade
- Syftet
- syfte
- qatar
- sökfrågor
- slumpmässig
- randomized
- slumpmässighet
- område
- snarare
- reaktor
- Läsare
- Läsning
- mottagna
- erhåller
- minskar
- erat
- avses
- region
- registrerat
- register
- relaterad
- förblir
- Återstående
- resterna
- avlägsnande
- Rapport
- representerar
- rykte
- begära
- förfrågningar
- Kräver
- forskning
- Upplösning
- resurs
- Resurser
- ansvarig
- REST
- resultera
- resulterande
- avkastning
- återgår
- Reuters
- avslöjar
- Roll
- rot
- rutin
- rinnande
- kör
- s
- Säkerhet
- Samma
- San
- såg
- scanna
- scanning
- Andra
- sekunder
- §
- sektioner
- säkerhet
- Säkerhetsprogramvara
- sända
- sänder
- känsla
- skickas
- separat
- September
- tjänar
- server
- serverar
- service
- Tjänster
- in
- uppsättningar
- inställningar
- flera
- delning
- visas
- signerad
- signering
- liknande
- Liknande
- eftersom
- enda
- storlekar
- himmel
- Small
- So
- Mjukvara
- lösning
- Lösningar
- några
- något
- sofistikerade
- raffinemang
- speciellt
- specifikt
- specificerade
- spionprogram
- Etapp
- startar
- Ange
- Stealth
- lagras
- lagrar
- Sträng
- struktur
- ämne
- prenumeration
- senare
- Senare
- sådana
- Föreslår
- lämplig
- levereras
- stödja
- överträffar
- suspenderades
- misstänksam
- system
- System
- bord
- Ta
- tar
- Målet
- riktade
- targeting
- mål
- uppgift
- uppgifter
- Teknisk
- teknisk analys
- tekniker
- än
- den där
- Smakämnen
- deras
- Dem
- sedan
- Där.
- Dessa
- de
- Tredje
- detta
- de
- hot
- hot
- tre
- tröskelvärde
- Genom
- tid
- tidsstämpel
- Titel
- till
- token
- verktyg
- Totalt
- mot
- traditionell
- överföring
- överförd
- behandlad
- triggas
- sann
- SVÄNG
- två
- Typ
- typer
- typiskt
- oförmögen
- under
- genomgår
- unicode
- unika
- unika funktioner
- United
- Förenade arabemiraten
- okänd
- låsa
- NAMNLÖS
- tills
- ovanlig
- oönskade
- uppdaterad
- Uppdateringar
- uppladdad
- på
- URL
- us
- Användning
- användning
- Begagnade
- Användare
- användare
- användningar
- med hjälp av
- utnyttja
- Återvinnare
- värde
- Värden
- mängd
- olika
- varierande
- version
- mycket
- via
- Victim
- Virtuell
- Besök
- visuellt
- vänta
- väntar
- var
- we
- webb
- były
- Vad
- när
- om
- som
- medan
- wikipedia
- fönster
- med
- inom
- utan
- XML
- år
- ja
- ännu
- zephyrnet