MS17-010
このリポジトリは、MS17-010 に関する私の公開作業のためのものです。サポートを行う予定はありません。すべてのサポート依頼には返信しません。
ファイル
- BUG.txt MS17-010 のバグの詳細と分析
- checker.py アクセス可能な名前付きパイプを探すスクリプト
- eternalblue_exploit7.py Windows 7/2008 用 Eternalblue エクスプロイト
- eternalblue_exploit8.py Windows 8/2012 x64 用 Eternalblue エクスプロイト
- eternalblue_poc.py バッファオーバーフローのバグに対する Eternalblue PoC
- eternalblue_kshellcode_x64.asm 私の Eternalblue エクスプロイト用の x64 カーネルシェルコード。このシェルコードは Windows Vista 以降で動作するはずです。
- eternalblue_kshellcode_x86.asm 私の Eternalblue エクスプロイト用の x86 カーネルシェルコード。このシェルコードは Windows Vista 以降で動作するはずです。
- eternalblue_sc_merge.py eternalblue の x86 および x64 シェルコードをマージするスクリプト。マージされたシェルコードを使用する x86 と x64 の両方をサポートする Eternalblue エクスプロイトは、ターゲットアーキテクチャを検出する必要がありません。
- eternalchampion_leak.py 情報漏えい部分の Eternalchampion PoC
- eternalchampion_poc.py RIP を制御する Eternalchampion PoC
- eternalchampion_poc2.py コード実行を得る Eternalchampion PoC
- eternalromance_leak.py 情報漏えい部分の Eternalromance PoC
- eternalromance_poc.py OOB 書き込みの Eternalromance PoC
- eternalromance_poc2.py 任意の読み書きにつながるトランザクションを制御する Eternalromance PoC
- eternalsynergy_leak.py 情報漏えい部分の Eternalsynergy PoC
- eternalsynergy_poc.py 大きなページプールを使用したヒープスプレーイングを実証する Eternalsynergy PoC
- infoleak_uninit.py 初期化されていないトランザクションデータバッファから情報を漏えいさせる PoC
- mysmb.py MS17-010 のバグを悪用しやすくするための拡張 Impacket SMB クラス
- npp_control.py セッションセットアップコマンドで非ページプールの割り当てを制御する PoC
- zzz_exploit.py Windows 2000 以降向けのエクスプロイト (名前付きパイプへのアクセスが必要)
匿名ユーザー
匿名ユーザー (null セッション) は、新しい Windows バージョンのデフォルト設定でより多くの制限を受けます。認証なしで Windows SMB を悪用するには、以下の動作を認識しておく必要があります。
- Windows Vista 以降、デフォルト設定では匿名ユーザーが名前付きパイプにアクセスできません。
- Windows 8 以降、デフォルト設定では匿名ユーザーが IPC$ 共有にアクセスできません (IPC$ にはアクセスできるかもしれませんが、あまりできることはありません)。
NSA エクスプロイトについて
- Eternalblue は、ターゲットを悪用するために IPC$ へのアクセスのみを必要としますが、他のエクスプロイトは名前付きパイプへのアクセスも必要とします。そのため、このエクスプロイトは、すべての構成において Windows < 8 に対して常に機能します (tcp ポート 445 にアクセスできる場合)。ただし、Eternalblue は他のエクスプロイトよりもターゲットをクラッシュさせる可能性が高くなります。
- Eternalchampion は名前付きパイプへのアクセスを必要とします。このエクスプロイトはターゲットをクラッシュさせる可能性はありません。
- Eternalromance は名前付きパイプへのアクセスを必要とします。情報漏えいのバグが Windows 8 で修正されているため、このエクスプロイトは Windows < 8 をターゲットにできます。このエクスプロイトは Eternalblue よりもターゲットをクラッシュさせる可能性が低いはずです。私はこのエクスプロイトの信頼性をテストしたことはありません。
- Eternalsynergy は名前付きパイプへのアクセスを必要とします。このエクスプロイトは、Windows 8 以降をターゲットにするために Eternalromance から変更されたものだと思います。Eternalsynergy は情報漏えいに別のバグを使用し、実行可能メモリを見つけるために何らかのトリックを行います (私は出力ログと pcap ファイルしか読んでいないため、その仕組みはわかりません)。