nmap
1. 安装与基本语法
Nmap(Network Mapper)是一款用于网络发现与安全审计的命令行工具。它可以判断主机是否在线、哪些端口可访问、端口后面运行的服务和版本,以及部分操作系统特征。本文以 Linux/macOS 命令行为例,Windows 用户可将 nmap 替换为安装目录中的
基本语法:
1 | nmap [扫描选项] [端口选项] [探测选项] [输出选项] <目标> |
目标可以是单个 IP、主机名、CIDR 网段、IP 范围,或一个目标文件:
1 | nmap 192.0.2.10 |
2. 先判断主机是否在线
Ping 扫描(主机发现)
1 | nmap -sn 192.0.2.0/24 |
-sn 只做主机发现,不扫描端口。Nmap 会根据权限和网络环境使用 ICMP、TCP 或 ARP 等探测方式,并列出响应的主机。局域网中 ARP 通常最可靠。
-Pn 适合防火墙丢弃 Ping、但服务确实可访问的场景;它会让每个目标都进入端口扫描,因此在大网段上可能明显变慢。
反向 DNS 与解析控制
1 | nmap -n 192.0.2.0/24 # 不做 DNS 解析,通常更快 |
3. 端口扫描
默认情况下,Nmap 扫描常见的 1,000 个 TCP 端口。实际审计通常应明确端口范围:
1 | nmap -p 22,80,443 192.0.2.10 # 指定端口 |
常见 TCP 扫描类型
1 | nmap -sS 192.0.2.10 # TCP SYN 半开放扫描 |
4. 识别服务、版本与操作系统
1 | nmap -sV 192.0.2.10 # 探测服务和版本 |
-A 信息量大、流量也大。日常排查可先使用 -sV,确有需要时再追加 -O 或 –traceroute。操作系统识别是概率判断,应结合资产信息验证。
5. NSE 脚本扫描
Nmap Scripting Engine(NSE)是 Nmap 最强大的功能之一。它允许用户通过 Lua 脚本,在端口扫描的基础上执行服务枚举、配置检查、漏洞检测等自动化任务。普通 Nmap 扫描只能告诉我们”哪些端口开着”,而 NSE 脚本能进一步回答”这些端口上跑着什么服务、配置是否安全、是否存在已知漏洞”。
在使用脚本前,建议先查看脚本说明,了解其行为、参数和潜在影响,再在授权范围内运行:
bash
1 | nmap --script-help http-title |
命令说明:
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 | nmap -oN result.txt 192.0.2.10 # 普通文本 |
1 | nmap -v 192.0.2.10 # 增加过程信息 |
7. 速度、稳定性与资源控制
1 | nmap -T3 192.0.2.0/24 |
-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
目前为止我用过最狠的,套了cf的域名都给我扫出IP来了
arl灯塔
灯塔算老资历了,要自己本地部署
搜索引擎
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是互联网上最可怕的搜索引擎,与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道。Shodan可以说是一款“黑暗”谷歌,一刻不停的寻找所有和互联网关联的服务器,摄像头,打印机,路由器。
Daydaymap
另一个之前打比赛当奖品认识的,没怎么用过
谷歌浏览器
收到信息收集和资产收集怎么可能少的了Google浏览器呢,Google浏览器的黑客语法是一个十分强大的存在,特别是在以前网络方面管的不是很严控的时候,很多大牛都是使用一些厉害的Google语法进行一个资产的收集,在以前学校的一些身份证和学号信息经常能够利用这些语法找到的。
下面我也简单的给师傅们整理了下一些常见的一些Google检索的语法,如下:
1 | 1.site:域名 intext:管理|后 台|登陆|用户名|密码|验证码|系统|帐号|manage|admin|login|system |
综合资产测绘
推荐一个mcp,enscan_go,由狼组大佬打开的企业资产信息搜集工具
对应的,也可以自行前往企查查,小蓝本,爱企查等搜集企业资产