Stealth Falcon röövib Deadglyphiga Lähis-Ida taevast

Stealth Falcon röövib Deadglyphiga Lähis-Ida taevast

Allikasõlm: 2899203

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
.

Deadglyph Joonis_01
Joonis 1. Deadglyphi viktimoloogia; seotud näidis laaditi Katarist VirusTotali üles (tumedamat värvi)

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.

Deadglyph Joonis 2
Joonis 2. Claudio Guarnieri on ühendanud Stealth Falconi projektiga Raven

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.

Deadglyph Joonis_02
Joonis 3. Deadglyfi laadimisahela komponendid

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
.

Deadglyph Joonis_04
Joonis 4. Orkestri konfiguratsioon

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
.

Deadglyph Joonis_06
Joonis 5. Võrgumooduli konfiguratsioon

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
.

Deadglyph Joonis_03
Joonis 6. Shellcode allalaadija laadimisahel

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 GetModuleHandleW importida laaditud clr.dll, helistamise ajal ICorRuntimeHost::Start. Konks rikub tagastusväärtust millal GetModuleHandleW kutsutakse koos NULL. See tagastab kursori ilma jaotisteta näilikule PE-le.
  • 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.

Deadglyph Joonis_05
Joonis 7. Shellcode allalaadija konfiguratsioon

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

T1583.001

Taristu hankimine: domeenid

Stealth Falcon on registreerinud domeenid C&C serverite jaoks ja koodi allkirjastamise sertifikaadi saamiseks.

T1583.003

Taristu hankimine: virtuaalne privaatserver

Stealth Falcon on C&C serverite jaoks kasutanud VPS-i hostimise pakkujaid.

T1587.001

Võimaluste arendamine: pahavara

Stealth Falcon on välja töötanud kohandatud pahavara, sealhulgas kohandatud laadijad ja Deadglyphi tagaukse.

T1588.003

Hankige võimalused: koodi allkirjastamise sertifikaadid

Stealth Falcon on saanud koodi allkirjastamise sertifikaadi.

Täitmine

T1047

Windows Management Instrumentation

Deadglyph kasutab laadimisahela täitmiseks WMI-d.

T1059.003

Käskude ja skriptitõlk: Windowsi käsukest

Shellcode'i allalaadija kasutab cmd.exe ennast kustutada.

T1106

Natiivne API

Deadglyphi moodul kasutab CreateProcessW ja CreateProcessAsUserW API funktsioonid täitmiseks.

T1204.002

Kasutaja täitmine: pahatahtlik fail

Shellikoodi allalaadimiskett nõuab, et kasutaja teeks topeltklõpsu ja käivitaks selle.

Püsivus

T1546.003

Sündmuse käivitatud täitmine: Windowsi haldusinstrumentide sündmuste tellimus

Esialgne Deadglyphi laadija säilitatakse WMI sündmuse tellimust kasutades.

Kaitsest kõrvalehoidmine

T1027

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.

T1070.004

Indikaatori eemaldamine: faili kustutamine

Deadglyph saab ise desinstallida.

Shellikoodi allalaadimiskett kustutab ennast ja kustutab WebDAV-i vahemälus olevad failid.

T1112

Muuda registrit

Deadglyph salvestab oma konfiguratsiooni ja krüptitud kasuliku koormuse registris.

T1134

Juurdepääsulubade manipuleerimine

Deadglyph võib esineda teise kasutajana.

T1140

Failide või teabe deobfuskeerimine/dekodeerimine

Deadglyph dekrüpteerib krüptitud stringid.

Shellcode'i allalaadimiskett dekrüpteerib selle komponendid ja konfiguratsioonid.

T1218.011

Süsteemi binaarse puhverserveri täitmine: Rundll32

Esialgne Deadglyphi laadija käivitatakse kasutades rundll32.exe.

T1480.001

Täitmise kaitsepiirded: keskkonnakaitse

Deadglyph krüpteeritakse masinaspetsiifilise võtmega, mis on tuletatud süsteemi UUID-st.

T1562.001

Kahjustada kaitsemehhanisme: keelake või muutke tööriistu

Shellcode'i allalaadija väldib AMSI-skannimist lappimise teel clr.dll mälus.

T1620

Peegeldava koodi laadimine

Deadglyph laadib oma moodulid peegeldavalt, kasutades kohandatud PE-laadurit.

avastus

T1007

Süsteemiteenuse avastamine

A Deadglyph moodul avastab teenuseid WMI päringu abil SELECT * FROM Win32_Service.

T1012

Päring registrist

Shellcode'i allalaadimiskett küsib vaikebrauseri registrist.

T1016

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.

T1033

Süsteemi omaniku/kasutaja avastamine

Deadglyphi moodul avastab kasutajad WMI-päringu abil SELECT * FROM Win32_UserAccount.

T1057

Protsessi avastamine

Deadglyphi moodul avastab protsessid WMI-päringu abil SELECT * FROM Win32_Process.

T1082

Süsteemi teabe avastamine

Deadglyphi moodul avastab WMI päringute abil süsteemiteabe, näiteks OS-i versiooni, draivid, keskkonnamuutujad ja draiverid.

T1518

Tarkvara avastamine

Deadglyphi moodul avastab installitud tarkvara WMI-päringu abil SELECT * FROM Win32_Product.

T1518.001

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

T1005

Andmed kohalikust süsteemist

Deadglyphil on moodul failide lugemiseks.

Juhtimine ja kontroll

T1071.001

Rakenduskihi protokoll: veebiprotokollid

Deadglyph ja shellcode allalaadija suhtlevad C&C serveriga HTTP-protokolli kaudu.

T1090

Volikiri

Deadglyph ja shellcode'i allalaadija saavad C&C-suhtluseks kasutada HTTP-puhverserverit.

T1573.001

Krüpteeritud kanal: sümmeetriline krüptograafia

Deadglyph kasutab C&C suhtluse krüptimiseks AES-i.

Välja filtreerimine

T1041

Eksfiltratsioon C2 kanali kaudu

Deadglyph kasutab eksfiltreerimiseks C&C kanalit.

Ajatempel:

Veel alates Me elame turvaliselt