一、Nmap基础介绍简介Nmap全称Network Mapper网络映射器1996年由Fyodor开发开源免费网络探测安全审计工具跨平台Windows/Linux/macOS。核心原理发送原始IP报文探测目标主机、端口、服务版本、操作系统支持防火墙/IDS绕过、NSE脚本扩展。下载地址官网https://nmap.org/download.htmlWindowsexe一键安装包/zip绿色版Linuxrpm包、源码编译包Kali系统预装Nmap四大核心功能 附加功能核心功能主机发现判断目标机器是否开机在线端口扫描识别TCP/UDP端口开放状态服务版本侦测识别端口运行程序、版本号操作系统侦测通过协议栈指纹识别目标系统附加功能防火墙/IDS规避扫描NSE脚本漏洞扫描、自动化渗透基础命令语法nmap [选项/参数] 扫描目标多选项、参数之间用空格分隔简写可连写-p80规范写法推荐空格分隔-p 80。最简扫描命令默认基础扫描仅端口探测nmap 192.168.40.182综合全面扫描推荐实战nmap -A -T4 -v 192.168.40.182-A综合扫描系统识别版本探测路由追踪脚本-T4快速扫描时序-v显示详细扫描过程二、主机发现判断目标是否存活作用模拟ping发包探测局域网/公网主机在线状态不扫描端口。探测数据包类型ICMP报文、TCP SYN/ACK、SCTP报文等十多种探测方式。常用参数表参数功能说明-sn / -sPPing扫描仅探测存活主机跳过端口扫描-Pn不进行存活探测直接扫描端口防火墙屏蔽ping时使用-PS 端口TCP SYN ping探测默认443-PA 端口TCP ACK ping探测-PEICMP Echo ping标准ping-PPICMP 时间戳探测--traceroute路由追踪查看数据包转发节点--packet-trace打印收发所有数据包抓包分析-n禁止DNS反向解析提升扫描速度实战示例示例1局域网扫描存活主机/24网段# 两种写法等效 nmap -sn 192.168.40.1-254 nmap -sn 192.168.40.0/24局域网内依靠ARP包探测输出在线主机MAC地址。示例2跨网段单主机存活探测nmap -sn 192.168.50.5跨网段会发送4种探测包ICMP Echo、TCP SYN(443)、TCP ACK(80)、ICMP时间戳任一回复即判定主机在线。示例3打印完整收发数据包nmap -sn --packet-trace 192.168.30.1三、端口扫描核心功能端口6种状态open端口开放存在服务closed端口关闭filtered防火墙/IDS拦截无法判断状态unfiltered未被拦截但无法确定是否开放open|filtered开放或被屏蔽无法区分closed|filtered关闭或被屏蔽端口扫描模式参数参数扫描类型特点-p指定扫描端口-p 1-1024,3306,8080-p T:80,U:53区分TCP/UDP-sTTCP Connect全连接扫描完整三次握手日志易被防火墙记录-sSTCP SYN半连接扫描默认只发SYN收到SYNACK后发RST断开隐蔽性更强-sATCP ACK扫描仅判断端口是否被防火墙拦截无法识别开放端口-sF/-sN/-sX隐蔽FIN/NULL/Xmas扫描Linux系统适用Windows会全部返回RST识别失效-sUUDP端口扫描扫描DNS(53)、SNMP(161)等UDP服务实战示例示例1指定多段端口扫描nmap -p 1-1024,1433,3306,3389 192.168.40.178示例2同时扫描TCPUDP端口nmap -p T:139,U:53 -sS -sU 192.168.40.178示例3SYN半连接隐蔽扫描nmap -sS 192.168.40.182原理发送SYN→目标回SYNACK端口开放→Nmap直接发送RST断开不完成完整握手。示例4全连接扫描无root权限可用nmap -sT 192.168.40.182示例5防火墙探测ACK扫描nmap -sA 192.168.40.182收到RST代表端口未被防火墙屏蔽仅用于判断防火墙规则。四、服务版本侦测识别端口运行程序作用获取开放端口上运行的软件、版本号用于匹配对应漏洞。底层数据库/usr/share/nmap/nmap-services-probes常用参数参数功能-sV开启服务版本探测最常用--version-light轻量快速版本扫描--version-all完整深度版本扫描--version-trace打印版本探测全过程实战示例示例1基础版本扫描nmap -sV 192.168.40.180输出服务名称、版本nginx 1.8.1、MySQL、OpenSSH等。示例2追踪版本探测发包详情nmap -sV --version-trace 192.168.40.180五、操作系统识别指纹识别目标系统识别原理通过TCP/IP协议栈特征比对内置指纹库nmap-os-db2600系统指纹判断依据默认TTL值Windows128、Linux64、Cisco设备255TCP窗口大小、DF不分段标志、FIN报文响应、ISN序列号等特征常用参数参数功能-O开启操作系统识别-A综合扫描自动包含-O、-sV、traceroute--osscan-guess模糊猜测系统指纹匹配度低时使用实战示例示例1单独识别操作系统nmap -O 192.168.40.182输出系统Windows 7 / Server 2008 / Windows 8.1。示例2综合扫描推荐一键全量信息nmap -A -T4 192.168.40.182同时输出存活主机、端口、服务版本、系统、路由、脚本扫描结果。六、防火墙/IDS 规避扫描技术核心参数汇总参数绕过手段-T0~T5时序控制减慢扫描速度规避IDS告警-D RND:3诱饵IP欺骗生成3个随机虚假IP混合扫描-fIP数据包分段拆分数据包绕过深度检测--mtu 16指定数据包偏移必须8倍数--source-port 53伪造源端口53/80等白名单端口--spoof-mac伪造MAC地址实战示例示例1时序速度控制-T3默认速度-T4快速扫描-T1/T0慢速隐蔽扫描防IDSnmap -T3 192.168.40.178 nmap -T4 192.168.40.178示例2诱饵IP隐藏真实扫描源nmap -D RND:3 192.168.40.182目标防火墙日志会同时记录本机IP3个随机虚假IP无法定位真实扫描者。七、NSE脚本基础拓展漏洞扫描介绍Nmap Script EngineLua脚本编写内置大量漏洞、信息搜集、爆破脚本默认路径/usr/share/nmap/scripts/基础使用命令单脚本扫描nmap --script 脚本名 目标IP分类脚本扫描漏洞/暴力/信息搜集nmap --script vuln 192.168.40.182 # 漏洞探测脚本 nmap --script auth 192.168.40.182 # 认证爆破脚本-A参数会自动加载基础信息类NSE脚本扫描常用场景脚本smb-os-discoveryWindows主机SMB信息搜集ms17-010永恒之蓝漏洞检测ftp-bruteFTP弱口令爆破dns-zone-transferDNS域传送漏洞探测八、高频实战万能命令汇总局域网存活主机探测nmap -sn 192.168.1.0/24快速综合扫描端口服务系统路由nmap -A -T4 -v 192.168.1.100隐蔽半连接扫描版本探测nmap -sS -sV -T4 192.168.1.100防火墙屏蔽ping强制扫描端口nmap -Pn -A 192.168.1.100漏洞批量扫描nmap --script vuln -T4 192.168.1.100诱饵IP绕过IDS扫描nmap -D RND:2 -sS 192.168.1.100九、重要注意事项法律提醒仅可扫描自己拥有授权的靶机/服务器未经许可扫描公网设备违反《网络安全法》SYN扫描-sS、数据包分段等高级功能需要root管理员权限-T5极速扫描会丢失大量结果仅适合内网快速探测UDP扫描速度极慢若无特殊需求可省略-sU扫描公网目标建议搭配-T1/-T2慢速模式避免触发WAF封禁IP。