Buer, a new loader emerges in the underground marketplace

Overview

Sinds enkele jaren volgen Proofpoint-onderzoekers het gebruik van first-stage downloaders, die door dreigingsactoren worden gebruikt om andere vormen van malware te installeren tijdens en na hun kwaadaardige e-mailcampagnes. Met name de afgelopen twee jaar zijn deze downloaders steeds robuuster geworden en bieden ze geavanceerde profilerings- en targetingmogelijkheden.

Belangrijker is dat downloaders en andere malware zoals botnets en banking trojans ransomware hebben verdrongen als primaire payloads, waardoor dreigingsactoren de flexibiliteit hebben om een scala aan malware in te zetten in secundaire infecties. Een van de meest voorkomende, Smoke Loader, is bijvoorbeeld op grote schaal gebruikt om payloads zoals Ursnif en The Trick banking Trojans te droppen, maar ook om zijn eigen modules te gebruiken voor het stelen van credentials en andere informatie en gegevens, naast andere kwaadaardige functies.

Sinds eind augustus 2019 hebben onderzoekers van Proofpoint de ontwikkeling en verkoop van een nieuwe modulaire loader met de naam Buer door de auteurs ervan gevolgd. Buer heeft functies die sterk concurreren met Smoke Loader, wordt actief verkocht op prominente ondergrondse marktplaatsen, en is bedoeld voor gebruiksactoren die op zoek zijn naar een kant-en-klare, kant-en-klare oplossing.

Campagnes

August 28, 2019

Op 28 augustus observeerden Proofpoint-onderzoekers kwaadaardige e-mailberichten die een antwoord lijken te zijn op eerdere legitieme e-mailconversaties. Ze bevatten Microsoft Word-bijlagen die Microsoft Office-macro’s gebruiken om de volgende fase van de payload te downloaden.

Figuur 1: Voorbeeld van Microsoft Word-bijlage gebruikt in de campagne van 28 augustus 2019

We observeerden dat de volgende fase van de payload werd gedownload van URL’s met inbegrip van:

hxxp://jf8df87sdfd.yesteryearrestorationsnet/gate.php

hxxp://93345fdd.libertycolegioscom/gate.php

De gedropte payload kreeg de naam verinstere222.xls of verinstere33.exe (een naamgevingsconventie die de acteur in die periode gebruikte). In plaats van de Dreambot-variant van Ursnif die vaak wordt geassocieerd met deze acteur, was de payload een ongedocumenteerde loader die nog niet eerder in het wild was waargenomen.

In de daaropvolgende weken in september en oktober hebben onderzoekers van Proofpoint en andere leden van de infosec-gemeenschap verschillende campagnes van dezelfde acteur waargenomen die ofwel de Dreambot-variant van Ursnif of deze nieuwe loader lieten vallen.

October 10, 2019

Op 10 oktober observeerden Proofpoint-onderzoekers een malvertising-campagne in Australië die doorverwees naar de Fallout Exploit Kit (EK) en de nieuwe loader dropte.

Figuur 2: HTTP-netwerkverkeerstrace met de Fallout EK die kwetsbare browsers uitbuit

De loader dropte vervolgens verschillende tweede-fase malware payloads waaronder KPOT stealer, Amadey, en Smoke Loader.

October 21, 2019

Sinds begin juli hebben Proofpoint-onderzoekers ongeveer 100 campagnes waargenomen waarbij Ostap bijna uitsluitend verschillende instanties van The Trick laadde. Op de 21 observeerden Proofpoint-onderzoekers echter kwaadaardige e-mailberichten met onderwerpregels als “Boetebericht # PKJWVBP” die Microsoft Word-bijlagen bevatten. De documenten bevatten macro’s die, indien ingeschakeld, Ostap zouden uitvoeren. We hebben waargenomen dat Ostap deze loader downloadde van

hxxps://185.130.104187/nana/kum.php?pi=18b&

die op zijn beurt The Trick “ono22” laadde van zijn C&C: garrisontxus

Figuur 3: Netwerkverkeer dat is waargenomen zodra de macro in de schadelijke documenten is ingeschakeld.

Figuur 4: Voorbeeld van Microsoft Word-bijlage gebruikt in de 21 oktober-campagne

Marktplaats & Eigenschapanalyse

Omdat we deze nieuwe lader in meerdere, verschillende campagnes in gebruik zagen, verwachtten we dat hij op een ondergrondse marktplaats aan meerdere actoren werd verkocht. Bovendien ontdekten we een advertentie van 16 augustus op een ondergronds forum waarin een loader met de naam “Buer” werd beschreven die overeenkwam met de functionaliteit van de malware die in de bovenstaande campagnes was waargenomen.

