OSCP百日备考08|主动信息收集上篇:Nmap从入门到封神,90%的打点都靠它

admin 2026-06-04 04:08:22 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文是OSCP备考指南的主动信息收集上篇,重点讲解Nmap工具从基础到高级的实战应用。核心内容包括端口扫描技巧(如SYN半开扫描)、服务识别方法、DNS主动枚举技术,以及考场适用的扫描原则(先快后细、控制速率)。文章强调合规使用,提供具体命令示例和避坑指南,帮助读者高效发现目标系统的开放端口和服务版本,为后续漏洞利用奠定基础。 综合评分: 85 文章分类: 渗透测试,安全工具,实战经验,WEB安全,红队


cover_image

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. 考场里做主动扫描的三个原则

  1. 先快后细,先轻后重:别一上来就 nmap -A -p- 扫全场,先快速摸常用端口,再对开放的端口做深度探测,既省时间又不容易触发防护。
  2. 优先 SYN 半开扫描-sS 半开扫描不完成完整三次握手,在靶机上留的日志少,隐蔽性更强。
  3. 只扫你需要的:结合被动收集的结果,有针对性地扫 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 靶机绝大多数漏洞都是特定服务版本的已知漏洞,你把版本号找对了,等于成功一半。

# 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,否则会出现一堆假子域名;多换几套字典或组合工具,结果更全。

五、考场避坑指南

  1. 别一上来就 nmap -A -p- --script=vuln 这种全自动重扫不仅慢,还极易触发靶机防护导致封 IP。一定要分步走:快扫常用端口 → 全端口扫描 → 对开放端口做版本和脚本探测。
  2. 别只扫 TCP,UDP 经常是惊喜 很多靶机的 SNMP 默认 community string、TFTP 匿名的配置,都在 UDP 端口上等着你。
  3. 扫到端口不识别服务等于没扫 知道 80 端口开了,但不知道到底是 Apache 还是 IIS,就没法找对应的漏洞。识别服务版本比扫到端口本身更重要。
  4. 控制扫描速率,别惹毛靶机 --min-rate 不要动辄上万,1000-5000 足够;Masscan 也要视环境调整。
  5. 所有扫描结果一定要保存 用 -oA 存好,后面写报告、二次分析都用得上,也能避免重复扫描。

最后再敲一次黑板: 所有技术仅限在授权环境内使用。OSCP 考试中的主动扫描对着你面前的靶机干,是合法的;但未经授权去扫任何线上真实系统,都是违法的,务必遵守《网络安全法》。

这期我们把主动信息收集的端口扫描、服务识别、DNS 枚举三个地基打完了。下期主动收集下篇,我们会讲 SMB/SNMP/SMTP 等各类服务的深度枚举、Web 应用信息收集、自动化工具整合,以及如何把收集来的信息梳理成攻击路径。那个部分全是打点的核心干货。

如果这篇文章对你有帮助,记得星标公众号,别错过下期。评论区随时等你来问备考中的卡点,我尽己所能回复。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:泷羽Sec-陌离 《OSCP百日备考08|主动信息收集上篇: Nmap从入门到封神,90%的打点都靠它》

企微(腾讯文档登录协议) 网络安全文章

企微(腾讯文档登录协议)

文章总结: 该文档涉及企业微信与腾讯文档登录协议相关的逆向分析技术,主要探讨如何通过逆向工程实现企业微信表格数据的批量提取与自动化处理。文档属于零基础学逆向系列
评论:0   参与:  0