成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

繞過Cisco TACACS+的三種攻擊方式

安全 黑客攻防
一般來說,在一個大型網絡中會有很多網絡設備,如何管理這些網絡設備的訪問權限可能是個大問題。因此,大多數公司都會實現集中化的權限訪問協議。Cisco 設備支持 TACACS+ 和 RADIUS 協議。在這篇文章中,作者介紹了繞過 Cisco設備的TACACS 的三種方式。

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

No.1 利用DoS攻擊繞過 Cisco TACACS+

No.2 本地爆破PSK繞過 Cisco TACACS+

No.3 利用中間人攻擊繞過 Cisco TACACS+

一般來說,在一個大型網絡中會有很多網絡設備,如何管理這些網絡設備的訪問權限可能是個大問題。因此,大多數公司都會實現集中化的權限訪問協議。Cisco 設備支持 TACACS+ 和 RADIUS 協議。

0x00 TACACS 協議簡介

TACACS(Terminal Access Controller Access Control System,終端訪問控制器控制系統協議)是一種用于認證的計算機協議,在 UNIX 網絡中與認證服務器進行通信,TACACS 允許遠程訪問服務器與認證服務器通信,以決定用戶是否有權限訪問網絡。

TACACS 允許客戶端接受用戶名和口令,并發往通常稱作 TACACS 守護進程(或者簡單地稱作 TACACSD )的 TACACS 認證服務器,這個服務器一般是在主機上運行的一個程序。主機將決定是否接受或拒絕請求,并發回一個響應。 TIP(用戶想要登錄的接受撥入鏈接的路由節點)將基于這個響應接受或拒絕訪問。這樣,做出決定的過程是"向上開放"(opened up)的,做出決定所用的算法和數據完全由 TACACS 守護進程的運行者控制。

Cisco 在 1990 引進的最近的 TACACS 版本稱作 XTACACS(擴展 TACACS)。在較新的或更新過的網絡中,這兩個版本大多被 TACACS+ 和 RADIUS 所取代。

TACACS 在RFC 1492中定義,默認使用 TCP 或 UDP 協議的 49 端口。

0x01 TACACS+ 協議簡介

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

TACACS+(Terminal Access Controller Access Control System Plus)是在 TACACS 協議的基礎上進行了功能增強的安全協議。該協議與 RADIUS 協議的功能類似,采用客戶端/服務器模式實現 NAS 與 TACACS+ 服務器之間的通信。

TACACS+ 協議主要用于 PPP 和 VPDN(Virtual Private Dial-up Network,虛擬私有撥號網絡)接入用戶及終端用戶的 AAA。

AAA 是 Authentication、Authorization、Accounting(認證、授權、計費)的簡稱,是網絡安全的一種管理機制,提供了認證、授權、計費三種安全功能。

認證:確認訪問網絡的遠程用戶的身份,判斷訪問者是否為合法的網絡用戶。

授權:對不同用戶賦予不同的權限,限制用戶可以使用的服務。例如用戶成功登錄服務器后,管理員可以授權用戶對服務器中的文件進行訪問和打印操作。

計費:記錄用戶使用網絡服務中的所有操作,包括使用的服務類型、起始時間、數據流量等,它不僅是一種計費手段,也對網絡安全起到了監視作用。

0x02 TACACS+ 認證過程

TACACS+ 服務通常會有一個特殊的服務器,所有的網絡設備都會被配置成使用 TACACS+ 服務器進行身份驗證。當一個用戶在交換機,路由器或其他網絡設備上進行認證時,網絡設備會發送該用戶的憑證到 TACACS+ 服務器進行驗證,然后決定分配訪問相關設備的權限,并將這些決定的結果包含在應答數據包中并發送到網絡設備上,再由網絡設備發送到用戶終端。

 

p1

圖 1 : TACACS+ 認證過程

 

這是一個非常方便和集中化的做法。可以在不同的設備上為用戶設置不同的權限。還有就是記錄訪問和操作均在服務器端。也可以在當前這種模式下再添加一種集中化式的管理方式,如 Active Directory 或 LDAP。不過,思科已將 TACACS+ 協議規范公開,所以現在有了一種 TACACS+ 服務的開源實現。

0x03 繞過 Cisco TACACS+ 的三種攻擊方式

No.1 利用 DoS 攻擊繞過 Cisco TACACS+

第一種攻擊方式并不是一種攻擊類型,準確的說是一個技巧,但是有時候在某些情況下是非常有用的。

讓我們假定這么一個場景:

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

使用 TACACS+ 進行身份驗證是網絡設備的一種典型配置。讓我們繼續假設,在 TACACS+ 服務器與網絡設備之間發生了點什么,導致網絡設備無法訪問 TACACS+ 服務器。在這種情況,連管理員自己都不可能登錄到網絡設備中。為了解決這樣的典型情況,Cisco 設備支持認證方式的回退,管理員可以設置不同的認證配置。

