溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ETF的框架和功能是什么

發(fā)布時(shí)間:2022-02-17 15:03:11 來(lái)源:億速云 閱讀:137 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹“ETF的框架和功能是什么”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“ETF的框架和功能是什么”文章能幫助大家解決問(wèn)題。

ETF 的架構(gòu)

ETF 的框架是用 Python 寫(xiě)的,因?yàn)檫@門(mén)開(kāi)發(fā)語(yǔ)言的代碼非常易讀,也方便其他開(kāi)發(fā)者向這個(gè)項(xiàng)目貢獻(xiàn)代碼。除此之外,很多 ETF 的庫(kù),比如 Scapy,都是為 Python 開(kāi)發(fā)的,很容易就能將它們用于 ETF。

ETF 的架構(gòu)(圖 1)分為不同的彼此交互的模塊。該框架的設(shè)置都寫(xiě)在一個(gè)單獨(dú)的配置文件里。用戶可以通過(guò) ConfigurationManager 類(lèi)里的用戶界面來(lái)驗(yàn)證并修改這些配置。其他模塊只能讀取這些設(shè)置并根據(jù)這些設(shè)置進(jìn)行運(yùn)行。

ETF的框架和功能是什么

圖 1:Evil-Twin 的框架架構(gòu)

ETF 支持多種與框架交互的用戶界面,當(dāng)前的默認(rèn)界面是一個(gè)交互式控制臺(tái)界面,類(lèi)似于 Metasploit 那種。正在開(kāi)發(fā)用于桌面/瀏覽器使用的圖形用戶界面(GUI)和命令行界面(CLI),移動(dòng)端界面也是未來(lái)的一個(gè)備選項(xiàng)。用戶可以使用交互式控制臺(tái)界面來(lái)修改配置文件里的設(shè)置(最終會(huì)使用 GUI)。用戶界面可以與存在于這個(gè)框架里的每個(gè)模塊進(jìn)行交互。

WiFi 模塊(AirCommunicator)用于支持多種 WiFi 功能和攻擊類(lèi)型。該框架確定了 Wi-Fi 通信的三個(gè)基本支柱:數(shù)據(jù)包嗅探、自定義數(shù)據(jù)包注入和創(chuàng)建接入點(diǎn)。三個(gè)主要的 WiFi 通信模塊 AirScanner、AirInjector,和 AirHost,分別用于數(shù)據(jù)包嗅探、數(shù)據(jù)包注入,和接入點(diǎn)創(chuàng)建。這三個(gè)類(lèi)被封裝在主 WiFi 模塊 AirCommunicator 中,AirCommunicator 在啟動(dòng)這些服務(wù)之前會(huì)先讀取這些服務(wù)的配置文件。使用這些核心功能的一個(gè)或多個(gè)就可以構(gòu)造任意類(lèi)型的 WiFi 攻擊。

要使用中間人(MITM)攻擊(這是一種攻擊 WiFi 客戶端的常見(jiàn)手法),ETF 有一個(gè)叫做 ETFITM(Evil-Twin Framework-in-the-Middle)的集成模塊,這個(gè)模塊用于創(chuàng)建一個(gè) web 代理,來(lái)攔截和修改經(jīng)過(guò)的 HTTP/HTTPS 數(shù)據(jù)包。

許多其他的工具也可以利用 ETF 創(chuàng)建的 MITM。通過(guò)它的可擴(kuò)展性,ETF 能夠支持它們,而不必單獨(dú)地調(diào)用它們,你可以通過(guò)擴(kuò)展 Spawner 類(lèi)來(lái)將這些工具添加到框架里。這使得開(kāi)發(fā)者和安全審計(jì)人員可以使用框架里預(yù)先配置好的參數(shù)字符來(lái)調(diào)用程序。

擴(kuò)展 ETF 的另一種方法就是通過(guò)插件。有兩類(lèi)插件:WiFi 插件和 MITM 插件。MITM 插件是在 MITM 代理運(yùn)行時(shí)可以執(zhí)行的腳本。代理會(huì)將 HTTP(s) 請(qǐng)求和響應(yīng)傳遞給可以記錄和處理它們的插件。WiFi 插件遵循一個(gè)更加復(fù)雜的執(zhí)行流程,但仍然會(huì)給想?yún)⑴c開(kāi)發(fā)并且使用自己插件的貢獻(xiàn)者提供一個(gè)相對(duì)簡(jiǎn)單的 API。WiFi 插件還可以進(jìn)一步地劃分為三類(lèi),其中每個(gè)對(duì)應(yīng)一個(gè)核心 WiFi 通信模塊。

