自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

繞過(guò)Cisco TACACS+的三種攻擊方式

安全 黑客攻防
一般來(lái)說(shuō),在一個(gè)大型網(wǎng)絡(luò)中會(huì)有很多網(wǎng)絡(luò)設(shè)備,如何管理這些網(wǎng)絡(luò)設(shè)備的訪問(wèn)權(quán)限可能是個(gè)大問(wèn)題。因此,大多數(shù)公司都會(huì)實(shí)現(xiàn)集中化的權(quán)限訪問(wèn)協(xié)議。Cisco 設(shè)備支持 TACACS+ 和 RADIUS 協(xié)議。在這篇文章中,作者介紹了繞過(guò) Cisco設(shè)備的TACACS 的三種方式。

在這篇文章中,作者介紹了繞過(guò)Cisco設(shè)備的 TACACS 的三種方式。

No.1 利用DoS攻擊繞過(guò) Cisco TACACS+

No.2 本地爆破PSK繞過(guò) Cisco TACACS+

No.3 利用中間人攻擊繞過(guò) Cisco TACACS+

一般來(lái)說(shuō),在一個(gè)大型網(wǎng)絡(luò)中會(huì)有很多網(wǎng)絡(luò)設(shè)備,如何管理這些網(wǎng)絡(luò)設(shè)備的訪問(wèn)權(quán)限可能是個(gè)大問(wèn)題。因此,大多數(shù)公司都會(huì)實(shí)現(xiàn)集中化的權(quán)限訪問(wèn)協(xié)議。Cisco 設(shè)備支持 TACACS+ 和 RADIUS 協(xié)議。

0x00 TACACS 協(xié)議簡(jiǎn)介

TACACS(Terminal Access Controller Access Control System,終端訪問(wèn)控制器控制系統(tǒng)協(xié)議)是一種用于認(rèn)證的計(jì)算機(jī)協(xié)議,在 UNIX 網(wǎng)絡(luò)中與認(rèn)證服務(wù)器進(jìn)行通信,TACACS 允許遠(yuǎn)程訪問(wèn)服務(wù)器與認(rèn)證服務(wù)器通信,以決定用戶是否有權(quán)限訪問(wèn)網(wǎng)絡(luò)。

TACACS 允許客戶端接受用戶名和口令,并發(fā)往通常稱作 TACACS 守護(hù)進(jìn)程(或者簡(jiǎn)單地稱作 TACACSD )的 TACACS 認(rèn)證服務(wù)器,這個(gè)服務(wù)器一般是在主機(jī)上運(yùn)行的一個(gè)程序。主機(jī)將決定是否接受或拒絕請(qǐng)求,并發(fā)回一個(gè)響應(yīng)。 TIP(用戶想要登錄的接受撥入鏈接的路由節(jié)點(diǎn))將基于這個(gè)響應(yīng)接受或拒絕訪問(wèn)。這樣,做出決定的過(guò)程是"向上開(kāi)放"(opened up)的,做出決定所用的算法和數(shù)據(jù)完全由 TACACS 守護(hù)進(jìn)程的運(yùn)行者控制。

Cisco 在 1990 引進(jìn)的最近的 TACACS 版本稱作 XTACACS(擴(kuò)展 TACACS)。在較新的或更新過(guò)的網(wǎng)絡(luò)中,這兩個(gè)版本大多被 TACACS+ 和 RADIUS 所取代。

TACACS 在RFC 1492中定義,默認(rèn)使用 TCP 或 UDP 協(xié)議的 49 端口。

0x01 TACACS+ 協(xié)議簡(jiǎn)介

TACACS+ 是一個(gè)全新的協(xié)議,與 TACACS 和 XTACACS 并不兼容。TACACS+ 所使用的端口為 TCP/49。

TACACS+(Terminal Access Controller Access Control System Plus)是在 TACACS 協(xié)議的基礎(chǔ)上進(jìn)行了功能增強(qiáng)的安全協(xié)議。該協(xié)議與 RADIUS 協(xié)議的功能類似,采用客戶端/服務(wù)器模式實(shí)現(xiàn) NAS 與 TACACS+ 服務(wù)器之間的通信。

