我正在尝试创建一个实验室环境来实验MiTM攻击。我也想学码头,所以我决定和码头人一起学习。我创建了两个图像(攻击者,受害者):
基于阿尔卑斯的受害者,并安装了卷曲
攻击者-基于Ubuntu,已安装了iputils-ping iproute2 curl iptables vim ettercap-只限于文本的dsniff和tshark。
它们都在桥接网络中,所以这里的路由器将是docker0接口(缺省值: 172.17.0.1)
我正在运行带有-特权标志的攻击者容器,以启用ettercap。
因此,当两个映像运行时,我都在执行ettercap(也尝试使用arpspoof工具,效果也一样)。来自攻击者容器,具有:
ettercap -T -i eth0 -M arp:remote //victim_ip/ //172.17.0.1/
受害者的流量通过了攻击者,但是当受害者试图ping google.com时没有响应。MiTM攻击是有效的,因为我可以看到受害者容器上的流量,但是有东西阻止了它。
我发现了这里的问题所在。我在我的主机上打开了两个连接,一个在docker0接口上,一个在我默认的wifi接口上。在攻击之前,当我从全局网络中点击某个东西时,码头管理员正在将他的停靠ip地址转换到我的主机ip地址,这很好,但是在arp欺诈罪之后,它不能正常工作--主机正在发送带有码头受害者容器的ip源的数据包(172.17.0.3)。另外,奇怪的是,另一个容器(攻击者)在没有问题的情况下连接外部网络(docker0将坞ip转换为正确的ip主机)。下面是两位线人的照片。

选中的iptables和此规则(在下面的图片中选择)正在将我的停靠ip地址转换为宿主ip地址,但在攻击后,此规则不起作用(在arp欺骗攻击之后,pkts不会增加)。我试图添加一些额外的iptable规则,但没有任何效果。我不是iptables的主人,所以如果有人有其他的想法,什么也应该检查,给我提示。

也许有人可以向我解释,或者给我一些额外的资料,说明码头如何将它的ip地址转换成桥接网络上的ip地址,以及在arp欺骗攻击之后,我能做些什么来恢复正确的翻译。每一条建议都会受到感谢。
发布于 2020-12-22 05:22:57
docker0的网络接口来连接每个容器。veth开头。然后,Docker通过iptables规则将主机网络接口的流量转发给虚拟网络接口。docker run --network=host ...创建容器,则容器将使用主机的网络接口。此时,容器的IP地址与主机相同。https://serverfault.com/questions/1046789
复制相似问题