每個(gè)核心模塊都有一些特定事件能觸發(fā)響應(yīng)的插件的執(zhí)行。舉個(gè)例子,AirScanner 有三個(gè)已定義的事件,可以對(duì)其響應(yīng)進(jìn)行編程處理。事件通常對(duì)應(yīng)于服務(wù)開(kāi)始運(yùn)行之前的設(shè)置階段、服務(wù)正在運(yùn)行時(shí)的中間執(zhí)行階段、服務(wù)完成后的卸載或清理階段。因?yàn)?Python 允許多重繼承,所以一個(gè)插件可以繼承多個(gè)插件類(lèi)。

上面的圖 1 是框架架構(gòu)的摘要。從 ConfigurationManager 指出的箭頭意味著模塊會(huì)從中讀取信息,指向它的箭頭意味著模塊會(huì)寫(xiě)入/修改配置。

使用 ETF 的例子

ETF 可以通過(guò)多種方式對(duì) WiFi 的網(wǎng)絡(luò)安全或者終端用戶的 WiFi 安全意識(shí)進(jìn)行滲透測(cè)試。下面的例子描述了這個(gè)框架的一些滲透測(cè)試功能,例如接入點(diǎn)和客戶端檢測(cè)、對(duì)使用 WPA 和 WEP 類(lèi)型協(xié)議的接入點(diǎn)進(jìn)行攻擊,和創(chuàng)建 evil twin 接入點(diǎn)。

這些例子是使用 ETF 和允許進(jìn)行 WiFi 數(shù)據(jù)捕獲的 WiFi 卡設(shè)計(jì)的。它們也在 ETF 設(shè)置命令中使用了下面這些縮寫(xiě):

  • APS Access Point SSID
  • APB Access Point BSSID
  • APC Access Point Channel
  • CM Client MAC address

在實(shí)際的測(cè)試場(chǎng)景中,確保你使用了正確的信息來(lái)替換這些縮寫(xiě)。

在解除認(rèn)證攻擊后捕獲 WPA 四次握手的數(shù)據(jù)包。

這個(gè)場(chǎng)景(圖 2)做了兩個(gè)方面的考慮:解除認(rèn)證攻擊和捕獲 WPA 四次握手?jǐn)?shù)據(jù)包的可能性。這個(gè)場(chǎng)景從一個(gè)啟用了 WPA/WPA2 的接入點(diǎn)開(kāi)始,這個(gè)接入點(diǎn)有一個(gè)已經(jīng)連上的客戶端設(shè)備(在本例中是一臺(tái)智能手機(jī))。目的是通過(guò)常規(guī)的解除認(rèn)證攻擊(LCTT 譯注:類(lèi)似于 DoS 攻擊)來(lái)讓客戶端斷開(kāi)和 WiFi 的網(wǎng)絡(luò),然后在客戶端嘗試重連的時(shí)候捕獲 WPA 的握手包。重連會(huì)在斷開(kāi)連接后馬上手動(dòng)完成。

ETF的框架和功能是什么

圖 2:在解除認(rèn)證攻擊后捕獲 WPA 握手包的場(chǎng)景

在這個(gè)例子中需要考慮的是 ETF 的可靠性。目的是確認(rèn)工具是否一直都能捕獲 WPA 的握手?jǐn)?shù)據(jù)包。每個(gè)工具都會(huì)用來(lái)多次復(fù)現(xiàn)這個(gè)場(chǎng)景,以此來(lái)檢查它們?cè)诓东@ WPA 握手?jǐn)?shù)據(jù)包時(shí)的可靠性。

使用 ETF 來(lái)捕獲 WPA 握手?jǐn)?shù)據(jù)包的方法不止一種。一種方法是使用 AirScanner 和 AirInjector 兩個(gè)模塊的組合;另一種方法是只使用 AirInjector。下面這個(gè)場(chǎng)景是使用了兩個(gè)模塊的組合。

ETF 啟用了 AirScanner 模塊并分析 IEEE 802.11 數(shù)據(jù)幀來(lái)發(fā)現(xiàn) WPA 握手包。然后 AirInjecto 就可以使用解除認(rèn)證攻擊來(lái)強(qiáng)制客戶端斷開(kāi)連接,以進(jìn)行重連。必須在 ETF 上執(zhí)行下面這些步驟才能完成上面的目標(biāo):

  1. 進(jìn)入 AirScanner 配置模式:config airscanner
  2. 設(shè)置 AirScanner 不跳信道:config airscanner
  3. 設(shè)置信道以嗅探經(jīng)過(guò) WiFi 接入點(diǎn)信道的數(shù)據(jù)(APC):set fixed_sniffing_channel =
  4. 使用 CredentialSniffer 插件來(lái)啟動(dòng) AirScanner 模塊:start airscanner with credentialsniffer
  5. 從已嗅探的接入點(diǎn)列表中添加目標(biāo)接入點(diǎn)的 BSSID(APS):add aps where ssid =
  6. 啟用 AirInjector 模塊,在默認(rèn)情況下,它會(huì)啟用解除認(rèn)證攻擊:start airinjector

