
Pupy
Pupyは、オープンソースのクロスプラットフォーム (Windows、Linux、OSX、Android) な多機能RAT (リモート管理ツール) およびポストエクスプロイトツールで、主にPythonで書かれています。すべてインメモリで実行されるガイドラインを持ち、非常に低いフットプリントを残します。Pupyは、さまざまなトランスポートを使用して通信し、プロセスへの移行(リフレクティブインジェクション)、リモートPythonコード、Pythonパッケージ、Python C拡張をメモリからロードできます。
Pupyモジュールは、rpycを使用して透過的にリモートPythonオブジェクトにアクセスし、さまざまなインタラクティブなタスクを実行できます。
Pupyは、PE実行ファイル、リフレクティブDLL、純粋なPythonファイル、PowerShell、APKなど、複数の形式でペイロードを生成できます。
ペイロードをパッケージ化する際に、ランチャー(connect、bindなど)、トランスポート(ssl、http、rsa、obfs3、scramblesuitなど)、および複数の「スクリプトレット」を選択できます。スクリプトレットは、セッションを必要とせずに(オフラインで)さまざまなタスク(バックグラウンドスクリプトの開始、永続化の追加、キーロガーの開始、サンドボックスの検出など)を実行するために埋め込まれるPythonスクリプトです。
インストール
git clone https://github.com/n1nj4sec/pupy.git pupy
cd pupy
git submodule init
git submodule update
pip install -r pupy/requirements.txt
または Wikiを参照
機能
- マルチプラットフォーム(Windows XP、7、8、10、Kali Linux、Ubuntu、OSX、Androidでテスト済み)
- Windowsでは、PupyペイロードをリフレクティブDLLとしてコンパイルでき、Pythonインタプリタ全体がメモリからロードされます。Pupyはディスクに触れません :)
- pupyは、単一の.pyファイルにパッケージ化でき、すべてのOSでPython標準ライブラリ以外の依存関係なしで実行できます
- pycryptoが利用できない場合、純粋なPythonのAESおよびRSA実装に置き換えられます
- Pupyは、他のプロセスにリフレクティブに移行できます
- Pupyは、純粋なPythonパッケージ(.py、.pyc)およびコンパイル済みPython C拡張(.pyd、.so)をメモリからリモートインポートできます。インポートされたPythonモジュールはディスクに触れません。
- Pupyは簡単に拡張可能で、モジュールはかなり簡単に記述でき、OSとカテゴリ別に分類されています。
- 多くの素晴らしいモジュールがすでに実装されています!
- Pupyは rpyc を使用しており、モジュールはリモートクライアントのPythonオブジェクトに直接アクセスできます
- pupyシェルからリモートオブジェクトにインタラクティブにアクセスすることもでき、リモート属性の自動補完も利用できます!
- 通信トランスポートはモジュール式で、スタック可能で、素晴らしいものです。HTTP over HTTP over AES over XOR でデータを流出させることができます。または利用可能なトランスポートの任意の組み合わせ!
- Pupyは、obfsproxy プラガブル・トランスポート を使用して通信できます
- 非インタラクティブモジュールはすべて、1つのコマンドで複数のホストにディスパッチできます
- リモートホストで実行されているコマンドとスクリプトは割り込み可能です
- コマンドと引数の自動補完
- カスタム設定を定義可能:コマンドエイリアス、接続時に自動実行されるモジュールなど
- すべてインメモリのリモートPythonインタプリタ上で自動補完付きのインタラクティブなPythonシェルを開くことができます
- リモートでインタラクティブシェル(cmd.exe、/bin/bashなど)を開くことができます。UnixおよびWindowsクライアントのリモートシェルは、SSHシェルのようにすべてのキーボードシグナルが正常に動作する実際のttyを持ちます
- PupyはPE実行ファイルをリモートかつメモリから実行できます(例:mimikatzを使用)
- Pupyは、apk、lin_x86、lin_x64、so_x86、so_x64、exe_x86、exe_x64、dll_x86、dll_x64、py、pyinst、py_oneliner、ps1、ps1_oneliner、rubber_duckyなどのさまざまな形式でペイロードを生成できます
- Pupyは、pupygen.pyのPythonまたはPowerShellワンライナーを使用して、1つのコマンドラインからメモリ内に展開できます
- 生成されたペイロードに「スクリプトレット」を埋め込むことができ、ネットワーク接続を必要とせずに「オフライン」でタスクを実行できます(例:キーロガーの開始、永続化の追加、カスタムPythonスクリプトの実行、check_vmなど)
- 他にも多数の機能があります。実装済みモジュールをご確認ください
実装済みトランスポート
pupyのすべてのトランスポートはスタック可能です。つまり、カスタムトランスポート設定(pupy/network/transport/<transport_name>/conf.py)を作成することで、pupyセッションをあらゆるものに見せかけることができます。たとえば、HTTP over HTTP over base64 over HTTP over AES over obfs3 を積み重ねることができます :o)
- rsa
- RSAとAES256を使用した認証と暗号化のレイヤー。他のレイヤーとよく積み重ねられます
- aes
- ssl(デフォルト)
- ssl_rsa
- sslと同じですが、rsaレイヤーと積み重ねられています
- http
- トラフィックをHTTPトラフィックのように見せるレイヤー。HTTPはrsaレイヤーと積み重ねられています
- obfs3
- scramblesuit
- udp
- rsaレイヤーですがUDP上(バグがある可能性があります。まだパケット損失を処理していません)
- その他
- 他のレイヤーは特に興味深いものではなく、コード例として提供されています:(dummy、base64、XORなど)
実装済みランチャー(最新ではない。cf. ./pupygen.py -h)
ランチャーを使用すると、pupyはリバース接続を開始する前にカスタムアクションを実行できます
- connect
- bind
- auto_proxy
- 可能なSOCKS/HTTPプロキシのリストを取得し、それぞれを試す。プロキシ取得方法は:レジストリ、WPAD要求、gnome設定、HTTP_PROXY環境変数
実装済みモジュール(最新ではない)
すべてのプラットフォーム:
- コマンド実行
- ダウンロード
- アップロード
- 自動補完付きインタラクティブPythonシェル
- インタラクティブシェル(cmd.exe、powershell.exe、/bin/sh、/bin/bashなど)
- tty割り当てはWindowsと*nixの両方で十分にサポートされています。SSHシェルのように見えます
- シェルコード実行
- 永続化
- socks5プロキシ
- ローカルおよびリモートポートフォワーディング
- スクリーンショット
- キーロガー
- 素晴らしいクレデンシャル収集ツールLaZagneをメモリから実行!
- スニッフィングツール、netcreds
- プロセス移行(Windows & Linux、OSXはまだ)
- ...
- 他の多くのツール(upnpクライアント、impacketをリモートで使用したさまざまな偵察/ピボットツールなど)
Windows固有:
- migrate
- プロセス間アーキテクチャ注入も機能します(x86->x64およびx64->x86)
- PE実行ファイル(x86とx64の両方)のメモリ内実行!
- ウェブカムスナップショット
- マイク録音
- マウスロガー:
- クリックごとにマウスの周りの小さなスクリーンショットを撮り、サーバーに送り返します
- トークン操作
- getsystem
- creddump
- 多数の便利なPowerShellスクリプト
- ...
Android固有
- Android用テキスト読み上げ(声に出して読み上げる)
- ウェブカムスナップショット(フロントカム&バックカム)
- GPSトラッカー!
ドキュメント
Wikiを参照
スクリーンショット(最新ではない)
Wikiのスクリーンショットセクション
FAQ
サーバーはWindowsで動作しますか?
PupyサーバーはLinuxで最もよく動作します。Windows上のサーバーはあまりテストされておらず、おそらく多くのバグがあります。移植可能なコードを書くよう最善を尽くしていますが、常にすべてを修正する時間があるわけではありません。非移植性のコードにパッチを当てる勇気があるなら、プルリクエストを喜んで受け入れます! :)
インストールできません。どうやって動作するのですか?
Wikiのインストールセクションをご覧ください
pupy.shを起動すると次のエラーが発生します:ImportError: No module named creddump.win32.domcachedump
Wikiのインストール手順に従ってください。gitサブモジュールの初期化/更新を忘れています
pupygenを使用すると次のエラーが発生します:IOError: [Errno 2] No such file or directory: '/full-path/pupy-master/pupy/payload_templates/pupyx86.exe'
Wikiのインストール手順に従ってください。gitサブモジュールの初期化/更新を忘れています
インストール時に別のエラーが発生します
Wikiのインストール手順に従ってください(はい、分かっています)
ねえ、pupyが大好きです。ビールをおごってもいいですか?
もちろんです!ありがとう!
pledgie経由:
BTC経由:12BKKN81RodiG9vxJn34Me9ky19ArqNQxC
DDOSモジュールを追加してくれませんか?
いいえ。
連絡先
メール:[email protected]
Twitter:Twitterでフォロー
もしpupyの開発に参加したい人がいれば、遠慮なく!すべての助けを大いに感謝し、すべてのプルリクエストをレビューします。
このプロジェクトは自己啓発です。その哲学を尊重し、悪用しないでください!
特別な感謝
pupyの改善とさらに優れたツールにするために貢献してくれたすべてのコントリビューターに特別な感謝を! :)