SEEDLabs Mitnick Attack
实验原理
TCP/IP 协议中的数据单元头部都是明文透明的,因此攻击者往往可以根据猜测得到的顺序号伪造 TCP 报文,从而达到与被攻击服务器建立连接的目的。
环境准备
本次实验需要开启在同一 LAN 下的docker 容器内的三个主机,分别为 Seed-Attacker(攻击者,IP 为 10.9.0.1) 、X-Terminal(被攻击服务器,IP 为 10.9.0.5)和 Trusted-Server(可以免密登录服务器的用户,IP 为 10.9.0.6)
$ dcbuild
$ dcup
执行 dockps 得到各个主机的 docker ID,通过 docksh [docker ID] 开启某个主机的终端:

观察 10.9.0.1 的网络信息,由于特殊配置,可以在虚拟机的 WireShark 中直接捕获网络中的所有包:


为了达到免密登录的效果,需要在 10.9.0.5 中配置 rsh 协议的登录信息,将 10.9.0.6 加入配置文件:
# 10.9.0.5
$ su seed
$ cd
$ touch .rhosts
$ echo 10.9.0.6 > .rhosts
$ chmod 644 .rhosts
可以看到,配置前后从 client 中观察到的结果不同:

并且从 WireShark 中可以观察到两次 TCP 连接,后续实验中需要实现这个过程:

Task 1
实验目的:模拟 SYN Flooding
实验步骤:为了简化实验,这里我们直接关闭 Trusted-Server,但在关闭之前需要保证 server 中有client 的 arp 缓存,否则之后攻击模拟 client 发包时,server 并不知道 client 的 MAC 地址,arp 也无响应。
① 首先在 clinet 中 ping 10.9.0.5 ,之后在 server 中将 client 的 arp 缓存持久化。为了实验效果好,我们可以让 server 同时缓存 attacker 的 MAC 地址(这个操作需要在 server 的 root 权限下进行):
# 10.9.0.6
$ ping 10.9.0.5
# 10.9.0.1
$ ping 10.9.0.5

② 关闭 client 的 docker,模拟被 SYN Flooding 攻击后的效果:
$ docker stop f4

Task 2
实验目的:伪造 client 的 TCP 包与 server 建立 TCP 连接,并且使其执行 reverse shell 指令
实验步骤:需要建立两个 TCP 连接,其中第一个 TCP 连接需要攻击者首先发出请求,第二个 TCP 连接则是由 server 发出、需要攻击者发送 SYN ACK 包回复的连接。
① 首先假冒 client 向 server 发送 SYN 包,请求建立连接,其中源 IP 地址为 client 的地址 10.9.0.6 :

该实验通过模拟SYNFlooding攻击和伪造TCP连接,展示了如何利用TCP/IP协议的弱点进行网络攻击。实验中,攻击者利用Scapy库伪造TCP报文,建立两个TCP连接,最终实现对目标服务器的免密登录。过程中涉及了ARP缓存、Docker容器以及网络嗅探工具WireShark的使用。
3537

被折叠的 条评论
为什么被折叠?



