Stealth Falcon saalistamassa Lähi-idän taivaalla Deadglyphin kanssa

Stealth Falcon saalistamassa Lähi-idän taivaalla Deadglyphin kanssa

Lähdesolmu: 2899203

Lähi-itä on vuosien ajan säilyttänyt maineensa otollisena maaperänä kehittyneille pysyville uhille (APT). Keskellä rutiininomaista epäilyttävien toimintojen valvontaa korkean profiilin asiakkaiden järjestelmissä, joista osa sijaitsee tällä alueella, ESET Research törmäsi erittäin hienostuneeseen ja tuntemattomaan takaoveen, jolle olemme antaneet nimeksi Deadglyph. Saimme nimen takaovesta löydetyistä esineistä (esim 0xKUOLLUTB001, näkyy myös kuvassa REF _Ref111452440 h Pöytä 1
) yhdistettynä homon läsnäoloonglyph hyökkäys. Tietojemme mukaan tämä on ensimmäinen julkinen analyysi tästä aiemmin dokumentoimattomasta takaovesta, jota on käyttänyt ryhmä, joka osoittaa huomattavaa edistystä ja asiantuntemusta. Kohdistuksen ja lisätodisteiden perusteella pidämme Deadglyphin suurella varmuudella Stealth Falcon APT -ryhmää.

Deadglyphin arkkitehtuuri on epätavallinen, koska se koostuu yhteistyössä toimivat komponentit – yksi natiivi x64-binaari, toinen .NET-kokoonpano. Tämä yhdistelmä on epätavallinen, koska haittaohjelmat käyttävät tyypillisesti vain yhtä ohjelmointikieltä komponenteissaan. Tämä ero saattaa viitata näiden kahden komponentin erilliseen kehittämiseen ja samalla hyödyntää niiden käyttämien erillisten ohjelmointikielten ainutlaatuisia ominaisuuksia. Eri kieliä voidaan myös käyttää estämään analysointia, koska sekakoodia on vaikeampi navigoida ja korjata.

Perinteisiä takaoven komentoja ei ole toteutettu takaoven binaarissa; sen sijaan se vastaanottaa ne dynaamisesti komento- ja ohjauspalvelimelta (C&C) lisämoduulien muodossa. Tässä takaovessa on myös useita ominaisuuksia, jotka estävät sen havaitsemisen.

Tässä blogiviestissä tarkastelemme Deadglyphiä lähemmin ja tarjoamme teknisen analyysin tästä takaovesta, sen tarkoituksesta ja joistakin hankkimistamme lisäkomponenteista. Esittelemme myös löytöjämme Deadglyphista LABScon 2023 konferenssi.

Blogin pääkohdat:

  • ESET Research löysi hienostuneen takaoven, jolla on epätavallinen arkkitehtuuri ja jonka olemme nimenneet Deadglyphiksi.
  • Pääkomponentit salataan konekohtaisella avaimella.
  • Perinteiset takaoven komennot toteutetaan C&C-palvelimelta saatujen lisämoduuleiden kautta.
  • Saimme kolme monista moduuleista – prosessin luojan, tiedostojen lukijan ja tiedonkeruun.
  • Me liitämme Deadglyphin Stealth Falcon -ryhmään.
  • Lisäksi löysimme siihen liittyvän shellcode-latausohjelman; oletamme, että sitä voitaisiin mahdollisesti käyttää Deadglyphin asentamiseen.

Analysoidun soluttautumisen uhri on Lähi-idän hallitusyksikkö, joka on vaarantunut vakoilutarkoituksiin. VirusTotalista löydetty asiaan liittyvä näyte ladattiin myös tiedostojen tarkistusalustalle tältä alueelta, erityisesti Qatarista. Kohdealue on kuvattu kartalla REF _Ref143614671 h Kuva 1
.

Deadglyph Kuva_01
Kuva 1. Deadglyphin uhritutkimus; asiaan liittyvä näyte ladattiin VirusTotaliin Qatarista (tummemmalla värillä)

Stealth Falcon (tunnetaan myös nimellä Project Raven tai FruityArmor) on Yhdistyneisiin arabiemiirikuntiin liittyvä uhkaryhmä. MITREIN mukaan. Vuodesta 2012 lähtien toimineen Stealth Falconin tiedetään kohdistavan Lähi-idän poliittisia aktivisteja, toimittajia ja toisinajattelijoita. Sen löysi ja kuvasi ensimmäisenä Citizen Lab, joka julkaisi an analyysi vakoiluohjelmien hyökkäyskampanjasta vuonna 2016.

Reuters julkaisi tammikuussa 2019 tutkimusraportti Project Raven, aloite, jonka väitetään työllistävän entisiä NSA:n toimihenkilöitä ja tähtäävän samantyyppisiin kohteisiin kuin Stealth Falcon. Perustuu näihin kahteen raporttiin, jotka viittaavat samoihin kohteisiin ja hyökkäyksiin, Amnesty International on päättänyt (näkyy REF _Ref144978712 h Kuva 2
), että Stealth Falcon ja Project Raven ovat itse asiassa sama ryhmä.

Deadglyfi Kuva 2
Kuva 2. Claudio Guarnieri on yhdistänyt Stealth Falconin Project Raveniin

