ICMP拒绝服务攻击(原始套接字系列四)
拒绝服务攻击(DoS)企图通过使被攻击的计算机资源消耗殆尽从而不能再提供服务,拒绝服务攻击是最容易实施的攻击行为。中美黑客大战中的中国黑客一般对美进行的就是拒绝服务攻击,其技术手段大多不够高明。
ICMP实现拒绝服务攻击的途径有二:一者"单刀直入",一者"借刀杀人"。具体过程分析如下:
ICMP FLOOD攻击
大量的 ICMP消息发送给目标系统,使得它不能够对合法的服务请求做出响应。中美黑客大战中的多数中国黑客采用的正是此项技术。ICMP FLOOD攻击实际上是一种两败俱伤的攻击方式,在主机"疯狂"地向攻击目标发送ICMP消息的时候,主机也在消耗自身的系统资源。如果自身的网络资源小于目标的话,这种攻击就是"蚍蜉撼大树"。因此,ICMP FLOOD攻击为了达到很好的效果,往往要联合多台机器同时攻击同一台机器,从而形成分布式拒绝服务攻击(DDoS)。
调用下面的程序可实现ICMP Flood攻击:
int icmpFlood(int PacketSize, char *DestIp, int type, int code) if (type > 16) if ((ErrorCode = WSAStartup(MAKEWORD(2, 1), &wsaData)) != 0) if ((SockRaw = WSASocket(AF_INET, SOCK_RAW, IPPROTO_ICMP, NULL, 0,WSA_FLAG_OVERLAPPED)) == INVALID_SOCKET) ErrorCode = setsockopt(SockRaw, SOL_SOCKET, SO_SNDTIMEO, (char*) &TimeOut,sizeof(TimeOut)); printf("Starting...\n\n"); icmp_header.i_type = type; datasize = sizeof(icmp_header) + PacketSize; while (1) if (SockRaw != INVALID_SOCKET) ICMP SMURF 攻击者向许多地址发送ICMP Echo Request,但是它却告诉这些地址ICMP Echo Request不是它自己发的,而是"某某"发的,这个"某某"就会成为"众矢之的"。通过伪装目的主机的IP地址,向多个IP 网络的广播地址发送ICMP Echo Request数据包,使得目的主机需要消耗大量CPU 资源和有效带宽来处理来自众多节点的ICMP Reply数据包。该攻击的原理如下图: 从图中可以看出,带宽仅为128Kbps的攻击者可以击溃带宽比其更大(512Kbps)的目标,因为ICMP SMURF采用的手段是"借刀杀人"!它本身并不向目标发送ICMP消息,而是向许多远程主机"诬告"攻击目标向他们发送了ICMP Echo,于是这些远程主机纷纷向攻击目标发送ICMP Reply,导致攻击目标崩溃。有明一代名将袁崇焕督师就是因为满人的反间计而被崇祯凌迟,并被当时的北京市民争其肉而食的。网络攻击中的"借刀杀人"照样威力无穷。 一个实现ICMP SMURF的程序框架如下:
其中调用的smurf()函数为:
|
转载于:https://www.cnblogs.com/happy-pm/p/3809466.html
ICMP拒绝服务攻击(原始套接字系列四)相关推荐
- 002.ICMP--拼接ICMP包,实现简单Ping程序(原始套接字)
一.大致流程: 将ICMP头和时间数据设置好后,通过创建好的原始套接字socket发出去.目的主机计算效验和后会将数据原样返回,用当前时间和返回的数据结算时间差,计算出rtt. 二.数据结构: ICM ...
- 利用ICMP协议,使用python原始套接字实现主机存活探测工具
一.课题概述. 一学期一次的课程设计终于开始了(停课两周,马上放寒假了,哈哈哈哈哈哈...)这次我们课程设计的科目是计算机协议,我们小组抽到的题目是利用ICMP模仿ping命令写一个主机存活探测的工具 ...
- 【Linux网络编程】原始套接字能干什么?
通常情况下程序员接所接触到的套接字(Socket)为两类: (1)流式套接字(SOCK_STREAM):一种面向连接的 Socket,针对于面向连接的TCP 服务应用: (2)数据报式套接字(SOCK ...
- 原始套接字编程——Teardrop
文章目录 一.介绍套接字 二.著名的Teardrop 三.伪造虚假地址的IP包 四.在Ubuntu下使用Wireshark抓包进行验证 五.总结 六.参考资料 一.介绍套接字 流套接字(SOCK_ST ...
- 【LWIP】原始套接字(SOCK_RAW)
收录于: [LWIP]LWIP协议|相关知识汇总|LWIP学习笔记 通常情况下我们接触到的套接字为两类: (1)字节流套接字(SOCK_STREAM):面向连接的socket套接字,用于TCP服务应用 ...
- 第13章 原始套接字
对于: 发送一个自定义的IP包. 发送ICMP数据报. 网卡的侦听模式,监听网络上的数据包. 伪装IP地址. 自定义协议的实现. 要解决这些问题,需要原始套接字.原始套接字主要应用在底层网络编程上. ...
- Windows平台的原始套接字编程的知识点概要(备忘)
其实从大学学习了C语言后,翻看整本教材只有C语言的语法,根本没有网络编程相关的任何内容,现在回想起来,都记不起自己何时在哪本书上学习了套接字编程,说起TCP.UDP,能知道他们的区别,相关的编程的&q ...
- Linux网络编程——原始套接字能干什么?
一.知识回顾: 通常情况下程序员接所接触到的套接字(Socket)为两类: (1)流式套接字(SOCK_STREAM):一种面向连接的 Socket,针对于面向连接的TCP 服务应用: (2)数据报式 ...
- 原始套接字-SOCK_RAW
原始套接字 简介 套接口最常用的两种类型:SOCK_STREAM和SOCK_DGRAM. SOCK_STREAM: 流式套接口,传输的是字节流,每次传输的数据没有边界,它是面向连接的,底层使用TCP协 ...
最新文章
- Spring Cloud(二)Consul 服务治理实现
- JBPM流程部署校验之java利用XSD校验XML
- mysql分页查询语法
- U-Mail邮件网关鉴伪防窃杜绝“家贼”
- linux 获取设备树源文件(dts)里描述的资源,Linux 获取设备树源文件(DTS)里描述的资源...
- 斗地主AI算法——第十三章の主动出牌(2)
- (13)<datalist> 标签
- WIN7部分程序中文乱码的简单解决方法
- Spark 共享变量详解
- 顺序栈基本操作的C语言实现(含全部代码实现)--- 数据结构之顺序栈
- win10窗口设置眼睛保护色
- 【项目管理】 --- 范围说明书的内容和作用
- TI公司电话面试 ---- 问题回忆录 2012年8月20
- 鸿蒙DevEco Studio 无法下载Gradle问题
- 12、可观测性--告警处理
- 某校教务管理系统post分析,Python实现自动查询成绩并发送短信
- 滑模变结构控制理论及应用 [陈志梅 著] 2012年
- SecureCRT 5.1.3 及注册码
- ES5入门 — 引入、变量、数据类型
- JS判断元素是否含有子元素
热门文章
- oracle开放查询表权限_Oracle创建用户并给用户授权查询指定表或视图的权限
- 表观修饰的“当红炸子鸡” - 组蛋白乳酸化
- java基础之静态方法
- RR、时间片轮转算法
- com.android.sr已停止,DCS-SDK(java)运行于Android4.4.2版本退出时提示程序停止运行
- 如何将java中list格式的数据转换为jason格式
- fatal error LNK1104:
- Git及其代码托管平台GitHub、码云
- CC2530 CC2530F256RHAR 一款ZigBee SOC芯片
- MATLAB中不用循环生成圆盘(圆形)/圆环掩膜矩阵