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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
pwncat — LinuxおよびWindowsをサポートするクロスプラットフォームで、リバース/バインドシェルを介した列挙、権限昇格、永続化、C2操作を自動化するポストエクスプロイテーションプラットフォーム。 | Kitploit
ツール/GitHubGitHub/calebstewart/pwncat
特権昇格永続化メカニズムポストエクスプロイトペネトレーションテストコマンド&コントロールレッドチーミング
GitHubcalebstewart/pwncat

pwncat

LinuxおよびWindowsをサポートするクロスプラットフォームで、リバース/バインドシェルを介した列挙、権限昇格、永続化、C2操作を自動化するポストエクスプロイテーションプラットフォーム。

リポジトリを見る
2.9k2924年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

pwncat

asciicast

pwncatは、Linuxターゲット向けのポストエクスプロイテーションプラットフォームです。基本的なバインドシェルやリバースシェルのラッパーとして始まり、そこから成長しました。攻撃者マシンからコードをステージングしながら、一般的なレッドチーム運用を効率化します。ターゲット上でコードを実行するのではありません。

以前はLinuxのみをサポートしていましたが、最近は複数プラットフォームに対応するための作業が進められています。現在、Windowsターゲット向けのアルファサポートがあります。Windowsターゲットでpwncatを使用する方法の詳細については、最新のドキュメントを参照してください。

pwncatはリモートシェルとの生の通信をインターセプトし、列挙、インプラントのインストール、特権昇格など、リモートホストでの自動化されたアクションをユーザーが実行できるようにします。

接続を受け取った後、pwncatはリモートシェルで作業するための一般的な設定をいくつか行います。

  • リモートシェルの履歴を無効化
  • シェルプロンプトの正規化
  • 有用なバイナリの特定(whichを使用)
  • 完全なインタラクティブセッションのための擬似端末(pty)の生成を試行

pwncatは、いくつかの異なる方法でptyを生成する方法を把握しており、以前に列挙した実行可能ファイルと方法を相互参照します。ptyを生成した後、制御端末をrawモードに設定し、sshと同様の方法で対話できるようにします。

pwncatは、リモートのpty設定(行、列、TERM環境変数など)をローカル設定と同期し、vimやnanoなどのインタラクティブアプリケーションでシェルが正しく動作するようにします。

John Hammondと私はGRIMMConでpwncatを発表しました。その発表はYouTubeこちらでご覧いただけます。このビデオはAPIとインターフェースの初期バージョンを示しています。最新の使用方法とAPIドキュメントについては、ドキュメントを参照してください。

pwncatのドキュメントはRead the Docsで構築されています。最新の使用方法と開発ドキュメントについては、そちらをご覧ください。

pwncatにはLinux上のPython 3.9+が必要です

インストール

pwncatは、Linux上で動作するPython開発環境のみに依存します。pipで必要なパッケージの一部をインストールするには、おそらくディストリビューションの「Python開発パッケージ」が必要です。Debianベースのシステムでは、これはpython-devです。Archでは、開発ファイルはメインのPythonリポジトリに含まれています。Enterprise Linuxでは、パッケージ名はpython-develです。

pwncatはPyPIにpwncat-csという名前でプッシュされており、pipで次のようにインストールできます。

root@kitploit:~
pip install pwncat-cs

ただし、仮想環境からpwncatをインストールすることを推奨します。

root@kitploit:~
python3 -m venv pwncat-env
source pwncat-env/bin/activate
pip install pwncat-cs

開発環境では、pwncatはPython Poetryを使用します。リポジトリをクローンし、poetryを使用して開発環境をセットアップできます。

root@kitploit:~
# poetry管理の仮想環境内にpwncatをセットアップ
git clone [email protected]:calebstewart/pwncat.git
cd pwncat
poetry install

# 仮想環境に入る
poetry shell

名称変更

Cytopiaのpwncatとの名前の競合のため、パッケージ名をpwncat-csに変更することにしました。これにはエントリポイントの名前変更も含まれており、Cytopiaのプロジェクトとの直接の競合を避けています。v0.4.*から更新する場合、コマンド名が変更され、pcatおよびpcバリアントは削除されました。詳細については、最新のリリースノートを参照してください。