Syyskuussa 2019 me julkaistu tutkimus takaovella, joka johtui Stealth Falconista, joka käytti epätavallista tekniikkaa, Background Intelligent Transfer Service, C&C-viestintään. Nyt paljastamme syvällisen analyysimme tuloksen siitä, mikä oletettavasti on uusin lisäys Stealth Falconin vakoilutyökalusarjaan.

Deadglyph-takaovi

Deadglyphin latausketju koostuu useista komponenteista, kuten kuvassa REF _Ref144978760 h Kuva 3
. Ensimmäinen komponentti on rekisterin kuorikoodin latausohjelma, joka lataa shellkoodin rekisteristä. Tämä purettu shellkoodi puolestaan ​​lataa takaoven alkuperäisen x64-osan - Executorin. Sen jälkeen Executor lataa takaoven .NET-osan – Orchestratorin. Erityisesti ainoa järjestelmän levyllä tiedostona oleva komponentti on alkuperäinen komponentti, joka on Dynamic Link Library (DLL) -muodossa. Loput komponentit salataan ja tallennetaan binäärirekisteriarvoon.

Deadglyph Kuva_02
Kuva 3. Deadglyph-latausketjun komponentit

Vaikka alkuperäisen kompromissivektorin tarkkaa menetelmää ei ole vielä määritetty, epäilemme, että asennuskomponentti on mukana lisäkomponenttien käyttöönotossa ja pysyvyyden luomisessa järjestelmän sisällä.

Tämän osan loppuosassa analysoimme jokaista komponenttia.

Rekisterin shellcode loader

Deadglyphin alkuperäinen komponentti on pieni DLL, jolla on yksi vienti, nimeltään 1. Tämä komponentti on jatkuvassa käytössä Windows Management Instrumentation (WMI) -tapahtumatilaus ja toimii rekisterin shellcode-lataajana. Se suoritetaan komentorivin kautta rundll32 C:WINDOWSSystem32pbrtl.dll,#1.

Rekisterin kuorikoodin latausohjelma aloittaa toimintansa purkamalla polun Windows-rekisteriin tallennettuun salattuun shellkoodiin RC4:n avulla. Epäilemme, että polku on ainutlaatuinen jokaiselle uhrille; tässä analysoidussa tapauksessa rekisteripolku oli:

SoftwareClassesCLSID{5abc7f42-1112-5099-b082-ce8d65ba0c47}cAbRGHLg

Päärekisteriavain on joko hklm or HKCU, riippuen siitä, onko nykyinen prosessi käynnissä korotetuilla oikeuksilla vai ei. Sama logiikka löytyy muista komponenteista.

Tämän jälkeen lataaja johtaa konekohtaisen RC4-avaimen käyttämällä järjestelmän UUID-tunnusta, joka on haettu raaka SMBIOS-laiteohjelmistotaulukko. Tätä avainta käyttämällä se lataa, purkaa ja suorittaa sitten shellkoodin. On tärkeää korostaa, että tämä avaimen johtamistapa varmistaa, että kunnollista salauksen purkamista ei tapahdu, jos lataus suoritetaan toisessa tietokoneessa.

Mielenkiintoista on, että lataaja voidaan konfiguroida myös sen lipulla .data osio käyttääksesi kovakoodattua avainta shellkoodin salauksen purkamiseen konekohtaisen koodin sijaan.

Havaitsimme homoglyfihyökkäyksen, joka matkii Microsoft Corporationia VERSION TIEDOT tämän ja muiden PE-komponenttien resurssit. Tämä menetelmä käyttää erillisiä Unicode-merkkejä, jotka näyttävät visuaalisesti samanlaisilta, mutta tässä tapauksessa eivät identtisiltä alkuperäisten merkkien kanssa, erityisesti kreikkalainen iso kirjain San (U+03FA, Ϻ) ja kyrillinen pieni kirjain O (U+043E, о) Ϻicrоsоft Corpоsuhdeоn.

Rekisterin kuorikoodi

Kahdesta osasta koostuva rekisterin kuorikoodi koostuu salauksenpurkurutiinista ja salatusta rungosta. Ensin salauksen purkurutiini kiertää jokaista salatun rungon tavua vasemmalle yhden (ROL 0x01). Myöhemmin ohjaus siirretään tälle salauksesta puretulle kappaleelle. Purettu runko koostuu PE-latausohjelmasta ja PE-tiedostosta, joista jälkimmäinen on Executor, joka edustaa takaoven alkuperäistä osaa. Tämä latausohjelma vastaa siihen liittyvän PE-tiedoston jäsentämisestä ja lataamisesta.

täytäntöönpanija

Executor on Deadglyph-takaoven alkuperäinen x64-osa, joka tekee seuraavaa:

  • lataa kokoonpanonsa,
  • alustaa .NET-ajoajan,
  • lataa takaoven sulautetun .NET-osan (Orchestratorin) ja
  • toimii Orchestratorin kirjastona.

Ensinnäkin kaksi oletuskokoonpanoa upotettuna .data osa on AES-salattu. Kokoonpanot sisältävät useita parametreja, mukaan lukien salausavaimet, turva- ja kiertoasetukset sekä seuraavan komponentin sisääntulopisteen.

Ensimmäisen suorituksen aikana nämä kaksi oletuskokoonpanoa tallennetaan Windowsin rekisteriin, josta ne ladataan myöhemmissä ajoissa, mikä mahdollistaa päivitysten toteuttamisen. Jokaisen kokoonpanon rekisteripolku luodaan seuraavassa muodossa:

