Aventurile malware-ului evaziv, Partea a IV-a: Câmpurile documentelor DDE și Word

Aventurile malware-ului evaziv, Partea a IV-a: Câmpurile documentelor DDE și Word

Acest articol face parte din seria Fileless Malware. Toate celelalte părți ale seriei:

În acest articol, aveam de gând să mă arunc într-un scenariu de atac fără fișiere în mai multe etape și mai complex, cu fixare pe sistem. Dar apoi am dat peste un atac incredibil de simplu, fără cod - nu sunt necesare macrocomenzi Word sau Excel! Și asta dovedește mult mai eficient ipoteza mea originală care stă la baza acestei serii de articole: spargerea perimetrului exterior al oricărei organizații nu este deloc o sarcină dificilă.

Primul atac pe care îl voi descrie exploatează o vulnerabilitate Microsoft Word pe care se bazează învechit protocol de schimb dinamic de date (DDE). Ea era deja fix. Al doilea exploatează o vulnerabilitate mai generală în Microsoft COM și capabilitățile de transfer de obiecte.

Înapoi în viitor cu DDE

Îți mai amintește cineva DDE? Probabil că nu mulți. A fost unul dintre primele protocoale de comunicare între procese care permiteau aplicațiilor și dispozitivelor să transfere date.

Eu sunt puțin familiarizat cu el pentru că obișnuiam să verific și să testez echipamentele de telecomunicații. La acel moment, DDE permitea, de exemplu, operatorilor de centre de apeluri să transfere ID-ul apelantului într-o aplicație CRM, care în cele din urmă deschidea un card de client. Pentru a face acest lucru, a trebuit să conectați un cablu RS-232 între telefon și computer. Acestea au fost zilele!

După cum se dovedește, Microsoft Word este încă suporturi DDE.

Ceea ce face ca acest atac să fie eficient fără cod este faptul că puteți accesa protocolul DDE direct din câmpurile automate dintr-un document Word (joc pălăria la SensePost pentru cercetări și publicații despre).

Codurile de câmp este o altă caracteristică antică MS Word care vă permite să adăugați text dinamic și puțină programare documentului dvs. Cel mai evident exemplu este câmpul cu numărul paginii, care poate fi inserat în subsol folosind valoarea {PAGE *MERGEFORMAT}. Acest lucru permite ca numerele de pagină să fie generate automat.

Aventurile malware-ului evaziv, Partea a IV-a: Câmpurile documentelor DDE și Word
Sugestie: Puteți găsi elementul de meniu Câmp sub Inserare.

Îmi amintesc că atunci când am descoperit prima dată această caracteristică în Word, am fost uimit. Și până când patch-ul l-a dezactivat, Word încă mai accepta opțiunea câmpurilor DDE. Ideea a fost că DDE ar permite Word să comunice direct cu aplicația, astfel încât să poată trece apoi rezultatul programului într-un document. Era o tehnologie foarte tânără la acea vreme - suport pentru schimbul de date cu aplicații externe. Ulterior a fost dezvoltată în tehnologia COM, pe care o vom analiza și mai jos.

În cele din urmă, hackerii și-au dat seama că această aplicație DDE ar putea fi un shell de comandă, care desigur a lansat PowerShell, iar de acolo hackerii puteau face tot ce doreau.
Captura de ecran de mai jos arată cum am folosit această tehnică stealth: un mic script PowerShell (denumit în continuare PS) din câmpul DDE încarcă un alt script PS, care lansează a doua fază a atacului.

Aventurile malware-ului evaziv, Partea a IV-a: Câmpurile documentelor DDE și Word
Mulțumim Windows pentru avertismentul pop-up că câmpul DDEAUTO încorporat încearcă în secret să pornească shell-ul

Metoda preferată de exploatare a vulnerabilității este utilizarea unei variante cu câmpul DDEAUTO, care rulează automat scriptul la deschidere document Word.
Să ne gândim ce putem face în privința asta.

În calitate de hacker începător, puteți, de exemplu, să trimiteți un e-mail de phishing, pretinzând că sunteți de la Serviciul Fiscal Federal și să încorporați câmpul DDEAUTO cu scriptul PS pentru prima etapă (un dropper, în esență). Și nici măcar nu trebuie să faceți o codificare reală a macrocomenzilor etc., așa cum am făcut eu în articolul anterior.
Victima vă deschide documentul, scriptul încorporat este activat și hackerul ajunge în interiorul computerului. În cazul meu, scriptul PS de la distanță imprimă doar un mesaj, dar ar putea la fel de ușor să lanseze clientul PS Empire, care va oferi acces la shell de la distanță.
Și înainte ca victima să aibă timp să spună ceva, hackerii se vor dovedi a fi cei mai bogați adolescenți din sat.

