Skip to content
KitploitKITPLOIT
ツールブログ
Log in
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
rdpscan-BlueKeep — CVE-2019-0708「BlueKeep」脆弱性のクイックスキャナー。 | Kitploit
ツール/GitHubGitHub/gh0st0ne/rdpscan-bluekeep
偵察脆弱性スキャナーエクスプロイト情報収集ネットワークセキュリティペネトレーションテスト
GitHubgh0st0ne/rdpscan-bluekeep

rdpscan-BlueKeep

CVE-2019-0708「BlueKeep」脆弱性のクイックスキャナー。

リポジトリを見る
12147年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Windows download macOS download Linux download Follow

CVE-2019-0708 bluekeep 脆弱性用 rdpscan

これは、Microsoft リモートデスクトップの CVE-2019-0708 脆弱性を検査するための簡易スキャナです。 現在、公開インターネット上にはこの脆弱性の影響を受ける約 90 万台のマシンが存在しており、 WannaCry や notPetya のようなワームがすぐに発生すると予想する人も多くいます。そのため、自分のネットワークをスキャンして、 脆弱なシステムにパッチを適用する(または少なくとも NLA を有効にする)ことをお勧めします。

これはコマンドラインツールです。ソースコードをダウンロードして自分でコンパイルするか、 上記のリンクから Windows または macOS 用のプリコンパイル済みバイナリをダウンロードできます。

このツールは、https://github.com/zerosum0x0/CVE-2019-0708 の rdesktop パッチに完全に基づいています。 macOS と Windows で簡単にコンパイルできるようにコードを整理し、 複数のターゲットをスキャンする機能を追加しただけです。

ステータス

これは開発開始からわずか数日の実験的なツールです。ただし、インターネット全体をスキャンしてテストしています (masscan の助けを借りているので、多くの問題をかなり迅速に解決しています)。ヘルプやコメントについては、Twitter(@erratarob) で連絡してみてください。

  • 2019-05-38 - 結果の説明テキストと、その意味のドキュメントを改善(下記参照)。
  • 2019-05-27 - Windows および macOS バイナリをリリース(上のバッジをクリック)。
  • 2019-05-26 - Windows のネットワーク問題を修正中
  • 2019-05-25 - Linux と macOS は良好、Windows にいくつかのネットワークエラーあり
  • 2019-05-24 - Linux と macOS で動作、Windows にいくつかのコンパイルバグあり
  • 2019-05-23 - 現在 XCode 内で macOS 向けに作業中

主な使い方

ネットワークをスキャンするには、次のように実行します。

rdpscan 192.168.1.1-192.168.1.255

これにより、各アドレスに対して次の 3 つの結果のいずれかが出力されます。

  • SAFE - ターゲットが パッチ適用済み であるか、少なくとも CredSSP/NLA を必要とすると判定された場合
  • VULNERABLE - ターゲットが脆弱であることが確認された場合
  • UNKNOWN - ターゲットが応答しないか、何らかのプロトコルエラーが発生した場合

ターゲットの IP アドレスに何も存在しない場合、古いバージョンでは "UNKNOWN - connection timed out" という メッセージが出力されていました。大規模なネットワークをスキャンする場合、 これは関心のないシステムに関する過剰な情報を大量に生成します。そのため、新しいバージョンではデフォルトで この情報を出力しません。出力するにはコマンドラインに -v(verbose)を追加してください。

ワーカー数を増やすことで、大規模ネットワークのスキャン速度を向上できます。

rdpscan --workers 10000 10.0.0.0/8

ただし、私のコンピュータでは、システムの制限により、このパラメータをいくら高く設定しても、 約 1500 ワーカーしか生成されません。

さらに速度を上げるには、後述のように masscan と組み合わせて使用することもできます。

結果の解釈

一般的な応答は 3 つあります。

  • SAFE - ターゲットはおそらくパッチ適用済みか、その他の理由でこのバグの影響を受けないことを意味します。
  • VULNERABLE - ターゲットがこのバグに対して脆弱であることを確認したことを意味し、ワームが来たときに 感染する可能性が高いでしょう。
  • UNKNOWN - どちらの状態か確認できないことを意味します。通常は、ターゲットが応答しないか、 RDP を実行していないためで、これは応答の大部分を占めます。また、ターゲットのリソースが 不足している場合やネットワーク問題が発生している場合も、この結果が多く出ます。最後に、 プロトコルエラーも多くの原因となります。 3 つの主な応答は SAFE、VULNERABLE、UNKNOWN ですが、それぞれに診断結果を説明する追加テキストが含まれます。このセクションでは、 表示されるさまざまな文字列について説明します。

