ICMP 报文自定制
来源:互联网 发布:csol怒海狂鲨加6数据 编辑:程序博客网 时间:2024/06/09 17:21
看腻了分析ICMP的文章?就是找不到具体实例?
上篇是转载别人的,通过教程成功发送了一堆ICMP 应答包,但是采用的是两败俱伤的方式,
除此之外,包里有我的MAC,IP信息,攻击别人,别人只要一抓包就知道是谁是攻击者,
这种攻击是不可取的,今天准备伪造发送者的信息,(依然是两败俱伤,不过慢慢来,改天再试试构造欺骗包,借刀杀人)
以下是wireshark截的一个完整的数据包,分析一下,接着开始伪造,然后再用winpcap发送伪造包
表里,无背景的是16进制数据,有背景的分析(解释),最后一栏是字节数,这个包合计是78字节
这是数据包:
分析开始:
20 6a 8a 60 02 09
b8 70 f4 1c c3 08
12
目的MAC
源MAC
08 00
45 00 ①见后面详解
4
Type IP(0x0800)
Differentiated Services Codepoint: Default (0x00
00 40
54 c0
4
Total length:60,包括头部和数据
标识符,用于对较大的上层数据包分段操作,和后面两个字节内容联合使用
00 00
80 01
4
Fragment offset:0
TTL Protocol: ICMP (1)
85 bf
2
Header checksum 0x85bf (correct)
用来做IP头部的正确性检测,但不包含数据部分.
路由器会为每个通过的数据包重新计算这个值
73 9b 3c be
73 9b 3c 49
8
SenderIP
ReciverIp 到此20字节IP头 分析完毕
00 00
24 e2
4
Type code ICMP头开始
checksum(correct)
02 00
00 00
4
identifier
Sequence number(LE)
53 c8 31 01 45 45
6
45 45 45 45 45 45 45 45 45 45
45 45 45 45 45 45
16
45 45 45 45 45 45 45 45 45 45
45 45 45 45
14
①处解释:IP头部前8bit(一个字节,即1byte)=version(4bit)+header length(4bit),其中version就是IP版本协议号,此处为IPV4→0100(2进制),
header length IP包头长度,本区域值= IP头部长度(单位为bit)/(8*4);由于我们没有加别的什么信息,所以是最小长度20字节,即20x8/(8x4)=5,换成二进制就是0101,
所以第一个字节 就是01000101(二进制),换为16进制就是45,
注:还好我认真看了下IP头部构造,要不然直接看wireshark给的解释Differentiated Services Codepoint(DSCP,差分服务代码点),看到这个概念就快晕了,^_^
00 是服务类型,00是最普通的,优先级最低
ICMP报文被封装在IP数据报内部传输
就是说我们要构造的包为: 以太网头部+IP头部+ICMP头部+ICMP数据
构造开始(括号内为字节数):
目的MAC(6)+源MAC(6)+帧类型-IP0x0800(2)+ 偷下懒,我觉得只要改了源mac就能达到我的目标了,走起.
UCHAR buf
OK,我直接贴我实验的截图吧
可以看到IP头部校验和出错,改一下,
改了之后没有什么错误提示了,现在是2014年4月2日 02:57:04,有点晚了,等我明天去舍友电脑上抓包看看到底有没有发送成功.
还要解决一下为什么IP头校验和改变的问题
我构造的发送数据是
u_char buf2[]={
0x20,0x6a,0x8a,0x60,0x02,0x09,//以太网头,目的MAC 此处为舍友MAC
0x00,0x1a,0xa9,0x15,0x6c,0x9b,//以太网头,源MAC,此处为随意填的(真的是随意的么?嘿嘿嘿)
0x08,0x00, //以太网头,帧类型,此处为IP
0x45,0x00, //IP头 版本,长度,服务类型
0x00,0x40, //IP头部和数据总长度
0x54,0xc0,0x00,0x00,//标识符,用于分段操作什么的
0x80,0x01, //TTL,protocol 协议类型,1是ICMP
0x85,0x7f, //IP头部的checksum,校验码,不包含数据部分
0x73,0x9b,0x3c,0xfe,//senderIP
0x73,0x9b,0x3c,0x49,//接收方IP
0x00,0x00, //ICMP type和code
0x24,0xe2, //校验和
0x02,0x00,00,00,//标识符和序列号
0x53,0xc8,0x31,0x01,//发起时间戳
0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,
0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,
0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,
0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45 //填充的32字节数据
};
之后用winpcap发送即可,具体请百度之
让我吐槽一下CSDN的排版问题,可视化控件根本用不了,只能在源代码里改样式,对于我这种没学过CSS(还是什么的,不是很清楚)真心蛋疼,就拿上面这个表格来说
第一列,第二列宽度本来都是1211,觉得太长了,到源代码里把width="1211"改成了width="700",第一列改好了,第二列就不知道怎么改了,晕▄︻┳═一
- ICMP 报文自定制
- ICMP报文
- ICMP报文
- ICMP报文
- ICMP报文
- ICMP报文
- ICMP/ICMP报文分析
- 构造协议报文、自定制协议方法
- ICMP报文协议(转自CSDN tigerjb博客)
- ICMP控制报文协议
- ICMP报文分析
- ICMP诊断报文类型
- ICMP报文格式
- ICMP控制报文协议
- ICMP报文分析
- ICMP报文的类型
- ICMP报文分析
- ICMP报文分析
- centos备份
- source命令
- 迪杰斯特拉算法
- 设计一个一百亿的计算器
- MySQL详解--锁
- ICMP 报文自定制
- codeforces 276 B 博弈
- OmniGraffle Stencil的网站
- Algorithm学习笔记 --- N进制转化成十进制
- Spark组件库及简要介绍
- 雅虎页面优化黄金守则
- 智能车调速部分
- freemarker 自定义TemplateDirectiveModel
- 20140401心情