
@Ekultek による BlueKeep PoC を実際のエクスプロイトに移植する試み
このプロジェクトはアーカイブされました。実際のエクスプロイトが他の場所でより成功裏に開発されているためです。
https://blog.rapid7.com/2019/09/06/initial-metasploit-exploit-module-for-bluekeep-cve-2019-0708/
bluekeep_CVE-2019-0708_poc_to_exploit
問題(クローズ済みとオープン)をすべて読んでから、「動作しない」、「スクリプト実行後に何も起こらない」、「エラー(具体的でない)、助けて」などと投稿してください。
============================================================================
============================================================================
============================================================================ これは市販のエクスプロイトのように簡単に手に入れて試せるものではありません。
さらに、コードがリモートマシンで実行されることを保証するためには、配信方法も重要です。
今のところ、シェルを取得してRCEを達成することはまだ成功していません。
現在存在するほとんどのスキャナーとPoCは、対象ホストからの応答を分析して脆弱かどうかを判断するだけです。(パッチ適用済みと未適用のバージョン、および影響を受けないOSでは異なる応答が返されることは皆さんご存知でしょう)。実際には対象ホストを「エクスプロイト」しません。RCEを達成するには、まず特別に細工されたパケットを送信して脆弱性をトリガーする必要があります(プロトコル仕様についてはRDP MSDNを参照)。脆弱性がトリガーされた後、第二のステップとしてクラッシュダンプやメモリダンプを分析して、コードをどのように適合させるかを解明します。これはほとんどの人が考えるほど単純ではありません。
有用なリソース:
シェルコードの生成には、@trustedsecのMagic Unicornを使用できます。 https://github.com/trustedsec/unicorn
**注: Python 3を使用してください
RDPクライアントは、ユーザーが接続先のリモートデスクトップ名を指定すると接続を開始します。RDPクライアントはX.224接続要求プロトコルデータユニット(PDU)を送信してRDセッションホストへの接続を開始します。
RDセッションホストはX.224接続確認PDUで応答します。
RDPクライアントは、GCC会議作成要求を含むマルチポイント通信サービス(MCS)接続初期PDUを送信します。--> 脆弱性はこのリクエストに関連しています。
RDセッションホストはGCC会議作成応答を含むMCS接続応答PDUで応答します。
RDPクライアントはMCS Erect Domain Request PDUを送信します。
RDPクライアントはMCS Attach User Request PDUを送信します。
RDセッションホストはMCS Attach User Confirm PDUで応答します。
RDPクライアントは複数(この場合は6つ)のMCSチャネル参加要求PDUを送信します。
RDセッションホストは複数(この場合は6つ)のMCSチャネル参加確認PDUを送信します。
RDPクライアントはセキュリティ交換PDUを送信します。
RDPクライアントはクライアント情報PDUを送信します。
RDセッションホストはライセンスエラーPDU-有効なクライアントを送信します。
RDセッションホストはDemand Active PDUを送信します。
RDPクライアントはConfirm Active PDUで応答します。
RDPクライアントはSynchronize PDUを送信します。
RDPクライアントはControl PDU-Cooperateを送信します。
RDPクライアントはControl PDU-Request Controlを送信します。
RDPクライアントは0個以上の永続キーリストPDUを送信します。この場合は0個のPDUが送信されます。
RDPクライアントはFont List PDUを送信します。
RDセッションホストはSynchronize PDUを送信します。
RDセッションホストはControl PDU-Cooperateを送信します。
RDセッションホストはControl PDU-Granted Controlを送信します。
RDセッションホストはFont Map PDUを送信します。.