深入理解 Nmap
网络扫描与渗透测试的必备工具
目录
-
简介
-
用法
-
目标指定
-
主机发现
-
扫描技术
-
端口指定及扫描顺序
-
服务与版本检测
-
脚本扫描
-
操作系统检测
-
定时与性能
-
防火墙与入侵检测系统规避
-
输出选项
-
其他选项
-
示例
-
红队渗透步骤
-
原理
简介
Nmap(Network Mapper)是一款开源的网络扫描和安全审计工具。它广泛用于发现网络中的主机、服务以及操作系统等信息。Nmap 强大的扫描功能使其成为网络安全人员、渗透测试人员以及系统管理员的重要工具。
用法
Nmap 的基本用法如下:
nmap [扫描类型] [选项] {目标指定内容}
其中,[扫描类型] 和 [选项] 是可选项,而{目标指定内容}则是你想扫描的目标,可以是主机名、IP 地址或网络。
目标指定
你可以通过以下方式指定扫描目标:
-
主机名:scanme.nmap.org
-
IP 地址:192.168.0.1
-
网络:192.168.0.0/24
-
从文件读取:-iL <文件名> 从文件中读取目标列表。
-
随机选择:-iR <主机数量> 随机选择目标主机。
-
排除特定主机:–exclude <主机1, 主机2,…> 排除指定的主机或网络。
-
从文件中排除:–excludefile <文件名> 从文件中排除相关内容。
主机发现
主机发现用于确定网络中哪些主机是活动的。常见的主机发现选项如下:
-
-sL:列出要扫描的目标(仅显示)。
-
-sn:Ping 扫描,跳过端口扫描。
-
-Pn:跳过主机发现步骤,直接扫描所有主机。
-
-PS/PA/PU/PY <端口>:针对特定端口进行 TCP SYN/ACK、UDP 或 SCTP 探测。
-
-PE/PP/PM:使用 ICMP 回显、时间戳或子网掩码请求进行探测。
-
–traceroute:追踪到每个主机的网络跃点。
扫描技术
Nmap 提供多种扫描技术,每种适用于不同的情况和需求:
-
-sS:TCP SYN 扫描,速度快但不稳定。
-
-sT:TCP Connect 扫描,稳定但相对较慢。
-
-sA:TCP ACK 扫描,用于防火墙穿透。
-
-sU:UDP 扫描。
-
-sN、-sF、-sX:TCP Null、FIN 和 Xmas 扫描,避免触发某些防火墙规则。
-
-sO:IP 协议扫描,扫描主机支持的协议。
-
-sI <僵尸主机>:空闲扫描。
-
-b <FTP 中继主机>:FTP 反向扫描。
端口指定及扫描顺序
你可以根据需要指定端口范围,并控制扫描顺序:
-
-p <端口>:指定扫描端口。例如 -p 22 或 -p 1-65535。
-
–exclude-ports <端口>:排除特定端口不进行扫描。
-
-F:快速扫描,扫描较少端口。
-
-r:按顺序扫描端口。
-
–top-ports <数量>:扫描最常见的端口。
服务与版本检测
Nmap 支持服务及版本检测,可以帮助你识别开放端口所运行的服务和版本信息:
-
-sV:探测开放端口并确定服务和版本。
-
–version-intensity <级别>:设置版本探测强度,级别从 0 到 9。
-
–version-all:尝试每个探测方法。
-
–version-trace:显示详细的版本探测过程。
脚本扫描
Nmap 提供了丰富的 NSE(Nmap Scripting Engine)脚本,帮助进行漏洞扫描等任务:
-
-sC:启用默认脚本。
-
–script=<脚本名>:指定要运行的脚本。
-
–script-args=<参数>:为脚本提供参数。
-
–script-help=<脚本名>:查看脚本帮助信息。
操作系统检测
Nmap 可以尝试识别目标机器的操作系统:
-
-O:启用操作系统检测。
-
–osscan-limit:将操作系统扫描限制在有希望的目标上。
-
–osscan-guess:更积极地猜测操作系统。
定时与性能
Nmap 提供了许多定时和性能优化选项,可以加速扫描过程:
-
-T<0-5>:设置定时模板,数值越高,扫描速度越快。
-
–min-rate、–max-rate:设置每秒发送的数据包数量。
-
–min-hostgroup、–max-hostgroup:设置主机扫描的并发数。
防火墙与入侵检测系统规避
Nmap 提供了多种方法来规避防火墙和入侵检测系统(IDS):
-
-D <诱饵>:使用多个诱饵 IP 地址来掩盖真实的扫描来源。
-
-S <IP 地址>:伪造源 IP 地址。
-
–proxies <代理>:通过代理服务器进行扫描。
输出选项
Nmap 允许将扫描结果以不同格式输出:
-
-oN <文件>:以普通格式输出。
-
-oX <文件>:以 XML 格式输出。
-
-oA <文件>:同时输出三种格式。
-
–reason:显示端口状态的原因。
其他选项
-6:启用 IPv6 扫描。
-A:启用操作系统检测、版本检测、脚本扫描和追踪路由。
-V:显示 Nmap 版本信息。
-h:显示帮助信息。
示例
以下是一些常见的 Nmap 扫描示例:
详细扫描并启用操作系统检测:
nmap -v -A scanme.nmap.org
Ping 扫描(仅检测主机是否在线):
nmap -v -sn 192.168.0.0/1610.0.0.0/8
随机选择目标进行端口扫描:
nmap -v -iR 10000 -Pn -p 80
红队渗透步骤
在渗透测试中,Nmap 扮演着至关重要的角色。以下是一个典型的使用 Nmap 的渗透测试步骤:
主机发现:
nmap -sn 127.0.0.0/24
端口扫描:
nmap -sT --min-rate 10000 -p- 127.0.0.1 -oA nmapsc/ports
详细信息扫描:
nmap -sT -sV -sC -O -p22,80,443 127.0.0.1 -oA nmapsc/detail
UDP 扫描:
nmap -sU --top-ports 20 127.0.0.1 -oA nmapsc/udp
漏洞扫描:
nmap --script=vuln -p22,80,443 127.0.0.1 -oA nmapsc/vuln
原理
没有 Nmap 的主机发现
你可以通过手动编写脚本来模拟 Nmap 的主机发现功能。例如,在 Linux 上使用 bash 脚本:
for i in {1…254}; do ping -c 1 -W 1192.168.3.$i; done
没有 Nmap 的端口扫描
使用旧版 nc 或者伪设备进行端口扫描:
nc -vv -z 192.168.3.1201-65535
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取
读者福利 |
CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

👉1.成长路线图&学习规划👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
👉2.网安入门到进阶视频教程👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程文末领取哈)
👉3.SRC&黑客文档👈
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!(全套教程文末领取哈)
👉4.护网行动资料👈
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
👉5.黑客必读书单👈
👉6.网络安全岗面试题合集👈
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~
读者福利 |
CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)