De functies die in de daaropvolgende weken werden toegevoegd en waarvoor werd geadverteerd, komen precies overeen met de evolutie van de loader die in deze campagnes werd aangetroffen.

We vonden tekst terug van een bulletinboard-post van de auteur, in het Russisch, waarin deze vraagt om een betaling van $ 400 voor de malware en zijn diensten aanbiedt om de software voor potentiële klanten in te stellen om deze aan de gang te krijgen. De auteur merkt ook op dat updates en bugfixes gratis zijn, maar dat er een toeslag van $25 wordt gerekend voor “rebuild to new addresses.”

De volgende tekst, die Proofpoint ook van de ondergrondse marktplaats heeft gehaald en die vermoedelijk is geschreven door de auteur van de malware, is een samenvatting van de functionaliteit van de loader zoals beschreven in het oorspronkelijke Russisch:

Figuur 5. Tekst van een ondergronds forumbericht dat de functionaliteit van de Buer Loader-bot beschrijft

Ook in de advertentie wordt de functionaliteit van het controlepaneel vermeld. De auteur merkt op dat de modulaire bot volledig in C is geschreven, met behulp van een controlepaneel geschreven in .NET Core, waarbij de nadruk ligt op hogere prestaties in zowel de client als de server als gevolg van de keuze van de programmeertaal.

  • Volgens de beschrijving heeft de bot een totale payload van 55 tot 60 kilobytes, functioneert als een native Windows executable en dynamic link library, draait volledig in resident geheugen, en is compatibel met 32-bit en 64-bit Microsoft Windows-besturingssystemen.
  • De bot communiceert via een HTTPS-verbinding en kan op afstand worden bijgewerkt vanuit het configuratiescherm na zowel de decryptie als de rebuild.
  • De auteur merkt ook op dat de loader draait als een surrogaatproces van een vertrouwde toepassing, en functioneert met behulp van privileges op gebruikersniveau.
  • Het meest opmerkelijk is dat de software niet zal draaien in het GOS (voormalige Sovjet-staten, zoals Rusland).

De advertentie beschrijft de volgende kenmerken voor de server en het bedieningspaneel:

  • Het bedieningspaneel wordt geadverteerd als zijnde ook geschreven in .NET Core, met vermelding van eenvoudige installatie op Ubuntu / Debian Linux-serversystemen.
  • De server biedt een breed scala aan statistieken, waaronder tellers voor online, levende, dode en totale bots; een real-time update voor de lijst van bots; een bestand downloadteller; en een mogelijkheid om systemen te filteren op type besturingssysteem, toegangsrechten van geïnstalleerde bots, en het aantal logische CPU-kernen.
  • Gedownloade bestanden van de geïnfecteerde systemen worden versleuteld opgeslagen op de server, waarbij toegang wordt verleend door een token.
  • Het belangrijkste, net als de bots zelf, merkt de auteur op dat de server geen API-verzoeken verwerkt die zijn verzonden vanuit landen die lid zijn van het GOS.

Het forumbericht bevatte ook technische release-opmerkingen voor de Buer-lader en het controlepaneel (versie 1.1.2). In de inleiding merkte de auteur op dat het starten van de loader nu uit drie stappen bestaat — als de eerste twee stappen niet succesvol zijn op het geïnfecteerde systeem, en de injectie in het surrogaat proces mislukt (bijvoorbeeld door incompatibiliteit met de crypt zelf), zal de loader in plaats daarvan onder zijn eigen proces worden uitgevoerd.

De release notes noemen het volgende voor de loader:

  • De loader gebruikt een FastFlux architectuur.
  • De loader werkt vanuit een vertrouwd proces binnen Microsoft Windows. Het MemLoadEx proces ondersteunt nu x64 exe als een vertrouwde toepassing.
  • MemLoad is bijgewerkt en ondersteunt nu native x32 exe.