TACACS+ 協(xié)議主要用于 PPP 和 VPDN(Virtual Private Dial-up Network,虛擬私有撥號(hào)網(wǎng)絡(luò))接入用戶及終端用戶的 AAA。

AAA 是 Authentication、Authorization、Accounting(認(rèn)證、授權(quán)、計(jì)費(fèi))的簡(jiǎn)稱,是網(wǎng)絡(luò)安全的一種管理機(jī)制,提供了認(rèn)證、授權(quán)、計(jì)費(fèi)三種安全功能。

認(rèn)證:確認(rèn)訪問(wèn)網(wǎng)絡(luò)的遠(yuǎn)程用戶的身份,判斷訪問(wèn)者是否為合法的網(wǎng)絡(luò)用戶。

授權(quán):對(duì)不同用戶賦予不同的權(quán)限,限制用戶可以使用的服務(wù)。例如用戶成功登錄服務(wù)器后,管理員可以授權(quán)用戶對(duì)服務(wù)器中的文件進(jìn)行訪問(wèn)和打印操作。

計(jì)費(fèi):記錄用戶使用網(wǎng)絡(luò)服務(wù)中的所有操作,包括使用的服務(wù)類型、起始時(shí)間、數(shù)據(jù)流量等,它不僅是一種計(jì)費(fèi)手段,也對(duì)網(wǎng)絡(luò)安全起到了監(jiān)視作用。

0x02 TACACS+ 認(rèn)證過(guò)程

TACACS+ 服務(wù)通常會(huì)有一個(gè)特殊的服務(wù)器,所有的網(wǎng)絡(luò)設(shè)備都會(huì)被配置成使用 TACACS+ 服務(wù)器進(jìn)行身份驗(yàn)證。當(dāng)一個(gè)用戶在交換機(jī),路由器或其他網(wǎng)絡(luò)設(shè)備上進(jìn)行認(rèn)證時(shí),網(wǎng)絡(luò)設(shè)備會(huì)發(fā)送該用戶的憑證到 TACACS+ 服務(wù)器進(jìn)行驗(yàn)證,然后決定分配訪問(wèn)相關(guān)設(shè)備的權(quán)限,并將這些決定的結(jié)果包含在應(yīng)答數(shù)據(jù)包中并發(fā)送到網(wǎng)絡(luò)設(shè)備上,再由網(wǎng)絡(luò)設(shè)備發(fā)送到用戶終端。

 

p1

圖 1 : TACACS+ 認(rèn)證過(guò)程

 

這是一個(gè)非常方便和集中化的做法。可以在不同的設(shè)備上為用戶設(shè)置不同的權(quán)限。還有就是記錄訪問(wèn)和操作均在服務(wù)器端。也可以在當(dāng)前這種模式下再添加一種集中化式的管理方式,如 Active Directory 或 LDAP。不過(guò),思科已將 TACACS+ 協(xié)議規(guī)范公開(kāi),所以現(xiàn)在有了一種 TACACS+ 服務(wù)的開(kāi)源實(shí)現(xiàn)。

0x03 繞過(guò) Cisco TACACS+ 的三種攻擊方式

No.1 利用 DoS 攻擊繞過(guò) Cisco TACACS+

第一種攻擊方式并不是一種攻擊類型,準(zhǔn)確的說(shuō)是一個(gè)技巧,但是有時(shí)候在某些情況下是非常有用的。

讓我們假定這么一個(gè)場(chǎng)景:

某滲透人員在目標(biāo)公司的 TFTP 服務(wù)器中下載到了 Cisco 設(shè)備的配置文件,但是即使利用該配置文件破解出了設(shè)備的登陸賬戶信息,也依舊無(wú)法登陸到該設(shè)備中,原因就在于該設(shè)備將會(huì)使用 TACACS+ 服務(wù)驗(yàn)證本地賬戶。