{HKCU|HKLM}SoftwareClassesCLSID{ }(oletus)

on luotu GUID, joka on yksilöllinen jokaiselle uhrille.

Tämän jälkeen .NET-ajoaika alustetaan, jonka jälkeen Executor RC4-purkaa Orchestratorina tunnetun takaoven .NET-osan salauksen. Orchestrator sijaitsee sisällä .rsrc toimeenpanijan osa. Konfiguraatio määrittää Orchestratorin suoritustavan sisääntulopisteeksi. Lisäksi on olemassa erillinen rakenne, joka helpottaa Orchestratorin pääsyä toteuttajan toimintoihin.

Orchestratorin käynnistämisen jälkeen Executor toimii Orchestratorin tukikirjastona. Executor sisältää monia mielenkiintoisia toimintoja; kuvailemme joitain niistä seuraavassa osiossa Orchestratorin ja lisäladattujen moduulien käytön yhteydessä.

Orchestrator

NETissä kirjoitettu Orchestrator on Deadglyph-takaoven pääkomponentti. Tämän komponentin ensisijaisena tehtävänä on muodostaa kommunikaatio C&C-palvelimen kanssa ja suorittaa komentoja, joita usein helpottaa Executorin välittäjärooli. Toisin kuin edelliset komponentit, Orchestrator on hämärtynyt ja käyttää .NET Reactoria. Sisäisesti takaovea kutsutaan nimellä agentti, joka on yleinen nimi asiakasosalle erilaisissa hyödyntämisen jälkeisissä kehyksissä.

Alustus

Orchestrator lataa ensin konfiguraationsa ja kaksi sulautettua moduulia, joista jokaisessa on omat kokoonpanonsa, resursseista. Nämä resurssit ovat tyhjetä puristettu ja AES salattu. Niihin viitataan tunnuksella, joka on SHA-1 tiivistetty resurssin nimeen. Näistä resursseista on yleiskuvaus kohdassa REF _Ref111452440 h Pöytä 1
.

Taulukko 1. Orkesterin resurssit

 

Resurssin nimi

ID (desimaali)

ID (heksadesimaaliluku)

Kuvaus

43ed9a3ad74ed7ab74c345a876b6be19039d4c8c

2570286865

0x99337711

Orkesterin kokoonpano.

3a215912708eab6f56af953d748fbfc38e3bb468

3740250113

0xDEEFB001

Verkkomoduuli.

42fb165bc9cf614996027a9fcb261d65fd513527

3740250369

0xDEEFB101

Verkkomoduulin konfigurointi.

e204cdcf96d9f94f9c19dbe385e635d00caaf49d

3735924737

0xDEADB001

Ajastinmoduuli.

abd2db754795272c21407efd5080c8a705a7d151

3735924993

0xDEADB101

Ajastinmoduulin konfigurointi.

Orchestratorin ja sulautettujen moduulien konfiguraatiot tallennetaan XML-muodossa. Esimerkki Orchestrator-kokoonpanosta on esitetty kohdassa REF _Ref111452611 h
Kuva 4
.

Deadglyph Kuva_04
Kuva 4. Orkesterin kokoonpano

Orchestrator-määritysten kuvaus näkyy kohdassa REF _Ref111452782 h Pöytä 2
.

Taulukko 2. Orkesterin konfigurointimerkinnät

avain

Kuvaus

k


AES-avain, jota käytetään pysyviin moduulikokoonpanoihin.

a


Verkkomoduulin alustusmenetelmän nimi.

b


Tuntematon verkkomoduuliin liittyvä lippu.

c


Ajastinmoduulin alustusmenetelmän nimi.

d


Lippu, joka mahdollistaa konekohtaisen AES-avaimen (järjestelmän UUID) käytön resursseille.

p


Verkkomoduulin resurssin tunnus.

t


Ajastinmoduulin resurssin tunnus.

Kun resurssikomponentit on ladattu, luodaan useita säikeitä erillisten tehtävien suorittamiseksi. Yksi näistä säikeistä vastaa ympäristötarkistuksien suorittamisesta, joka on Executorissa toteutettu toiminto. Toinen säie on omistettu säännöllisen viestinnän luomiselle C&C-palvelimen kanssa, mikä mahdollistaa komentojen noudon. Lopuksi käytetään kolmen säikeen joukkoa vastaanotettujen komentojen suorittamiseen ja sen jälkeen generoidun lähdön lähettämiseen takaisin C&C-palvelimelle.

Ympäristöntarkistussäie tarkkailee käynnissä olevia prosesseja tunnistaakseen ei-toivotut. Tämä säie toimii kahdella erillisellä prosessinimien luettelolla. Jos havaitaan ensimmäisessä luettelossa oleva prosessi, C&C-viestintä ja komentojen suoritus keskeytetään, kunnes ei-toivottua prosessia ei enää ole. Jos toisessa luettelossa on jokin prosessi, takaovi sulkeutuu välittömästi ja poistaa itsensä.

Kumpaakaan luetteloa ei määritetty analysoitavassa ilmentymässä, joten emme tiedä, mitä prosesseja tyypillisesti tarkistetaan; uskomme, että sen tarkoituksena on todennäköisesti välttää analyysityökaluja, jotka voisivat havaita epäilyttävän toiminnan ja johtaa takaoven löytämiseen.

