ESETi teadlased analüüsisid 2025. aasta tegevust Webwormil, Hiinaga seotud APT-rühmal, mis algselt sihtis Aasia organisatsioone, kuid on hiljuti suunanud oma tähelepanu Euroopale. Kuigi see on meie esimene avalik blogipostitus selle rühma kohta, oleme jälginud Webwormi tegevust alates sellest, kui Symantec 2022. aastal esmakordselt sellest ohuallikast teatas. Aastate jooksul oleme näinud, et see ohuallikas muudab pidevalt oma taktikaid, tehnikaid ja protseduure (TTP).

Webworm on seotud teiste Hiinaga seotud APT-rühmadega, nagu SixLittleMonkeys ja FishMonger. Varem kasutas ta tuntud pahavaraperekondi, nagu McRat (tuntud ka kui 9002 RAT) ja Trochilus, kuid viimastel aastatel on ta hakanud liikuma nii olemasolevate kui ka kohandatud proksitööriistade poole, mis on täisväärtuslikest tagauksedest varjatumad. 2025. aastal lisas Webworm oma tööriistakomplekti ka kaks uut tagaukset: EchoCreep, mis kasutab C&C-suhtluseks Discordi, ja GraphWorm, mis kasutab sama eesmärgi jaoks Microsoft Graph API-d. Rühmitus on tuntud ka selle poolest, et paigutab oma pahavara ja tööriistad GitHubi hoidlatesse, tagades, et pahavara saab otse ohvri arvutisse alla laadida.

Blogipostituse põhipunktid:
  • Alates avastamisest 2022. aastal on Webworm APT-rühm aktiivselt uuendanud oma tööriistakomplekti ja sihtmärke.
  • 2025. aastal hakkas rühm kasutama tagauksed, mis kasutavad Discordi ja Microsoft Graph API-d C&C-suhtluseks.
  • ESETi uurijad dešifreerisid üle 400 Discordi sõnumi ja operaatori serverilt leitud bash-ajaloo faili, milles olid luurekäskudega seotud andmed enam kui 50 unikaalse sihtmärgi kohta.
  • Lisaks tagauksedele kasutab Webworm mitmeid olemasolevaid ja kohandatud proksivahendeid.
  • Rühm kasutab GitHubi oma pahavara levitamiseks.

Me omistame 2025. aasta kampaania Webwormile, tuginedes teabele, mille avastasime pärast EchoCreepi tagauksele C&C-suhtluseks kasutatud Discordi sõnumite dekodeerimist. See teave viis meid ründajate GitHubi hoidlasse, mis sisaldas paigutatud artefakte, nagu SoftEther VPN-rakendus. SoftEtheri konfiguratsioonifailist leidsime IP-aadressi, mis vastab teadaolevale Webwormi IP-aadressile.

Webwormi poolt mõjutatud ohvreid nendest riikidest, mida mainitakse käesoleva blogipostituse hilisemas osas, on asjakohaselt teavitatud. Lisaks on meie poolt tuvastatud teenused, nagu GitHubi hoidla ja S3-salvestusruum, suletud.

Arenev lähenemisviis

2022. aastal oli üks Webwormi peamisi tunnusjooni väljakujunenud tagauksete ja kaugjuurdepääsu troojalaste (RAT) kasutamine, nagu McRat ja Trochilus. Nagu kirjeldatud Symanteci blogipostituses, sihtis rühm algselt peamiselt Aasia riike.

2024. aastal täheldasime, et rühm hakkas traditsioonilistest tagauksedest eemalduma, eelistades seaduslikke või poolseaduslikke tööriistu, nagu SOCKS-proksid (SoftEther VPN) ja muud võrgulahendused. Kuigi need aitavad Webwormil avastamisest kõrvale hoida, puudub neil ka tagauksedes tavaliselt kättesaadav käskude täiskomplekt, mistõttu peavad operaatorid tuginema käskude tõlgendajatele, nagu cmd.exe või powershell.exe.

Sel ajal nägime ka, et rühmitus hakkas Aasias oma tegevust aeglustama ja suunas oma tähelepanu Euroopa riikidele. See suundumus jätkus 2025. aastal, kui täheldasime rünnakuid, mis olid suunatud valitsusorganisatsioonidele Belgias, Itaalias, Serbias ja Poolas. Samal ajal tegi Webworm sissetungi ka Lõuna-Aafrikasse, ohustades kohalikku ülikooli.

Nendes viimastes kampaaniates näib Webworm olevat Trochilusest ja McRatist täielikult loobunud, samal ajal oma tööriistakomplekti laiendades. Uute tööriistade seas on esikohal kaks uut tagaukset: Discordil põhinev EchoCreep ja Microsoft Graphil põhinev GraphWorm. Kuigi rühmitus kasutas jätkuvalt olemasolevaid proksilahendusi, täpsemalt Go-keeles kirjutatud iox-i (portide edastamise ja intraneti proksitööriist) ja frp-d (kiire pöördproksi), lisas ta ka kohandatud proksilahendused WormFrp, ChainWorm, SmuxProxy ja WormSocket.

