nmap工具详解

不想你离开。 提交于 2020-03-12 00:35:19

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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!