在 Cisco 設備中,一種使用 TACACS+ 進行身份驗證的典型配置如下:

aaa authentication login default group tacacs+ local

上述配置表明,首選的身份驗證為 TACACS+,之后才會使用本地驗證方式(查詢本地數據庫)進行身份驗證。同時,要注意,即使 TACACS+ 服務沒有發現一個用戶的認證憑證,設備也不會使用本地驗證方式。

也就是說,只有在 TACACS+ 服務不可用時,才會使用本地驗證方式。

所以,第一種攻擊思路很簡單。我們只要對 TACACS+ 服務發動 DoS 攻擊,之后連接到 Cisco 設備的本地帳戶中(從 TFTP 服務器中下載并破解得到)。由于 TACACS+ 服務遭到 DoS 攻擊無法訪問,所以網絡設備會提供給我們所期望的訪問權限。我們可以使用多種 DoS 攻擊。例如,我們可以發動臨時的 DoS 攻擊,對 TACACS+ 服務器創建大量基于 TCP 的連接。

 

p2

圖 2 :對 TACACS+ 服務器發動 DoS 攻擊

 

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

在介紹第二種和第三種攻擊方式前,我們需要了解一下 TACACS+ 協議。該協議的數據是明文或者是加密后傳輸的。采用了基于PSK(預共享密鑰)的自定義加密方式。管理員可以在 TACACS+ 服務器上設置加密密鑰,只要能夠訪問到 TACACS+ 服務器的網絡設備都會在身份驗證時使用這個加密密鑰。

有一點值得注意的是,只有用戶的憑證數據是加密的, TACACS+ 協議的報頭信息并沒有加密。

加密的具體細節如下:

加密的結果(enc_data)是未加密的用戶的憑證數據 (data)與一個特殊的字符串(pseudo_pad)進行XOR操作后得到的。

data^pseudo_pad = enc_data

pseudo_pad 是幾個拼接的 MD5 哈希。

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

MD5 哈希的值是對 TACACS+ 數據包報頭信息,密鑰(PSK)和前一個 MD5 哈希值加密的結果。因此,可以看到,第一個 MD5 是沒有前一個 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 - 是一個會話的隨機標識符;

version - TACACS+ 協議的版本;

seq_no - 會話數據包的增量;

key - PSK。

加密的數據如下圖所示:

 

p3

圖 3 :數據包中的加密數據

 

No.2 爆破 PSK 繞過 Cisco TACACS+

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

假設現在有一臺 Cisco 網絡設備和一臺 TACACS+ 服務器,我們已經得到了這兩臺服務器之間傳輸的 TACACS+ 協議的加密數據(可以通過中間人攻擊得到)?,F在,我們只要得到了 PSK 就可以解密已加密的數據,之后,我們就可以得到一個有效的賬戶了。

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

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

data^pseudo_pad = enc_data

將其轉換為

pseudo_pad = data^enc_data

MD5_1只是pseudo_pad的第一部分。pseudo_pad的大小為 128位(或16字節)。如果我們想得到MD5_1,我們需要知道 16字節的已加密和已解密的數據即(data)。我們可以從傳輸的數據包中獲得已加密數據。但是,現在我們如何才能得到 16字節 的解密數據呢?

需要注意的是,身份驗證、授權、計費這三種類型的 TACACS + 數據包的請求和響應的格式是不同的。然而,對于這些不同的數據包,我有一個通用的思路,因為,在任何類型的數據包的前 16 個字節中幾乎沒有未知的或隨機的值。

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

 

p4

圖 4 : TACACS+ 服務器響應的第一個數據包

 

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

No.3 利用中間人攻擊 繞過 Cisco TACACS+

對于最后一種攻擊方式,我們可以利用中間人攻擊篡改 TACACS+ 服務器和 Cisco 設備之間傳輸的數據。我們的目的是獲取到 Cisco 設備的所有權限。

在重新審查 TACACS+ 協議時,我發現了兩個額外的"特點"。

第一個是在 TACACS+ 協議傳輸過程中并沒有檢查數據包的完整性。所以,如果我們利用中間人攻擊改變了傳輸中的加密的部分,那么也就改變了解密的結果 (因為它只進行了 XOR 操作),但 TACACS+ 服務器并不會發現所做的更改,并以正常的方式處理已經被修改過的傳輸數據。

 

p5

圖 5 : TACACS+ 協議數據包

 

第二個特點是關于 TACACS+ 數據包的格式。在身份驗證和授權的過程中,應答的數據包中的第一個字節指示了訪問權限授予的結果。

