The Adventures of the Elusive Malware, Del IV: DDE och Word Document Fields

The Adventures of the Elusive Malware, Del IV: DDE och Word Document Fields

Den här artikeln är en del av Fileless Malware-serien. Alla andra delar av serien:

I den här artikeln tänkte jag dyka in i ett ännu mer komplext flerstegs fillöst attackscenario med att fästa på systemet. Men så stötte jag på en otroligt enkel attack utan kod – inga Word- eller Excel-makron krävs! Och detta bevisar mycket mer effektivt min ursprungliga hypotes som ligger till grund för denna serie av artiklar: att bryta den yttre omkretsen av någon organisation är inte en svår uppgift alls.

Den första attacken jag ska beskriva utnyttjar en sårbarhet i Microsoft Word som är baserad på föråldrad dynamiskt datautbytesprotokoll (DDE). Det var hon redan fast. Den andra utnyttjar en mer allmän sårbarhet i Microsofts COM- och objektöverföringsfunktioner.

Tillbaka till framtiden med DDE

Någon mer som kommer ihåg DDE? Förmodligen inte många. Det var en av de första kommunikationsprotokoll mellan processer som gjorde det möjligt för applikationer och enheter att överföra data.

Jag är lite bekant med det själv eftersom jag brukade kolla och testa telekomutrustning. Då tillät DDE till exempel callcenteroperatörer att överföra nummerpresentation till en CRM-applikation, vilket i slutändan öppnade ett kundkort. För att göra detta var du tvungen att ansluta en RS-232-kabel mellan din telefon och din dator. Det var tider!

Som det visar sig är Microsoft Word fortfarande stöder DDE.

Det som gör denna attack effektiv utan kod är att du kan komma åt DDE-protokollet direkt från automatiska fält i ett Word-dokument (hatten av för SensePost för forskning och publikationer om det).

Fältkoder är en annan gammal MS Word-funktion som låter dig lägga till dynamisk text och lite programmering till ditt dokument. Det mest uppenbara exemplet är sidnummerfältet, som kan infogas i sidfoten med värdet {PAGE *MERGEFORMAT}. Detta gör att sidnummer kan genereras automatiskt.

The Adventures of the Elusive Malware, Del IV: DDE och Word Document Fields
Tips: Du hittar menyalternativet Fält under Infoga.

Jag minns att jag blev förvånad när jag först upptäckte den här funktionen i Word. Och tills patchen inaktiverade den, stödde Word fortfarande alternativet DDE-fält. Tanken var att DDE skulle tillåta Word att kommunicera direkt med applikationen, så att den sedan kunde skicka programmets utdata till ett dokument. Det var en mycket ung teknik på den tiden – stöd för datautbyte med externa applikationer. Den utvecklades senare till COM-teknik, vilket vi också kommer att titta på nedan.

Så småningom insåg hackarna att denna DDE-applikation kunde vara ett kommandoskal, vilket naturligtvis lanserade PowerShell, och därifrån kunde hackarna göra vad de ville.
Skärmdumpen nedan visar hur jag använde denna stealth-teknik: ett litet PowerShell-skript (hädanefter kallat PS) från DDE-fältet laddar ett annat PS-skript, vilket startar den andra fasen av attacken.

The Adventures of the Elusive Malware, Del IV: DDE och Word Document Fields
Tack till Windows för popup-varningen om att det inbyggda DDEAUTO-fältet i hemlighet försöker starta skalet

Den föredragna metoden för att utnyttja sårbarheten är att använda en variant med DDEAUTO-fältet, som automatiskt kör skriptet vid öppning Word-dokument.
Låt oss fundera på vad vi kan göra åt detta.

Som nybörjare kan du till exempel skicka ett nätfiske-e-postmeddelande, låtsas att du är från Federal Tax Service, och bädda in DDEAUTO-fältet med PS-skriptet för det första steget (en dropper, i princip). Och du behöver inte ens göra någon riktig kodning av makron etc., som jag gjorde i föregående artikel.
Offret öppnar ditt dokument, det inbäddade skriptet aktiveras och hackaren hamnar inne i datorn. I mitt fall skriver det fjärranslutna PS-skriptet bara ut ett meddelande, men det kan lika gärna starta PS Empire-klienten, som ger fjärråtkomst till skalet.
Och innan offret hinner säga något kommer hackarna att visa sig vara de rikaste tonåringarna i byn.

