Les aventures del programari maliciós esquivant, part IV: camps de documents DDE i Word

Les aventures del programari maliciós esquivant, part IV: camps de documents DDE i Word

Aquest article forma part de la sèrie Fileless Malware. Totes les altres parts de la sèrie:

En aquest article, anava a submergir-me en un escenari d'atac sense fitxers en diverses etapes encara més complex amb fixació al sistema. Però aleshores em vaig trobar amb un atac increïblement senzill i sense codi: no calen macros de Word o Excel! I això demostra amb molta més eficàcia la meva hipòtesi original subjacent a aquesta sèrie d'articles: trencar el perímetre exterior de qualsevol organització no és una tasca difícil.

El primer atac que descriuré explota una vulnerabilitat de Microsoft Word en la qual es basa antiquat protocol dinàmic d'intercanvi de dades (DDE). Ella ja estava fix. El segon aprofita una vulnerabilitat més general en les capacitats de transferència d'objectes i COM de Microsoft.

Torna al futur amb DDE

Algú més recorda DDE? Probablement no molts. Va ser un dels primers protocols de comunicació entre processos que permetien a aplicacions i dispositius transferir dades.

Jo mateix ho conec una mica perquè solia comprovar i provar equips de telecomunicacions. En aquell moment, DDE va ​​permetre, per exemple, als operadors de centres de trucades transferir l'identificador de trucades a una aplicació CRM, que finalment va obrir una targeta de client. Per fer-ho, heu de connectar un cable RS-232 entre el vostre telèfon i l'ordinador. Aquells van ser els dies!

Com a resultat, Microsoft Word encara ho és suports DDE.

El que fa que aquest atac sigui efectiu sense codi és que podeu accedir al protocol DDE directament des de camps automàtics d'un document de Word (sense barret a SensePost per investigacions i publicacions sobre això).

Codis de camp és una altra característica antiga de MS Word que us permet afegir text dinàmic i una mica de programació al vostre document. L'exemple més obvi és el camp del número de pàgina, que es pot inserir al peu de pàgina amb el valor {PAGE *MERGEFORMAT}. Això permet que els números de pàgina es generin automàticament.

Les aventures del programari maliciós esquivant, part IV: camps de documents DDE i Word
Suggeriment: podeu trobar l'element del menú Camp a Insereix.

Recordo que quan vaig descobrir aquesta funció per primera vegada a Word, em va sorprendre. I fins que el pedaç el va desactivar, Word encara admetia l'opció de camps DDE. La idea era que DDE permetés a Word comunicar-se directament amb l'aplicació, de manera que després pogués passar la sortida del programa a un document. En aquell moment era una tecnologia molt jove: suport per a l'intercanvi de dades amb aplicacions externes. Més tard es va convertir en tecnologia COM, que també veurem a continuació.

