Blijf alert – Malware-auteurs implementeren ELF als Windows Loaders om de WSL-functie te exploiteren


Wat is WSL?

Het Windows-subsysteem voor Linux (WSL) is een bron binnen het Windows-besturingssysteem waarmee gebruikers Linux-opdrachtregels kunnen uitvoeren op een computer met het Windows-besturingssysteem. Het Windows-subsysteem voor Linux maakt gebruik van een toepassing die bekend staat als Bash.exe, waarmee een Linux-dialoogvenster wordt gestart in de interface van het Windows-besturingssysteem. Dit kan worden beschouwd als een “shell”-toepassing die binnen Windows wordt uitgevoerd.

Er is een nieuwe aanvalsketen gaande waarbij aanvallers zich richten op de WSL-omgeving. De bestanden zijn geschreven in Python 3 en vervolgens, met behulp van PyInstaller, geconverteerd naar een ELF-uitvoerbaar bestand voor Debian Linux. Deze bestanden fungeren als laders die een payload uitvoeren die is ingebed in het monster of wordt opgehaald van een externe server en vervolgens wordt geïnjecteerd in een lopend proces. Dit ambacht kan een acteur in staat stellen om ongemerkt voet aan de grond te krijgen op een gecompromitteerde machine. De ELF-lader heeft twee varianten: de eerste is volledig in Python geschreven, terwijl de tweede Python gebruikt om verschillende Windows-API’s aan te roepen via ctypes en een PowerShell-script te starten om verdere bewerkingen op de hostmachine uit te voeren. Sommige van de voorbeelden bevatten lichtgewicht payloads die zijn gegenereerd door een open-sourcetool zoals Meterpreter. In andere situaties proberen de bestanden shellcode te downloaden van een externe C2.

Figuur 1: Stroomschema

PowerShell wordt gebruikt om de shellcode in sommige voorbeelden te injecteren en uit te voeren, terwijl Python ctypes wordt gebruikt om Windows-API’s in andere op te lossen.

In het PowerShell-voorbeeld roept de gecompileerde python-code drie functies aan met de naam:

  • omgekeerde shell()
  • kill_av()
  • vensterpersistentie()

De omgekeerde shell() functie bevat de PowerShell-nettolading die is gecodeerd met base64-codering op meerdere niveaus. De gedecodeerde PowerShell gebruikte de MSF Venom-payload.

In een oneindige, terwijl ware lus, de omgekeerde shell() functie gebruikt een subproces om elke 20 seconden een Base64-gecodeerd PowerShell-script uit te voeren, waardoor elk ander proces niet kan worden uitgevoerd.

De kill_av() functie doet wat de naam aangeeft: het gebruikt os.popen om verdachte AV-producten en analysetools te proberen te doden ().

De windowspersistentie() function gebruikte een subproces om een ​​registersleutel voor persistentie te maken, waarbij het originele ELF-bestand werd gekopieerd naar de app-gegevenssubmap onder de naam payload.exe.

De payload van Meterpreter biedt een interactieve shell van waaruit een aanvaller de doelmachine kan verkennen en code kan uitvoeren. Meterpreter wordt geïmplementeerd met behulp van in-memory DLL-injectie. Als gevolg hiervan bevindt Meterpreter zich volledig in het geheugen en schrijft niets naar schijf.

Dus in dit geval wordt de Meterpreter-payload geïnjecteerd in Apache HTTP-serverbenchmarkingtool (ab.exe) met behulp van MSF Venom.

De bovenstaande afbeelding toont het laadvermogen van de Meterpreter.

De bovenstaande afbeelding laat zien dat het probeert verbinding te maken met de C2-server voor verdere interactie, maar het mislukt en wordt afgesloten.

Omdat IP niet actief is, kan het geen verbinding maken met de server en daarom konden we geen verdere activiteit traceren.

Volgens de statische analyse die in de bovenstaande afbeelding wordt getoond, ontvangt het na verbinding met de server enkele gegevens waarvoor het virtueel geheugen toewijst, en dan blijft het gegevens in een lus ontvangen totdat het nul wordt. Het maakt geheugen vrij dat is toegewezen en sluit de socket, en dan wordt het afgesloten.

Ook enkele andere IOC’s gevonden die allemaal met hetzelfde IP-adres communiceren. Deze voorbeelden zijn van Telegram Desktop Setup, die een Meterpreter-payload bevat, en de payload is versluierd met Shikata Ga Nai (SGN)-encoder.

SGN is een polymorfe XOR-additieve feedback-encoder. In het geval van XOR-additieve feedback, voert het algoritme toekomstige instructies uit via een willekeurige sleutel en voegt die instructie vervolgens toe aan de sleutel om opnieuw te worden gebruikt om de volgende instructie te coderen. Voor het decoderen van de shellcode moeten de stappen in omgekeerde volgorde worden gevolgd.

Deze encoder maakt meerdere iteraties mogelijk. Hier, in dit geval, heeft het de lading vijf keer gecodeerd

Na het decoderen krijgen we de uiteindelijke Meterpreter-payload zoals hieronder weergegeven.

De verdere activiteit van deze lading is hetzelfde als hierboven.

Conclusie

We raden gebruikers die WSL hebben ingeschakeld, aan om te zorgen voor een goede logboekregistratie om zichzelf te beschermen tegen dit soort aanvallen wanneer bedreigingen proberen deze nieuwe functie van het besturingssysteem te misbruiken. Quickheal beschermt zijn gebruikers door deze te detecteren met de detectienamen ELF.Trojan.44270.GC en Trojan.Swrort

Indicatoren van Compromis (IOC’s):

ELF IoC’s:

  • 53854c6d163bfd0c56d8b297ac43bd25c21f696de6063031241e792ee65df441 ELF.Trojan.44270.GC
  • c297e545b8f150cc5ff56dbb68dc74fe30a421d9d40f38f4a53083192697c44c ELF.Trojan.44270.GC
  • 17921368901f23e0cad0d2fe4ce5694aebaf4727699ed0358117500701914d1b ELF.Trojan.44270.GC
  • 198a2d42df010d838b4207f478d885ef36e3db13b1744d673e221b828c28bf77 ELF.Trojan.44270.GC

PE IoC’s:

  • 85acfee86fd742ac5b6e347cd860324b: Trojan.Swrort.S23689749
  • F15ef7b1c22aa23fa5de99980501b2dc: Trojan.Swrort.S23689749
  • C21e299905613e5cd5d79432934e47e3: Trojan.Swrort.S23689749
  • Ae094056a41854ab04409c6f791194df: Trojan.Swrort.A

Vakexperts:

  • Rahul Pawar, veiligheidsonderzoeker I
  • Rutuja Mane, veiligheidsonderzoeker I

Rutuja Mané



Source link

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.

%d bloggers liken dit: