nmap工具介绍
nmap是网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取主机正在运行以及提供什么服务等信息。nmap工具支持多种扫描方式:UDP扫描、TCP connect()扫描、 TCP SYN(半开扫描)、ftp代理(bounce攻击)扫描、反向标志、ICMP扫描、FIN扫描、ACK扫描、圣诞树(Xmas Tree)扫描、 null扫描。探测操作系统类型,探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射),碎片扫描,以及灵活的目标和端口设定。Can pass hostnames, IP addresses, networks, etc.
nmap语法
nmap [Scan Type(s)] [Options]
nmap功能详解
- 主机探测发现 HOST DISCOVERY
- 端口扫描 SCAN TECHNIQUES
- 服务版本探测 SERVICE/VERSION DETECTION
- 系统版本探测 OS DETECTION
- 防火墙/IDS规避 FIREWALL/IDS EVASION AND SPOOFING
- NSE脚本引擎 SCRIPT SCAN
扫描端口状态详解
- open 目标主机端口开放
- closed 目标主机端口关闭
- filtered 端口被防火墙IDS/IPS屏蔽,无法确定其状态
- unfiltered 端口没有被屏蔽,但是否开放需要进一步确定
nmap主机探测发现
nmap主机发现即用于发现目标主机是否在线HOST DISCOVERY
nmap 192.168.1.11
默认情况下,nmap工具发送四种不同类型的数据包来探测目标主机是否在线。依次发送四个报文探测目标机是否开启,只要收到其中一个包的回复,那就证明目标机开启。
nmap -Pn 192.168.1.11
通配符指定IP地址
nmap -Pn 192.168.1.*
nmap -sn 192.168.1.11
-sL List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现
-sn Ping Scan 只进行主机发现,不进行端口扫描
-Pn 将所有指定的主机视作开启的,跳过主机发现的过程而进行端口扫描
-PS/PA/PU/PY TCP SYN/ACK, UDP or SCTP discovery to given ports
-PE/PP/PM ICMP echo, timestamp, and netmask request discovery probes
-PO IP Protocol Ping
-n/-R: Never do DNS resolution/Always resolve [default: sometimes]即-R
--traceroute 追踪每个路由节点
nmap端口扫描
nmap -sS 192.168.1.11
nmap -sU 192.168.1.11
nmap -sO 192.168.1.11
-sS/sT/sA/sW/sM TCP SYN/Connect()/ACK/Window/Maimon scans TCP connect()扫描、 TCP SYN(半开扫描)、TCP ACK扫描 只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况、窗口扫描
-sU UDP Scan UDP扫描
-sN/sF/sX TCP Null, FIN, and Xmas scans TCP Null、FIN、 Xmas scans秘密扫描
--scanflags <flags> Customize TCP scan flags 反向标志扫描
-sI <zombie host[:probeport]> Idle scan 僵尸扫描
-sY/sZ SCTP INIT/COOKIE-ECHO scans 扫描SCTP协议端口
-sO IP protocol scan ICMP扫描探测目标主机支持的协议类型
-b <FTP relay host> FTP bounce scan ftp代理扫描
端口参数
nmap工具灵活的目标和端口设定
-p <port ranges> Only scan specified ports
-p22、-p1-65535、 -p U:53,111,137,T:21-25,80,139,8080,S:9
T代表TCP协议、U代表UDP协议、S代表SCTP协议
-F 快速模式,仅扫描TOP 100的端口
--top-ports 扫描开放概率最高的number个端口
--port-ratio <ratio> 扫描指定频率以上的端口
服务版本探测
nmap -sV 192.168.1.11
-sV Probe open ports to determine service/version info
--version-intensity<level> 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长
系统探测
nmap拥有丰富的系统数据库nmap-os-db,使用TCP/IP协议栈指纹来识别不同的操作系统和设备
nmap -O nmap.org
-O: Enable OS detection
nmap防火墙/IDS规避
绕开防火墙与IDS(入侵检测系统)的检测与屏蔽,以便能够更加详细地发现目标主机的状况。分片(可疑的探测包进行分片处理)、IP诱骗(真实IP地址和其他主机的IP地址混合使用)、IP伪装(自己发送的数据包中的IP地址伪装成其他主机的地址)、 指定源端口(目标主机只允许来自特定端口的数据包通过防火墙,伪装指定端口)、扫描延时(防火墙针对发送过于频繁的数据包会进行严格的侦查)
nmap -Pn -sS -A -D 192.168.1.1,192.168.1.11,192.168.1.53 -e eth0 -f -g 80 nmap.org
-f 、--mtu <val>: fragment packets (optionally w/given MTU)指定使用分片、指定数据包的MTU
-D <decoy1,decoy2[,ME],...> Cloak a scan with decoys用一组IP地址掩盖真实地址,其中ME填入自己的IP地址
-S <IP_Address>: Spoof source address 伪装成其他IP地址
-e <iface>: Use specified interface 使用特定的网络接口
-g/--source-port <portnum>: Use given port number使用源端口
--proxies <url1,[url2],...>: Relay connections through HTTP/SOCKS4 proxies
--data <hex string>: Append a custom payload to sent packets 填充随机数据让数据包长度达到Num
--data-string <string>: Append a custom ASCII string to sent packets
--data-length <num>: Append random data to sent packets
--ip-options <options>: Send packets with specified ip options使用指定的IP选项来发送数据包
--ttl <val>: Set IP time-to-live field设置time-to-live时间
--spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address 伪装MAC地址
--badsum: Send packets with a bogus TCP/UDP/SCTP checksum 使用错误的checksum来发送数据包
NSE脚本引擎
允许用户自己编写脚本来执行自动化的操作或者扩展nmap的功能。NSE使用Lua脚本语言,提供了丰富的脚本库。用于网络发现、复杂的版本侦测、漏洞侦测、后门侦测、漏洞利用。
nmap --script=vuln -Pn nmap.org
-sC: equivalent to --script=default使用默认类别的脚本进行扫描
--script=<Lua scripts>: <Lua scripts> is a comma separated list of directories, script-files or script-categories 使用某个或某类脚本进行扫描,支持通配符描述
--script-args=<n1=v1,[n2=v2,...]>: provide arguments to scripts为脚本提供默认参数
--script-args-file=filename: provide NSE script args in a file 使用文件来为脚本提供参数
--script-trace: Show all data sent and received显示脚本执行过程中发送与接收的数据
--script-updatedb: Update the script database更新脚本数据库
--script-help=<Lua scripts>: Show help about scripts <Lua scripts> is a comma-separated list of script-files or script-categories.显示脚本的帮助信息
其他常用选项
随机扫描 --randomize-hosts
延时扫描 --scan-delay (默认单位秒)
-h: Print this help summary page 显示nmap帮助文档
-V: Print version number 打印nmap版本
-A: Enable OS detection, version detection, script scanning, and traceroute 详细显示目标主机系统类型,服务版本,默认脚本扫描和显示到达目标主机的所经过的设备
-T<0-5>: Set timing template (higher is faster) 设置扫描的速度,等级越高扫描越快
-oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3, and Grepable format, respectively, to the given filename 输出到指定格式的文件中
总结nmap实战常用选项
nmap -h
nmap -Pn -sS -A -T4 nmap.org -oX /nmap.xml
来源:oschina
链接:https://my.oschina.net/u/3861671/blog/3192033