這些簡(jiǎn)單的命令設(shè)置能讓 ETF 在每次測(cè)試時(shí)執(zhí)行成功且有效的解除認(rèn)證攻擊。ETF 也能在每次測(cè)試的時(shí)候捕獲 WPA 的握手?jǐn)?shù)據(jù)包。下面的代碼能讓我們看到 ETF 成功的執(zhí)行情況。

███████╗████████╗███████╗
██╔════╝╚══██╔══╝██╔════╝
█████╗     ██║   █████╗
██╔══╝     ██║   ██╔══╝
███████╗   ██║   ██║
╚══════╝   ╚═╝   ╚═╝
[+] Do you want to load an older session? [Y/n]: n
[+] Creating new temporary session on 02/08/2018
[+] Enter the desired session name:
ETF[etf/aircommunicator/]::> config airscanner
ETF[etf/aircommunicator/airscanner]::> listargs
sniffing_interface =               wlan1; (var)
probes =                True; (var)
beacons =                True; (var)
hop_channels =               false; (var)
fixed_sniffing_channel =                  11; (var)
ETF[etf/aircommunicator/airscanner]::> start airscanner with
arpreplayer        caffelatte         credentialsniffer  packetlogger       selfishwifi
ETF[etf/aircommunicator/airscanner]::> start airscanner with credentialsniffer
[+] Successfully added credentialsniffer plugin.
[+] Starting packet sniffer on interface 'wlan1'[+] Set fixed channel to 11
ETF[etf/aircommunicator/airscanner]::> add aps where ssid = CrackWPA
ETF[etf/aircommunicator/airscanner]::> start airinjector
ETF[etf/aircommunicator/airscanner]::> [+] Starting deauthentication attack
- 1000 bursts of 1 packets
- 1 different packets
[+] Injection attacks finished executing.
[+] Starting post injection methods
[+] Post injection methods finished
[+] WPA Handshake found for client '70:3e:ac:bb:78:64' and network 'CrackWPA'

使用 ARP 重放攻擊并破解 WEP 無(wú)線網(wǎng)絡(luò)

下面這個(gè)場(chǎng)景(圖 3)將關(guān)注地址解析協(xié)議(ARP)重放攻擊的效率和捕獲包含初始化向量(IVs)的 WEP 數(shù)據(jù)包的速度。相同的網(wǎng)絡(luò)可能需要破解不同數(shù)量的捕獲的 IVs,所以這個(gè)場(chǎng)景的 IVs 上限是 50000。如果這個(gè)網(wǎng)絡(luò)在首次測(cè)試期間,還未捕獲到 50000 IVs 就崩潰了,那么實(shí)際捕獲到的 IVs 數(shù)量會(huì)成為這個(gè)網(wǎng)絡(luò)在接下來(lái)的測(cè)試?yán)锏男碌纳舷?。我們使?aircrack-ng 對(duì)數(shù)據(jù)包進(jìn)行破解。

測(cè)試場(chǎng)景從一個(gè)使用 WEP 協(xié)議進(jìn)行加密的 WiFi 接入點(diǎn)和一臺(tái)知道其密鑰的離線客戶端設(shè)備開(kāi)始 —— 為了測(cè)試方便,密鑰使用了 12345,但它可以是更長(zhǎng)且更復(fù)雜的密鑰。一旦客戶端連接到了 WEP 接入點(diǎn),它會(huì)發(fā)送一個(gè)不必要的 ARP 數(shù)據(jù)包;這是要捕獲和重放的數(shù)據(jù)包。一旦被捕獲的包含 IVs 的數(shù)據(jù)包數(shù)量達(dá)到了設(shè)置的上限,測(cè)試就結(jié)束了。

ETF的框架和功能是什么

圖 3:在進(jìn)行解除認(rèn)證攻擊后捕獲 WPA 握手包的場(chǎng)景

ETF 使用 Python 的 Scapy 庫(kù)來(lái)進(jìn)行包嗅探和包注入。為了最大限度地解決 Scapy 里的已知的性能問(wèn)題,ETF 微調(diào)了一些低級(jí)庫(kù),來(lái)大大加快包注入的速度。對(duì)于這個(gè)特定的場(chǎng)景,ETF 為了更有效率地嗅探,使用了 tcpdump 作為后臺(tái)進(jìn)程而不是 Scapy,Scapy 用于識(shí)別加密的 ARP 數(shù)據(jù)包。