この変更の追加の利点は、プロジェクトがPyPIにプッシュされ、将来のインストール/更新が容易になることです。

Windowsサポート

pwncatはv0.4.0a1以降、Windowsターゲットからの接続をサポートしています。Windowsプラットフォームは、自動的にロードされる.NetベースのC2ライブラリを利用します。Windowsターゲットはcmd.exeまたはpowershell.exeシェルで接続する必要があり、pwncatが残りの処理を行います。

C2を実装するライブラリはpwncat-windows-c2にあります。C2のDLLは、対象のリリースから自動的にダウンロードされます。ターゲットマシンにインターネット接続がない場合は、--download-plugins引数を使用してpwncatにDLLを事前ステージングするように指示できます。pwncatのリリースバージョンを実行している場合は、リリースページからすべての組み込みプラグインのtarballをダウンロードすることもできます。

プラグインはデフォルトで~/.local/share/pwncatに保存されますが、これはplugin_path設定で構成可能です。リリースページからパッケージ化されたプラグインセットをダウンロードした場合は、plugin_pathが指すパスに抽出する必要があります。

メインのC2 DLLの他に、他のプラグインも利用可能な場合があります。現在、デフォルトで提供されているプラグインはC2とBadPotatoの実装のみです。pwncatは.NetバイナリをリフレクティブにロードしてC2のプラグインとして使用できます。Windows C2プラグインの詳細については、ドキュメントを参照してください。

モジュール

最近、pwncatフレームワークのアーキテクチャが再設計され、汎用的な「モジュール」構造が組み込まれました。すべての機能は現在モジュールとして実装されています。これには列挙、永続化、特権昇格が含まれます。モジュールとの対話は、他のほとんどのポストエクスプロイテーションプラットフォームと同様です。使い慣れたrun、search、infoコマンドを利用でき、useコマンドでモジュールコンテキストに入ることができます。詳細についてはドキュメントを参照してください。

BlackArchパッケージ

Packaging status

BlackArchへのインストールは次のように簡単です。

root@kitploit:~
pacman -Syu pwncat-caleb

被害者への接続

pwncatのコマンドラインパラメータは柔軟で、さまざまな一般的な接続構文を受け入れるように設計されています。具体的には、一般的なnetcatやsshのような構文を受け入れようとします。以下はすべて有効です。

root@kitploit:~
# バインドシェルに接続
pwncat-cs connect://10.10.10.10:4444
pwncat-cs 10.10.10.10:4444
pwncat-cs 10.10.10.10 4444
# リバースシェルを待ち受け
pwncat-cs bind://0.0.0.0:4444
pwncat-cs 0.0.0.0:4444
pwncat-cs :4444
pwncat-cs -lp 4444
# SSH経由で接続
pwncat-cs ssh://user:[email protected]
pwncat-cs [email protected]
pwncat-cs user:[email protected]
pwncat-cs -i id_rsa [email protected]
# 標準以外のポートでSSH
pwncat-cs -p 2222 [email protected]
pwncat-cs [email protected]:2222
# インストールされた永続化を利用して再接続
#   再接続に失敗し、プロトコルが指定されていない場合、
#   フォールバックとしてSSHが使用されます。
pwncat-cs reconnect://[email protected]
pwncat-cs reconnect://user@c228fc49e515628a0c13bdc4759a12bf
pwncat-cs [email protected]
pwncat-cs c228fc49e515628a0c13bdc4759a12bf
pwncat-cs 10.10.10.10

デフォルトでは、pwncatはターゲットプラットフォームがLinuxであると想定します。Windowsのリバースシェルまたはバインドシェルに接続するには、--platform/-m引数を渡す必要があります。

root@kitploit:~
pwncat-cs -m windows 10.10.10.10 4444
pwncat-cs -m windows -lp 4444

構文と引数の処理の詳細については、pwncat-cs --helpのヘルプ情報を参照するか、ドキュメントをご覧ください。

Dockerイメージ

