nmap工具笔记整理

一、Nmap 是什么?

Nmap(Network Mapper):开源网络扫描 / 探测 / 安全审计工具,被称为 "网络安全界的瑞士军刀"。

复制代码
 核心能力:
 主机发现:哪些 IP 在线
 端口扫描:哪些端口开放 / 关闭 / 过滤
 服务版本识别:端口上跑的是 Nginx/Apache/MySQL 及其版本
 操作系统识别:Windows/Linux 及大致版本
 脚本引擎 NSE:漏洞检测、弱口令、信息收集、爆破等
 防火墙 / IDS 绕过:分片、伪装、慢速扫描等
 适用场景:网络运维、渗透测试、资产测绘、应急响应。
二、安装(Kali / Windows /macOS)

1、Kali Linux(自带,直接用)

bash 复制代码
 #检测版本
 nmap -v 

2、Ubuntu/Debian

bash 复制代码
 sudo apt update
 sudo apt install nmap -y
三、基础概念:端口状态

Nmap 扫描后端口会有 6 种状态:

  1. open:端口开放,有服务监听

  2. closed:端口关闭,无服务

  3. filtered:被防火墙 / ACL 拦截,无法判断

  4. unfiltered:可访问,但无法确定开放 / 关闭(常见于 ACK 扫描)

  5. open|filtered:开放或被过滤,无法区分(UDP / 隐秘扫描常见)

  6. closed|filtered:关闭或被过滤

四、主机发现(Ping 扫描)

只找存活主机,不扫端口

1、简单网段扫描
bash 复制代码
 nmap -sn 192.168.1.0/24
 # -sn:只主机发现,不端口扫描(旧版是 -sP)
2、多目标
bash 复制代码
 nmap -sn 192.168.1.1 192.168.1.100 baidu.com
3、ip范围
bash 复制代码
 nmap -sn 192.168.1.100-200
4、不发 Ping(绕过禁 Ping 主机)
bash 复制代码
 nmap -Pn 192.168.1.1
 # -Pn:跳过主机发现,直接当主机存活扫描端口
5、常用主机发现参数

-PE:ICMP Echo(普通 Ping)

-PS:TCP SYN Ping(发 SYN 包)

-PA:TCP ACK Ping(发 ACK 包)

-PU:UDP Ping

bash 复制代码
 nmap -PE -PS 22,80 192.168.1.1
 #指定端口 22 80端口
五、端口扫描(核心)

1、默认扫描(常用 1000 端口)

复制代码
 nmap 192.168.1.1

2、指定端口 -p

bash 复制代码
 nmap -p 80 192.168.1.1          # 单个端口
 nmap -p 22,80,443 192.168.1.1   # 多个端口
 nmap -p 1-1000 192.168.1.1       # 端口范围
 nmap -p- 192.168.1.1              # 全端口 1-65535(慢)
 nmap -p U:53,T:80 192.168.1.1    # 指定 TCP/UDP 端口

3、快速扫描 -F(100 常用端口)

bash 复制代码
 nmap -F 192.168.1.1
六、扫描类型
1、TCP 连接扫描 -sT(默认,无权限时自动用这个)

完成三次握手:SYN → SYN-ACK → ACK 容易被日志记录,不隐蔽 不需要管理员权限

bash 复制代码
 nmap -sT -p 80 192.168.1.1
2、SYN 扫描 -sS(半开扫描,最常用)

只发 SYN,收到 SYN-ACK 判定开放,不回 ACK,直接发 RST 断开 隐蔽、快、不易被日志记录 需要 root / 管理员权限

bash 复制代码
 sudo nmap -sS -p 80 192.168.1.1
3、UDP 扫描 -sU

UDP 无连接,判断逻辑: 收到 ICMP 端口不可达 → 端口 closed 无响应 → open|filtered 慢,常用于 DNS (53)、SNMP (161)

bash 复制代码
 sudo nmap -sU -p 53,161 192.168.1.1
4、隐秘扫描(绕过防火墙 / IDS)

FIN 扫描 -sF 发 FIN 包;关闭端口回 RST,开放端口无响应

bash 复制代码
 sudo nmap -sF 192.168.1.1

NULL 扫描 -sN 无任何标志位;原理同上

bash 复制代码
 sudo nmap -sN 192.168.1.1

XMAS 扫描 -sX FIN+URG+PSH 置位(圣诞树包)

复制代码
 sudo nmap -sX 192.168.1.1

注意:-sF/-sN/-sX 仅对 Linux/Unix 有效;Windows 会直接丢弃异常包,全显示 filtered。

5、ACK 扫描 -sA(探测防火墙规则)