Need kohandatud proksitööriistad suudavad mitte ainult krüpteerida suhtlust, vaid toetavad ka ahelat mitme hosti vahel nii võrgu siseselt kui ka väliselt. Usume, et operaatorid kasutavad neid tööriistu koos SoftEther VPN-iga, et oma jälgi paremini varjata ja oma tegevuse salajasust suurendada. Kõik Webwormi proksid ja VPN-teenused on pilveserverid, mis kuuluvad Vultri ja IT7 Networksi kontrollitavasse võrguinfrastruktuuri. Proksitööriistade arvu ja nende keerukuse põhjal võib Webworm luua palju suurema varjatud võrgu, meelitades ohvreid oma proksisid kasutama.

Discord ja Microsoft Graph API C&C-side

2025. aastal hakkas Webworm kuritarvitama Discordi ja Microsoft Graph API-d C&C-side jaoks. EchoCreepi tagaukset analüüsides õnnestus meil avastada üle 400 Discordi sõnumi. Leidsime ka neli unikaalset kanalit, millest igaüks vastas erinevale ohvrile. EchoCreep kasutab Discordi failide üleslaadimiseks, käitamisaruannete saatmiseks ja käskude vastuvõtmiseks. Tagaukset võrguside läbib Discordi API-sid spetsiaalselt koostatud HTTP-päringute abil.

GraphWormi puhul, mis kasutab C&C-side jaoks Microsoft Graph API-d, avastasime, et see kasutab ainult OneDrive’i lõpppunkte, täpsemalt uute ülesannete saamiseks ja ohvriandmete üleslaadimiseks. Iga konkreetse ohvri jaoks luuakse eraldi OneDrive’i kataloog. Kuna GraphWormi poolt kasutatav OneDrive’i instants töötab pilves, saab tagauks kasutada Microsoft Graph API lõpppunkti /createUploadSession suurte, etapiviisiliselt üleslaaditavate failide üleslaadimiseks.

Amazon S3-salvestusruum

2025. aasta kampaaniate uurimise käigus avastasime, et Webworm oli hakanud kasutama oma kohandatud proksilahendust WormFrp, et hankida konfiguratsioone ohustatud Amazon S3-salvestusruumist, mis asub aadressil wamanharipethe.s3.ap-south-1.‌amazonaws[.]com. Amazon S3-salvestusruum on Amazon Web Servicesis kättesaadav avalik pilvesalvestuslahendus, kus S3 tähistab lihtsat salvestusteenust. Usume, et ohustatud salvestusruum on avalikult kättesaadav – või isegi võimalik, et valesti konfigureeritud – versioon aadressist whpjewellers.s3.amazonaws[.]com.

Meie esialgne ülevaade salvestusruumis hoitavatest failidest paljastas mitu virtuaalmasinate hostide hetktõmmist, millest üks sisaldas Itaalia valitsusasutusele kuuluva masina praegust konfiguratsiooni ja aktiivset seisundit. See võib tähendada, et operaatoritel õnnestus tungida keskkonda, mis vastutab ohvri virtuaalmasinate haldamise eest. Samas võisid nad saada juurdepääsu ka vaid ühele hostile, kus hetktõmmised olid salvestatud. Igal juhul on ilmne, et selle S3-salvestuskonteineri kaudu suudab Webworm andmeid väljaviia, samal ajal kui pahaaimamatu ohver teenuse eest arve maksab.

2025. aasta oktoobri lõpus laadisid ründajad S3-salvestuspaika üles veel ühe faili, käivitatava faili nimega SharpSecretsdump. Nagu selle dokumentatsioonis mainitud, jäljendab see tööriist Impacketi kurikuulsa secretsdump.py tegevust, et kopeerida paroolid mõjutatud Windows-hostist, kuhu see on paigaldatud. Eeldame, et Webwormi operaatorid laadisid selle tööriista S3-salvestuspaika üles, et seda oma ohvrite vastu kasutada.

Ajavahemikus detsembrist 2025 kuni jaanuarini 2026 laadisid operaatorid teenusesse üles 20 uut faili, millest kaks olid varastatud Hispaania valitsusasutuselt. Neist kahest failist esimene, XML-fail, sisaldab avatud lähtekoodiga kaugühenduse halduri mRemoteNG poolt kasutatavate virtuaalsete hostide salvestatud konfiguratsioone. Teine fail on Microsoft Visio diagramm, mis kirjeldab üksikasjalikult selle valitsusasutuse poolt kasutatava domeeni taga olevat infrastruktuuri.

GitHubi hoidla

