grepstrength/aittack

GitHub: grepstrength/aittack

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

Stars: 0 | Forks: 0

![替代文本](https://raw.githubusercontent.com/grepstrength/aittack/main/aittack-social-preview.png) # 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风险缓解, 逆向工具