web-dev-qa-db-ja.com

EternalBlueエクスプロイトとASLR

最新のマシンでASLRが有効になっている可能性があるのに、なぜEternalBlueのエクスプロイトが成功するのですか?私はウィンドウの内部に慣れていないので間違っているかもしれません。 this を含め、これに関する説明は見つかりません。どんなリンクでも大歓迎です。

ありがとう。

3
gigasai

から RiskSense P.19:

元のEternalBlueエクスプロイトのASLRバイパスは、Microsoft Windows 10 Redstone 2(2017年4月)までHALヒープ(ハードウェアアブストラクションレイヤーで使用)が0xffffffffffd00000に静的に配置されていたという弱点を利用しています。

ASLRをバイパスするには、固定オフセットで十分なこのような領域。

3
40F4

RoRaZと40F4はいくつかの本当に良い点を作りました。

もう1つは、特に健康セクターまたは金融セクターで、それぞれの絶妙な使用法のために特別に作成されたソフトウェアを使用する必要があるすべての企業で、オペレーティングシステムを更新できない場合があることです。簡単に交換することはできません。特に病院は、かなり古いWindowsバージョンで多くの作業を行っているため、非常に脆弱です。次に、デスクトップシステムだけではありません。どのような(医療などの)デバイスもWindowsのようなオペレーティングシステム上でビルドできます。

修正があるからといって、修正が誰にとっても簡単に実行できるというわけではありません。プライベートユーザーはこの問題に関与しませんが、プライベートユーザーがEternalBlueなどのエクスプロイトのターゲットグループになることはめったにありません。

添加:

0xffffffff ffd00000は64ビットシステムの仮想アドレスで、32ビットの場合は0xffd00000です。

4
Melissa Loos

Risk Sense PDF (PDFを開く)から:

3.6.2 DEPバイパス
Microsoft Windows 8/8.1(Server 2012)のある時点で、HALヒープが実行不可能になりました。仮想メモリのページテーブルエントリ(PTE)には、ベース物理アドレス、CPUリングモード、ダーティビットなどのメモリ位置に関する情報が含まれ、ハードウェアによるDEPの導入から始まり、オフセットにNo eXecute(NX)ビットが含まれます。 63. NXビットが設定されていて、命令ポインターをページに移動しようとすると、カーネルパニックにより悪用が防止されます。

一般に、ASLRのバイパスは、既知のアドレスを見つけることに依存しています。 ASLRは通常、カーネル/システムプロセスの起動時に1回だけランダム化されます。したがって、ポイント(構造、関数、DLLなど)のアドレスを見つけることができれば、気になる他のオブジェクトへのオフセットを計算できます。

私はASLRではSMEではありませんが、それは高レベルのビューです。

3
RoraΖ