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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
penelope — Penelope Shell Handler | Kitploit
ツール/GitHubGitHub/brightio/penelope
ペイロード生成シェルコードポストエクスプロイトCTFペネトレーションテストコマンド&コントロールレッドチーミングリモートアクセスツール
GitHubbrightio/penelope

penelope

Penelope Shell Handler

リポジトリを見る
2.0k2271日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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


Black Hat Arsenal EU USA MEA
Kali Linux

Penelopeは、ペネトレーションテスターやCTFプレイヤーのための最新型シェルハンドラです。基本的なnetcatリスナーの代わりとなる、より高機能な選択肢を提供し、自動PTYアップグレード、セッション管理、ログ取得、ファイル転送、ヘルパーモジュールを追加します。

目次

  • 📥 インストール
  • ⚙️ 機能
    • 🖥️ セッション機能
    • 🌍 全体機能
    • 🧩 モジュール
  • 💻 使い方
    • ▶️ 典型的な使用例
    • 🎬 ランダムな使用のデモ
    • 🖲️ メインメニューコマンド
    • ⚡ コマンドラインオプション
  • 🔒 セキュリティ上の考慮事項
  • 📝 TODO
  • ❓ FAQ
  • 🙌 早期の協力者への感謝

インストール

PenelopeはLinux、macOS、FreeBSDを含むUnix系システムで動作し、Python 3.6以上が必要です。

Kali Linux

PenelopeはKali Linuxで利用可能です:

root@kitploit:~
sudo apt update
sudo apt install penelope

スタンドアロン実行

PenelopeはPythonの標準ライブラリのみで実装されているため、外部依存関係なしでスタンドアロンスクリプトとして実行できます:

root@kitploit:~
wget -q https://raw.githubusercontent.com/brightio/penelope/refs/heads/main/penelope.py && python3 penelope.py

pipx

GitHubから最新のアップストリーム版を直接インストールするには:

root@kitploit:~
pipx install git+https://github.com/brightio/penelope

バージョン管理され安定したリリースパスとして、PenelopeはPyPIでも利用可能です:

root@kitploit:~
pipx install penelope-shell-handler

機能

セッション機能

(*) upgrade コマンドで手動でPTYにアップグレード可能

⚠️ Windowsサポートは試験的であり、活発に開発中です。

全体機能

  • モジュールを介したターゲットとの対話の効率化
  • 複数セッション
  • 複数リスナー
  • HTTPでのファイル/フォルダ提供(-s スイッチ)
  • python3エクスプロイトからインポート可能で、同じターミナルでシェルを取得可能(extras/exploit_examples 参照)
  • set DisablePayloadHandler True でデフォルトハンドラを無効化することにより、Metasploitエクスプロイトと連携可能
  • --mcp スイッチでアクティブセッションをClaude CodeなどのMCPクライアントに公開(ローカルHTTP、トークン認証)、ユーザーと並行して同じシェルを操作

モジュール

modules

Meterpreterモジュールのデモ

meterpreter

使い方

典型的な使用例

root@kitploit:~
penelope                          # 0.0.0.0:4444 でリバースシェルを待ち受け
penelope -p 5555                  # 0.0.0.0:5555 でリバースシェルを待ち受け
penelope -p 4444,5555             # 0.0.0.0:4444 と 0.0.0.0:5555 でリバースシェルを待ち受け
penelope -i eth0 -p 5555          # eth0:5555 でリバースシェルを待ち受け
penelope -a                       # 0.0.0.0:4444 で待ち受け、サンプルのリバースシェルペイロードを表示

penelope -c target -p 3333        # target:3333 のバインドシェルに接続

penelope ssh user@target          # ローカルポート4444 でターゲットからリバースシェルを取得
penelope -p 5555 ssh user@target  # ローカルポート5555 でターゲットからリバースシェルを取得
penelope -i eth0 -p 5555 -- ssh -l user -p 2222 target  # eth0、ローカルポート5555 でターゲットからリバースシェルを取得(ssh にスイッチが必要な場合は -- を使用)

