PentestGPT
v0.14.0
GPT を利用した侵入テスト ツール。
ドキュメントを確認する »
設計の詳細 · デモを見る · バグを報告するか機能をリクエストする
virtualenv -p python3 venv
、 source venv/bin/activate
)pip3 install git+https://github.com/GreyDGL/PentestGPT
でプロジェクトをインストールしますexport OPENAI_API_KEY='<your key here>'
を使用して API キーをエクスポートし、 export OPENAI_BASEURL='https://api.xxxx.xxx/v1'
を使用して API ベースをエクスポートします。pentestgpt-connection
を使用して接続をテストします。tmux
使用します。これは、ネイティブ ターミナルでtmux
実行するだけで実行できます。pentestgpt --logging
resources
で確認できます。PentestGPT はPython 3.10
でテストされています。他の Python3 バージョンも動作するはずですが、テストされていません。
PentestGPT は、高品質の推論を実現するためにOpenAI APIに依存しています。ここで取り付けビデオを参照できます。
pip3 install git+https://github.com/GreyDGL/PentestGPT
で最新バージョンをインストールしますgit clone https://github.com/GreyDGL/PentestGPT
cd PentestGPT
pip3 install -e .
export OPENAI_API_KEY='<your key here>'
を使用して API キーをエクスポートしますexport OPENAI_BASEURL='https://api.xxxx.xxx/v1'
を使用して API ベースをエクスポートします。pentestgpt-connection
を使用して接続をテストします。pentestgpt-connection
実行します。しばらくすると、ChatGPT との会話サンプルが表示されるはずです。 You're testing the connection for PentestGPT v 0.11.0
#### Test connection for OpenAI api (GPT-4)
1. You're connected with OpenAI API. You have GPT-4 access. To start PentestGPT, please use <pentestgpt --reasoning_model=gpt-4>
#### Test connection for OpenAI api (GPT-3.5)
2. You're connected with OpenAI API. You have GPT-3.5 access. To start PentestGPT, please use <pentestgpt --reasoning_model=gpt-3.5-turbo-16k>
pentestgpt --reasoning_model=gpt-4 --useAPI=False
実行すると、引き続き使用できます。poetry
がインストールされていることを確認してください。そうでない場合は、詩のインストール ガイドを参照してください。 以下を実行することをお勧めします。
pentestgpt --reasoning_model=gpt-4-turbo
使用します。pentestgpt --reasoning_model=gpt-4
。pentestgpt --reasoning_model=gpt-3.5-turbo-16k
。まず、 pentestgpt --args
を実行します。
--help
ヘルプ メッセージを表示します--reasoning_model
、使用する推論モデルです。--parsing_model
、使用する解析モデルです。--useAPI
、OpenAI API を使用するかどうかです。デフォルトでは、 True
に設定されています。--log_dir
カスタマイズされたログ出力ディレクトリです。場所は相対ディレクトリです。--logging
、ログを共有するかどうかを定義します。デフォルトでは、 False
に設定されています。このツールはmsfconsoleと同様に機能します。ガイダンスに従って侵入テストを実行します。
一般に、PentestGPT は chatGPT と同様のコマンドを受け入れます。いくつかの基本的なコマンドがあります。
help
: ヘルプメッセージを表示します。next
: テストの実行結果を入力し、次のステップを取得します。more
: PentestGPTに現在のステップの詳細を説明させます。また、テスターをガイドするための新しいサブタスク ソルバーが作成されます。todo
: todoリストを表示します。discuss
: PentestGPTと議論します。google
: Googleで検索します。この機能はまだ開発中です。quit
: ツールを終了し、出力をログ ファイルとして保存します (以下のレポートセクションを参照)。TAB
使用できます。ENTER
押して項目を選択します。同様に、<SHIFT + 右矢印> を使用して選択を確定します。more
によって開始されるサブタスク ハンドラーでは、ユーザーはさらに多くのコマンドを実行して、特定の問題を調査できます。
help
: ヘルプメッセージを表示します。brainstorm
: 考えられるすべての解決策についてローカル タスクについて PentestGPT にブレインストーミングをさせます。discuss
: このローカルタスクについて PentestGPT と話し合います。google
: Googleで検索します。この機能はまだ開発中です。continue
: サブタスクを終了し、メインのテスト セッションを続行します。pentestgpt --logging
実行してください。当社は LLM の使用状況のみを収集し、OpenAI キーに関連する情報は収集しません。logs
フォルダーにレポートが自動的に生成されます ( quit
コマンドで終了した場合)。python3 utils/report_generator.py <log file>
実行することで人間が判読できる形式で印刷できます。サンプルレポートsample_pentestGPT_log.txt
もアップロードされています。 PentestGPT はローカル LLM をサポートするようになりましたが、プロンプトは GPT-4 用にのみ最適化されています。
pentestgpt --reasoning_model=gpt4all --parsing_model=gpt4all
を実行します。pentestgpt/utils/APIs/module_import.py
のmodule_mapping
クラスを更新できます。module_import.py
、 gpt4all.py
、 chatgpt_api.py
の例に従って、独自のモデルの API サポートを作成することもできます。 私たちの論文を次の場所で引用してください。
@inproceedings {299699,
author = {Gelei Deng and Yi Liu and V{'i}ctor Mayoral-Vilches and Peng Liu and Yuekang Li and Yuan Xu and Tianwei Zhang and Yang Liu and Martin Pinzger and Stefan Rass},
title = {{PentestGPT}: Evaluating and Harnessing Large Language Models for Automated Penetration Testing},
booktitle = {33rd USENIX Security Symposium (USENIX Security 24)},
year = {2024},
isbn = {978-1-939133-44-1},
address = {Philadelphia, PA},
pages = {847--864},
url = {https://www.usenix.org/conference/usenixsecurity24/presentation/deng},
publisher = {USENIX Association},
month = aug
}
MIT ライセンスに基づいて配布されます。詳細については、 LICENSE.txt
を参照してください。このツールは教育目的のみを目的としており、作者は違法な使用を容認しません。自己責任でご使用ください。
(トップに戻る)