推奨されるインストール方法はPython仮想環境です。これにより、日々のpwncatの使用が最も簡単になります。しかし、Dockerイメージからpwncatを使用したいという要望もあるため、動作するpwncatインストールを提供するDockerfileを用意しました。イメージをビルドするには、以下を使用します。

root@kitploit:~
docker build -t pwncat .

これにより、タグ"pwncat"でpwncat Dockerイメージがビルドされます。コンテナ内の作業ディレクトリは/workです。コンテナのエントリポイントはpwncatバイナリです。次のように使用できます。

root@kitploit:~
# 10.0.0.1:4444のバインドシェルに接続
docker run -v "/some/directory":/work -t pwncat 10.0.0.1 4444

この例では、/some/directory内のファイルのみがコンテナに公開されます。明らかに、アップロード/ダウンロードの場合、コンテナはマウントされたディレクトリを通じて公開されたファイルのみを認識できます。

機能と特長

pwncatは2つの主要な機能を提供します。その核となるのは、リモートの疑似端末(pty)を自動的にセットアップし、完全なSSHセッションのようにリモートホストと対話できるようにすることです。ptyで操作する場合、履歴、行編集、グラフィカル端末アプリケーションなどのリモートシェルの一般的な機能を使用できます。

pwncatのもう半分は、リモートシェルを利用して自動化された列挙、永続化、特権昇格タスクを実行するフレームワークです。ローカルのpwncatプロンプトは、標準的なペネトレーションテストのために多数の便利な機能を提供します。これには以下が含まれます。

  • ファイルのアップロードとダウンロード
  • 自動化された特権昇格の列挙
  • 自動化された特権昇格の実行
  • 自動化された永続化のインストール/削除
  • 変更/作成されたファイルの自動追跡
    • pwncatはこれらのリモートの「改変」を自動的に元に戻す機能も提供します

リモートホストとの対話のための基盤フレームワークは、基盤となるシェルや接続方法を可能な限り抽象化し、コマンドやプラグインがリモートホストとシームレスに対話できるようにすることを目指しています。

pwncatとの対話方法や基盤フレームワークの詳細については、ドキュメントをご覧ください。新しい特権昇格方法や永続化方法のアイデアがある場合は、特にAPIドキュメントをご覧ください。プルリクエストを歓迎します!

計画中の機能

pwncatはレッドチームのスイスアーミーナイフになることを目指しています。近いうちに、さらに多くの機能が追加される予定です。

  • より多くの特権昇格方法(sudo -u#-1 CVE、LXDコンテナなど)
  • 永続化方法(バインドシェル、cronジョブ、SSHアクセス、PAM悪用など)
  • アグレッション方法(端末へのランダムなスパム、ファイアウォールのフラッシュなど)
  • ミーム方法(terminal-parrot、cowsay、wallなど)
  • ネットワーク方法(ポートフォワーディング、ホスト経由のインターネットアクセスなど)

既知の問題

pwncatは、最小限のリモートシステム依存で抽象的に任意のシェルと対話しようとしているため、いくつかのエッジケースが見つかっています。見つけた場合は、それらを考慮し、ユーザーから隠すためにあらゆる努力をしています。しかし、いくつかはすり抜けて実際に観測されています。そのような場合、pwncatは端末を保護するために可能な限りのことを行いますが、奇妙な出力やコマンドの失敗が発生する可能性があります。

BSDサポート

BSDはUnixベースのカーネルですが、実際にはそのユーザーランドツールはLinuxのものと著しく異なります。このため、pwncatの自動化された機能の多くは、BSDベースのターゲットに対して動作しないか、完全に失敗します。すべてのエラーやエッジケースをキャッチしようと努めていますが、BSDに対して完全にテストされていない問題がいくつかある可能性があります。いずれにせよ、安定化されたシェルはBSD環境内で機能するはずですが、保証はしません。

後日時間ができれば、BSD上でpwncatを安定化させるかもしれないが、現時点ではLinuxベースのディストリビューションに焦点を当てています。BSD上でpwncatの動作を改善することに貢献したい場合は、連絡していただくか、リポジトリをフォークしてください。いつものように、プルリクエストを歓迎します!

ツールをダウンロード