grepstrength/aittack
GitHub: grepstrength/aittack
该项目是一个基于 Terraform 的 AI 渗透测试实验室,可在 Azure 上快速部署攻击机与受害机以进行大语言模型攻防演练。
Stars: 0 | Forks: 0

# AIttack!
**构建你自己的可快速部署的实验室,用于练习 AI 渗透测试和红队演练!**
该项目使用两台 Windows Server 2022 虚拟机:一台攻击虚拟机(配置了无审查的 Ollama LLM)和一台受害虚拟机(OpenClaw + 其自身的本地 Ollama 模型)。这两台虚拟机可以互相通信,只需进行简单的配置更改,即可将实验室与互联网隔离。你可以通过 Bastion 主机进行访问。这两台虚拟机都没有公共 IP。
我特意选择了无审查的 FableForge-AI/mythos-v2-8b 作为攻击虚拟机的模型,但这完全取决于你的偏好。
## 配置
- **云平台与 IaC**:使用 Terraform 配置的 Azure
- **网络**:单一 VNet (`10.0.0.0/16`);虚拟机位于 snet-vms (`10.0.1.0/24`);Bastion 位于 AzureBastionSubnet (`10.0.2.0/26`)
- **隔离开关**:`network_isolated` 变量。`false` = 可连接互联网,`true` = 通过 NSG 规则拒绝出站流量
- **虚拟机**:2 台使用 Azure 镜像 `Standard_D4s_v5` 的 Windows Server 2022 Datacenter,无公共 IP
- **攻击虚拟机**:Ollama + `FableForge-AI/mythos-v2-8b`(可根据你的偏好替换)
- **受害虚拟机**:OpenClaw + Ollama + `llama3.2:3b`(可根据你的偏好替换)
- **访问方式**:通过基础版 SKU 的 Bastion 主机进行访问,支持基于浏览器的 RDP
- **身份验证**:通过 `az login` 进行 Azure 身份验证。订阅和管理员密码均通过环境变量存储……代码中没有任何凭证
## 部署后设置说明
### 1. 连接到每台虚拟机
这两台虚拟机都没有公共 IP,因此你需要通过 Bastion 主机进行连接:
Azure Portal > 虚拟机 > 连接 > Bastion,然后使用你的管理员用户名(默认为 `labmin`)以及你在部署时提供的密码进行身份验证。
Terraform 的 `CustomScriptExtension` 在配置期间已经在两台虚拟机上安装了 Ollama。你最后需要做的就是手动拉取模型并安装 OpenClaw。
### 2. 攻击虚拟机 - 拉取模型
在你的攻击虚拟机上,打开 PowerShell:
```
ollama pull FableForge-AI/mythos-v2-8b
```
### 3. 受害虚拟机 - 拉取模型
在受害虚拟机上,打开 PowerShell:
```
ollama pull llama3.2:3b
```
### 4. 受害虚拟机 - 安装 OpenClaw
✅ *推荐*
这允许你在运行安装程序之前先进行审查。
调用 WebRequest > 阅读安装脚本 > 如果确认无误,执行你本地的副本
在受害虚拟机上,打开 PowerShell:
```
mkdir C:\Temp -Force
irm https://openclaw.ai/install.ps1 -OutFile C:\Temp\openclaw-install.ps1
notepad C:\Temp\openclaw-install.ps1
powershell -ExecutionPolicy Bypass -File C:\Temp\openclaw-install.ps1
```
❌ *不推荐*
这是一种危险的做法……盲目运行来自互联网的未知脚本!
在受害虚拟机上,打开 PowerShell:
```
irm https://openclaw.ai/install.ps1 | iex
```
### 5. 受害虚拟机 - 通过 Web UI 提供模型服务
这将启动 [Open WebUI](https://github.com/open-webui/open-webui),这是一个为受害者本地模型提供服务的 ChatGPT 风格前端——它被绑定以便攻击虚拟机可以跨子网访问它。这是用于后续利用的攻击面。
Open WebUI 特别需要 Python 3.11.x(不支持 3.12+)。在受害虚拟机上,打开 PowerShell:
```
winget install --exact --id Python.Python.3.11
```
关闭并重新打开 PowerShell,确认版本,然后安装并启动并绑定到所有网络接口:
```
python --version # should report 3.11.x
pip install open-webui
open-webui serve --host 0.0.0.0 --port 8080
```
然后在受害者的 **Windows 防火墙**上打开 8080 端口(这与已经允许虚拟机间通信的 Azure NSG 是分开的)。在受害虚拟机的*第二个* PowerShell 窗口中:
```
New-NetFirewallRule -DisplayName "Open WebUI 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow
```
### 6. 在隔离虚拟机之前进行验证
在两台虚拟机上,确认 Ollama 和模型:
```
ollama --version # confirms Ollama is installed
ollama list # confirms the pulled model is present on the system
```
然后确认攻击虚拟机可以访问受害者的 Web UI。从你主机的 Terraform 目录中获取受害者的内部 IP:
```
terraform output victim_vm_private_ip
```
### 7. 隔离实验室
在主机上的 Terraform 目录中:
```
terraform apply -var="network_isolated=true"
```
这将添加拒绝互联网出站的 NSG 规则。虚拟机间的通信和 Bastion 访问将保留,但互联网的入站和出站将不再可用。
## 许可证
MIT,因为所有工作都是你完成的。
标签:AI合规, AI风险缓解, 逆向工具