Lähis-Ida on aastaid säilitanud oma mainet arenenud püsivate ohtude (APT) jaoks soodsa pinnasena. Keset kahtlaste tegevuste rutiinset jälgimist kõrgetasemeliste klientide süsteemides, millest mõned asuvad selles piirkonnas, komistas ESET Research väga keeruka ja tundmatu tagaukse otsa, mille oleme andnud nimeks Deadglyph. Nime tuletasime tagauksest leitud esemete järgi (nt 0xSURMB001, näidatud ka aastal REF _Ref111452440 h Tabel 1
) koos homo olemasolugaglüüf rünnak. Meile teadaolevalt on see esimene avalik analüüs selle varem dokumentideta tagaukse kohta, mida kasutab rühm, mis näitab üles märkimisväärset keerukust ja asjatundlikkust. Sihtimise ja täiendavate tõendite põhjal omistame Deadglyphi suure kindlustundega Stealth Falcon APT rühmale.
Deadglyphi arhitektuur on ebatavaline, kuna see koosneb koostööd tegevad komponendid – üks natiivne x64 binaarfail, teine .NET-koost. See kombinatsioon on ebatavaline, kuna pahavara kasutab tavaliselt oma komponentide jaoks ainult ühte programmeerimiskeelt. See erinevus võib viidata nende kahe komponendi eraldi arendamisele, kasutades samal ajal ära nende kasutatavate erinevate programmeerimiskeelte ainulaadseid omadusi. Analüüsi takistamiseks saab kasutada ka erinevat keelt, sest segakoodis on keerulisem navigeerida ja siluda.
Traditsioonilisi tagaukse käske ei rakendata tagaukse binaarfailis; selle asemel võtab see need dünaamiliselt vastu käsu- ja juhtimisserverist lisamoodulite kujul. Sellel tagauksel on ka mitmeid võimalusi tuvastamise vältimiseks.
Selles blogipostituses vaatleme Deadglyphi lähemalt ja anname selle tagaukse, selle eesmärgi ja mõne saadud lisakomponendi tehnilise analüüsi. Samuti esitleme oma avastusi Deadglyphi kohta LABScon 2023 konverents.
Blogipostituse põhipunktid:
- ESET Research avastas ebahariliku arhitektuuriga keeruka tagaukse, millele oleme andnud nimeks Deadglyph.
- Põhikomponendid krüpteeritakse masinaspetsiifilise võtmega.
- Traditsioonilisi tagaukse käske rakendatakse selle C&C serverist saadud lisamoodulite kaudu.
- Saime paljudest moodulitest kolm – protsesside looja, faililugeja ja teabekoguja.
- Me omistame Deadglyphi grupile Stealth Falcon.
- Lisaks leidsime seotud shellcode allalaadija; oletame, et seda võiks potentsiaalselt kasutada Deadglyphi installimiseks.
Analüüsitud imbumise ohver on Lähis-Ida valitsusüksus, mis rünnati spionaaži eesmärgil. Sellest piirkonnast, täpsemalt Katarist, laaditi failiskaneerimise platvormile üles ka VirusTotalist leitud seotud näidis. Sihitud piirkond on kaardil kujutatud REF _Ref143614671 h Joonis 1
.
Stealth Falcon (tuntud ka kui Project Raven või FruityArmor) on Araabia Ühendemiraatidega seotud ohurühmitus. MITERi järgi. Alates 2012. aastast aktiivne Stealth Falcon on teadaolevalt sihikule võtnud Lähis-Ida poliitilisi aktiviste, ajakirjanikke ja teisitimõtlejaid. Selle avastas ja kirjeldas esmakordselt Citizen Lab, mis avaldas an analüüs 2016. aasta nuhkvararünnakute kampaaniast.
2019. aasta jaanuaris avaldas Reuters ühe uurimisaruanne projekti Raven, algatus, milles väidetavalt võeti tööle endised NSA töötajad ja mille eesmärk on sama tüüpi sihtmärgid nagu Stealth Falcon. Nende kahe samadele sihtmärkidele ja rünnakutele viitava raporti põhjal Amnesty International on järeldanud (näidatud REF _Ref144978712 h Joonis 2
), et Stealth Falcon ja Project Raven on tegelikult sama rühm.
Septembris 2019, meie avaldatud uuringud tagauksel, mis omistati Stealth Falconile, mis kasutas ebatavalist tehnikat, Background Intelligent Transfer Service, C&C suhtlemiseks. Nüüd avaldame oma põhjaliku analüüsi tulemuse selle kohta, mis on eeldatavasti Stealth Falconi spionaažitööriistade komplekti uusim täiendus.
Deadglyph tagauks
Deadglyphi laadimisahel koosneb mitmest komponendist, nagu on näidatud joonisel REF _Ref144978760 h Joonis 3
. Algkomponent on registri shellcode loader, mis laadib shellkoodi registrist. See ekstraheeritud shellkood omakorda laadib tagaukse algse x64 osa – täitja. Seejärel laadib täitja tagaukse .NET-osa – Orchestratori. Nimelt on ainus komponent süsteemi kettal failina algkomponent, mis on dünaamilise lingi teegi (DLL) kujul. Ülejäänud komponendid on krüptitud ja salvestatud binaarsesse registriväärtusse.
Kuigi esialgse kompromissi vektori täpne meetod ei ole veel kindlaks määratud, kahtlustame, et installikomponent on kaasatud täiendavate komponentide juurutamise ja süsteemi püsivuse loomisesse.
Selle jaotise ülejäänud osas analüüsime iga komponenti.
Registri shellkoodi laadija
Deadglyphi esialgne komponent on pisike DLL ühe eksporditava nimega 1. Seda komponenti kasutatakse pidevalt Windows Management Instrumentationi (WMI) sündmuste tellimus ja toimib registri shellkoodi laadijana. See käivitatakse käsurea kaudu rundll32 C:WINDOWSSystem32pbrtl.dll,#1.
Registri shellkoodi laadija alustab oma tööd, dekrüpteerides RC4 abil Windowsi registris talletatud krüptitud shellkoodi tee. Me kahtlustame, et tee on iga ohvri jaoks ainulaadne; siin analüüsitud juhul oli registritee:
SoftwareClassesCLSID{5abc7f42-1112-5099-b082-ce8d65ba0c47}cAbRGHLg
Juurregistri võti on kas hklm or Hkcu, olenevalt sellest, kas praegune protsess töötab kõrgendatud õigustega või mitte. Sama loogika võib leida ka järgmistest komponentidest.
Pärast seda tuletab laadija masinaspetsiifilise RC4-võtme, kasutades süsteemi UUID-d, mis on hangitud töötlemata SMBIOS püsivara tabel. Seda võtit kasutades laadib, dekrüpteerib ja seejärel käivitab shellkoodi. Oluline on rõhutada, et see võtme tuletamise lähenemisviis tagab, et nõuetekohast dekrüpteerimist ei toimu, kui laadija käivitatakse teises arvutis.
Huvitav on see, et laadurit saab konfigureerida ka selle lipu abil .andmed jaotises, et kasutada shellkoodi dekrüpteerimiseks kõvakoodiga võtit, mitte masinaspetsiifilist võtit.
Märkasime homoglüüfirünnakut, mis jäljendab Microsoft Corporationi VERSIONINFO selle ja teiste PE komponentide ressurss. See meetod kasutab erinevaid Unicode'i märke, mis näivad visuaalselt sarnased, kuid antud juhul mitte identsed originaalmärkidega, täpsemalt kreeka suurtäht San (U+03FA, Ϻ) ja kirillitsa väiketäht O (U+043E, о) Ϻicrоsоft Corpоsuhtarvоn.
Registri shellkood
Kahest osast koosnev registri shellkood koosneb dekrüpteerimisrutiinist ja krüptitud kehast. Esiteks pöörab dekrüpteerimisrutiin krüptitud keha iga baiti ühe võrra vasakule (ROL 0x01). Seejärel antakse juhtimine üle sellele dekrüpteeritud kehale. Dekrüpteeritud keha koosneb PE-laadurist ja PE-failist, millest viimane on Executor, mis esindab tagaukse algset osa. See laadija vastutab seotud PE-faili sõelumise ja laadimise eest.
Täitja
Executor on Deadglyphi tagaukse algne x64 osa, mis teeb järgmist:
- laadib oma konfiguratsiooni,
- initsialiseerib .NET käitusaja,
- laadib sisseehitatud .NET-i tagaukse osa (Orchestrator) ja
- tegutseb Orchestratori raamatukoguna.
Esiteks, kaks vaikekonfiguratsiooni, mis on manustatud .andmed jaotis on AES-dekrüptitud. Konfiguratsioonid hõlmavad erinevaid parameetreid, sealhulgas krüpteerimisvõtmeid, ohutus- ja kõrvalehoidmise sätteid ning järgneva komponendi sisenemispunkti.
Esialgse käivitamise ajal salvestatakse need kaks vaikekonfiguratsiooni Windowsi registrisse, kust need laaditakse järgmistel käitamistel, võimaldades värskendusi juurutada. Iga konfiguratsiooni registritee luuakse järgmises vormingus:
{HKCU|HKLM}TarkvaraklassidCLSID{ }(Vaikimisi)
on loodud GUID, mis on iga ohvri jaoks ainulaadne.
Pärast seda initsialiseeritakse .NET-i käitusaeg, seejärel dekrüpteerib Executor RC4 tagaukse .NET-i osa, mida nimetatakse Orchestratoriks. Orchestrator asub selles .rsrc Täitja osa. Konfiguratsioon määrab sisestuspunktina Orchestratori täitmismeetodi. Lisaks on ette nähtud selge struktuur, mis hõlbustab orkestraatori juurdepääsu täitja funktsioonidele.
Pärast Orchestratori käivitamist toimib täitja Orchestratori tugiraamatukoguna. Täitja sisaldab palju huvitavaid funktsioone; kirjeldame mõnda neist järgmises jaotises seoses nende kasutamisega Orchestratori ja täiendavate laaditud moodulite poolt.
Orchestrator
NET-is kirjutatud Orchestrator on Deadglyphi tagaukse põhikomponent. Selle komponendi peamine roll hõlmab side loomist C&C serveriga ja käskude täitmist, mida sageli hõlbustab täitja vahendaja roll. Erinevalt eelmistest komponentidest on Orchestrator segatud, kasutades .NET Reactorit. Sisemiselt viidatakse tagauksele kui agent, mis on kliendiosa tavaline nimi erinevates kasutusjärgsetes raamistikes.
Vormindamine
Orchestrator laadib esmalt ressurssidest oma konfiguratsiooni ja kaks manustatud moodulit, millest igaühega on kaasas oma konfiguratsioonikomplekt. Need ressursid on Tühjendage kokkusurutud ja AES krüpteeritud. Neile viitab ID, mis on SHA-1 räsistatud ressursi nimeks. Ülevaade nendest ressurssidest on esitatud REF _Ref111452440 h Tabel 1
.
Tabel 1. Orkestri ressursid
Allika nimi |
ID (kümnendkohaga) |
ID (kuueteistkümnend) |
Kirjeldus |
43ed9a3ad74ed7ab74c345a876b6be19039d4c8c |
2570286865 |
0x99337711 |
Orkestri konfiguratsioon. |
3a215912708eab6f56af953d748fbfc38e3bb468 |
3740250113 |
0xDEEFB001 |
Võrgumoodul. |
42fb165bc9cf614996027a9fcb261d65fd513527 |
3740250369 |
0xDEEFB101 |
Võrgumooduli konfiguratsioon. |
e204cdcf96d9f94f9c19dbe385e635d00caaf49d |
3735924737 |
0xDEADB001 |
Taimeri moodul. |
abd2db754795272c21407efd5080c8a705a7d151 |
3735924993 |
0xDEADB101 |
Taimeri mooduli konfiguratsioon. |
Orchestratori ja manustatud moodulite konfiguratsioon salvestatakse XML-vormingus. Orchestratori konfiguratsiooni näide on näidatud REF _Ref111452611 h
Joonis 4
.
Orchestratori konfiguratsioonikirjete kirjeldus on näidatud REF _Ref111452782 h Tabel 2
.
Tabel 2. Orkestri konfiguratsiooni kirjed
Võti |
Kirjeldus |
k
|
AES-võti, mida kasutatakse püsivate moodulikonfiguratsioonide jaoks. |
a
|
Võrgumooduli lähtestamismeetodi nimi. |
b
|
Tundmatu võrgumooduliga seotud lipp. |
c
|
Taimerimooduli lähtestamismeetodi nimi. |
d
|
Märgistus, mis võimaldab ressursside jaoks kasutada masinapõhist AES-võtit (süsteemi UUID). |
p
|
Võrgumooduli ressursi ID. |
t
|
Taimeri mooduli ressursi ID. |
Pärast ressursikomponentide laadimist luuakse mitu lõime erinevate ülesannete täitmiseks. Üks nendest lõimedest vastutab keskkonnakontrollide läbiviimise eest, mis on täitjas rakendatud funktsioon. Teine lõim on pühendatud perioodilise suhtluse loomisele C&C serveriga, mis võimaldab käske hankida. Lõpuks kasutatakse vastuvõetud käskude täitmiseks ja seejärel genereeritud väljundi C&C serverisse tagasi saatmiseks kolme lõime komplekti.
Keskkonnakontrolli lõim jälgib töötavaid protsesse soovimatute tuvastamiseks. See lõim töötab kahe erineva protsessinimede loendiga. Kui tuvastatakse esimeses loendis olev protsess, peatatakse C&C side ja käskude täitmine, kuni soovimatut protsessi enam ei eksisteeri. Kui teises loendis leidub vaste mõnele protsessile, sulgeb tagauks kohe ja desinstallib ennast.
Kumbki loend ei olnud analüüsitud eksemplaris konfigureeritud, mistõttu me ei tea, milliseid protsesse tavaliselt kontrollitakse; usume, et selle eesmärk on tõenäoliselt kõrvale hiilida analüüsivahenditest, mis võivad tuvastada kahtlase tegevuse ja viia tagaukse avastamiseni.
KOMMUNIKATSIOON
Orchestrator kasutab C&C suhtluseks kahte manustatud moodulit – taimerit ja võrku. Sarnaselt Orchestratorile on need moodulid .NET Reactoriga hägustatud. Mõlema mooduli konfiguratsiooni pakub Orchestrator. Orchestratoris on moodulite eelseadistatud konfiguratsioon kaasatud; valikuliselt saab Orchestrator laadida ka registrist värskendatud konfiguratsiooniversiooni:
{HKCU|HKLM}TarkvaraklassidCLSID{ }
Tagauks sisaldab huvitavat suhtlusega seotud turvameedet. Kui tagauks ei suuda C&C-serveriga ühendust luua aja jooksul, mis ületab eelmääratletud künnise, mis on konfigureeritud Executoris, käivitub isedesinstallimise mehhanism. See ajalävi on määratud tundides ja see määrati uuritava juhtumi puhul ühele tunnile.
Sellel lähenemisviisil on kaks eesmärki. Ühest küljest hoiab see ära üleliigsete võrgupäringute genereerimise ligipääsmatu serveri suunas. Teisest küljest vähendab see hilisema tuvastamise võimalusi, kui operaatorid kaotavad kontrolli tagaukse üle.
Taimeri moodul
See väike moodul täidab määratud tagasihelistamise konfigureeritava intervalliga. Orchestrator kasutab seda koos võrgumooduliga C&C serveriga perioodiliseks suhtlemiseks. Võrgulogides tuvastatavate mustrite loomise vältimiseks randomiseeritakse täitmisintervall konfiguratsioonis määratud protsendi alusel. Analüüsitud juhul määrati intervall viieks minutiks, kusjuures juhuslikkuse jaoks lisati ±20% variatsioon.
Teine meetod tuvastatavate võrgumustrite vältimiseks perioodilises suhtluses on C&C serverile saadetavate päringute genereerimine. See Executoris rakendatud mehhanism hõlmab erineva pikkusega, juhuslikest baitidest koosneva täidise lisamist päringutesse, mille tulemuseks on erineva suurusega päringud.
Võrgumoodul
Võrgumoodul rakendab sidet selle konfiguratsioonis määratud C&C serveritega. See võib saata andmeid C&C-serverisse, kasutades HTTP(S) POST-päringuid. Eelkõige pakub see puhverserveri konfiguratsiooni üksikasjade hankimiseks mitmeid mehhanisme. See funktsioon viitab potentsiaalsele keskendumisele keskkondadele, kus otsene Interneti-juurdepääs pole saadaval.
Dekrüpteeritud (ja kaunistatud) konfiguratsiooni näide on näidatud REF _Ref144978805 h Joonis 5
.
Konfiguratsioonikirjed sisaldavad võrgusuhtlusega seotud üksikasju – C&C URL-id, HTTP kasutajaagent ja valikuliselt puhverserveri konfiguratsioon.
C&C serveriga suhtlemisel kasutatakse HTTPS-i all kohandatud binaarprotokolli krüptitud sisuga.
Käsud
Orchestrator saab C&C serverilt käske ülesannete kujul, mis on täitmiseks järjekorda pandud. Töödeldud on kolme tüüpi ülesandeid:
- Orkestri ülesanded,
- Täitja ülesanded ja
- Laadige ülesanded üles.
Kaks esimest tüüpi võetakse vastu C&C-serverist ja kolmas luuakse sisemiselt käskude ja vigade väljundi üleslaadimiseks.
Orkestri ülesanded
Orkestri ülesanded pakuvad võimalust hallata võrgu- ja taimerimoodulite konfiguratsiooni ning ka tühistada ootel olevaid ülesandeid. Orchestratori ülesannete ülevaade on näidatud REF _Ref111101783 h Tabel 3
.
Tabel 3. Orkestri ülesanded
KASUTUSALA |
Kirjeldus |
0x80
|
Määrake võrgu- ja taimerimoodulite konfiguratsioon. |
0x81
|
Hankige võrgu- ja taimerimoodulite konfiguratsioon. |
0x82
|
Tühista ülesanne. |
0x83
|
Tühista kõik ülesanded. |
Teostaja ülesanded
Täitja ülesanded pakuvad võimalust hallata tagaust ja täita lisamooduleid. Tähelepanuväärne on see, et traditsiooniline tagaukse funktsionaalsus ei ole binaarfailis iseenesest olemas. Selle asemel saadakse need funktsioonid C&C serverist PE-failide või shellkoodi kujul. Tagaukse potentsiaali täielik ulatus jääb teadmata ilma nende lisamooduliteta, mis vabastavad selle tegelikud võimalused. Mooduliülesannete ülevaade on näidatud REF _Ref117677179 h Tabel 4
, mis sisaldab üksikasju väheste tuvastatud moodulite kohta. Samamoodi REF _Ref117677188 h Tabel 5
annab ülevaate Täitjaga seotud juhtimisülesannetest.
Tabel 4. Täitja ülesanded – moodulid
KASUTUSALA |
Kirjeldus |
0x??–0x63
|
Tundmatu |
0x64
|
Faililugeja |
0x65
|
Tundmatu |
0x66
|
Tundmatu |
0x67
|
Tundmatu |
0x68
|
Tundmatu |
0x69
|
Protsessi looja |
0x6A
|
Tundmatu |
0x6B
|
Tundmatu |
0x6C
|
Infokoguja |
0x6D
|
Tundmatu |
0x6E
|
Tundmatu |
Tabel 5. Täitja ülesanded – juhtimine
KASUTUSALA |
Kirjeldus |
0x6F-0x76 |
Pole rakendatud |
0x77 |
Määrake täitja konfiguratsioon |
0x78 |
Hankige täitja konfiguratsioon |
0x79-0x7C |
Pole rakendatud |
0x7D |
Värskendused |
0x7E |
Loobuma |
0x7F |
Uninstall |
Käsk, mis määrab täitja konfiguratsiooni, võib muuta:
- soovimatute protsesside loendid,
- C&C sidetõrke ajalävi ja
- lisamoodulite täitmise tähtaeg.
Moodulid
Meil õnnestus hankida C&C serverist kolm ainulaadset moodulit, millest igaüks vastab erinevale Executori ülesande tüübile, nagu on näidatud REF _Ref117677179 h Tabel 4 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003100310037003600370037003100370039000000
. Olemasoleva teabe põhjal arvame, et mooduleid on kokku üheksa kuni neliteist. Kuna moodulid on tegelikult tagaukse käsud, on neil üks põhioperatsioon käivitamiseks ja seejärel valikuliselt väljundi tagastamiseks. Saadud moodulid on DLL-id, millel on üks nimetu eksport (järjekorras 1), milles nad lahendavad vajalikud API funktsioonid ja kutsuvad esile põhifunktsiooni.
Moodulid on käivitamisel varustatud API-lahutusfunktsiooniga, mis suudab lahendada Windowsi API-d ja kohandatud täitja API-sid. Windowsi API-dele viitab DWORD-räsi, mis arvutatakse API nime ja selle DLL-i alusel. Väikesi räsiväärtusi (<41) käsitletakse spetsiaalselt, viidates Executor API funktsioonile. Executori API sisaldab kokku 39 funktsiooni, mis on moodulitele juurdepääsetavad. Need funktsioonid hõlmavad mitmesuguseid toiminguid, sealhulgas:
- failitoimingud,
- krüptimine ja räsimine,
- kokkusurumine,
- PE laadimine,
- juurdepääsu Tokeni esinemisele ja
- kasulikkust.
Selle jaotise ülejäänud osas kirjeldame saadud mooduleid.
Protsessi looja
moodulid 0x69 käivitab määratud käsurea uue protsessina ja annab saadud väljundi tagasi Orchestratorile. Protsessi saab luua erineva kasutaja all ja selle täitmise aega saab piirata. Nimelt ebatavaline Töö API kasutatakse selle mooduli funktsioonides.
Seda moodulit teenindati käsureaga cmd.exe /c ülesannete loend /v.
Eeldame, et see toimib automaatselt jõudeoleku käsuna, samal ajal kui operaatorid ootavad, kuni ohustatud arvutis juhtub midagi huvitavat.
Infokoguja
moodulid 0x6C kogub WMI päringute kaudu arvuti kohta ulatuslikku teavet ja edastab selle tagasi Orchestratorile. Kogutakse teavet järgmise kohta:
- operatsioonisüsteem,
- Võrguadapterid,
- installitud tarkvara,
- ajamid,
- teenused
- draiverid,
- protsessid,
- kasutajad,
- keskkonnamuutujad ja
- turvatarkvara.
Faililugeja
moodulid 0x64 loeb määratud faili ja edastab sisu tagasi Orchestratorile. Valikuliselt saab see faili pärast lugemist kustutada.
Nägime, et seda moodulit kasutati ohvri Outlooki andmefaili toomiseks
c: kasutajad AppDataLocalMicrosoftOutlookoutlook.ost.
Kett shellkoodi allalaadijaga
Deadglyphi uurimise käigus sattusime kahtlasele CPL-failile, mis oli allkirjastatud aegunud sertifikaadiga ja ilma ajatempliga vastuallkirjata, mis oli Katarist VirusTotali üles laaditud. Lähemal uurimisel sai selgeks, et see CPL-fail toimis mitmeastmelise shellkoodi allalaadijana, jagades teatud koodide sarnasusi Deadglyphiga. Laadimiskett on kujutatud joonisel REF _Ref143693067 h Joonis 6
.
Esialgsel kujul, mis toimib esimese etapina, eeldab see fail a .cpl laiendiga (juhtpaneeli fail) ja see on mõeldud käivitamiseks topeltklõpsuga. Sel viisil täitmisel läbib manustatud shellkood XOR-dekrüpteerimise ja töötavaid protsesse kontrollitakse, et tuvastada sobiv hostprotsess järgnevaks süstimiseks.
If avp.exe (Kaspersky lõpp-punkti turbeprotsess) töötab, %windir%system32UserAccountBroker.exe kasutatakse. Vastasel juhul kasutatakse vaikebrauserit. Seejärel loob see hostprotsessi peatatud olekus, sisestab shellkoodi, kaaperdades selle põhilõime, ja jätkab lõime.
Teine etapp, shellkood, koosneb kahest osast. Shellkoodi esimene osa lahendab API räsid, kasutades sama ainulaadset räsiarvutustehnikat, mida kasutatakse Deadglyphis, ja dekrüpteerib protsessinimedega stringid. See käivitab isekustutava lõime, mille ülesandeks on esimese etapi fail üle kirjutada ja seejärel kustutada. Pärast seda jätkab shellkood praegu aktiivsete protsesside kontrollimist, sihib turbelahendust.
Kui tuvastatakse mõni määratud protsessidest, loob shellkood madalaima prioriteediga unelõime (THREAD_PRIORITY_IDLE) ja võimaldab sellel 60 sekundit aktiivsena püsida enne töö lõpetamist. Seda intervalli rakendatakse tõenäoliselt ettevaatusabinõuna, et vältida teatud turvalahenduste tuvastamismehhanisme. Lõpuks käivitab shellkood oma koodi teise osa täitmise.
Shellikoodi teine osa laadib manustatud PE-faili kolmanda etapiga ja kutsub selle eksporti koos järjenumbriga 1.
Kolmas etapp, DLL, toimib .NET-laadurina ja sisaldab kasulikku koormust .rsrc sektsiooni.
Kasuliku koormuse laadimiseks lähtestatakse .NET-i käitusaeg. .NET-i lähtestamise ajal tehakse kaks intrigeerivat tehnikat, mis näivad olevat mõeldud Windowsist kõrvalehoidmiseks Antimalware Scan Interface (AMSI) skannimine:
- .NET-laadur haagib ajutiselt
- Seejärel parandab see peenelt AmsiInitsialiseeri impordi nimestringi .rdata osa laetud clr.dll et amsiinullida.
Neljas etapp on .NET-koost, mis on segatud ConfuserExiga ja mis toimib shellkoodi allalaadijana. Esiteks, see XOR-dekrüpteerib oma konfiguratsiooni XML-vormingus oma ressurssidest. Ekstraheeritud konfiguratsiooni kaunistatud versioon on esitatud REF _Ref143695453 h Joonis 7
. Konfiguratsioonikirjed sisaldavad võrgukommunikatsiooni ja blokeeritud protsesside üksikasju.
Enne jätkamist kontrollib see jooksvaid protsesse konfiguratsioonis olevate blokeeritud protsesside loendiga. Kui tuvastatakse sobivus, siis täitmine peatub. Oluline on märkida, et analüüsitud eksemplaris ei olnud seda blokeerimisloendit seadistatud.
Järgmisena saadab see C&C serverile HTTP GET-päringu, et hankida konfiguratsioonis määratud parameetreid (URL, kasutajaagent ja valikuliselt puhverserver). Kahjuks ei õnnestunud meil uurimise ajal C&C serverist ühtegi shellkoodi hankida. Sellegipoolest oletame, et allalaaditav sisu võib potentsiaalselt toimida Deadglyphi installijana.
Pärast seda käivitatakse allalaaditud shellkood vastloodud lõimes. Pärast ootamist kuni shellkoodi lõime täitmise lõpetab shellkoodi allalaadija kõik kataloogis asuvad failid %WINDIR%ServiceProfilesLocalServiceAppDataLocalTempTfsStoreTfs_DAV.
Lõpuks proovib see end 20-sekundilise intervalli järel kustutada, kasutades järgnevat käsku, enne kui lõpetab oma tegevuse ja väljub:
cmd.exe valik /CY /N /DY /T 20 & Del /f /q
Sellel enese kustutamisel pole selles ahelas mõtet. Selle põhjuseks on asjaolu, et shellkoodi allalaadija käivitatakse pärast süstimist brauseris või süsteemiprotsessis, mitte ei tööta iseseisva käivitatava failina. Pealegi oli esialgne fail teises etapis juba kustutatud. See tähelepanek viitab sellele, et shellkoodi allalaadija ei pruugi olla selle ahela ainulaadne koormus ja seda võib kasutada ka muudes toimingutes eraldi.
Järeldus
Oleme avastanud ja analüüsinud keeruka tagaukse, mida kasutab Stealth Falconi grupp, millele oleme andnud nimeks Deadglyph. Sellel on ebatavaline arhitektuur ja selle tagaukse võimalused tagavad selle C&C lisamoodulite kujul. Meil õnnestus hankida kolm neist moodulitest, paljastades murdosa Deadglyphi täielikest võimalustest.
Nimelt on Deadglyphil mitmeid vastutuvastusmehhanisme, sealhulgas süsteemi protsesside pidev jälgimine ja juhuslike võrgumustrite rakendamine. Lisaks on tagauks võimeline end desinstallima, et minimeerida selle tuvastamise tõenäosust teatud juhtudel.
Lisaks viis meie uurimine meid VirusTotalis veenva mitmeastmelise shellkoodi allalaadimisahela avastamiseni. Arvame, et seda allalaadimisketti kasutatakse Deadglyphi installiprotsessis tõenäoliselt.
Kui teil on küsimusi meie WeLiveSecurity avaldatud uurimistöö kohta, võtke meiega ühendust aadressil ohuintel@eset.com.
ESET Research pakub privaatseid APT luurearuandeid ja andmevooge. Kui teil on selle teenuse kohta küsimusi, külastage aadressi ESET Threat Intelligence lehel.
IoC-d
Faile
SHA-1 |
Faili |
Detection |
Kirjeldus |
C40F1F46D230A85F702DAA38CFA18D60481EA6C2 |
pbrtl.dll |
Win64/Deadglyph.A |
Registri Shellcode Loader. |
740D308565E215EB9B235CC5B720142428F540DB |
N / A |
Win64/Deadglyph.A |
Deadglyph Backdoor – täitja. |
1805568D8362A379AF09FD70D3406C6B654F189F |
N / A |
MSIL/Deadglyph.A |
Deadglyph Backdoor – orkestrant. |
9CB373B2643C2B7F93862D2682A0D2150C7AEC7E |
N / A |
MSIL/Deadglyph.A |
Orchestrator Network moodul. |
F47CB40F6C2B303308D9D705F8CAD707B9C39FA5 |
N / A |
MSIL/Deadglyph.A |
Orkestri taimeri moodul. |
3D4D9C9F2A5ACEFF9E45538F5EBE723ACAF83E32 |
N / A |
Win64/Deadglyph.A.gen |
Protsessi looja moodul. |
3D2ACCEA98DBDF95F0543B7C1E8A055020E74960 |
N / A |
Win64/Deadglyph.A |
Faililugeja moodul. |
4E3018E4FD27587BD1C566930AE24442769D16F0 |
N / A |
Win64/Deadglyph.A |
Infokoguja moodul. |
7F728D490ED6EA64A7644049914A7F2A0E563969 |
N / A |
Win64/Injector.MD |
Shellikoodi allalaadimisahela esimene etapp. |
Sertifikaadid
Seerianumber |
00F0FB1390F5340CD2572451D95DB1D92D |
Pöidlajälg |
DB3614DAF58D041F96A5B916281EA0DC97AA0C29 |
Teema CN |
RHM PIIRATUD |
Teema O |
RHM PIIRATUD |
Teema L |
St. Albans |
Teema S |
Hertfordshire |
Teema C |
GB |
E-POST |
rhm@rhmlimited[.]co.uk |
Kehtib alates |
2021-03-16 00:00:00 |
Kehtib kuni |
2022-03-16 23:59:59 |
C&C serverid
IP |
Domeen |
Esimest korda nähtud |
kommentaar |
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 allalaadija C&C server. |
MITER ATT&CK tehnikad
See laud on ehitatud kasutades versioon 13 MITER ATT&CK raamistikust.
Taktika |
ID |
Nimi |
Kirjeldus |
Ressursside arendamine |
Taristu hankimine: domeenid |
Stealth Falcon on registreerinud domeenid C&C serverite jaoks ja koodi allkirjastamise sertifikaadi saamiseks. |
|
Taristu hankimine: virtuaalne privaatserver |
Stealth Falcon on C&C serverite jaoks kasutanud VPS-i hostimise pakkujaid. |
||
Võimaluste arendamine: pahavara |
Stealth Falcon on välja töötanud kohandatud pahavara, sealhulgas kohandatud laadijad ja Deadglyphi tagaukse. |
||
Hankige võimalused: koodi allkirjastamise sertifikaadid |
Stealth Falcon on saanud koodi allkirjastamise sertifikaadi. |
||
Täitmine |
Windows Management Instrumentation |
Deadglyph kasutab laadimisahela täitmiseks WMI-d. |
|
Käskude ja skriptitõlk: Windowsi käsukest |
Shellcode'i allalaadija kasutab cmd.exe ennast kustutada. |
||
Natiivne API |
Deadglyphi moodul kasutab CreateProcessW ja CreateProcessAsUserW API funktsioonid täitmiseks. |
||
Kasutaja täitmine: pahatahtlik fail |
Shellikoodi allalaadimiskett nõuab, et kasutaja teeks topeltklõpsu ja käivitaks selle. |
||
Püsivus |
Sündmuse käivitatud täitmine: Windowsi haldusinstrumentide sündmuste tellimus |
Esialgne Deadglyphi laadija säilitatakse WMI sündmuse tellimust kasutades. |
|
Kaitsest kõrvalehoidmine |
Hägustatud failid või teave |
Deadglyfi komponendid on krüpteeritud. Deadglyph Orchestrator ja manustatud moodulid on .NET Reactoriga hägustatud. Shellikoodi allalaadija on ConfuserExiga hägustatud. |
|
Indikaatori eemaldamine: faili kustutamine |
Deadglyph saab ise desinstallida. Shellikoodi allalaadimiskett kustutab ennast ja kustutab WebDAV-i vahemälus olevad failid. |
||
Muuda registrit |
Deadglyph salvestab oma konfiguratsiooni ja krüptitud kasuliku koormuse registris. |
||
Juurdepääsulubade manipuleerimine |
Deadglyph võib esineda teise kasutajana. |
||
Failide või teabe deobfuskeerimine/dekodeerimine |
Deadglyph dekrüpteerib krüptitud stringid. Shellcode'i allalaadimiskett dekrüpteerib selle komponendid ja konfiguratsioonid. |
||
Süsteemi binaarse puhverserveri täitmine: Rundll32 |
Esialgne Deadglyphi laadija käivitatakse kasutades rundll32.exe. |
||
Täitmise kaitsepiirded: keskkonnakaitse |
Deadglyph krüpteeritakse masinaspetsiifilise võtmega, mis on tuletatud süsteemi UUID-st. |
||
Kahjustada kaitsemehhanisme: keelake või muutke tööriistu |
Shellcode'i allalaadija väldib AMSI-skannimist lappimise teel clr.dll mälus. |
||
Peegeldava koodi laadimine |
Deadglyph laadib oma moodulid peegeldavalt, kasutades kohandatud PE-laadurit. |
||
avastus |
Süsteemiteenuse avastamine |
A Deadglyph moodul avastab teenuseid WMI päringu abil SELECT * FROM Win32_Service. |
|
Päring registrist |
Shellcode'i allalaadimiskett küsib vaikebrauseri registrist. |
||
Süsteemi võrgukonfiguratsiooni avastamine |
Deadglyphi moodul avastab võrguadapterid WMI-päringute abil SELECT * FROM Win32_NetworkAdapter ja SELECT * FROM Win32_NetworkAdapterConfiguration kus InterfaceIndex=%d. |
||
Süsteemi omaniku/kasutaja avastamine |
Deadglyphi moodul avastab kasutajad WMI-päringu abil SELECT * FROM Win32_UserAccount. |
||
Protsessi avastamine |
Deadglyphi moodul avastab protsessid WMI-päringu abil SELECT * FROM Win32_Process. |
||
Süsteemi teabe avastamine |
Deadglyphi moodul avastab WMI päringute abil süsteemiteabe, näiteks OS-i versiooni, draivid, keskkonnamuutujad ja draiverid. |
||
Tarkvara avastamine |
Deadglyphi moodul avastab installitud tarkvara WMI-päringu abil SELECT * FROM Win32_Product. |
||
Tarkvara avastamine: turvatarkvara avastamine |
Deadglyphi moodul avastab turvatarkvara WMI päringute abil SELECT * FROM AntiVirusProduct, SELECT * FROM AntiSpywareProduct ja SELECT * FROM FirewallProduct. Shellikoodi allalaadija kett kontrollib töötavaid protsesse turvalahenduse leidmiseks. |
||
kogumine |
Andmed kohalikust süsteemist |
Deadglyphil on moodul failide lugemiseks. |
|
Juhtimine ja kontroll |
Rakenduskihi protokoll: veebiprotokollid |
Deadglyph ja shellcode allalaadija suhtlevad C&C serveriga HTTP-protokolli kaudu. |
|
Volikiri |
Deadglyph ja shellcode'i allalaadija saavad C&C-suhtluseks kasutada HTTP-puhverserverit. |
||
Krüpteeritud kanal: sümmeetriline krüptograafia |
Deadglyph kasutab C&C suhtluse krüptimiseks AES-i. |
||
Välja filtreerimine |
Eksfiltratsioon C2 kanali kaudu |
Deadglyph kasutab eksfiltreerimiseks C&C kanalit. |
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- PlatoData.Network Vertikaalne generatiivne Ai. Jõustage ennast. Juurdepääs siia.
- PlatoAiStream. Web3 luure. Täiustatud teadmised. Juurdepääs siia.
- PlatoESG. Süsinik, CleanTech, Energia, Keskkond päikeseenergia, Jäätmekäitluse. Juurdepääs siia.
- PlatoTervis. Biotehnoloogia ja kliiniliste uuringute luureandmed. Juurdepääs siia.
- Allikas: https://www.welivesecurity.com/en/eset-research/stealth-falcon-preying-middle-eastern-skies-deadglyph/
- :on
- :on
- :mitte
- : kus
- $ UP
- 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
- võime
- MEIST
- juurdepääs
- kättesaadavus
- juurdepääsetav
- lisatud
- omandama
- tegevus
- aktiivne
- aktivistid
- tegevus
- tegevus
- õigusaktid
- tegelikult
- lisamine
- Täiendavad lisad
- edasijõudnud
- ADEelis
- AES
- pärast
- vastu
- Eesmärk
- Materjal: BPA ja flataatide vaba plastik
- väidetavalt
- võimaldab
- juba
- Ka
- an
- analüüs
- analüüsima
- analüüsitud
- ja
- Teine
- ootab
- mistahes
- API
- API-liidesed
- ilmuma
- lähenemine
- APT
- araabia
- Araabia Ühendemiraadid
- arhitektuur
- OLEME
- AS
- Kokkupanek
- seotud
- eeldab
- At
- rünnak
- Reageerib
- automaatselt
- saadaval
- vältima
- tagasi
- tagauks
- põhineb
- põhiline
- BE
- sai
- sest
- olnud
- enne
- on
- Uskuma
- BEST
- uhke
- keha
- mõlemad
- brauseri
- ehitatud
- kuid
- by
- vahemälu
- arvutatud
- arvutus
- helistama
- kutsutud
- kutsudes
- Kutsub
- Kampaania
- CAN
- võimeid
- võimeline
- kapital
- viima
- juhul
- juhtudel
- keskus
- kindel
- sertifikaat
- kett
- vastuolu
- muutma
- Kanal
- märki
- kontrollitud
- Kontroll
- valik
- klient
- lähemale
- kood
- koguja
- kogub
- värv
- COM
- kombinatsioon
- ühine
- edastama
- suhtlemine
- KOMMUNIKATSIOON
- Side
- kaalukad
- komponent
- komponendid
- Koosneb
- koosneb
- kompromiss
- Kompromissitud
- arvuti
- Juhtimine
- Konverents
- usaldus
- konfiguratsioon
- konfigureeritud
- seotud
- koosneb
- kontakt
- sisaldama
- sisaldab
- sisu
- kontekst
- pidev
- kontrast
- kontrollida
- juhtpaneel
- KORPORATSIOONI
- Vastav
- võiks
- seotud
- loodud
- loob
- loomine
- looja
- Praegune
- Praegu
- tava
- Kliendid
- tumedam
- andmed
- Avaldage lahti
- vaikimisi
- Kraad
- Olenevalt
- juurutamine
- Tuletatud
- kirjeldama
- kirjeldatud
- kirjeldus
- detailid
- tuvastatud
- Detection
- kindlaksmääratud
- arenenud
- & Tarkvaraarendus
- erinevus
- erinev
- raske
- otsene
- avastasin
- Avastab
- avastus
- eristatav
- mitu
- ei
- Domeenid
- Ära
- draiverid
- kõvakettad
- kaks
- kestus
- ajal
- dünaamiline
- dünaamiliselt
- iga
- Ida
- ida-
- tõhusalt
- kumbki
- kõrgendatud
- varjatud
- Emirates
- töötavad
- töötab
- võimaldades
- hõlmab
- krüpteeritud
- krüpteerimist
- Lõpp-punkt
- Lõpp-punkti turvalisus
- tagab
- üksus
- kanne
- keskkond
- keskkonna-
- keskkondades
- vead
- ESET-i uuringud
- spionaaž
- looma
- asutades
- hinnata
- Eeter (ETH)
- sündmus
- tõend
- ilmne
- läbivaatamine
- näide
- Eksklusiivne
- täitma
- täidetud
- Täidab
- hukkamine
- täitmine
- eksfiltreerimine
- eksponaadid
- olemas
- Väljudes
- teadmised
- eksport
- laiendamine
- ulatuslik
- ulatus
- hõlbustada
- hõlbustatakse
- asjaolu
- ebaedu
- pistrik
- tunnusjoon
- FUNKTSIOONID
- vähe
- Joonis
- fail
- Faile
- Lõpuks
- järeldused
- esimene
- viis
- Keskenduma
- Järel
- eest
- vorm
- formaat
- endine
- avastatud
- Neljas
- murdosa
- Raamistik
- raamistikud
- Alates
- täis
- funktsioon
- funktsionaalsus
- funktsioonid
- edasi
- Pealegi
- loodud
- põlvkond
- saama
- valitsuse
- kreeka
- Maa
- Grupp
- olnud
- käsi
- juhtuda
- hash
- räsitud
- räsimine
- Olema
- võttes
- siin
- HEX
- Suur
- kõrge profiiliga
- Esile tõstma
- takistama
- Konksud
- võõrustaja
- Hosting
- tund
- Lahtiolekuajad
- http
- HTTPS
- ID
- identiques
- tuvastatud
- identifitseerima
- Idle
- if
- pilt
- kohe
- täitmine
- rakendatud
- tööriistad
- import
- oluline
- in
- Teistes
- sügavuti minev
- ligipääsmatu
- lisatud
- hõlmab
- Kaasa arvatud
- kaasamine
- sõltumatud
- näitama
- info
- info
- Infrastruktuur
- olemuselt
- esialgne
- algatus
- Päringud
- paigaldamine
- Näiteks
- selle asemel
- Intelligentsus
- Intelligentne
- ette nähtud
- huvitav
- Interface
- vahendaja
- sisemiselt
- rahvusvaheliselt
- Internet
- internetiühendus
- sisse
- intrigeeriv
- sisse
- uurimine
- seotud
- hõlmab
- Välja antud
- IT
- ITS
- ise
- Jaanuar
- Ajakirjanikud
- Kaspersky
- Võti
- võtmed
- Teadma
- teadmised
- teatud
- keel
- Keeled
- käivitamine
- kiht
- viima
- Led
- lahkus
- Pikkus
- kiri
- võimendatud
- Raamatukogu
- nagu
- tõenäosus
- Tõenäoliselt
- LIMIT
- piiratud
- joon
- LINK
- seotud
- nimekiri
- Nimekirjad
- koormus
- laadur
- laadimine
- saadetised
- kohalik
- asub
- loogika
- enam
- Vaata
- kaotama
- madalaim
- põhiline
- tegema
- TEEB
- malware
- juhtima
- juhitud
- juhtimine
- viis
- palju
- kaart
- Vastama
- mai..
- tähendas
- mõõtma
- mehhanism
- mehhanismid
- Mälu
- meetod
- Microsoft
- Kesk-
- Lähis-Ida
- võib
- protokoll
- segatud
- muutma
- moodul
- Moodulid
- järelevalve
- monitorid
- rohkem
- Pealegi
- mitmekordne
- nimi
- Nimega
- nimed
- emakeelena
- Navigate
- vajalik
- neto
- võrk
- Uus
- Uusim
- äsja
- ei
- märkimisväärne
- eelkõige
- meeles
- nüüd
- number
- saama
- saadud
- esineda
- of
- pakkuma
- Pakkumised
- sageli
- on
- ONE
- ones
- ainult
- tegutseb
- tegutsevad
- töö
- Operations
- ettevõtjad
- or
- originaal
- OS
- Muu
- muidu
- meie
- välja
- väljavaade
- väljund
- üle
- ülevaade
- enda
- P&E
- lehekülg
- paneel
- parameetrid
- osa
- osad
- möödub
- Paikade
- Lappimine
- tee
- mustrid
- kuni
- protsent
- teostatud
- perioodiline
- püsivus
- inimesele
- Platon
- Platoni andmete intelligentsus
- PlatoData
- palun
- võtke
- Punkt
- võrra
- poliitiline
- post
- potentsiaal
- potentsiaalselt
- vajadus
- olemasolu
- esitada
- esitatud
- vältida
- takistab
- varem
- esmane
- prioriteet
- era-
- privileegid
- tõenäoliselt
- tulu
- protsess
- töödeldud
- Protsessid
- Programming
- programmeerimiskeeled
- projekt
- korralik
- protokoll
- anda
- tingimusel
- pakkujad
- annab
- volikiri
- avalik
- avaldatud
- eesmärk
- eesmärkidel
- Katari
- päringud
- juhuslik
- Juhuslikult valitud
- juhuslikkus
- valik
- pigem
- reaktor
- lugeja
- Lugemine
- saadud
- saab
- vähendab
- viitamine
- nimetatud
- piirkond
- registreeritud
- registri
- seotud
- jääma
- ülejäänud
- jäänused
- eemaldamine
- Aruanded
- esindab
- maine
- taotleda
- Taotlusi
- Vajab
- teadustöö
- resolutsioon
- ressurss
- Vahendid
- vastutav
- REST
- kaasa
- tulemuseks
- tagasipöördumine
- Tulu
- Reuters
- avalduma
- Roll
- juur
- rutiinne
- jooksmine
- jookseb
- s
- ohutus
- sama
- San
- nägin
- skaneerida
- skaneerimine
- Teine
- sekundit
- Osa
- lõigud
- turvalisus
- Turvatarkvara
- saatma
- saadab
- tunne
- Saadetud
- eri
- September
- teenima
- server
- teenib
- teenus
- Teenused
- komplekt
- Komplektid
- seaded
- mitu
- jagamine
- näidatud
- allkirjastatud
- allkirjastamine
- sarnane
- Samamoodi
- alates
- ühekordne
- suurused
- taevas
- väike
- So
- tarkvara
- lahendus
- Lahendused
- mõned
- midagi
- keeruline
- keerukus
- spetsiaalselt
- eriti
- määratletud
- nuhkvara
- Stage
- algab
- riik
- Stealth
- ladustatud
- kauplustes
- nöör
- struktuur
- teema
- tellimine
- järgnev
- Järgnevalt
- selline
- Soovitab
- sobiv
- varustatud
- toetama
- ületades
- peatatud
- kahtlane
- süsteem
- süsteemid
- tabel
- Võtma
- võtmine
- sihtmärk
- suunatud
- sihtimine
- eesmärgid
- Ülesanne
- ülesanded
- Tehniline
- Tehniline analüüs
- tehnikat
- kui
- et
- .
- oma
- Neile
- SIIS
- Seal.
- Need
- nad
- Kolmas
- see
- need
- oht
- ähvardused
- kolm
- künnis
- Läbi
- aeg
- ajatempel
- Kapslid
- et
- sümboolne
- töövahendid
- Summa
- suunas
- traditsiooniline
- üle
- üle antud
- töödeldud
- vallandas
- tõsi
- Pöörake
- kaks
- tüüp
- liigid
- tüüpiliselt
- ei suuda
- all
- läbib
- Unicode
- ainulaadne
- ainulaadsed omadused
- Ühendatud
- Araabia Ühendemiraadid
- tundmatu
- avamine
- NIMETAMATA
- kuni
- ebatavaline
- soovimatu
- ajakohastatud
- Uudised
- laetud
- peale
- URL
- us
- Kasutus
- kasutama
- Kasutatud
- Kasutaja
- Kasutajad
- kasutusalad
- kasutamine
- ära kasutama
- kasutab ära
- väärtus
- Väärtused
- sort
- eri
- varieeruv
- versioon
- väga
- kaudu
- Ohver
- virtuaalne
- visiit
- visuaalselt
- ootama
- ootamine
- oli
- we
- web
- olid
- M
- millal
- kas
- mis
- kuigi
- Wikipedia
- aknad
- koos
- jooksul
- ilma
- XML
- aastat
- jah
- veel
- sephyrnet