Avanture nedostižnog zlonamjernog softvera, dio IV: DDE i polja Word dokumenata

Avanture nedostižnog zlonamjernog softvera, dio IV: DDE i polja Word dokumenata

Ovaj je članak dio serije zlonamjernih programa bez datoteka. Svi ostali dijelovi serije:

U ovom sam članku namjeravao zaroniti u još složeniji višefazni scenarij napada bez datoteka s pričvršćivanjem na sustav. Ali onda sam naišao na nevjerojatno jednostavan napad bez koda — nisu potrebne Word ili Excel makronaredbe! I ovo mnogo učinkovitije dokazuje moju izvornu hipotezu na kojoj se temelji ovaj niz članaka: probijanje vanjskog perimetra bilo koje organizacije uopće nije težak zadatak.

Prvi napad koji ću opisati iskorištava ranjivost Microsoft Worda koja se temelji na zastario dinamički protokol za razmjenu podataka (DDE). Već je bila fiksne. Drugi iskorištava općenitiju ranjivost u Microsoftovom COM-u i mogućnostima prijenosa objekata.

Povratak u budućnost uz DDE

Sjeća li se još tko DDE? Vjerojatno ne mnogo. Bio je to jedan od prvih međuprocesne komunikacijske protokole koji su aplikacijama i uređajima omogućili prijenos podataka.

I sam sam malo upoznat s time jer sam prije provjeravao i testirao telekom opremu. U to je vrijeme DDE omogućio, primjerice, operaterima pozivnih centara da prebace ID pozivatelja u CRM aplikaciju, što je u konačnici otvorilo korisničku karticu. Da biste to učinili, morali ste spojiti RS-232 kabel između telefona i računala. To su bili dani!

Kako se ispostavilo, Microsoft Word je još uvijek podupire DDE.

Ono što ovaj napad čini učinkovitim bez koda je to što možete pristupiti DDE protokolu direktno iz automatskih polja u Word dokumentu (kapa dolje SensePost-u za istraživanja i publikacije o tome).

Šifre polja je još jedna drevna značajka MS Worda koja vam omogućuje dodavanje dinamičkog teksta i malo programiranja u vaš dokument. Najočitiji primjer je polje broja stranice, koje se može umetnuti u podnožje pomoću vrijednosti {PAGE *MERGEFORMAT}. To omogućuje automatsko generiranje brojeva stranica.

Avanture nedostižnog zlonamjernog softvera, dio IV: DDE i polja Word dokumenata
Savjet: Stavku izbornika Polje možete pronaći pod Umetni.

Sjećam se da sam bio zapanjen kada sam prvi put otkrio ovu značajku u Wordu. I dok ga zakrpa nije onemogućila, Word je i dalje podržavao opciju DDE polja. Ideja je bila da bi DDE omogućio Wordu izravnu komunikaciju s aplikacijom, kako bi zatim mogao prenijeti izlaz programa u dokument. Bila je to tada vrlo mlada tehnologija - podrška za razmjenu podataka s vanjskim aplikacijama. Kasnije je razvijena u COM tehnologiju koju ćemo također pogledati u nastavku.

Na kraju su hakeri shvatili da bi ova DDE aplikacija mogla biti naredbena ljuska, što je naravno pokrenulo PowerShell, a odatle su hakeri mogli raditi što su htjeli.
Snimka zaslona u nastavku pokazuje kako sam koristio ovu stealth tehniku: mala PowerShell skripta (u daljnjem tekstu PS) iz DDE polja učitava drugu PS skriptu, koja pokreće drugu fazu napada.

Avanture nedostižnog zlonamjernog softvera, dio IV: DDE i polja Word dokumenata
Hvala Windowsu na skočnom upozorenju da ugrađeno polje DDEAUTO potajno pokušava pokrenuti ljusku

Preferirana metoda iskorištavanja ranjivosti je korištenje varijante s poljem DDEAUTO, koje automatski pokreće skriptu prilikom otvaranja Word dokument.
Razmislimo što možemo učiniti po tom pitanju.

Kao haker početnik, možete, na primjer, poslati phishing e-poštu, pretvarajući se da ste iz Federalne porezne službe, i ugraditi polje DDEAUTO sa PS skriptom za prvu fazu (u biti kapaljka). I ne morate čak ni praviti nikakvo stvarno kodiranje makronaredbi itd., kao što sam ja učinio u prethodni članak.
Žrtva otvori vaš dokument, ugrađena skripta se aktivira, a haker završi u računalu. U mom slučaju, udaljena PS skripta samo ispisuje poruku, ali jednako tako može pokrenuti PS Empire klijent, koji će omogućiti udaljeni pristup ljusci.
I prije nego što žrtva stigne išta reći, ispostavit će se da su hakeri najbogatiji tinejdžeri u selu.

