omarbabba779xx/suricata-ids-threat-detection-lab
GitHub: omarbabba779xx/suricata-ids-threat-detection-lab
一个基于 Suricata 7.0.3 的网络入侵检测实验室,完整记录了在隔离环境中模拟网络侦察、Web扫描和SSH暴力破解攻击并成功触发IDS告警的端到端检测与取证过程。
Stars: 0 | Forks: 0
# Suricata IDS 威胁检测实验室







**端到端网络入侵检测实验室 — Suricata IDS 部署在 Ubuntu 上,包含 66,756 条 Emerging Threats 规则,用于检测从 Kali Linux 攻击者 VM 发起的 Nmap 端口扫描、Nikto Web 侦察和 SSH 暴力破解攻击。**
[概述](#overview) · [实验室架构](#lab-architecture) · [环境搭建](#setup) · [攻击模拟](#attack-simulation) · [检测结果](#detection-results) · [PCAP 证据](#pcap-evidence) · [MITRE ATT&CK](#mitre-attck-mapping)
## 概述
在隔离的 VirtualBox 实验室环境中执行了受控的攻击模拟。Kali Linux 攻击者 VM 针对运行 Suricata IDS 的 Ubuntu 目标 VM 执行了网络侦察 (Nmap)、Web 应用程序扫描 (Nikto) 和 SSH 暴力破解。Suricata 在多个攻击类别(包括漏洞利用检测、Web 应用程序攻击和协议异常)中产生了 31 个警报。使用 tshark 捕获了网络流量(18,299 个数据包)。
| 字段 | 详情 |
|-------|---------|
| **分析师** | Omar Babba |
| **日期** | 2026-06-29 |
| **环境** | VirtualBox — 隔离的 Host-Only 网络 |
| **攻击者** | Kali Linux 2026.1 — `192.168.56.10` |
| **目标 / IDS 传感器** | Ubuntu 24.04 LTS — `192.168.56.103` |
| **IDS 引擎** | Suricata 7.0.3 |
| **规则集** | Emerging Threats Open — 50,829 条活动规则 |
| **生成的警报总数** | 31 |
| **捕获的数据包** | 18,299 |
## 实验室架构
```
┌──────────────────────┐ Host-Only Network (192.168.56.0/24) ┌──────────────────────────────┐
│ Kali Linux VM │ ──────────────────────────────────────────► │ Ubuntu 24.04 LTS (Target) │
│ 192.168.56.10 │ │ 192.168.56.103 │
│ │ │ │
│ ● Nmap 7.99 │ │ ● Suricata 7.0.3 (IDS) │
│ ● Nikto v2.6.0 │ │ ● Apache httpd 2.4.58 │
│ ● Hydra v9.7 │ │ ● OpenSSH 9.6p1 │
│ ● rockyou.txt │ │ ● tshark 4.2.2 │
└──────────────────────┘ └──────────────────────────────┘
```
**网络隔离:** 两个 VM 共享一个 VirtualBox Host-Only 适配器。没有任何流量离开实验室环境。
## 环境搭建
### 1. Suricata 安装与规则更新
通过 apt 在 Ubuntu 24.04 LTS 上安装了 Suricata 7.0.3。使用 `suricata-update` 更新了规则,该命令获取了 Emerging Threats Open 规则集。
```
sudo apt update && sudo apt install -y suricata
sudo suricata-update
```
验证结果:
```
Loaded 66,756 rules
Enabled: 50,829 rules
Source: Emerging Threats Open (rules.emergingthreatss.net)
```
证据:

### 2. Suricata 配置 — 绑定接口
在 `/etc/suricata/suricata.yaml` 中配置 Suricata 以在 Host-Only 接口 `enp0s3` (192.168.56.103) 上进行捕获:
```
af-packet:
- interface: enp0s3
```
启动并验证了 Suricata 服务:
```
sudo systemctl start suricata
sudo systemctl status suricata
```
验证结果:
```
suricata.service — Suricata IDS/IDP daemon
Active: active (running)
Suricata version 7.0.3 RELEASE running in SYSTEM mode
```
证据:

### 3. 网络连通性验证
在发起攻击之前,确认了攻击者 (Kali) 和目标 之间的 Host-Only 连通性。
```
ping -c 3 192.168.56.103
```
验证结果:
```
3 packets transmitted, 3 received, 0% packet loss
rtt min/avg/max = 1.490/2.695/4.688 ms
```
证据:

## 攻击模拟
### 攻击 1 — Nmap 端口扫描(侦察)
针对目标执行了 SYN + 服务版本扫描,以枚举开放端口和正在运行的服务。
```
sudo nmap -sS -sV 192.168.56.103
```
验证结果:
```
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.16
80/tcp open http Apache httpd 2.4.58 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
```
MITRE ATT&CK 映射:
- `T1046 — Network Service Discovery`
- `T1595.002 — Active Scanning: Vulnerability Scanning`
证据:

### 攻击 2 — Hydra SSH 暴力破解
使用 rockyou.txt 字典发起了针对 SSH 的字典攻击,以模拟凭证填充。
```
hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.56.103 -t 4 -V
```
验证结果:
```
[DATA] attacking ssh://192.168.56.103:22/
14,344,399 login tries (l:1/p:14344399)
[ATTEMPT] target 192.168.56.103 — login "root" — pass "123456"
[ATTEMPT] target 192.168.56.103 — login "root" — pass "password"
...
```
MITRE ATT&CK 映射:
- `T1110.001 — Brute Force: Password Guessing`
证据:

### 攻击 3 — Nikto Web 应用程序扫描
针对 Apache 服务器执行了全面的 Web 漏洞扫描,以触发基于 HTTP 的 IDS 特征码。
```
nikto -h http://192.168.56.103 -maxtime 60
```
验证结果:
```
+ Server: Apache/2.4.58 (Ubuntu)
+ Apache/2.4.58 appears to be outdated
+ CVE-2003-1418: Server may leak inodes via ETags
+ 8113 requests: 16 errors and 10 items reported
```
MITRE ATT&CK 映射:
- `T1595.002 — Active Scanning: Vulnerability Scanning`
- `T1190 — Exploit Public-Facing Application`
证据:

## 检测结果
### Suricata 警报 — 检测到 Nmap 扫描
Suricata 通过 `ET SCAN Possible Nmap User-Agent Observed` 特征码检测到了 Nmap 服务版本扫描。在几毫秒内触发了四个警报,与 SYN 探测模式相匹配。
```
06/29/2026-20:19:50 [**] ET SCAN Possible Nmap User-Agent Observed [**]
[Classification: Web Application Attack] [Priority: 1]
{TCP} 192.168.56.10 -> 192.168.56.103:80
```
证据:

### Suricata 警报 — 检测到 Nikto Web 扫描
Nikto 的 Web 扫描触发了广泛的 Suricata 特征码 —— 包括协议异常、基于 CVE 的漏洞利用特征码和 Web 应用程序攻击模式。
检测到的警报类别:
| 警报 | 分类 | 优先级 |
|-------|----------------|----------|
| `ET WEB_SERVER ColdFusion administrator access` | Web 应用程序攻击 | 1 |
| `ET EXPLOIT D-Link DSL-2750B OS Command Injection (CVE-2016-20017)` | 尝试获取管理员权限 | 1 |
| `ET EXPLOIT Citrix ADC Arbitrary Code Execution (CVE-2019-19781)` | 尝试获取管理员权限 | 1 |
| `ET EXPLOIT Cisco ASA/Firepower Unauthenticated File Read (CVE-2020-3452)` | 尝试获取用户权限 | 1 |
| `ET EXPLOIT Fortinet FortiOS SSL VPN Path Traversal (CVE-2018-13379)` | 尝试获取管理员权限 | 1 |
| `ET WEB_SPECIFIC_APPS Wordpress LiteSpeed Cache CVE-2024-44000` | 凭证窃取成功 | 1 |
| `SURICATA HTTP Host header invalid` | 通用协议命令解码 | 3 |
证据:


## PCAP 证据
在 Nmap + Nikto 攻击窗口期间,使用 tshark 捕获了网络流量。在接口 `enp0s3` 上记录了 18,299 个数据包。
```
sudo tshark -i enp0s3 -w /tmp/capture-final.pcap -a duration:120
```
验证结果:
```
18299 packets captured
```
证据:

PCAP 内容确认了 Nmap SYN 扫描模式 — 从 `192.168.56.10` 到 `192.168.56.103` 的跨多个端口的快速连续 TCP SYN 数据包:
```
1 0.000000 192.168.56.10 → 192.168.56.103 ARP Who has 192.168.56.103?
3 0.552334 192.168.56.10 → 192.168.56.103 TCP 40187 → 22 [SYN]
4 0.552537 192.168.56.103 → 192.168.56.10 TCP 22 → 40187 [SYN, ACK]
5 0.553007 192.168.56.10 → 192.168.56.103 TCP 40187 → 113 [SYN]
...
```
证据:

## MITRE ATT&CK 映射
| 战术 | 技术 | ID | 工具 | 已检测 |
|--------|-----------|-----|------|---------|
| 侦察 | Active Scanning: Vulnerability Scanning | **T1595.002** | Nmap, Nikto | ✅ ET SCAN |
| 发现 | Network Service Discovery | **T1046** | Nmap | ✅ ET SCAN |
| 凭证访问 | Brute Force: Password Guessing | **T1110.001** | Hydra | ⚠️ 部分 |
| 初始访问 | Exploit Public-Facing Application | **T1190** | Nikto | ✅ ET EXPLOIT |
## 关键发现
- 在 3 个攻击类别中生成了 **31 个 Suricata 警报**
- **ET SCAN** 特征码在第一个 SYN 探测后的几毫秒内检测到了 Nmap
- **ET EXPLOIT** 特征码匹配了来自 Nikto HTTP 探测的 5 个 CVE — 包括活跃的 CVE (CVE-2024-44000, CVE-2019-19781, CVE-2020-3452)
- **捕获了 18,299 个数据包** — PCAP 确认了 SYN 扫描模式和 HTTP 探测流量
- Suricata 准确地将攻击流量归类为漏洞利用尝试的 **Priority 1**(最高级别)
## 使用的工具
| 工具 | 版本 | 用途 | 平台 |
|------|---------|---------|---------|
| Suricata | 7.0.3 | 网络 IDS — 数据包检查与警报 | Ubuntu 24.04 |
| Emerging Threats Open | — | 50,829 条检测规则 | Suricata 规则集 |
| Nmap | 7.99 | 端口扫描与服务枚举 | Kali Linux |
| Nikto | 2.6.0 | Web 应用程序漏洞扫描 | Kali Linux |
| Hydra | 9.7 | SSH 暴力破解 | Kali Linux |
| tshark | 4.2.2 | 网络数据包捕获 (PCAP) | Ubuntu 24.04 |
| VirtualBox | 7.x | 隔离的实验室环境 | 宿主机 |
## 展示的技能
- **IDS 部署** — Suricata 安装、规则管理、接口绑定
- **规则集管理** — Emerging Threats Open 规则集、suricata-update 工作流
- **攻击模拟** — Nmap 侦察、Web 扫描、暴力破解
- **警报分析** — fast.log 解析、警报分类、优先级筛选
- **PCAP 分析** — tshark 捕获、流量模式识别
- **MITRE ATT&CK** — 技术识别与检测映射
- **实验室设计** — 隔离的双 VM 网络、攻击者/传感器分离
## 项目结构
```
suricata-ids-threat-detection-lab/
├── README.md
├── screenshots/
│ ├── 01-suricata-update-et-rules.png
│ ├── 02-suricata-service-running.png
│ ├── 03-ping-connectivity.png
│ ├── 04-nmap-scan-open-ports.png
│ ├── 05-hydra-ssh-bruteforce.png
│ ├── 06-suricata-nmap-alerts.png
│ ├── 07-suricata-nikto-alerts-live.png
│ ├── 08-nikto-scan-complete.png
│ ├── 09-suricata-31-alerts.png
│ ├── 10-tshark-18299-packets.png
│ └── 11-tshark-pcap-content.png
├── config/
│ └── suricata-interface-config.md
└── evidence/
└── fast-log-sample.txt
```
*系列 10 个项目中的第 3 个 — SOC 家庭实验室系列*标签:CTI, Metaprompt, Suricata, 安全实验环境, 密码管理, 插件系统, 攻击模拟, 现代安全运营, 网络流量分析, 驱动签名利用