EchoCreepi Discordi C&C-infrastruktuuri läbivaatamise käigus õnnestus meil hankida Discordi unikaalsed identifikaatorid, mis on seotud kasutajate, kanalite ja gildidega. Kahjuks ei olnud botti tokeni piiratud juurdepääsu tõttu võimalik teha API-kõnesid, mida oleks saanud kasutada serveri omanike või botti enda kohta käiva teabe loendamiseks.

Discordi sõnumid paljastasid aga GitHubi hoidla https://github[.]com/anjsdgasdf/WordPress, mis toimib failide vahehoidjana teistele Webwormi kasutatavatele tööriistadele ja pahavarale (üks selline tööriist kasutas eespool mainitud ohustatud Amazon S3-i salvestusruumi). Kuna tegemist on seadusliku WordPressi hoidla otsese haruga, võis see peituda kõigi silme all. Joonisel 1 on esitatud selle hoidla ülevaade, kus vahehoidlad on paigutatud wp-admin kataloogi.

Figure 1. Forked WordPress repository
Joonis 1. Forkitud WordPressi hoidla

Sisse murdmine

Kuigi meil ei õnnestunud leida sissepääsupunkti, mida Webworm kasutab oma ohvrite nakatamiseks, oleme avastanud, et rühm kasutab avatud lähtekoodiga utiliite ohvrite veebiserverite failide ja kataloogide läbivaatamiseks ning seal olevate haavatavuste otsimiseks.

Leidsime selle, kui märkasime, et ohvri arvuti suhtles proksiserveriga, mida hostiti aadressil 64.176.85[.]158. IP-aadressi kontrollimine näitas, et seal oli varem portis 80 hostitud avatud kataloog, mis sisaldas eespool mainitud avatud lähtekoodiga utiliite. Joonisel 2 on esitatud ülevaade selle avatud kataloogi sisust.

Figure 2. Open directory listing
Joonis 2. Avatud kataloogide loend

Meie blogipostitusega seotud peamised kataloogid on nuclei/, .dirsearch/ ja .bash ajaloo fail. Nagu näha joonisel 3, suutsid Webwormi operaatorid veebiserverite katalooge ja faile jõuga läbi otsida, kasutades dirsearchi – veebiteede skannerit, mis suudab filtreerida konkreetseid staatuskoode – ja nuclei – avatud lähtekoodiga haavatavuste skannerit –, et tuvastada võimalikke haavatavusi konkreetsete sihtmärkide suhtes.

Figure 3. History of nuclei and dirsearch
Joonis 3. Nuclei ja dirsearchi ajalugu

Dirsearchi käivitamise tulemused salvestati kataloogi .dirsearch, millest selgus, et tööriista oli kasutatud 56 sihtmärgi vastu erinevatest riikidest, nagu Hispaania, Ungari, Belgia, Nigeeria, Tšehhi ja Serbia.

Kataloogis nuclei leidsime skripti LegalHackers nimega _1.sh. See on CVE-2017-7692 kontsepti tõestav ekspluaat, mis on haavatavus, mis võimaldab autentimisejärgset kaugkoodi käivitamist veebipostikliendis SquirrelMail. Kataloogist .bash_history leidsime, et sarnase nimega skripti oli kasutatud Serbia veebiposti sihtmärgi vastu. See viib oletuseni, et rühm sai kätte Serbia ohvri autentimisandmed ja võis seda haavatavust kasutada esmase juurdepääsu saamiseks.

Tööriistakomplekt

Selles blogipostituses vaatame üksikasjalikult Webwormi arsenali uusi lisandusi. Esiteks kaht kohandatud tagaukset: EchoCreep ja GraphWorm. Seejärel rühma 2025. aasta kampaaniates kasutatud kohandatud proksilahendusi: WormFrp, ChainWorm, SmuxProxy ja WormSocket.

EchoCreep

EchoCreep on uus Go-keeles kirjutatud tagauks, mis kasutab Discordi C&C-serverina ning mille sõnumid algavad juba21. märtsil 2024. See suudab täita tabelis 1 näidatud käske.

Tabel 1. EchoCreepi käsud

Käsk Argumendid Kirjeldus
üleslaadimine Faili tee Laadib faili manuse vormis üles Discordi määratud failisüsteemi teekonnast.
alla laadimine Allikas (URL) ja sihtkoht (tee) Laadib faili alla antud allika URL-ist failisüsteemi sihtteekonda.
shell String Käivitab stringi cmd.exe -kestaga.
sleep Täisarv (sekundites) Ootab määratud arvu sekundeid, enne kui saadab eduaruande Discordi serverile.

Kuigi meil ei õnnestunud kindlaks teha, kuidas tagauks ohvri arvutisse sattus, näib, et püsivus saavutati alles pärast arvuti nakatamist C&C-käskude abil.

