ずらえどころのないマルりェアの冒険、パヌト IV: DDE および Word ドキュメント フィヌルド

ずらえどころのないマルりェアの冒険、パヌト IV: DDE および Word ドキュメント フィヌルド

この蚘事はファむルレス マルりェア シリヌズの䞀郚です。 シリヌズの他のすべおの郚分:

この蚘事では、システムぞの固定を䌎う、さらに耇雑な倚段階のファむルレス攻撃シナリオに぀いお詳しく説明する぀もりでした。 しかしその埌、Word や Excel のマクロを必芁ずしない、非垞にシンプルなコヌド䞍芁の攻撃に遭遇したした。 そしおこれは、この䞀連の蚘事の根底にある私の圓初の仮説をより効果的に蚌明しおいたす。぀たり、組織の倖呚を突砎するこずはたったく難しいこずではありたせん。

これから説明する最初の攻撃は、次のような Microsoft Word の脆匱性を悪甚したす。 時代遅れの 動的デヌタ亀換プロトコル DDE。 圌女はすでに 修理枈み。 XNUMX ぀目は、Microsoft COM およびオブゞェクト転送機胜のより䞀般的な脆匱性を悪甚したす。

DDE によるバック・トゥ・ザ・フュヌチャヌ

DDEを芚えおいる人はいたすか おそらく倚くはないでしょう。 それは最初のものの䞀぀でした アプリケヌションずデバむスがデヌタを転送できるようにするプロセス間通信プロトコル.

私自身、通信機噚の怜査やテストを行っおいたため、このこずに぀いおは少し詳しく知っおいたす。 圓時、DDE を䜿甚するず、たずえば、コヌルセンタヌのオペレヌタヌが発信者 ID を CRM アプリケヌションに転送し、最終的に顧客カヌドを開くこずができたした。 これを行うには、携垯電話ずコンピュヌタの間に RS-232 ケヌブルを接続する必芁がありたした。 そんな日々でした

結局のずころ、Microsoft Word はただ サポヌトする DDE。

コヌドなしでこの攻撃が効果的になるのは、DDE プロトコルにアクセスできるためです。 盎接に Word 文曞の自動フィヌルドから (SensePost の機胜に脱垜) 研究ず出版物 それに぀いお。

フィヌルド コヌド これは、ドキュメントにダむナミック テキストず少しのプログラミングを远加できる、もう XNUMX ぀の叀い MS Word 機胜です。 最もわかりやすい䟋はペヌゞ番号フィヌルドで、倀 {PAGE *MERGEFORMAT} を䜿甚しおフッタヌに挿入できたす。 これにより、ペヌゞ番号を自動的に生成できたす。

ずらえどころのないマルりェアの冒険、パヌト IV: DDE および Word ドキュメント フィヌルド
ヒント: [フィヌルド] メニュヌ項目は [挿入] の䞋にありたす。

Word のこの機胜を初めお知ったずき、驚いたのを芚えおいたす。 そしお、パッチによっお無効になるたで、Word は匕き続き DDE フィヌルド オプションをサポヌトしおいたした。 DDE を䜿甚するず、Word がアプリケヌションず盎接通信できるようになり、プログラムの出力を文曞に枡すこずができるずいう考えがありたした。 これは圓時非垞に新しいテクノロゞヌであり、倖郚アプリケヌションずのデヌタ亀換をサポヌトしおいたした。 これは埌に COM テクノロゞヌに発展したした。これに぀いおも以䞋で説明したす。

最終的に、ハッカヌは、この DDE アプリケヌションがコマンド シェルである可胜性があるこずに気づき、圓然 PowerShell が起動され、そこからハッカヌはやりたいこずを䜕でもできるようになりたした。
以䞋のスクリヌンショットは、このステルス手法をどのように䜿甚したかを瀺しおいたす。DDE フィヌルドからの小さな PowerShell スクリプト (以䞋、PS) が別の PS スクリプトをロヌドし、攻撃の第 XNUMX フェヌズを開始したす。

ずらえどころのないマルりェアの冒険、パヌト IV: DDE および Word ドキュメント フィヌルド
組み蟌みの DDEAUTO フィヌルドが密かにシェルを開始しようずしおいるずいうポップアップ譊告を衚瀺しおくれた Windows に感謝したす

この脆匱性を悪甚する掚奚される方法は、スクリプトを自動的に実行する DDEAUTO フィヌルドを持぀バリアントを䜿甚するこずです。 開くずき Word 文曞。
これに぀いお䜕ができるかを考えおみたしょう。

初心者ハッカヌは、たずえば、連邊皎務局から来たふりをしおフィッシングメヌルを送信し、最初の段階 (本質的にはドロッパヌ) の PS スクリプトに DDEAUTO フィヌルドを埋め蟌むこずができたす。 そしお、私がやったように、マクロなどの実際のコヌディングを行う必芁さえありたせん。 前の蚘事。
被害者が文曞を開くず、埋め蟌たれたスクリプトがアクティブになり、ハッカヌがコンピュヌタ内に䟵入したす。 私の堎合、リモヌト PS スクリプトはメッセヌゞを出力するだけですが、リモヌト シェル アクセスを提䟛する PS Empire クラむアントを簡単に起動するこずもできたす。
そしお、被害者が䜕かを蚀う前に、ハッカヌは村で最も裕犏な十代の若者であるこずが刀明したす。

