网络安全实战第14期:Week2周末闯关

Week 2 周末闯关:三小时走完一次完整侦察流程,从 ping 到报告

网络安全实战 90 天 · Week 2 侦察 · 难度 ★★★ 进阶 | 关键词:渗透测试流程 信息收集 Nmap 漏洞验证 侦察报告 实战演练

学完 Google Hacking、WHOIS/DNS、Nmap 主机发现、Nmap 端口扫描、漏洞初判、报告撰写六个模块,最大的问题是「单个都会,串起来就乱」。这篇是一次三小时的完整闯关:给一个只知道 IP 的目标,从 ping 开始,一路做到交出报告。五个阶段,每一步都有明确的产出物。

一、闯关设定

任务:在不知道目标任何信息的前提下,完成一次完整的侦察,并交付一份报告。

项目 内容
已知条件 只有一个 IP:192.168.159.137
目标 摸清开放端口、服务版本、已知漏洞,产出侦察报告
时间 3 小时
环境 Kali Linux (192.168.159.128) / Metasploitable2 (192.168.159.137) / VMware Host-Only
交付物 一份七段式侦察报告 + 全部原始扫描输出

五个阶段依次是:连通性确认 → 网段存活主机 → 端口与服务 → 漏洞初判 → 报告撰写。前四个阶段是技术动作,第五个阶段是交付。

说明 本文所有操作在隔离的 VMware Host-Only 网络内完成,目标为自建 Metasploitable2 教学靶机,未涉及任何真实业务系统或公网资产。

二、阶段 1:连通性确认

拿到一个 IP,第一个动作永远是确认它活着、并且我能到得了。跳过这一步,后面所有扫描失败都无从判断是「目标没开」还是「网络不通」。

确认本机网络与目标可达

bash 复制代码
ip addr
ping -c 4 192.168.159.137

ping 通了,延迟 0.5ms 左右------这个数字说明是同一局域网内,没有跨路由。同时 ip addr 确认本机在 192.168.159.0/24 网段,和目标同网段。

如果 ping 不通,先别急着换目标,按这个顺序排查:本机 IP 对不对 → 两台机器网络模式是否一致(Host-Only vs NAT 是常见坑)→ 目标防火墙是否禁 ping。

阶段产出:确认目标可达,本机与目标同网段。

三、阶段 2:网段存活主机

知道一台机器活着,但不知道这个网段里还有没有别的。这一步是把视野从「一个点」扩到「一张网」。

网段存活主机发现

bash 复制代码
sudo nmap -sn 192.168.159.0/24

扫出 4 台存活:.1 是网关、.2 是 DHCP 服务、.128 是本机 Kali、.137 是靶机。

这一步的价值不在于「找到 4 台」,而在于建立网络拓扑认知:.1 和 .2 是 VMware 虚拟网络自带的服务,.128 是我自己,真正的目标只有 .137。如果没有这一步,后面扫到 .1 上的服务可能会误判为「目标还开了别的端口」。

阶段产出:存活主机清单,明确唯一目标是 .137。

四、阶段 3:端口与服务

这是耗时最长、信息量最大的阶段。用三步走的策略,从快到慢:

4.1 第一步:默认端口快速摸底

默认 1000 端口

bash 复制代码
nmap -T4 192.168.159.137

几秒钟出结果,看到 21/22/23/25/80/139/445/3306 等常规端口。这一步的目的是判断「值不值得深挖」------如果只开了 22 和 80,那就是一台普通服务器;如果开了 21、23、139、445 这些老古董协议,基本可以确定是台旧系统,漏洞不会少。

4.2 第二步:全端口扫描找隐藏服务

65535 全端口扫描

bash 复制代码
sudo nmap -sS -p- -T4 -oN ports.txt 192.168.159.137

全端口扫完,比默认扫描多出来三个:8180(Tomcat)、6667(IRC)、2121(ProFTPD)。这三个在默认的 1000 端口里都没有,只有全扫才能发现。

8180 上的 Tomcat 是个典型例子------很多管理员会把 Tomcat 的默认 8080 改成 8180「图个安全」,但只要端口开着,全扫一样能发现。2121 的 ProFTPD 同理,把 FTP 从 21 挪到 2121 只是换了个门牌号。

4.3 第三步:重点端口版本识别

