本文介紹如何安裝與使用 Strix 自動化滲透測試工具,進行白箱或黑箱滲透測試。

安裝 Strix

先安裝好 Docker 環境,再參考 Strix 的文件 安裝 Strix 滲透測試工具:

# 安裝 Strix
curl -sSL https://strix.ai/install | bash

vLLM 模型設定

這裡我們採用 vLLM 運行 Qwen/Qwen3.8-27B 模型,搭配以下環境變數設定 Strix:

export STRIX_LLM="openai/Qwen/Qwen3.8-27B"
export LLM_API_KEY="NA"
export LLM_API_BASE="http://localhost:8000/v1"

這裡的模型名稱要以 vLLM 實際運行的為準,可以用以下指令查詢:

# 查看 vLLM 所運行的模型資訊
curl -s http://localhost:8000/v1/models | jq -r '.data[0].id'

而 STRIX_LLM 的名稱就是在原本的模型名稱之前加上 openai/,LLM_API_KEY 若沒有的話就隨便填。

Strix 滲透測試

設定好環境變數之後,就可以用 Strix 進行滲透測試了,Strix 支援好幾種滲透測試方式:

# 本地端程式碼滲透測試(白箱)
strix --target ./app-directory

# GitHub 套件庫程式碼滲透測試(白箱)
strix --target https://github.com/org/repo

# 一般網站滲透測試(黑箱)
strix --target https://your-app.com

# 一次指定多個標的
strix -t https://github.com/org/app -t https://your-app.com

若有很多的不同的標的都要同時進行滲透測試,可以把所有標的寫在 targets.txt 文字檔案中,一行一個標的,再用 --target-list 參數指定標的清單:

# 以文字檔案指定標的清單
strix --target-list ./targets.txt

Strix 預設會以互動式 TUI 的介面顯示整個滲透測試過程,若不需要 TUI 介面,可以加上 -n 參數,使用簡單的 CLI 介面執行:

# 以普通 CLI 介面執行
strix -n --target https://your-app.com

若有一些額外的指令,可以使用 --instruction 參數指定,最常見的就是使用者帳號與密碼資訊:

# 指定使用者帳號與密碼
strix --target https://your-app.com --instruction "Perform authenticated testing using credentials: user:pass"

若有詳細的指令,也可以將指令寫在檔案中,讓 Strix 直接從檔案讀取指令,例如限制滲透測試的範圍與做法等:

# 指定詳細指令
strix --target https://your-app.com--instruction-file ./my_instruction.txt

Strix 掃描模式

Strix 有三種不同的掃描模式:

  • quick:快速掃描,大約幾分鐘可以完成,只檢查明顯漏洞。
  • standard:標準掃描,大約需要半小時到一小時,掃描深度與時間的折衷方案。
  • deep:完整滲透測試,依據標的複雜度,可能需要一至四個小時。

Strix 預設的掃描模式是 deep,我們可以用 --scan-mode 參數來更改掃描模式:

# 快速掃描
strix --target ./app --scan-mode quick

Docker 網路問題

由於 Strix 在進行滲透測試時,會自動開一個 strix-sandbox 的 Docker 容器,在容器中進行,若我們的靶機開在不同的 Docker 網路中,可以自行將 strix-sandbox 的 Docker 容器加入靶機的網路中:

# 查看目前的 Docker 容器
docker ps
CONTAINER ID   IMAGE                                  COMMAND                  CREATED          STATUS          PORTS                                     NAMES
78ea44cdba62   ghcr.io/usestrix/strix-sandbox:1.3.0   "docker-entrypoint.s…"   30 minutes ago   Up 30 minutes   127.0.0.1:32768->48080/tcp                competent_dubinsky
d2b983db9aba   vulhub/laravel:8.4.2                   "docker-php-entrypoi…"   14 hours ago     Up 14 hours     0.0.0.0:8080->80/tcp, [::]:8080->80/tcp   web02
fe9defc41b51   cve-2021-42013-web01                   "httpd-foreground"       15 hours ago     Up 15 hours     80/tcp                                    web01
# 將 strix-sandbox 容器加入 pentest01 網路
docker network connect pentest01 78ea44cdba62