Kogu EchoCreepi võrgukommunikatsioon suunatakse Discordi API-liideste kaudu spetsiaalselt koostatud HTTP-päringute abil. Käsud analüüsimiseks peab tagauks esmalt need base64 abil dekodeerima ja seejärel AES-CBC-128 abil dešifreerima. Joonisel 4 on näidatud käsu ja vastuse näide pärast nende mõlema dešifreerimist.

{"guild": "lol", "channel_id": 1220298277849796651, "channel": "fire", "content": "shell whoami", "time": "2025-04-14T08:35:41.751000+00:00", "author_id": 1219910976007045171, "autor": "jonson889912"}

Joonis 4. EchoCreepi käsk ja vastus

Kõigist 433 dešifreeritud Discordi sõnumist ei olnud selge, kes täpselt kannatas, kuna nad ei ole ESETi kliendid. Siiski suutsime kanalite nimede põhjal vähemalt kindlaks teha EchoCreepi poolt ohustatud ohvrite arvu. Avastasime, et need nimed olid kas ohvri IP-aadress või IP-aadressi ja ohvri arvuti hostinime kombinatsioon. Kuna leidsime neli unikaalset kanalit, mis kasutasid seda nimetamiskonventsiooni, usume, et ohvreid on neli.

EchoCreep ei püüa esimesel käivitamisel luua uut kanalit, vaid saadab sõnumi „Up Success” juba olemasolevale kanalile (vt joonist 5 ja joonist 6). See viitab sellele, et kanalid loodi enne tagauksprogrammi käivitamist, mis tähendab, et operaatorid kas teadsid sihtmärke või hankisid vajaliku teabe pärast esialgset juurdepääsu.

Figure 5. EchoCreep Discord Up Success message
Joonis 5. EchoCreep Discord Üles Edu sõnum
Figure 6. EchoCreep backdoor Up Success message
Joonis 6. EchoCreep tagauks Üles Edu sõnum

Varaseimad sõnumid, mis saadeti ajavahemikus21. märtsist 2024 kuni31. märtsini 2025, näivad olevat olnud operaatorite testkäsklused. Joonis 7 näitab, et ründajad jätsid sinna teavet oma kohalike IP-konfiguratsioonide kohta.

Ethernet-adapter Ethernet0: Ühendusele omane DNS-lõpp . : lan Link-local IPv6-aadress . . . . . : fe80::2111:d79b:b1ba:1f4a%10 IPv4-aadress . . . . . . . . . . . : 192.168.8.174 Alamvõrgu mask . . . . . . . . . . . : 255.255.255.0 Vaikimisi värav . . . . . . . . . : 192.168.8.1

Joonis 7. Windows ipconfig väljund

Paljud varasemad sõnumid sisaldasid rämpsväärtusi, mida kasutati tõenäoliselt õige suhtluse tuvastamiseks, nagu on näha joonisel 8.

Figure 8. Junk commands
Joonis 8. Rämpsukäsud

Varsti pärast seda hakkasime nägema allalaadimistoiminguid, nagu on näidatud joonisel 9, mis näitavad arenenud käskude arengut.

Figure 9. frp download
Joonis 9. frp allalaadimine

Lisaks näeme joonisel 10 testimistegevusi, mis võisid olla varased kohandused püsivusmehhanismist, mida Webworm kasutas hiljem ohvrite vastu. Huvitav on ka see, et see käivitab run-käsu asemel lõpuks kasutatud shell-käsu, mis toetab meie järeldust, et tegemist oli varaste testidega.

Figure 10. Test VBScript
Joonis 10. Test-VBScript

Esimene tegelik rünnak toimus9. aprillil 2025, kui logidesse ilmusid uued „Up Success” sõnumid, mis olid seotud uue kanalinimega. Varsti pärast esialgset rünnakut kasutas ründaja shell-käskusid, et käivitada curl ja alla laadida faile.

GraphWorm

GraphWorm on veel üks uus tagauks, mida Webworm kasutab. See käivitub iga kord, kui ohver masinasse sisse logib. GraphWorm kasutab C&C-suhtluseks Microsoft Graph API-d, mis näitab, et Webwormil on ohvrite nakatamiseks uus infrastruktuur, mis salvestab teavet Microsoft Graphi rendipinnale. Meie tähelepanekute põhjal kasutab tagauks käskude vastuvõtmiseks ja ohvriandmete saatmiseks ainult OneDrive’i. Selles suhtluses kasutatavad andmed krüpteeritakse esmalt AES-256-CBC-ga, kasutades OpenSSL EVP-raamatukogu kutsumisi, ja seejärel kodeeritakse base64-ga. GraphWorm võimaldab ka proksiseadete konfigureerimist, suunates seega kogu liikluse läbi määratud proksi.

Esimesel käivitamisel loob tagauks unikaalse ohvri ID, liites WMI raamistiku abil võrgukaardi IP-aadressi, protsessori ID ja füüsilise seadme seerianumbri.