重点端口版本 + 默认脚本

bash 复制代码
sudo nmap -sV -sC -p 21,22,23,25,80,139,445,3306,8180,6667,2121 -oN services.txt 192.168.159.137

对重点端口做 -sV 版本识别加 -sC 默认脚本。拿到 12 个服务的精确版本:vsftpd 2.3.4、OpenSSH 4.7p1、Apache 2.2.8、Samba 3.0.20、MySQL 5.0.51a、ProFTPD 1.3.1、Tomcat 等。

阶段产出:24 个端口记录、12 个服务版本。

五、阶段 4:漏洞初判

有版本号之后,判断哪些有已知漏洞。两个动作并行:NSE 脚本做主动验证,searchsploit 找现成 EXP。

漏洞验证与 EXP 检索

text 复制代码
sudo nmap --script vuln -p 21,22,23,25,80,139,445,3306 -oN vulns.txt 192.168.159.137
searchsploit vsftpd 2.3.4
searchsploit samba 3.0
searchsploit apache 2.2

整理出 8 条漏洞,其中 5 条严重:

# 服务/端口 漏洞 CVE CVSS 等级
1 vsftpd 2.3.4 / 21 源码植入后门,可获 root CVE-2011-2523 9.8 严重
2 Samba 3.0.20 / 139,445 usermap_script 远程命令执行 CVE-2007-2447 9.3 严重
3 bindshell / 1524 直接暴露 root shell --- 9.0 严重
4 MySQL 5.0.51a / 3306 root 空口令 --- 8.5 严重
5 ProFTPD 1.3.1 / 2121 源码后门 CVE-2010-4221 7.5 高
6 Tomcat / 8180 默认管理凭据 --- 7.5 高
7 UnrealIRCd / 6667 后门命令执行 CVE-2010-2075 7.5 高
8 OpenSSH 4.7p1 / 22 算法过时,无重大 RCE --- 4.3 中

阶段产出:8 条漏洞记录,5 条严重。

六、阶段 5:报告撰写

把前四个阶段的产出组织成七段式报告。这一阶段不需要新的技术动作,只需要把已有的东西写清楚。

归档并开始撰写

text 复制代码
mkdir -p recon/{target,scan,vuln}
mv ports.txt services.txt vulns.txt recon/scan/
vim report.md

最终报告 6 页,包含:24 个端口记录、12 个服务版本、8 条漏洞、3 条攻击路径。

三条攻击路径按优先级排:

优先级 入口 手段 预期结果
1 21/tcp vsftpd 2.3.4 CVE-2011-2523 后门触发 直接 root shell
2 139/445 Samba 3.0.20 usermap_script (CVE-2007-2447) root 权限命令执行
3 80/tcp Web 应用 手工测试注入/上传/遍历 web 用户权限

阶段产出:一份 6 页侦察报告,全部结论带证据。

七、踩坑记录

现象 原因 解决办法
全端口扫描跑了 20 分钟 没加 -T4 加 -T4;或先扫重点端口再全扫
漏掉了 8180/6667/2121 只跑了默认 1000 端口 确认目标值得深挖后必须 -p- 全扫
信息点统计口径不一 一会儿算端口一会儿算服务 统一口径:端口数、服务数、漏洞数分开记
报告写了两天 边写边补扫描 先跑完所有扫描再写,报告阶段不产生新数据
三个小时不够用 阶段之间没有时间预算 每阶段预设时限,超时就先记录后补

坑 1:全端口扫描跑了 20 分钟

第一次跑 sudo nmap -sS -p- 192.168.159.137,忘了加 -T4。65535 个端口按默认时序跑,20 分钟才出结果,整个闯关节奏被打乱。

加 -T4 之后同样的扫描 2 分钟完成。局域网环境下 -T4 完全安全,不会造成丢包或误判。

更稳的做法是分两步:先 nmap -T4 扫默认端口(几秒),确认是台有货的机器,再上 -p- 全扫。别一上来就全端口。

坑 2:漏掉了三个非标准端口

第一版只跑了默认扫描,报告里写「开放 8 个端口」。后来跑全端口才发现还有 8180、6667、2121,实际是 24 个。

这个漏报很致命------8180 的 Tomcat 和 6667 的 UnrealIRCd 都是高危入口,漏了就等于漏了两条攻击路径。