使用 TACACS+ 進(jìn)行身份驗(yàn)證是網(wǎng)絡(luò)設(shè)備的一種典型配置。讓我們繼續(xù)假設(shè),在 TACACS+ 服務(wù)器與網(wǎng)絡(luò)設(shè)備之間發(fā)生了點(diǎn)什么,導(dǎo)致網(wǎng)絡(luò)設(shè)備無(wú)法訪問(wèn) TACACS+ 服務(wù)器。在這種情況,連管理員自己都不可能登錄到網(wǎng)絡(luò)設(shè)備中。為了解決這樣的典型情況,Cisco 設(shè)備支持認(rèn)證方式的回退,管理員可以設(shè)置不同的認(rèn)證配置。

在 Cisco 設(shè)備中,一種使用 TACACS+ 進(jìn)行身份驗(yàn)證的典型配置如下:

aaa authentication login default group tacacs+ local

上述配置表明,首選的身份驗(yàn)證為 TACACS+,之后才會(huì)使用本地驗(yàn)證方式(查詢本地?cái)?shù)據(jù)庫(kù))進(jìn)行身份驗(yàn)證。同時(shí),要注意,即使 TACACS+ 服務(wù)沒(méi)有發(fā)現(xiàn)一個(gè)用戶的認(rèn)證憑證,設(shè)備也不會(huì)使用本地驗(yàn)證方式。

也就是說(shuō),只有在 TACACS+ 服務(wù)不可用時(shí),才會(huì)使用本地驗(yàn)證方式。

所以,第一種攻擊思路很簡(jiǎn)單。我們只要對(duì) TACACS+ 服務(wù)發(fā)動(dòng) DoS 攻擊,之后連接到 Cisco 設(shè)備的本地帳戶中(從 TFTP 服務(wù)器中下載并破解得到)。由于 TACACS+ 服務(wù)遭到 DoS 攻擊無(wú)法訪問(wèn),所以網(wǎng)絡(luò)設(shè)備會(huì)提供給我們所期望的訪問(wèn)權(quán)限。我們可以使用多種 DoS 攻擊。例如,我們可以發(fā)動(dòng)臨時(shí)的 DoS 攻擊,對(duì) TACACS+ 服務(wù)器創(chuàng)建大量基于 TCP 的連接。

 

p2

圖 2 :對(duì) TACACS+ 服務(wù)器發(fā)動(dòng) DoS 攻擊

 

在介紹第二種和第三種攻擊方式前需要了解的知識(shí)

在介紹第二種和第三種攻擊方式前,我們需要了解一下 TACACS+ 協(xié)議。該協(xié)議的數(shù)據(jù)是明文或者是加密后傳輸?shù)摹2捎昧嘶赑SK(預(yù)共享密鑰)的自定義加密方式。管理員可以在 TACACS+ 服務(wù)器上設(shè)置加密密鑰,只要能夠訪問(wèn)到 TACACS+ 服務(wù)器的網(wǎng)絡(luò)設(shè)備都會(huì)在身份驗(yàn)證時(shí)使用這個(gè)加密密鑰。

有一點(diǎn)值得注意的是,只有用戶的憑證數(shù)據(jù)是加密的, TACACS+ 協(xié)議的報(bào)頭信息并沒(méi)有加密。

加密的具體細(xì)節(jié)如下:

加密的結(jié)果(enc_data)是未加密的用戶的憑證數(shù)據(jù) (data)與一個(gè)特殊的字符串(pseudo_pad)進(jìn)行XOR操作后得到的。

data^pseudo_pad = enc_data

pseudo_pad 是幾個(gè)拼接的 MD5 哈希。

pseudo_pad = {MD5_1 [,MD5_2 [ ... ,MD5_n]]}

MD5 哈希的值是對(duì) TACACS+ 數(shù)據(jù)包報(bào)頭信息,密鑰(PSK)和前一個(gè) MD5 哈希值加密的結(jié)果。因此,可以看到,第一個(gè) MD5 是沒(méi)有前一個(gè) MD5 哈希值的。