De release notes noemen de volgende functies voor het controle paneel:

  • API toegang wordt bereikt met behulp van HTTPS met ondersteuning voor zelf-ondertekende certificaten.
  • Ondersteuning voor het bewerken van taken in het paneel. De gebruiker kan de taak tijdens de uitvoering stoppen en de payload en het aantal uitvoeringen wijzigen.
  • De mogelijkheid is toegevoegd om een taak aan te maken op basis van bot ID. Zeer geschikt voor puntladingen.
  • Een stap-voor-stap venster voor het maken van taken.
  • Een notificatie die u in staat stelt om te leren over de nodige bots online.
  • De uniciteit van de bot ID is verhoogd.
  • Tags zijn toegevoegd aan het paneel, waardoor het mogelijk is om bots te sorteren voor latere acties met hen.
  • De naam van de computer wordt weergegeven in de tabel.
  • Verbeterd crypto compatibiliteit.
  • Bot geschiedenis toegevoegd.
  • “Het paneel breidt zich nu uit naar Docker” (Docker container ondersteuning).
    • Proofpoint Researcher Opmerking: We veronderstellen dat deze functie is voor het gemak van integratie in gehuurde Docker hosts, het vereenvoudigen van de installatie, hoewel mogelijk het paneel/C&C kan worden geïnstalleerd op een gecompromitteerde Docker host.
  • Validatie op het bestand op het paneel. Nu zal het paneel het bestand niet missen dat de loader niet kan downloaden en zal de client hiervan op de hoogte stellen.
  • Taken kunnen nu worden herhaald.

Tot slot beschreef de auteur de volgende technische wijzigingen voor versie 1.1.9. Deze zijn opmerkelijk omdat ze aantonen dat de malware in actieve, professionele ontwikkeling is.

  • De loader heeft een nieuwe methode gekregen voor het starten van Externe voor lokale bestanden. De voordelen van de methode zijn uniciteit en geen CreateProcess / ShellExecute door de loader. De lancering produceert een vertrouwd proces zonder enige commando’s aan het.
  • Het paneel heeft de mogelijkheid om alle bots die een specifieke taak hebben uitgevoerd taggen. Dit stelt de gebruiker in staat om de payload te verdelen over bepaalde groepen bots.
  • Integratie API geïmplementeerd. Beschikbare documentatie voor it.
  • De mogelijkheid toegevoegd om een bestand per referentie in proxy-modus te verzenden. Het bestand wordt versleuteld naar de bot verstuurd.
  • De bug van het tellen van bots per land is verholpen en andere verbeteringen zijn toegevoegd.

Configuratiescherm Screenshots

De volgende configuratiescherm screenshots zijn opgenomen in de ondergrondse advertentie, en laten een aantal van de back-end mogelijkheden zien die beschikbaar zijn voor klanten, inclusief telemetrie monitoring, host filtering, en meer.

Figuur 6: Control panel login UX voor de Buer Loader C&C

Figuur 7: Bot telemetrie monitoring scherm voor het Buer controle paneel.

Figuur 8: Bot telemetrie monitoring scherm in donkere modus voor het Buer controle paneel.

Figuur 9: Controle paneel filter weergave met weergave van remote bots gefilterd door Microsoft Windows architectuur.

Figuur 10: Weergave van het bedieningspaneel met bestandsbeheer voor laadtaken

Figuur 11: Weergave van het bedieningspaneel van externe bots gesorteerd op gebruikersrechten.

Figuur 12: Weergave bedieningspaneel, taakstatus

Figuur 13: Weergave bedieningspaneel, maken van een taak

Malware-analyse

Buer Loader is een nieuwe downloader-malware die extra payloads downloadt en uitvoert.

Anti-analyse functies

De loader bevat wat basis anti-analyse functionaliteit:

  • Controleert op debuggers door de NtGlobalFlag in het Process Environment Block (PEB) en Thread Environment Block (TEB) te inspecteren
  • Controleert op virtuele machines met behulp van de Red Pill , No Pill , en verwante mechanismen
  • Controleert de locale om er zeker van te zijn dat de malware niet in specifieke landen wordt uitgevoerd (figuur 14)

Figuur 14: Malware controleren om er zeker van te zijn dat deze niet in specifieke landen wordt uitgevoerd

Persistentie

Persistentie wordt ingesteld door een register RunOnce-vermelding te configureren. Afhankelijk van de versie, zal de registervermelding de malware direct uitvoeren of een taak plannen om het uit te voeren.

Gecodeerde tekenreeksen

Dit voorbeeld bevat een functie om tekenreeksen te coderen.

Figuur 15: Ontcijferingsreeks voor tekenreeksen

De volgende functie is een voorbeeld van hoe de versleutelde tekenreeksen in Ghidra met behulp van Jython kunnen worden ontcijferd:

Figuur 16: Ontcijferingsreeks voor tekenreeksen (Python-versie)

Figuur 17: Voorbeeld van ontcijfering van tekenreeksen

Windows API-aanroepen

