Прыгоды няўлоўнай малвары, частка IV: DDE і палі дакумента Word

Прыгоды няўлоўнай малвары, частка IV: DDE і палі дакумента Word

Гэты артыкул з'яўляецца часткай серыі "Fileless Malware". Усе астатнія часткі серыі:

У гэтым артыкуле я збіраўся пагрузіцца ў яшчэ больш складаны шматэтапны сцэнар безфайлавага нападу з замацаваннем у сістэме. Але тут я натыкнуўся на неверагодна простую атаку без кода - не патрабуецца ніякіх макрасаў Word або Excel! І гэта значна больш эфектыўна даказвае маю першапачатковую гіпотэзу, якая ляжыць у аснове гэтай серыі артыкулаў: пераадолець знешні перыметр любой арганізацыі - зусім нескладаная задача.

Першы напад, якую я апішу, выкарыстоўвае ўразлівасць Microsoft Word, якая заснавана на састарэлым пратаколе дынамічнага абмену дадзенымі (DDE). Яна ўжо была выпраўлена. Другая выкарыстоўвае больш агульную ўразлівасць у Microsoft COM і магчымасці перадачы аб'ектаў.

Назад у будучыню з DDE

Хто-небудзь яшчэ памятае DDE? Верагодна, нямногія. Гэта быў адзін з першых пратаколаў узаемадзеяння паміж працэсамі, які дазваляў прыкладанням і прыладам перадаваць дадзеныя.

Я сам крыху знаёмы з ім, таму што раней я правяраў і тэставаў целікам-абсталяванне. У той час DDE дазваляў, напрыклад, перадаваць для аператараў кол-цэнтраў ідэнтыфікатар абанента, які тэлефануе, у CRM дадатак, якое ў канчатковым выніку адкрывала картку кліента. Для гэтага вы павінны былі падлучыць кабель RS-232 паміж тэлефонам і кампутарам. Вось былі дзянькі!

Як аказалася, Microsoft Word ўсё яшчэ падтрымлівае DDE.

Што робіць гэтую атаку эфектыўнай без кода, дык гэта тое, што вы можаце атрымаць доступ да пратаколу DDE непасрэдна з аўтаматычных палёў дакумента Word (здымаю капялюш перад SensePost за даследаванні і публікацыі пра гэта).

Коды палёў – гэта яшчэ адна старажытная функцыя MS Word, якая дазваляе дадаваць дынамічны тэкст і крыху праграмавання ў дакумент. У якасці самага відавочнага прыкладу можна прывесці поле "нумар старонкі", які можна ўставіць у ніжні калантытул з дапамогай значэння {PAGE *MERGEFORMAT}. Гэта дазваляе аўтаматычна генераваць нумары старонак.

Прыгоды няўлоўнай малвары, частка IV: DDE і палі дакумента Word
Падказка: вы зможаце знайсці пункт меню Поле (Field) у раздзеле Устаўка (Insert)

Я памятаю, што калі ўпершыню выявіў гэтую магчымасць у Word, то быў уражаны. І вось пакуль патч не адключыў яе, Word так і падтрымліваў параметр палёў DDE. Ідэя складалася ў тым, што DDE дазволіць Word мець зносіны з дадаткам напрамую, для магчымасці затым перадаць выходныя дадзеныя праграмы ў дакумент. Гэта была зусім юная тэхналогія ў той час - падтрымка абмену дадзенымі з вонкавымі прыкладаннямі. Пазней яна была развіта ў тэхналогіі COM, якую мы таксама разгледзім ніжэй.

У выніку, хакеры зразумелі, што гэтым дадаткам DDE можа быць камандная абалонка, якая, вядома ж, запускае PowerShell, а адтуль хакеры могуць рабіць усё, што ім заўгодна.
На скрыншоце ніжэй відаць, як я выкарыстаў дадзеную ўтойлівую тэхніку: маленькі сцэнар PowerShell (далей – PS) з поля DDE загружае іншы PS скрыпт, які запускае другую фазу нападу.

Прыгоды няўлоўнай малвары, частка IV: DDE і палі дакумента Word
Дзякуй Windows за ўсплывальнае папярэджанне, аб тым што ўбудаванае поле DDEAUTO ўтойліва спрабуе запусціць абалонку

Пераважным метадам эксплуатацыі ўразлівасці з'яўляецца выкарыстанне варыянту з полем DDEAUTO, якое аўтаматычна запускае сцэнар пры адкрыцці дакумента Word.
Давайце падумаем, што з гэтым можна зрабіць.

Як пачатковец хакер, вы можаце, напрыклад, адправіць фішынгавы ліст, прыкінуўшыся, што вы з ФНС, і ўбудаваць поле DDEAUTO са скрыптам PS для першага этапу (дропер у сутнасці). Прычым вам нават не трэба рабіць ніякага рэальнага кадавання макрасаў і інш., як я гэта рабіў у папярэднім артыкуле.
Ахвяра адчыняе ваш дакумент, убудаваны скрыпт актывуецца, і хакер апыняецца ўсярэдзіне кампутара. У маім выпадку выдалены сцэнар PS толькі друкуе паведамленне, але ён можа таксама лёгка запусціць кліент PS Empire, які падасць выдалены доступ да абалонкі.
І перш, чым ахвяра паспее вымавіць хоць нешта, хакеры апынуцца найбагацейшымі падлеткамі на сяле.

