De avonturen van de ongrijpbare malware, deel IV: DDE- en Word-documentvelden

De avonturen van de ongrijpbare malware, deel IV: DDE- en Word-documentvelden

Dit artikel maakt deel uit van de serie Fileless Malware. Alle andere delen van de serie:

In dit artikel ging ik dieper in op een nog complexer meerfasig bestandsloos aanvalsscenario met vastzetten op het systeem. Maar toen kwam ik een ongelooflijk eenvoudige aanval tegen, zonder code: geen Word- of Excel-macro's vereist! En dit bewijst veel effectiever mijn oorspronkelijke hypothese die ten grondslag ligt aan deze reeks artikelen: het doorbreken van de buitenste perimeter van welke organisatie dan ook is helemaal geen moeilijke taak.

De eerste aanval die ik zal beschrijven maakt misbruik van een Microsoft Word-kwetsbaarheid die is gebaseerd op verouderd dynamisch gegevensuitwisselingsprotocol (DDE). Dat was ze al vast. De tweede maakt misbruik van een meer algemene kwetsbaarheid in Microsoft COM en de mogelijkheden voor objectoverdracht.

Terug naar de toekomst met DDE

Herinnert iemand zich nog DDE? Waarschijnlijk niet veel. Het was een van de eerste communicatieprotocollen tussen processen waarmee applicaties en apparaten gegevens konden overbrengen.

Zelf ben ik er een beetje bekend mee omdat ik vroeger telecomapparatuur controleerde en testte. Destijds stond DDE bijvoorbeeld toe dat callcenteroperators de nummerherkenning overzetten naar een CRM-applicatie, die uiteindelijk een klantenkaart opende. Om dit te doen, moest u een RS-232-kabel aansluiten tussen uw telefoon en uw computer. Dat waren de dagen!

Het blijkt dat Microsoft Word nog steeds bestaat ondersteunt de DDE.

Wat deze aanval zonder code effectief maakt, is dat je toegang hebt tot het DDE-protocol rechtstreeks van automatische velden in een Word-document (petje af voor SensePost voor onderzoek en publicaties over het).

Veldcodes is een andere oude MS Word-functie waarmee u dynamische tekst en een beetje programmeerwerk aan uw document kunt toevoegen. Het meest voor de hand liggende voorbeeld is het paginanummerveld, dat in de voettekst kan worden ingevoegd met de waarde {PAGE *MERGEFORMAT}. Hierdoor kunnen paginanummers automatisch worden gegenereerd.

De avonturen van de ongrijpbare malware, deel IV: DDE- en Word-documentvelden
Tip: U vindt het menu-item Veld onder Invoegen.

Ik herinner me dat ik verbaasd was toen ik deze functie voor het eerst in Word ontdekte. En totdat de patch dit uitschakelde, ondersteunde Word nog steeds de optie DDE-velden. Het idee was dat DDE Word in staat zou stellen rechtstreeks met de applicatie te communiceren, zodat het de uitvoer van het programma vervolgens in een document zou kunnen doorgeven. Het was destijds een heel jonge technologie: ondersteuning voor gegevensuitwisseling met externe applicaties. Het werd later ontwikkeld tot COM-technologie, die we hieronder ook zullen bekijken.

Uiteindelijk realiseerden de hackers zich dat deze DDE-applicatie een commandoshell kon zijn, die uiteraard PowerShell lanceerde, en van daaruit konden de hackers doen wat ze wilden.
De onderstaande schermafbeelding laat zien hoe ik deze stealth-techniek heb gebruikt: een klein PowerShell-script (hierna PS genoemd) uit het DDE-veld laadt een ander PS-script, dat de tweede fase van de aanval start.

De avonturen van de ongrijpbare malware, deel IV: DDE- en Word-documentvelden
Dank aan Windows voor de pop-upwaarschuwing dat het ingebouwde DDEAUTO-veld in het geheim probeert de shell te starten

De voorkeursmethode om misbruik te maken van het beveiligingslek is het gebruik van een variant met het DDEAUTO-veld, dat het script automatisch uitvoert bij het openen Word document.
Laten we eens nadenken over wat we hieraan kunnen doen.

Als beginnende hacker kun je bijvoorbeeld een phishing-e-mail sturen, waarin je doet alsof je van de federale belastingdienst bent, en het DDEAUTO-veld insluiten met het PS-script voor de eerste fase (in wezen een dropper). En je hoeft niet eens echt macro's enz. te coderen, zoals ik deed in vorig artikel.
Het slachtoffer opent uw document, het ingebedde script wordt geactiveerd en de hacker belandt in de computer. In mijn geval drukt het externe PS-script alleen een bericht af, maar het kan net zo goed de PS Empire-client starten, die externe shell-toegang biedt.
En voordat het slachtoffer tijd heeft om iets te zeggen, blijken de hackers de rijkste tieners van het dorp te zijn.

