web-dev-qa-db-ja.com

フォントを特権エスカレーションにどのように使用できますか?

最近、カスペルスキーは Duqu 2.0の分析 をリリースし、マルウェアはTrue Typeフォントファイルを使用して重大な脆弱性( CVE-2011-3402 )を悪用し、「カーネルに直接ジャンプしました。 」この特定の脆弱性に関する詳細や、TTFがいかに油断なき目的で使用されるかについて、多くの詳細を見つけることはできませんでした。私は、フォントの指示を画面上の文字に変換するコードはカーネルアクセスを必要とせず、特に複雑にする必要もないと単純に考えますが、それは明らかに正しくありません。では、悪意のあるフォントファイルが任意のコードを実行できるようにするにはどうすればよいでしょうか。

19
Aron Foster

フォントは難しいです。古いコードです。カーネルモードで実行されます。

Julia Wolf FireEye、Inc.の分析:


要点はこれのようです:

スライド32:

  • アウトラインは、グラフィックの状態を操作するためにTuring Complete言語を使用して描画されます

(そしてその言語はカーネルモードで解釈されるようです)

スライド78:

  • これは、True Type VMの内部グローバル状態構造内に格納されているCVTアレイの長さでした。
  • その結果、TrueTypeエンジンは、元の長さの1つではなく、129個の要素を保持すると信じていました。

アップデート2016-06:Project Zeroの一般的な背景

Google Project Zeroは、フォントの脆弱性に関する一般的な詳細なブログ投稿をまとめました。
(特定のCVE-2011-3402上からは言及されていません。)

2017-01更新:Windows 10 Aniversary UpdateがUSERモードでフォントを解析するようになりました

17
StackzOfZtuff

TrueTypeフォントとOpenTypeフォント

TrueTypeフォント(TTF)とOpenTypeフォント(OTF)は非常に人気があり、広く使用されているフォントシステムです。多くのマシンでは、TTFがデフォルトであり、OTFは特にオープンソース形式として使用できるため、人気が高まっています。 OTFは1996年に公開され、TTFはそれよりずっと前から使用されています。これらのフォントシステムの両方をサポートするドライバーでよく使用されるレガシーコードは、ヒープオーバーフローや境界外エラーなどの脆弱性を公開します。どちらも悪意のある特権の実行につながる悪用の一般的な攻撃ベクトルです。

通常、TTFおよびOTFの脆弱性をターゲットとするエクスプロイトは、コンピューターでのこれらのフォントファイルタイプの使用をサポートするドライバーをターゲットとしています。

CVE-2015-2426(Microsoftが Exploit:Win32/CVE-2015-2426 として検出してブロックする)の場合、エクスプロイトは使用された.dllドライバーファイル(atmfd.dll)をターゲットにしようとしましたWindowsのWindows Adob​​e Type Managerライブラリ。この脆弱性はMS15-078で解決されました。 TrendMicroが分析を行いました この脆弱性は、HackingTeamエクスプロイトでデータ侵害からデータが漏洩したときに発見されました。 NCC Groupも長い分析を行いました HackingTeamエクスプロイトのメタスプロイトフレームワークプロジェクトにms15_078_atmfd_bofとして侵入しました。

全体の話をじっくり味わうことができるなら、 Reverse Engineering and Exploiting Font Rasterizers に関する44CONのj00ruの講演を必ずチェックしてください。

CVE-2013-3128(MS13-081によって解決)は、OTFおよびTTFフォントがMicrosoftプログラムによって解析される方法の脆弱性でした。このような場合、攻撃者は悪意のあるフォントまたは不正なフォントをWebページに埋め込んで、脆弱性を読み込んだりターゲットにしたりして、マルウェアをマシンにインストールする可能性があります。 CVE-2013-3128には、関連するTTFの脆弱性であるCVE-2013-3894を含む Nessus および OpenVAS プラグインがあります。おそらく、これら2つがmetasploit-frameworkエクスプロイトモジュールに組み込まれなかった理由は、同じパッチロールアップMS13-081およびMS13-082に、ms13_081_track_popup_menuという名前の別のローカル権限昇格エクスプロイトが含まれていたためです(新しいms14_058_track_popup_menuと品質が類似しています)。

フォントスケーラーエンジンの脆弱性が本当に好きな場合は、必ず F13 Laboratory の作業をチェックして、Black Hat USA 2013-WindowsカーネルでのFont Scaler Engineのスマッシング video および ホワイトペーパー 、およびDig Teamの作業、Black Hat USA 2014-Windows Kernel Font Scaler EngineのTOCTTOUについて ビデオ および PDFプレゼンテーション

カプセル化されたPostScript

カプセル化PostScript(EPS)ファイルは、印刷プレビューを表示し、印刷に関連する他の機能を提供するために使用されます。 TTFと同様に、ユビキタスです。

.epsファイルは、Wordの.docxファイルなどの他のファイルに埋め込むことができます。 .docxファイルが解凍または解凍され、.epsファイルが追加されてイメージとして参照され、.docxファイルが再パックされます。

Microsoft Officeで使用されるPosScriptフィルターに影響を与えるCVE-2015-2545を使用したこの配信メカニズムの3つのバージョンを確認しました。

  • 最初のバージョンは、公に知られる前に CVE-2015-2545 を悪用しようとしたため、ゼロデイ悪用になりました。それはインドで最初に見られたresume.docxと呼ばれるファイルを使用しました。マイクロソフトはこの脆弱性を修正するためにMS15-099(9月のリリース)をリリースしました。
  • 2番目のバージョンはMS15-099(9月のリリース)を回避しようとし、日本で確認されました。 MS15-099(11月のリリース)へのアップデートによって緩和されました。
  • 3番目のバージョンは、ファイル名が不明な韓国で確認されており、MS15-099(11月のリリース)へのアップデートによっても緩和されました。

異常な方法で、この脆弱性のmetasploit-frameworkエクスプロイトモジュールは作成されませんでしたが、CORE IMPACTでは Microsoft Office Malformed EPS File Vulnerability Exploit -またはいくつかのビューを参照してください- レジスタとスタックトレース

9
atdre

フォントをレンダリングするために、技術的にカーネルランドメモリ空間へのアクセスは必要ありません。そのため、エクスプロイトとパッチが存在します。

パッチは、レンダリングエンジンがスタック内の書き込み可能なメモリにアクセスして作成する必要があることに対処しました。

これは、ユーザーランドメモリまたはカーネルレベルのメモリレジスタで発生する可能性がありますが、スタックに書き込む前に境界チェックが行われていないため、不正な形式のfonファイルからコードを実行できました。

それが悪用された「方法」を見つけるための最善の策は、metasploitsモジュールを検索することです。私にはそれがあると思います。

0
jas-