Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
pyrdp — RDPモンスターインザミドル(MITM)およびPython用ライブラリで、接続をライブまたは事後的に監視する機能を備えています。 | Kitploit
ツール/GitHubGitHub/gosecure/pyrdp
エクスプロイトネットワークフォレンジック情報収集ネットワークセキュリティマルウェア分析CTFペネトレーションテスト学習と教育レッドチーミングインシデントレスポンスペイロード開発ラボと実践
1.8k272414ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
GitHubgosecure/pyrdp

pyrdp

RDPモンスターインザミドル(MITM)およびPython用ライブラリで、接続をライブまたは事後的に監視する機能を備えています。

リポジトリを見るウェブサイト
共有

PyRDP

Tests Black Hat Arsenal 2019 Black Hat Arsenal 2021 Black Hat Arsenal 2022

PyRDP は、Python で書かれた Remote Desktop Protocol (RDP) Monster-in-the-Middle (MITM) ツールおよびライブラリです。

PyRDP ロゴ

以下のツールを備えています。

  • RDP モンスター・イン・ザ・ミドル
    • 接続時に使用される平文の認証情報または NetNTLM ハッシュをログに記録
    • クリップボードにコピーされたデータを盗み取る
    • ネットワークを介して転送されたファイルのコピーを保存
    • バックグラウンドで共有ドライブをクロールし、ローカルに保存
    • 接続のリプレイを保存して、後で確認可能
    • 新しい接続時にコンソールコマンドまたは PowerShell ペイロードを自動実行
  • RDP プレイヤー:
    • MITM からのライブ RDP 接続を表示
    • RDP 接続のリプレイを表示
    • アクティブな RDP セッションを制御し、操作を隠蔽
    • アクティブセッション中にクライアントのマップ済みドライブを一覧表示し、ファイルをダウンロード
  • コンバーターツール:
    • RDP リプレイを動画に変換して共有を容易化
    • RDP リプレイを JSON 形式でシリアル化された低レベルイベントのシーケンスに変換
    • PCAP をリプレイ、動画、または JSON イベントに変換
    • 復号化された PCAP (L7 PDU) をリプレイ、動画、または JSON イベントに変換
  • RDP 証明書クローナー:
    • RDP サーバーの証明書と同じフィールドを持つ自己署名 X509 証明書を作成

PyRDP は 2018 年に発表 され、 実際の脅威アクターの行動を捉えられること を実証しました。 このツールは、ペネトレーションテストとマルウェア研究の両方のユースケースを念頭に開発されています。

PyRDP プレイヤーが RDP セッションを再生している様子

目次

  • 対応システム
  • インストール
    • pipx を使用する
    • Docker イメージを使用する
  • PyRDP の使用方法
    • PyRDP モンスター・イン・ザ・ミドルの使用方法
    • PyRDP プレイヤーの使用方法
    • PyRDP 証明書クローナーの使用方法
    • PyRDP Convert の使用方法
    • PyRDP の設定
    • 高度な使用方法
    • Docker 固有の使用手順
  • PyRDP にまつわる逸話
  • PyRDP への貢献
  • 謝辞

対応システム

PyRDP は Python 3.7 以降で、x86-64、ARM、ARM64 プラットフォーム上で動作するはずです。

このツールは、Linux (Ubuntu 20.04、22.04)、Raspberry Pi、Windows 上の Python 3.7 で動作確認済みです。macOS ではテストされていません。

インストール

推奨されるインストール方法は、pipx を使用する方法と、Docker コンテナを使用する方法の 2 つです。 ソースからのインストールや Docker コンテナの自作については、開発ドキュメント を参照してください。

pipx を使用する

依存関係

Linux

まず、必要なパッケージをインストールしてください (以下は Ubuntu 22.04 用のリストです。他のディストリビューションでは調整が必要かもしれません)。フルインストールとスリムインストールの 2 種類を提供しています。ユースケースに応じて依存関係をインストールしてください。```sh

Full install (GUI, convert captures to video)

sudo apt install python3 python3-pip python3-venv
build-essential python3-dev openssl
libegl1 libxcb-cursor0 libxkbcommon-x11-0 libxcb-icccm4 libxcb-keysyms1
libnotify-bin
libavcodec58 libavdevice58

Slim install (no GUI, no conversion to video possible)

sudo apt install python3 python3-pip python3-venv
build-essential python3-dev git openssl

これにより、PyRDPの実行に必要な依存関係がインストールされるはずです。GUIまたは動画変換の依存関係をインストールしない場合、`pyrdp-player`をヘッドレスモード(`--headless`)なしで使用したり、`pyrdp-convert`を使用して動画出力を行うことはできません。

`pipx`がインストールされていることを確認してください。Ubuntu 22.04の場合:```sh
python3 -m pip install --user pipx
python3 -m pipx ensurepath
Windows

Pythonがインストールされていることを確認してください。 Windows 11では、Windows StoreのPythonは私の環境では動作しませんでした。 Scoop 経由でPythonをインストールすることをお勧めします。```sh scoop install python # if not installed already scoop install pipx pipx ensurepath

ログアウトしてから再度ログインしてください(PATHを更新するため)。

##### その他のOS

他のオペレーティングシステムに `pipx` をインストールするには、こちらを参照してください: <https://github.com/pypa/pipx#install-pipx>

#### インストール

QT GUI とキャプチャを動画に変換する機能を備えた PyRDP のフルエクスペリエンスを得るには:```sh
pipx install pyrdp-mitm[full]