De avonturen van de ongrijpbare malware, deel IV: DDE- en Word-documentvelden
De shell werd gelanceerd zonder het minste beetje codering. Zelfs een kind kan het!

DDE en velden

Microsoft heeft DDE later in Word uitgeschakeld, maar niet voordat het bedrijf verklaarde dat de functie eenvoudigweg werd misbruikt. Hun onwil om iets te veranderen is begrijpelijk. In mijn ervaring heb ik zelf een voorbeeld gezien waarbij het bijwerken van velden bij het openen van een document was ingeschakeld, maar Word-macro's door IT waren uitgeschakeld (maar er werd wel een melding weergegeven). Overigens kun je de bijbehorende instellingen vinden in het gedeelte Word-instellingen.

Maar zelfs als het bijwerken van velden is ingeschakeld, waarschuwt Microsoft Word de gebruiker bovendien wanneer een veld toegang vraagt ​​tot verwijderde gegevens, zoals het geval is met DDE hierboven. Microsoft waarschuwt je echt.

Maar hoogstwaarschijnlijk zullen gebruikers deze waarschuwing nog steeds negeren en de veldenupdate in Word activeren. Dit is een van de zeldzame kansen om Microsoft te bedanken voor het uitschakelen van de gevaarlijke DDE-functie.

Hoe moeilijk is het tegenwoordig om een ​​ongepatcht Windows-systeem te vinden?

Voor deze tests heb ik AWS Workspaces gebruikt om toegang te krijgen tot een virtuele desktop. Op deze manier kreeg ik een niet-gepatchte virtuele MS Office-machine waarmee ik het DDEAUTO-veld kon invoegen. Ik twijfel er niet aan dat je op een vergelijkbare manier andere bedrijven kunt vinden die de noodzakelijke beveiligingspatches nog niet hebben geïnstalleerd.

Mysterie van objecten

Zelfs als u deze patch wel zou installeren, zijn er nog andere beveiligingslekken in MS Office waardoor hackers iets kunnen doen dat sterk lijkt op wat wij met Word deden. In het volgende scenario zullen we leren gebruik Excel als lokaas voor een phishing-aanval zonder code te schrijven.

Laten we, om dit scenario te begrijpen, het Microsoft Component Object Model, of kortweg, onthouden COM (Componentobjectmodel).

COM bestaat al sinds de jaren negentig en wordt gedefinieerd als een "taalneutraal, objectgeoriënteerd componentmodel", gebaseerd op RPC-procedureoproepen op afstand. Voor een algemeen begrip van COM-terminologie, lees deze post op StackOverflow.

Kortom, u kunt een COM-toepassing zien als een uitvoerbaar Excel- of Word-bestand, of een ander binair bestand dat wordt uitgevoerd.

Het blijkt dat een COM-applicatie ook kan draaien het script — JavaScript of VBScript. Technisch gezien heet het scriptje. Mogelijk heb je de .sct-extensie voor bestanden in Windows gezien - dit is de officiële extensie voor scriptlets. In wezen zijn het scriptcodes verpakt in een XML-wrapper:

<?XML version="1.0"?>

<scriptlet>
<registration
description="test"
progid="test"
version="1.00"
classid="{BBBB4444-0000-0000-0000-0000FAADACDC}"
remotable="true">
</registration>
<script language="JScript">
<![CDATA[

var r = new ActiveXObject("WScript.Shell").Run("cmd /k powershell -c Write-Host You have been scripted!");

]]>
</script>
</scriptlet>

Hackers en pentesters hebben ontdekt dat er in Windows afzonderlijke hulpprogramma's en toepassingen zijn die COM-objecten accepteren, en dus ook scriptlets.

Ik kan een scriptlet doorgeven aan een Windows-hulpprogramma geschreven in VBS, bekend als pubprn. Het bevindt zich in de diepten van C:Windowssystem32Printing_Admin_Scripts. Er zijn trouwens andere Windows-hulpprogramma's die objecten als parameters accepteren. Laten we eerst naar dit voorbeeld kijken.

De avonturen van de ongrijpbare malware, deel IV: DDE- en Word-documentvelden
Het is heel normaal dat de shell zelfs vanuit een printscript kan worden gestart. Ga voor Microsoft!

Als test heb ik een eenvoudig scriptlet op afstand gemaakt dat een shell start en een grappig bericht afdrukt: "Er is zojuist een script voor je gemaakt!" In wezen instantiëert pubprn een scriptletobject, waardoor VBScript-code een wrapper kan uitvoeren. Deze methode biedt een duidelijk voordeel voor hackers die binnen willen sluipen en zich op uw systeem willen verstoppen.

In het volgende bericht zal ik uitleggen hoe COM-scriptlets door hackers kunnen worden uitgebuit met behulp van Excel-spreadsheets.

Voor je huiswerk, kijk eens Deze video uit Derbycon 2016, waarin precies wordt uitgelegd hoe hackers scriptlets gebruikten. En ook lezen dit artikel over scriptlets en een soort naam.

Bron: www.habr.com

Voeg een reactie