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
中查看此範例,我們使用它來解決 HackTheBox 挑戰模板(網路挑戰)。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
使用最新的 GPT-4-turbo API。pentestgpt --reasoning_model=gpt-4
如果您有權存取 GPT-4 API。pentestgpt --reasoning_model=gpt-3.5-turbo-16k
如果您只能存取 GPT-3.5 API。首先,執行pentestgpt --args
。
--help
顯示說明訊息--reasoning_model
是您要使用的推理模型。--parsing_model
是您要使用的解析模型。--useAPI
是否要使用OpenAI API。預設情況下它設定為True
。--log_dir
是自訂的日誌輸出目錄。該位置是相對目錄。--logging
定義您是否願意與我們共用日誌。預設情況下它設定為False
。該工具的工作原理與msfconsole類似。按照指導執行滲透測試。
一般來說,PentestGPT 接收的指令與 chatGPT 類似。有幾個基本指令。
help
:顯示幫助資訊。next
:輸入測試執行結果並進行下一步。more
:讓PentestGPT解釋當前步驟的更多細節。此外,還將建立一個新的子任務求解器來指導測試人員。todo
:顯示待辦事項清單。discuss
:與PentestGPT討論。google
:在谷歌上搜尋。該功能仍在開發中。quit
:退出工具並將輸出儲存為日誌檔案(請參閱下方的報告部分)。TAB
來自動完成命令。ENTER
選擇該項目。同樣,使用 <SHIFT + 向右箭頭> 確認選擇。在more
發起的子任務處理程序中,使用者可以執行 more 指令來調查特定問題:
help
:顯示幫助資訊。brainstorm
:讓 PentestGPT 就本地任務進行腦力激盪,找出所有可能的解決方案。discuss
:與 PentestGPT 討論這個本地任務。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
。該工具僅用於教育目的,作者不容忍任何非法使用。使用風險自負。
(回到頂部)