第三层网络扫描基于TCP/IP、ICMP协议。windows
优势:可路由、速度比较快网络
缺点:相对于二层网络扫描较慢,容易被边界防火墙过滤blog
全部扫描发现技术,都会有相应的对抗办法,因此不管是来自二层的网络扫描仍是来自三层的网络扫描,可能会存在误报和漏报的状况,因此不能绝对去不加以论证的方式去单纯相信扫描结果,但能够将扫描后的结果看成重要的参考。路由
例如:使用路由追踪的功能get
能够看到跳转到第八台设备之时,可能边界设备开启了屏蔽ICMP协议响应,因此这里没法显示相关信息。it
涉及协议概述:百度
ICMP协议:ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络自己的消息。请求
PING命令:使用了ICMP两种类型的数据包,其中ICMP的TYPE类型字段一共有0-15个定义,每种类型都表明了不一样的数据包类型,而PING命令则是使用了TYPE为8的类型的数据包,而接收到PING包的机器若是没有防火墙规则限制那么返回的则是ICMP的TYPE为0类型的数据包。防火墙
在此感谢来自百度百科的一张类型图。im
参数:
-d 使用Socket的SO_DEBUG功能。
-c <完成次数> 设置完成要求回应的次数。
-f 极限检测。
-i <间隔秒数> 指定收发信息的间隔时间。
-I <网络界面> 使用指定的网络界面送出数据包。
-l <前置载入> 设置在送出要求信息以前,先行发出的数据包。
-n 只输出数值。
-p <范本样式> 设置填满数据包的范本样式。
-q 不显示指令执行过程,开头和结尾的相关信息除外。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-R 记录路由过程。
-s <数据包大小> 设置数据包的大小。
-t <存活数值> 设置存活数值TTL的大小。
-v 详细显示指令的执行过程。
使用PING命令:
Linux下
windows下
在windows下的PING抓包分析
请求:
回应
Linux下的PING的抓包分析
请求
回应
分析得知:
1.根据请求的第一个包分析得之使用的是ICMP协议中的TYPE类型为8,CODE为0的数据包。
2.根据回应的第一个包分析得之使用的是ICMP协议中的TYPE类型为0,CODE为0的数据包。
使用PING对网络主机的发现方式:
1.使用脚本传入IP地址段,而后使用ping –c 检测存活主机。
2.使用scapy,组装IP包头和ICMP包头而后组合造成ping包faso可以出去。
实例化一个IP协议赋值给i,实例化一个ICMP协议赋值给p
将i、p组装成一个ping包,并将其实例化给ping
设定ping的IP包头的目的地地址
将组装好的ping包发送出去
查看所获得的回应,说明此主机存在于网络之中,若是主机不存在那么就不会获得响应。