Aventurile malware-ului evaziv, Partea a IV-a: Câmpurile documentelor DDE și Word
Shell-ul a fost lansat fără nici cea mai mică codare. Chiar și un copil o poate face!

DDE și câmpuri

Ulterior, Microsoft a dezactivat DDE în Word, dar nu înainte ca compania să declare că funcția a fost pur și simplu utilizată greșit. Reticența lor de a schimba ceva este de înțeles. Din experiența mea, eu însumi am văzut un exemplu în care actualizarea câmpurilor la deschiderea unui document a fost activată, dar macrocomenzile Word au fost dezactivate de IT (dar afișând o notificare). Apropo, puteți găsi setările corespunzătoare în secțiunea Setări Word.

Cu toate acestea, chiar dacă actualizarea câmpului este activată, Microsoft Word notifică suplimentar utilizatorul atunci când un câmp solicită acces la datele șterse, așa cum este cazul DDE de mai sus. Microsoft chiar te avertizează.

Dar, cel mai probabil, utilizatorii vor ignora în continuare acest avertisment și vor activa actualizarea câmpurilor în Word. Aceasta este una dintre rarele oportunități de a-i mulțumi Microsoft pentru dezactivarea caracteristicii periculoase DDE.

Cât de dificil este să găsești un sistem Windows nepatchat astăzi?

Pentru această testare, am folosit AWS Workspaces pentru a accesa un desktop virtual. În acest fel am obținut o mașină virtuală MS Office nepatchată care mi-a permis să insert câmpul DDEAUTO. Nu am nicio îndoială că într-un mod similar poți găsi și alte companii care nu au instalat încă patch-urile de securitate necesare.

Misterul obiectelor

Chiar dacă ați instalat acest patch, există și alte găuri de securitate în MS Office care permit hackerilor să facă ceva foarte asemănător cu ceea ce am făcut noi cu Word. În următorul scenariu vom învăța utilizați Excel ca momeală pentru un atac de phishing fără a scrie niciun cod.

Pentru a înțelege acest scenariu, să ne amintim de Microsoft Component Object Model sau, pe scurt COM (Model de obiecte componente).

COM există încă din anii 1990 și este definit ca un „model de componentă neutru din punct de vedere al limbii, orientat pe obiecte” bazat pe apelurile de proceduri de la distanță RPC. Pentru o înțelegere generală a terminologiei COM, citiți acest post pe StackOverflow.

Practic, vă puteți gândi la o aplicație COM ca la un executabil Excel sau Word sau la un alt fișier binar care rulează.

Se pare că poate rula și o aplicație COM scenariu — JavaScript sau VBScript. Tehnic se numește scriptlet. Este posibil să fi văzut extensia .sct pentru fișiere în Windows - aceasta este extensia oficială pentru scriptlet-uri. În esență, sunt cod de script înfășurat într-un înveliș 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>

Hackerii și pentesterii au descoperit că există utilități și aplicații separate în Windows care acceptă obiecte COM și, în consecință, și scriptlet-uri.

Pot transmite un scriptlet unui utilitar Windows scris în VBS cunoscut sub numele de pubprn. Este situat în adâncurile C:Windowssystem32Printing_Admin_Scripts. Apropo, există și alte utilitare Windows care acceptă obiecte ca parametri. Să ne uităm mai întâi la acest exemplu.

Aventurile malware-ului evaziv, Partea a IV-a: Câmpurile documentelor DDE și Word
Este destul de natural ca shell-ul să poată fi lansat chiar și dintr-un script de tipărire. Du-te Microsoft!

Ca test, am creat un simplu scriptlet la distanță care lansează un shell și imprimă un mesaj amuzant, „Tocmai ați fost scriptat!” În esență, pubprn instanțiază un obiect scriptlet, permițând codului VBScript să ruleze un wrapper. Această metodă oferă un avantaj clar hackerilor care doresc să se strecoare și să se ascundă în sistemul dumneavoastră.

În următoarea postare, voi explica cum pot fi exploatate scriptletele COM de către hackeri folosind foi de calcul Excel.

Pentru teme, aruncați o privire acest videoclip de la Derbycon 2016, care explică exact modul în care hackerii au folosit scriptleturile. Și, de asemenea, citește acest articol despre scriptlet-uri și un fel de poreclă.

Sursa: www.habr.com

Adauga un comentariu