CVE-2012-0158の脆弱性分析レポート

北京ブルーテクノロジー株式会社

2003 SP3オフィス( CVE-2012から0158 )脆弱性分析

 

ソフトウェア名Office 2003のSP3

ソフトウェアバージョン:2.0

脆弱性モジュール:MSCOMCTL.OCX

モジュールのバージョン:2.0.0.0

日付をコンパイルします:2003

オペレーティングシステム:WindowsのXP / 7分の2003 / 8.1 / 10

脆弱性ID:CVE-2012から0158

ハザードクラス:スーパー・リスクまたは高リスクまたは中等度リスクまたは低リスク

脆弱性のタイプ:スタックオーバーフロー

脅威の種類:ローカル

 

 

 

 

 

アナリスト:ミャオ族甘いです

2019年9月13日

 

 

  • ソフトウェアの説明

Microsoft Office 2003のはWORD、EXCEL、PowerPoint、および他の3つの主要コンポーネント、広範な使用、および多くの人気オフィスや行政などのオフィススイートソフトの立ち上げのためのMicrosoft Windowsオペレーティングシステムです。Officeアプリケーションは、それが関節のサーバーとインターネットベースのサービスを含んでいるよう。

 

  • 脆弱性の原因

2.1はじめに脆弱性

CVE-2012-0158の脆弱性は、スタックオーバーフローの脆弱性がMSCOMCTL.ListViewでMicrosoftのオフィス生産性ソフトウェアMSCOMCTL.oceが起因するエラーをチェックするために制御されている、慎重に構築プログラムEIP任意のコードの実行を介してデータを制御することができ、攻撃者

 

マイクロソフトID CVE-2012-0158の脆弱性は、ms02-027です

 

 

2.2の脆弱性を再現

準備:脆弱性によって引き起こさ取得 POC、インストールのOffice 2003 SP3を

使用する直接実行POC効果winworld:

 

 

 

 

2.3デバッグの脆弱性

セットには、異常、追加のWINWORDプログラムをスキップしていない、例外を無視しないOD

 

 

 

 

 

 

 

 

 

2.3.1位置決め脆弱性のトリガーポイント

 

スタックの近くに流出点を分析した後、スタック以下レイヤ機能スタックオーバーフロー機能ポイントは通常は、オーバーフローと呼ばれ

スタックオーバーフローポイントスタックの上に、破壊された可能性があり、一般的にだけ実行された機能である、あなたは住所を見つけることができます

275C8A0Aは、決意、それによってだけ実行される機能を実行する、このアドレスはMSCOMCTLモジュールのアドレスであることがわかります

ラインコードモジュールのMSCOMCTL

 

 

 

 

 

 

 

 

 

 

 

いくつかのデバッグには、ランダム化ベースアドレスは認められませんでした

呼び出しにブレークポイント機能外部関数275C8A0Aを

リターンアドレスが変更された場合の再試運転、観察

 

 

 

 

リターンアドレスに見ることができるように 275C8A05アドレス、変更後の関数を呼び出すMSCOMCTL.275C876D

 

 

 

 

次に見つけ、機能を解析 IDAを使用し、MSCOMCTL.OCXファイルを静的に解析する機能を見つけます

これは、コピー機能は、機能を持っていることがわかりました

 

 

 

 

 

使用して問題をデバッグODコピーを発見され、ダメージ層スタックのリターンアドレスオーバーライド機能

 

 

 

 

 

 

見つかったバイト数を定義し、関数を呼び出す V7をローカル変数とdwBytesをしています

 

 

 

 

 

 

 

 

そして同じ 8282

 

 

 

 

 

使用 010ビューファイルは、ファイルに格納された2つのバイトを見つけました

 

 

 

 

再び試運転、番号を変更します

 

 

 

 

 

EDIはパラメータであり、すなわち、最初の番号がデジタルdzbyteに渡され、2番目の数字はV7定義されたバイトの数であります

 

 

 

充填、バッファサイズを変更して自由である、ローカル変数はスタックに、ダメージをいずれかを保存します

参考:

 

 

 

 

 

 

 

  • プロセスを使用します

抜け穴工程の使用

1.解析と構造的脆弱性シェルコードの設計

 

 

 

 

2.実行中のプログラムに命令の踏み台アドレスを探します

JMP ESP

使用 ImmunityDebugger + mona.pyを

ディレクトリ内PyCommandsにmona.py ImmunityDebugger

 

 

 

 

 

!モナモジュールトラバースコマンドモジュールで使用ImmunityDebugger

検索システムモジュールのために、真偽やOS DLLにリベース、SafeSEHを、ASLR、NXCOMPATを。(つまり、何も保護されていない、モジュールはシステムを呼び出します)

MSVBVM60.DLL

 

 

 

 

使用!モナ-sを見つける"\ XFF \ xe4" -m MSVBVM60.DLLのモジュールで見つかったコマンド、JMP ESP命令を見て

読み込み可能な実行可能な検索のJMP ESP命令を、0x729a0535

 

 

 

 

 

 

 

 

ファイルバッファに小端部にリターンアドレス位置をカバーします

 

 

 

 

 

 

 

  • PoC

次の書き込みシェルコードとJMP ESP命令アドレス

 

 

 

 

 

 

 

シェルコードテンプレート:

 

 

 

 

 

 

 

 

 

 

ポップアップメッセージボックスを、HelloWorldの

 

 

 

 

 

 

  • エピローグ

忍耐が必要、雪の教師のビデオに感謝、ワン教師のガイド

  • 参考資料

 

 

おすすめ

転載: www.cnblogs.com/mtbook/p/11719124.html