Nmap全参数学习笔记
目录
目标说明
-iL <inpputfilename> - 从列表中读取目标
可以指定一个文件读取,也可以用-代替文件名,通过标准输入读取目标
-iR <hostnum> - 随机选择目标
<hostnum>指定生成多少个IP
--exclude <host1[,host2][,host3],...> - 排除主机/网络
--exclude 192.168.1.1
--excludefile <excludefile> - 排除文件中的目标
主机发现
如果没有给出主机发现的选项,Nmap就发送一个TCP ACK报文到80端口和一个ICMP回声请求到每台机器
-sL - 列表扫描
仅仅列出指定网络上的每台主机,不发送任何报文到目标主机。默认下,Nmap仍对主机进行反向域名解析以获取目标主机的名字
-sP - Ping扫描
仅进行ping扫描(主机发现),不对端口或操作系统等进行扫描
默认情况下,发送一个ICMP回声请求和一个TCP报文到80端口,如果非管理员执行,就发送一个SYN报文到目标的80端口
-P0 - 无Ping
完全跳过Nmap发现阶段,通常在进行高强度的扫描时用它确定正在运行的机器
通常,Nmap只对正在运行的主机进行高强度的探测,-P0会把主机当作正在运行的主机进行扫描
-PS [portlist] - TCP SYN Ping
发送一个设置SYN标志位的空TCP报文,默认目的端口为80,可以指定一个以逗号分隔的端口列表
-PS22,23,80,8080,8088
- 这种情况下,每个端口都会被并发地扫描
SYN标志向目标发起连接建立请求,如果目标端口是关闭的,则回返回一个RST(复位)包,如果端口开放,目标会回应SYN/ACK TCP报文,然后Nmap会直接返回一个RST包,不返回ACK完成TCP三次握手
这里无论目标回应的是RST还是SYN/ACK都说明了目标主机存活
这里是使用-PS80指定80端口进行扫描的,但实际上Nmap也同样对一些常见端口进行了扫描
-PA [portlist] - TCP ACK Ping
类似-PS,只是发送TCP报文的标志位为ACK,ACK报文表示确认一个建立连接的尝试,但目标主机突然接收到ACK报文时并不能理解,因为它并没有向本机请求过建立TCP连接,此时,目标主机通常(没有特殊设置的情况下)会返回一个RST报文
在目标主机有防火墙的情况下,可以尝试交换使用-PA或-PS
-PU [portlist] - UDP Ping
发送一个空的(除非指定--data-length)UDP报文到给定的端口,不同版本Nmap默认端口不同,但通常都是大数字端口
如果目标机器的端口是关闭的,UDP探测应该马上得到一个ICMP端口不可达的回应报文,如果到达一个开放的端口,大部分服务仅仅忽略这个空报文而不做回应
可以穿透某些只过滤TCP的防火墙和过滤器
—PE;-PP;-PM - ICMP Ping Types
Nmap发送一个ICMP type8(回声请求)报文到目标IP地址,期待从运行的主机得到一个type 0(回声响应)报文,该报文容易被防火墙封锁,判断不够准确
而-PP和-PM分别为时间戳请求(type 13)和地址掩码请求(type 17)
-PR - ARP Ping
通常在扫描局域网时使用,在本地局域网中防火墙不会禁止ARP请求,在默认情况下,如果nmap发现目标主机就在它所在的局域网上,会进行ARP扫描。即使指定了不同的ping类型,如果不想使用,则可以指定--send-ip
当Nmap试图发送一个原始IP报文(如ICMP回声请求)时,操作系统必须确定对应目标IP的硬件地址(ARP)
ARP(地址解析协议)是根据IP地址获取物理地址的一个TCP/IP协议,其功能是:主机将ARP请求广播到峁上的所有主机,并接收返回消息,确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求直接查询ARP缓存。
-n
- 不用域名解析
不对nmap发现的活动IP进行反向域名解析
-R
- 为所有目标解析域名
对目标IP地址作反向域名解析
--system-dns
- 使用系统域名解析器
默认情况下,nmap通过主机上配置的域名服务器来解析域名,也可以使用该参数来指定使用系统自带的解析器(速度慢,一般不使用,系统解析器是用IPv6进行扫描)
端口扫描
Nmap共识别6个端口状态:
open - 开放的:该端口正在接收TCP连接或UDP报文
closed - 关闭的:nmap可以访问该端口,但没有应用程序监听该端口,也可能只是暂时没有程序监听
filtered - 被过滤的:无法确定端口是否开放(将Nmap的探测帧丢弃,不做任何响应,因此无法判断)
unfiltered - 未被过滤的:端口可以访问,但无法确定端口是否开放
open|filtered - 开放或被过滤的:如开放的端口不响应
closed|filtered - 关闭或被过滤的:不能确定端口是关闭还是被过滤的,只可以出现在IPID Idle扫描中
-sS - TCP SYN扫描
SYN扫描作为默认扫描选项,也被称为半开放扫描(不完成三次握手),速度快、不易被发现,可以应对任何兼容的TCP协议栈,可以明确可靠地区分open/closed/filtered状态
-sT - TCP connect()扫描
当SYN扫描不能用时,TCP connect()扫描就是默认的TCP扫描
Nmap会在每个扫描端口上完成三次握手,且花费时间比SYN扫描更长,且目标主机更容易记录下连接。在许多UNIX系统上的服务会在syslog留下记录
-sU - UDP扫描
可以和TCP扫描(如-sS)结合来同时检查两种协议
UDP扫描发送空的UDP报头到每个目标端口
如果返回ICMP端口不可达(类型3,代码3),则说明该端口是关闭的
其他的ICMP不可达(类型3,代码1,2,9,10,13)说明该端口被过滤。
响应UDP报文,则说明该端口是开放的
如果重试几次后还没有响应,则认为该端口为open|filtered
在使用UDP扫描时,最好使用-p参数指定端口进行扫描,因为速度会很慢,且会向目标发送大量的数据包
也可以使用--host-timeout跳过慢速的主机
-sN;-sF;-sX - TCP Null,FIN,Xmas扫描
Null扫描(-sN)
不设置任何标志位(tcp标志头是0)
FIN扫描(-sF)
只设置TCP FIN标志位
Xmax扫描(-sX)
设置FIN,PSH和URG标志位
如果目标系统遵循RFC,当端口关闭时,任何不包含SYN,RST或ACK位的报文会导致一个RST返回,而当端口开放时,应该没有任何响应
除了报文的标志位不同,这三种扫描在行为上完全一致,这些扫描能躲过一些无状态防火墙和报文过滤路由器,且甚至比SYN扫描还要隐秘一些
另外不遵循RFC 793标准的主机的响应会导致误判,且多数IDS可以发现这种扫描
-sA - TCP ACK扫描
这种扫描不能确定端口的open或open|filtered状态,通常用于发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的
ACK扫描报文只设置ACK标志位,当扫描未过滤的系统时,open和closed端口都会返回RST报文,Nmap将之标记为unfiltered,不响应的端口或者发送特定的ICMP错误消息(type3,code 1,2,3,9,10,13)的端口,标记为filtered
-sW
- TCP窗口扫描
窗口扫描方式与ACK扫描方式的原理几乎是一样的,它通过检查返回的RST报文的TCP窗口域判断目标端口是否是开放的
有时,开放端口用正数表示窗口大小,关闭端口的窗口大小为0,所以,当收到RST包时,根据TCP窗口的值是正数还是0来判断目标端口是开放还是关闭的
这种扫描方式依赖于少数的操作系统,如果系统不支持这种扫描,会发现所有的端口都是关闭的
-sM
- TCP Maimon扫描
这种扫描和Null,FIN及Xmas扫描完全一样,除了探测报文是FIN/ACK。
根据RFC 793(TCP),无论端口开放或者关闭,都应该对这样的探测响应RST报文,然后,如果端口开放,许多基于BSD的系统只是丢弃该探测报文
BSD系统是Unix的衍生系统,多用于政府机构
--scanflags - 定制的TCP扫描
该参数可以指定TCP Flags标志位,选项可以是一个数字标记值,但使用字符名更容易一些,只要是URG,ACK,PSH,RST,SYN,FIN的任何组合就行
标志位的顺序不重要,且标志位之间没有空格
-sl <zombie host[:probeport]>
- Idlescan(空闲扫描)
空闲扫描是Nmap的高级用法,允许进行端口完全欺骗扫描,可以使攻击者能够不使用自己的IP向目标主机发送数据包,它可以利用不活跃的僵尸主机反弹给攻击者一个旁通信道,从而进行端口扫描。
IDS会把不活跃的僵尸主机当作攻击者
-sO
- IP协议扫描
该选项会确定目标端口的协议类型,IP协议扫描可以帮助用户确定目标主机哪些是支持IP协议的,如TCP,ICMP,IGMP
虽然它遍历的是IP协议号而不是TCP或UDP端口,但也可以使用—p选项选择要扫描的协议号
协议扫描关注的不是ICMP端口不可达,而是ICMP协议不可达的消息
Nmap从目标主机接收到任何协议的响应,就会把那个协议标记为open。ICMP不可达错误(type3,code2)则标记为closed,其他不可达协议会标记为Filtered,如果一接受不到响应,Nmap会标记为Open|Filtered
-b
<ftp relay host> - FTP弹跳扫描
FTP协议中支持代理FTP连接,允许用户连接到一台FTP服务器,然后要求文件送到一台第三方服务器,但这种扫描方式已经很少被支持了,可以尝试用于躲避防火墙。
端口说明和扫描顺序
默认情况下,Nmap用指定的协议对端口1到1024以及nmap-services文件中列出的更高端口进行扫描
-p <port ranges> - 只扫描指定的端口
如-p 1-1024
-p U:53,111,125 - 扫描指定UDP端口
-F - 快速扫描
只扫描nmap-services文件中指定的端口,也可以使用--datadir指定自己定制的nmap-services文件
-r - 不按随机顺序扫描端口
默认情况下,Nmap按随机顺序扫描端口
服务和版本探测
-sV - 版本探测
打开版本探测,也可以用-A同时打开操作系统探测和版本探测
假如目标主机上存在的服务版本较旧,可以尝试利用旧版本服务中存在的漏洞进行攻击
不过-sV和-A选项获得的结果也是绝对准确的
--allports
- 不为版本探测排除任何端口
--version-intensity <intensity>
- 设置版本扫描强度
当进行版本扫描时,nmap发送一系列探测报文,每个报文都被赋予一个1-9之间的值,数值越大,服务越有可能被正确识别,同时花费时间更长,默认值为7
--version-light
- 打开轻量级模式
轻量级模式使版本扫描快许多,但识别服务的可能性也小一些,对应的--version-intensity 2强度
--version-all
- 尝试每个探测
保证对每个端口尝试每个探测报文,对应--version-intensity 9强度
--version-trace
- 跟踪版本扫描活动
Nmap将打印出详细的关于正在进行的扫描的调试信息
-sR
- RPC扫描
该选项多用于与其他端口扫描选项结合使用,对所有被发现为开放的TCP/UDP端口执行SunRPC程序NULL命令,来试图确定它们是否为RPC端口,如果是,则返回程序和版本号
操作系统探测
-O - 开启操作系统检测
--osscan-limit
- 针对指定的目标进行操作系统检测
Nmap对已经发现打开或关闭端口的主机进行操作系统检测时会更有效,使用该参数后,Nmap只对满足了条件(发现打开或关闭的端口)的主机进行操作系统检测
特别是在使用-P0扫描多个主机时
该选项仅在-O或-A的检测时起作用
--osscan-guess;--fuzzy
- 推测操作系统检测结果
当Nmap无法确定所检测的操作系统时,会从最接近的数据中取值,使用该参数可以提高推测的准确度
时间和性能
--min-hostgroup;--max-hostgroup
- 调整并行扫描组的大小
Nmap会将多个目标IP地址分成组,然后在同一时间对一个组进行扫描,只有当整个组扫描结束后才会提供主机的扫描结果
默认情况下,Nmap在进行扫描时,首先开始扫描较小的组,最小为5,随后慢慢增长组的大小,最大为1024
为保证效率,Nmap会针对UDP或少量端口的TCP扫描
--max-hostgroup用于指定使用最大的组
--min-hostgroup用于指定最小的组
--min-parallelism;--max-parallelism
- 调整探测报文的并行度
默认情况下,Nmap会根据网络性能计算出一个理想的并行度,默认状态下,当网络不可靠时,理想的并行度可能为1,在好的条件下,可能会增长至几百
--min-parallelism大于1以加快性能不佳的主机或网络的扫描,这个值过高会影响度,也会降低Nmap动态控制并行度的能力
--max-parallelism通常设为1,以防止Nmap在同一时间向主机发送多个探测报文
--min-rtt-timeou;--max-rtt-timeout;--initial-rtt-timeout - 调整探测报文超时
这些选项以毫秒为单位,需要在数字后加上单位ms
--max-rtt-timeout为100毫秒比较合适,一般不超过1000,使用较小的值,使--initial-rtt-timeout值大于默认值可以减少扫描时间
--host-timeout - 放弃低速目标主机
设置一个超时时间(毫秒),超过则放弃对该目标主机的扫描
--scan-delay;--max-scan-delay - 调整探测报文的时间间隔
该选项用于控制发送探测报文的时间间隔,让Nmap处于低速运行状态
--scan-delay的另一个用途是躲避基于阈值的入侵检测和预防系统(IDS/IPS)
-T - 设置时间模板
分别有6个时间模拟,使用时采用-T加数字0-5
paranoid(0),sneaky(1),polite(2),normal(3),aggressive(4),insane(5)
0-1用于IDS躲避
2降低了扫描速度以减少带宽和目标主机资源
3为默认值
4加速扫描
5更多的加速扫描,可能会牺牲一部分准确性
防火墙/IDS逃逸
-f - 报文分段
-f选项会将TCP头分段在几个包中,使得包过滤器、IDS以及其他工具的检测更加困难
一些主机会禁止相应ICMP请求,对于这种情况就可以使用报文分段的方法来逃避目标防火墙的规则
--mtu
- 指定偏移大小
MTU - Maximum Transmission Unit(最大传输单元)
此值设定TCP/IP协议传输数据报时的最大传输单元,使用指定的MTU可以达到逃逸防火墙/IDS的目的,需要注意的是偏移量必须是8的倍数
-D - IP欺骗
对目标进行扫描时,会让目标主机误认为是在利用诱饵进行扫描,而不是一个真实的扫描,但这种方式可以通过路由跟踪、响应丢弃及其它主动机制解决
可以使用逗号对每个诱饵主机进行分割,也在最后使用ME选项指定自己的真实IP(如果不指定,nmap会将真实IP放在一个随机的位置)
可以指定多个IP地址,或者使用RND随机生成几个地址
诱饵主机必须处于工作状态,否则会导致目标主机的SYN洪水攻击
诱饵可用在初始的ping扫描(ICMP,SYN,ACK)阶段或真正的端口扫描阶段,也可以用于远程操作系统检测,在进行版本检测或TCP连接扫描的时候诱饵是无效的
namp -D RND:10 192.168.1.11
-S - 源地址欺骗
指定一个IP地址进行欺骗性的扫描,-e选项常在这种情况下使用,也可以使用-P0选项
-e - 使用指定的接口
指定用于接收和发送报文的网卡接口
--source-port;-g - 源端口欺骗
指定一个端口号,Nmap从指定的端口中发送数据,因为防火墙对服务器的设置会根据端口选择是否信任数据流
--data-length - 发送报文时附加随机数据
正常情况下,Nmap发送最小的报文,只含一个包头,因为TCP包通常是40字节,ICMP ECHO请求只有28字节
该选项可以在发送报文时附加指定数量的随机字节,操作系统检测包不受影响,但大部分的ping和端口扫描受影响,会使处理变慢
--ttl - 设置IP time-to-live域
TTL是IP数据包在计算机网络中可以转发的最大跳数,TTL字段由IP数据包的发送者设置,每经过一个路由,TTL值减1,如果IP包在到达目的IP之前,TTL值为0,路由器将丢弃这个IP包,并向IP包的发送者发送ICMP time exceeded消息
--randomize-hosts - 对目标主机的顺序随机排列
在扫描主机前对每个组中的主机随机排列,最多可达8096个主机
--spoof-mac <mac address,prefix,or vendor name> - MAC地址欺骗
要求Nmap在发送原以太网帧时使用指定的MAC地址,使用字符串0代替MAC地址将会随机分配一个MAC地址,也可以自己指定一个MAC地址(最好是真实存在的)
nmap - sT -PN --spoof-mac 0 192.168.1.11
输出
-oN - 标准输出
将标准输出直接写入指定文件
-oX - XML输出
-oS - 133t输出
-oG - Grep输出
-oA - 输出至所有格式
以标准格式、XML格式和Grep格式一次性输出,分别存放不同的文件中
-v - 提高输出信息的详细度
该选项使用两次会提供更详细的信息,最多可使用两次
-d - 提高或设置调试级别
最高为-d9,使用后可以得到更多的调试信息
--packet-trace - 跟踪发送和接收的报文
打印发送和接收的每个报文的摘要,通常用于调试和学习理解
--iflist - 列举接口和路由
列出Nmap检测到的接口列表和系统路由,用于调试路由问题或设备描述失误
--append-output - 在输出文件中追加
将输出内容追加进文件中,默认是覆盖内容
--resume - 继续中断的扫描
--stylesheet - 设置XSL样式表,转换XML输出
--no-stylesheet - 忽略XML声明的XSL样式表
其它选项
-6 - 启用IPv6扫描
-A - 激烈扫描模式
启用额外的高级和高强度选项(-O,-sV)
--datadir - 说明用户Nmap数据文件位置
--send-eth - 使用原以太帧发送
要求Nmap在数据链路层而不是网络层发送报文
--send-ip - 在原IP层发送
--privileged - 假定用户具有全部权限
--interactive - 在交互模式中启动
-V;--version - 打印版本信息
-h;--help - 帮助信息
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfkkfge
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24