Avanture nedostižnog zlonamjernog softvera, dio IV: DDE i polja Word dokumenata
Ljuska je pokrenuta bez imalo kodiranja. To može čak i dijete!

DDE i polja

Microsoft je kasnije onemogućio DDE u Wordu, ali ne prije nego što je tvrtka izjavila da je ta značajka jednostavno zloupotrijebljena. Njihova nevoljkost da bilo što promijene je razumljiva. Iz mog iskustva, osobno sam vidio primjer gdje je ažuriranje polja prilikom otvaranja dokumenta bilo omogućeno, ali je IT onemogućio makronaredbe Worda (ali prikazuju obavijest). Usput, odgovarajuće postavke možete pronaći u odjeljku postavki programa Word.

Međutim, čak i ako je ažuriranje polja omogućeno, Microsoft Word dodatno obavještava korisnika kada polje zahtijeva pristup obrisanim podacima, kao što je slučaj s gornjim DDE-om. Microsoft vas stvarno upozorava.

Ali najvjerojatnije će korisnici i dalje ignorirati ovo upozorenje i aktivirati ažuriranje polja u Wordu. Ovo je jedna od rijetkih prilika da se zahvalimo Microsoftu na onemogućavanju opasne značajke DDE.

Koliko je danas teško pronaći Windows sustav bez zakrpa?

Za ovo testiranje koristio sam AWS Workspaces za pristup virtualnoj radnoj površini. Na ovaj način sam dobio nezakrpano MS Office virtualno računalo koje mi je omogućilo umetanje polja DDEAUTO. Ne sumnjam da na sličan način možete pronaći i druge tvrtke koje još nisu instalirale potrebne sigurnosne zakrpe.

Misterij predmeta

Čak i ako ste instalirali ovu zakrpu, postoje druge sigurnosne rupe u MS Officeu koje hakerima omogućuju da učine nešto vrlo slično onome što smo mi učinili s Wordom. U sljedećem scenariju ćemo naučiti koristite Excel kao mamac za phishing napad bez pisanja koda.

Da bismo razumjeli ovaj scenarij, sjetimo se Microsoftovog Component Object Modela ili skraćeno COM (Component Object Model).

COM postoji od 1990-ih i definiran je kao "jezično neutralni, objektno orijentirani komponentni model" temeljen na RPC pozivima udaljenih procedura. Za opće razumijevanje COM terminologije pročitajte ovaj post na StackOverflowu.

U osnovi, COM aplikaciju možete zamisliti kao izvršnu datoteku programa Excel ili Word ili neku drugu binarnu datoteku koja se pokreće.

Ispada da se COM aplikacija također može pokrenuti scenarij — JavaScript ili VBScript. Tehnički se zove skripta. Možda ste vidjeli ekstenziju .sct za datoteke u sustavu Windows - ovo je službena ekstenzija za skriptlete. U biti, oni su kod skripte umotan u XML omotač:

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

Hakeri i pentesteri otkrili su da postoje zasebni uslužni programi i aplikacije u sustavu Windows koji prihvaćaju COM objekte i, sukladno tome, skriptlete.

Mogu proslijediti skriptu Windows uslužnom programu napisanom u VBS-u poznatom kao pubprn. Nalazi se u dubinama C:Windowssystem32Printing_Admin_Scripts. Usput, postoje i drugi Windows uslužni programi koji prihvaćaju objekte kao parametre. Pogledajmo prvo ovaj primjer.

Avanture nedostižnog zlonamjernog softvera, dio IV: DDE i polja Word dokumenata
Sasvim je prirodno da se ljuska može pokrenuti čak i iz ispisne skripte. Naprijed Microsoft!

Kao test, napravio sam jednostavnu udaljenu skriptu koja pokreće ljusku i ispisuje smiješnu poruku, "Upravo ste skriptirani!" U biti, pubprn instancira objekt skriptleta, dopuštajući VBScript kodu da pokrene omotač. Ova metoda daje jasnu prednost hakerima koji se žele ušuljati i sakriti u vašem sustavu.

U sljedećem postu objasnit ću kako hakeri mogu iskoristiti COM skriptlete koristeći proračunske tablice programa Excel.

Za domaću zadaću pogledajte Ovaj video iz Derbycona 2016., koji točno objašnjava kako su hakeri koristili skriptlete. I također čitati ovaj članak o skriptletima i nekakvom monikeru.

Izvor: www.habr.com

Dodajte komentar