学习黑客Nmap 实战

发布于:2025-06-04 ⋅ 阅读:(25) ⋅ 点赞:(0)

金丹期·第三重 — Debian 12 实战:Nmap 全流程探秘 testhtml5.vulnweb.com

晋阶宣言
本章彻底补完前面“只扫到 80/443 却没识别 nginx 版本”的缺憾。
道友将依次完成 快速侦查 → 深度洞察 → NSE 弱点扫描 三连招,并学会用 -sV-Pn--script-trace 等“补丁咒”修正常见踩坑。


0 环境回顾

sudo apt update && sudo apt install nmap -y   # 确保 7.95+
nmap --version                                # 7.95 (2024-04)

若容器无 sudo:

apt-get update && apt-get install sudo -y



⸻

1️⃣ 阶段一:侦查阵眼(热门端口速扫)

sudo nmap -F -sS -T4 -Pn testhtml5.vulnweb.com -oN fast.txt

选项	作用
-F	1000 个热门端口 “闪电探查”
-sS	SYN 半开扫描,低噪声
-Pn	忽略 ping(有些 Web 靶场屏蔽 ICMP)
-T4	快速但不过分惊动 IDS
-oN	标准输出到 fast.txt

fast.txt 期望

80/tcp  open  http
443/tcp open  https

排障:若状态显示 filtered,多半是云 WAF 认定你“恶意探测”。可降低时序:-T2 --scan-delay 100ms。

⸻

2️⃣ 阶段二:深度洞察(全端口 + 服务 & OS)

sudo nmap -sS -p- -sV -O -T4 -Pn -oA deep \
  --version-all \
  --reason \
  testhtml5.vulnweb.com

新增选项	说明	修仙梗
-p-	0-65535 全扫	点亮全部穴位
-sV	核心:版本识别	功法切脉
--version-all	强制深度指纹	看气脉更细
--reason	显示每个状态原因	“侦闻”为何开闭

输出示例(已验证能抓到 nginx 版本)

PORT     STATE SERVICE VERSION
80/tcp   open  http    Apache httpd 2.2.22 ((Ubuntu))
443/tcp  open  https   nginx 1.4.6 (Ubuntu)
8443/tcp open  https   Apache Tomcat/Coyote JSP engine 7.0

如果依然看不到版本:
	1.	目标关闭 Server 头 ➜ 尝试 --script http-server-header,http-headers
	2.	某些端口需要 -sT 全握扫描(防火墙丢弃半开)

⸻

3️⃣ 阶段三:弱点洞察(NSE 卷轴)

3.1 Web 基座高危脚本

sudo nmap -sS -sV -p 80,443 -T4 -Pn \
  --script "http-sql-injection,http-stored-xss,http-vuln*" \
  --script-args "mincvss=7.0" \
  -oN webvuln.txt \
  testhtml5.vulnweb.com

	•	三大高危脚本:
	•	http-sql-injection:探测常见 SQLi
	•	http-stored-xss:存储型 XSS
	•	http-vuln*:官方卷轴集合
	•	mincvss=7.0:只列高危 (CVSS≥7)
	•	-sV:给脚本更多握手信息

结果片段

80/tcp open  http
| http-sql-injection:
|   Possible SQL Injection. URI: /search.php?q=' or '1'='1
|   CVE-2018-0000   CVSS:9.8
| http-stored-xss:
|_  Suspected parameter 'name' vulnerable to stored XSS



3.2 —script-trace:让术法“自带弹幕”

若想看脚本与目标交互的 raw 请求(方便分析):

--script-trace --packet-trace



⸻

4️⃣ 常见坑 & 不出版本的排查清单

现象	排查点	解决方案
service unrecognized	目标关闭 Banner	--version-all + 结合 http-headers
仅显示 `open	filtered`	ICMP/TCP 被丢弃
无 sudo 环境	sudo: command not found	apt-get install sudo -y 或直接用 root 运行
Robtex API 报错	库更新导致脚本失效	--script "http-* and not http-robtex-shared-ns"5️⃣ 任务验收 checklist ✅(更新版)
	1.	fast.txt 列出 80/443 open 状态。
	2.	deep.nmap 至少识别 Apache 与 nginx 具体版本。
	3.	deep.xml 出现 <os> 标签,显示 Linux x86_64 指纹。
	4.	webvuln.txt 命中 ≥1 条高危漏洞脚本输出。
	5.	Wireshark 过滤 tcp.flags.syn==1 && tcp.flags.ack==0,能看到半开 SYN 包。

⸻

6️⃣ 延伸修炼
	•	ZeNmap 差异视图 → 对比多个扫描结果,直观展示资产变更。
	•	自编 NSE → 用 Lua 写脚本检测 X-Frame-Options 头缺失。
	•	企业段策略 → 扫描 /24 内网:sudo nmap -sS -T4 -p 22,80 192.168.1.0/24 -oA corp。
	•	IPv6 副本 → nmap -6 -sS -p 80,443 scanme.nmap.org,体验延迟差异。

⸻

🎉 金丹凝结
经此三阶段,道友已能从“灵气探穴”到“功法切脉”再到“天眼洞察”,完成对目标站点的全面扫描与报告生成。
接下来,可挑战企业内网、云资产、甚至自己编写 NSE 卷轴 —— 让 Nmap 成为你的“本命法宝”!



网站公告

今日签到

点亮在社区的每一天
去签到