Tämä enimmäkseen Aasiaan keskittyvä uusi kybervakoiluryhmä käyttää dokumentoimattomia työkaluja, mukaan lukien PowerShell-hyötykuormien steganografinen purkaminen PNG-tiedostoista.
ESET-tutkijat löysivät äskettäin kohdennettuja hyökkäyksiä, joissa käytettiin dokumentoimattomia työkaluja useita korkean profiilin yrityksiä ja paikallishallintoa vastaan enimmäkseen Aasiassa. Nämä hyökkäykset suoritti aiemmin tuntematon vakoiluryhmä, jonka nimi on Worok ja joka on ollut aktiivinen ainakin vuodesta 2020 lähtien. Worokin työkalusarjaan kuuluu C++-lataaja CLRLoad, PowerShell-takaovi PowHeartBeat ja C#-latausohjelma PNGLoad, joka käyttää steganografiaa piilotetun haitallisen sisällön poimimiseen. hyötykuormat PNG-tiedostoista.
Kuka on Worok?
ProxyShellin aikana (CVE-2021-34523) haavoittuvuuden paljastaminen vuoden 2021 alussa, havaitsimme eri APT-ryhmien toimintaa. Yhdellä oli yhteisiä ominaisuuksia TA428:
- Toiminta-ajat
- Kohdistetut vertikaalit
- ShadowPadin käyttö
Muu työkalusarja on hyvin erilainen: esimerkiksi TA428 osallistui Kompromissi työpöydällä Vuonna 2020. Katsomme, että linkit eivät ole tarpeeksi vahvoja, jotta Worok olisi sama ryhmä kuin TA428, mutta näillä kahdella ryhmällä saattaa olla yhteisiä työkaluja ja yhteisiä kiinnostuksen kohteita. Päätimme luoda klusterin ja annoimme sille nimeksi Worok. Nimi valittiin mutexin jälkeen ryhmän käyttämässä latauslaitteessa. Lisätoiminta samojen työkalujen muunnelmilla yhdistettiin sitten tähän ryhmään. ESETin telemetrian mukaan Worok on ollut aktiivinen vuoden 2020 lopusta lähtien ja on edelleen aktiivinen tätä kirjoitettaessa.
Vuoden 2020 lopulla Worok kohdistui useiden maiden hallituksille ja yrityksille, erityisesti:
- Tietoliikenneyritys Itä-Aasiassa
- Pankki Keski-Aasiassa
- Meriteollisuusyritys Kaakkois-Aasiassa
- Hallitusyksikkö Lähi-idässä
- Yksityinen yritys Etelä-Afrikassa
Havaittavissa toiminnassa oli merkittävä katkos 2021-05 - 2022-01, mutta Worok-aktiviteetti palasi vuonna 2022-02 ja kohdistui:
- Energiayhtiö Keski-Aasiassa
- Julkisen sektorin toimija Kaakkois-Aasiassa
Kuvassa 1 on visuaalinen lämpökartta kohdealueista ja vertikaaleista.
Ottaen huomioon kohteiden profiilit ja työkalut, joita olemme nähneet käyttäneen näitä uhreja vastaan, uskomme, että Worokin päätavoitteena on varastaa tietoa.
Tekninen analyysi
Vaikka suurin osa ensimmäisistä käyttökerroista on tuntemattomia, joissakin tapauksissa vuosien 2021 ja 2022 aikana olemme nähneet ProxyShell-haavoittuvuuksia vastaan käytettyjä hyökkäyksiä. Tällaisissa tapauksissa verkkokuoret on tyypillisesti ladattu näiden haavoittuvuuksien hyödyntämisen jälkeen, jotta uhrin verkko pysyy. Sitten operaattorit käyttivät erilaisia implantteja saadakseen lisää ominaisuuksia.
Kun käyttöoikeus oli saatu, operaattorit käyttivät useita, julkisesti saatavilla olevia tiedustelutyökaluja, mukaan lukien Mimikatz, Kastemato, ReGeorgja NBTscan, ja sitten ottivat käyttöön mukautetut implantit: ensimmäisen vaiheen latauslaitteen, jota seurasi toisen vaiheen .NET-lataaja (PNGLoad). Valitettavasti emme ole voineet noutaa yhtään lopullista hyötykuormaa. Vuonna 2021 ensimmäisen vaiheen latauslaite oli CLR-kokoonpano (CLRLoad), kun taas vuonna 2022 se on useimmissa tapauksissa korvattu täysin varustetulla PowerShell-takaovella (PowHeartBeat) – molemmat suoritusketjut on kuvattu kuvassa 2. Nämä kolme työkalut kuvataan yksityiskohtaisesti seuraavissa alaosissa.
CLRLoad: CLR-kokoonpanolataaja
CLLRoad on yleinen Windows PE, jonka olemme nähneet sekä 32- että 64-bittisissä versioissa. Se on C++-kielellä kirjoitettu latausohjelma, joka lataa seuraavan vaiheen (PNGLoad), jonka on oltava a Common Language Runtime (CLR) -kokoonpano DLL-tiedosto. Tämä koodi ladataan tiedostosta, joka sijaitsee levyllä laillisessa hakemistossa, oletettavasti uhrien tai onnettomuuksien vastaajien harhaanjohtamiseksi luulemaan, että se on laillinen ohjelmisto.
Jotkut CLLRoad-näytteet alkavat dekoodaamalla tiedoston koko polun, jonka sisällön ne lataavat seuraavana vaiheena. Nämä tiedostopolut on koodattu yksitavuisella XOR:lla, jossa jokaisessa näytteessä on eri avain. Dekoodattu tai selkeä teksti, nämä tiedostopolut ovat absoluuttisia, ja seuraavat ovat ne, joita olemme kohdanneet:
- C:OhjelmatiedostotVMwareVMware ToolsVMware VGAuthxsec_1_5.dll
- C:Program FilesUltraViewermsvbvm80.dll
- C:Program FilesInternet ExplorerJsprofile.dll
- C:Program FilesWinRarRarExtMgt.dll
- C:Ohjelmatiedostot (x86)Foxit SoftwareFoxit Readerlucenelib.dll
Seuraavaksi luodaan mutex ja olemme nähneet jokaisessa näytteessä eri nimen. Lataaja tarkistaa tämän mutexin; jos se löytyy, se poistuu, koska latausohjelma on jo käynnissä. Yhdessä näytteessä mutex Wo0r0KGWhYGO kohtasi, mikä antoi ryhmälle nimen Worok.
CLRLoad lataa sitten CLR-kokoonpanon mahdollisesti dekoodatusta tiedostopolusta. Hallitsemattomana koodina CLLRoad saavuttaa tämän kautta CorBindToRuntimeEx Windows API -kutsut 32-bittisissä versioissa tai CLRCreateInstance kutsuja 64-bittisissä versioissa.
PowHeartBeat: PowerShell-takaovi
PowHeartBeat on PowerShellillä kirjoitettu monipuolinen takaovi, joka on hämärtynyt käyttämällä erilaisia tekniikoita, kuten pakkausta, koodausta ja salausta. ESETin telemetriaan perustuen uskomme, että PowHeartBeat korvasi CLLRoadin uudemmissa Worok-kampanjoissa työkaluna, jota käytettiin PNGLoadin käynnistämiseen.
Takaovikoodin ensimmäinen kerros koostuu useista base64-koodatun PowerShell-koodin osista. Kun hyötykuorma on rekonstruoitu, se suoritetaan kautta IEX. Kun dekoodaus on purettu, suoritetaan toinen kerros hämärtynyttä koodia, joka näkyy kuvassa 3.
Takaoven ensimmäinen base64 toinen kerros purkaa koodinsa seuraavan kerroksen, jonka salaus puretaan Kolminkertainen DES (CBC-tila). Salauksen purkamisen jälkeen tämä koodi puretaan käyttämällä gzip algoritmi, mikä antaa PowerShell-koodin kolmannen kerroksen, joka on varsinainen takaovi. Se on jaettu kahteen pääosaan: konfigurointi ja takaoven komentojen käsittely.
Takaovikoodin pääkerros on myös kirjoitettu PowerShellissä ja se käyttää HTTP:tä tai ICMP:tä viestiäkseen C&C-palvelimen kanssa. Se toimii kuvan 4 mukaisesti.
Konfigurointi
Määritys sisältää useita kenttiä, mukaan lukien versionumeron, valinnaisen välityspalvelimen määritykset ja C&C-osoitteen. Taulukko 1 kuvaa konfigurointikenttien merkitykset eri versioissa, joita olemme havainneet.
Taulukko 1. Konfigurointikenttien merkitykset
Kenttä nimi | Kuvaus |
---|---|
nouse / ikuyrtydyfg (muut näytteet) |
Käyttämätön. |
Asiakastunnus | Asiakastunnus, jota käytetään seuraaviin tarkoituksiin: · Arvona rakennettaessa Evästeen otsikko C&C-viestintään. · Salausartefaktina lähetettyjen tietojen salaukseen. |
Versio | PowHeartBeatin versionumero. |
ExecTimes | Sallittujen suoritusyritysten määrä, kun a RunCmd (komento käynnissä) -komento. |
Käyttäjä agentti | C&C-viestintään käytetty käyttäjäagentti. |
Lähettäjä | Lähettäjä otsikkoa käytetään C&C-viestintään. |
Hyväksy koodaus | Käyttämätön. |
CookieClientId CookieTaskId CookieTerminalId |
Rakentamiseen käytetyt arvot Cookie C&C-viestinnän otsikko. |
UrlHttps | C&C-viestintään käytettävä protokolla. |
UrlDomain IP-osoite Verkkotunnukset |
URL-osoite, verkkotunnus tai IP-osoite, jota käytetään C&C-palvelimena. Jos Verkkotunnukset ei ole tyhjä, se valitaan sen sijaan IP-osoite. Muissa tapauksissa IP-osoite on otettu. |
UrlSendHeartBeat | URL-polku, jota käytetään, kun takaovi kysyy C&C-palvelimelta komentoja. |
UrlSendResult | URL-polku, jota käytetään, kun takaovi lähettää komennon tulokset takaisin C&C-palvelimelle. |
GetUrl | Täydellinen URL-osoite, jota PowHeartBeat käyttää komentojen pyytämiseen C&C-palvelimelta. Se on yllä olevien URL-osien ketjutus. |
PutUrl | Sama kuin GetUrl mutta käytetään lähettämään komennon tulokset takaisin C&C-palvelimelle. |
nykyinen polku | Käyttämätön. |
ProxyEnableFlag | Lippu, joka ilmaisee, onko takaoven käytettävä välityspalvelinta vai ei kommunikoidakseen C&C-palvelimen kanssa. |
Välityspalvelin | Käytettävän välityspalvelimen osoite, jos ProxyEnableFlag asetetaan $totta. |
Aikaväli | Aika sekunteina, jonka komentosarja nukkuu GET-pyyntöjen välillä. |
BasicConfigPath | Polku valinnaiseen määritystiedostoon, joka sisältää Käyttöaste, Seisonta-aika, DefaultIntervalja Verkkotunnukset. Nämä arvot ohitetaan, jos tiedosto on olemassa. |
Käyttöaste | Kellonaika, josta alkaen takaovi alkaa toimia, eli se alkaa tehdä GET-pyyntöjä C&C-palvelimelle. |
Seisonta-aika | Kellonaika, johon asti takaovi voi toimia, eli aika, jolloin se lopettaa pyyntöjen tekemisen C&C-palvelimelle. |
DomainIndex | Nykyisen verkkotunnuksen hakemisto, jota käytetään viestinnässä C&C-palvelimen kanssa. Jos pyyntö palauttaa virhesanoman, joka poikkeaa 304 ("Ei muutettu"), DomainIndex on lisääntynyt. |
Salainen avain | Avain, jota käytetään kokoonpanon salauksen purkamiseen/salaukseen. Kokoonpano on salattu monitavuisella XOR:lla. |
IfLog | Käyttämätön. |
IfLogFilePath | Lippu, joka ilmaisee, onko kirjaus käytössä. |
logpath | Lokitiedoston polku. |
Välityspalvelintiedosto | Valinnaisen välityspalvelimen määrityksen tiedostopolku. Jos se on tyhjä tai sitä ei löydy tiedostojärjestelmästä, takaovi hakee käyttäjän välityspalvelinasetukset rekisteriarvosta HKCUSoftwareMicrosoftWindows CurrentVersionInternet SettingsProxyServer . |
IfConfig | Lippu, joka ilmaisee, käytetäänkö asetustiedostoa. |
Kuvassa 5 on esimerkki PowHeartBeat-näytteestä poimitusta kokoonpanosta (SHA-1: 757ABA12D04FD1167528FDD107A441D11CD8C427).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
$Script:nouse = 100; if(Test-Path $MyInvocation.MyCommand.Path){Remove-item $MyInvocation.MyCommand.Path -Force;} $Script:ClientId = “83”; $Script:Version = “2.1.3.0003”; $Script:ExecTimes = 10; $Script:UserAgent = “Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3487.100 Safari/537.36”; $Script:Referer = “www.adobe.com”; $Script:AcceptEncoding = “text/html,app1ication/xhtml+xml,app1ication/xml;q=0.9,*/*;q=0.8”; $Script:CookieClientId = “s_ecid”; $Script:CookieTaskId = “aam_uuid”; $Script:CookieTerminalId = “AAMC_adobe_0”; $Script:UrlHttps = “http://”; $Script:UrlDomain= ” 118.193.78[.]22:443″; $Script:UrlSendHeartBeat = “/latest/AdobeMessagingClient.js”; $Script:UrlSendResult = “/content/dam/offers-homepage/homepage.jpg”; $Script:GetUrl = $Script:UrlHttps + $Script:UrlDomain + $Script:UrlSendHeartBeat; $Script:PutUrl = $Script:UrlHttps + $Script:UrlDomain + $Script:UrlSendResult; $Script:currentPath = Split-Path -Parent $MyInvocation.MyCommand.Definition; $Script:ProxyEnableFlag = $false; $Script:Proxymsg; $Script:Interval = 10 ; $Script:BasicConfigPath = “C:ProgramDataunins.dat”; $Script:UpTime = 0; $Script:DownTime = 24; $Script:Domains; $Script:DomainIndex; $Script:SecretKey = “###ConfigKey###”; #$Script:IfLog = $true; $Script:IfLogFilePath = “C:ProgramDatatpncp.dat”; $Script:logpath = “C:ProgramDataunins000.dat”; $Script:ProxyFile = “C:ProgramDatahwrenalm.dat”; $Script:IfConfig = $false; |
Kuva 5. Konfigurointiesimerkki
Tiedonsalaus
PowHeartBeat salaa lokit ja lisäasetustiedostojen sisällön.
Lokitiedoston sisältö salataan monitavuisella XOR:lla näytteessä selkeällä tekstillä määritetyllä avaimella. Mielenkiintoista, Asiakastunnus käytetään suolana avaintaulukon indeksille. Avain on 256-tavuinen taulukko, joka oli identtinen jokaisessa kohtaamassamme näytteessä. Lisäkonfiguraatiotiedoston sisältö salataan monitavuisella XOR:lla arvolla from Salainen avain sen avaimena.
C&C:n viestintä
PowHeartBeat käytti HTTP:tä C&C-viestintään versioon 2.4 asti ja siirtyi sitten ICMP:hen. Kummassakaan tapauksessa viestintää ei ole salattu.
HTTP
Äärettömässä silmukassa takaovi lähettää GET-pyynnön C&C-palvelimelle ja pyytää antamaa komentoa. Salatun vastauksen salauksen purkaa takaovi, joka käsittelee komennon ja kirjoittaa komennon ulostulon tiedostoon, jonka sisältö lähetetään sitten C&C-palvelimelle POST-pyynnön kautta.
GET-pyyntöjen muoto on seuraava:
GET <UrlSendHeartBeat> HTTP/1.1 User-Agent: <UserAgent> Referer: <Referer> Host: <Domain> Cookie: <CookieClientId>=<ClientId> Connection: close |
Huomaa, että pyyntö on muodostettu käyttämällä samannimisiä määrityskenttiä.
C&C-palvelimen vastauksessa sisällön kolmas tavu on komentotunniste, joka ilmaisee takaoven käsittelemän komennon. Kutsumme sitä komentotunnus. Vastauksen jäljellä oleva sisältö välitetään argumenttina käsiteltävälle komennolle. Tämä sisältö on salattu kuvassa 6 esitetyllä algoritmilla, tehtävätunnus on nimetyn evästeen arvo CookieTaskId:n arvo määrityksestä.
1 2 3 4 5 6 7 8 9 10 |
o[int] $pos = $taskId % 256; for ($i = 0; $i -lt $tmpBytes.Value.Length; $i++) { $pos = $pos + $clientId; if ($pos -ge 256) { $pos = $pos % 256; } $tmpBytes.Value[$i] = [byte]($tmpBytes.Value[$i] -bxor $hexEnc[$pos]); } |
Kuva 6. Pyytää sisältötietojen salausalgoritmia
C&C-palvelimen vastaus sisältää myös toisen evästeen, jonka nimen määrittää takaoven CookieTerminalId kokoonpanomuuttuja. Tämän evästeen arvo toistetaan takaovesta tulevassa POST-pyynnössä, eikä se saa olla tyhjä. Suoritettuaan backdoor-komennon PowHeartBeat lähettää tuloksen POST-pyynnönä C&C-palvelimelle. Tulos lähetetään tiedostona, jonka nimi on .png.
ICMP
PowHeartBeatin versiosta 2.4 alkaen HTTP korvattiin ICMP:llä, lähetetyt paketit, joiden aikakatkaisu oli kuusi sekuntia. pirstoutumaton. Viestintä ICMP:n kautta on todennäköisesti tapa välttää havaitseminen.
Versioissa 2.4 ja uudemmissa ei ole tapahtunut suuria muutoksia, mutta huomasimme joitain muutoksia koodissa:
- PowHeartBeat lähettää sykepaketin jokaisessa silmukassa, joka sisältää merkkijonon ABCDEFGHIJKLMNOPQRSTUVWXYZ, ennen kuin pyydät komennon. Tämä ilmoittaa C&C-palvelimelle, että takaovi on valmis vastaanottamaan komentoja.
- Pyynnöt saada takaoven suorittamia komentoja sisältävät merkkijonon abcdefghijklmnop.
Heartbeat-pakettien muoto on kuvassa 7 kuvattu.
Ero Asiakastunnus ja asiakkaan lippu on se, että Asiakastunnus eroaa joka näytteessä, kun taas asiakkaan lippu on sama jokaisessa ICMP:tä käyttävässä näytteessä. syke lippu osoittaa, että takaovi lähettää sydämenlyöntiä. C&C-palvelimen vastaus on kuvan 8 mukaisessa muodossa.
lippu tässä osoittaa, onko takaovelle annettava komento. Komentopyyntöjen muoto on kuvassa 9 kuvattu.
Huomaa, että takaoven ICMP-tila mahdollistaa rajoittamattoman määrän dataa, joka on jaettu osiin ja muuttujiin. datan pituus, nykyinen sijainti ja kokonaispituus käytetään seuraamaan lähetettyjä tietoja. Vastaukset näihin pyyntöihin ovat kuvan 10 mukaisessa muodossa.
Kuten HTTP-vastauksissa, komennon tunniste on kolmas tavu tiedot.
Seitsemän peräkkäisen ICMP-vastauksen jälkeen, joissa on tyhjä tai epäjohdonmukaisesti muotoiltu sisältö, siirrot takaoven ja C&C-palvelimen välillä katsotaan päättyneiksi.
Mitä tulee pyyntöihin lähettää annetun komennon tulos C&C-palvelimelle, palvelintila muutetaan postimoodiksi ja viimeinen merkkijono (abcdefghijklmnop) muuttuu tulostietojen osalta.
Takaoven komennot
PowHeartBeatilla on useita ominaisuuksia, mukaan lukien komentojen/prosessien suorittaminen ja tiedostojen käsittely. Taulukossa 2 on lueteltu kaikki eri analysoitujen näytteiden tukemat komennot.
Taulukko 2. PowHeartBeat-komentojen kuvaukset
Nimi | Komentotunniste | Kuvaus |
---|---|---|
Cmd | 0x02 | Suorita PowerShell-komento. |
Exe | 0x04 | Suorita komento muodossa a prosessi. |
Tiedoston lataus | 0x06 | Lataa tiedosto uhrin koneelle. Tiedoston sisältö on gzip-pakattu. |
Tiedoston lataus | 0x08 | Lataa tiedosto uhrikoneelta ja palauta tiedostopolku, tiedoston pituus, luontiaika, käyttöajat ja tiedoston sisältö C&C-palvelimelle. |
Tiedostonäkymä | 0x0A | Hanki tiedostotiedot tietystä hakemistosta, erityisesti: · Tiedostonimet · Tiedoston attribuutit · Viimeiset kirjoitusajat · Tiedoston sisältö |
FileDelete | 0x0C | Poista tiedosto. |
Tiedoston uudelleennimeäminen | 0x0E | Nimeä tai siirrä tiedosto uudelleen. |
MuutaDir | 0x10 | Muuta takaoven nykyistä työskentelypaikkaa. |
Tiedot | 0x12 | Hanki tietoluokka määritetyn argumentin mukaan: · "Perustiedot": Asiakastunnus, Versio, isäntänimi, IP-osoitteet, explorer.exe versio- ja kokotiedot, käyttöjärjestelmä (arkkitehtuuri ja lippu osoittavat, onko kone palvelin), Aikaväli, nykyinen hakemisto, aseman tiedot (nimi, tyyppi, vapaa tila ja kokonaiskoko), nykyinen aika · "Time-Interval information": Aikaväli ja nykyinen aika · "Domain information": määritystiedoston sisältö on purettu |
Config | 0x14 | Päivitä asetustiedoston sisältö ja lataa kokoonpano uudelleen. |
N / A | 0x63 | Takaoven uloskäynti. |
Jos takaoven puolella ilmenee virheitä, takaovi käyttää C&C-palvelimelle lähetetyssä POST-pyynnössä erityistä komentotunnistetta 0x00, mikä osoittaa virheen.
Huomaa, että ennen tietojen lähettämistä takaisin C&C-palvelimelle tiedot pakataan gzip-muodossa.
PNGLoad: Steganographic loader
PNGLoad on toisen vaiheen hyötykuorma, jonka Worok käyttää vaarantuneissa järjestelmissä ja jonka ESET-telemetrian mukaan lataa joko CLRLoad tai PowHeartBeat. Vaikka emme näe PowHeartBeatissa koodia, joka lataa suoraan PNGLoadin, takaovella on kyky ladata ja suorittaa lisähyötykuormia C&C-palvelimelta, mikä on todennäköistä, miten hyökkääjät ovat ottaneet PNGLoadin käyttöön järjestelmissä, joissa PowHeartBeat on vaarantunut. PNGLoad on latausohjelma, joka käyttää PNG-tiedostojen tavuja suoritettavan hyötykuorman luomiseen. Se on 64-bittinen .NET-suoritettava tiedosto, joka on hämärtynyt .NET-reaktori – joka naamioituu laillisiksi ohjelmistoiksi. Esimerkiksi kuva 11 esittää WinRAR DLL:ksi naamioituneen näytteen CLR-otsikot.
Kun deobfuskaatio on poistettu, vain yksi luokka on läsnä. Tällä luokalla on a MainPath attribuutti, joka sisältää hakemistopolun, jonka takaovi etsii, mukaan lukien sen alihakemistot, tiedostoja, joissa on a .png laajennus, kuten kuvassa 12 näkyy.
kukin .png tiedosto, joka sijaitsee tällä haulla MainPath sen jälkeen tarkistetaan steganografisesti upotetun sisällön varalta. Ensin kunkin pikselin R (punainen), G (vihreä), B (sininen) ja A (alfa) -arvojen vähiten merkitsevä bitti haetaan ja kootaan puskuriin. Jos tämän puskurin kahdeksan ensimmäistä tavua vastaavat kuvassa 13 näkyvää maagista lukua ja seuraava kahdeksan tavun arvo, ohjaus, ei ole nolla, tiedosto läpäisee PNGLoadin steganografisen sisällön tarkistuksen. Tällaisten tiedostojen käsittely jatkuu niin, että puskurin loppuosa puretaan monitavuisella XOR:lla käyttäen PNGLoadin tiedostoon tallennettua avainta. SecretKeyBytes attribuutti, ja sitten purettu puskuri puretaan gzip-pakkauksella. Tuloksena odotetaan PowerShell-skripti, joka suoritetaan välittömästi.
Mielenkiintoista on, että PNGLoadin suorittamat toiminnot kirjataan tiedostoon, jonka polku on tallennettu muuttujaan LogFilePath. Toiminnot kirjataan lokiin vain, jos läsnä on tiedosto, jonka polku on määritetty sisäisellä muuttujalla IfLogFilePath.
Emme ole saaneet näytettä .png tiedostoa käytetään yhdessä PNGLoadin kanssa, mutta PNGLoadin toimintatapa viittaa siihen, että sen pitäisi toimia kelvollisten PNG-tiedostojen kanssa. Piilottaakseen haitallisen hyötykuorman Worok käyttää C#:n bittikarttaobjekteja, jotka ottavat tiedostoista vain pikselitietoja, eivät tiedoston metatietoja. Tämä tarkoittaa, että Worok voi piilottaa haitalliset hyötykuormansa kelvollisiin, harmittoman näköisiin PNG-kuviin ja siten piiloutua näkyville.
Yhteenveto
Worok on kybervakoiluryhmä, joka kehittää omia työkalujaan sekä hyödyntää olemassa olevia työkaluja vaarantaakseen tavoitteensa. Uskomme operaattoreiden tavoittelevan tietojen varastamista uhreilta, koska ne keskittyvät korkean profiilin yrityksiin Aasiassa ja Afrikassa ja kohdistuvat eri sektoreihin, sekä yksityisiin että julkisiin, mutta painottaen erityisesti valtion tahoja. Toimintaajat ja työkalusarja osoittavat mahdollisia yhteyksiä TA428:aan, mutta teemme tämän arvion heikosti. Heidän räätälöityyn työkalusarjaan kuuluu kaksi kuormaajaa – yksi C++:ssa ja toinen C# .NET:ssä – ja yksi PowerShell-takaovi. Vaikka näkyvyytemme on rajallinen, toivomme, että tämän ryhmän valottaminen rohkaisee muita tutkijoita jakamaan tietoa tästä ryhmästä.
ESET Research tarjoaa nyt myös yksityisiä APT-tietoraportteja ja tietosyötteitä. Jos sinulla on kysyttävää tästä palvelusta, käy osoitteessa ESET Threat Intelligence sivu.
IOCs
Asiakirjat
SHA-1 | Tiedostonimi | ESET-tunnistuksen nimi | Kommentti |
---|---|---|---|
3A47185D0735CDECF4C7C2299EB18401BFB328D5 | käsikirjoitus | PowerShell/PowHeartBeat.B | PowHeartBeat 2.4.3.0003. |
27ABB54A858AD1C1FF2863913BDA698D184E180D | käsikirjoitus | PowerShell/PowHeartBeat.A | PowHeartBeat 2.4.3.0003. |
678A131A9E932B9436241402D9727AA7D06A87E3 | käsikirjoitus | PowerShell/PowHeartBeat.B | PowHeartBeat 2.4.3.0003. |
757ABA12D04FD1167528FDD107A441D11CD8C427 | käsikirjoitus | PowerShell/PowHeartBeat.B | PowHeartBeat 2.1.3.0003. |
54700A48D934676FC698675B4CA5F712C0373188 | käsikirjoitus | PowerShell/PowHeartBeat.A | PowHeartBeat 1.1.3.0002. |
C2F53C138CB1B87D8FC9253A7088DB30B25389AF | käsikirjoitus | PowerShell/PowHeartBeat.A | PowHeartBeat 1.1.3.0002. |
C2F1954DE11F72A46A4E823DE767210A3743B205 | tmp.ps1 | PowerShell/PowHeartBeat.B | PowHeartBeat 2.4.3.0004. |
CE430A27DF87A6952D732B4562A7C23BEF4602D1 | tmp.ps1 | PowerShell/PowHeartBeat.A | PowHeartBeat 2.1.3.0004. |
EDE5AB2B94BA85F28D5EE22656958E4ECD77B6FF | käsikirjoitus | PowerShell/PowHeartBeat.A | PowHeartBeat 2.4.3.0003. |
4721EEBA13535D1EE98654EFCE6B43B778F13126 | vix64.dll | MSIL/PNGLoader.A | PNGLoader. |
728A6CB7A150141B4250659CF853F39BFDB7A46C | RarExtMgt.dll | MSIL/PNGLoader.A | PNGLoader. |
864E55749D28036704B6EA66555A86527E02AF4A | Jsprofile.dll | MSIL/PNGLoader.A | PNGLoader. |
8DA6387F30C584B5FD3694A99EC066784209CA4C | vssxml.dll | MSIL/PNGLoader.A | PNGLoader. |
AA60FB4293530FBFF00D200C0D44EEB1A17B1C76 | xsec_1_5.dll | MSIL/PNGLoader.A | PNGLoader. |
B2EAEC695DD8BB518C7E24C4F37A08344D6975BE | msvbvm80.dll | MSIL/PNGLoader.A | PNGLoader. |
CDB6B1CAFEE098615508F107814179DEAED1EBCF | lucenelib.dll | MSIL/PNGLoader.A | PNGLoader. |
4F9A43E6CF37FF20AE96E564C93898FDA6787F7D | vsstrace.dll | Win64/CLRLaad.C | CLRLoad. |
F181E87B0CD6AA4575FD51B9F868CA7B27240610 | ncrypt.dll | Win32/CLRLaad.A | CLRLoad. |
4CCF0386BDE80C339EFE0CC734CB497E0B08049C | ncrypt.dll | Win32/CLRLaad.A | CLRLoad. |
5CFC0D776AF023DCFE8EDED5CADA03C6D7F9C244 | wlbsctrl.dll | Win64/CLRLaad.E | CLRLoad. |
05F19EBF6D46576144276090CC113C6AB8CCEC08 | wlbsctrl.dll | Win32/CLRLaad.A | CLRLoad. |
A5D548543D3C3037DA67DC0DA47214B2C2B15864 | secur32.dll | Win64/CLRLaad.H | CLRLoad. |
CBF42DCAF579AF7E6055237E524C0F30507090F3 | dbghelp.dll | Win64/CLRLaad.C | CLRLoad. |
Tiedostopolut
Jotkut MainPath, LogFilePath ja IfLogFilePath arvot, jotka kohtasimme PNGLoad-näytteissä:
MainPath | LogFilePath | IfLogFilePath |
---|---|---|
C:Program FilesVMwareVMware Tools | C:OhjelmatiedostotVMwareVMware ToolsVMware VGAuthreadme.txt | C:OhjelmatiedostotVMwareVMware ToolsVMware VGAuthVMWSU_V1_1.dll |
C:Program FilesWinRar | C:Program FilesWinRarrrarinstall.log | C:Program FilesWinRardes.dat |
C:Program FilesUltraViewer | C:Program FilesUltraViewerCopyRights.dat | C:Program FilesUltraVieweruvcr.dll |
verkko
Domain | IP |
---|---|
Ei eristetty | 118.193.78[.]22 |
Ei eristetty | 118.193.78[.]57 |
airplane.travel-commercials[.]-toimisto | 5.183.101[.]9 |
central.suhypercloud[.]org | 45.77.36[.]243 |
Mutexit
CLLRoad-näytteissä havaitsemamme mutex-nimet ovat:
aB82UduGX0EX
ad8TbUIZl5Ga
Mr2PJVxbIBD4
oERiQtKLgPgK
U37uxsCsA4Xm
Wo0r0KGWhYGO
xBUjQR2vxYTz
zYCLBWekRX3t
3c3401ad-e77d-4142-8db5-8eb5483d7e41
9xvzMsaWqxMy
Kattava luettelo kompromissiindikaattoreista (IoC) ja näytteistä löytyy osoitteesta GitHub-tietovarastomme.
MITER ATT & CK -tekniikat
Tämä pöytä on rakennettu käyttämällä version 11 MITER ATT & CK -kehyksen puitteissa.
Taktiikka | ID | Nimi | Kuvaus |
---|---|---|---|
Tiedustelu | T1592.002 | Kerää uhrin isäntätiedot: Ohjelmisto | PowHeartBeat kerää explorer.exe tietoja. |
T1592.001 | Kerää uhrin isäntätiedot: Laitteisto | PowHeartBeat kerää tietoja asemista. | |
T1590.005 | Kerää uhrin verkkotiedot: IP-osoitteet | PowHeartBeat kerää vaarantuneen tietokoneen IP-osoitteet. | |
Resurssien kehittäminen | T1583.004 | Hanki infrastruktuuri: Palvelin | Worok käyttää omia C&C-palvelimiaan. |
T1588.002 | Hanki ominaisuudet: Työkalu | Worok otti käyttöön useita julkisesti saatavilla olevia työkaluja vaarantuneissa koneissa. | |
T1583.001 | Hanki infrastruktuuri: Domains | Worokilla on rekisteröityjä verkkotunnuksia helpottaakseen C&C-viestintää ja lavastusta. | |
T1588.005 | Hanki ominaisuuksia: Hyödynnä | Worok on käyttänyt ProxyShell-haavoittuvuutta. | |
T1587.001 | Kehitysominaisuudet: Haittaohjelmat | Worok on kehittänyt oman haittaohjelmansa: CLRLoad, PNGLoad, PowHeartBeat. | |
T1587.003 | Kehitä ominaisuuksia: digitaaliset sertifikaatit | Worok on luonut Let's Encrypt SSL -sertifikaatit mahdollistaakseen molemminpuolisen TLS-todennuksen haittaohjelmille. | |
Teloitus | T1059.001 | Komento- ja komentosarjatulkki: PowerShell | PowHeartBeat on kirjoitettu PowerShellissä. |
Sitkeys | T1505.003 | Palvelinohjelmistokomponentti: Web Shell | Worok käyttää webshelliä ReGeorg. |
Puolustuksen kiertäminen | T1140 | Poista tiedostojen tai tietojen salaus/dekoodaus | Worok käyttää erilaisia mukautettuja XOR-pohjaisia järjestelmiä merkkijonojen ja lokien salaamiseen PowHeartBeatissa, PNGLoadissa ja CLRLoadissa. |
T1036.005 | Naamiointi: vastaa oikeutettua nimeä tai sijaintia | PNGLoad-näytteet otetaan käyttöön laillisilta näyttäviin VMWare-hakemistoihin. | |
Kirjautumistietojen käyttö | T1003.001 | Käyttöjärjestelmän käyttöoikeustietojen tyhjennys: LSASS-muisti | Worok käyttää Mimikatzia kirjautumistietojen poistamiseen LSASS-muistista. |
Löytö | T1082 | Järjestelmätietojen etsiminen | PowHeartBeat kerää käyttöjärjestelmätietoja. |
T1083 | Tiedostojen ja hakemistojen etsintä | PowHeartBeat voi luetella tiedostoja ja hakemistoja. | |
T1046 | Verkkopalvelun etsintä | Workok käyttää NbtScan saada verkkotietoja vaarantuneista koneista. | |
T1124 | System Time Discovery | PowHeartBeat kerää uhrin aikatiedot. | |
Kokoelma | T1005 | Paikallisen järjestelmän tiedot | PowHeartBeat kerää tietoja paikallisesta järjestelmästä. |
T1560.002 | Arkistoi kerätyt tiedot: Arkistoi kirjaston kautta | PowHeartBeat gzip-pakkaa tiedot ennen lähettämistä C&C-palvelimelle. | |
Command and Control | T1071.001 | Sovelluskerrosprotokolla: Web -protokollat | Jotkut PowHeartBeat-versiot käyttävät HTTP:tä viestintäprotokollana C&C-palvelimen kanssa. |
T1090.001 | Välityspalvelin: Sisäinen välityspalvelin | PowHeartBeat käsittelee välityspalvelimen määritykset uhrin koneella. | |
T1001.002 | Tietojen hämärtäminen: Steganography | PNGLoad poimii pikseliarvot kohteesta .png tiedostot hyötykuormien rekonstruoimiseksi. | |
T1573.002 | Salattu kanava: Epäsymmetrinen kryptografia | PowHeartBeat hoitaa HTTPS-viestinnän C&C-palvelimen kanssa. | |
T1095 | Non-Application Layer Protocol | Jotkut PowHeartBeat-versiot käyttävät ICMP:tä tiedonsiirtoprotokollana C&C-palvelimen kanssa. | |
T1132.001 | Tietojen koodaus: Vakiokoodaus | Worok käyttää XOR-koodausta PowHeartBeatissa ja PNGLoadissa. | |
T1132.002 | Tietojen koodaus: Ei-standardi koodaus | Worok käyttää XOR-koodausalgoritmeja, jotka käyttävät lisäsuolaa. | |
exfiltration | T1041 | Suodatus C2 -kanavan yli | PowHeartBeat käyttää C&C-viestintäkanavaansa tietojen suodattamiseen. |
- blockchain
- coingenius
- cryptocurrency-lompakot
- cryptoexchange
- tietoverkkoturvallisuus
- verkkorikollisille
- tietoverkkojen
- sisäisen turvallisuuden osasto
- digitaaliset lompakot
- ESET-tutkimus
- palomuuri
- Kaspersky
- haittaohjelmat
- McAfee
- NexBLOC
- Platon
- plato ai
- Platonin tietotieto
- Platon peli
- PlatonData
- platopeliä
- VPN
- Me elämme turvallisuutta
- verkkosivuilla turvallisuus
- zephyrnet