Avanture neuhvatljivog zlonamjernog softvera, dio IV: DDE i Word dokumenta polja

Avanture neuhvatljivog zlonamjernog softvera, dio IV: DDE i Word dokumenta polja

Ovaj članak je dio serije Malware bez datoteka. Svi ostali delovi serije:

U ovom članku, namjeravao sam zaroniti u još složeniji scenarij napada bez datoteka u više faza sa pričvršćivanjem na sistem. Ali onda sam naišao na nevjerovatno jednostavan napad bez koda – nisu potrebni Word ili Excel makroi! I ovo mnogo efikasnije dokazuje moju originalnu hipotezu koja leži u osnovi ove serije članaka: probijanje vanjskog perimetra bilo koje organizacije uopće nije težak zadatak.

Prvi napad koji ću opisati iskorištava ranjivost Microsoft Worda na kojoj se zasniva zastarjelo dinamički protokol za razmjenu podataka (DDE). Već je bila fiksno. Drugi koristi opštiju ranjivost u Microsoft COM-u i mogućnostima prenosa objekata.

Povratak u budućnost uz DDE

Sjeća li se još neko DDE? Verovatno ne mnogo. Bio je to jedan od prvih međuprocesne komunikacijske protokole koji su omogućavali aplikacijama i uređajima da prenose podatke.

I sam sam malo upoznat s tim jer sam provjeravao i testirao telekom opremu. U to vrijeme, DDE je dozvolio, na primjer, operaterima pozivnih centara da prenesu ID pozivaoca u CRM aplikaciju, koja je na kraju otvorila korisničku karticu. Da biste to uradili, morali ste da povežete RS-232 kabl između telefona i računara. To su bili dani!

Kako se ispostavilo, Microsoft Word je još uvijek podržava DDE.

Ono što ovaj napad čini efikasnim 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).

Kodovi polja je još jedna drevna MS Word funkcija koja vam omogućava da dodate dinamički tekst i malo programiranja vašem dokumentu. Najočigledniji primjer je polje za broj stranice, koje se može umetnuti u podnožje koristeći vrijednost {PAGE *MERGEFORMAT}. Ovo omogućava da se brojevi stranica automatski generišu.

Avanture neuhvatljivog zlonamjernog softvera, dio IV: DDE i Word dokumenta polja
Savjet: Stavku menija Polje možete pronaći pod Umetanje.

Sjećam se da sam bio zadivljen kada sam prvi put otkrio ovu funkciju u Wordu. I dok ga zakrpa nije onemogućila, Word je i dalje podržavao opciju DDE polja. Ideja je bila da DDE omogući Wordu da komunicira direktno sa aplikacijom, kako bi potom mogao proslediti izlaz programa u dokument. To je bila vrlo mlada tehnologija u to vrijeme - podrška za razmjenu podataka sa vanjskim aplikacijama. Kasnije je razvijena u COM tehnologiju, koju ćemo također pogledati u nastavku.

Na kraju su hakeri shvatili da ova DDE aplikacija može biti komandna školjka, što je naravno pokrenulo PowerShell, a odatle su hakeri mogli raditi šta god žele.
Snimak ekrana ispod pokazuje kako sam koristio ovu stealth tehniku: mala PowerShell skripta (u daljem tekstu PS) iz DDE polja učitava drugu PS skriptu, koja pokreće drugu fazu napada.

Avanture neuhvatljivog zlonamjernog softvera, dio IV: DDE i Word dokumenta polja
Hvala Windowsu na iskačućem upozorenju da ugrađeno DDEAUTO polje potajno pokušava pokrenuti ljusku

Preferirani način iskorištavanja ranjivosti je korištenje varijante sa poljem DDEAUTO, koje automatski pokreće skriptu pri otvaranju Word dokument.
Hajde da razmislimo šta možemo da uradimo po tom pitanju.