Viestintä

Orchestrator käyttää kahta sulautettua moduulia C&C-viestintään – ajastin ja verkko. Kuten Orchestrator, nämä moduulit on hämärtynyt .NET Reactorilla. Molempien moduulien kokoonpanon toimittaa Orchestrator. Orchestratorissa on esiasetettu moduulien kokoonpano; valinnaisesti Orchestrator voi myös ladata päivitetyn kokoonpanoversion rekisteristä:

{HKCU|HKLM}SoftwareClassesCLSID{ }

Takaovessa on kiinnostava viestintään liittyvä turvatoimenpide. Jos takaovi ei pysty muodostamaan yhteyttä C&C-palvelimen kanssa ennalta määritellyn kynnyksen ylittävän ajan, joka on määritetty Executorissa, asennuksen itsepoistomekanismi laukeaa. Tämä aikaraja on määritelty tunneissa ja se oli tarkasteltavassa tapauksessa yksi tunti.

Tällä lähestymistavalla on kaksi tarkoitusta. Toisaalta se estää redundanttien verkkopyyntöjen luomisen palvelimelle, johon ei ole pääsyä. Toisaalta se vähentää myöhemmän havaitsemisen mahdollisuuksia, jos käyttäjät menettävät takaoven hallinnan.

Ajastinmoduuli

Tämä pieni moduuli suorittaa määritetyn takaisinkutsun konfiguroitavin aikavälein. Orchestrator käyttää sitä yhdessä verkkomoduulin kanssa kommunikoidakseen säännöllisesti C&C-palvelimen kanssa. Havaittavien kuvioiden luomisen estämiseksi verkkolokeissa suoritusväli on satunnaistettu konfiguraatiossa määritetyn prosenttiosuuden perusteella. Analysoidussa tapauksessa väli asetettiin viiteen minuuttiin ja satunnaisuuden vaihtelu ±20 %.

Toinen menetelmä havaittavien verkkokuvioiden välttämiseksi jaksoittaisessa viestinnässä voidaan löytää C&C-palvelimelle lähetettyjen pyyntöjen luomisesta. Tämä Executorissa toteutettu mekanismi sisältää satunnaisista tavuista koostuvan vaihtelevan pituisen täytön sisällyttämisen pyyntöihin, mikä johtaa erikokoisiin pyyntöihin.

Verkkomoduuli

Verkkomoduuli toteuttaa tiedonsiirron konfiguraatiossaan määritettyjen C&C-palvelimien kanssa. Se voi lähettää tietoja C&C-palvelimelle HTTP(S) POST -pyyntöjen avulla. Erityisesti se tarjoaa useita mekanismeja välityspalvelimen kokoonpanotietojen hankkimiseksi. Tämä ominaisuus viittaa mahdolliseen keskittymiseen ympäristöihin, joissa suoraa Internet-yhteyttä ei ole saatavilla.

Esimerkki salauksesta puretusta (ja kaunistetusta) kokoonpanosta on esitetty kohdassa REF _Ref144978805 h Kuva 5
.

Deadglyph Kuva_06
Kuva 5. Verkkomoduulin kokoonpano

Määritysmerkinnät sisältävät verkkoviestintään liittyviä tietoja – C&C URL-osoitteet, HTTP-käyttäjäagentin ja valinnaisesti välityspalvelimen määritykset.

Kun kommunikoidaan C&C-palvelimen kanssa, HTTPS:n alla käytetään mukautettua binaariprotokollaa salatulla sisällöllä.

komennot

Orchestrator vastaanottaa komentoja C&C-palvelimelta tehtävien muodossa, jotka ovat jonossa suoritettavaksi. Käsiteltäviä tehtäviä on kolmenlaisia:

  • Orkesteritehtävät,
  • Toteuttajatehtävät ja
  • Lataa tehtäviä.

Kaksi ensimmäistä tyyppiä vastaanotetaan C&C-palvelimelta ja kolmas luodaan sisäisesti komentojen ja virheiden tulosteen lataamiseksi.

Orkesteritehtävät

Orchestrator-tehtävät tarjoavat mahdollisuuden hallita verkko- ja ajastinmoduulien määrityksiä ja myös peruuttaa odottavia tehtäviä. Orchestrator-tehtävien yleiskuvaus on esitetty kohdassa REF _Ref111101783 h Pöytä 3
.

Taulukko 3. Orkesteritehtävät

Tyyppi

Kuvaus

0x80


Aseta verkko- ja ajastinmoduulien asetukset.

0x81


Hanki verkko- ja ajastinmoduulien asetukset.

0x82


Peruuta tehtävä.

0x83


Peruuta kaikki tehtävät.

Toteuttajatehtävät

Suoritintehtävät tarjoavat mahdollisuuden hallita takaovea ja suorittaa lisämoduuleja. On huomionarvoista, että perinteinen takaoven toiminnallisuus ei ole luonnostaan ​​läsnä itse binäärissä. Sen sijaan nämä toiminnot saadaan C&C-palvelimelta PE-tiedostoina tai shell-koodina. Takaoven potentiaalin koko laajuus jää tuntemattomaksi ilman näitä lisämoduuleja, jotka tehokkaasti vapauttavat sen todelliset ominaisuudet. Moduulin tehtävien yhteenveto näkyy kohdassa REF _Ref117677179 h Pöytä 4
, joka sisältää tietoja muutamista tunnistetuista moduuleista. Samalla lailla, REF _Ref117677188 h Pöytä 5
tarjoaa yleiskatsauksen toimeenpanijaan liittyvistä johtamistehtävistä.

