Nmap(Network Mapper)是一款开源的网络扫描和安全审计工具。它广泛用于发现网络中的主机、服务以及操作系统等信息。Nmap 强大的扫描功能使其成为网络安全人员、渗透测试人员以及系统管理员的重要工具。
Nmap 的基本用法如下:
nmap [扫描类型] [选项] {目标指定内容}
你可以通过以下方式指定扫描目标:
scanme.nmap.org
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/16 10.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 的主机发现功能。例如,在 Linux 上使用 bash 脚本:
for i in {1..2}; do ping -c 1 -W 1 192.168.3.$i; done
使用旧版 nc
或者伪设备进行端口扫描:
nc -vv -z 192.168.3.120 1-65535
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- howto234.com 版权所有 湘ICP备2022005869号-3
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务