这个Lab的步骤写得非常清晰了,点赞~
- IP分片机制 & 攻击
- ICMP重定向攻击
- 反向路径过滤 & 保护
Task 1
Task 1A
没啥花样,先抄代码发三个IP分片
后两个改偏移即可
最后一个flag要设置为0
目的主机抓包,可以看到收到一个数据包的全部分片后,就会拼接成完整的UDP数据包啦
Task 1B
以前课上教过的,IP分片攻击(Teardrop
不过现在系统都优化了,已经比较少了
1
先要求前两个分片部分重叠,这里K=8
具体原理就是当 IP 分片的偏移量发生重叠时,系统会计算重叠的字节数 K,并将第 2 个 分片的指针向后移动 K 字节,再将其剩余内容拼接到第 1 个分片之后,即忽略 了第 2 个分片的重叠部分
贴代码:
抓包也发现B重叠的部分直接被忽略:
2
然后就直接第二个分片包含在第一个分片里
(这就是Teardrop的原理
一样的,第二个分片直接被吞掉
关于先发1后发2 & 先发2后发1,我试下来妹有什么区别…
因为 IP 协议 中即使 IP 分片乱序到达,也会在缓存中保留而不会丢弃,故拼接后能得到同样 的结果
Task 1C
emm就整个超大包
注意ip.len和udp.len要随便瞎整一个数,不然长度超过就报错
抓包康康,因为有MTU限制,一共分成了45个片
Task 1D
一看就是老DoS攻击了
第二个偏移直接开大点,目的主机接收到第 2 个分片后,会为其分配 64k 的内存缓冲区、启动计时器 并等待其他分片;后续分片到达时,数据被复制到缓冲区中进行拼接。如果在计 时器有效时间内收到大量这类数据包,将很快耗尽主机的内存空间,形成 DoS 攻击
(然而,现在系统优化了,应该是不会成功的…
Task 2
先乖乖一步步配环境
构造ICMP重定向数据包时,ip的src是网关(伪装成默认网关),dst是victim主机
icml.gw是攻击主机
ip2的src是victim主机,dst是B主机
抓包康康 大写的Redirect
检验一下,确实用攻击主机路由了
Q1
用远程主机(非子网内主机)试试
当然不行啦,发现不对劲还是变回了默认网关
Q2
再用子网内不存在的主机试试
一样的,不对劲还是用默认网关
Task 3
乖乖跟着配环境~
Task 3B
A里加一条B的路由信息
B里加一条A的路由信息
A ping/telnet B能通,没毛病
B也行
Task 3B
然后就是反向路径过滤辽
1
spoof同一子网的原地址
没问题的,主机 A 到主机 B 的路由在 Task 3B 中被设置为 192.168.60.1,而主机 A 的默 认网关也为 192.168.60.1,发向外网地址 10.0.2.6 的数据包将由同一个地址路由, 数据包不会被丢弃
B抓到啦
R也能抓到(俩网卡都能,一进一出)
2
spoof同一子网的原地址
这就不能够了,主机 A 到主机 B 的路由在 Task 3B 中被设置为 192.168.60.1,而 192.168.60.3 与主机 B 在同一子网,其发送的数据包不会被发送到默认网关,由反向路径过 滤检测出接收和发送数据包的接口不同,数据包会被丢弃
所以B抓不到,R只有进没有转发
3
spoof外网的原地址
也没毛病,主机 A 到主机 B 的路由在 Task 3B 中被设置为 192.168.60.1,而主机 A 的默 认网关也为 192.168.60.1,发向外网地址 1.2.3.4 的数据包将由同一个地址路由, 数据包不会被丢弃
B抓得到
R也是俩都能(一进一出)
没有大佬可以感谢,就感谢SeedLab教程叭,真的清晰
?.(?▽`)?
参考了一个资料:
https://www.cnblogs.com/rookieDanny/p/13224619.html