本文介紹如何在 Ubuntu Linux 中使用 PentAGI 搭配本地端 Ollama 框架與 Qwen 模型,讓 AI 進行自動化滲透測試。

PentAGI 是一套開源的全自主 AI 滲透測試平台,採用多智能體(Multi-Agent)協作架構,整合了 Nmap、Metasploit、Sqlmap 等 20 多種資訊安全工具,能在隔離的 Docker 沙箱環境中自動執行資訊收集、漏洞掃描、攻擊驗證與報告生成。

開始安裝之前,請先參考 Ubuntu Linux 安裝與設定 NVIDIA GPU 與 Docker 環境,安裝 NVIDIA 與 Docker 環境,並設定讓 GPU 可在 Docker 容器內運行。

安裝 Ollama

LLM 的服務框架我們選擇最簡單的 Ollama,參考 Ollama 的官方文件,安裝 Ollama:

# 安裝 Ollama
curl -fsSL https://ollama.com/install.sh | sh

安裝完成後,查看一下 Ollama 服務,確認它有正常啟動:

# 查看 Ollama 服務狀態
systemctl status ollama

更改 Ollama 傾聽 IP 位址

Ollama 服務預設會傾聽 127.0.0.1 這個本機的 IP 位址,如果要讓 Docker 裡面的 PentAGI 也可以存取 Ollama,可以修改 /etc/systemd/system/ollama.service 設定檔,加上一行設定讓 Ollama 傾聽所有網路介面:

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

修改完設定檔之後,重新啟動 Ollama 系統服務:

# 重新載入設定檔
systemctl daemon-reload

# 重新啟動 Ollama
systemctl restart ollama

下載與布署 Qwen3.8 模型:

# 下載 qwen3.8:27b 模型
ollama pull qwen3.8:27b

# 下載 qwen3-embedding:8b 模型
ollama pull qwen3-embedding:8b

安裝 PentAGI

PentAGI 本身只是一個用 Docker Compose 包裝好的專案,在使用 PentAGI 之前要進行一些系統的設定,可以利用它提供的 installer 設定工具,對於初次使用 PentAGI 的人,此工具可以快速釐清有哪一些設定需要寫:

# 建立 PentAGI 專用目錄
mkdir -p pentagi && cd pentagi

# 下載並解壓縮 PentAGI
wget -O installer.zip https://pentagi.com/downloads/linux/amd64/installer-latest.zip
unzip installer.zip

# 進行設定
./installer

PentAGI 可以調整的選項非常多,其中 Ollama 與 Embedding 的部份是一定要設定的,請參考下方 .env 的內容來進行設定,設定好之後 installer 會自動產生 .env 這個檔案,比較重要的內容如下:

# Ollama 伺服器 URL(必要)
OLLAMA_SERVER_URL=http://host.docker.internal:11434

# Ollama 使用的 LLM 模型(必要)
OLLAMA_SERVER_MODEL=qwen3.8:27b

# Ollama 自動下載模型
OLLAMA_SERVER_PULL_MODELS_ENABLED=true

# Embedding 伺服器 URL(必要)
EMBEDDING_URL=http://host.docker.internal:11434

# Embedding 模型(必要)
EMBEDDING_MODEL=qwen3-embedding:8b

# Embedding 模型由 Ollama 提供
EMBEDDING_PROVIDER=ollama

installer 在設定完成後會產生 docker-compose.yml 設定檔,並自動呼叫 Docker Compose 將服務啟動,但我們需要再進行一些調整,所以先手動停止 PentAGI 的 Docker Compose:

# 停止 PentAGI
docker compose down -v

編輯 docker-compose.yml 設定檔,在 pentagi 之下加上 extra_hosts 的設定,讓 Docker 容器內部可以連到外面的 Ollama 伺服器,同時加上 CVE-2021-3129 靶機的 Docker 容器:

services:
  pentagi:
    
    # ...
    
    # 讓 Docker 容器內部可以連到外面的 Ollama 伺服器
    extra_hosts:
      - host.docker.internal:host-gateway

  # ...

  # CVE-2021-3129 靶機
  vulhost:
    image: vulhub/laravel:8.4.2

設定完成後,就可以用一個 Docker Compose 啟動 PentAGI 與靶機,進行滲透測試了:

# 啟動 PentAGI 與靶機
docker compose up -d

PentAGI 啟動之後,會將網頁操作介面開在 http://localhost:8443/,使用瀏覽器打開之後,即可使用,預設帳號與密碼如下:

預設帳號:[email protected]
預設密碼:admin

接著對 CVE-2021-3129 靶機進行滲透測試,新增一條 flow,輸入以下提示詞:

對 http://vulhost/ 進行滲透測試

這樣 PentAGI 就會自動對靶機進行滲透測試了。

PentAGI 自動進行滲透測試

PentAGI 自動進行滲透測試

待處理事項

PentAGI 還有非常多的功能我尚未釐清,待未來有時間再繼續補:

  • 根據不同 agent 需求設定不同的 LLM 模型,範例可參考 ollama-llama318b.provider.yml 或同目錄下的其他 YAML 設定檔。
  • 將 Ollama 改為 vLLM,可增加效能,可參考 GitHub 的文件
  • 嘗試 PentAGI 建議的本地端模型,例如 llama3.1:8b-instruct-q8_0
  • 讓 Ollama 傾聽所有網路介面,會有安全性問題,若在正式環境則必須重新設計架構。
  • 靶機目前寫死在 Docker Compose 設定檔,可考慮動態加入的方式。