Nmap的常用参数介绍以及常用扫描技巧
Nmap的功能参数分为以下几个大类
1、 目标说明
2、 主机发现
3、 端口扫描
4、 端口说明和扫描顺序
5、 服务与版本探测
6、 脚本扫描
7、 操作系统探测
8、 时间和性能
9、 防火墙/IDS规避和欺骗
10、输出选项
常用参数介绍
1、 TARGET SPECIFICATION 目标说明
-iL 从主机地址列表文件中导入扫描地址(批量扫描,可自己创建地址列表文件)
-iR 随机选择目标进行扫描,num hosts表示数目,设置为0则无休止扫描
–exclude 排除某个主机地址
–excludefile 排除主机地址列表文件中的地址
2、 HOST DISCOVERY 主机发现
-sL 列表扫描,仅将指定的目标IP列举出来,不进行主机发现
-sn 和-sP一样,只利用ping扫描进行主机发现,不扫描目标主机的端口
-Pn 将所有指定的主机视为已开启状态,跳过主机发现过程
-PS TCP SYN ping,发送一个设置了SYN标志位的空TCP报文,默认端口为80,也可指定端口
-PA TCP ACK ping,发送一个设置了ACK标志位的空TCP报文,默认端口为80,也可指定端口
-PU UDP ping,发送一个空的UDP报文到指定端口,可穿透只过滤TCP的防火墙
-P0 使用IP协议ping
-PR 使用ARP ping
-n/-R -n不用域名解析,加速扫描,-R为目标IP做反向域名解析,扫描慢一些
-dns-servers 自定义域名解析服务器地址
-traceroute 目标主机路由追踪
3、SCAN TECHNIQUES 端口扫描
Nmap将目标端口分为6种状态:
-open(开放的)
-closed(关闭的)
-filtered(被过滤的)
-unfiltered(未被过滤)可访问但不确定开放情况
-open|filtered(开放或者被过滤)无法确定端口是开放还是被过滤的
-closed|filtered(关闭或者被过滤)无法确定端口是关闭还是被过滤的
Nmap产生结果是基于目标机器的响应报文的,而这些主机可能是不可信任的,会产生迷惑或者误导Nmap的报文
-sS TCP SYN扫描,半开放扫描,速度快隐蔽性好(不完成TCP连接),能够明确区分端口状态
-sT TCP连接扫描,容易产生记录,效率低(不推荐)
-sA TCP ACK扫描,只设置ACK标志位,区别被过滤与未被过滤的
-sU UDP服务扫描,例如DNS/DHCP等,效率低
4、 PORT SPECIFICATION AND SCAN ORDER 端口说明和扫描顺序
-p 指定扫描的端口,可以是单个端口,也可以是端口范围,可以指定UDP或TCP协议扫描特定端口
-p 指定扫描的协议,例如-p http即可扫描http协议的端口状态
–exclude-ports 排除指定端口不扫描
-F 快速模式,仅扫描100个常用端口
5、SERVICE/VERSION DETECTION 服务与版本探测
Nmap-services 包含大量服务的数据库,Nmap通过查询该数据库可以报告哪些端口可能对应于什么服务,但不一定正确
-sV 进行服务版本探测
–version-intensity 设置版本扫描强度,范围为0-9 默认是7,强度越高,时间越长,服务越可能被正确识别
6、SCRIPT SCAN 脚本扫描
允许用户自己编写脚本来执行自动化的操作或者扩展Nmap的功能,使用Lua脚本语言。
-sC 使用默认类别的脚本进行扫描
–script= 使用某个或某类脚本进行扫描;支持通配符描述
7、OS DETECTION 操作系统探测
用TCP/IP协议栈fingerprinting进行探测,Nmap发送一系列TCP和UDP报文到远程主机,检查响应中的每一个比特。测试后Nmap把结果和数据库中超过1500个一直的fingerprints比较,如匹配则输出结果。
-O 启用操作系统探测
-A 同时启用操作系统探测和服务版本探测
–osscan-limit 针对指定的目标进行操作系统检测
–osscan-guess 当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配
8、TIMING AND PERFORMANCE 时间和性能
Nmap开发的最高优先级是性能,但实际应用中很多因素会增加扫描时间,比如特定的扫描选项,防火墙配置以及版本扫描等。
-T<0-5> 设置时间模块级数,在0-5中选择。T0、T1用于IDS规避,T2降低了扫描速度以使用更少的带宽和资源。默认为T3,未做任何优化。T4假设具有合适及可靠的网络从而加速扫描。T5假设具有特别快的网络或者愿为速度牺牲准确性
-host-timeout
9、FIREWALL/IDS EVASION AND SPOOFING 防火墙/IDS规避和欺骗
-f(报文分段);–mtu(使用指定的MTU)将TCP头分段在几个包中,使得包过滤器、IDS以及其他工具的检测更加困难
-D <decoy1,deoy2[,ME]…>隐蔽扫描;使用逗号分隔每个诱饵主机,用自己的真实IP作为诱饵使用ME选项。如在6号或更后的位置使用ME选项,一些检测器就不报告真实IP。如不适用ME,真实IP将随机放置
-S <IP_Address> 伪造数据包的源地址
-source-port/-g 伪造源端口
- OUTPUT 输出选项
-oN 标准输出
-oX XML输出写入指定的文件
-oS 脚本小子输出,类似于交互工具输出
-oG Grep输出
-oA 输出至所有格式
-v 提高输出信息的详细度
-resume 继续中断的扫描
Nmap常用扫描技巧
- 扫描单一目标主机
nmap 192.168.0.1
nmap secbug.com
(默认发送一个ARP的ping包,扫描1-10000范围以内开放端口) - 扫描整个子网
nmap 192.168.0.1/24 - 扫描多个目标
Nmap 192.168.0.1 secbug.com - 扫描一个范围内的目标
Nmap 192.168.0.1-200 - 导入IP列表进行扫描
nmap –iL ip.txt(要求在Nmap目录) - 列举目标地址,但不进行扫描
Nmap –sL 192.168.0.1/24 - 排除某IP进行扫描
Nmap 192.168.0.1/24 –exclude 192.168.0.1
Nmap 192.168.0.1/24 –exclude file ip.txt - 扫描特定主机的特定端口
nmap –p80,21,8080,135 192.168.0.1
nmap –p50-900 192.168.0.1 - 简单扫描,详细输出返回结果
nmap –vv 192.168.0.1 - 简单扫描并进行路由跟踪
nmap –traceroute baidu.com - ping扫描,不扫描端口(需要root权限)
nmap –sP 192.168.0.1
nmap –sN 192.168.0.1 - 探测操作系统类型
nmap –O 192.168.0.1 - Nmap万能开关-A参数
nmap –A 192.168.0.1
-A包含1-10000端口的ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测 - 混合命令扫描
nmap –vv –p1-1000 –O 192.168.0.1/24 –exculde 192.168.0.1 - 半开放TCP SYN端口扫描
nmap –sS 192.168.0.1 - 扫描UDP服务端口
nmap –sU 192.168.0.1 - TCP连接扫描端口
nmap –sT 192.168.0.1 - 服务版本探测
nmap –sV 192.168.0.1
新手上路 欢迎各位大佬指正