Dit voorbeeld gebruikt een hashing-algoritme om de meeste van zijn Windows API-aanroepen op te lossen. Het hashing algoritme zorgt ervoor dat elk karakter van de API naam een hoofdletter is. Vervolgens wordt elk teken 13 keer naar rechts gedraaid (ROR) en bij elkaar opgeteld.

Figuur 18: Hashing-algoritme om Windows API-oproepen op te lossen

De volgende functie is een voorbeeld van hoe Python kan worden gebruikt om te helpen bij het oplossen van de API-oproepen.

Figuur 19: Voorbeeld van Python-script dat wordt gebruikt om gehashte Windows API-oproepen te helpen oplossen

De volgende tabel bevat een lijst met enkele geselecteerde hashes die zijn gebruikt en de bijbehorende Windows API-naam:

CreateMutexW

0xed619452

OpenMutexW

0x7bffe25e

CreateProcessW

0xb4f0f46f

WinHttpOpen

0xaf7f658e

WinHttpCrackUrl

0x8ef04f02

WinHttpConnect

0x9f47a05e

WinHttpOpenRequest

0x1dd1d38d

Tabel 1: Windows API-oproepen met geselecteerde hashes

Command and Control

Command and control (C&C) functies worden afgehandeld via HTTP(S) GET-verzoeken. Een voorbeeld van een opdrachtbaken ziet er als volgt uit:

Figuur 20: Voorbeeld van een opdrachtbaken

Deze verzoeken gaan naar de “update-API” en bevatten een versleutelde parameter. Deze parameter kan worden gedecodeerd door:

  1. Base64-decodering
  2. Hex-decodering
  3. RC4-decodering (de sleutel die in de geanalyseerde monsters werd gebruikt was “CRYPTO_KEY”)

Een voorbeeld van de onbewerkte parameter is:

88a5e68a2047fa5ebdc095a8500d8fae565a6b225ce94956e194b4a0e8a515ae|ab21d61b35a8d1dc4ffb3cc4b75094c31b8c00de3ffaaa17ce1ad15e876dbd1f|Windows 7|x64|4|Admin|RFEZOWGZPBYYOI

Het bevat door een pipe-gelimiteerde gegevens bestaande uit:

  • Bot ID (SHA-256 hex digest van diverse systeemparameters zoals hardware profiel GUID en naam, computer naam, volume serienummer, en CPUID)
  • Een SHA-256 hash van zijn eigen uitvoerbare image
  • Windows-versie
  • Architectuurtype
  • Aantal processors
  • Gebruikersrechten
  • Computernaam

Een voorbeeld van een opdrachtbaken-antwoord wordt getoond in Figuur 21:

Figuur 21: Voorbeeld van een opdrachtbakenantwoord

Het kan op dezelfde manier worden gedecodeerd als de verzoekparameter hierboven, behalve dat de hex-gecodeerde bytes worden gescheiden door streepjes. Een voorbeeld van een antwoord in platte tekst is te zien in figuur 22:

Figuur 22: Antwoord op commando baken in platte tekst