penelope -s <File/Folder>         # HTTP でファイルまたはフォルダを共有

Penelope

HTTPファイルサーバー(-s)

Penelopeは簡易HTTPファイルサーバーとしても使用できます。

root@kitploit:~
penelope -s file.txt                 # 0.0.0.0:8000 で単一ファイルを提供
penelope -s /path/to/dir             # フォルダ全体を提供
penelope -s a.sh b.elf notes.txt     # 複数のアイテムを同時に提供
penelope -s . -p 80                  # カレントディレクトリをポート80 で提供
penelope -s secret.txt -prefix xk9   # URL プレフィックスで隠す: /xk9/secret.txt
penelope -s -u                       # アップロードモード:CWD への PUT/POST を受け入れる
penelope -s -u -ud /tmp/loot         # アップロードモード、受信ファイルを /tmp/loot に保存

起動時に、Penelopeはインターフェースごとにすぐに使えるリンクを表示します(-u 設定時にはアップロードのヒントも表示)。そのままターゲットシェルにコピペできます。

ランダムな使用のデモ

以下のビデオで示すように、わずか数秒で以下のことが可能です:

  1. 完全に機能する自動リサイズ可能なPTYシェルを取得し、ターゲットとのすべてのやり取りをログに記録
  2. ディスクに触れずに最新版のLinPEASをターゲット上で実行し、出力をローカルファイルにリアルタイム保存
  3. 別のタブにもう1つのPTYシェルを開く
  4. 最新のLinPEASとlinux-smart-enumerationをアップロード
  5. カスタムスクリプトを含むローカルフォルダをアップロード
  6. exploit-dbのエクスプロイトをURLから直接アップロード
  7. リモートファイルをローカルにダウンロードして開く
  8. リモートの /etc ディレクトリをダウンロード
  9. 既存のシェルが死んだ場合に自動的に新しいシェルを生成し、不安定なシェルセッションでもアクセスを維持

https://github.com/brightio/penelope/assets/65655412/7295da32-28e2-4c92-971f-09423eeff178

メインメニューコマンド

注意:

  • デフォルトでは、PTYシェルを切り離してメインメニューに戻るには F12 を押します。アップグレードができず基本シェルになった場合は、Ctrl+C で切り離せます。これにより誤ってシェルを強制終了することも防ぎます。
  • メインメニューはTAB補完と短縮コマンドをサポートしています。たとえば、interact 1 の代わりに i 1 と入力するだけです。

Main Menu

コマンドラインオプション

root@kitploit:~
位置引数:
  args                          -s/--serve および SSH リバースシェルモードの引数

オプション:
  -p, --ports                   リスニング/接続/提供するポート(カンマ区切り)、-i/-c/-s オプションに依存
                                (デフォルト: 4444/5555/8000)

リバースまたはバインドシェル?:
  -i, --interface               リスニングするローカルインターフェース/IP (デフォルト: 0.0.0.0)
  -c, --connect                 バインドシェルのホスト
  -j, --jump                    リバースシェルのジャンプエンドポイント

ヒント:
  -a, --payloads                アクティブなリスナー向けのサンプルリバースシェルペイロードを表示
  -l, --interfaces              利用可能なネットワークインターフェースを一覧表示
  -h, --help                    このヘルプメッセージを表示して終了

セッションログ:
  -L, --no-log                  セッションログファイルを無効化
  -T, --no-timestamps           ログのタイムスタンプを無効化
  -CT, --no-colored-timestamps  ログの色付きタイムスタンプを無効化

その他:
  -M, --menu                    メインメニューで起動
  -m, --maintain                ターゲットごとにN個のセッションを維持
  -S, --single-session          最初に作成されたセッションのみを受け入れる
  -ms, --max-sessions           ホストごとの最大アクティブセッション数(デフォルト5、0=すべて拒否)
  -C, --no-attach               新しいセッションに自動アタッチしない
  -U, --no-upgrade              シェルの自動アップグレードを無効化
  -H, --keep-history            ターゲットシェルの履歴を保持する(HISTFILE=/dev/null に設定しない)
  -O, --oscp-safe               OSCPセーフモードを有効化
  --no-disk                     すべての状態をRAM(tmpfs)に保持、ディスクに永続化しない