ヘッドレス環境(サーバー、RaspberryPi)で実行することを目的としたコンパクト版の場合:```sh pipx install pyrdp-mitm

準備完了です![使用方法](#using-pyrdp)を参照してください。

### Dockerイメージの使用

これは、Dockerがインストールされて動作している場合の最も簡単なインストール方法です。```sh
docker pull gosecure/pyrdp:latest

代替として、GUIとffmpeg依存関係のない、よりスリムなイメージがあります。これはARMプラットフォームで提供される唯一のイメージです。```sh docker pull gosecure/pyrdp:latest-slim

すべてのDockerイメージのリストは、[gosecure/pyrdp DockerHubページ](https://hub.docker.com/r/gosecure/pyrdp/tags)で見つけることができます。
`latest`タグは最新のリリースバージョンを指し、`devel`タグは`main`ブランチからビルドされたDockerイメージです。

## PyRDPの使用

### PyRDP Monster-in-the-Middleの使用

`pyrdp-mitm <ServerIP>`または`pyrdp-mitm <ServerIP>:<ServerPort>`を使用してMITMを実行します。

RDPサーバーが`192.168.1.10`で実行され、ポート3389でリッスンしていると仮定すると、次のように実行します:```sh
pyrdp-mitm 192.168.1.10

When running the MITM for the first time a directory called pyrdp_output/ will be created relative to the current working directory. Here is an example layout of that directory:```sh pyrdp_output/ ├── certs │   ├── WinDev2108Eval.crt │   └── WinDev2108Eval.pem ├── files │   ├── e91c6a5eb3ca15df5a5cb4cf4ebb6f33b2d379a3a12d7d6de8c412d4323feb4c │   ├── b14b26b7d02c85e74ab4f0d847553b2fdfaf8bc616f7c3efcc4771aeddd55700 ├── filesystems │   ├── romantic_kalam_8214773 │   │   └── device1 │   │   └── clipboard | └── priv-esc.exe -> ../../../files/b14b26b7d02c85e74ab4f0d847553b2fdfaf8bc616f7c3efcc4771aeddd55700 │   └── happy_stonebraker_1992243 │   ├── device1 │   └── device2 | └── Users/User/3D Objects/desktop.ini -> ../../../../../../e91c6a5eb3ca15df5a5cb4cf4ebb6f33b2d379a3a12d7d6de8c412d4323feb4c ├── logs │   ├── crawl.json │   ├── crawl.log │   ├── mitm.json │   ├── mitm.log │   ├── mitm.log.2021-08-26 │   ├── ntlmssp.log │   ├── player.log │   └── ssl.log └── replays ├── rdp_replay_20231214_01-20-28_965_happy_stonebraker_1992243.pyrdp └── rdp_replay_20231214_00-42-24_295_romantic_kalam_8214773.pyrdp

* `certs/` には、証明書の `CN` をファイル名として使用して生成され保存された証明書が含まれています。
* `files/` には、キャプチャされたすべてのファイルが含まれており、コンテンツの SHA-256 ハッシュをファイル名として保存することで重複排除されています。
* `filesystems/` には、セッションIDで分類されたターゲットのファイルシステムの再現が含まれています。類似したセッションのスペースを節約するために、ファイルは `files/` の実際のファイルへのシンボリックリンクです。
* `logs/` には、さまざまなログが含まれており、ほとんどが JSON とプレーンテキストの両方の形式で保存されています。
  * `crawl`: ファイルクローラログ
  * `mitm`: メインのMITMログ
  * `ntlmssp.log`: キャプチャされたNetNTLMハッシュ
  * `player.log`: プレイヤーログ
  * `ssl.log`: TLSマスターシークレット(Wireshark互換の形式で保存)
* `replays/` には、以前に記録されたすべての PyRDP セッションが含まれており、ファイル名にタイムスタンプとセッションIDが含まれています。

#### 秘密鍵と証明書の指定

鍵生成が機能しなかった場合、またはカスタムの鍵と証明書を使用したい場合は、`-c` および `-k` 引数を使用して指定できます。```sh
pyrdp-mitm 192.168.1.10 -k private_key.pem -c certificate.pem
Monster-in-the-Middle ネットワークレベル認証 (NLA) 接続

ネットワークレベル認証 (NLA) は、Windows Vista 以降で利用可能なセキュリティ機能であり、RDP 接続にセキュリティを追加します。 NLA は新しいセキュリティサポートプロバイダー CredSSP に依存しており、その名前で呼ばれることもあります。 NLA を強制するサーバーは攻撃がより困難です。 使用できる戦略は3つあります。

  • サーバーの証明書と秘密鍵を取得する
  • ホストリダイレクション機能を使用する
  • クライアントの NetNTLMv2 ハッシュをキャプチャしてクラックする
Monster-in-the-Middle NLA

サーバーの証明書と秘密鍵にアクセスできる場合、NLA が強制されていても RDP の MITM に成功することができます。 この攻撃については、1.0 リリースブログ記事で文書化しました。 RDP 証明書と秘密鍵を抽出する手順は GitHub で入手可能です。

証明書と秘密鍵にアクセスできる状態であれば、pyrdp-mitm コマンドラインに以下を追加して認証を ssp に設定するだけです。```sh --auth ssp -c <certificate.pem> -k <private-key.pem>

これにより、NLAが適用された接続をインターセプトすることが可能になります。

###### サーバーでNLAが適用された場合の代替ホストリダイレクション

![NLAリダイレクションを説明する図](https://assets.kitploit.com/production/public/readmes/2804/e74aa87cc1cfb892b9070fe387c9530e4e99973b2d780b72f6c118abf1ec8a5b.png)
ツールをダウンロード