只发 ACK,用于判断防火墙是否拦截已建立连接的包 无法判断端口开放 / 关闭,只看 unfiltered/filtered

bash 复制代码
 sudo nmap -sA 192.168.1.1
七、服务版本与操作系统识别
1、服务版本 -sV
bash 复制代码
 nmap -sV 192.168.1.1
 # 强度:--version-intensity 0-9(默认7)
 nmap -sV --version-intensity 9 192.168.1.1
2、操作系统 -O
bash 复制代码
sudo nmap -O 192.168.1.1
3、综合扫描 -A(最常用)

包含:主机发现 + 端口扫描 + 版本 + 系统 + 部分脚本

bash 复制代码
 sudo nmap -A 192.168.1.1
八、NSE 脚本引擎

NSE = Nmap Scripting Engine,Lua 脚本,内置上千个。

脚本分类(常用)

  • auth:认证 / 弱口令

  • brute:暴力破解

  • vuln:漏洞检测

  • http:Web 相关

  • smb:Windows 共享 / 漏洞

dns:DNS 信息收集

1、使用脚本

bash 复制代码
 # 单个脚本
 nmap --script=http-title 192.168.1.1  # 拿网站标题
 ​
 # 多个脚本
 nmap --script=http-title,http-headers 192.168.1.1
 ​
 # 整个分类
 nmap --script vuln 192.168.1.1        # 全漏洞脚本
 ​
 # 脚本+参数
 nmap --script http-login --script-args userdb=users.txt,passdb=pass.txt 192.168.1.1

2、常用实战脚本示例

bash 复制代码
 # 1. 永恒之蓝(MS17-010)
 nmap --script smb-vuln-ms17-010 -p 445 192.168.1.1
 ​
 # 2. SMB 共享枚举
 nmap --script smb-enum-shares -p 445 192.168.1.1
 ​
 # 3. FTP 弱口令
 nmap --script ftp-brute -p 21 192.168.1.1
 ​
 # 4. MySQL 弱口令
 nmap --script mysql-brute -p 3306 192.168.1.1
 ​
 # 5. 网站目录扫描
 nmap --script http-enum -p 80 192.168.1.1
九、输出格式
bash 复制代码
 # 文本(默认)
 nmap -oN result.txt 192.168.1.1
 ​
 # XML(可导入 Metasploit/nessus)
 nmap -oX result.xml 192.168.1.1
 ​
 # JSON
 nmap -oJ result.json 192.168.1.1
 ​
 # 所有格式
 nmap -oA result 192.168.1.1
十、时序模板(扫描速度 / 规避检测)

-T0:最慢(规避 IDS,极慢)

-T1:慢速

-T2:中速(默认)

-T3:正常

-T4:快速(常用)

-T5:极速(易丢包)

bash 复制代码
 sudo nmap -sS -T4 -A 192.168.1.1
十一、防火墙 / IDS 绕过技巧

1、分片 -f:包分片,绕过部分防火墙

bash 复制代码
 sudo nmap -f 192.168.1.1

2、诱饵 -D:伪造多个源 IP,混淆溯源

bash 复制代码
 sudo nmap -D 192.168.1.2,192.168.1.3,ME 192.168.1.1
 #ME = 本机真实 IP

3、随机源端口 --source-port

bash 复制代码
 sudo nmap --source-port 53 192.168.1.1

4、慢速扫描 + 随机间隔

bash 复制代码
 sudo nmap -T0 --scan-delay 10s 192.168.1.1
补充:
bash 复制代码
 #-A = Aggressive(综合强力扫描)
 ​
 #-A  =  -sV  +  -O  +  -sC  +  路由追踪
相关推荐
南境十里·墨染春水1 小时前
C++笔记 STL——set
开发语言·c++·笔记
d111111111d1 小时前
直流电机位置式 PID 控制 和 舵机的区别
笔记·stm32·单片机·嵌入式硬件·学习
LZYmarks2 小时前
小白买车笔记
笔记
码途漫谈2 小时前
Easy-Vibe开发篇阅读笔记(二)——前端开发之Figma与MasterGo入门
人工智能·笔记·ai·开源·ai编程·figma
LaLaLa_OvO3 小时前
jetbrains 的 datagrip 导出csv,中文乱码
笔记
大囚长3 小时前
权力的哲学洞察与反思
笔记
java_logo4 小时前
SiYuan 思源笔记 Docker 部署终极指南:Windows+Linux 双平台
windows·笔记·docker·思源笔记·思源笔记部署·docker部署思源笔记·思源笔记文档
d111111111d4 小时前
了解Modbus
网络·笔记·stm32·单片机·嵌入式硬件·学习
愚昧之山绝望之谷开悟之坡4 小时前
什么agentskill.io大白话说清楚
笔记