蓝队实验室,专注于分析Apache HTTP服务器日志,以检测Web扫描活动、目录枚举和路径遍历尝试。
在隔离的实验室环境中安装并暴露一个Apache Web服务器,使用行业标准工具模拟自动化Web扫描,并从蓝队角度分析生成的日志——识别攻击模式、工具签名以及恶意侦察活动的指标。
| 组件 | 详情 |
|---|---|
| 攻击者虚拟机 | Kali Linux |
| 目标虚拟机 | Debian 13 |
| 网络 | NAT网络 (VirtualBox) |
| 攻击者IP | 10.0.2.5 |
| 目标IP | 10.0.2.15 |
| Web服务器 | Apache 2.4.67 |
| 日志来源 | /var/log/apache2/access.log, /var/log/apache2/error.log |
| HTTP端口 | 80 |
确认目标机器上的Apache HTTP服务器处于活动状态并正在运行。```bash sudo systemctl status apache2 --no-pager
结果:`active (running)` since Wed 2026-05-06 21:09:17. Apache 2.4.67 (Debian), Main PID 3164, 55 tasks active.
---
### 2. 目标 IP 识别
识别了 Debian 目标机器的 IP 地址。```bash
ip a
目标 IP: 10.0.2.15/24 — 接口 enp0s3
已验证 Kali 攻击机与 Debian 目标之间的网络连接。```bash ping -c 4 10.0.2.15
**结果:** 4 packets transmitted, 4 received, 0% packet loss. RTT min/avg/max: 0.495/1.288/2.139ms.
---
### 4. Apache浏览器测试
从Kali浏览器访问Apache服务器,确认HTTP服务的可用性。```
http://10.0.2.15
结果: Apache2 Debian Default Page 成功加载 — 确认 Web 服务器可达并能响应 HTTP 请求。
在目标服务器上创建了测试目录和页面,以模拟真实的 Web 应用程序结构。```bash sudo mkdir -p /var/www/html/admin sudo mkdir -p /var/www/html/backup sudo mkdir -p /var/www/html/login echo "
Directories created: `/admin`, `/backup`, `/login`
---
### 6. Nikto 扫描
对目标 Web 服务器运行 Nikto 以模拟自动化漏洞扫描。```bash
nikto -h http://10.0.2.15
Nikto v2.5.0 — 开始时间:2026-05-06 20:16:56 — 结束时间:20:17:13(17 秒)
Nikto 报告发现的问题:
X-Frame-Options — 缺少点击劫持保护X-Content-Type-Options — 缺少 MIME 嗅探保护/admin/, /backup/, /login//admin/index.html — 管理员登录页面可访问使用 Dirb 对目标 Web 服务器进行目录暴力枚举。```bash dirb http://10.0.2.15
**DIRB v2.22 — 开始:2026年5月6日 星期三 20:19:50 — 结束:20:19:59(9秒)**
使用的字典:`/usr/share/dirb/wordlists/common.txt` — 已测试4612个单词
找到的目录和文件:
| URL | 状态码 | 大小 |
| --------------------------------- | ------ | ----- |
| http://10.0.2.15/index.html | 200 | 10703 |
| http://10.0.2.15/server-status | 403 | 314 |
| http://10.0.2.15/admin/ | 200 | — |
| http://10.0.2.15/admin/index.html | 200 | 21 |
| http://10.0.2.15/backup/ | 200 | — |
| http://10.0.2.15/login/ | 200 | — |
| http://10.0.2.15/login/index.html | 200 | 20 |
**警告:** `/backup/` 目录列表已启用 — 无索引文件存在,目录内容可直接浏览。
**总下载量:** 13836 字节 — **发现:** 4 个资源
---
### 8. 访问日志分析
检查了原始访问日志条目以识别攻击模式。```bash
sudo cat /var/log/apache2/access.log
来自Nikto扫描阶段的示例条目(21:18:32):``` 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.tar.bz2 HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10_0_2_15.gz HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.sql HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.zip HTTP/1.1" 404 527
Dirb扫描阶段的示例条目(21:21:34):```
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/xsql HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/xxx HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/zimbra HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/zoom HTTP/1.1" 404 472
观察到的模式: 同一秒内发出数百个顺序请求,全部针对不存在的路径——与自动化扫描行为一致。
筛选了所有源自攻击者IP的访问日志条目。```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | head -30
Additional patterns observed:
- Nikto attempted to access backup files using the server IP as filename (e.g., `10.0.2.15.tar.bz2`, `10.0.2.15.sql`, `10.0.2.15.zip`)
- Dirb iterated through alphabetically ordered wordlists targeting each discovered directory
- Both tools generated requests at machine speed — multiple entries per second from the same source port range
---
### 10. HTTP 状态码分布
通过 HTTP 响应码统计请求数量,以量化攻击面。```bash
sudo grep " 200 " /var/log/apache2/access.log | wc -l
sudo grep " 403 " /var/log/apache2/access.log | wc -l
sudo grep " 404 " /var/log/apache2/access.log | wc -l
| HTTP Code | 含义 | 数量 |
|---|---|---|
| 200 | OK — 资源找到并已提供 | 177 |
| 403 | 禁止 — 资源存在但访问被拒绝 | 26 |
| 404 | 未找到 — 资源不存在 | 21740 |
总404错误数:21,740 — 绝大多数请求针对不存在的路径,这是自动目录暴力破解的典型特征。
统计了所有来自攻击者的访问日志条目。```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | wc -l
**来自 10.0.2.5 的总请求数:21,962**
---
### 12. 工具特征识别
在访问日志中搜索了扫描器特定的特征。
#### Nikto 签名```bash
sudo grep "nikto" /var/log/apache2/access.log | head -5
结果:``` 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "PUT /nikto-test-pk9VPSjF.html HTTP/1.1" 405 590 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
Nikto 通过 PUT 请求创建了一个测试文件(`nikto-test-pk9VPSjF.html`)以验证服务器上的写入权限。
#### Dirb 签名```bash
sudo grep "DirBuster\|dirb" /var/log/apache2/access.log | head -5
结果:``` 10.0.2.5 - - [06/May/2026:21:21:26 -0300] "GET /dirb HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:26 -0300] "GET /dirbmark HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:29 -0300] "GET /admin/dirb HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:29 -0300] "GET /admin/dirbmark HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:32 -0300] "GET /login/dirb HTTP/1.1" 404 472
Dirb 自己的名称会出现在其使用的字典文件中,在日志中留下清晰的签名。
---
### 13. 错误日志分析
检查了 Apache 错误日志,查找扫描触发的服务器端安全事件。```bash
sudo cat /var/log/apache2/error.log
关键事件发现:
Nikto 尝试通过跨目录边界访问敏感系统文件:``` [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../../../../etc/shadow) [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../../etc/passwd) [client 10.0.2.5] AH10244: invalid URI path (/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini) [client 10.0.2.5] AH10244: invalid URI path (/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd) [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../boot.ini) [client 10.0.2.5] AH10244: invalid URI path (/../../../../winnt/repair/sam._)
目标包括:`/etc/passwd`、`/etc/shadow`、`boot.ini`、`win.ini`、Windows SAM 数据库——所有经典的路径遍历目标。
#### 无效的 HTTP 方法
Nikto 测试了非标准的 HTTP 方法以识别配置错误:```
[client 10.0.2.5] AH00135: Invalid method in request DIWHWPJH / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request DEBUG / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request TRACK / HTTP/1.0
[client 10.0.2.5] AH00135: Invalid method in request SEARCH / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request INDEX / HTTP/1.1
两个工具都试图访问Apache保护的配置文件:``` [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/.htpasswd [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/.htaccess [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/server-status [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/admin/.htpasswd [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/login/.htpasswd
#### VMware 特定的路径遍历