
自動化されたevil twinアクセスポイントツールキット。トラフィックキャプチャとリアルタイムモニタリングを備え、ワイヤレス侵入テストおよびセキュリティ研究のためのツールです。
完全なモジュール式で再現可能なEvil Twinアクセスポイントセットアップ。防御的なセキュリティテスト、ペネトレーションテスト、ワイヤレスセキュリティ研究のためのツールです。
教育目的および許可されたセキュリティテスト専用
このツールは以下の目的で提供されています:
不正使用は固く禁じられています。権限のないコンピュータネットワークへのアクセスは、ほとんどの法域で犯罪行為です。利用者は以下について単独で責任を負います:
本ツールを使用することにより、あなたは自分が所有するか、明示的な書面によるテスト許可を得たネットワークでのみ使用することに同意したものとみなします。
本ツールキットは、正規のネットワークを模倣した不正ワイヤレスアクセスポイント(Evil Twin)を作成します。クライアントが正規ネットワークと信じて自動的に接続する可能性のある同一SSIDを作成し、ネットワークトラフィックをキャプチャします。
Evil Twinとは、正規のものに見せかけてワイヤレス通信を盗聴するために設置された、不正なWi-Fiアクセスポイントです。この攻撃は、対象ネットワークの近くに不正アクセスポイントを設置し、同じSSIDをブロードキャストして、デバイスをだまして接続させることで機能します。
ワイヤレスアダプタはAP(アクセスポイント)モードをサポートしている必要があります。すべてのワイヤレスカードがこの機能をサポートしているわけではありません。
以下のアダプタは動作が確認されており、APモードをサポートしています:
Alfa AWUS036ACH(RTL8812AU)
TP-Link TL-WN722N v1(Atheros AR9271)
Alfa AWUS036ACM(MT7612U)
購入前に、アダプタがAPモードをサポートしているか確認してください:```bash
iw list | grep -A 10 "Supported interface modes"
### 追加のハードウェア
- **イーサネット接続**: インターネットパススルーに必要(物理またはUSBイーサネットアダプタ可能)
- **十分なUSB電力**: 一部の高出力アダプタでは、電源付きUSBハブが必要になる場合があります
- **コンピュータ**: Linuxを実行している任意のラップトップまたはデスクトップ(推奨: Kali Linux)
---
## 💻 ソフトウェア要件
### オペレーティングシステム
- **推奨**: Kali Linux (2020.1以降)
- **他にサポート**:
- Debian 10+
- Ubuntu 18.04+
- Fedora 30+
- Arch Linux
- ParrotOS
- BlackArch
### 必須パッケージ
これらは `install_dependencies.sh` によって自動的にインストールされます:
- `hostapd` - アクセスポイントを作成
- `dnsmasq` - DHCPおよびDNSサービスを提供
- `iptables` - NATとファイアウォールルールを設定
- `iproute2` - ネットワークインターフェース設定
- `wireless-tools` - ワイヤレス管理ユーティリティ
- `net-tools` - ネットワーク診断ツール
- `iw` - ワイヤレス設定ユーティリティ
- `tcpdump` - パケットキャプチャユーティリティ
### 権限
- すべての操作にはroot/sudoアクセスが必要です
---
## 📦 インストール
### クイックスタート```bash
# Clone the repository
git clone https://github.com/yourusername/evil-twin-ap.git
cd evil-twin-ap
# Install dependencies
sudo ./install_dependencies.sh
# Detect your wireless interfaces
sudo ./detect_interface.sh
# Configure your settings (update interface if needed)
nano hostapd.conf # Change SSID, channel, interface
nano dnsmasq.conf # Adjust DHCP settings, interface
# Start the evil twin
sudo ./start_evil_twin.sh
git clone https://github.com/yourusername/evil-twin-ap.git cd evil-twin-ap
#### ステップ2: 依存関係のインストール
インストールスクリプトは自動的にLinuxディストリビューションを検出し、必要なパッケージをインストールします:```bash
sudo ./install_dependencies.sh
機能:
重要ステップ: 設定前に、APモードをサポートするワイヤレスインターフェースを検出してください:```bash sudo ./detect_interface.sh
このスクリプトは、すべての無線インターフェースを解析し、使用するのに最適なものを推奨します。
**出力例:**```
==========================================
Wireless Interface Detection
==========================================
[INFO] Scanning for wireless interfaces...
[✓] Found 2 wireless interface(s)
═══════════════════════════════════════════
Interface: wlan1
═══════════════════════════════════════════
State: DORMANT
MAC Address: 1a:60:c6:85:87:53
Driver: rtl88XXau
[INFO] Checking capabilities for wlan1...
[✓] Supports AP mode (Access Point) ✓
[✓] Supports Monitor mode ✓
Current Mode: managed
═══════════════════════════════════════════
Interface: wlan0
═══════════════════════════════════════════
State: DOWN
MAC Address: b2:72:bf:bc:31:bd
Driver: iwlwifi
[INFO] Checking capabilities for wlan0...
[✓] Supports AP mode (Access Point) ✓
[✓] Supports Monitor mode ✓
Current Mode: managed
[!] Power management is ON (may cause issues)
==========================================
Summary & Recommendations
==========================================
[✓] Found 2 AP-capable interfaces:
- wlan1
- wlan0
[INFO] Recommendation: Use wlan1 (likely external USB adapter)
[!] wlan0 is usually built-in WiFi - use external adapter if available
[INFO] To update configuration files, run:
sed -i 's/^interface=.*/interface=wlan1/' hostapd.conf
sed -i 's/^interface=.*/interface=wlan1/' dnsmasq.conf
Current Configuration:
hostapd.conf: interface=wlan1
dnsmasq.conf: interface=wlan1
[INFO] After updating, verify with: iw list | grep -A 10 'Supported interface modes'
主要な洞察:
複数のインターフェースがある場合:
インストールとインターフェース検出後、すべてが正常に動作していることを確認します:```bash
hostapd -v
dnsmasq -v
iw dev
iw list | grep -A 10 "Supported interface modes"
grep "^interface=" hostapd.conf dnsmasq.conf
---
## ⚙️ 設定
### hostapd.conf - アクセスポイント設定
`hostapd.conf` を編集して、イービルツインをカスタマイズします:```bash
nano hostapd.conf
変更すべき主要な設定:```ini
interface=wlan1
ssid=TestNetwork
channel=6
wpa_passphrase=letitrain2
country_code=US
### dnsmasq.conf - DHCP/DNS 設定
ネットワーク設定をカスタマイズするために`dnsmasq.conf`を編集してください:```bash
nano dnsmasq.conf
主要な設定:```ini
interface=wlan1
dhcp-range=192.168.99.10,192.168.99.250,12h
dhcp-option=3,192.168.99.1
server=8.8.8.8 server=8.8.4.4
### ネットワーク構成
**デフォルト設定:**
- **AP IP**: 192.168.99.1
- **サブネット**: 192.168.99.0/24
- **DHCP範囲**: 192.168.99.10 - 192.168.99.250
- **チャンネル**: 6 (2.4GHz)
- **パスワード**: letitrain2
- **インターフェース**: wlan1 (外部アダプター)
---
## 🚀 使用方法
### Evil Twinの起動```bash
sudo ./start_evil_twin.sh
実行内容:
Configuration: SSID: TestNetwork Channel: 6 Password: letitrain2 AP IP: 192.168.99.1 Subnet: 192.168.99.0/24 WLAN Interface: wlan1 Internet Interface: eth0
To stop the Evil Twin AP, run: sudo ./stop_evil_twin.sh
To capture traffic for analysis: sudo ./capture_traffic.sh sudo ./capture_traffic.sh -v # verbose mode
### Evil Twin の停止```bash
sudo ./stop_evil_twin.sh
動作内容:
Unique clients connected: 3
Last 10 DHCP assignments: 192.168.99.10 - AA:BB:CC:DD:EE:01 192.168.99.11 - AA:BB:CC:DD:EE:02 192.168.99.12 - AA:BB:CC:DD:EE:03
---
## 📸 トラフィックキャプチャ
### ネットワークトラフィックのキャプチャ
このツールキットには、解析用にパケットデータをPCAPファイルとして保存する包括的なトラフィックキャプチャスクリプトが含まれています:```bash
# Basic capture (continuous until Ctrl+C)
sudo ./capture_traffic.sh
# Capture for specific duration (60 seconds)
sudo ./capture_traffic.sh -d 60
# Capture with verbose output and live statistics
sudo ./capture_traffic.sh -v
# Capture only HTTP/HTTPS traffic
sudo ./capture_traffic.sh -f "tcp port 80 or tcp port 443"
# Capture with custom filename
sudo ./capture_traffic.sh -n my_test_capture
# Capture on specific interface
sudo ./capture_traffic.sh -i wlan1
# Capture with file rotation (50MB files, max 20 files)
sudo ./capture_traffic.sh -s 50 -m 20
-i, --interface Wireless interface to capture (default: wlan0) -d, --duration Capture duration in seconds (default: continuous) -n, --name Custom capture filename prefix -f, --filter BPF capture filter (e.g., "tcp port 80") -s, --size Rotate files when size reaches MB (default: 100) -m, --max-files Maximum number of rotated files (default: 10) -v, --verbose Show verbose packet statistics -h, --help Show help message
### キャプチャ機能
- ✅ 標準PCAP形式でトラフィックを保存
- ✅ 自動ファイルローテーションで巨大ファイル化を防止
- ✅ 冗長モードでのライブパケット統計
- ✅ BPFフィルタリング対応(Berkeley Packet Filter)
- ✅ 時間指定キャプチャまたは連続動作
- ✅ Ctrl+Cで安全にクリーンアップ
- ✅ 出力は `output/` ディレクトリに保存
### 出力先
すべてのキャプチャはタイムスタンプベースのファイル名で `output/` に保存されます:
- 形式:`capture_YYYYMMDD_HHMMSS.pcap`
- カスタム:`yourname_YYYYMMDD_HHMMSS.pcap`
### キャプチャしたトラフィックの解析```bash
# Open in Wireshark (GUI)
wireshark output/capture_20251018_143215.pcap
# Analyze with tcpdump
tcpdump -r output/capture_20251018_143215.pcap -n
# Filter for specific protocols
tcpdump -r output/capture_20251018_143215.pcap 'tcp port 80'
# Extract HTTP requests
tcpdump -r output/capture_20251018_143215.pcap -A 'tcp port 80'
# Get capture statistics
capinfos output/capture_20251018_143215.pcap
# Use tshark for advanced analysis
tshark -r output/capture_20251018_143215.pcap -Y "http.request"
sudo ./capture_traffic.sh -f "tcp port 80"
sudo ./capture_traffic.sh -f "tcp port 443"
sudo ./capture_traffic.sh -f "tcp port 80 or tcp port 443"
sudo ./capture_traffic.sh -f "udp port 53"
sudo ./capture_traffic.sh -f "host 192.168.99.10"
sudo ./capture_traffic.sh -f "not broadcast and not multicast"
sudo ./capture_traffic.sh -f "tcp"
---
## 📊 モニタリング
### リアルタイム接続モニタリング
このツールキットは、接続されたクライアントを監視するためのいくつかの方法を提供します:
#### 1. 接続ログ
5秒ごとに自動更新:```bash
tail -f logs/connections.log
出力例:``` === Sat Oct 18 14:32:15 EDT 2025 === Connected clients: 192.168.99.10 dev wlan1 lladdr aa:bb:cc:dd:ee:01 REACHABLE 192.168.99.11 dev wlan1 lladdr aa:bb:cc:dd:ee:02 STALE
#### 2. DHCP割り当て
DHCPリースをリアルタイムで表示:```bash
tail -f logs/dnsmasq.log
出力例:``` dnsmasq-dhcp[12346]: DHCPDISCOVER(wlan1) aa:bb:cc:dd:ee:01 dnsmasq-dhcp[12346]: DHCPOFFER(wlan1) 192.168.99.10 aa:bb:cc:dd:ee:01 dnsmasq-dhcp[12346]: DHCPREQUEST(wlan1) 192.168.99.10 aa:bb:cc:dd:ee:01 dnsmasq-dhcp[12346]: DHCPACK(wlan1) 192.168.99.10 aa:bb:cc:dd:ee:01 android-device
#### 3. アクセスポイントの状態
hostapd のログを監視:```bash
tail -f logs/hostapd.log
sudo iw dev wlan1 station dump
cat /var/lib/misc/dnsmasq.leases
ip addr show wlan1
sudo arp -a -i wlan1
---
## 🔧 トラブルシューティング
### よくある問題と解決策
#### 1. "無線インターフェースが見つかりません"
**問題:** ワイヤレスアダプターが検出されません。
**解決策:**```bash
# Check if adapter is connected
lsusb | grep -i wireless
# Check interface name
ip link show
# Try replugging USB adapter
# Check kernel messages
dmesg | tail -20
# Run the detection script
sudo ./detect_interface.sh
問題: アダプターがアクセスポイントの作成をサポートしていません。
解決策: 別のワイヤレスアダプターが必要です。推奨事項についてはハードウェア要件を参照してください。
サポートの確認:```bash iw list | grep -A 10 "Supported interface modes"
#### 3. "hostapd failed to start"
**問題:** hostapdがアクセスポイントを起動できません。
**解決策:**```bash
# Check if interface is busy
sudo airmon-ng check kill
# Verify interface is up
sudo ip link set wlan1 up
# Check hostapd config syntax
sudo hostapd -d hostapd.conf
# View detailed logs
cat logs/hostapd.log
# Make sure you're using the right interface
grep "^interface=" hostapd.conf
問題: NetworkManagerがワイヤレスインターフェースを管理しています。
解決策:```bash
sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager # Temporarily
sudo systemctl enable NetworkManager sudo systemctl start NetworkManager
#### 5. "クライアントは接続しているがインターネットにアクセスできない"
**問題:** NAT/ルーティングが正しく設定されていません。
**解決策:**```bash
# Verify IP forwarding
cat /proc/sys/net/ipv4/ip_forward
# Should output: 1
# Check NAT rules
sudo iptables -t nat -L -v
# Verify internet interface
ip route show default
# Test internet on host
ping -c 3 8.8.8.8
# Check if eth0 has internet
ping -I eth0 -c 3 8.8.8.8
問題: 十分な権限で実行されていません。
解決策:```bash
sudo ./start_evil_twin.sh
#### 7. "Channel X is not available"
**問題:** 無線規制により、特定のチャンネルが制限されています。
**解決策:**```bash
# Check available channels for your country
iw list | grep -A 20 "Frequencies:"
# Edit hostapd.conf and change to available channel
nano hostapd.conf
# Common safe channels: 1, 6, 11 (2.4GHz)
問題: ポート53(DNS)は既に使用中です。
解決策:```bash
sudo lsof -i :53
sudo systemctl stop systemd-resolved
#### 9. "間違ったインターフェースが使用されている"
**問題:** スクリプトがwlan0ではなくwlan1を使用している(またはその逆)。
**解決策:**```bash
# Run interface detection
sudo ./detect_interface.sh
# Update config files to use correct interface
sed -i 's/^interface=.*/interface=wlan1/' hostapd.conf
sed -i 's/^interface=.*/interface=wlan1/' dnsmasq.conf
# Verify changes
grep "^interface=" hostapd.conf dnsmasq.conf
問題が発生した場合は、以下を試してください。
logs/hostapd.log、logs/dnsmasq.log を確認してください。sudo ./detect_interface.shbash -x で実行dmesg と journalctl を確認evil-twin-ap/ │ ├── README.md # This file (documentation) ├── LICENSE # License information │ ├── hostapd.conf # Access point configuration ├── dnsmasq.conf # DHCP/DNS server configuration │ ├── install_dependencies.sh # Dependency installer (all distros) ├── detect_interface.sh # Wireless interface detection & verification ├── start_evil_twin.sh # Main start script ├── stop_evil_twin.sh # Cleanup and stop script ├── capture_traffic.sh # Traffic capture script (PCAP) │ ├── .evil_twin.pid # Runtime PID file (created automatically) ├── .capture.pid # Capture PID file (created automatically) │ ├── logs/ # Log directory (created at runtime) │ ├── hostapd.log # Access point logs │ ├── dnsmasq.log # DHCP/DNS logs │ └── connections.log # Client connection tracking │ └── output/ # Packet capture directory └── *.pcap # PCAP files from traffic capture
### ファイルの説明
| ファイル | 目的 | 修正しますか? |
|------|---------|---------|
| `hostapd.conf` | AP設定(SSID、チャンネル、パスワード、インターフェース) | ✅ はい - テストに合わせてカスタマイズ |
| `dnsmasq.conf` | DHCP/DNS設定(インターフェース、IP範囲) | ✅ はい - ネットワーク設定を調整 |
| `install_dependencies.sh` | 必要なパッケージをインストール | ❌ いいえ - そのまま実行 |
| `detect_interface.sh` | ワイヤレスインターフェースとAPモードサポートを検出 | ❌ いいえ - そのまま実行 |
| `start_evil_twin.sh` | Evil Twin APを起動 | ⚠️ ほとんどない - 高度なカスタマイズのみ |
| `stop_evil_twin.sh` | 停止してクリーンアップ | ❌ いいえ - そのまま実行 |
| `capture_traffic.sh` | トラフィックをPCAPファイルにキャプチャ | ⚠️ 代わりにCLIオプションを使用 |
| `logs/*.log` | 実行時ログ | 📖 読み取り専用 - 監視用 |
| `output/*.pcap` | キャプチャされたパケットデータ | 📖 読み取り専用 - 分析用 |
---
## 🔒 セキュリティに関する考慮事項
### 倫理的使用ガイドライン
1. **承認**: テストの前に必ず書面による許可を取得すること
2. **範囲**: 合意されたテスト範囲内に留まること
3. **文書化**: すべての活動の詳細なログを保持すること
4. **開示**: ネットワーク所有者に責任を持って発見事項を報告すること
5. **データ処理**: キャプチャしたデータを傍受、保存、または悪用しないこと
### 法的考慮事項
- 許可なく不正なアクセスポイントを作成することは、ほとんどの国で**違法**です
- 罰則には罰金、禁固、前科が含まれる場合があります
- 「無害な」テストであっても、許可なく行われた場合は起訴される可能性があります
- 企業環境: IT部門の承認を書面で取得すること
- 公共スペース: 公衆ネットワークでは絶対にテストしないこと
### 技術的セキュリティ
**このツールキットは設計上:**
- ✅ アクセスポイントの作成と監視に焦点を当てています
- ✅ 許可された分析のためだけにトラフィックキャプチャを含みます
- ✅ 説明責任のための包括的なログ記録を提供します
- ⚠️ 資格情報の収集は含みません
- ⚠️ SSLストリッピングやアクティブなMITM攻撃は含みません
- ⚠️ キャプティブポータルフィッシングは含みません
**テストのセキュリティを強化するために:**
- 分離されたネットワークセグメントを使用する
- テストネットワークの識別(ユニークなSSID)を実装する
- テストを特定の時間枠に制限する
- すべての活動を監視してログに記録する
- 信号漏洩を防ぐためにファラデーケージまたはRFシールドルームでのみ使用する
### 防御策
組織は以下の方法でEvil Twin攻撃から保護できます:
- **802.1X認証**(WPA2/WPA3 Enterprise)の実装
- ネットワーク認証のための**証明書検証**の使用
- **ワイヤレス侵入検知システム(WIDS)**の導入
- **保護管理フレーム(PMF/802.11w)**の有効化
- ユーザーにネットワークの真正性を確認するようトレーニング
- 機密通信にVPNを使用
- 不正アクセスポイントの監視
---
## 🤝 コントリビューション
コントリビューションを歓迎します!以下のガイドラインに従ってください:
### コントリビューション方法
1. **リポジトリをフォーク**
2. **フィーチャーブランチを作成**: `git checkout -b feature/your-feature`
3. **変更を加える** 明確なコミットメッセージを添えて
4. **複数のシステムで徹底的にテスト** 可能であれば
5. **機能を変更した場合はドキュメントを更新**
6. **詳細な説明を添えてプルリクエストを送信**
### コントリビューションガイドライン
- モジュール構造を維持する
- 新機能には詳細なログ記録を追加する
- エッジケースのエラーハンドリングを含める
- 新機能を追加する場合はREADMEを更新する
- 既存のコードスタイルに従う(bashのベストプラクティス)
- 複雑なロジックにはコメントを追加する
- 少なくとも1つのDebianベースのディストロでテストする
### コードスタイル```bash
# Use descriptive function names
configure_network_interface() {
# Clear comments
# Error handling
# Verbose output
}
# Consistent formatting
print_info "Starting process..."
command || print_error "Failed to execute command"
このプロジェクトは、教育目的および許可されたセキュリティテスト目的のみで提供されています。
MITライセンス (詳細はLICENSEファイルを参照)``` Copyright (c) 2025 [Your Name]
Permission is hereby granted for educational and authorized security testing purposes only...
---
## 🙏 謝辞
- 優れた無線セキュリティツールを提供するKali Linuxチーム
- hostapdおよびdnsmasqプロジェクト
- 無線セキュリティ研究コミュニティ
- コントリビューターおよびテスターの皆様
---
## 📚 追加リソース
### 学習リソース
- [OWASP Wireless Security Testing Guide](https://owasp.org/www-project-web-security-testing-guide/)
- [WiFi Penetration Testing Methodology](https://www.sans.org/white-papers/)
- [Wireless Security on Kali Linux](https://www.kali.org/docs/wireless/)
### 関連ツール
- **Aircrack-ng**: 無線監査スイート
- **Wireshark**: ネットワークプロトコルアナライザ
- **Bettercap**: ネットワーク攻撃と監視
- **Wifiphisher**: WiFiに対する自動化フィッシング攻撃
### ドキュメント
- [hostapd Documentation](https://w1.fi/hostapd/)
- [dnsmasq Manual](http://www.thekelleys.org.uk/dnsmasq/doc.html)
- [Linux Wireless Wiki](https://wireless.wiki.kernel.org/)
- [tcpdump Manual](https://www.tcpdump.org/manpages/tcpdump.1.html)
---
## 📞 サポート
- **Issues**: [GitHub Issues](https://github.com/yourusername/evil-twin-ap/issues)
- **Discussions**: [GitHub Discussions](https://github.com/yourusername/evil-twin-ap/discussions)
- **Security**: 脆弱性は(公開Issueではなく)メールで報告してください
---
## ⚖️ 最終警告```
┌─────────────────────────────────────────────────────────────┐
│ │
│ This tool is provided for EDUCATIONAL PURPOSES ONLY │
│ │
│ Unauthorized access to computer networks is ILLEGAL │
│ │
│ Always obtain written permission before testing │
│ │
│ You are responsible for your actions │
│ │
└─────────────────────────────────────────────────────────────┘
忘れるな: 大いなる力には大いなる責任が伴う。このツールは倫理的かつ合法的に、責任を持って使用してください。
楽しい(許可された)テストを! 🔐
| チップセット | モデル例 | 特徴 | 価格帯 |
|---|
| RTL8812AU | Alfa AWUS036ACH、TP-Link Archer T4U | デュアルバンド(2.4/5GHz)、高出力、優れた範囲 | $40-60 |
| RTL8814AU | Alfa AWUS1900、TP-Link Archer T9UH | クワッドアンテナ、AC1900、長距離 | $60-80 |
| Atheros AR9271 | TP-Link TL-WN722N v1、Alfa AWUS036NHA | 安定性、サポート充実、低予算 | $20-35 |
| MT7612U | Panda PAU0D、Alfa AWUS036ACM | デュアルバンド、互換性良好 | $35-50 |
| RTL8188EU | 各種低予算アダプタ | 基本、2.4GHzのみ、エントリーレベル | $10-20 |