Taulukko 4. Suorittajan tehtävät – moduulit

Tyyppi

Kuvaus

0x??–0x63


tuntematon

0x64


Tiedoston lukija

0x65


tuntematon

0x66


tuntematon

0x67


tuntematon

0x68


tuntematon

0x69


Prosessin luoja

0x6A


tuntematon

0x6B


tuntematon

0x6C


Tietojen kerääjä

0x6D


tuntematon

0x6E


tuntematon

Taulukko 5. Toimeenpanotehtävät – johtaminen

Tyyppi

Kuvaus

0x6F-0x76

Ei toteutettu

0x77

Aseta suorittajan asetukset

0x78

Hanki Executor-asetukset

0x79-0x7C

Ei toteutettu

0x7D

Päivitykset

0x7E

Lopettaa

0x7F

Uninstall

Suoritinkokoonpanon määrittävä komento voi muuttaa:

  • ei-toivottujen prosessien luettelot,
  • aikakynnys C&C-viestinnän epäonnistumiselle ja
  • lisämoduulien suorittamisen aikaraja.
Moduulit

Onnistuimme saamaan C&C-palvelimelta kolme ainutlaatuista moduulia, joista jokainen vastaa eri Executor-tehtävätyyppiä, kuten kuvassa näkyy. REF _Ref117677179 h Pöytä 4 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003100310037003600370037003100370039000000
. Saatavilla olevien tietojen perusteella arvioimme, että moduulia on yhteensä yhdeksästä neljätoista. Koska moduulit ovat itse asiassa takaoven komentoja, niillä on yksi perustoiminto suoritettavana ja sitten valinnaisesti palautettava tulos. Saamamme moduulit ovat DLL-tiedostoja, joissa on yksi nimeämätön vienti (järjestys 1), jossa ne ratkaisevat tarvittavat API-toiminnot ja kutsuvat pääfunktiota.

Suoritettuna moduuleissa on API-resoluutiotoiminto, joka voi ratkaista Windows API:t ja mukautetut Executor API:t. Windows-sovellusliittymiin viitataan DWORD-tiivisteellä, joka lasketaan API:n ja sen DLL:n nimestä. Pienet hash-arvot (<41) käsitellään erityisesti Executor API -toiminnon mukaisesti. Executor API sisältää yhteensä 39 toimintoa, jotka ovat moduulien käytettävissä. Nämä toiminnot koskevat erilaisia ​​toimintoja, mukaan lukien:

  • tiedostotoiminnot,
  • salaus ja hajautus,
  • puristus,
  • PE-lataus,
  • pääsy Token Impersonation ja
  • apuohjelma.

Tämän osan loppuosassa kuvailemme saamiamme moduuleja.

Prosessin luoja

Moduulit 0x69 suorittaa määritetyn komentorivin uutena prosessina ja toimittaa tuloksen takaisin Orchestratoriin. Prosessi voidaan luoda eri käyttäjälle ja sen suoritusaikaa voidaan rajoittaa. Erityisesti epätavallinen Työn API käytetään tämän moduulin toiminnassa.

Tämä moduuli toimitettiin komentorivillä cmd.exe /c tehtävälista /v.

Oletetaan, että se toimii automaattisesti idle-komentona, kun operaattorit odottavat jotain mielenkiintoista tapahtuvan vaarantuneelle tietokoneelle.

Tietojen kerääjä

Moduulit 0x6C kerää laajaa tietoa tietokoneesta WMI-kyselyillä ja välittää ne takaisin Orchestratorille. Tietoja kerätään seuraavista asioista:

  • käyttöjärjestelmä,
  • Verkkosovittimet,
  • asennettu ohjelmisto,
  • asemat,
  • palvelut,
  • kuljettajat,
  • prosessit,
  • käyttäjille,
  • ympäristömuuttujat ja
  • tietoturvaohjelmisto.
Tiedoston lukija

Moduulit 0x64 lukee määritetyn tiedoston ja välittää sisällön takaisin Orchestratoriin. Vaihtoehtoisesti se voi poistaa tiedoston lukemisen jälkeen.

Näimme, että tätä moduulia käytettiin uhrin Outlook-datatiedoston hakemiseen

c: Käyttäjät AppDataLocalMicrosoftOutlookoutlook.ost.

Ketju shellcode-latausohjelmalla

Tutkiessamme Deadglyphiä havaitsimme epäilyttävän CPL-tiedoston, joka oli allekirjoitettu vanhentuneella varmenteella ja ilman aikaleimalla varustettua vastaallekirjoitusta ja joka oli ladattu VirusTotaliin Qatarista. Tarkemman tarkastelun jälkeen kävi selväksi, että tämä CPL-tiedosto toimi monivaiheisena shellcode-lataajana, jakaen tiettyjä koodin yhtäläisyyksiä Deadglyphin kanssa. Latausketju on kuvattu kuvassa REF _Ref143693067 h Kuva 6
.

Deadglyph Kuva_03
Kuva 6. Shellcode downloader -latausketju

