基于icmp协议和广播协议的洪水ping实验.ppt
24页实验五 基于ICMP协议和广播的洪水Ping编程qPing命令及Ping to Death攻击q洪水Ping攻击的基本原理q洪水Ping攻击程序分析1实验五 基于ICMP协议和广播协议的洪水Ping编程1、Ping命令及Ping to Death攻击1) Ping命令格式:ping 192.168.0.101 –l 10242) Ping to Death攻击的原理2实验五 基于ICMP协议和广播协议的洪水Ping编程2、洪水Ping攻击的基本原理——大量用户同一时间发送Ping命令到 同一台主机,导致服务器变慢,甚至瘫痪——用最少的资源换取被攻击者最大的 消耗——怎样才能以最小的代价换取对方最 大的牺牲呢?3实验五 基于ICMP协议和广播协议的洪水Ping编程2、洪水Ping攻击的基本原理1)正常情况下的Ping 流程 主机A 主机B ICMP请求报文(类型=8,回显请求) ICMP应答报文(类型=0,回显应答) 4实验五 基于ICMP协议和广播协议的洪水Ping编程2、洪水Ping攻击的基本原理主机A 主机B 伪装成主机C发送ICMP回显请求报文错误的向主机C发送ICMP回显应答报文主机C1)攻击者发送了一个攻击数据包给主机B,造成了 对主机B和C的同时攻击,攻击效果放大了一倍。
2)隐藏了攻击主机A的地址,在攻击过程中没有留 下攻击者的痕迹 5实验五 基于ICMP协议和广播协议的洪水Ping编程3、洪水Ping攻击程序分析 1)setsockopt函数解析 用于任意类型、任意状态套接口的选项设置 int setsockopt ( SOCKET s, int level, int optname, const char FAR * optval, int optlen ); 61)setsockopt函数解析 int setsockopt ( SOCKET s, int level, int optname, const char FAR * optval, int optlen ); s——需要改变选项设置的套接字; level——指定控制套接字的层次SOL_SOCKET:通用套接字选项;IPPROTO_IP:IP选项;IPPROTO_TCP:TCP选项 optname——套接字选项的名称 71)setsockopt函数解析81)setsockopt函数解析91)setsockopt函数解析 int setsockopt ( SOCKET s, int level, int optname, const char FAR * optval, int optlen ); optval——一个指针。
q对于布尔类型的选项,如果选项设置为 TRUE,optval指向非零整型数;如果选项设 置为FALSE,optval指向一个等于零的整型数 这时,optlen =sizeof(int)q对于其他选项,optval指向那个存储整型 或结构的内存地址,optlen是整型、结构的 长度 102)Sleep函数挂起当前正在执行的线程,等待一段 时间后(单位是千分之一秒 ),例如:Sleep(800); 11实验五 基于ICMP协议和广播协议的洪水Ping编程3、洪水Ping攻击程序分析 3)程序分析①文件头123)程序分析②常量及结构定义 133)程序分析 ②常量及结构定义 143)程序分析 ③ 定义ICMP校验和计算的子函数 15④ 主程序 命令格式: FloodPing.exe FakeSourceIp DestinationIp [PacketSize] 例如:FloodPing.exe 192.168.15.23 192.168.15.255 6400 16④ 主程序 检查输入参数17④ 主程序 将命令行输入的参数保存在相应的变量中 18④ 主程序 调用注册函数,创建一个原始套接口 19④ 主程序 调用setsockopt函数,改变套接口选项设置 20④ 主程序 填写目标地址结构,构造IP报头、ICMP数据包 ,并放入缓冲区SendBuf 21④ 主程序 填写目标地址结构,构造IP报头、ICMP数据包 ,并放入缓冲区SendBuf 22④ 主程序 计算数据包校验和,填写数据包总长度,使用 无限循环,重复发送数据包 23实验五 基于ICMP协议和广播协议的洪水Ping编程3、洪水Ping攻击程序分析 ①程序只能运行在Windows2000下,WinXP 不支持伪造IP地址发送数据包。
②部分微软的系统可能不会回应发到广播地 址的ICMP回显请求数据包 ③在Windows2000下测试这个程序,用 Sniffer可以观察到伪造的IP数据包发送情况 ④了解如何使用原始套接口,如何构造和发 送自己的IP数据包。





