黑客入侵技術(shù)詳解:cisco路由入侵藝術(shù) (1)
奔流不息的網(wǎng)絡(luò)里,Web綻放著絢麗的色彩、電子郵件呼哧的穿梭網(wǎng)際、語音電話、網(wǎng)絡(luò)會(huì)議、文件傳輸,各種數(shù)據(jù)交織錯(cuò)落,形成輝煌的數(shù)字世界。在喧鬧的數(shù)字世界底層,存在一種精致的次序,這種次序決定著數(shù)據(jù)的選路、異構(gòu)介質(zhì)銜接、協(xié)議的交互等功能。而這一次序的締造者正是布滿整個(gè)網(wǎng)絡(luò)的路由器。于是,路由器成了數(shù)據(jù)通信的交通亭,也成為了眾多黑帽(Blackhat)爭(zhēng)奪的目標(biāo)之一。
Cisco路由器占據(jù)這網(wǎng)絡(luò)世界的絕對(duì)位置,于是安全焦點(diǎn)效應(yīng)激發(fā)了路由入侵與防御而產(chǎn)生的精美藝術(shù)。下面我將由淺入深的方式講述Cisco入侵的手段以及防御策略。
【路由器感冒】
路由器從本身的IOS來說,并不是一個(gè)健壯的體系,因而它偶爾也會(huì)讓自己感冒發(fā)燒。系統(tǒng)感冒發(fā)燒起來,抵抗力自然就降低不少。
*IOS自身欺騙
Cisco路由器是用IOS系統(tǒng)來實(shí)現(xiàn)路由的細(xì)節(jié)功能,因此它是路由系統(tǒng)的靈魂。Show命令的在線系統(tǒng)方式卻為我們打開一個(gè)偷窺之門。
眾所周知,Cisco路由器中,一般用戶只能查看路由器的很少信息。而能進(jìn)入特權(quán)模式的用戶才有資格查看全部信息和修改路由。一般模式下,show的在線幫助系統(tǒng)不會(huì)列表所有可用的命令,雖然75個(gè)show的擴(kuò)展參數(shù)只能用于特權(quán)模式下(enable),實(shí)際上只有13個(gè)受到限制。這意味著一般用戶(非特權(quán)用戶)可以查看訪問列表或其他路由安全相關(guān)信息。
重要安全相關(guān)的ACL信息可以被登錄路由的非特權(quán)用戶查看,諸如:
#show access-lists
#show ip prot
#show ip ospf dat
#sh ip eigrp top
等命令可以在非特權(quán)模式下泄露網(wǎng)絡(luò)敏感信息。通過這些命令,我們能得出路由器配置的大致情況,這對(duì)采取進(jìn)一步的入侵起到輔助作用。不過由于這種方式需要用戶已經(jīng)有一個(gè)登錄帳戶,因此得到這樣的信息有一定難度。
*WCCP暗道
Cisco在IOS 11.2版本中引入WCCP(Web Cache Control Protocol),為Cisco緩存引擎提供協(xié)議通信。Cisco緩存引擎為www提供透明緩存服務(wù)。緩存引擎用WCCP來和其他cisco路由器通信。路由器把HTTP數(shù)據(jù)發(fā)送到緩存引擎主機(jī)中。
雖然這種方式默認(rèn)是關(guān)閉的。假如使能(enable)的話,那么WCCP本身是沒有認(rèn)證機(jī)制的。路由器將會(huì)把每一個(gè)發(fā)送合法緩存引擎類型的Hello包的主機(jī)認(rèn)為緩存引擎,于是把HTTP數(shù)據(jù)緩存到那臺(tái)主機(jī)。這意味著惡意用戶可以通過這種方式獲取信息。
通過這種方式,攻擊者可以截獲站點(diǎn)認(rèn)證信息,包括站點(diǎn)密碼;替代實(shí)際WEB內(nèi)容為自己設(shè)計(jì)的陷阱;通過路由徹底破壞Web提供的服務(wù)。這種方式,可以完全規(guī)避登錄煩瑣的攻擊方法,對(duì)Web提供全面而且致命的打擊。
我們既可關(guān)閉WCCP的啟用機(jī)制,也可通過ACL阻止WCCP發(fā)送HTTP流量給不信任主機(jī)來防止這樣的惡劣情況發(fā)生。
*HTTP服務(wù)的困惑
Cisco在IOS版本加入了遠(yuǎn)程管理路由的Web特性,這對(duì)于新羽(newbie)的管理員來,無疑是值得高興的事情。但引入方便的同時(shí),隱患也隨之進(jìn)入。
1.基于拒絕式服務(wù)攻擊的HTTP的漏洞
Cisco路由啟用(enable)遠(yuǎn)程WEB管理,很容易遭受DoS。這種DoS能導(dǎo)致路由器停止對(duì)網(wǎng)絡(luò)請(qǐng)求的響應(yīng)。這是功能是Cisco路由的內(nèi)嵌功能。但啟用這個(gè)特性,通過構(gòu)造一個(gè)簡(jiǎn)單的Http請(qǐng)求就會(huì)造成DoS攻擊:
http:///%%
這種請(qǐng)求導(dǎo)致路由停止響應(yīng),甚至引起路由器執(zhí)行硬重置(hard reset)。
2.基于HTTP服務(wù)器查詢的漏洞
Cisco 安全建議小組在2000年10月30日公布了這個(gè)漏洞。IOS 11.0引入通過Web方式管理路由?!?”是HTML規(guī)范中定義的CGI參數(shù)的分界符。它也被IOS命令行接口解釋成請(qǐng)求幫助。在IOS 12.0中,當(dāng)問號(hào)鄰接于”/”,URL解釋器就不能正確解釋其含義。當(dāng)一個(gè)包括”?/”的URL對(duì)路由器HTTP服務(wù)器進(jìn)行請(qǐng)求,并且提供一個(gè)有效的啟用口令,則路由器進(jìn)入死循環(huán)。因而引起路由崩潰并重起。
如果http起用,瀏覽
http://route_ip_addr/anytest?/
并且提供特權(quán)口令,則可以導(dǎo)致DoS攻擊,導(dǎo)致路由停機(jī)或者重啟。
除了讓路由死亡之外,Http額外提供了一種可怕權(quán)限提升的漏洞,如下所論。
3.Cisco IOS 認(rèn)證漏洞
當(dāng)HTTP服務(wù)器啟用并且使用本地用戶認(rèn)證方式。在某些條件,可以繞過認(rèn)證并執(zhí)行設(shè)備上的任何命令。用戶可以對(duì)設(shè)備完全的控制。所有命令都將以最高特權(quán)執(zhí)行(level 15)。
使用username 和password的路由設(shè)備帳戶認(rèn)證方式,構(gòu)造如下URL:
http://router_ip_addr/level/xx/exec/….
(注:xx代表16至99之間的84種不同的組合攻擊,因?yàn)槁酚善饔布愋捅姸啵鳬OS版本也存在不同,因此針對(duì)不同的路由器類型,攻擊組合數(shù)字不同。)
通過這種方式,攻擊者可以完全控制路由并可以改變路由表配置。這種可怕的事實(shí)讓網(wǎng)管也感到驚悸。這種完整的控制方式將是網(wǎng)站數(shù)據(jù)通信樞紐的致命一擊。
雖然Http漏洞帶來如此之多的漏洞,但這種漏洞最主要原因是因?yàn)閱⒂胔ttp服務(wù)器管理路由的緣故,由于這種管理是種命令行方式的替代物,因此對(duì)于熟練的網(wǎng)管來說,沒有必要啟動(dòng)這種危害性很大的服務(wù)。
#no ip http server 的路由配置也成為時(shí)髦的安全配置語句。
【在SNMP中行走】
談到Cisco路由的安全性,我們就必須涉及到SNMP這個(gè)看似簡(jiǎn)單,實(shí)際扮演著重要角色的協(xié)議,正因?yàn)樗拇嬖?,路由器的入侵變的豐富有趣多了。
*SNMP基礎(chǔ)簡(jiǎn)介:
每個(gè)SNMP啟用的路由設(shè)備都包含一個(gè)叫做管理信息模塊(MIB),這是一種包含簡(jiǎn)單等級(jí)的數(shù)據(jù)目錄結(jié)構(gòu),在這種樹結(jié)構(gòu)中包含設(shè)備各種信息。SNMP基本的命令GET,可以檢索MIB的信息,而SET命令則可設(shè)置MIB變量。一種用于監(jiān)控和管理CISCO路由的的軟件工具是MRTG,至于如何配置其用于Cisco設(shè)備的監(jiān)控可以參閱LOG的《怎樣在Windows NT/2K下安裝MRTG》一文(http://www.2hackers.org/cgi-bin/2hb/topic.cgi?forum=7&topic=212)。
在路由器中配置SNMP的方法如下:
(conf)#snmp-server community readonly RO
(conf)#snmp-server community readwrite RW
SNMP協(xié)議通過社區(qū)(community)字串的概念賦予對(duì)設(shè)備MIB對(duì)象訪問的權(quán)限。上例中,設(shè)置了只讀訪問的社區(qū)字串readonly和可進(jìn)行讀寫操作的readwrite社區(qū)字串。而大部分管理員喜歡使用public和private設(shè)置只讀字串和讀寫字串,疏不知,這樣輕易的結(jié)果將給網(wǎng)絡(luò)帶來巨大的波動(dòng)。我們可以在【觸及RouterKit】部分清楚認(rèn)識(shí)到這種危害。
通過SNMP我們可以方便管理和監(jiān)控Cisco的設(shè)備(參閱Log文章介紹),同時(shí)也給攻擊者帶來可乘之機(jī)。
*Cisco IOS軟件SNMP讀寫ILMI社區(qū)字串漏洞
ILMI是一個(gè)獨(dú)立的工業(yè)標(biāo)準(zhǔn),用于配置ATM接口。MIB是一個(gè)樹形結(jié)構(gòu),包括操作(只讀)數(shù)據(jù)以及配置(讀寫)選項(xiàng)。在有漏洞的設(shè)備上,通過在SNMP請(qǐng)求中指定一個(gè)ILMI社團(tuán)字符串,可以訪問整個(gè)樹形管理結(jié)構(gòu)中三個(gè)特定部分的對(duì)象:MIB-II系統(tǒng)組,LAN-EMULATION-CLIENT MIB以及PNNI(Private Network-to-Network Interface)MIB。每一部分的子集對(duì)象都可以使用相同的“ILMI”社團(tuán)字符串修改。
MIB-II系統(tǒng)組包括設(shè)備本身的基本信息。能被修改對(duì)象的數(shù)目雖然是有限的。例如包括:
system.sysContact.
system.sysLocation.
system.sysName.
Cisco IOS軟件版本11.x和12.0允許使用一個(gè)非文檔的ILMI社區(qū)字串未經(jīng)授權(quán)就查看和修改某些SNMP對(duì)象。其中就包括諸如上面所說的"sysContact","sysLocation",和"sysName"對(duì)象,雖然修改它們不會(huì)影響設(shè)備的正常操作,但如果意外修改可能會(huì)產(chǎn)生混亂。剩下的對(duì)象包含于LAN-EMULATION-CLIENT和PNNI MIBs,修改這些對(duì)象可以影響ATM配置。如果沒有防止未授權(quán)使用ILMI社團(tuán)字符串,一臺(tái)有漏洞的路由器可能會(huì)遭受DoS攻擊。
如果SNMP請(qǐng)求可以被有漏洞的設(shè)備接收,那么沒有適當(dāng)授權(quán),就可以訪問某些MIB對(duì)象,違背了保密性。沒有授權(quán)就可以修改可讀MIB對(duì)象的子集,破壞了完整性。而更具有危害性的方法是向SNMP端口發(fā)送大量的讀和寫請(qǐng)求。有漏洞的設(shè)備,如果沒有防范接收SNMP包的措施,就會(huì)遭受DoS攻擊,導(dǎo)致路由重載。
【編輯推薦】