Прыгоды няўлоўнай малвары, частка IV: DDE і палі дакумента Word
Абалонка была запушчана без найменшага кадавання. Нават дзіця зможа гэта зрабіць!

DDE і палі

Пазней Microsoft усёткі адключыла DDE у Word, але перад гэтым кампанія заявіла, што гэтая функцыя была проста няправільна выкарыстаная. Іх нежаданне нешта мяняць зразумела. Са свайго досведу я сам назіраў такі прыклад, што абнаўленне палёў пры адкрыцці дакумента было ўключана, але макрасы Word былі адключаныя ІТ-службай (але з паказам апавяшчэння). Дарэчы, якія адпавядаюць параметры вы зможаце знайсці ў падзеле налад Word.

Аднак, нават калі абнаўленне палёў уключана, Microsoft Word дадаткова паведамляе карыстачу, калі поле запытвае доступ да выдаленых дадзеных, як у выпадку з DDE вышэй. Microsoft сапраўды папярэджвае вас.

Але хутчэй за ўсё, карыстачы ўсё роўна прапусцяць гэтае папярэджанне і актывуюць абнаўленне палёў у Word. Гэта адна з рэдкіх магчымасцяў падзякаваць Microsoft за адключэнне небяспечнай функцыі DDE.

Наколькі цяжка сёння знайсці непрапатчаную сістэму Windows?

Для гэтага тэставання я выкарыстоўваў асяроддзе AWS Workspaces для атрымання доступу да віртуальнага працоўнага стала. Такім чынам я атрымаў непрапатчаную віртуальную машыну з MS Office, якая дазволіла мне ўставіць поле DDEAUTO. Не сумняваюся, што падобнай жа выявай можна знайсці і іншыя кампаніі, якія дагэтуль не ўсталявалі патрэбныя патчы бяспекі.

Таямніца прадметаў

Нават калі вы і ўсталявалі гэты патч, ёсць іншыя дзюры бяспекі ў MS Office, якія дазваляюць хакерам выконваць нешта вельмі падобнае да таго, што мы зрабілі з Word. У наступным сцэнары мы навучымся выкарыстоўваць Excel у якасці прынады для фішынгавай атакі без напісання кода.

Каб зразумець гэты сцэнар, давайце ўспомнім Мадэль кампанентнага аб'екта Microsoft, ці скарочана COM (Component Object Model).

COM існуе з 1990-х гадоў, і вызначаецца як "нейтральная да мовы праграмавання аб'ектна-арыентаваная мадэль кампанентаў" на аснове выдаленых выклікаў працэдур RPC. Для агульнага разумення тэрміналогіі COM прачытайце гэты пост на StackOverflow.

Па вялікім рахунку, вы можаце ўявіць прыкладанне COM як выкананы файл Excel або Word, або які-небудзь іншы які запускаецца бінарны файл.

Аказваецца, COM-дадатак таксама можа запускаць сцэнар - JavaScript або VBScript. Тэхнічна гэта называецца скрыптлет. Магчыма, вы сустракалі пашырэнне.sct у файлаў у Windows – гэта і ёсць афіцыйнае пашырэнне для скрыплетаў. Па сутнасці, яны з'яўляюцца кодам скрыпту, заключанага ў 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>

Хакеры і пентэстары выявілі, што ёсць асобныя ўтыліты і прыкладанні ў Windows, якія прымаюць COM-аб'екты і, адпаведна, скрыптлеты таксама.

Я магу перадаць скрыптлет ва ўтыліту Windows, напісаную на VBS, вядомую як pubprn. Яна знаходзіцца ў нетрах C:Windowssystem32Printing_Admin_Scripts. Дарэчы, ёсць і іншыя ўтыліты Windows, якія прымаюць аб'екты ў якасці параметраў. Для пачатку разгледзім гэты прыклад.

Прыгоды няўлоўнай малвары, частка IV: DDE і палі дакумента Word
Суцэль натуральна, што абалонку можна запусціць нават са сцэнара друку. Наперад, Microsoft!

У якасці тэставання я стварыў просты выдалены скрыптлет, які запускае абалонку і друкуе пацешнае паведамленне "Вас толькі што праскрыптавалі!". Па сутнасці, pubprn стварае асобнік аб'екта scriptlet, дазваляючы коду VBScript запусціць абалонку. Дадзены метад падае відавочныя перавагі хакерам, якія жадаюць неўзаметку пракрасціся і схавацца ў вашай сістэме.

У наступным пасце я растлумачу, як скрыптлеты COM могуць быць скарыстаны хакерамі з дапамогай табліц Excel.

Вам у якасці хатняй працы - паглядзець гэта відэа з Derbycon 2016 года, якое тлумачыць, як менавіта хакеры выкарыстоўвалі скрыптлеты. А таксама прачытаць гэтую артыкул пра скрыптлеты і нейкі манікёр.

Крыніца: habr.com

Дадаць каментар