
권한이 부여된 보안 감사를 위한 전문가급 완전 비동기 Python 네트워크 스푸핑 제품군입니다. 완전한 IPv4/IPv6 가로채기, 802.11 무선 공격, LLMNR/NBT-NS 포이즈닝, 그리고 변조 방지 감사 로깅을 갖춘 대화형 TUI를 제공합니다.
전문가급 비동기 Python 네트워크 스푸핑 제품군 대화형 메뉴 기반 UI · 완전한 IPv4/IPv6 지원 · Responder 스타일 포이즈닝 승인된 보안 테스트 전용 — by amibhai
면책 조항: 이 도구는 교육 목적 및 승인된 보안 감사 전용입니다. 저자는 이 프로그램으로 인해 발생하는 오용이나 손해에 대해 어떠한 책임도 지지 않으며 책임을 지지 않습니다. 소유하지 않았거나 테스트에 대한 명시적 서면 허가를 받지 않은 네트워크에서는 이 도구를 사용하지 마십시오.
| 모듈 | 설명 |
|---|---|
attacks/deauth.py | 802.11 디인증 — 클라이언트 연결 해제, WPA 핸드셰이크 캡처 |
attacks/beacon_flood.py | 802.11 비콘 플러드 — 가짜 SSID 폭주 |
attacks/llmnr_nbt.py | LLMNR + NBT-NS + mDNS 포이즈닝 (Responder 스타일 해시 캡처) |
attacks/icmpv6_ra.py | ICMPv6 라우터 광고 스푸핑 — IPv6 게이트웨이 하이재킹 |
attacks/ndp_spoof.py | IPv6 NDP 네이버 광고 포이즌 — IPv6 ARP 스푸핑 |
attacks/captive_portal.py | 캡티브 포털 (호텔/기업/카페/ISP 템플릿) |
attacks/wpad.py | WPAD 프록시 자동 구성 주입 |
core/platform_compat.py | macOS pf + Linux iptables + Windows netsh 추상화 |
| 타이밍 지터 | IDS 회피를 위해 모든 패킷 버스트에 ±N초 무작위 지연 |
| GitHub Actions CI | Python 3.10–3.12 전반에 걸친 pytest + mypy + 커버리지 게이트 (≥80%) |
| Docker | 이식 가능한 배포를 위한 docker build + docker-compose up |
| pyproject.toml | 최신 패키징, mypy strict 설정, ruff 린트, 커버리지 설정 |
| 기능 | 세부 사항 |
|---|---|
| 승인 | 교전 규칙 범위 파일 — 범위를 벗어나거나 허용 시간대를 벗어난 대상에 대해서는 실제 공격이 거부됨; 범위 없음 ⇒ 드라이런 전용 |
| 아키텍처 | 100% 비동기 Python 3.10+ — threading.Thread 제로 |
| UI | 애니메이션 256색 배너 + 번호 메뉴 + 브레드크럼 |
| 대시보드 | PRISM 실시간 3패널 TUI (공격 로그 / 패킷 통계 / 자격 증명) |
| 로깅 | HMAC-SHA256 체인 structlog 감사 추적 (변조 감지 가능) |
| 보고서 | 모든 세션 후 자동 생성되는 JSON + Markdown + HTML |
| 언어 | LANG에서 자동 감지 + 수동 전환 (en, hi, ar, zh, fr, es) |
| 사전 점검 | 17개 항목 시스템 점검 (범위, root, Python, 의존성, 인터페이스, 터미널) |
| 정리 | finally에서 항상 ARP/NDP 테이블, iptables/pf 규칙 복원 |
| 플랫폼 | Linux (전체) · macOS (pf 백엔드) · Windows (Npcap, 제한적) |
실제 교전은 서명된 범위에 의해 정의됩니다. 이 툴킷은 이를 코드로 강제합니다: 열린 교전 시간대 내에서 명시적으로 승인되지 않은 대상에는 단 하나의 패킷도 전송하지 않습니다. 이것이 전문 레드팀 도구와 무차별 스크립트의 차이입니다.
rules/engagement.example.json 참조.SPOOF_TOOLKIT_SCOPE 환경 변수를 통해 툴킷이 해당 파일을 가리키도록 하십시오.Session.guard(...)를 호출합니다. 승인된 범위를 벗어난 대상 — 또는 종료된 교전 시간대 — 는 AuthorizationError를 발생시키고 공격은 거부됩니다.fingerprint 포함 — 은 HMAC 체인 감사 로그와 모든 세션 보고서에 기록되므로, 보고서는 무엇이 승인되었는지 정확히 증명합니다.# 1. Copy and edit the template with your engagement details + authorized targets
cp rules/engagement.example.json rules/my-engagement.json
# 2. Point the toolkit at it (enables live fire for in-scope targets only)
export SPOOF_TOOLKIT_SCOPE=rules/my-engagement.json
# 3. Verify it loaded and the window is open
sudo -E python3 spoof_toolkit.py --preflight
| 필드 | 의미 |
|---|---|
engagement_id | 필수 — 고유한 인게이지먼트 식별자 |
authorized_by | 필수 — 테스트를 승인한 명명된 주체 (SOW / 티켓) |
client, operator, contact, notes | 감사 추적을 위한 인게이지먼트 메타데이터 |
start, end | ISO-8601 기간 (오프셋이 없으면 UTC로 간주); 개방형의 경우 어느 한쪽 경계도 생략 가능 |
authorized_networks | 대상으로 삼을 수 있는 IPv4/IPv6 CIDR 또는 단일 호스트 |
authorized_macs / authorized_ssids / authorized_bssids | L2 / 무선 타겟팅을 위한 허용 목록 |
denied_networks / denied_macs | 공격 금지 목록 — 항상 허용 목록을 재정의함 |
설계상 페일 클로즈(fail-closed): 빈 허용 목록은 아무것도 승인하지 않으며,
denied_networks 항목에 있는 범위 내 호스트(예: 그 외에는 승인된 /24 안에
있는 도메인 컨트롤러)는 거부됩니다.
안전 모드.
session.safe_mode = True는 유효한 스코프가 로드된 상태에서도 드라이런을 강제합니다 — 전송 없이 인게이지먼트를 처음부터 끝까지 리허설하는 데 사용하세요.
| 모듈 | 파일 | 설명 |
|---|---|---|
| ARP 스푸핑 | attacks/arp_spoof.py | 캐시 포이즌 — MitM, DoS, 단방향, 게이트웨이 전용 |
| DNS 스푸핑 | attacks/dns_spoof.py | 응답 주입 — 선택적, 전체 스푸핑, 규칙 파일, NXDOMAIN |
| 결합 MitM | attacks/combined_mitm.py | 전체 ARP + DNS + 자격 증명 캡처 (asyncio.TaskGroup) |
| SSL 스트립 | attacks/ssl_strip.py | 투명 HTTPS 다운그레이드 프록시 (Linux/macOS) |
| 로그 DHCP | attacks/rogue_dhcp.py | 가짜 DHCP 서버를 통한 기본 게이트웨이 탈취 (은밀 모드) |
| LLMNR/NBT-NS | attacks/llmnr_nbt.py | 신규 — LLMNR + NBT-NS + mDNS 포이즈닝, NTLMv2 해시 캡처 |
| WPAD | attacks/wpad.py | 신규 — 브라우저 프록시 자동 구성 주입 |
| 캡티브 포털 | attacks/captive_portal.py | 신규 — 4가지 템플릿을 갖춘 가짜 로그인 페이지 |
| 모듈 | 파일 | 설명 |
|---|---|---|
| 디인증 | attacks/deauth.py | 신규 — 802.11 디인증 (타겟팅 + 브로드캐스트), WPA 핸드셰이크 캡처 |
| 비콘 플러드 | attacks/beacon_flood.py | 신규 — 수백 개의 가짜 SSID로 전파 범람 |
| AP 스캐너 | attacks/deauth.py | 신규 — 수동 802.11 비콘 스캐너 |
| 클라이언트 스캐너 | attacks/deauth.py | 신규 — AP에 연결된 클라이언트 탐지 |
| 모듈 | 파일 | 설명 |
|---|---|---|
| RA 스푸프 | attacks/icmpv6_ra.py | 신규 — ICMPv6 라우터 광고 (기본 게이트웨이 탈취) |
| NDP 스푸프 | attacks/ndp_spoof.py | 신규 — 네이버 광고 포이즌 (IPv6의 ARP 등가물) |
| 전체 IPv6 MitM | (조합) | 신규 — 완전한 IPv6 가로채기를 위한 RA + NDP + IPv6 포워딩 |
# 1. Install
sudo bash install.sh
# 1b. Authorize an engagement (required for live fire — otherwise dry-run only)
cp rules/engagement.example.json rules/my-engagement.json # then edit it
export SPOOF_TOOLKIT_SCOPE=rules/my-engagement.json
# 2. Run (interactive menu)
sudo -E spoof-toolkit
# 3. Or run directly
sudo python3 spoof_toolkit.py
# 4. Preflight check
sudo python3 spoof_toolkit.py --preflight
# 5. Launch PRISM dashboard directly
sudo python3 spoof_toolkit.py --prism
# 6. Docker (no install needed)
docker build -t spoof-toolkit .
docker run --rm -it --network host --cap-add NET_RAW --cap-add NET_ADMIN spoof-toolkit
╔══════════════════════════════════════════════════════════════════════════╗
║ SPOOF TOOLKIT v2.1 — INTERACTIVE MENU ║
║ ║
║ Layer 2 / 3 ║
║ 1. ARP Spoofing — cache poison, MitM, DoS, one-way ║
║ 2. DNS Spoofing — domain hijack, spoof-all, NXDOMAIN ║
║ 3. Combined MitM — ARP + DNS + credential capture chain ║
║ 4. SSL Strip — HTTPS downgrade interception ║
║ 5. Rogue DHCP — gateway hijack via fake DHCP server ║
║ ║
║ 802.11 Wireless ║
║ 6. 802.11 Wireless — deauth, beacon flood, AP/client scan [NEW] ║
║ 7. LLMNR / NBT-NS — Responder-style NTLMv2 hash capture [NEW] ║
║ 8. IPv6 Attacks — RA spoof + NDP poison (IPv6 MitM) [NEW] ║
║ 9. Captive Portal — fake login page + WPAD proxy inject [NEW] ║
║ ║
║ Infrastructure ║
║ A. Wireless Adapter — detect, monitor mode, channel hop ║
║ E. Evasion — timing jitter, MAC rotate [NEW] ║
║ P. PRISM Dashboard — live 3-panel TUI attack monitor ║
║ R. Session Report — generate JSON / Markdown / HTML ║
║ F. Preflight Check — verify all dependencies and privileges ║
║ L. Language — switch UI language ║
║ 0. Exit ║
╚══════════════════════════════════════════════════════════════════════════╝