這個(gè)場(chǎng)景需要在 ETF 上執(zhí)行下面這些命令和操作:

  1. 進(jìn)入 AirScanner 設(shè)置模式:config airscanner
  2. 設(shè)置 AirScanner 不跳信道:set hop_channels = false
  3. 設(shè)置信道以嗅探經(jīng)過(guò)接入點(diǎn)信道的數(shù)據(jù)(APC):set fixed_sniffing_channel =
  4. 進(jìn)入 ARPReplayer 插件設(shè)置模式:config arpreplayer
  5. 設(shè)置 WEP 網(wǎng)絡(luò)目標(biāo)接入點(diǎn)的 BSSID(APB):set target_ap_bssid
  6. 使用 ARPReplayer 插件啟動(dòng) AirScanner 模塊:start airscanner with arpreplayer

在執(zhí)行完這些命令后,ETF 會(huì)正確地識(shí)別加密的 ARP 數(shù)據(jù)包,然后成功執(zhí)行 ARP 重放攻擊,以此破壞這個(gè)網(wǎng)絡(luò)。

使用一款全能型蜜罐

圖 4 中的場(chǎng)景使用相同的 SSID 創(chuàng)建了多個(gè)接入點(diǎn),對(duì)于那些可以探測(cè)到但是無(wú)法接入的 WiFi 網(wǎng)絡(luò),這個(gè)技術(shù)可以發(fā)現(xiàn)網(wǎng)絡(luò)的加密類(lèi)型。通過(guò)啟動(dòng)具有所有安全設(shè)置的多個(gè)接入點(diǎn),客戶端會(huì)自動(dòng)連接和本地緩存的接入點(diǎn)信息相匹配的接入點(diǎn)。

ETF的框架和功能是什么

圖 4:在解除認(rèn)證攻擊后捕獲 WPA 握手包數(shù)據(jù)。

使用 ETF,可以去設(shè)置 hostapd 配置文件,然后在后臺(tái)啟動(dòng)該程序。hostapd 支持在一張無(wú)線網(wǎng)卡上通過(guò)設(shè)置虛擬接口開(kāi)啟多個(gè)接入點(diǎn),并且因?yàn)樗С炙蓄?lèi)型的安全設(shè)置,因此可以設(shè)置完整的全能蜜罐。對(duì)于使用 WEP 和 WPA(2)-PSK 的網(wǎng)絡(luò),使用默認(rèn)密碼,和對(duì)于使用 WPA(2)-EAP 的網(wǎng)絡(luò),配置“全部接受”策略。

對(duì)于這個(gè)場(chǎng)景,必須在 ETF 上執(zhí)行下面的命令和操作:

  1. 進(jìn)入 APLauncher 設(shè)置模式:config aplauncher
  2. 設(shè)置目標(biāo)接入點(diǎn)的 SSID(APS):set ssid =
  3. 設(shè)置 APLauncher 為全部接收的蜜罐:set catch_all_honeypot = true
  4. 啟動(dòng) AirHost 模塊:start airhost

使用這些命令,ETF 可以啟動(dòng)一個(gè)包含所有類(lèi)型安全配置的完整全能蜜罐。ETF 同樣能自動(dòng)啟動(dòng) DHCP 和 DNS 服務(wù)器,從而讓客戶端能與互聯(lián)網(wǎng)保持連接。ETF 提供了一個(gè)更好、更快、更完整的解決方案來(lái)創(chuàng)建全能蜜罐。下面的代碼能夠看到 ETF 的成功執(zhí)行。

███████╗████████╗███████╗
██╔════╝╚══██╔══╝██╔════╝
█████╗     ██║   █████╗
██╔══╝     ██║   ██╔══╝
███████╗   ██║   ██║
╚══════╝   ╚═╝   ╚═╝
[+] Do you want to load an older session? [Y/n]: n
[+] Creating ne´,cxzw temporary session on 03/08/2018
[+] Enter the desired session name:
ETF[etf/aircommunicator/]::> config aplauncher
ETF[etf/aircommunicator/airhost/aplauncher]::> setconf ssid CatchMe
ssid = CatchMe
ETF[etf/aircommunicator/airhost/aplauncher]::> setconf catch_all_honeypot truecatch_all_honeypot = trueETF[etf/aircommunicator/airhost/aplauncher]::> start airhost
[+] Killing already started processes and restarting network services
[+] Stopping dnsmasq and hostapd services
[+] Access Point stopped...
[+] Running airhost plugins pre_start
[+] Starting hostapd background process
[+] Starting dnsmasq service
[+] Running airhost plugins post_start
[+] Access Point launched successfully
[+] Starting dnsmasq service

關(guān)于“ETF的框架和功能是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI