红队渗透之信息搜集

nmap

1. 安装与基本语法

Nmap(Network Mapper)是一款用于网络发现与安全审计的命令行工具。它可以判断主机是否在线、哪些端口可访问、端口后面运行的服务和版本,以及部分操作系统特征。本文以 Linux/macOS 命令行为例,Windows 用户可将 nmap 替换为安装目录中的

基本语法:

1
nmap [扫描选项] [端口选项] [探测选项] [输出选项] <目标>

目标可以是单个 IP、主机名、CIDR 网段、IP 范围,或一个目标文件:

1
2
3
4
5
nmap 192.0.2.10
nmap scan.example.com
nmap 192.0.2.0/24
nmap 192.0.2.10-20
nmap -iL targets.txt

2. 先判断主机是否在线

Ping 扫描(主机发现)

1
2
nmap -sn 192.0.2.0/24
nmap -Pn 192.0.2.10 # 跳过主机发现,假定目标在线

-sn 只做主机发现,不扫描端口。Nmap 会根据权限和网络环境使用 ICMP、TCP 或 ARP 等探测方式,并列出响应的主机。局域网中 ARP 通常最可靠。

-Pn 适合防火墙丢弃 Ping、但服务确实可访问的场景;它会让每个目标都进入端口扫描,因此在大网段上可能明显变慢。

反向 DNS 与解析控制

1
2
nmap -n 192.0.2.0/24       # 不做 DNS 解析,通常更快
nmap -R 192.0.2.10 # 始终尝试反向 DNS

3. 端口扫描

默认情况下,Nmap 扫描常见的 1,000 个 TCP 端口。实际审计通常应明确端口范围:

1
2
3
4
5
6
nmap -p 22,80,443 192.0.2.10        # 指定端口
nmap -p 1-1024 192.0.2.10 # 扫描范围
nmap -p- 192.0.2.10 # 扫描全部 TCP 端口(1-65535)
nmap --top-ports 100 192.0.2.10 # 扫描最常见的 100 个端口
nmap -F 192.0.2.10 # 快速扫描,端口数量少于默认
nmap -p T:80,443,U:53 192.0.2.10 # T=TCP,U=UDP,分别指定协议

常见 TCP 扫描类型

1
2
3
4
nmap -sS 192.0.2.10   # TCP SYN 半开放扫描
nmap -sT 192.0.2.10 # TCP Connect,无法发送原始报文时的后备方案
nmap -sA 192.0.2.10 # TCP ACK,主要用于判断防火墙过滤规则
nmap -sF 192.0.2.10 # FIN 扫描;结果依赖系统实现

4. 识别服务、版本与操作系统

1
2
3
4
5
6
nmap -sV 192.0.2.10                    # 探测服务和版本
nmap -sV --version-light 192.0.2.10 # 较少探针,速度更快
nmap -sV --version-all 192.0.2.10 # 尝试全部版本探针
nmap -O 192.0.2.10 # 尝试识别操作系统
nmap -A 192.0.2.10 # 综合探测:-O、-sV、默认 NSE、traceroute
nmap --traceroute 192.0.2.10 # 追踪网络路径

-A 信息量大、流量也大。日常排查可先使用 -sV,确有需要时再追加 -O 或 –traceroute。操作系统识别是概率判断,应结合资产信息验证。

5. NSE 脚本扫描

Nmap Scripting Engine(NSE)是 Nmap 最强大的功能之一。它允许用户通过 Lua 脚本,在端口扫描的基础上执行服务枚举、配置检查、漏洞检测等自动化任务。普通 Nmap 扫描只能告诉我们”哪些端口开着”,而 NSE 脚本能进一步回答”这些端口上跑着什么服务、配置是否安全、是否存在已知漏洞”。

在使用脚本前,建议先查看脚本说明,了解其行为、参数和潜在影响,再在授权范围内运行:

bash

1
2
3
4
5
6
nmap --script-help http-title
nmap --script-updatedb
nmap --script "default,safe" 192.0.2.10
nmap -p 80,443 --script http-title,http-headers 192.0.2.10
nmap -p 445 --script smb-os-discovery 192.0.2.10
nmap --script vuln 192.0.2.10

命令说明:

  • nmap --script-help http-title:查看 http-title 脚本的详细说明,包括用途、作者、支持的参数和示例。这是使用任何脚本前的第一步,避免盲目运行。
  • nmap --script-updatedb:更新本地脚本数据库。Nmap 安装或新增脚本后,需要执行此命令让 Nmap 重新索引脚本,否则新脚本可能无法被识别。
  • nmap --script "default,safe" 192.0.2.10:运行 default 和 safe 两个类别的脚本。default 是 Nmap 默认加载的脚本集合,safe 是一般认为不会破坏服务的脚本,适合常规信息收集。
  • nmap -p 80,443 --script http-title,http-headers 192.0.2.10:只针对 80 和 443 端口,运行抓取网页标题和 HTTP 响应头的脚本。这类脚本属于 discovery 类别,能快速了解 Web 服务的基本情况。
  • nmap -p 445 --script smb-os-discovery 192.0.2.10:针对 445 端口,探测 SMB 服务的操作系统版本、主机名、域等信息。这是内网渗透中常见的信息收集手段。
  • nmap --script vuln 192.0.2.10:运行所有 vuln 类别的脚本,探测目标是否存在已知漏洞。结果需要人工确认,因为可能存在误报或受目标环境影响的偏差。

脚本类别:

类别 用途 注意事项
default -sC 默认脚本集合 通常适合常规枚举,覆盖面广但相对温和
safe 一般认为不会破坏服务的脚本 仍应先验证,不同目标环境可能有差异
discovery 发现用户、共享、目录、设备信息 可能暴露敏感信息,如共享路径、用户列表
auth 认证机制和匿名访问检查 可能触发登录告警,甚至导致账户锁定
vuln 已知漏洞探测 结果需人工确认,可能存在误报或漏报
intrusive 侵入性较强的脚本 可能对目标造成较大影响,慎用
brute 口令猜测类脚本 会产生大量请求,可能触发告警或锁定
dos 拒绝服务类脚本 可能造成服务中断,严禁对生产环境使用

-sC 等价于 --script=default,是日常扫描中最常用的组合:

1
nmap -sC -sV -p 22,80,443 192.0.2.10

这条命令同时启用默认脚本(-sC)和版本探测(-sV),能在一次扫描中获取端口、服务版本和默认脚本枚举结果,是信息收集阶段的高效组合。

6. 输出结果与可重复性

1
2
3
4
nmap -oN result.txt 192.0.2.10       # 普通文本
nmap -oX result.xml 192.0.2.10 # XML,便于工具解析
nmap -oG result.gnmap 192.0.2.10 # Grepable 格式
nmap -oA audit-2026-09-15 192.0.2.10 # 同时输出 .nmap/.xml/.gnmap
1
2
3
4
5
nmap -v 192.0.2.10        # 增加过程信息
nmap -vv 192.0.2.10 # 更详细
nmap --reason 192.0.2.10 # 显示判定端口状态的原因
nmap --open 192.0.2.10 # 只显示开放或可能开放的端口
nmap -d 192.0.2.10 # 调试输出

7. 速度、稳定性与资源控制

1
2
3
4
5
nmap -T3 192.0.2.0/24
nmap -T4 192.0.2.0/24
nmap --min-rate 100 --max-retries 2 192.0.2.10
nmap --host-timeout 5m 192.0.2.10
nmap --scan-delay 100ms 192.0.2.10

-T0 到 -T5 从极慢到极快。速率越高越容易丢包、触发 IDS/IPS 或影响脆弱设备;应根据链路、目标承载能力和授权窗口调整。

