web-dev-qa-db-ja.com

NXビットがWannaCryを停止できなかったのはなぜですか?

私は、ボランティアで働いている高校のコンピュータサイエンスの学生に贈るプレゼンテーションに取り組んでいます。プレゼンテーションの一部は、ローカルおよびネットワークの悪用に関するものです。私は、数年前に意図的なバッファオーバーフローを使用してプログラムを作成し、setuidビットを設定し、NOPスライドを実行してシェルコードを実行することでrootアクセスを取得できたという話について話そうと思っています。このプログラムを最新のOSまたは最新のハードウェアで実行すると、NXビットが原因でエクスプロイトが機能しなくなります。 (私はこのテクニックを「ハッキング、搾取の芸術」という本から手に入れた)。

また、WannaCryランサムウェアについても説明する予定です。 このWannaCryのFireEyeリンク を参照すると、不正なパケットがポート445でSMBv1に送信された後、ソフトウェアがNOPスライドを実行してシェルコードを実行できることが説明されています。

だから私の質問は、なぜ(OSまたはCPUからの)NXビットがWannaCryの動作を停止できなかったのですか?

4
Shaun Miller

WannaCryは最初にセカンダリSMB=トランザクションをトリガーし、次にsrv2.dllのバグ(初期化されていないパケットバッファー)を使用してバッファーオーバーランを呼び出しました。

NetApi32.dllは、一部のOSバージョンおよびサービスパックでNXをバイパスできます( refexploit )。