MD5_1 = MD5{session_id, key, version, seq_no}
MD5_2 = MD5{session_id, key, version, seq_no, MD5_1}
....
MD5_n = MD5{session_id, key, version, seq_no, MD5_n-1}

SESSION_ID - 是一個(gè)會(huì)話的隨機(jī)標(biāo)識(shí)符;

version - TACACS+ 協(xié)議的版本;

seq_no - 會(huì)話數(shù)據(jù)包的增量;

key - PSK。

加密的數(shù)據(jù)如下圖所示:

 

p3

圖 3 :數(shù)據(jù)包中的加密數(shù)據(jù)

 

No.2 爆破 PSK 繞過(guò) Cisco TACACS+

OK,了解了上面的一些知識(shí)后,我們就可以理解后面兩種攻擊方式了。

假設(shè)現(xiàn)在有一臺(tái) Cisco 網(wǎng)絡(luò)設(shè)備和一臺(tái) TACACS+ 服務(wù)器,我們已經(jīng)得到了這兩臺(tái)服務(wù)器之間傳輸?shù)?TACACS+ 協(xié)議的加密數(shù)據(jù)(可以通過(guò)中間人攻擊得到)?,F(xiàn)在,我們只要得到了 PSK 就可以解密已加密的數(shù)據(jù),之后,我們就可以得到一個(gè)有效的賬戶了。

現(xiàn)在,讓我們看看該如何做到這一點(diǎn)。首先,我們可以看到,任何一個(gè) MD5 哈希(尤其是第一個(gè) MD5)都是由幾個(gè)固定的值組成的。但是,其中只有一個(gè)是未知的 —— PSK。所有其它的值(SESSION_ID,version,seq_no),我們都可以從 TACACS+ 數(shù)據(jù)包的報(bào)頭中獲取到。因此,我們可以使用本地離線暴力破解攻擊的方式獲得 PSK。而我們知道,暴力破解 MD5 是很快的。但在開(kāi)始爆破前,我們需要得到第一個(gè) MD5 哈希(MD5_1)。

我們知道,XOR 是一種可逆性的操作。所以,我們可以這樣做

data^pseudo_pad = enc_data

將其轉(zhuǎn)換為

pseudo_pad = data^enc_data

MD5_1只是pseudo_pad的第一部分。pseudo_pad的大小為 128位(或16字節(jié))。如果我們想得到MD5_1,我們需要知道 16字節(jié)的已加密和已解密的數(shù)據(jù)即(data)。我們可以從傳輸?shù)臄?shù)據(jù)包中獲得已加密數(shù)據(jù)。但是,現(xiàn)在我們?nèi)绾尾拍艿玫?16字節(jié) 的解密數(shù)據(jù)呢?

需要注意的是,身份驗(yàn)證、授權(quán)、計(jì)費(fèi)這三種類型的 TACACS + 數(shù)據(jù)包的請(qǐng)求和響應(yīng)的格式是不同的。然而,對(duì)于這些不同的數(shù)據(jù)包,我有一個(gè)通用的思路,因?yàn)?,在任何類型的?shù)據(jù)包的前 16 個(gè)字節(jié)中幾乎沒(méi)有未知的或隨機(jī)的值。

我不會(huì)去深究每種數(shù)據(jù)包類型中的技術(shù)細(xì)節(jié)。只是舉一個(gè)例子以說(shuō)明這個(gè)想法。這是 TACACS+ 服務(wù)器響應(yīng)的第一個(gè)數(shù)據(jù)包(如下圖所示)。它由幾個(gè)具有單一意義的字段和一條 Cisco 設(shè)備發(fā)送給用戶的問(wèn)候消息組成。由于我們可以任意連接到 Cisco 設(shè)備,所以就可以很輕易的得到響應(yīng)數(shù)據(jù)包同時(shí)也就知道了所有字段的值。

 