Unikaalset ID-d kasutatakse protsessis, et ümber nimetada või luua uus OneDrive’i kaust rentija sees. Iga kaust on rünnaku jaoks unikaalne ning sisaldab iga ohvri all konkreetseid alamkaustu. Kolme alamkaustu /files, /result ja /job kasutatakse vastavalt failide, ohvri masinal täidetud käskude tulemuste ja operaatorite poolt täitmiseks järjekorda pandud tööde salvestamiseks.

Pärast kausta edukat loomist kogub tagauks teavet ohvri arvuti kohta, mille tulemuseks on joonisel 11 näidatud JSON-objekt.

{ "Host Name": "<computer_name>", "IP Address": "<ip>", "MAC Address": "<mac>", "Operating System": "<os>", "Privilege": "<Admin|Regular User>", "Time Zone": "<UTC-XXXX>", "User Name": "<username>", "Workgroup": "<workgroup", "publicKey": "<key>" }

Joonis 11. Konfiguratsiooni struktuur

Käskud, mida GraphWorm saab OneDrive’i kaudu, on kirjeldatud tabelis 2 avastamise järjekorras.

Tabel 2. GraphWormi käsud

Käsk Argumendid Kirjeldus
keyExchange String <adminPublicKey> See väärtus salvestatakse mällu ja kahjuks ei ole selle otstarvet lihtne kindlaks teha. Seda võidakse kasutada avalikku võtit rakenduses seadistamiseks, et saada pöörd-shell-juurdepääs.
sessionKey String <sessionKey> String <keyId> Veel üks mällu salvestatud väärtuste kogum, mille kasutamine ei ole selge. Arvatavasti on tegemist RSA privaatvõtme ja AES-võtmega, mida uuendatakse mälus ja kasutatakse krüptograafilisteks funktsioonideks.
kill Puudub Peatab tagauksu töötamise.
shell Puudub Käivitab cmd.exe uue instantsi.
exec Faili tee Käivitab uue protsessi, kasutades CreateProcessW-d.
upload String <onedrive_path> String <agent_path> Laadib alla faili OneDrive’i ja agendi tee alusel. <onedrive_path> on OneDrive’is kuvatav täielik tee, mille tulemuseks on formaat /me/drive/root:/<onedrive_path>, ning <agent_path> on kettal kuvatav täielik failitee.
sleep Täisarv Uuendab ooteaja pikkust.
poll Täisarv Uuendab ooteaega määratlemata põhjusel. Võimalik, et käskude arendamine on veel pooleli.
rest Täisarv Magab kindla aja jooksul.
upgrade JSON-tekst JSON-tekst sisaldab seadistusi, mille abil uuendatakse välju mälus, millele järgneb nende muudatuste salvestamine kettale asuvasse config.dat-faili.
alla laadida String <onedrive_path> String <file_path> Laadib faili üles antud <file_path> -ist soovitud asukohta OneDrive’is. <onedrive_path> peaks olema vormingus /me/drive/root:/<uniqueid>/<filename>/:content.
heartbeat Täisarv <min> Täisarv <max> Kasutatakse juhusliku viiteaja loomiseks min ja max vahel, kui kaua tuleb oodata, et uuendada faili alive.txt.

Uurimise käigus märkasime, et pärast shell-käsu täitmist kirjutati tulemused faili beacon_shell_output.txt ja salvestati ajutisse kataloogi. Nende suurte shell-käsu väljundite üleslaadimiseks kasutasid operaatorid tõenäoliselt Microsoft Graph API-liidese /createUploadSession, kuna tagauks tegeleb OneDrive’i pilveinstantsiga.

WormFrp

WormFrp on proksitunnelimise tööriist, mis on inspireeritud olemasolevast kiirest pöördproksist (frp), mida kasutab ka Webworm. Ründajad laiendasid frp-d kohandatud funktsioonidega, et tööriist saaks oma konfiguratsiooniväärtused nakatatud Amazon S3-i salvestusruumist wamanharipethe.s3.ap-south-1.amazonaws[.]com.

Kompromiteeritud S3-salvestusruumis on mitu .txt-laiend iga faili, mis on krüpteeritud AES-iga, kasutades ECB-režiimi. Iga WormFrp-instants on kõvakooditud unikaalse AES-võtmega ja laadib S3-salvestusruumist alla unikaalse faili. Konfiguratsioonifaili uuendatakse WormFrp käivitamise ajal, et saata teavet operaatorile, et tuvastada, kust tunnel ühendub.

WormFrp vajab käivitamiseks käsurea argumenti. Pärast konfiguratsiooni hankimist S3-salvestusruumist üritab WormFrp sisse logida frp-serverisse, avades pöördproksi ja TCP SOCKS5-proksi. Vaadeldud näidiste põhjal genereeritakse kasutajanimi ja parool alati juhuslikult.

