网络安全-主动信息收集篇第二章-三层网络发现之ping
第三层网络扫描基于TCP/IP、ICMP协议。
优点:可路由、速度比较快
缺点:相对于二层网络扫描较慢,容易被边界防火墙过滤
所有扫描发现技术,都会有相应的对抗办法,所以无论是来自二层的网络扫描还是来自三层的网络扫描,可能会存在误报和漏报的情况,所以不能绝对去不加以论证的方式去单纯相信扫描结果,但可以将扫描后的结果当作重要的参考。
例如:使用路由追踪的功能
可以看到跳转到第八台设备之时,可能边界设备开启了屏蔽ICMP协议响应,所以这里无法显示相关信息。
涉及协议概述:
ICMP协议:ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
PING命令:使用了ICMP两种类型的数据包,其中ICMP的TYPE类型字段一共有0-15个定义,每种类型都代表了不同的数据包类型,而PING命令则是使用了TYPE为8的类型的数据包,而接收到PING包的机器如果没有防火墙规则限制那么返回的则是ICMP的TYPE为0类型的数据包。
在此感谢来自百度百科的一张类型图。
参数:
-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包发送出去
查看所得到的回应,说明此主机存在于网络之中,如果主机不存在那么就不会得到响应。