p4

圖 4 : TACACS+ 服務(wù)器響應(yīng)的第一個(gè)數(shù)據(jù)包

 

因此,從目前來(lái)看,我們幾乎總是可以知道任何數(shù)據(jù)包的前 16 字節(jié)解密后的數(shù)據(jù)。所以我們就可以得到MD5_1,并使用本地離線暴力破解進(jìn)行攻擊。如果爆破成功了,我們就能夠解密整個(gè)通信的數(shù)據(jù)。為了簡(jiǎn)化數(shù)據(jù)包的接收并解析出MD5_1,我寫了一個(gè)小腳本 —— tac2cat.py。它是TacoTaco 項(xiàng)目的一部分。

No.3 利用中間人攻擊 繞過(guò) Cisco TACACS+

對(duì)于最后一種攻擊方式,我們可以利用中間人攻擊篡改 TACACS+ 服務(wù)器和 Cisco 設(shè)備之間傳輸?shù)臄?shù)據(jù)。我們的目的是獲取到 Cisco 設(shè)備的所有權(quán)限。

在重新審查 TACACS+ 協(xié)議時(shí),我發(fā)現(xiàn)了兩個(gè)額外的"特點(diǎn)"。

第一個(gè)是在 TACACS+ 協(xié)議傳輸過(guò)程中并沒(méi)有檢查數(shù)據(jù)包的完整性。所以,如果我們利用中間人攻擊改變了傳輸中的加密的部分,那么也就改變了解密的結(jié)果 (因?yàn)樗贿M(jìn)行了 XOR 操作),但 TACACS+ 服務(wù)器并不會(huì)發(fā)現(xiàn)所做的更改,并以正常的方式處理已經(jīng)被修改過(guò)的傳輸數(shù)據(jù)。

 

p5

圖 5 : TACACS+ 協(xié)議數(shù)據(jù)包

 

第二個(gè)特點(diǎn)是關(guān)于 TACACS+ 數(shù)據(jù)包的格式。在身份驗(yàn)證和授權(quán)的過(guò)程中,應(yīng)答的數(shù)據(jù)包中的第一個(gè)字節(jié)指示了訪問(wèn)權(quán)限授予的結(jié)果。

例如,"0x01"代表了用戶通過(guò)了服務(wù)器的身份驗(yàn)證過(guò)程 (授予訪問(wèn)權(quán)限) ,"0x02"代表了用戶的憑據(jù)是無(wú)效的。

總之,我們只需要更改服務(wù)器應(yīng)答的數(shù)據(jù)包的一個(gè)字節(jié)即可!

獲取該字節(jié)的pseudo_pad: 將加密的字節(jié)和解密的字節(jié)進(jìn)行 XOR 操作 (我們知道解密的字節(jié)的值,因?yàn)槿绻覀冚斎氩徽_的憑據(jù)后,服務(wù)器會(huì)拒絕訪問(wèn)并設(shè)置第一個(gè)字節(jié)為 0x02。

將這個(gè)pseudo_pad與成功的身份驗(yàn)證標(biāo)識(shí) (0x01) 進(jìn)行 XOR 操作

將新的字節(jié)加入到加密的數(shù)據(jù)包中并發(fā)送給服務(wù)器。

因此,利用中間人攻擊,我們可以對(duì)任何使用無(wú)效憑證的用戶的傳輸數(shù)據(jù)和訪問(wèn)權(quán)限授予(身份認(rèn)證和授權(quán))進(jìn)行更改。此外,我們也可以繞過(guò) Cisco 設(shè)備中特權(quán)用戶提升(“enable” 密碼)的身份驗(yàn)證過(guò)程。

為了方便進(jìn)行中間人攻擊,我寫了一個(gè)小腳本——tacflip.py,是 TacoTaco 項(xiàng)目的一部分。