Finalment, els pirates informàtics es van adonar que aquesta aplicació DDE podria ser un intèrpret d'ordres, que per descomptat va llançar PowerShell, i a partir d'aquí els pirates informàtics podien fer el que volguessin.
La captura de pantalla següent mostra com vaig fer servir aquesta tècnica furtiva: un petit script de PowerShell (d'ara endavant anomenat PS) del camp DDE carrega un altre script PS, que llança la segona fase de l'atac.

Les aventures del programari maliciós esquivant, part IV: camps de documents DDE i Word
Gràcies a Windows per l'avís emergent que el camp DDEAUTO integrat està intentant en secret iniciar l'intèrpret d'ordres

El mètode preferit per explotar la vulnerabilitat és utilitzar una variant amb el camp DDEAUTO, que executa automàticament l'script. en obrir Document de Word.
Pensem què podem fer al respecte.

Com a pirata informàtic novell, podeu, per exemple, enviar un correu electrònic de pesca, simulant que sou del Servei Federal d'Impostos i incrustar el camp DDEAUTO amb l'script PS per a la primera etapa (un comptagotes, bàsicament). I ni tan sols cal que feu cap codificació real de macros, etc., com ho vaig fer jo article anterior.
La víctima obre el vostre document, s'activa l'script incrustat i el pirata informàtic acaba dins de l'ordinador. En el meu cas, l'script PS remot només imprimeix un missatge, però amb la mateixa facilitat podria llançar el client PS Empire, que proporcionarà accés remot a l'intèrpret d'ordres.
I abans que la víctima tingui temps de dir res, els pirates informàtics es convertiran en els adolescents més rics del poble.

Les aventures del programari maliciós esquivant, part IV: camps de documents DDE i Word
L'intèrpret es va llançar sense el més mínim de codificació. Fins i tot un nen pot fer això!

DDE i camps

Microsoft més tard va desactivar DDE a Word, però no abans que l'empresa declarés que la funció simplement s'ha fet un mal ús. La seva reticència a canviar res és comprensible. Segons la meva experiència, jo mateix he vist un exemple en què s'habilitava l'actualització de camps en obrir un document, però les macros de Word estaven desactivades per IT (però mostrant una notificació). Per cert, podeu trobar la configuració corresponent a la secció de configuració de Word.

Tanmateix, fins i tot si l'actualització de camps està habilitada, Microsoft Word també notifica a l'usuari quan un camp sol·licita accés a dades suprimides, com és el cas de DDE anterior. Microsoft realment t'està advertint.

Però el més probable és que els usuaris encara ignoraran aquest avís i activaran l'actualització de camps a Word. Aquesta és una de les poques oportunitats per agrair a Microsoft per desactivar la perillosa funció DDE.

Què tan difícil és trobar un sistema Windows sense pegats avui dia?

Per a aquesta prova, vaig utilitzar AWS Workspaces per accedir a un escriptori virtual. D'aquesta manera vaig obtenir una màquina virtual MS Office sense pegat que em va permetre inserir el camp DDEAUTO. No tinc cap dubte que de manera semblant es poden trobar altres empreses que encara no han instal·lat els pedaços de seguretat necessaris.

Misteri dels objectes

Fins i tot si vau instal·lar aquest pedaç, hi ha altres forats de seguretat a MS Office que permeten als pirates informàtics fer alguna cosa molt semblant al que vam fer amb Word. En el següent escenari aprendrem utilitzeu Excel com a esquer per a un atac de pesca sense escriure cap codi.

Per entendre aquest escenari, recordem el model d'objectes de components de Microsoft, o per abreujar-lo COM (Model d'objectes de components).

COM ha existit des de la dècada de 1990 i es defineix com un "model de component orientat a objectes i neutral de llenguatge" basat en les trucades de procediments remots RPC. Per a una comprensió general de la terminologia COM, llegiu aquesta publicació a StackOverflow.

Bàsicament, podeu pensar en una aplicació COM com un executable Excel o Word, o algun altre fitxer binari que s'executi.

Resulta que també es pot executar una aplicació COM escenari — JavaScript o VBScript. Tècnicament es diu guió. És possible que hàgiu vist l'extensió .sct per a fitxers a Windows; aquesta és l'extensió oficial per als scriptlets. Essencialment, són codi d'script embolicat en un embolcall XML:

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

Els pirates informàtics i els pentesters han descobert que hi ha utilitats i aplicacions separades a Windows que accepten objectes COM i, en conseqüència, també scriptlets.

Puc passar un scriptlet a una utilitat de Windows escrita en VBS coneguda com pubprn. Es troba a les profunditats de C:Windowssystem32Printing_Admin_Scripts. Per cert, hi ha altres utilitats de Windows que accepten objectes com a paràmetres. Vegem primer aquest exemple.

Les aventures del programari maliciós esquivant, part IV: camps de documents DDE i Word
És molt natural que l'intèrpret d'ordres es pugui llançar fins i tot des d'un script d'impressió. Va Microsoft!

Com a prova, vaig crear un scriptlet remot senzill que llança un intèrpret d'ordres i imprimeix un missatge divertit: "Acabes d'haver escrit un guió!" Essencialment, pubprn crea una instancia d'un objecte de scriptlet, permetent que el codi VBScript executi un embolcall. Aquest mètode proporciona un avantatge clar als pirates informàtics que volen colar-se i amagar-se al vostre sistema.

A la propera publicació, explicaré com els pirates informàtics poden explotar els scriptlets COM mitjançant fulls de càlcul Excel.

Per als deures, fes una ullada Aquest vídeo de Derbycon 2016, que explica exactament com els pirates informàtics utilitzaven els scriptlets. I també llegir aquest article sobre scriptlets i algun tipus de sobrenom.

Font: www.habr.com

Afegeix comentari