Nmap参数—探索网络

发表于:2016-7-18 11:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:XLLL    来源:51Testing软件测试网采编

  Nmap端口状态
  · Open: Open状态说明Nmap确定该端口是开放的
  · Close: Close状态通常可以表明该端口是关闭的,但也有可能是防火墙识别了非法扫描而特地返回一个Close信号。但概率比较小。如果单纯的过滤并不会出现这个状态。
  · Filtered: Filtered状态一般来说是被防火墙屏蔽了,所以Nmap无法判断该端口是否开放。但是同样有可能是类似网络拥堵,所以可以尝试换个时段再试。
  · Unfiltered: 当使用ACK扫描时会出现的状态,也就是说这个端口并没有被防火墙过滤,即该端口可以访问,但是并不能确定该端口是否开放,涉及到的TCP知识在这不展开,有兴趣可以自己Google一下。
  · Open|Filtered: 该端口是开放的,但是的确被防火墙过滤了。若出现这种状态,可以试着换一种扫描方式。
  · Closed|Filtered: 无法确定端口是被过滤了还是端口是关闭的。出现在IPID Idle扫描
  扫描速度设置
  顾名思义,指定扫描的速度来达到某些目的.
  指令:
  · nmap T0 [target] 非常慢的扫描,用于IDS(入侵检测系统)逃避
  · nmap T1 [target] 缓慢的扫描,介于0和2之间的速度,同样可以躲开某些IDS
  · nmap T2 [target] 降低扫描速度,通常不用
  · nmap T3 [target] 默认扫描速度
  · nmap T4 [target] 快速扫描,可能会淹没目标,如果有防火墙很可能会触发
  · nmap T5 [target] 极速扫描,牺牲了准确度来换取速度.
  常用扫描
  指令:
  · nmap -p [port]|(1-9999) [target] 指定端口号(或端口号范围)扫描
  · nmap -F [target] 快速扫描默认端口,默认端口存在nmap-services中
  · nmap -r 顺序扫描(默认下nmap随机扫描端口号)
  · nmap --top-ports (n) 扫描出现概率最高的前n个端口
  TCP SYN扫描
  这个扫描方式很常用,它又被成为半开放扫描,速度非常快,同时不容易被防火墙所发现。因为它并不会进行TCP连接,而是发送一个SYN TCP请求,如果收到RST说明无法连接,如果收到了SYN/ACK说明主机存活,此时nmap不会尝试完成完整的三次握手,而是直接发送RST中断连接。
  指令: nmap -sS [target]
  TCP ACK扫描
  和TCP SYN类似,发送一个ACK TCP请求,但是无法判断端口是否开放,因为无论开放与否主机都会回复一个RST响应。但是如果不响应或者响应ICMP错误的端口则被认为是Filtered。
  指令: nmap -sA [target]
  TCP连接扫描
  最基础稳定的扫描方式,尝试TCP连接并且完成三次握手。与上面的SYN扫描相比速度会慢一点,并且有可能被防火墙或者系统日志记录下来。
  指令: nmap -sT [target]
  自定义TCP扫描
  可以通过指定开启TCP某些标志位来完成自定义的TCP扫描。挖个坑,等我看完TCP/IP回来填。
  指令: nmap --scanflags [Symbols] [target]
  其中符号可以是URG,ACK,PSH,RST,SYN,FIN的开头字母组合,顺序无关
  UDP 扫描
  尝试发送空的UDP报文,如果返回ICMP目标不可达则认为该端口关闭,如果无响应则认定是被过滤,响应了则判断目标端口是开放状态。因为UDP扫描会很慢,所以通常通过-p选项来指定端口。
  指令: nmap -sU -p [port list] [target]
  隐蔽扫描
  指令:
  · nmap -sN [target] Null扫描,发送非常规的TCP数据包,如果端口关闭则会响应RST,如果开放则不响应信息
  · nmap -sF [target] FIN扫描,与SYN扫描类似,将SYN替换为FIN
  · nmap -sX [target] 打开数据包的FIN,PSH和URG标志位,根据RFC793规定如果端口开放则响应RST标志包。如果系统不遵守RFC793那么无论开放或者关闭都会响应RST。
  空闲扫描
  空闲扫描是一个非常有意思的扫描方式,它可以有效的防止你被IDS记录。下面就展开来说明一下,最后给出一个参考的链接。
  先说理论基础:
  · 判断一个TCP端口是否开放其中一种方法就是向该端口发送一个TCP SYN数据包,若端口开放,则会返回一个SYN/ACK包,否则将会返回一个RST包。
  · 主机收到SYN/ACK后会返回一个RST包,收到的RST会被忽略
  · 互联网上每个IP数据包都有一个分段身份识别号(IP ID),许多操作系统只是简单的将识别号递增,所以分析最后一次IP ID 就可以发现僵尸主机已经发送了多少数据包。
  执行过程:
  · 首先向僵尸主机发送探测包来记录IP ID
  · 向需要扫描的主机发送一个伪造成僵尸主机IP的SYN包,此时被扫描的主机会向僵尸主机返回信息,若端口开放则会返回一个SYN/ACK,端口关闭会返回RST。
  · 再次探测僵尸主机的IP ID,如果增加数等于2那么说明僵尸主机和目标主机之间发生了通信,此时即可推断出该端口是开放的。如果等于1说明该端口是关闭的,因为只有我们的探测和僵尸主机发生了通信,如果大于2说明在该端口处还存在着其他通信。
  这样做的好处是可以利用IP之间的信任关系来进行探测,譬如数据库服务只对指定IP发出响应,那么此时我们就可以利用空闲扫描来完成端口的探测。
  指令: nmap -sI [zombie ip] [target ip]
  参考链接
  IP协议扫描
  这并不是一个端口扫描方式,严格来讲。因为它并不扫描TCP,UDP端口。而是扫描IP协议号。从而确定对方主机是支持哪些IP协议的。
  指令: nmap -sO [target]
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号