首页 > TCP/IP 阅读:480

伪造ICMP数据包的Ethernet层

用户不仅可以对 ICMP 数据包的 IPv4 层进行伪造,还可以对 ICMP 数据包的 Ehternet 层进行伪造。这时,需要使用 netwox 工具中编号为 37 的模块。该模块可以伪造 ICMP 数据包的 MAC 地址信息。

【实例】基于主机 192.168.59.131,伪造 ICMP 数据包的 Ethernet 层信息。

1) 查看 ICMP 包的 Ehternet 默认值,执行命令如下:

root@daxueba:~# netwox 37

输出信息如下:
Ethernet________________________________________________________.
| 00:0C:29:AA:E0:27->00:08:09:0A:0B:0C type:0x0800                    |
|_______________________________________________________________      |
IP______________________________________________________________.
|version|  ihl  |      tos      |            totlen                   |
|___4___|___5___|____0x00=0_____|___________0x001C=28___________      |
|              id                     |r|D|M|       offsetfrag        |
|__________0x18A0=6304__________|0|0|0|________0x0000=0_________      |
|      ttl      |   protocol    |           checksum                  |
|____0x00=0_____|____0x01=1_____|____________0x9A08_____________      |
|                            source                                   |
|________________________192.168.59.131_________________________      |
|                          destination                                |
|____________________________5.6.7.8____________________________      |
ICMP4_echo reply________________________________________________.
|     type      |     code      |           checksum                  |
|____0x00=0_____|____0x00=0_____|_________0xFFFF=65535__________      |
|              id               |            seqnum                   |
|___________0x0000=0____________|___________0x0000=0____________      |
| data:                                                               |
|_______________________________________________________________      |
在以上输出信息中,第一行 Ethernet 表示 ICMP 数据包是基于以太网的数据包。

默认源 MAC地址为 00:0C:29:AA:E0:27,目标 MAC 地址为 00:08:09:0A:0B:0C。

2) 伪造源 MAC 地址为 11:22:33:AA:BB:CC,指定目标 IP 地址为 192.168.59.135,MAC 地址为 00:0C:29:CA:E4:66。执行命令如下:

root@daxueba:~# netwox 37 -a 11:22:33:aa:bb:cc -m 192.168.59.135 -b 00:0c:29:ca:e4:66 -o 8

输出信息如下:
Ethernet________________________________________________________.
| 11:22:33:AA:BB:CC->00:0C:29:CA:E4:66 type:0x0800                    |
|_______________________________________________________________      |
IP______________________________________________________________.
|version|  ihl  |      tos      |            totlen                   |
|___4___|___5___|____0x00=0_____|___________0x001C=28___________      |
|              id                     |r|D|M|       offsetfrag        |
|__________0x246B=9323__________|0|0|0|________0x0000=0________       |
|      ttl      |   protocol    |           checksum                  |
|____0x00=0_____|____0x01=1_____|____________0x9E08_____________      |
|                            source                                   |
|________________________192.168.59.131_________________________      |
|                          destination                                |
|________________________192.168.59.135_________________________      |
ICMP4_echo reply________________________________________________.
|     type      |     code      |           checksum                  |
|____0x00=0_____|____0x00=0_____|_________0xFFFF=65535__________      |
|              id               |            seqnum                   |
|___________0x0000=0____________|___________0x0000=0____________      |
| data:                                                               |
|_______________________________________________________________      |
从 Ethernet 部分可以看到,源 MAC 地址由原来的 00:0C:29:AA:E0:27 变为了 11:22:33:aa:bb:cc;目标 MAC 地址由原来的 00:08:09:0A:0B:0C 变为了 00:0C:29:CA:E4:66;而 IP 部分 Source 的值保留原来的值。

3) 为了验证构建的 ICMP 数据包,可以捕获数据包查看,如图所示。

从第 6 个数据包的 Ethernet II 部分可以看到,Source 的值为 11:22:33:aa:bb:cc,是伪造的 MAC 地址。

在 Internet Control Message Protocol 部分中,Type 值为 8,Code 值为 0,表示该数据包为 ICMP 请求包。

4) 选择第7个数据包进行查看,如图所示。

从该数据包的 Ethernet II 部分可以看到,源 MAC 地址为目标主机的 MAC 地址 00:0c:29:ca:e4:66,目标 MAC 地址为实施主机的 MAC 地址 00:0c:29:aa:e0:27。这表示目标主机成功给伪造 MAC 地址的主机进行了回复。

在 Internet Control Message Protocol 部分中,Type 值为 0,Code 值为 0,表示该数据包为 ICMP 响应包。

编程帮,一个分享编程知识的公众号。跟着站长一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

文章不深奥,不需要钻研,在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

文章不涉及代码,不烧脑细胞,人人都可以学习。

当你决定关注「编程帮」,你已然超越了90%的程序员!

编程帮二维码
微信扫描二维码关注