8. 实用组合命令

快速盘点一个网段

1
nmap -sn -n 192.0.2.0/24 -oA inventory

先找在线主机,不做 DNS,并保存三种格式结果。

单台主机常规服务枚举

1
sudo nmap -sS -sV -sC -O -p- --reason -oA host-audit 192.0.2.10

该命令会扫描全部 TCP 端口、识别版本、运行默认脚本、尝试识别系统并保存证据。生产环境可先去掉 -O、-sC 或 -p- 以降低流量。

检查常见 Web 端口

1
nmap -p 80,443,8080,8443 -sV --script http-title,http-headers 192.0.2.10

批量扫描并排除目标

1
nmap -iL targets.txt --exclude 192.0.2.13,192.0.2.20 -p 22,80,443 -sV -oA batch

其他资产侦察

域名子域名搜集

censys

Censys Platform

目前为止我用过最狠的,套了cf的域名都给我扫出IP来了

arl灯塔

Aabyss-Team/ARL: ARL官方仓库备份项目:ARL(Asset Reconnaissance Lighthouse)资产侦察灯塔系统旨在快速侦察与目标关联的互联网资产,构建基础资产信息库。 协助甲方安全团队或者渗透测试人员有效侦察和检索资产,发现存在的薄弱点和攻击面。

灯塔算老资历了,要自己本地部署

搜索引擎

FOFA

网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统

FOFA 是一款网络空间资产搜索引擎,通俗来说,它像“安全界的 Google”,用于搜索互联网上暴露的设备和服务。它由华顺信安推出,通过对全球开放服务进行探测和指纹识别,帮助用户快速定位和匹配网络资产。

搜索字段 含义 示例
title 搜索网页标题 title="后台管理"
body 搜索 HTML 正文内容 body="登录"
domain 搜索根域名 domain="example.com"
host 从 URL 中搜索 host=".gov.cn"
port 搜索开放端口 port="443"
ip 搜索 IP 或网段 ip="192.0.2.0/24"
cert 搜索证书内容 cert="example.com"
app 搜索特定应用 app="海康威视-视频监控"
country / region 按国家 / 地区筛选 country="CN" / region="Zhejiang"

Shodan

Shodan Search Engine

Shodan是互联网上最可怕的搜索引擎,与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道。Shodan可以说是一款“黑暗”谷歌,一刻不停的寻找所有和互联网关联的服务器,摄像头,打印机,路由器。

Daydaymap

DayDayMap 网络空间资产测绘平台

另一个之前打比赛当奖品认识的,没怎么用过

谷歌浏览器

收到信息收集和资产收集怎么可能少的了Google浏览器呢,Google浏览器的黑客语法是一个十分强大的存在,特别是在以前网络方面管的不是很严控的时候,很多大牛都是使用一些厉害的Google语法进行一个资产的收集,在以前学校的一些身份证和学号信息经常能够利用这些语法找到的。

下面我也简单的给师傅们整理了下一些常见的一些Google检索的语法,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1.site:域名 intext:管理|后 台|登陆|用户名|密码|验证码|系统|帐号|manage|admin|login|system

2.site:域名 inurl:login|admin|manage|manager|admin_login|login_admin|system

3.site:域名 intext:"手册"

4.site:域名 intext:"忘记密码"

5.site:域名 intext:"工号"

6.site:域名 intext:"优秀员工"

7.site:域名 intext:"身份证号码"

8.site:域名 intext:"手机号"

综合资产测绘

推荐一个mcp,enscan_go,由狼组大佬打开的企业资产信息搜集工具

usdagfhjkda/wgpsec-ENScan_GO: Archival mirror of wgpsec/ENScan_GO (upstream deleted in 2026). Apache-2.0. Original author: keac. See MODIFICATIONS.md.

对应的,也可以自行前往企查查,小蓝本,爱企查等搜集企业资产

Contents