SAFE

ターゲットが安全と考える主な理由は 3 つあります。

  • SAFE - Target appears patched これは、ターゲットがトリガーリクエストに応答しない場合に発生します。つまり、パッチ適用済みの Windows システムか、 Windows 10 や Unix のようにそもそも脆弱ではなかったシステムであることを意味します。
  • SAFE - CredSSP/NLA required これは、RDP 接続を確立する前に、ターゲットがまずネットワークレベル認証を必要とすることを意味します。 このツールは、正当な資格情報なしではこのポイントを通過できないため、ターゲットがパッチ適用済みかどうかを 判断できません。ただし、ハッカーもこのポイントを通過して脆弱なシステムを悪用することはできないため、 おそらく「安全」です。ただし、エクスプロイトが登場すると、有効なユーザー名/パスワードを持つ内部関係者が、 システムが未パッチの場合にそれを悪用できるようになります。
  • SAFE - not RDP これは、システムが RDP ではなく、たまたま同じポートを使用する別のサービスが、明らかに RDP ではない応答を 返す場合を意味します。一般的な例は HTTP と SSH です。ただし、識別可能なプロトコルの代わりに、サーバーが RST または FIN パケットで応答する場合もあります。これらは SAFE ではなく UNKNOWN として識別されます。

VULNERABLE

これは、システムがこのバグに対して脆弱であることを確認したことを意味します。

  • VULNERABLE - got appid システムが脆弱な場合の応答はこれだけです。

UNKNOWN

UNKNOWN には無数のバリエーションがあります。

  • UNKNOWN - no connection - timeout これは圧倒的に最も一般的な応答で、ターゲットの IP アドレスがまったく応答しない場合に発生します。 実際、非常に一般的なため、大規模なアドレス範囲をスキャンするときは通常省略されます。 有効にするには -v(verbose)フラグを追加する必要があります。
  • UNKNOWN - no connection - refused (RST) これは圧倒的に 2 番目に一般的な応答で、ターゲットが存在してネットワークトラフィックに応答するものの、 RDP を実行していないため、TCP RST パケットで接続を拒否する場合に発生します。
  • UNKNOWN - RDP protocol error - receive timeout これは 3 番目に一般的な応答で、RDP 接続の確立に成功したものの、その後サーバーが応答を停止した場合に発生します。 これはネットワークエラーや、ターゲットシステムが何らかの理由で過負荷になっている場合に発生します。 また、NAT の背後にいて過剰な数の接続で NAT に過負荷をかけている場合など、この端側のネットワークエラーも考えられます。
  • UNKNOWN - no connection - connection closed これは、接続(TCP SYN-ACK)が確立されたものの、その後すぐに(RST または FIN で)接続が閉じられたことを意味します。 これには多くの理由が考えられ、区別できません。
    • RDP を実行しているが、何らかの理由で接続を閉じる場合。 おそらくリソース不足が原因です。
    • RDP ではなく、送信した RDP リクエストを受け付けないため、 適切なエラーメッセージを送信する代わりに(その場合は SAFE - not RDP になる)、 接続を突然閉じる場合。
    • IPS、ファイアウォール、NAT などの中間デバイスが、これを攻撃的と判断したか、 リソースを使い果たしたために接続を閉じた場合。
    • その他、私が特定できていない理由。インターネットをスキャンしていると、 さまざまな奇妙なことが発生します。
  • UNKNOWN - no connection - host unreachable (ICMP error) リモートネットワークが、ホストに到達できないか、ホストが稼働していないことを報告しています。 そのホストが稼働しているはずだと思う場合は、後でもう一度試してください。
  • UNKNOWN - no connection - network unreachable (ICMP error) 遠端に(一時的な)ネットワークエラーがあります。そのネットワークが稼働しているはずだと 思う場合は、後でもう一度試してください。
  • UNKNOWN - RDP protocol error RDP プロトコルで何らかの破損が発生したことを意味します。リモート側が誤って実装している(Windows システムではない)、 一時的なネットワークエラーへの処理が不適切、またはその他の理由が考えられます。
  • UNKNOWN - SSL protocol error Windows Vista 以降、RDP は STARTTLS プロトコルを使用して SSL 上で実行されます。 このレイヤーには上記と同様の独自の問題があります。具体的には、基盤となるネットワークエラーの処理が不適切だったり、 何らかの非互換性があるシステムと通信しようとしたりする場合です。ここで非常に長いエラーメッセージが表示される場合 (SSL3_GET_RECORD:wrong version など)は、相手側の SSL にバグがあるか、使用している 自身の SSL ライブラリにバグがあることを意味します。