De gedecodeerde tekst is een JSON-object met verschillende opties voor het downloaden en uitvoeren van een payload:

  • type – er zijn twee types:
    • update – update zelf
    • download_and_exec – downloaden en uitvoeren
  • options – specificeert opties voor de te downloaden payload:
    • Hash – alleen van toepassing op “update”-type om te bepalen of een nieuwe update beschikbaar is
    • x64 – of de payload 64-bit is
    • FileType – niet gebruikt in geanalyseerde monsters
    • AssemblyType – niet gebruikt in geanalyseerde monsters
    • niet gebruikt in geanalyseerde steekproeven

  • AccessToken – gebruikt om de payload te downloaden (zie hieronder)
  • External – geeft aan of de payload wordt gedownload van de C&C of een externe URL
  • method – methode van uitvoering:
    • exelocal – proces aanmaken
    • memload – payload injecteren en handmatig laden
    • memloadex – payload injecteren en handmatig laden
    • loaddllm – payload injecteren en handmatig laden
  • parameters – parameters om door te geven op de commandoregel
  • pathToDrop – niet gebruikt in geanalyseerde voorbeelden
  • autorun – geeft aan of register RunOnce persistentie moet worden ingesteld voor de payload
  • modules – zie Modules sectie hieronder
  • timeout – niet gebruikt in geanalyseerde voorbeelden
  • Payloads die van de C&C server worden gedownload, worden gedaan via verzoeken aan de “download API”, zoals te zien is in Figuur 23:

    Figuur 23: Payload downloaden van C&C

    Een voorbeeld van de plaintext request parameter is hieronder te zien:

    88a5e68a2047fa5ebdc095a8500d8fae565a6b225ce94956e194b4a0e8a515ae|58007044-67d4-4963-9f5f-400dfbc69e74

    Het bevat de bot’s ID en “AccessToken” van het commando beacon antwoord. Als de payload van de C&C is gedownload, is deze versleuteld met RC4. In de geanalyseerde monsters was de sleutel “CRYPTO_KEY”.

    Modules

    De command beacon respons bevat een “modules” lijst. Onderzoekers van Proofpoint hebben nog niet waargenomen dat Buer modules in het wild gebruikt, maar op basis van de code zal deze lijst module AccessTokens bevatten. De bestandsnaam van de module wordt opgevraagd door een AccessToken te sturen naar de “module API” van de C&C. De module wordt dan gedownload met de “downloadmodule API”. Eenmaal gedownload en gedecodeerd, wordt het geladen met behulp van de “loaddllmem” methode.

    Conclusie

    Een nieuwe downloader, Buer, is onlangs verschenen in een verscheidenheid van campagnes, via malvertising die leidt tot exploit kits; als een secundaire payload via Ostap; en als een primaire payload die malware downloadt, zoals The Trick banking Trojan.

    De nieuwe loader heeft robuuste geotargeting, systeemprofilering en anti-analyse functies en wordt momenteel op de markt gebracht op ondergrondse forums met setup diensten met toegevoegde waarde. De Russischtalige auteur(s) is (zijn) actief bezig met de ontwikkeling van de downloader met geavanceerde controlepanelen en een rijke functieset, waardoor de malware concurrerend wordt op ondergrondse markten.

    De downloader is geschreven in C, terwijl het controlepaneel is geschreven in .NET core, wat duidt op optimalisatie voor prestaties en een kleine download-voetafdruk, evenals de mogelijkheid om het controlepaneel eenvoudig te installeren op Linux-servers – ingebouwde ondersteuning voor Docker-containers zal de verspreiding ervan op gehuurde hosts die worden gebruikt voor kwaadaardige doeleinden, en mogelijk ook gecompromitteerde hosts, nog verder vergemakkelijken. De laatste mogelijkheid is opgenomen in de geadverteerde functies en release notes.

    https://www.cert.pl/en/news/single/ostap-malware-analysis-backswap-dropper/

    https://www.proofpoint.com/us/threat-insight/post/ostap-bender-400-ways-make-population-part-with-their-money

    https://www.aldeid.com/wiki/X86-assembly/Instructions/sidt

    https://www.aldeid.com/wiki/X86-assembly/Instructions/sldt

    Indicators of Compromise (IOC’s)

    IOC

    IOC Type

    Description

    fa699eab565f613df563ce47de5b82bde16d69c5d0c05ec9fc7f8d86ad7682ce

    sha256

    http[://45.76.247[.177:8080/api/update/

    URL

    Buer C&C callback

    6c694df8bde06ffebb8a259bebbae8d123effd58c9dd86564f7f70307443ccd0

    sha256

    197163b6eb2114f3b565391f43b44fb8d61531a23758e35b11ef0dc44d349e90

    sha256

    https[://173.212.204[.171/api/update/

    URL

    Buer C&C callback

    9e8db7a722cc2fa13101a306343039e8783df66f4d1ba83ed6e1fe13eebaec73

    sha256

    (Fallout Drop)

    http[://134.0.119[.53:8080/api/update/

    URL

    Buer C&C callback

    ab21d61b35a8d1dc4ffb3cc4b75094c31b8c00de3ffaaa17ce1ad15e876dbd1f

    sha256

    (Ostap drop)

    https[://garrisontx[.us/api/update/

    URL

    Buer C&C callback

    https[://185.130.104[.187/nana/kum.php?pi=18b

    URL

    Ostap instance dropping Buer – 2019-10-21

    753276c5887ba5cb818360e797b94d1306069c6871b61f60ecc0d31c78c6d31e

    sha256

    Buer 2019-.11-28

    ffload01[.top|185.125.58[.11

    ffload01[.top|185.186.141[.129

    domein|IP

    Buer C&C 2019-11-28

    ET en ETPRO Suricata/Snort Handtekeningen

    2029077 || ET TROJAN Buer Loader Update Request

    2029079 || ET TROJAN Buer Loader Response

    2029078 || ET TROJAN Buer Loader Download Verzoek

    2839684 || ET TROJAN Buer Loader Succesvolle Payload Download

    2029080 || SSL/TLS Certificaat Waargenomen (Buer Loader)

    Plaats een reactie