例如,"0x01"代表了用戶通過了服務器的身份驗證過程 (授予訪問權限) ,"0x02"代表了用戶的憑據是無效的。

總之,我們只需要更改服務器應答的數據包的一個字節即可!

獲取該字節的pseudo_pad: 將加密的字節和解密的字節進行 XOR 操作 (我們知道解密的字節的值,因為如果我們輸入不正確的憑據后,服務器會拒絕訪問并設置第一個字節為 0x02。

將這個pseudo_pad與成功的身份驗證標識 (0x01) 進行 XOR 操作

將新的字節加入到加密的數據包中并發送給服務器。

因此,利用中間人攻擊,我們可以對任何使用無效憑證的用戶的傳輸數據和訪問權限授予(身份認證和授權)進行更改。此外,我們也可以繞過 Cisco 設備中特權用戶提升(“enable” 密碼)的身份驗證過程。

為了方便進行中間人攻擊,我寫了一個小腳本——tacflip.py,是 TacoTaco 項目的一部分。

我已經在 Cisco 7200 路由器的 GNS3 模擬器和開源實現的 TACACS+ 服務器——tac_plus 中成功驗證了這種(繞過身份驗證,特權用戶提升授權)攻擊方式,下面是路由器中配置文件的一部分:

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

這個小視頻演示了在 Cisco 路由上進行繞過身份驗證/授權、特權提權和命令執行的攻擊過程。

點我看小視頻

0x04 一點兒題外話

在 2000 年,Solar Designer 針對 TACACS+ 協議做了一個很有趣的研究(鏈接在此),例如,他發現了重放攻擊,用戶密碼長度信息泄漏,位翻轉攻擊等漏洞。但我并沒有找到 這些漏洞的 PoCs。

對于我對 TACACS+ 協議所做的"研究",都是在與協議進行了隨機的互動操作后的很長一段時間里的一些想法。正因為如此,我忘了有關 Solar Designer 研究的結果并且重新了解了他的一些發現。

因此,可能我工作的最重要的結果就是 TacoTaco 項目。它是這篇文章所講述的攻擊方式的具體實現。

0x05 總結

從目前來看,我認為,TACACS+ 協議并沒有針對中間人攻擊提供必要的保護級別。

不過話又說回來,有時很難在實戰中執行所有這些攻擊操作,因為 Cisco 建議將 TACACS+ 服務器放置在一個特殊的管理方式中 —— VLAN (只有管理員和網絡設備才能訪問) 。當然,也有方法可以滲透到 VLAN 中并控制它,不過這就是另一碼事兒了。

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

責任編輯:藍雨淚 來源: 烏云知識庫
相關推薦

2019-12-17 09:01:35

網絡犯罪網絡攻擊網絡安全

2009-10-29 16:41:23

2011-04-08 11:13:50

CISCO IOS令牌桶雙桶

2018-06-10 16:31:12

2010-08-24 09:43:33

2018-12-18 16:30:16

Commvault勒索軟件

2012-11-30 14:35:17

2011-12-28 10:10:54

2016-12-26 15:49:25

2012-11-27 16:41:42

2013-07-10 11:04:37

2013-05-14 15:08:02

2022-08-19 15:40:08

密碼證書安全

2011-03-17 14:49:40

2010-10-08 09:25:55

2022-03-18 11:47:16

惡意軟件Alexa攻擊漏洞

2012-07-17 09:16:16

SpringSSH

2014-01-13 09:30:20

2011-04-06 13:02:31

2021-11-05 21:33:28

Redis數據高并發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩在线免费视频 | 97伦理电影网 | 亚洲日韩中文字幕一区 | 久久99视频免费观看 | 国产a级毛毛片 | 国产农村妇女毛片精品久久麻豆 | 免费在线观看h片 | 精品欧美一区二区三区久久久 | 视频1区2区 | 99pao成人国产永久免费视频 | 日本高清视频在线播放 | 久久久久久久久久久福利观看 | 日韩视频在线观看一区二区 | 亚洲精品片| 日韩色在线 | 久久精品免费观看 | av在线一区二区三区 | 久久久久成人精品 | 一区二区三区免费看 | 免费视频二区 | 午夜视频在线 | 7777在线视频免费播放 | 国产欧美日韩视频 | 午夜精品久久久久久久99黑人 | 久久久久国产精品一区 | 久久久久国 | 97视频成人 | 99精品视频一区二区三区 | 综合久 | 在线午夜| 中文字幕精品一区久久久久 | 日本网站免费观看 | 免费激情| 性大毛片视频 | 久草在线在线精品观看 | 蜜臀久久99精品久久久久野外 | 久热爱| 国产精品成人国产乱一区 | www.日日夜夜 | 欧美一级免费 | 欧美一区二区在线观看 |