Nmap备忘单:从探索到漏洞利用 第二章 MITM

这是我们的第二期NMAP备忘单,基本上,我们将讨论一些高级NMAP扫描的技术,我们将进行一个中间人攻击(MITM)。现在,游戏开始了

这是我们的第二期NMAP备忘单()。基本上,我们将讨论一些高级NMAP扫描的技术,我们将进行一个中间人攻击(MITM)。现在,游戏开始了。

TCP SYN扫描

SYN扫描是默认的且最流行的扫描选项是有一定原因的。它可以在不受防火墙限制的高速网络每秒扫描数千个端口 。同时也是相对不显眼的和隐蔽的,因为它永远不会完成TCP连接。

命令:NMAP -sS 目标

图片34.png-600

TCP连接扫描 

当SYN扫描不可用的时候,TCP连接扫描是默认的TCP扫描类型。这是在用户不具有发送RAW数据包的特权的情况下。不是像大多数其他扫描器那样写原始数据包,NMAP要求底层的操作系统通过发出连接系统调用来建立与目标机和端口的连接。

命令:NMAP -sT 目标

图片35.png-600

UDP扫描

虽然互联网上最流行的服务运行在TCP协议,但UDP服务也是广泛部署的。DNS,SNMP和DHCP(注册端口53,161/162,和67/68)这三种最常见的UDP服务。因为UDP扫描通常比TCP慢和更加困难,一些安全审计员忽略这些端口。这是一个错误,因为UDP服务是相当普遍,攻击者也不会忽略整个协议。

命令:NMAP -sU 目标

图片36.png-600

选项-data-length可以用来固定长度的随机有效载荷发送到每一个端口或(如果指定0值)来禁用有效载荷。如果返回一个ICMP端口不可达错误(类型3,代码3),那么端口是关闭的。其他ICMP不可达错误(类型3,编码1,2,9,10或13)标记端口过滤。有时服务会返回一个UDP包响应以证明它是开放的。如果重发后没有收到回应,端口被列为开放或者过滤。

命令:NMAP -sU–data-length=value 目标

图片37.png-600

SCTP INIT扫描

SCTP是对TCP和UDP协议的相对较新的替代方案,结合TCP和UDP最具特色的部分,同时也增加了新的功能,如多宿主和多流。它主要被用于SS7 / SIGTRAN相关的服务,但有可能被用于其他用途。 SCTP INIT扫描SCTP相当于TCP SYN扫描。它可以在不受防火墙限制的高速网络每秒扫描数千个端口。像SYN扫描,扫描INIT相对不显眼的和隐蔽的,因为它永远不会完成SCTP连接。

命令:NMAP -sY 目标

图片38.png-600

TCP NULL、FIN和Xmas扫描

· NULL扫描(-sN)

  不设置任何位(TCP标志标头是0)。

 · FIN扫描(-sF)

  设置只是TCP FIN位。

 · Xmas扫描(-sX)

  设置FIN,PSH,URG和标志。

图片39.png-600

TCP ACK扫描

这种扫描跟其他方式不同的地方是因为它没有判断端口的开放情况。它是用来绘制出防火墙规则,对哪些端口进行了保护。

命令:NMAP -scanflags=value -sA target

图片40.png-600

该ACK扫描探测报文只具有ACK标志设置(除非您使用-scanflags)。当扫描未经过系统过滤,打开和关闭的端口都将返回一个RST包。 NMAP然后把它们标记为未过滤的,这意味着它们是ACK包可达的。

TCP窗口扫描

窗口扫描跟ACK扫描是几乎一样的,除了它利用某些系统的实现细节来区分端口的,而不是当返回一个RST时总是认为端口未经过滤。

命令:NMAP -sW 目标

图片41.png-600

TCP Maimon 扫描

Maimon 扫描的名字来源于它的发现者,Uriel Maimon。他在Phrack杂志问题#49(1996年11月)中描述的技术。这种技术与NULL,FIN和Xmas扫描类似,唯一的不同之处在于探针是FIN/ ACK。

命令:NMAP -sM 目标

图片42.png-600

自定义的TCP扫描使用-scanflag选项

对于渗透测试,一个渗透测试人员不会使用一般的TCP扫描比如ACK、FIN等,因为这些东西可以被IDS / IPS阻断。因此他们将通过指定“-scanflag”选项使用一些不同的技术。这也可以用于绕过防火墙。

该-scanflags的参数可以是一个数字标记值如9(PSH和FIN),但使用符号名称更容易。只是URG,ACK,PSH,RST,SYN和FIN的任意组合。例如,-scanflags URGACKPSHRSTSYNFIN所有设置,虽然扫描时不是非常有用的。

命令:NMAP –scanflags 目标

图片43.png-600

SCTP COOKIE ECHO扫描

SCTP COOKIE ECHO扫描是一种更先进的SCTP扫描。SCTP会默认丢弃开放端口返回的包含COOKIE ECHO数据包块,但如果端口关闭则发送中止。这种扫描方式优点是,它并不像INIT扫描一样明显。除此之外,无状态防火墙会阻断INIT块而不是COOKIE ECHO块。但一个优秀的IDS仍能够探测到SCTP COOKIE ECHO扫描SCTP COOKIE ECHO扫描的缺点是无法区分开放和过滤的端口。

命令:NMAP -sZ 目标

图片44.png-600

TCP空闲扫描

这种先进的扫描方法允许对目标进行一个真正的盲目TCP端口扫描(即没有数据包从你的真实IP地址发送到目标)。相反独特的侧信道攻击利用僵尸主机上可预测的IP分段ID序列生成来收集关于目标的开放端口的信息。IDS系统只会显示扫描是从您指定的僵尸机发起。这在进行MITM(中间人攻击)非常有用的。

命令:NMAP -sI zombie 目标

图片45.png-600

这里简单介绍下空闲的原理:

1、向僵尸主机发送SYN/ACK数据包,获得带有分片ID(IPID)的RST报文。 

2、发送使用僵尸主机IP地址的伪数据包给目标主机。 如果目标主机端口关闭,就会向僵尸主机响应RST报文。如果目标端口开放,目标主机向僵尸主机响应SYN/ACK报文,僵尸主机发现这个非法连接响应,并向目标主机发送RST报文,此时IPID号开始增长。 

3、通过向僵尸主机发送另一个SYN/ACK报文以退出上述循环并检查僵尸主机RST报文中的IPID是否每次增长2,同时目标主机的RST每次增长1。 重复上述步骤直到检测完所有的端口。

接下来是进行空闲扫描的步骤:

1、寻找合适的僵尸主机

一个常见的方法就是在NMAP下执行Ping扫描一些网络。你可以选择NMAP提供的随机IP选项(-iR),但是这很有可能造成与Zombie主机之间的大量延迟。

在Zombie主机候选列表中执行一个端口扫描以及操作系统识别(-o)比简单的使用Ping命令筛选更容易找寻到合适的。只要启动了详细模式(-v),操作系统检测通常会确定IP ID增长方法,然后返回“IP ID Sequence Generation: Incremental”。如果这个类型被作为增长或是破损的低字节序增长量,那么该机是不错的僵尸主机备选。

还有一种方法是对运行ipidseq  NSE脚本。该脚本探测一台主机的IP ID生成方法并进行分类,然后就像操作系统检测一样输出IP ID分级。

命令:NMAP --script ipidseq [ --script-args probeport=port] 目标

图片46.png-600赞(0) 打赏

未经允许不得转载:0133技术站首页 » 工具使用