alitalhahere/Attack-Detection-Lab
GitHub: alitalhahere/Attack-Detection-Lab
基于Snort 3的一键式入侵检测实验室,集成攻击机与靶机,帮助安全初学者快速掌握网络攻击检测与告警分析技能。
Stars: 0 | Forks: 0
# 🛡️ 攻击检测实验室
**一个用于学习入侵检测的完整虚拟实验室:Snort 3 IDS/IPS + Kali 攻击机 + Metasploitable 2 靶机。**




## 🎯 目的
本实验室演示了如何:
- 在 Ubuntu 上搭建专用的 **Snort 3 IDS/IPS**
- 从 **Kali Linux** 向 **Metasploitable 2** 发起真实攻击
- 使用**自定义 Snort 规则**检测攻击
- 实时分析警报
非常适合蓝队训练、SOC 分析师和网络安全专业的学生。
## 实验室架构
所有三台虚拟机连接到同一个虚拟网络。Snort 的网络接口被设置为**混杂模式**,以便它能够监听 Kali 和 Metasploitable 之间的所有流量。
| 角色 | 虚拟机 |
|------------|-----------------|
| 攻击者 | Kali Linux |
| IDS/IPS | Snort (Ubuntu) |
| 靶机 | Metasploitable 2 |
相同的 NAT / 仅主机网络
所有三台虚拟机连接到同一个虚拟网络。Snort 的网络接口被设置为**混杂模式**,以便它能够监听 Kali 和 Metasploitable 之间的所有流量。
## 📦 环境要求
- **宿主机**:8+ GB 内存,50+ GB 可用磁盘空间,VirtualBox 或 VMware
- **客户虚拟机**:
- Kali Linux(攻击机)—— 您可以使用您现有的 Kali
- Metasploitable 2(靶机)—— [下载](https://sourceforge.net/projects/metasploitable/)
- Ubuntu 22.04(Snort)—— 全新安装
## 🚀 快速设置(Snort 虚拟机)
1. **创建一个新的 Ubuntu 22.04 虚拟机**(2 GB 内存,20 GB 磁盘)。
将其网络接口连接到与 Kali 和 Metasploitable 相同的虚拟网络。
启用**混杂模式**(VirtualBox:虚拟机设置 → 网络 → 高级 → 混杂模式 → 允许全部)。
2. 在 Ubuntu 虚拟机内部**克隆此仓库**:
```
sudo apt update && sudo apt install git -y
git clone https://github.com/alitalhahere/Attack-Detection-Lab.git
cd Attack-Detection-Lab
```
运行 Snort 安装脚本:
```
chmod +x install_snort3.sh
sudo ./install_snort3.sh
```
这将安装 Snort 3、配置自定义规则并添加 snort-run 别名。
3. 重新加载您的 Shell 以使用该别名:
```
source ~/.bashrc
```
5. 在正确的接口(例如 eth0)上启动 Snort:
```
snort-run
```
您将不会看到任何输出——Snort 在后台静默运行。按 Ctrl+C 停止并查看警报。
## 通过攻击进行测试
在您的 Kali 虚拟机中,针对 **Snort 虚拟机 IP**(用于基于 ICMP 的攻击)或 **Metasploitable-2 IP**(用于基于服务的攻击)运行以下命令。
将 `` 替换为相应的 IP 地址。
| 攻击 | 命令 | 预期的 Snort 警报 |
|------------------|--------------------------------------------------------|----------------------------------------------|
| 基本 Ping | `ping -c 3 ` | ICMP Test (sid:1000001) |
| 死亡之 Ping | `ping -l 65500 -c 1 ` | ICMP Ping of Death Detected (sid:1000002) |
| ICMP 洪水 | `sudo hping3 --icmp --flood ` | ICMP Flood Attack Detected (sid:1000004) |
| SYN 洪水 | `sudo hping3 -S --flood ` | SYN Flood Attack Detected (sid:1000005) |
| UDP 洪水 | `sudo hping3 --udp -p 445 --flood ` | UDP Flood Attack Detected (sid:1000006) |
⚠️ **警告:** 洪水攻击会产生大量网络流量。请仅在此隔离的实验室环境中使用它们。
每次攻击后,在 Snort 终端上按 Ctrl+C。警报将立即显示。
## 📝 自定义 Snort 规则
所有自定义规则都存储在 /usr/local/etc/snort/rules/local.rules 中。
它们也可以在此仓库的 rules/local.rules 目录下找到。
## 🛠️ 故障排除
**Snort 无法看到任何流量:** 确保 Snort 虚拟机的接口处于混杂模式,并且所有虚拟机都在同一个网络中。
**找不到 snort-run 命令:** 运行 source ~/.bashrc 或打开一个新的终端。
**安装失败:** 检查您的互联网连接,并确保您正在运行 Ubuntu 20.04/22.04。
## 👤 作者
Ali Talna – [LinkedIn](https://www.linkedin.com/in/imalitalha)
建立您自己的 IDS 实验室——在被黑客攻击之前进行检测。
标签:CISA项目, IPS, Metasploitable 2, OPA, PFX证书, Snort3, SOC分析师, VirtualBox, VMware, XXE攻击, 入侵检测系统, 威胁检测与响应, 安全实验室, 安全数据湖, 密码管理, 应用安全, 插件系统, 攻击检测, 混杂模式, 漏洞修复, 生成式AI安全, 网络安全, 网络安全培训, 网络安全实验环境, 自定义检测规则, 虚拟机, 隐私保护, 靶场