masscan との併用

この rdpscan ツールはかなり遅く、1 秒あたり数百ターゲットしかスキャンできません。 代わりに masscan を使用して高速化できます。 masscan ツールはおよそ 1000 倍高速ですが、ターゲットに関する情報は限られています。

手順は次のとおりです。

  • まず、masscan でアドレス範囲をスキャンして、ポート 3389(または使用するポート)で応答するホストを すばやく見つけます。
  • 次に、masscan の出力を rdpscan に渡して、既知のアクティブなターゲットのみを スキャンします。

簡単な実行方法は、コマンドラインでそれらを組み合わせることです。

masscan 10.0.0.0/8 -p3389 | rdpscan --file -

私の場合は、2 つのステップで行います。

masscan 10.0.0.0/8 -p3389 > ips.txt
rdpscan --file ips.txt --workers 10000 >results.txt

ビルド

難しいのは OpenSSL ライブラリをインストールし、システム上の他のバージョンと競合しないようにすることです。 Debian Linux では、次のようにします。

$ sudo apt install libssl-dev

その問題を解決したら、次のようにすべての .c ファイルを一緒にコンパイルするだけです。

$ gcc *.c -lssl -lcrypto -o rdpscan

このディレクトリにはこれを行う Makefile を置いてあるので、おそらく次のようにするだけで済みます。

$ make

コードは C で書かれているため、C コンパイラがインストールされている必要があります。たとえば、次のようにインストールします。

$ sudo apt install build-essential

よくあるビルドエラー

このセクションでは、よくあるビルドエラーについて説明します。

ssl.h:24:25: fatal error: openssl/rc4.h: No such file or directory

これは、OpenSSL ヘッダーがインストールされていないか、パス上にないことを意味します。 OpenSSL バイナリがインストールされていても、開発用のファイルがインストールされているとは限らないことに注意してください。 ヘッダーとライブラリの両方がインストールされている必要があります。

Debian にこれらをインストールするには、次のようにします。

$ sudo apt install libssl-dev

パスの問題を修正するには、コンパイルフラグ -I/usr/local/include などを追加します。

リンカ問題の例は次のとおりです。

Undefined symbols for architecture x86_64:
"_OPENSSL_init_ssl", referenced from:
    _tcp_tls_connect in tcp-fac73c.o
"_RSA_get0_key", referenced from:
    _rdssl_rkey_get_exp_mod in ssl-d5fdf5.o
"_SSL_CTX_set_options", referenced from:
    _tcp_tls_connect in tcp-fac73c.o
"_X509_get_X509_PUBKEY", referenced from:
    _rdssl_cert_to_rkey in ssl-d5fdf5.o

macOS では OpenSSL のバージョンが複数あるため、このエラーが発生します。 パスをハードコードすることで修正しています。

$ gcc *.c -lssl -lcrypto -I/usr/local/include -L/usr/local/lib -o rdpscan

他の人のコメントによると、Homebrew でインストールした場合、次のコマンドラインが macOS で機能する可能性があります。 ただし、競合する他の OpenSSL コンポーネントをインストールしているため、上記のリンクエラーは依然として発生します。

gcc $(brew --prefix)/opt/openssl/lib/libssl.a $(brew --prefix)/opt/openssl/lib/libcrypto.a -o rdpscan *.c

実行

上記のセクションでは、プログラムを実行するためのクイックスタートのヒントを示しました。このセクションでは、 より詳細なヘルプを提供します。

ツールをダウンロード