对应综合实践项目(capstone)里程碑 M2(自侦察) · 能力簇 ②「侦察与发现」· L2 / L3
⚠️ 红线:所有测试仅对自己的靶场、自己的应用、
127.0.0.1或明确授权的环境进行。禁止对任何真实/第三方系统做未授权探测。本实验同时是「防御自查」训练。
实验的目标 = 对 capstone/seed/app.py
做侦察。先把它跑起来:
cd capstone/seed
pip install -r requirements.txt # Flask 等
python app.py # 监听 127.0.0.1:5000也可以用你自己派生后的靶场应用(M0/M1 的产物)替代
seed/app.py——若如此,请在报告中说明并确保它跑在本机127.0.0.1。
nmap --version # 主力扫描器(Kali 自带)
which tshark wireshark # 监听(可选,Kali 自带)
python3 --version # 解析脚本sudo apt install nmap tshark(Kali
通常已装)。-sS)与 OS 指纹(-O)需
root:sudo。curl -s http://127.0.0.1:5000/orders # 应返回 401(未登录),证明服务在
nmap -sn 127.0.0.1 # 主机发现:应报告 Host is up对 127.0.0.1
完成一次完整扫描,并记录每条命令与关键输出:
nmap -sn 127.0.0.1,确认靶场主机存活。sudo nmap -sS -p- 127.0.0.1,记录
5000 端口状态。nmap -sV -p 5000 127.0.0.1,识别
Werkzeug/Flask/Python 版本。sudo nmap -O 127.0.0.1,记录
nmap 对 OS 的猜测,并解释为什么对 127.0.0.1 自扫 OS
指纹意义有限。-oX(XML)或
-oG,为任务 C 的脚本解析做准备。解读要求:在报告中说明 SYN 与 Connect 扫描的区别、为什么
-sS更隐蔽、UDP 扫描为何慢。
在端口之上,识别应用层指纹(这部分是 U3 漏洞利用的「弹药」):
curl -sv http://127.0.0.1:5000/ 2>&1 | grep -iE 'server|x-powered|content-type',记录
Server、Content-Type。nmap -sV -sC -p 5000 127.0.0.1,记录
http-server-header、http-title 等。tshark/Wireshark
抓一次登录(POST /login),观察是否明文传输凭证、是否能看到
/orders 的 SQL——作为「监听能暴露什么」的证据。-sV 得到的
Werkzeug/Flask 版本,查一个已知
CVE(仅查询、不在本实验利用),说明「指纹 →
可利用性」的关联。仅查询公开 CVE 信息做风险评估;本实验不包含任何漏洞利用(漏洞利用在 U3/M3)。
编写一个可复用的侦察脚本(bash 或 python 均可),满足:
recon.sh <target>,默认
127.0.0.1,输出带时间戳的目录。host / port / state / service / product / version
字段)。参考最小实现(本单元课件已给 bash 与 python 解析骨架,可直接扩展):
#!/usr/bin/env bash
# recon.sh <target> —— 仅对授权环境使用
set -euo pipefail
TARGET="${1:-127.0.0.1}"
DIR="recon-${TARGET}-$(date +%Y%m%d-%H%M)"
mkdir -p "$DIR"
nmap -sn "$TARGET" | tee "$DIR/01-host.txt"
sudo nmap -sS -sV -p- "$TARGET" -oA "$DIR/02-full" | tee "$DIR/02-full.txt"
python3 parse_nmap.py "$DIR/02-full.xml" > "$DIR/03-surfaces.json"
echo "输出目录: $DIR"python 解析器见 slides「进阶:用 Python 解析 XML」一页;亦可
pip install python-nmap。
基于任务 C 的结构化输出,产出一份暴露面清单(Markdown 表格)并对每条做风险标注:
| host | port | state | service | product/version | 风险等级 | 处置建议 |
|---|---|---|---|---|---|---|
| 127.0.0.1 | 5000 | open | http | Werkzeug x.y (Flask) | 中/高 | 升级至无 CVE 版本;生产环境禁用 debug;最小暴露 |
要求:
本里程碑由 AI 助教(ns4ai-review)按 §4
量规评审(确定性证据 + LLM 档位裁定)。提交时注意:
127.0.0.1/自己派生的靶场;对真实/第三方系统未授权扫描 =
红线违规,直接判不合格并上报。deepseek-v4-flash)辅助解析 nmap
结果、标注暴露面风险,但须在报告注明 AI 辅助范围 +
人工复核;禁止选用国外大模型。report.md
对照簇②·L1/L2/L3,每项附证据,「无虚点亮」。提交 lab02/report.md(含以下小节):
seed/app.py
还是自有应用。recon.sh /
parse_nmap.py 源码 + 一次运行的输出目录清单。lab02/lab02.cast(便于智能批改)。评分量规(绑定簇 ② · L2 / L3):
| 维度 | 权重 | 优秀 [90,100] | 合格 [60,90) | 不合格 [0,60) |
|---|---|---|---|---|
| 完成度 | 0.25 | 暴露面清单完整 + 风险标注 + 处置建议 + 治理说明;全端口 + 版本 + OS | 有清单;主要端口 + 版本 | 无清单或无风险标注;仅
nmap 127.0.0.1 贴默认输出 |
| 深度 | 0.30 | L2 测绘解读到位;L3 脚本可复用、结构化、可入 CI | 脚本能跑能解析;主要端口覆盖 | 手动硬编码、无结构化输出 |
| AI 双向 | 0.05 | 用 AI 辅助解析结果或标注暴露面,并说明人工复核 | 仅常规工具 | 无 |
| 安全严谨 | 0.30 | 全程仅授权环境 + 明确声明;版本→CVE 风险关联 | 仅本机 | 触及第三方/未授权系统 |
| 自评 | 0.10 | 自评与作品一致 | 有自评 | 无自评 |
对照簇 ②「侦察与发现」,勾选本次 lab 点亮的级别:
提交时在报告中给出本自评勾选结果,并附一句「本次我点亮了哪些簇×级」。能力框架详见
capability-framework.md。
⚠️ 再次强调:仅对自己的靶场 /
127.0.0.1/ 授权环境测试。对真实系统做未授权扫描属违规,本课程不支持、不教授此类行为。