文章总结: 本文是OSCP备考指南的主动信息收集上篇,重点讲解Nmap工具从基础到高级的实战应用。核心内容包括端口扫描技巧(如SYN半开扫描)、服务识别方法、DNS主动枚举技术,以及考场适用的扫描原则(先快后细、控制速率)。文章强调合规使用,提供具体命令示例和避坑指南,帮助读者高效发现目标系统的开放端口和服务版本,为后续漏洞利用奠定基础。 综合评分: 85 文章分类: 渗透测试,安全工具,实战经验,WEB安全,红队
OSCP百日备考08|主动信息收集上篇: Nmap从入门到封神,90%的打点都靠它
泷羽Sec-陌离
2026年5月18日 10:53 宁夏
在小说阅读器读本章
去阅读
上一期被动信息收集讲完后,很多同学追着问:“学长,谷歌 hacking 做完了,子域名也扒了一圈,下一步该怎么下手?”“我每次开 Nmap 就只会敲 nmap -A,要么扫到一半被靶机 ban 了 IP,要么扫出来一堆端口不知道干啥用。”
太真实了。我备考 OSCP 的前半段,几乎就陷在这个坑里:拿到目标 IP,上来就是一个全端口全脚本扫描,结果半天没结果不说,还触发了靶机的限制,只能重启环境再来。后来才明白,被动收集是让你看清楚靶子在哪,而主动扫描就是让你摸清靶子上有多少道锁,每道锁是什么型号的。 这中间分寸拿捏不好,就容易把靶机“打草惊蛇”。
主动信息收集就是直接和目标系统产生交互,换回更精确的端口、服务、版本信息。这步有风险,但它是渗透里绕不开的环节。而 OSCP 考场上,90% 的打点入口,都离不开今天的主角——Nmap。
这期内容非常干,我们把主动信息收集拆成上下两篇。上篇聚焦三个核心模块:端口扫描(Nmap 实战)、服务识别、DNS 主动枚举。所有命令都是我刷了上百台靶机后沉淀下来的,不是罗列参数,而是告诉你“什么场景下用哪一条”。零基础跟着走也能直接用。
一、先划清楚两条线:主动与被动的区别,以及考场别碰的红线
1. 主动 vs 被动,核心差别
- 被动收集:不和目标交互,只从公开渠道拿信息,零风险,用来画大图、找关联资产。
- 主动收集:直接向目标发探测包,能拿到端口、服务、版本等细节,但有被 IPS/防火墙拦下甚至 ban IP 的风险。
2. 考场里做主动扫描的三个原则
- 先快后细,先轻后重:别一上来就
nmap -A -p-扫全场,先快速摸常用端口,再对开放的端口做深度探测,既省时间又不容易触发防护。 - 优先 SYN 半开扫描:
-sS半开扫描不完成完整三次握手,在靶机上留的日志少,隐蔽性更强。 - 只扫你需要的:结合被动收集的结果,有针对性地扫 IP 和端口,不要无脑扫大网段。
3. 考试合规提醒
重要的事情说在前头:本文所有内容仅限你在 OSCP 官方授权的靶场、自己搭建的环境中练习。未经授权对任何外部系统进行端口扫描、漏洞探测都是违法的,务必遵守《网络安全法》。
另外,Nmap(包括 NSE 脚本引擎)在 OSCP 考试中对全部目标都是完全允许的,可以放心用。
二、端口扫描:Nmap 从会用变成用熟
很多人对 Nmap 的印象就是一条 nmap 192.168.1.1,但真正能在考场上救命的,是它的高级功能和 NSE 脚本引擎。下面所有命令都带了场景说明,你看完就能直接对号入座。
基础用法:先学会走路
# 快速摸清常用 1000 个端口(默认扫描)
nmap 192.168.1.1
# 只扫特定几个端口,比如被动信息里知道开了 22,80,443
nmap -p 22,80,443 192.168.1.1
# 扫指定范围端口
nmap -p 1-1000 192.168.1.1
# 全端口扫描(1-65535),带最小发包速率 1000,不会慢到地老天荒
nmap -p- --min-rate 1000 192.168.1.1
# UDP 扫描,很多靶机的漏洞藏在 SNMP、TFTP 这些 UDP 服务里
nmap -sU 192.168.1.1
# 快速扫描:只扫最常用的 100 个端口,秒判断主机活不活
nmap -F 192.168.1.1
提效必备:服务版本与脚本扫描
# 服务版本检测,扫出端口后必加,知道版本才能对应找 CVE
nmap -sV 192.168.1.1
# 高强度版本探测,-sV 没识别出版本时加这个
nmap -sV --version-intensity 9 192.168.1.1
# 操作系统检测
nmap -O 192.168.1.1
# 默认脚本扫描,相当于 -sC,顺手做基础信息收集
nmap -sC 192.168.1.1
# 综合扫描:一键开启 OS 检测、版本检测、脚本扫描和路由追踪
nmap -A 192.168.1.1
# 详细输出 -vv,扫的时候看进度
nmap -vv 192.168.1.1
扫描类型:考场里该用哪种?
# 【首选】TCP SYN 半开扫描(-sS),隐蔽、快、日志少
nmap -sS 192.168.1.1
# TCP 全连接扫描(-sT),没 root 权限时用,但日志多
nmap -sT 192.168.1.1
# UDP 扫描(-sU),TCP 没收获时必跑
nmap -sU 192.168.1.1
# FIN/NULL/XMAS 扫描,用来绕过某些简单防火墙
nmap -sF 192.168.1.1
nmap -sN 192.168.1.1
nmap -sX 192.168.1.1
# ACK 扫描,判断端口有没有被防火墙过滤
nmap -sA 192.168.1.1
输出要保存好
# 输出为普通文本
nmap -oN scan.txt 192.168.1.1
# 输出为 XML(方便导入其他工具)
nmap -oX scan.xml 192.168.1.1
# 【推荐】一次性生成所有格式
nmap -oA scan 192.168.1.1
NSE 脚本引擎:Nmap 的真正灵魂
NSE 内置了 600 多个脚本,能帮你做目录枚举、漏洞探测、弱口令爆破。考场里很多入口不是手动挖出来的,是脚本扫出来的。
# 默认脚本扫描
nmap --script=default 192.168.1.1
# 指定单个脚本,比如枚举 Web 目录
nmap --script=http-enum -p80,443 192.168.1.1
# 同时跑多个脚本
nmap --script=http-enum,http-headers -p80,443 192.168.1.1
# 整类脚本一起跑(考场常用)
nmap --script=vuln 192.168.1.1 # 漏洞探测
nmap --script=auth 192.168.1.1 # 鉴权方式/弱口令
nmap --script=brute 192.168.1.1 # 暴力破解
nmap --script=discovery 192.168.1.1 # 更多服务/主机信息
# 给脚本传参,比如爆破 Web 登录时指定账号密码字典
nmap --script=http-brute --script-args userdb=users.txt,passdb=pass.txt -p80 192.168.1.1
Masscan 高速扫大网段
Nmap 是精确狙击,Masscan 则是机关枪,扫全端口只需要几分钟,特别适合先快速摸底,再用 Nmap 对开放端口做详细探测。
# 安装
apt install masscan
# 扫全端口,--rate 设置发包速率
masscan -p1-65535 192.168.1.0/24 --rate=10000
# 扫指定端口
masscan -p22,80,443,3389 192.168.1.0/24 --rate=1000
# 结果保存为 JSON
masscan -p1-65535 192.168.1.0/24 --rate=10000 -oJ scan.json
# 实战组合拳:Masscan 扫全端口 + 提取开放端口交给 Nmap 做版本和脚本扫描
masscan -p1-65535 192.168.1.1 --rate=10000 -oL masscan.txt
ports=$(cat masscan.txt | awk '{print $3}' | awk -F/ '{print $1}' | sort -u | tr '\n' ',')
nmap -sV -sC -O -p$ports 192.168.1.1
避坑口诀:
- 先
-F快扫,再全端口,最后对开放端口用-sV -sC,别一上来就-A -p-。 - 优先用
-sS半开扫描,需要 root,Kali 下直接 sudo。 --min-rate别设太高,考场里 1000-5000 足够,否则容易被 ban。- 扫描结果一定用
-oA保存好,后面写报告或者重新分析都省事。 - TCP 扫不出东西,记得补 UDP 扫描。
三、扫出端口之后:服务识别,找到对应漏洞
很多新手扫完端口就停了,知道 22 是 SSH、80 是 HTTP,然后手足无措。其实下一步很明确:搞清楚端口上跑的服务名称和确切版本,拿着这个版本号去 Exploit-DB 搜现成的漏洞。OSCP 靶机绝大多数漏洞都是特定服务版本的已知漏洞,你把版本号找对了,等于成功一半。
基础 Banner 抓取
# nc 直接连端口看返回的横幅信息
nc -v 192.168.1.1 80
HEAD / HTTP/1.0 # 连上后敲这行,再按两次回车
# 或者用 telnet
telnet 192.168.1.1 80
HEAD / HTTP/1.0
# Nmap 一键抓所有端口 Banner
nmap -sV --version-intensity 9 192.168.1.1
Web 服务专项识别
80% 的靶机都有 Web 服务,需要用专业工具摸清技术栈:
# 获取 HTTP 头,看 Server 字段
curl -I http://192.168.1.1
# whatweb:Web 指纹识别,Kali 自带
whatweb http://192.168.1.1
# 详细模式
whatweb -v http://192.168.1.1
# Nikto:Web 服务器漏洞扫描,考场允许用
nikto -h http://192.168.1.1
nikto -h http://192.168.1.1 -o nikto.txt
高频服务识别要点
| 服务 | 识别重点 | 后续动作 | | — | — | — | | SSH (22) | 版本号,是否支持密码/密钥登录 | 弱口令爆破,对应用户枚举或提权漏洞 | | FTP (21) | 服务软件及版本,是否允许匿名 | 匿名登录,版本后门/漏洞 | | HTTP/S (80,443) | Web 服务器、CMS、框架版本 | SQL 注入、XSS、文件上传、默认后台 | | SMB (139,445) | 版本号(Samba/Windows) | 匿名共享、永恒之蓝、弱口令 | | SMTP (25) | 邮件系统及版本 | 用户枚举、弱口令 | | 数据库 (3306/1433/5432) | 类型和版本 | 弱口令、未授权、版本相关代码执行 | | RDP (3389) | 版本,是否要求 NLA | 弱口令、BlueKeep 等远程漏洞 |
核心技巧: Nmap -sV --version-intensity 9 先冲一遍,拿不准时看错误页面、默认图标、响应头。多个工具的结果交叉验证,别把一个误判的版本号拿去搜漏洞。
四、DNS 主动枚举:把隐藏的子域名炸出来
被动收集已经拿到不少子域名,但这还不够。主动枚举是通过向 DNS 服务器发起查询,找出那些没被搜索引擎收录、没在证书里出现的隐藏资产。很多靶机的测试后台就藏在这些地方。
1. DNS 区域传送:一步拿到所有 DNS 记录
如果管理员忘记限制区域传送(AXFR),你就能直接把整个域名的 DNS 记录同步过来,不用爆破。
# 先查 NS 记录获取域名服务器
dig example.com NS
# 尝试区域传送
dig axfr @ns1.example.com example.com
# 或者用 host
host -t axfr example.com ns1.example.com
# nslookup 也行
nslookup
> server ns1.example.com
> set type=any
> ls -d example.com
如果返回了一堆子域名,说明存在区域传送漏洞,直接收工。 提示 “Transfer failed” 则说明已做限制,换爆破。
2. 主动子域名爆破
用字典里常见的主机名前缀去撞,看能解析出哪些子域名。
# DNSRecon 爆破
dnsrecon -d example.com -D /usr/share/wordlists/dirb/common.txt -t brt
# 全面 DNS 枚举(含区域传送检查)
dnsrecon -d example.com -a
# fierce
fierce -dns example.com
# gobuster DNS 模式
gobuster dns -d example.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
# Sublist3r 被动+主动结合
sublist3r -d example.com -b
3. 反向 DNS 查询
通过 IP 反查它绑定的其他域名,扩大攻击面。
# 单个 IP
host 192.168.1.1
# 网段列表扫描(实际不发探测包,只做 DNS 查询)
nmap -sL 192.168.1.0/24
# DNSRecon 反向枚举
dnsrecon -r 192.168.1.0/24
提醒: 先试区域传送,别直接跳到爆破,能省大量时间。爆破前留意有没有通配符 DNS,否则会出现一堆假子域名;多换几套字典或组合工具,结果更全。
五、考场避坑指南
- 别一上来就
nmap -A -p- --script=vuln这种全自动重扫不仅慢,还极易触发靶机防护导致封 IP。一定要分步走:快扫常用端口 → 全端口扫描 → 对开放端口做版本和脚本探测。 - 别只扫 TCP,UDP 经常是惊喜 很多靶机的 SNMP 默认 community string、TFTP 匿名的配置,都在 UDP 端口上等着你。
- 扫到端口不识别服务等于没扫 知道 80 端口开了,但不知道到底是 Apache 还是 IIS,就没法找对应的漏洞。识别服务版本比扫到端口本身更重要。
- 控制扫描速率,别惹毛靶机
--min-rate不要动辄上万,1000-5000 足够;Masscan 也要视环境调整。 - 所有扫描结果一定要保存
用
-oA存好,后面写报告、二次分析都用得上,也能避免重复扫描。
最后再敲一次黑板: 所有技术仅限在授权环境内使用。OSCP 考试中的主动扫描对着你面前的靶机干,是合法的;但未经授权去扫任何线上真实系统,都是违法的,务必遵守《网络安全法》。
这期我们把主动信息收集的端口扫描、服务识别、DNS 枚举三个地基打完了。下期主动收集下篇,我们会讲 SMB/SNMP/SMTP 等各类服务的深度枚举、Web 应用信息收集、自动化工具整合,以及如何把收集来的信息梳理成攻击路径。那个部分全是打点的核心干货。
如果这篇文章对你有帮助,记得星标公众号,别错过下期。评论区随时等你来问备考中的卡点,我尽己所能回复。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:泷羽Sec-陌离 《OSCP百日备考08|主动信息收集上篇: Nmap从入门到封神,90%的打点都靠它》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论