Iga WormFrp instants ühendub frp-serveriga avaliku IP-aadressi kaudu. Pärast pöördproksi konfigureerimist võib ohvri arvutist näha täiendavat võrgutegevust.

ChainWorm

ChainWorm on veel üks Webwormi operaatorite kasutatav kohandatud proksitööriist. Tundub, et ChainWormi peamine ülesanne on aidata laiendada Webwormi prokside võrgustikku, avades selle arvutis, kuhu see on paigaldatud, uue pordi. Webworm võib seda tööriista kasutada prokside ahelamiseks, kus spetsiaalselt koostatud andmed saadetakse läbi pordi, mis ühendub teise kaugjuhtimissüsteemiga, suunates liikluse järgmisele sihtkohale määramatu arvu hüppude kaudu.

Tavaliselt on mõjutatud hostis avatud port tööriistas kõvakooditud. Seejärel avatakse kõvakooditud pordil TCP-ühendused, et vastu võtta mis tahes edastusi, mis viiksid täiendavate väljaminevate ühendusteni kas otsese IP-aadressi või hostinime koos selle pordiga.

Hostinime ja pordi kombinatsiooni abil luuakse ühendus ahela järgmise hüppega. Kui ühendused allika ja sihtkoha vahel on loodud, edastatakse kõik läbivoolavad andmed nüüd ahela järgmisele ülesvoolu hüppele. Kui mingil hetkel tekib erand, teavitatakse allikat baitijadaga 0x05 01 00 01 00 00 00 00 00 00 enne uue ühenduse loomise katset.

SmuxProxy

SmuxProxy on iox-il põhinev utiliit, mis on portide edastamise ja intraneti proksitööriist. Olemasoleva iox-i funktsionaalsuse peale lisab SmuxProxy väikeseid kohandusi, mis võimaldavad kasutada kõvakooditud serveri IP-aadressi ja porti, muutes operaatoritele selle käivitamise ja kasutamise lihtsamaks. Samuti suudab see genereerida juhusliku võtme ja initsialiseerimisvektori krüpteeritud side jaoks.

WormSocket

Viimane Webwormi uutest kohandatud proksidest on WormSocket, tööriist, mis kasutab konfigureeritud servereid, millel töötab socket.io, et luua proksi veebipäringutele. WormSocket võimaldab väga hästi konfigureeritavat ja skaleeritavat proksivõrku, mis võimaldab suhelda konkreetsete sõlmedega igal ajal.

Selle konfiguratsioon tugineb nii kõvakooditud väärtustele kui ka käsurea argumentidele. WormSocket aktsepteerib valikulist käsurea argumenti –proxy, millele järgneb põhilist autentimist sisaldav URI, mida kasutatakse konfiguratsioonina WebProxy objekti loomiseks. Proksit kasutatakse seejärel veebisokli ühenduse peal. Selle veebisokli konfiguratsioonid on WormSocketis kõvakooditud.

Kui WormSocket on käivitatud, ühendub see esmalt konfigureeritud IP-aadressiga ja pordiga, proovides ühendust luua ws-, wss-, http- ja https-skeemide abil. Kui ühendus on loodud, käivitatakse asünkroonne ülesanne uute sõnumite vastuvõtmiseks ja saatmiseks. On neli võimalikku sõnumitüüpi, mida on üksikasjalikult kirjeldatud tabelis 3.

Tüüp Sõnumiklass Väärtused Kirjeldus
1 InitiateForwarderClientReq String <ForwardedClientId> Kasutab IpAddress-välja DNS-otsingu tegemiseks, et saada läbipääsenud võimaliku domeeni host-aadress, mille tulemust kasutatakse uue TCP-kliendi loomiseks koos Portiga. Kui klient on ühenduse loonud, salvestatakse see ForwardedClientId ja TcpClient paaride sõnastikku.
Lisaks luuakse uus InitiateForwarderClientRep-sõnumiobjekt , milles kasutatakse sama teavet, mida kasutati TCP-kliendi loomiseks, ning see saadetakse koos kliendi kaudu loetud sõnumitega ja salvestatakse hilisemaks kasutamiseks ConcurrentQueue ‘sse.
String <IpAddress>
Integer <Port>
2 InitiateForwarderClientRep String <ForwarderClientId> ForwarderClientId kasutatakse InitiateForwarderClientReq poolt loodud ja juba konfigureeritud TCP-kliendi otsimiseks kliendi sõnastikus , kõik muud väärtused näivad olevat kasutamata. Kui TCP-klient on leitud, loetakse uued sõnumid ja salvestatakse need hilisemaks kasutamiseks ConcurrentQueue’ sse.
String <BindAddress>
Integer <BindPort>
Integer <AddressType>
Täisarv <Reason>
3 SaadaAndmesõnum String <ForwarderClientId> Saadab andmed base64-kodeeringus edasi TCP-kliendile, mis on seotud ForwarderClientId-ga.
Bytes[] <Data>
4 CheckInMessage String <MessengerId> Määrab MessengerId sisemisele MessengerId-le, mida ei paista millegi jaoks kasutatavat.