The Adventures of the Elusive Malware, Del IV: DDE och Word Document Fields
Skalet lanserades utan den minsta kodning. Även ett barn kan göra detta!

DDE och fält

Microsoft inaktiverade senare DDE i Word, men inte innan företaget uppgav att funktionen helt enkelt missbrukades. Deras ovilja att ändra något är förståeligt. Enligt min erfarenhet har jag själv sett ett exempel där uppdatering av fält vid öppning av ett dokument var aktiverat, men Word-makron avaktiverades av IT (men visade en notifiering). Förresten, du kan hitta motsvarande inställningar i avsnittet Word-inställningar.

Men även om fältuppdatering är aktiverad, meddelar Microsoft Word dessutom användaren när ett fält begär åtkomst till raderade data, vilket är fallet med DDE ovan. Microsoft varnar dig verkligen.

Men mest troligt kommer användare fortfarande att ignorera denna varning och aktivera fältuppdateringen i Word. Detta är en av de sällsynta möjligheterna att tacka Microsoft för att ha inaktiverat den farliga DDE-funktionen.

Hur svårt är det att hitta ett oparpat Windows-system idag?

För det här testet använde jag AWS Workspaces för att komma åt ett virtuellt skrivbord. På så sätt fick jag en oparpad virtuell MS Office-maskin som tillät mig att infoga DDEAUTO-fältet. Jag tvivlar inte på att man på liknande sätt kan hitta andra företag som ännu inte har installerat de nödvändiga säkerhetskorrigeringarna.

Mysterium med föremål

Även om du installerade den här patchen finns det andra säkerhetshål i MS Office som tillåter hackare att göra något som liknar det vi gjorde med Word. I nästa scenario kommer vi att lära oss använd Excel som lockbete för en nätfiskeattack utan att skriva någon kod.

För att förstå detta scenario, låt oss komma ihåg Microsoft Component Object Model, eller förkortat COM (Component Object Model).

COM har funnits sedan 1990-talet och definieras som en "språkneutral, objektorienterad komponentmodell" baserad på RPC-fjärrproceduranrop. För en allmän förståelse av COM-terminologi, läs den här posten på StackOverflow.

I grund och botten kan du tänka på en COM-applikation som en körbar Excel- eller Word-fil, eller någon annan binär fil som körs.

Det visar sig att en COM-applikation också kan köras scenario — JavaScript eller VBScript. Tekniskt heter det skriptlet. Du kanske har sett filtillägget .sct för filer i Windows - det här är det officiella tillägget för scriptlets. I huvudsak är de skriptkod insvept i ett XML-omslag:

<?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>

Hackare och pentestare har upptäckt att det finns separata verktyg och applikationer i Windows som accepterar COM-objekt och följaktligen även scriptlets.

Jag kan skicka ett scriptlet till ett Windows-verktyg skrivet i VBS som kallas pubprn. Det ligger i djupet av C:Windowssystem32Printing_Admin_Scripts. Förresten, det finns andra Windows-verktyg som accepterar objekt som parametrar. Låt oss först titta på detta exempel.

The Adventures of the Elusive Malware, Del IV: DDE och Word Document Fields
Det är ganska naturligt att skalet kan lanseras även från ett tryckt manus. Gå Microsoft!

Som ett test skapade jag ett enkelt fjärrskript som startar ett skal och skriver ut ett roligt meddelande, "Du har precis blivit skriptad!" I huvudsak instansierar pubprn ett scriptlet-objekt, vilket gör att VBScript-kod kan köra en wrapper. Denna metod ger en klar fördel för hackare som vill smyga sig in och gömma sig på ditt system.

I nästa inlägg kommer jag att förklara hur COM-scriptlets kan utnyttjas av hackare som använder Excel-kalkylblad.

För dina läxor, ta en titt Den här videon från Derbycon 2016, som förklarar exakt hur hackare använde scriptlets. Och även läsa denna artikel om scriptlets och någon form av moniker.

Källa: will.com

Lägg en kommentar