Alkuperäisessä muodossaan, joka toimii ensimmäisenä vaiheena, tämä tiedosto odottaa olevan a . Cpl laajennus (Ohjauspaneelitiedosto) ja se on tarkoitettu suoritettavaksi kaksoisnapsauttamalla. Tällä tavalla suoritettaessa upotettu shellkoodi käy läpi XOR-salauksen ja käynnissä olevat prosessit tarkistetaan sopivan isäntäprosessin tunnistamiseksi myöhempää injektiota varten.

If avp.exe (Kaspersky-päätepisteen suojausprosessi) on käynnissä, %windir%system32UserAccountBroker.exe käytetään. Muussa tapauksessa käytetään oletusselainta. Sitten se luo isäntäprosessin keskeytetyssä tilassa, syöttää shellkoodin kaappaamalla sen pääsäikeen ja jatkaa säiettä.

Toinen vaihe, shellcode, koostuu kahdesta osasta. Shellcoden ensimmäinen osa ratkaisee API-tiivisteet käyttämällä samaa ainutlaatuista tiivistelaskentatekniikkaa, jota käytetään Deadglyphissa, ja purkaa merkkijonojen salauksen prosessinimien kanssa. Se aloittaa itsestään poistuvan säikeen, jonka tehtävänä on korvata ja myöhemmin poistaa ensimmäisen vaiheen tiedosto. Tämän jälkeen shellcode jatkaa parhaillaan aktiivisten prosessien tarkastamista turvaratkaisun kohteena.

Jos jokin määritetyistä prosesseista havaitaan, shellkoodi luo nukkuvan säikeen, jolla on alhaisin prioriteetti (THREAD_PRIORITY_IDLE) ja antaa sen pysyä aktiivisena 60 sekunnin ajan ennen toiminnan lopettamista. Tämä aikaväli toteutetaan todennäköisesti varotoimenpiteenä tiettyjen tietoturvaratkaisujen käyttämien tunnistusmekanismien välttämiseksi. Lopuksi shellkoodi etenee käynnistämään koodinsa toisen osan.

Shellkoodin toinen osa lataa upotetun PE-tiedoston vaiheella kolme ja kutsuu sen vientiä järjestysnumerolla 1.

Kolmas vaihe, DLL, toimii .NET-lataajana ja sisältää hyötykuorman .rsrc osiossa.

Hyötykuorman lataamiseksi .NET-ajoaika alustetaan. .NET-alustuksen aikana suoritetaan kaksi kiehtovaa tekniikkaa, joiden tarkoituksena on ilmeisesti kiertää Windows Antimalware Scan Interface (AMSI) -tarkistus:

  • .NET-lataaja kytkee tilapäisesti GetModuleHandleW tuonti ladatussa clr.dll, kun soitat ICorRuntimeHost::Start. Koukku peukaloi paluuarvon kun GetModuleHandleW kutsutaan kanssa NULL. Se palauttaa osoittimen vale-PE:hen, jossa ei ole osioita.
  • Se korjaa sitten hienovaraisesti AmsiInitialize tuoda nimimerkkijono .rdata osa ladatusta clr.dll että amsiialustaa.

Neljäs vaihe on .NET-kokoonpano, joka on hämärtynyt ConfuserExillä, joka toimii kuorikoodin latausohjelmana. Ensinnäkin se XOR-purkaa konfiguraationsa XML-muodossa resursseistaan. Puretun kokoonpanon kaunistettu versio esitetään REF _Ref143695453 h Kuva 7
. Konfigurointimerkinnät sisältävät verkkoviestintään ja estolistalla oleviin prosesseihin liittyviä tietoja.

Deadglyph Kuva_05
Kuva 7. Shellcode-latausohjelman kokoonpano

Ennen kuin jatkat, se tarkistaa käynnissä olevat prosessit kokoonpanon estoluettelossa olevien prosessien luetteloon verrattuna. Jos osuma havaitaan, suoritus keskeytyy. On tärkeää huomata, että analysoitavassa tapauksessa tätä estolistaa ei määritetty.

Seuraavaksi se lähettää HTTP GET -pyynnön C&C-palvelimelle noutaakseen shell-koodin kokoonpanossa määritettyjen parametrien avulla (URL, User-Agent ja valinnaisesti välityspalvelin). Valitettavasti tutkimuksemme aikana emme pystyneet hankkimaan shellkoodia C&C-palvelimelta. Siitä huolimatta oletamme, että haettava sisältö voisi mahdollisesti toimia Deadglyphin asennusohjelmana.

Tämän jälkeen haettu shell-koodi suoritetaan äskettäin luodussa säikeessä. Odotettuaan, kunnes shellcode-säie suorittaa suorituksen loppuun, shellcode-latausohjelma poistaa kaikki hakemistossa olevat tiedostot %WINDIR%ServiceProfilesLocalServiceAppDataLocalTempTfsStoreTfs_DAV.

Lopuksi se yrittää poistaa itsensä 20 sekunnin kuluttua käyttämällä seuraavaa komentoa, ennen kuin lopettaa toimintansa ja poistuu:

cmd.exe-valinta /CY /N /DY /T 20 & Del /f /q

