POST

CTF 信息收集第一步:Nmap 怎么扫才有用

拿到一个目标 IP 先做什么?Nmap 的扫描策略、服务识别和常见坑。

CTF 的题目里,只要给的是「一个 IP」,第一步基本都是扫端口。Nmap 是这个环节最常用的工具,但很多人只会 nmap -sV ip,扫完不知道下一步干嘛。

本文仅讨论 CTF 靶场和授权测试。

先搞清楚要扫什么

拿到目标 IP,目标通常有三类:

  • Web 题:找 80/443/8080 之类的 HTTP 服务;
  • 服务题:SSH、FTP、MySQL、Redis 等,看版本和配置;
  • 内网/综合题:先摸清有哪些机器和开放端口,再横向。

所以扫描策略也不一样:Web 题可以只扫常见端口,综合题往往要全端口。

常用的几种扫法

快速看常见端口:

nmap -sV 10.0.0.5

全端口扫描(慢但全):

nmap -p- --min-rate 1000 10.0.0.5

带默认脚本和系统识别:

nmap -sV -sC -O -p- 10.0.0.5

参数解释:

  • -sV:识别服务版本,CTF 里最重要的一步,很多题就是打某个旧版本的漏洞;
  • -sC:跑默认脚本,能发现一些常见配置问题;
  • -O:识别操作系统;
  • -p-:扫全部 65535 个端口;
  • --min-rate:提速,但别开太大,容易丢包或被限速。

扫完看什么

不是扫到端口就完事,重点看:

  1. 服务版本:比如 OpenSSH 7.4、Apache 2.4.49,版本号直接关联已知漏洞;
  2. HTTP 服务的标题和目录:可以用 -sV 的版本探测,或者直接 curl 过去看;
  3. 非标准端口:很多题会把服务放在高位端口,全端口扫描就是为了这个;
  4. 脚本输出:smb-os-discovery、http-title 这类脚本能直接给出有价值信息。

脚本扫描

Nmap 的 NSE 脚本很好用:

nmap -p 80 --script http-title,http-headers 10.0.0.5
nmap -p 445 --script smb-vuln-* 10.0.0.5

CTF 里常见的是 http-*、smb-*、ftp-anon 这几类,能快速判断有没有匿名访问、目录列表、弱配置。

常见的坑

扫不到端口不等于没服务。 可能是被防火墙过滤、服务只监听 127.0.0.1,或者需要特定源 IP。可以换 -Pn(跳过主机存活检测)、-sS(半开扫描)再试。

UDP 扫描很慢。 -sU 扫全端口基本不现实,只针对 DNS、SNMP 这类服务做定向扫描。

扫描太响。 真实环境会触发告警,CTF 里一般无所谓,但有些题会做限速或封 IP,注意控制速率。

-O 需要权限。 系统识别要 raw socket,普通用户可能失败,加 sudo。

别只扫 TCP。 有些题的服务在 UDP 上,尤其是 DNS、DHCP 相关。

扫完之后的下一步

Nmap 只是「信息收集」的开始。扫到 Web 就上 Burp,扫到 SSH 就试弱口令或看版本漏洞,扫到数据库就看能不能未授权访问。

一个常见的 CTF 流程是:

nmap 扫端口 → 识别服务 → 针对服务找入口 → 拿 shell / 拿 flag

小结

Nmap 的核心不是背参数,而是根据题目类型选扫描策略:Web 题求快,综合题求全,服务题求版本。

另外,扫完记得把结果记下来(端口、版本、脚本输出),后面写题解或者继续利用时都会用到。

👁 - 次浏览

留言

← 返回首页