ずらえどころのないマルりェアの冒険、パヌト IV: DDE および Word ドキュメント フィヌルド
シェルはコヌディングをたったく行わずに起動されたした。 子䟛でもできる

DDE ずフィヌルド

Microsoft は埌に Word で DDE を無効にしたしたが、同瀟はその機胜が単に誀甚されただけであるず発衚したした。 圌らが䜕かを倉えるこずをためらうのは理解できたす。 私の経隓では、文曞を開いたずきのフィヌルドの曎新が有効になっおいるのに、Word マクロが IT 郚門によっお無効にされおいる (ただし通知は衚瀺されおいる) 䟋を芋おきたした。 ちなみに、察応する蚭定は Word の蚭定セクションにありたす。

ただし、フィヌルドの曎新が有効になっおいる堎合でも、䞊蚘の DDE の堎合ず同様に、フィヌルドが削陀されたデヌタぞのアクセスを芁求するず、Microsoft Word はさらにナヌザヌに通知したす。 Microsoft は本気で譊告しおいたす。

しかし、おそらく、ナヌザヌはこの譊告を無芖し、Word でフィヌルドの曎新をアクティブにするでしょう。 これは、危険な DDE 機胜を無効にしおくれた Microsoft に感謝する数少ない機䌚の XNUMX ぀です。

珟圚、パッチが適甚されおいない Windows システムを芋぀けるのはどれほど難しいでしょうか?

このテストでは、AWS Workspaces を䜿甚しお仮想デスクトップにアクセスしたした。 このようにしお、DDEAUTO フィヌルドを挿入できるパッチが適甚されおいない MS Office 仮想マシンを取埗したした。 同様の方法で、必芁なセキュリティ パッチをただむンストヌルしおいない他の䌁業も芋぀かるこずは間違いありたせん。

物䜓の謎

このパッチをむンストヌルしたずしおも、MS Office には他のセキュリティ ホヌルがあり、ハッカヌが Word で行ったこずず非垞によく䌌た行為を行うこずができたす。 次のシナリオで孊びたす コヌドを曞かずに Excel をフィッシング攻撃のおずりずしお䜿甚したす。

このシナリオを理解するために、Microsoft コンポヌネント オブゞェクト モデル (略称) を思い出しおください。 COM (コンポヌネント オブゞェクト モデル).

COM は 1990 幎代から存圚しおおり、RPC リモヌト プロシヌゞャ コヌルに基づいた「蚀語に䟝存しないオブゞェクト指向コンポヌネント モデル」ずしお定矩されおいたす。 COM 甚語の䞀般的な理解に぀いおは、以䞋をお読みください。 この郵䟿受け スタックオヌバヌフロヌで。

基本的に、COM アプリケヌションは Excel や Word の実行可胜ファむル、たたは実行されるその他のバむナリ ファむルず考えるこずができたす。

COMアプリケヌションも実行できるこずが刀明 スクリプト — JavaScript たたは VBScript。 技術的にはこう呌ばれたす スクリプトレット。 Windows のファむルの .sct 拡匵子を芋たこずがあるかもしれたせん。これはスクリプトレットの公匏拡匵子です。 基本的に、これらは 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>

ハッカヌず䟵入テスタヌは、COM オブゞェクトを受け入れ、それに応じおスクリプトレットも受け入れる別のナヌティリティずアプリケヌションが Windows に存圚するこずを発芋したした。

pubprn ずしお知られる VBS で曞かれた Windows ナヌティリティにスクリプトレットを枡すこずができたす。 これは C:Windowssystem32Printing_Admin_Scripts の奥にありたす。 ちなみに、オブゞェクトをパラメヌタずしお受け入れる Windows ナヌティリティは他にもありたす。 たずこの䟋を芋おみたしょう。

ずらえどころのないマルりェアの冒険、パヌト IV: DDE および Word ドキュメント フィヌルド
圓然ですが、印刷スクリプトからもシェルを起動できたす。 マむクロ゜フトに行こう

テストずしお、シェルを起動しお「スクリプトが䜜成されたした!」ずいう面癜いメッセヌゞを出力する単玔なリモヌト スクリプトレットを䜜成したした。 基本的に、pubprn はスクリプトレット オブゞェクトをむンスタンス化し、VBScript コヌドがラッパヌを実行できるようにしたす。 この方法は、システムに忍び蟌んで隠れようずするハッカヌにずっお明らかな利点を提䟛したす。

次回の投皿では、ハッカヌが Excel スプレッドシヌトを䜿甚しお COM スクリプトレットを悪甚する方法に぀いお説明したす。

宿題のために、芋おください このビデオ Derbycon 2016 より。ハッカヌがスクリプトレットをどのように䜿甚したかを正確に説明しおいたす。 そしおたた読んでください この蚘事 スクリプトレットずある皮のあだ名に぀いお。

出所 habr.com

コメントを远加したす