Tämä itsensä poistaminen ei ole järkevää tässä ketjussa. Tämä johtuu siitä, että kuorikoodin latausohjelma suoritetaan selaimessa tai järjestelmäprosessissa sen jälkeen, kun se on lisätty, sen sijaan että se toimisi itsenäisenä suoritettavana tiedostona. Lisäksi alkuperäinen tiedosto oli jo poistettu toisessa vaiheessa. Tämä havainto viittaa siihen, että shellcode-lataaja ei ehkä ole tämän ketjun yksinomainen hyötykuorma ja sitä voidaan käyttää myös erikseen muissa toimissa.

Yhteenveto

Olemme löytäneet ja analysoineet hienostuneen takaoven, jota käyttää Stealth Falcon -ryhmä, jolle olemme antaneet nimeksi Deadglyph. Sillä on epätavallinen arkkitehtuuri, ja sen takaoven ominaisuudet tarjoaa sen C&C lisämoduulien muodossa. Onnistuimme hankkimaan kolme näistä moduuleista, paljastaen murto-osan Deadglyphin kaikista ominaisuuksista.

Erityisesti Deadglyph tarjoaa useita vastahavaitsemismekanismeja, mukaan lukien järjestelmäprosessien jatkuva seuranta ja satunnaistettujen verkkomallien toteuttaminen. Lisäksi takaovi pystyy poistamaan itsensä sen havaitsemisen todennäköisyyden minimoimiseksi tietyissä tapauksissa.

Lisäksi tutkimuksemme johti meidät löytämään houkuttelevan monivaiheisen shellcode-latausketjun VirusTotalissa. Epäilemme, että tätä latausketjua käytetään todennäköisesti Deadglyphin asennusprosessissa.

Jos sinulla on kysyttävää WeLiveSecurityssä julkaistusta tutkimuksestamme, ota meihin yhteyttä osoitteessa uhkaintel@eset.com.
ESET Research tarjoaa yksityisiä APT-tietoraportteja ja tietosyötteitä. Jos sinulla on kysyttävää tästä palvelusta, käy osoitteessa ESET Threat Intelligence sivu.

IoC: t

Asiakirjat

SHA-1

Tiedostonimi

Detection

Kuvaus

C40F1F46D230A85F702DAA38CFA18D60481EA6C2

pbrtl.dll

Win64/Deadglyph.A

Rekisterin Shellcode Loader.

740D308565E215EB9B235CC5B720142428F540DB

N / A

Win64/Deadglyph.A

Deadglyph Backdoor – toteuttaja.

1805568D8362A379AF09FD70D3406C6B654F189F

N / A

MSIL/Deadglyph.A

Deadglyph Backdoor – Orchestrator.

9CB373B2643C2B7F93862D2682A0D2150C7AEC7E

N / A

MSIL/Deadglyph.A

Orchestrator-verkkomoduuli.

F47CB40F6C2B303308D9D705F8CAD707B9C39FA5

N / A

MSIL/Deadglyph.A

Orkesterin ajastinmoduuli.

3D4D9C9F2A5ACEFF9E45538F5EBE723ACAF83E32

N / A

Win64/Deadglyph.A.gen

Prosessin luontimoduuli.

3D2ACCEA98DBDF95F0543B7C1E8A055020E74960

N / A

Win64/Deadglyph.A

Tiedostonlukijamoduuli.

4E3018E4FD27587BD1C566930AE24442769D16F0

N / A

Win64/Deadglyph.A

Tiedonkeruumoduuli.

7F728D490ED6EA64A7644049914A7F2A0E563969

N / A

Win64/Injector.MD

Shellcode-latausketjun ensimmäinen vaihe.

Sertifikaatit

Sarjanumero

00F0FB1390F5340CD2572451D95DB1D92D

Peukalo

DB3614DAF58D041F96A5B916281EA0DC97AA0C29

Aihe CN

RHM RAJOITETTU

Aihe O

RHM RAJOITETTU

Aihe L

St. Albans

Aihe S

Hertfordshire

Aihe C

GB

Sähköposti

rhm@rhmlimited[.]co.uk

Voimassa

2021-03-16 00:00:00

Voimassa

2022-03-16 23:59:59

C&C-palvelimet

IP

Domain

Ensimmäinen nähty

Kommentti

185.25.50[.]60

chessandlinkss[.]com

2021-08-25

Deadglyph C&C -palvelin.

135.125.78[.]187

easymathpath[.]com

2021-09-11

Deadglyph C&C -palvelin.

45.14.227[.]55

joinushealth[.]com

2022-05-29

Shellcode-latausohjelma C&C-palvelin.

MITER ATT & CK -tekniikat

Tämä pöytä on rakennettu käyttämällä version 13 MITER ATT & CK -kehyksen puitteissa.

Taktiikka

ID

Nimi

Kuvaus

Resurssien kehittäminen

T1583.001

Hanki infrastruktuuri: Domains

Stealth Falcon on rekisteröinyt verkkotunnuksia C&C-palvelimille ja hankkia koodin allekirjoitusvarmenteen.

T1583.003

Hanki infrastruktuuri: Virtual Private Server

Stealth Falcon on käyttänyt VPS-palveluntarjoajia C&C-palvelimille.

T1587.001

Kehitysominaisuudet: Haittaohjelmat

Stealth Falcon on kehittänyt mukautettuja haittaohjelmia, mukaan lukien mukautetut latauslaitteet ja Deadglyph-takaoven.

T1588.003

Hanki ominaisuudet: koodin allekirjoitusvarmenteita

