网络渗透中的扫描工具——nmap介绍

前面其实断断续续介绍过很多nmap的用法 , 但不是很完整 。这里单独来介绍一下这个非常强大的扫描工具nmap 。
完整地帮助文档就不放上来了 , 想看完整文档的直接输入命令nmap -h:

网络渗透中的扫描工具——nmap介绍

文章插图
nmap -h
【网络渗透中的扫描工具——nmap介绍】后面我们针对说明文档中的各个参数进行一些说明 , 其实如果英文比较好 , 就直接看说明文档就行了 , 我后面的介绍很多就是翻译一下而已 。
目标规范第一类就是指定扫描目标规范相关的参数:
网络渗透中的扫描工具——nmap介绍

文章插图
TARGET SPECIFICATION
说明文档中介绍了不使用这部分的参数时 , 目标主机该怎么传 , 就是Ex后面的那些参数类型 。
-iL:传递一个ip地址的文档 , 文档里的ip地址可以是不连续的 , 不同网段的 。-iR:后面跟一个数字 , 会随机扫描指定数量的主机 , 可以加-p指定端口扫描 。--exclude:后面跟ip地址或者网段 , 表示这些主机不用进行扫描 。--excludefile:后面传一个ip地址的文档 , 表示文档中的主机不进行扫描 。主机发现接下来一块就是主机发现相关的参数:
-sL: List Scan 列表扫描 , 仅将指定的目标的IP列举出来 , 不进行主机发现 。-sn: Ping Scan 只进行主机发现 , 不进行端口扫描 。-Pn: 将所有指定的主机视作开启的 , 跳过主机发现的过程 。-PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现 。-PE/PP/PM: 使用ICMP echo, timestamp, and netmask 请求包发现主机 。-PO[protocollist]: 使用IP协议包探测对方主机是否开启 。-n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析 。--dns-servers <serv1[,serv2],...>: 指定DNS服务器 。--system-dns: 指定使用系统的DNS服务器--traceroute: 追踪每个路由节点 扫描技术接下来是扫描技术相关的参数:
-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描 。-sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况 。-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态 。--scanflags <flags>: 定制TCP包的flags 。-sI <zombiehost[:probeport]>: 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)-sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况 。-sO: 使用IP protocol 扫描确定目标机支持的协议类型 。-b <FTP relay host>: 使用FTP bounce scan扫描方式端口规范和扫描顺序接下来是指定扫描端口相关的参数:
-p <port ranges>:扫描指定的端口实例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP协议、U代表UDP协议、S代表SCTP协议)--exclude-ports <port ranges>:指定不扫描的端口-F:Fast mode – 快速模式 , 仅扫描TOP 100的端口-r:不进行端口随机打乱的操作(如无该参数 , nmap会将要扫描的端口以随机顺序方式扫描 , 以让nmap的扫描不易被对方防火墙检测到) 。--top-ports <number>:扫描开放概率最高的number个端口(nmap的作者曾经做过大规模地互联网扫描 , 以此统计出网络上各种端口可能开放的概率 。以此排列出最有可能开放端口的列表 , 具体可以参见文件:nmap-services 。默认情况下 , nmap会扫描最有可能的1000个TCP端口)--port-ratio <ratio>:扫描指定频率以上的端口 。与上述--top-ports类似 , 这里以概率作为参数 , 让概率大于--port-ratio的端口才被扫描 。显然参数必须在在0到1之间 , 具体范围概率情况可以查看nmap-services文件 。服务版本扫描接下来是端口上服务版本扫描相关的参数:
-sV:指定让Nmap进行版本侦测--version-intensity <level>:指定版本侦测强度(0-9) , 默认为7 。数值越高 , 探测出的服务越准确 , 但是运行时间会比较长 。--version-light:指定使用轻量侦测方式 (intensity 2)--version-all:尝试使用所有的probes进行侦测 (intensity 9)--version-trace:显示出详细的版本侦测过程信息 。脚本扫描接下来是脚本扫描相关的参数:
-sC: 相当于使用了 --script=default--script=<Lua scripts>: 传递指定脚本--script-args=<n1=v1,[n2=v2,...]>: 为脚本提供参数 。--script-args-file=filename: 在文件中提供NSE脚本参数 。--script-trace: 显示发送和接收的所有数据 。--script-updatedb: 更新脚本数据库 。--script-help=<Lua scripts>: 会显示一些脚本的说明 , 以便理解目标脚本可以起什么作用 。


推荐阅读