Nightcrawler v0.1.0 – 本地 AI 智慧手機滲透測試代理
總覽
Nightcrawler v0.1.0 證明了可以在智慧手機上使用本地運行的 AI 模型自主完成完整的滲透測試工作流程,無需雲端 API 或網路連線。
Nightcrawler 的運作方式
代理以迴圈運作:它選擇目標主機,根據過去觀測建構上下文,向 1.2 B‑參數 LLM 查詢下一步動作,透過範圍執行代理驗證建議的命令,通過 Kali MCP 伺服器執行命令,解析輸出以更新主機記憶,然後重複。
架構
Nightcrawler 在 OnePlus 8 上運行 Kali NetHunter;LFM2.5‑1.2B‑Instruct‑Heretic 模型透過 llama.cpp 在 Adreno 650 GPU 上使用 OpenCL 在埠 8080 提供服務。代理迴圈(main.py)與範圍代理通訊,該代理在命令到達 Kali MCP 伺服器之前驗證每個命令,而該伺服器執行實際工具如 nmap、curl 和 smbclient。埠 8888 上的網頁儀表板提供即時監控與控制,而 SQLite 資料庫儲存主機、漏洞、憑證和已執行的命令。
主要功能
- 在測試期間完全自主運行,無需人工參與迴圈。
- 100% 本地推論;AI 模型在手機 GPU 上運行。
- 雙層範圍執行(範圍代理和命令過濾器)防止超出範圍或破壞性動作。
- 隱身優先掃描:慢速率、主機輪換、掩護流量,僅使用 nmap -T2。
- 包含 27 個多步驟滲透利用劇本,可直接執行。
- 包含本地 CVE 資料庫,擁有 24,956 條目,用於版本感知漏洞匹配。
- 提供網頁儀表板,用於即時饋送、主機卡片、網路圖、漏洞細節和 C2 控制。
- 支援使用外部 USB 適配器的 WiFi 突破模式,以自主進行 WPA2 破解。
- 執行被動發現 mDNS/NBNS/DHCP/ARP 廣播。
- 透過 MAC‑鍵鏈主機記錄,按網路隔離資料並應對 DHCP 變化。
- 實施自我修復機制:垃圾偵測、重複偵測、時間卡住偵測和看門狗。
- 記錄成功互動以供未來模型微調。
- 生成可下載的滲透測試報告,包含發現、利用鏈和修復建議。
硬體需求
- 必需:安裝 Kali NetHunter 的 Android 手機(續)
- 從成功互動中擷取訓練資料,以供潛在的模型微調。
- 生成結構化報告,總結漏洞、利用鏈和修復步驟。
效能指標
在 OnePlus 8 的 Adreno 650 GPU 上使用 OpenCL:
- LFM2.5‑1.2B‑Instruct‑Heretic (Q8_0) 達到約 115 個提示 token/秒 和 約 13 個生成 token/秒。
- 電池運作會觸發 GPU 管理器守護進程,強制最大效能,並在電量低於 15% 時進行節流,以避免約 6× 的減速。 在自主測試期間,代理已展示:
- 每個網路發現 30+ 個主機。
- 執行 2,000+ 個命令。
- 識別出 10+ 個跨服務漏洞。
- 透過直接執行執行 6+ 個滲透利用劇本。
- 穩定的記憶體使用量為 35‑50 MB,無洩漏。
使用與部署
- 在支援的 Android 裝置上安裝 Kali NetHunter(已在 OnePlus 8 上測試),並透過 Magisk 取得 root 權限。
- 確保至少有 12 GB 的 RAM 可用。
- 在 NetHunter chroot 內執行
bash INSTALL.sh。 - 等待 llama‑server 健康端點(
curl -s http://127.0.0.1:8080/health)回傳{"status":"ok"}。 - 執行
bash scripts/run-36h.sh啟動所有服務。 - 從您的 Tailscale 網路上的任何裝置存取網頁儀表板,網址為
https://<your-tailscale-hostname>:8888。 乾跑模式(NC_DRY_RUN=1 python3 main.py)允許在不執行真實網路命令或擁有手機硬體的情況下測試代理迴圈。
法律與倫理考量
Nightcrawler 僅供授權的滲透測試使用。部署前必須取得網路擁有者的書面許可(參與規則)。未經授權對您不擁有或未獲許可測試的網路進行攻擊是非法的。
社區回饋
"當它失敗時,50% 的樣子是什麼?解析器丟掉的垃圾很容易處理,但指向錯誤主機的格式正確命令會繞過範圍檢查,您只能在事後閱讀報告時發現。」 — @haeseong
"以下的牢騷不是針對擁有者/專案——但……這真是個諷刺。我無法發布我所寫的完全決定論且真正可控的攻擊面映射/滲透測試工具,因為「雙重用途」法律問題——但由 LLM 驅動的工具卻進入了公共領域......" — @voodooEntity
"我完全忘記 AI 也可以非常積極地攻擊野外的網路/設備。有趣的專案。」 — @kreidema
"為什麼是手機?這會排除很多手機。為什麼不在電腦上?」 — @oquidave
"我建立了 Nightcrawler,一個在 Android 手機上完全運行的開源自主滲透測試代理。專案始於一個問題:在不依賴雲端模型或 API 的情況下,我能在相對舊的行動硬體上本地運行多少真實的滲透測試工作流程?Nightcrawler 在 OnePlus 8 的 Adreno GPU 上本地運行 1.2B‑參數模型。模型選擇目標和工具,而獨立的範圍執行代理在執行前驗證每個命令。系統透過 SQLite 維護每個主機的記憶,在目標間輪換,將偵測到的版本與本地 CVE 資料庫進行匹配,執行多步驟劇本,並生成結構化報告。一些可能有趣的實作細節:本地推論的速度約為 115 個提示 token/秒 和 13 個生成 token/秒。這個小型模型只有約 50% 的時間會產出可用命令,因此許多工程工作是在復原邏輯、重複偵測、持久記憶和確定性劇本上。每個命令都會經過獨立的範圍和安全層,而不是相信模型會保持在範圍內。該專案包含乾跑模式,因此代理迴圈可以在不執行真實網路命令或擁有手機硬體的情況下進行測試。我已在我的家庭網路上連續三個月無中斷地運行它。」 — @NickySlicks (作者)
"這也能在 iPhone 上運行嗎?」 — @imranshah10140
"猶大祭司的參考?」 — @aaa_aaa
"有點不相關,但我看了 IG 影片,覺得應用的視覺設計超酷!是什麼啟發了這種風格?」 — @baddash
"這看起來很有趣。我目前的手機是 Asus ROG Phone 3,我認為它已經足夠(Snapdragon 865+ 加上 12GB RAM),但沒有 root。即使在過時的 Android 12 上,這台手機也能滿足我所有需求,我沒打算更換它。但也許這會是我升級 ROM 到較新版本的最後推動。我看到 crDroid 16.0 仍然支援這款 ROG 變體。這會在 Nethunter Rootless 下運作嗎,或者是否必須透過 Magisk 取得 root?」 — @vctrnk