Järeldus

Webworm on Hiinaga seotud APT-rühm, mis on tegutsenud vähemalt alates 2022. aastast. Rühm kasutab pidevalt arenevat tööriistakomplekti, mis koosneb peamiselt tagauksedest ning avatud lähtekoodiga ja spetsiaalselt loodud proksiprogrammide kombinatsioonist. Meie poolt jälgitud 2025. aasta kampaaniates hakkas Webworm kasutama Discordi (EchoCreep) ja Microsoft Graph API-l põhinevaid (GraphWorm) tagaukseid. Rühmitus jätkab ka failide paigutamist GitHubi hoidlatesse ja me võime vaid oletada, et teeb seda ka tulevikus.

Meie analüüsi käigus õnnestus meil taastada serverist käivitatud käsud, mis andsid ülevaate rühma potentsiaalsetest esialgsetest juurdepääsumeetoditest, kasutades avatud lähtekoodiga haavatavuste skannerit, ning tuvastada mõned rühma sihtmärgid.

On selge, et Webworm on väga aktiivne APT-rühm, mis jätkab uute vahendite otsimist oma ohvrite kompromiteerimiseks, olgu see siis esialgse juurdepääsu kaudu või pärast kompromiteerimist.

Kui teil on küsimusi WeLiveSecurity veebisaidil avaldatud uuringute kohta, võtke meiega ühendust aadressil threatintel@eset.com.
ESET Research pakub privaatseid APT-luurearuandeid ja andmevooge. Kui teil on selle teenuse kohta küsimusi, külastage ESETi ohuteabe lehekülge.

IoC-d

Täielik nimekiri ohuindikaatoritest (IoC) ja näidetest on kättesaadav meie GitHubi andmebaasis.

Failid

SHA-1 Failinimi Avastamine Kirjeldus
CB4E50433336707381429707F59C3CBE8D497D98 SearchApp.exe WinGo/Agent.ZK EchoCreep tagauks, mis kasutab Discordi C&C-ks.
1DF40A4A31B30B62EC33DC6FECC2C4408302ADC7 ssh.exe WinGo/HackTool.Proxy.AE WormFrp proksitööriist.
7DCFE9EE25841DFD58D3D6871BF867FE32141DFB svc.exe MSIL/HackTool.Proxy.H WormHole’i proksitööriist.
77F1970D620216C5FFF4E14A6CCC13FCCC267217 C2OverOneDrive_v0316.exe Win32/Agent.VWD GraphWormi tagauks, mis kasutab C&C-ks Microsoft Graph API-d.
948159A7FC2E688386864BEA59FD40DFFC4B24D6 MessengerClient.exe MSIL/HackTool.Proxy.I WormSocket proxy-tööriist.
A3C077BDF8898E612CCD65BC82E7960834ADB2A9 dsocks.exe WinGo/Riskware.Iox.L SmuxProxy, kohandatud iox, millel on kõvakooditud IP.

Võrk

IP Domeen Hosting-teenuse pakkuja Esmakordne avastamine Andmed
Puudub wamanharipethe.s3.ap-south-1.amazonaws[.]com Puudub 14.04.2025 Ohustatud S3 frp-konfiguratsioonide ja andmete väljavoolu tõttu.
45.77.13[.]67 Puudub Vultr Holdings, LLC 7. aprill 2025 WormSocket veebisoketi server.
64.176.85[.]158 Puudub The Constant Company, LLC 28.06.2025 SmuxProxy server.
104.243.23[.]43 Puudub IT7 Networks Inc 09.04.2025 SmuxProxy server.
108.61.200[.]151 Puudub Vultr Holdings, LLC 10.04.2025 WormFrp proksiserver.
144.168.60[.]233 Puudub IT7 Networks Inc 30.06.2025 SmuxProxy serveril avastati pöörd-shell IP.

MITRE ATT&CK-tehnikad

See tabel on koostatud MITRE ATT&CK raamistiku versiooni 19 alusel.