Stealth Falcon on saanut koodin allekirjoitussertifikaatin.

Teloitus

T1047

Windows Management Instrumentation

Deadglyph käyttää WMI:tä latausketjunsa suorittamiseen.

T1059.003

Komento- ja komentosarjatulkki: Windowsin komentotulkki

Shellcode downloader käyttää cmd.exe poistaakseen itsensä.

T1106

Alkuperäinen sovellusliittymä

Deadglyph-moduuli käyttää CreateProcessW ja CreateProcessAsUserW API-toiminnot suorittamista varten.

T1204.002

Käyttäjän suoritus: Haitallinen tiedosto

Shellcode-latausketju edellyttää, että käyttäjä kaksoisnapsauttaa ja suorittaa sen.

Sitkeys

T1546.003

Tapahtuman käynnistämä suoritus: Windows Management Instrumentation -tapahtumatilaus

Alkuperäinen Deadglyph-lataaja säilytetään WMI-tapahtumatilauksen avulla.

Puolustuksen kiertäminen

T1027

Hämmentyneet tiedostot tai tiedot

Deadglyph-komponentit on salattu. Deadglyph Orchestrator ja sulautetut moduulit hämärtyvät .NET Reactorilla.

Shellcode-latausohjelma on hämärtynyt ConfuserExillä.

T1070.004

Ilmaisimen poistaminen: Tiedoston poistaminen

Deadglyph voi poistaa itsensä.

Shellcode-latausketju poistaa itsensä ja poistaa tiedostoja WebDAV-välimuistista.

T1112

Muokkaa rekisteriä

Deadglyph tallentaa kokoonpanonsa ja salatun hyötykuorman rekisteriin.

T1134

Access Token Manipulation

Deadglyph voi esiintyä toisena käyttäjänä.

T1140

Poista tiedostojen tai tietojen salaus/dekoodaus

Deadglyph purkaa salatut merkkijonot.

Shellcode-latausketju purkaa komponenttinsa ja kokoonpanonsa salauksen.

T1218.011

Järjestelmän binaarivälityspalvelimen suoritus: Rundll32

Alkuperäinen Deadglyph-lataaja suoritetaan käyttämällä rundll32.exe.

T1480.001

Toteutussuojakaiteet: Ympäristöavaimet

Deadglyph salataan konekohtaisella avaimella, joka on johdettu järjestelmän UUID:stä.

T1562.001

Heikentää suojauksia: poista työkalut käytöstä tai muokkaa niitä

Shellcode-latausohjelma välttää AMSI-skannauksen korjaamalla clr.dll muistissa .

T1620

Heijastavan koodin lataus

Deadglyph lataa moduulinsa heijastavasti mukautetun PE-lataimen avulla.

Löytö

T1007

Järjestelmäpalvelun etsintä

A Deadglyph-moduuli löytää palvelut WMI-kyselyn avulla SELECT * FROM Win32_Service.

T1012

Kysely rekisteristä

Shellcode-latausketju kysyy oletusselaimen rekisteristä.

T1016

Järjestelmän verkkoasetusten etsiminen

Deadglyph-moduuli löytää verkkosovittimet WMI-kyselyiden avulla SELECT * FROM Win32_NetworkAdapter ja SELECT * FROM Win32_NetworkAdapterConfiguration jossa InterfaceIndex=%d.

T1033

Järjestelmän omistajan/käyttäjän haku

Deadglyph-moduuli löytää käyttäjät WMI-kyselyn avulla SELECT * FROM Win32_UserAccount.

T1057

Prosessin etsintä

Deadglyph-moduuli löytää prosesseja WMI-kyselyn avulla SELECT * FROM Win32_Process.

T1082

Järjestelmätietojen etsiminen

Deadglyph-moduuli löytää WMI-kyselyiden avulla järjestelmätiedot, kuten käyttöjärjestelmän version, asemat, ympäristömuuttujat ja ajurit.

T1518

Ohjelmistojen löytäminen

Deadglyph-moduuli löytää asennetun ohjelmiston WMI-kyselyn avulla SELECT * FROM Win32_Product.

T1518.001

Ohjelmiston etsintä: Tietoturvaohjelmiston etsintä

Deadglyph-moduuli löytää tietoturvaohjelmiston WMI-kyselyiden avulla SELECT * FROM AntiVirusProduct, VALITSE * AntiSpywareProductista ja SELECT * FROM FirewallProduct.

Shellcode-latausketju tarkistaa käynnissä olevat prosessit tietoturvaratkaisun löytämiseksi.

Kokoelma

T1005

Paikallisen järjestelmän tiedot

Deadglyphissa on moduuli tiedostojen lukemiseen.

Command and Control

T1071.001

Sovelluskerrosprotokolla: Web -protokollat

Deadglyph ja shellcode downloader kommunikoivat C&C-palvelimen kanssa HTTP-protokollan kautta.

T1090

Valtakirja

Deadglyph ja shellcode downloader voivat käyttää HTTP-välityspalvelinta C&C-viestintään.

T1573.001

Salattu kanava: Symmetrinen kryptografia

Deadglyph käyttää AES:ää C&C-viestinnän salaamiseen.

exfiltration

T1041

Suodatus C2 -kanavan yli

Deadglyph käyttää C&C-kanavaa suodattamiseen.

Aikaleima:

Lisää aiheesta Me elämme turvallisuutta