MCP:
  --mcp                         ローカルHTTP経由でMCPサーバーを有効化
  --mcp-host                    バインドするホスト/IP(デフォルト: 127.0.0.1)
  --mcp-port                    バインドするポート(デフォルト: 保存されたポート。なければランダムな空きポート。~/.penelope/mcp.json に永続化)
  --mcp-token                   ベアラートークン(デフォルト: 保存されたトークン。なければ自動生成され永続化)

ファイルサーバー:
  -s, --serve                   HTTPファイルサーバーモードを実行
  -prefix, --url-prefix         URLパスのプレフィックス
  -u, --upload                  ファイルアップロード(PUT/POST)をサーバーに有効化
  -ud, --upload-dir             アップロードを保存するディレクトリ(デフォルト: CWD)

デバッグ:
  -N, --no-bins                 ターゲット上の不足バイナリをシミュレート(カンマ区切り)
  -v, --version                 バージョンを表示して終了
  -d, --debug                   デバッグ出力を有効化
  -dd, --dev-mode               開発者モードを有効化
  -cu, --check-urls            ハードコードされたURLの健全性をチェックして終了

セキュリティ上の考慮事項

Penelopeはリモートシェルとの直接かつ柔軟な対話を提供するように設計されています。使用時には以下の点に注意してください:

  • 端末エスケープシーケンス: Penelopeはリモートシステムからの端末出力を直接ローカルの端末エミュレータに転送します。悪意のあるリモートプロセスは端末エスケープシーケンスを使用して画面を操作したり、誤解を招くリンクを作成したり、クリップボードなどの機能と相互作用したりする可能性があります。この露出は、リモートシェルをローカル端末に中継するあらゆるツール(SSH、telnet、netcatなど)に内在するものであり、Penelopeに固有のものではありません。信頼できないシステムに接続する際は、適切なセキュリティ設定の端末を使用してください。

  • セッションログ: セッションログには、ターゲットから受け取った認証情報、トークン、コマンド、その他の機密情報が含まれる場合があります。これらは安全に保管し、ログが不要な場合は --no-log を使用してください。

  • 暗号化されていない接続: 標準のリバースシェルおよびバインドシェルの接続は暗号化されていません。信頼できないネットワーク上で使用する場合は、トラフィックが安全なトンネルやVPNで保護されていることを確認してください。

  • MCPサーバー(--mcp): 有効にすると、MCPサーバーはベアラートークン(~/.penelope/mcp.json に保存、パーミッション 0600)を保持するすべてのクライアントに、すべてのアクティブセッション(コマンド実行、ファイル転送)への完全な制御を許可します。127.0.0.1 にバインドされ、トークン認証されています。トークンを秘密に保ち、サーバーを信頼できないネットワークに公開しないでください。

⚖️ 免責事項: Penelopeは許可されたセキュリティテスト、研究、教育目的のみを対象としています。明示的な許可なくシステムに対して使用しないでください。

TODO

機能

  • 暗号化
  • リモートポートフォワーディング
  • socks 及び http プロキシ
  • チームサーバー
  • HTTPs および DNS エージェント

既知の問題

  • セッションログ: nano などの代替バッファを使用するコマンドは、異常終了した場合にログにエスケープシーケンスを残す可能性があります。データ自体は保存されていますが、cat などのツールでログファイルを表示すると壊れて見える場合があります。これらのエスケープシーケンスをフィルタリングして、ログ出力をよりスムーズにする予定です。

FAQ

► PenelopeはOSCP試験で使用できますか?

Penelopeのコアとなるシェルハンドリング機能は自動的なエクスプロイトを行わないため、OSCPスタイルの使用に適しています。ただし、試験規則は変更される可能性があるため、試験中にツールを使用する前に、必ず最新の公式OffSecルールを確認してください。