Taktika ID Nimi Kirjeldus
Luure T1595.002 Aktiivne skannimine: haavatavuste skannimine Webworm kasutas sihtmärkide vastu avatud lähtekoodiga haavatavuste skannerit Nuclei.
T1595.003 Aktiivne skannimine: sõnastikupõhine skannimine Webworm kasutas sihtmärkide veebikataloogide skannimiseks sõnastikku kasutavat dirsearchi.
Ressursside arendamine T1588.006 Võimaluste hankimine: haavatavused Webworm kasutas avalikult kättesaadavat ekspluateerimiskoodi autentimisejärgseks kaugkoodi täitmiseks.
T1583.004 Infrastruktuuri omandamine: server WormFrp, SmuxProxy ja WormSocket serverid asuvad Vultr ja IT7 Network ASN-idel töötavates pilveteenustes.
T1583.003 Infrastruktuuri hankimine: virtuaalne eraserver Webworm kasutab SoftEther VPN-servereid, mida on nähtud Vultri pilveteenustes.
T1584.006 Infrastruktuuri ohustamine: veebiteenused Webworm on ohustanud S3-salvestusruume ning kasutanud selliseid tööriistu nagu nuclei, et leida jalgealust.
T1608.002 Etapivõimalused: üleslaadimistööriist Webworm paigutas oma GitHubi hoidlasse vahendid, mida sai otse ohustatud süsteemidesse alla laadida.
Täitmine T1059.003 Käskude ja skriptide tõlgendaja: Windows Command Shell EchoCreep ja GraphWorm kasutavad mõlemad Windows-i käsurea operaatori käskude täitmiseks.
T1053.005 Planeeritud ülesanne/töö: planeeritud ülesanne EchoCreep käivitatakse spetsiaalselt loodud MicrosoftSSHUpdate planeeritud ülesande raames.
Püsivus T1547.001 Käivitamine käivitamisel või sisselogimisel: registri käivitusvõtmed / käivituskaust GraphWorm säilitab püsivuse, tehes muudatusi registri käivitusvõtmetes.
Kaitsemeetmete kahjustamine T1070.004 Indikaatori eemaldamine: failide kustutamine GraphWorm puhastab loodud majakafaili pärast edukat üleslaadimist.
T1112 Registri muutmine GraphWorm teeb registri Run-võtmetesse muudatusi püsivuse tagamiseks.
T1027.013 Varjatud failid või teave: krüpteeritud/kodeeritud fail GraphWorm ja EchoCreep kasutavad andmete varjamiseks krüpteerimis- ja kodeerimistehnikaid.
T1550.001 Kasuta alternatiivset autentimismaterjali: rakenduse juurdepääsutoken GraphWorm ja EchoCreep kasutavad API-võtmeid suhtlemiseks C&C-infrastruktuuriga.
T1078.004 Kehtivad kontod: pilvekontod GraphWorm kasutab kehtivat pilvekontot, et pääseda juurde Microsoft Graph API-dele.
T1070.006 Indikaatori eemaldamine: Timestomp EchoCreep sisaldab muudetud ajamärgise atribuuti.
Külgsuunaline liikumine T1021.007 Kaugteenused: pilveteenused Webworm kasutab ohustatud S3-salvestusruumi failide vahepealseks hoiustamiseks.
Kogumine T1005 Andmed kohalikust süsteemist Nii EchoCreep kui ka GraphWorm suudavad koguda andmeid kohalikust süsteemist.
T1074.001 Andmete vahepealne salvestamine: kohalik andmete vahepealne salvestamine GraphWorm paigutab majakafaili kohalikult enne üleslaadimist C&C-sse.
T1074.002 Andmete vahepealne salvestamine: andmete vahepealne salvestamine kaugjuhtimisserverisse GraphWorm paigutab failid ja ülesanded OneDrive’i Microsoft Graph API kaudu.
Juhtimine ja kontroll T1071.001 Rakenduskihi protokoll: veebiprotokollid EchoCreep, GraphWorm ja WormSocket kasutavad HTTP- ja WebSocket-protokolli.
T1132.001 Andmete kodeerimine: standardkodeerimine EchoCreep, GraphWorm ja WormSocket kasutavad base64 kodeeringut.
T1573.002 Krüpteeritud kanal: asümmeetriline krüptograafia EchoCreep, GraphWorm, WormSocket ja WormFrp kasutavad mingil määral AES-i.
T1090.003 Proxy: mitme hüppe proxy WormSocket ja ChainWorm loovad mitme vahepealse proksiga ühenduse.
T1090.002 Proxy: välisproxy WormFrp, ChainWorm, WormSocket, SmuxProxy ja GraphWorm suudavad ühenduda väliste proksidega.
T1090.001 Proksi: sisemine proksi ChainWorm ja WormSocket suudavad luua sisemisi proksisid.
T1102.002 Veebiteenus: kahesuunaline side EchoCreep ja GraphWorm kasutavad C&C-infrastruktuuriks Discordi ja Microsoft Graph API-d.
Andmete väljavool T1041 Andmete väljavool C2-kanali kaudu EchoCreep ja GraphWorm eksfiltreerivad andmeid oma vastavatesse C&C-infrastruktuuridesse.
T1567.002 Andmete väljavool veebiteenuse kaudu: andmete väljavool pilvesalvestusse GraphWorm eksfiltreerib andmeid OneDrive’i kaudu Microsoft Graph API kaudu.

Loe täismahus analüüsi WeLiveSecurity veebist →