Kao haker početnik, možete, na primjer, poslati phishing email, pretvarajući se da ste iz Federalne porezne službe, i ugraditi DDEAUTO polje sa PS skriptom za prvu fazu (u suštini dropper). I ne morate da radite nikakvo pravo kodiranje makroa itd., kao što sam ja uradio prethodni članak.
Žrtva otvara vaš dokument, ugrađena skripta se aktivira, a haker završava unutar računara. U mom slučaju, udaljena PS skripta samo ispisuje poruku, ali isto tako lako može pokrenuti PS Empire klijent, koji će omogućiti daljinski pristup ljusci.
I prije nego što žrtva stigne bilo šta da kaže, ispostaviće se da su hakeri najbogatiji tinejdžeri u selu.

Avanture neuhvatljivog zlonamjernog softvera, dio IV: DDE i Word dokumenta polja
Shell je pokrenut bez imalo kodiranja. Ovo može čak i dete!

DDE i polja

Microsoft je kasnije onemogućio DDE u Wordu, ali ne prije nego što je kompanija izjavila da je ova funkcija jednostavno zloupotrebljena. Njihovo oklevanje da bilo šta promene je razumljivo. U svom iskustvu sam vidio primjer gdje je ažuriranje polja prilikom otvaranja dokumenta bilo omogućeno, ali su Word makroi onemogućeni od strane IT-a (ali prikazuju obavještenje). Usput, odgovarajuće postavke možete pronaći u odjeljku Postavke programa Word.

Međutim, čak i ako je ažuriranje polja omogućeno, Microsoft Word dodatno obavještava korisnika kada polje zatraži pristup izbrisanim podacima, kao što je slučaj s DDE iznad. Microsoft vas zaista upozorava.

Ali najvjerovatnije će korisnici i dalje ignorirati ovo upozorenje i aktivirati ažuriranje polja u Wordu. Ovo je jedna od rijetkih prilika da se zahvalimo Microsoftu što je onemogućio opasnu DDE funkciju.

Koliko je danas teško pronaći Windows sistem bez zakrpe?

Za ovo testiranje koristio sam AWS Workspaces za pristup virtuelnoj radnoj površini. Na ovaj način sam dobio virtuelnu mašinu MS Office bez zakrpa koja mi je omogućila da ubacim DDEAUTO polje. Ne sumnjam da na sličan način možete pronaći i druge kompanije koje još nisu instalirale potrebne sigurnosne zakrpe.

Misterija objekata

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

Da bismo razumjeli ovaj scenario, prisjetimo se Microsoftovog Component Object Modela, ili ukratko COM (komponentni objektni model).

COM postoji od 1990-ih i definiran je kao "jezički neutralan, objektno orijentisan komponentni model" zasnovan na pozivima udaljenih RPC procedura. Za opšte razumevanje COM terminologije, pročitajte ovaj post na StackOverflow.

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

Ispostavilo se da se COM aplikacija također može pokrenuti scenariju — JavaScript ili VBScript. Tehnički se to zove scriptlet. Možda ste vidjeli ekstenziju .sct za datoteke u Windows-u - ovo je službena ekstenzija za skriptlete. U suštini, oni su kod skripte umotan u XML omot:

<?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 su otkrili da u Windows-u postoje zasebni uslužni programi i aplikacije koje prihvataju COM objekte i, shodno tome, skriptlete.

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

Avanture neuhvatljivog zlonamjernog softvera, dio IV: DDE i Word dokumenta polja
Sasvim je prirodno da se školjka može pokrenuti čak i iz skripte za ispis. Idi Microsoft!

Kao test, kreirao sam jednostavan udaljeni skriptlet koji pokreće ljusku i ispisuje smiješnu poruku, "Upravo ste skriptirali!" U suštini, pubprn instancira objekat skriptleta, dozvoljavajući VBScript kodu da pokrene omotač. Ova metoda pruža jasnu prednost hakerima koji žele da se ušunjaju i sakriju na vašem sistemu.

U sljedećem postu ću objasniti kako hakeri mogu iskoristiti COM skriptlete koristeći Excel tabele.

Za domaći, pogledajte Ovaj video sa Derbycon 2016, koji objašnjava kako su hakeri koristili skriptlete. I takođe čitati ovaj članak o skriptletima i nekoj vrsti nadimka.

izvor: www.habr.com

Dodajte komentar