一部のモジュールには追加の注意が必要です:

  • meterpreterモジュールは、現在の試験ルールに準拠した方法でのみ使用する必要があります。
  • traitorモジュールは、自動権限昇格を実行するTraitorをアップロードします。

誤ってルールに違反するのを避けたい場合は、-O / --oscp-safe スイッチを使用してください。

► リモートシェルからメインメニューに戻るにはどうすればよいですか?

使用しているシェルアップグレードの種類によって異なります:

  • PTY: F12 を押す
  • Readline: EOF を送信(Ctrl-D)
  • Raw: SIGINT を送信(Ctrl-C)

いずれの場合も、セッションにアタッチするときには常に正しいキーが表示されます。例:

F12

► Penelopeをカスタマイズするにはどうすればよいですか(デフォルトオプションの変更、カスタムモジュールの作成など)?

peneloperc を参照してください。

► メニューコマンド(download/uploadなど)を使用するときに、現在の作業ディレクトリやユーザーが反映されないのはなぜですか?

これは通常、別のユーザーのもとで新しいインタラクティブシェルを開いたことを意味します。Penelopeエージェントは初期シェルのディレクトリのみを追跡し、その最初のシェルのユーザーの権限を保持します。最善の回避策は、新しいシェルを開く前に cd /tmp するか、ユーザーを切り替えた場合は新しいユーザーとして新しいリバースシェルを生成することです。

► どうすれば貢献できますか?

あなたの貢献は非常に貴重です!ご支援いただける場合は、バグ、予期しない動作の報告、新しいアイデアの共有をお願いします。プルリクエストも送信できますが、PEP8を強制し、コードベース全体を意図せず再構築する可能性のあるIDEからのコミットは避けてください。

► 名前の由来は?

Penelopeはオデュッセウスの妻であり、彼の帰りを待つ忠誠心と忍耐で知られています。このツールは、基本的なリスナーを超えたワークフローのために、忠実で安定したシェルハンドラとして構築されたことにちなんで名付けられました。

早期の協力者への感謝

  • Cristian Grigoriu - @crgr - PTYアップグレードプロセスの自動化を私に促してくれたことによる。これがこのプロジェクトの誕生のきっかけです。
  • Paul Taylor - @bao7uo - バインドシェルをサポートするアイデアを提供してくれたことに対して。
  • Longlone - @WAY29 - 以前のPythonバージョン(3.6)との互換性の必要性を示してくれたことに対して。
  • Carlos Polop - @carlospolop - 他のシステム上のリスナーでシェルを生成するアイデアを提供してくれたことに対して。
  • @darrenmartyn - scriptコマンドを使用してシェルをPTYにアップグレードする代替方法を示してくれたことに対して。
  • @bamuwe - SSHを介してリバースシェルを取得するアイデアを提供してくれたことに対して。
  • @strikoder - 数多くの機能強化のアイデアを提供してくれたことに対して。
  • @root-tanishq, @robertstrom, @terryf82, @RamadhanAmizudin, @furkan-enes-polatoglu, @DerekFost, @Mag1cByt3s, @nightingalephillip, @grisuno, @thinkslynk, @stavoxnetworks, @thomas-br, @joshoram80, @TheAalCh3m1st, @r3pek, @bamuwe, @six-two, @x9xhack, @dummys, @pocpayload, , , - バグ報告に対して。
ツールをダウンロード
機能Unix系ターゲットWindowsターゲット
シェルの自動アップグレードPTYreadline(*)
リアルタイム端末リサイズ✅❌
シェルアクティビティのログ記録✅✅
リモートファイル/フォルダのダウンロード✅✅
ローカル/HTTPファイル/フォルダのアップロード✅✅
メモリ内ローカル/HTTPスクリプト実行とリアルタイム出力ダウンロード✅❌
ローカルポートフォワーディング✅❌
複数タブおよび/またはホストへのシェル生成✅❌
ホストごとにN個のアクティブシェルを自動維持(死亡時に再生成)✅❌
@anti79
@strikoder
@bestutsengineer
  • 特に @Y3llowDuck - このツールを広めてくれたことに心から感謝します!