新聞中心
關于Wi-Fi Framework
Wi-Fi Framework是一款功能強大的WiFi安全測試工具,該工具本質(zhì)上來說是一個安全框架,可以幫助廣大研究人員更輕松地執(zhí)行Wi-Fi安全測試。除此之外,我們還可以利用Wi-Fi Framework來創(chuàng)建模糊測試工具,設計新的測試方案,創(chuàng)建PoC以驗證漏洞,自動化滲透測試或開發(fā)其他的漏洞測試工具。

創(chuàng)新互聯(lián) - 成都電信服務器托管,四川服務器租用,成都服務器租用,四川網(wǎng)通托管,綿陽服務器托管,德陽服務器托管,遂寧服務器托管,綿陽服務器托管,四川云主機,成都云主機,西南云主機,成都電信服務器托管,西南服務器托管,四川/成都大帶寬,機柜大帶寬、租用·托管,四川老牌IDC服務商
該框架的主要優(yōu)點是,它允許我們重用Linux的Wi-Fi功能,以便更輕松地實施安全測試。比如說,該框架可以幫我們連接(受保護的)Wi-Fi網(wǎng)絡,并在測試客戶端時為我們廣播信標。一般來說,Linux的任何Wi-Fi功能都可以重用,以更快地實施安全測試。
Wi-Fi Framework架構(gòu)
下圖顯示的是Wi-Fi Framework中Wi-Fi守護進程和框架組件架構(gòu):
工具安裝
該框架可以在本地Linux系統(tǒng)或虛擬機環(huán)境中運行。
首先,我們需要使用下列命令將該項目源碼克隆至本地:
git clone https://github.com/domienschepers/wifi-framework.git
接下來,使用下列命令安裝工具所需的依賴組件:
apt-get update
apt-get install git make gcc python3-venv net-tools
apt-get install libdbus-1-dev libnl-3-dev libnl-genl-3-dev libnl-route-3-dev libssl-dev
安裝完成之后,使用下列命令安裝框架:
cd ../dependencies
./build.sh
cd ../setup
./pysetup.sh
libwifi
libwifi庫作為一個git只模塊使用,需要手動安裝:
git submodule init
git submodule update
工具使用
初始化并激活Python環(huán)境:
source setup/venv/bin/activate
模擬Wi-Fi網(wǎng)絡接口:
./setup-hwsim.sh 4
運行工具并創(chuàng)建測試用例:
usage: run.py [-h] [--config CONFIG] [--binary BINARY] [--debug DEBUG] iface name
指定網(wǎng)絡配置信息:
cd setup
ln -s supplicant-wpa3-personal.conf supplicant.conf
工具使用樣例
假設我們現(xiàn)在需要測試客戶端是否使用全零密鑰去加密幀數(shù)據(jù),而這種情況可能發(fā)生在密鑰重新安裝攻擊期間。那么在Wi-Fi Framework的幫助下,我們無需重新實現(xiàn)接入點的所有功能,只需編寫以下測試用例即可:
class ExampleKrackZerokey(Test):
name = "example-krack-zero-key"
kind = Test.Authenticator
def __init__(self):
super().__init__([
# Replay 4-Way Handshake Message 3/4.
Action( trigger=Trigger.Connected, action=Action.Function ),
# Receive all frames and search for one encrypted with an all-zero key.
Action( trigger=Trigger.NoTrigger, action=Action.Receive ),
# When we receive such a frame, we can terminate the test.
Action( trigger=Trigger.Received, action=Action.Terminate )
])
def resend(self, station):
# Resend 4-Way Handshake Message 3/4.
station.wpaspy_command("RESEND_M3 " + station.clientmac )
def receive(self, station, frame):
if frame[Dot11].addr2 != station.clientmac or not frame.haslayer(Dot11CCMP):
return False
# Check if CCMP-encrypted frame can be decrypted using an all-zero key
plaintext = decrypt_ccmp(frame.getlayer(Dot11), tk=b"\x00"*16)
if plaintext is None: return False
# We received a valid plaintext frame!
log(STATUS,'Client encrypted a frame with an all-zero key!', color="green")
return Trueclass ExampleKrackZerokey(Test):
name = "example-krack-zero-key"
kind = Test.Authenticator
def __init__(self):
super().__init__([
# Replay 4-Way Handshake Message 3/4.
Action( trigger=Trigger.Connected, action=Action.Function ),
# Receive all frames and search for one encrypted with an all-zero key.
Action( trigger=Trigger.NoTrigger, action=Action.Receive ),
# When we receive such a frame, we can terminate the test.
Action( trigger=Trigger.Received, action=Action.Terminate )
])
def resend(self, station):
# Resend 4-Way Handshake Message 3/4.
station.wpaspy_command("RESEND_M3 " + station.clientmac )
def receive(self, station, frame):
if frame[Dot11].addr2 != station.clientmac or not frame.haslayer(Dot11CCMP):
return False
# Check if CCMP-encrypted frame can be decrypted using an all-zero key
plaintext = decrypt_ccmp(frame.getlayer(Dot11), tk=b"\x00"*16)
if plaintext is None: return False
# We received a valid plaintext frame!
log(STATUS,'Client encrypted a frame with an all-zero key!', color="green")
return True
上面的測試用例將創(chuàng)建一個客戶端能夠連接的接入點??蛻舳诉B接后,它將向客戶端發(fā)送4路握手消息。接下來,易受攻擊的客戶端將開始使用全零加密來密鑰,隨后測試用例將會自動檢測到這一情況。
我們也可以使用模擬Wi-Fi來運行上述測試用例:
./setup/setup-hwsim.sh 4
source setup/venv/bin/activate
./run.py wlan1 example-krack-zero-key
項目地址
Wi-Fi Framework:【??GitHub傳送門??】
本文名稱:Wi-FiFramework:一款功能強大的WiFi安全測試工具
鏈接URL:http://fisionsoft.com.cn/article/dpesogi.html


咨詢
建站咨詢