我已經(jīng)在 Cisco 7200 路由器的 GNS3 模擬器和開(kāi)源實(shí)現(xiàn)的 TACACS+ 服務(wù)器——tac_plus 中成功驗(yàn)證了這種(繞過(guò)身份驗(yàn)證,特權(quán)用戶提升授權(quán))攻擊方式,下面是路由器中配置文件的一部分:

aaa authentication login default group tacacs+ local
aaa authentication enable default group tacacs+
aaa authorization exec default group tacacs+ local
tacacs-server host 192.168.182.136
tacacs-server directed-request
tacacs-server key 12345

這個(gè)小視頻演示了在 Cisco 路由上進(jìn)行繞過(guò)身份驗(yàn)證/授權(quán)、特權(quán)提權(quán)和命令執(zhí)行的攻擊過(guò)程。

點(diǎn)我看小視頻

0x04 一點(diǎn)兒題外話

在 2000 年,Solar Designer 針對(duì) TACACS+ 協(xié)議做了一個(gè)很有趣的研究(鏈接在此),例如,他發(fā)現(xiàn)了重放攻擊,用戶密碼長(zhǎng)度信息泄漏,位翻轉(zhuǎn)攻擊等漏洞。但我并沒(méi)有找到 這些漏洞的 PoCs。

對(duì)于我對(duì) TACACS+ 協(xié)議所做的"研究",都是在與協(xié)議進(jìn)行了隨機(jī)的互動(dòng)操作后的很長(zhǎng)一段時(shí)間里的一些想法。正因?yàn)槿绱?,我忘了有關(guān) Solar Designer 研究的結(jié)果并且重新了解了他的一些發(fā)現(xiàn)。

因此,可能我工作的最重要的結(jié)果就是 TacoTaco 項(xiàng)目。它是這篇文章所講述的攻擊方式的具體實(shí)現(xiàn)。

0x05 總結(jié)

從目前來(lái)看,我認(rèn)為,TACACS+ 協(xié)議并沒(méi)有針對(duì)中間人攻擊提供必要的保護(hù)級(jí)別。

不過(guò)話又說(shuō)回來(lái),有時(shí)很難在實(shí)戰(zhàn)中執(zhí)行所有這些攻擊操作,因?yàn)?Cisco 建議將 TACACS+ 服務(wù)器放置在一個(gè)特殊的管理方式中 —— VLAN (只有管理員和網(wǎng)絡(luò)設(shè)備才能訪問(wèn)) 。當(dāng)然,也有方法可以滲透到 VLAN 中并控制它,不過(guò)這就是另一碼事兒了。

0x06 參考及引用

https://zh.wikipedia.org/wiki/TACACS

http://www.h3c.com.cn/MiniSite/Technology_Circle/Net_Reptile/The_Seven/Home/Catalog/201309/797633_97665_0.htm

https://zh.wikipedia.org/wiki/TACACS%2B

原文地址:3 attacks on cisco tacacs bypassing

責(zé)任編輯:藍(lán)雨淚 來(lái)源: 烏云知識(shí)庫(kù)
相關(guān)推薦

2019-12-17 09:01:35

網(wǎng)絡(luò)犯罪網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2011-04-08 11:13:50

CISCO IOS令牌桶雙桶

2010-08-24 09:43:33

2009-10-29 16:41:23

2018-06-10 16:31:12

2018-12-18 16:30:16

Commvault勒索軟件

2012-11-30 14:35:17

2016-12-26 15:49:25

2011-12-28 10:10:54

2012-11-27 16:41:42

2013-07-10 11:04:37

2013-05-14 15:08:02

2012-07-17 09:16:16

SpringSSH

2022-08-19 15:40:08

密碼證書安全

2011-03-17 14:49:40

2014-12-31 17:42:47

LBSAndroid地圖

2021-06-24 08:52:19

單點(diǎn)登錄代碼前端

2021-11-05 21:33:28

Redis數(shù)據(jù)高并發(fā)

2019-11-20 18:52:24

物聯(lián)網(wǎng)智能照明智能恒溫器

2020-11-01 17:10:46

異步事件開(kāi)發(fā)前端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)