Python3中间人:将套接字绑定到任何IP

2024-05-16 04:36:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试构建一个简单的中间人工具,与mitmproxy类似(但要简单得多)。为了进入MITM位置,我使用了ARPSoof。下图显示了一个简化的设置。(我使用UDP套接字进行连接,因为客户端和服务器使用特定的协议(DTLS),我用来设置连接的库包装UDP套接字。)

Simple Tool Setup, Conecept

虽然我的其他测试没有进行实际的arp欺骗,但我的设置遇到了麻烦,因为我(可以理解)无法将我的工具绑定到192.168.0.3:12345到192.168.0.1:12345,来自客户端的传入数据报(在192.168.0.3上正确显示)被发送到192.168.0.1。 解决问题的方法是:

  • 有没有办法将套接字绑定到未分配给机器上接口的IP(使用python 3)
  • 我还有别的选择吗?(我需要使用DTLS库,在scapy有限的DTLS支持下手动执行所有操作可能行不通)
  • 如果我能以某种方式克服这个问题,我将如何在现有套接字上实现对传出数据报的欺骗
  • 是否有其他选项来代理传入流量、修改目标地址、将其转发到我的工具、制作响应、代理、修改源地址并将其发送到客户端?(如果这对您有任何意义)

Tags: 工具数据方法服务器协议客户端代理udp