教训:默认扫描只是「快速摸底」,不是「完整结论」。只要目标是值得深挖的(比如这台明显是老系统),就必须跑 -p-。

坑 3:信息点统计口径不一致

报告里一会儿写「24 个信息点」,一会儿写「8 条漏洞」,一会儿又写「12 个服务」,自己都搞不清这些数字之间的关系。

原因是三个概念混在一起:端口数(24)、服务数(12,多个端口可能是一个服务,比如 139 和 445 都是 Samba)、漏洞数(8)。

改法:报告里明确区分三个口径,不要笼统说「信息点」。端口、服务、漏洞三个数字各自独立统计。

八、Week 2 总结

一周六个模块串起来,最重要的一句话是:渗透测试 80% 是信息收集,20% 才是攻击。

这周的所有工作都在那 80% 里------Google 搜、WHOIS 查、DNS 枚举、Nmap 扫、CVE 比对、报告撰写。没有一步是「攻击」,但每一步都在为攻击做准备。

8.1 掌握程度自评

模块 内容 掌握程度
Day008 Google Hacking 语法与 GHDB 熟练
Day009 WHOIS 与 DNS 信息收集 熟练
Day010 Nmap 主机发现 熟练
Day011 Nmap 端口扫描与服务识别 熟练
Day012 漏洞初判与 CVE 查询 良好
Day013 侦察报告撰写 良好
Day014 完整流程串联 优秀

8.2 三条结论

  • 信息收集的价值不在「收集」,在「指向下一步」。扫出一堆端口没有意义,知道哪个端口通向 root 才有意义。

  • 有漏洞不等于能利用。OpenSSH 4.7p1 的加密算法过时严格来说不算漏洞,但在实战中会限制横向手段------这种「不是漏洞但影响攻击」的信息同样要写进报告。

  • 本周所有操作都是被动查询或低交互探测。真正的攻击动作一次都没做,但已经能画出完整的攻击路径。这就是侦察阶段的意义。

九、Week 2 命令速查

阶段 命令 作用
连通性 ping -c 4 目标 确认目标可达
网络 ip addr 查看本机 IP 和网段
主机发现 sudo nmap -sn 网段/24 扫网段存活主机
主机发现 sudo arp-scan -l ARP 层扫描(更准)
端口 nmap -T4 目标 默认 1000 端口快速摸底
端口 sudo nmap -sS -p- -T4 目标 全端口 SYN 扫描
服务 sudo nmap -sV -sC -p 端口 目标 版本识别 + 默认脚本
系统 sudo nmap -O 目标 操作系统指纹
漏洞 nmap --script vuln -p 端口 目标 NSE 漏洞检测
漏洞 searchsploit 关键词 检索 Exploit-DB
报告 pandoc report.md -o report.pdf Markdown 转 PDF

Week 2 到此结束。下一篇进入 Week 3:从「知道有漏洞」到「验证漏洞可利用」,开始接触实际的漏洞利用技术。

相关推荐
xbzb1 小时前
OpenStack 网络管理(理论):Linux 网络虚拟化是 Neutron 的地基
linux·服务器·网络·openstack·network·neutron
QXWZ_IA3 小时前
边坡监测预算有限时的建设顺序:虚拟基准站与成本账
网络·数据库
Alsn866 小时前
frp内网穿透实操(Kali NAT 环境 · 附原理说明)
安全
MaAidan6 小时前
AI 交付前的质量门禁:复杂度、分层、安全配置、测试,一个都不能少
人工智能·安全
聪明蛋子哟7 小时前
大模型应用“最后一公里”:从Prompt工程到MCP协议,如何实现跨系统的高可用集成?
网络·prompt
科创致远7 小时前
ESOP 电子作业指导书 WiFi 网络应用实测报告
运维·服务器·网络
承渊政道7 小时前
Linux网络学习【从NAT与代理服务理解网络转发、探索内网穿透原理、再到认识DNS与ICMP、最后动手部署并测试内网穿透】
linux·网络·学习·内网穿透·dns·nat
最强小杰8 小时前
minimax-m3 突然报 HTTP 529 怎么办?连续重试为何更难恢复,退避时间该怎么算?
网络·网络协议·http·ai
由你创机器人8 小时前
具身智能机器人定制交付、安全设计与验收落地要点
安全·机器人