金濤 李新劍 劉宏斌 史震宇新
摘? ?要:隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展,黑客攻擊的手段越來越多,操作系統(tǒng)的安全性也必須隨之提升。由于Linux操作系統(tǒng)內(nèi)部的權(quán)限機(jī)構(gòu)比較復(fù)雜且周密,所以相比于Windows來說更安全,常被用在服務(wù)器平臺(tái)。但并不是說Linux就是絕對(duì)安全的,出于保護(hù)系統(tǒng)的目的,需要對(duì)系統(tǒng)進(jìn)行滲透測試,用來找出測試對(duì)象的安全隱患,提高系統(tǒng)的安全性。文章分析了Linux系統(tǒng)的兩個(gè)安全漏洞,并且對(duì)Linux系統(tǒng)進(jìn)行模擬攻擊,獲取漏洞主機(jī)的控制權(quán)限,進(jìn)一步說明了安全漏洞的危害性。
關(guān)鍵詞:Linux;滲透測試;漏洞利用
中圖分類號(hào):TP393? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
Abstract: With the rapid development of network technology, the means of hacker attack are more and more, and the security of operating system must be improved accordingly. Because of the complexity and sophistication of the privilege mechanism within the Linux operating system, it is safer than Windows and is often used on the server platform. But it does not mean that Linux is absolutely safe. For the purpose of protecting the system, it is necessary to conduct penetration testing of the system to find out the potential security hazards of the test objects and improve the security of the system. This paper analyses two security vulnerabilities of Linux system, and simulates attacks on Linux system to obtain the control rights of vulnerable hosts, which further illustrates the harmfulness of security vulnerabilities.
Key words: Linux; penetration test; vulnerability exploitation
1 引言
網(wǎng)絡(luò)信息安全的基礎(chǔ)是操作系統(tǒng)的安全。操作系統(tǒng)為所有的信息化應(yīng)用和安全措施提供了底層支持。當(dāng)操作系統(tǒng)配置不當(dāng)或者存在未修補(bǔ)或未發(fā)現(xiàn)的漏洞,都有可能導(dǎo)致整個(gè)安全體系的崩潰。操作系統(tǒng)高可靠性的運(yùn)行以及信息的完整性、機(jī)密性、可用性和可控性,必須依賴于系統(tǒng)提供的軟件基礎(chǔ),任何脫離操作系統(tǒng)的應(yīng)用軟件其安全性都是得不到保障的。一般來說,黑客攻擊和病毒在內(nèi)的各種網(wǎng)絡(luò)安全問題的根源,大多數(shù)是由于操作系統(tǒng)的安全性很低且極為脆弱。
Linux系統(tǒng)相對(duì)于Windows系統(tǒng)在網(wǎng)絡(luò)功能、跨平臺(tái)性和穩(wěn)定性上具有很多優(yōu)勢,然而作為開放式操作系統(tǒng),它不可避免地存在一些安全隱患。Linux作為一種網(wǎng)上開源的系統(tǒng),很多相關(guān)程序和工具都公布在網(wǎng)上,本意是為了方便用戶,但同樣也方便了黑客。黑客也可以利用這些開源的工具潛入Linux系統(tǒng),從而盜取系統(tǒng)中的重要信息。
在計(jì)算機(jī)領(lǐng)域中,安全漏洞是指計(jì)算機(jī)在硬件或協(xié)議上存在的缺陷。這些缺陷會(huì)給攻擊者制造在未經(jīng)授權(quán)的情況下入侵計(jì)算機(jī)系統(tǒng)的機(jī)會(huì),從而導(dǎo)致儲(chǔ)存在計(jì)算機(jī)中的信息被竊取,甚至有可能對(duì)整個(gè)網(wǎng)絡(luò)系統(tǒng)造成破壞。安全漏洞具有時(shí)效性,系統(tǒng)中會(huì)不斷產(chǎn)生新的漏洞,因此在日常的使用過程中要不斷更新安全補(bǔ)丁或?qū)ο到y(tǒng)進(jìn)行升級(jí),只有這樣才能有效防范漏洞。Linux系統(tǒng)通常是作為服務(wù)器的操作系統(tǒng),而服務(wù)器存儲(chǔ)著大量的用戶信息,如果存在安全漏洞,其造成的危害遠(yuǎn)高于其他個(gè)人使用的主機(jī)系統(tǒng)。因此,對(duì)Linux操作系統(tǒng)進(jìn)行滲透測試是有必要的,所以本文重點(diǎn)研究Linux系統(tǒng)的安全漏洞,并通過兩個(gè)安全漏洞,對(duì)Linux系統(tǒng)進(jìn)行模擬攻擊,進(jìn)一步說明了安全漏洞的危害性。
2 滲透測試介紹
2.1 滲透測試的概念
滲透測試是一種合法且授權(quán)定位計(jì)算機(jī)系統(tǒng),并對(duì)其成功實(shí)施漏洞攻擊的方法,其目的是為了使這些受測系統(tǒng)更加安全。滲透測試的過程主要包括漏洞探測和提供概念證明(Proof of Concept,POC)攻擊,來證明操作系統(tǒng)確實(shí)存在漏洞。在完成一個(gè)完整的滲透測試后,需要列出系統(tǒng)中存在的漏洞以及相應(yīng)的修補(bǔ)意見或方案??傊?,滲透測試用于加強(qiáng)計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)的安全性,使其在之后的使用中免遭攻擊。
2.2 滲透測試的必要性
任何形式的攻防對(duì)抗,最重要的一條就是掌握主動(dòng)權(quán)。借助滲透測試,可以先于黑客發(fā)現(xiàn)系統(tǒng)安全隱患,提前部署好安全防御措施,保證系統(tǒng)的每個(gè)環(huán)節(jié)在未來都能經(jīng)得起黑客挑戰(zhàn),進(jìn)一步鞏固客戶對(duì)企業(yè)及平臺(tái)的信賴。
通過滲透測試,企業(yè)用戶可以以攻擊者的角度來了解系統(tǒng)是否存在安全風(fēng)險(xiǎn)和漏洞隱患,尤其是在進(jìn)行一些安全項(xiàng)目之前的滲透測試,可以更深刻地認(rèn)識(shí)到信息系統(tǒng)的安全性,對(duì)進(jìn)一步建立安全體系有著很大的幫助。同時(shí),可以驗(yàn)證經(jīng)過安全保護(hù)后的系統(tǒng)是否真正達(dá)到預(yù)期的安全目標(biāo)、遵循相關(guān)的安全策略和符合相關(guān)的安全要求。
2.3 滲透測試的流程
對(duì)于操作系統(tǒng)的滲透測試,大致可分為信息收集、漏洞發(fā)現(xiàn)以及漏洞利用三個(gè)階段。其大致流程如圖1所示。但是,在實(shí)踐過程中需要進(jìn)一步明細(xì)測試的流程,通過六個(gè)過程來描述滲透測試的整個(gè)流程。
(1)明確目標(biāo)。確定測試目標(biāo)的范圍、IP、域名、內(nèi)外網(wǎng)等,根據(jù)需求和自身的技術(shù)能力來確定能不能做,能做多少。
(2)信息搜集。正所謂知己知彼百戰(zhàn)百勝,根據(jù)網(wǎng)站URL可以查出一系列關(guān)于該網(wǎng)站的信息。通過URL可以查到該網(wǎng)站的IP、該網(wǎng)站操作系統(tǒng)、腳本語言、在該服務(wù)器上是否還有其他網(wǎng)站等一系列的信息。
(3)漏洞探索。根據(jù)以上步驟找到的信息,使用AWVS、Appscan、Burp Suite等漏洞掃描工具掃描網(wǎng)站可能存在的漏洞,結(jié)合漏洞在Exploit-db等漏洞提交網(wǎng)站尋找該漏洞的利用方法。
(4)漏洞驗(yàn)證。根據(jù)搜集到的漏洞信息,搭建模擬測試環(huán)境,并使用漏洞利用代碼(Exploit、Exp)進(jìn)行驗(yàn)證,成功后再應(yīng)用到目標(biāo)中。
(5)信息分析。整理前面搜集到的信息,為下一步實(shí)施滲透做準(zhǔn)備。準(zhǔn)備好檢測到的漏洞的exp等,設(shè)定繞過防火墻和檢測的機(jī)制,定制攻擊路徑。
(6)獲取所需。根據(jù)前面的準(zhǔn)備,進(jìn)行攻擊,獲取內(nèi)部信息,再進(jìn)一步滲透,最后清除痕跡等,然后整理信息,形成相應(yīng)的滲透測試報(bào)告。
3 模擬滲透測試
3.1 測試環(huán)境準(zhǔn)備
3.2 滲透工具介紹
Metasploit:一款開源的計(jì)算機(jī)安全漏洞檢測工具,可以幫助安全和IT專業(yè)人士檢測系統(tǒng)的安全性。Metasploit是一個(gè)免費(fèi)的、可下載的框架,通過它可以很容易地獲取、開發(fā)并對(duì)計(jì)算機(jī)軟件漏洞實(shí)施攻擊。它本身附帶數(shù)百個(gè)已知軟件漏洞的專業(yè)級(jí)漏洞攻擊工具。
Nmap:是一個(gè)網(wǎng)絡(luò)連接端掃描軟件,用來掃描網(wǎng)上電腦開放的網(wǎng)絡(luò)連接端。確定哪些服務(wù)運(yùn)行在哪些連接端,并且推斷計(jì)算機(jī)運(yùn)行哪個(gè)操作系統(tǒng)。網(wǎng)絡(luò)管理員常用該軟件對(duì)系統(tǒng)進(jìn)行網(wǎng)絡(luò)安全的評(píng)估。
3.3 滲透測試步驟
測試步驟分為三個(gè)過程,依次為測試環(huán)境漏洞信息的搜集、利用UnrealIRCd后門漏洞攻擊漏洞主機(jī)、利用Distcc后門漏洞攻擊Metasploitable2漏洞主機(jī)。
3.3.1 網(wǎng)絡(luò)環(huán)境漏洞信息的搜集
(1)使用如下命令查看Metasploitable2漏洞主機(jī)的登錄用戶及網(wǎng)絡(luò)配置信息。
Whoami:查看當(dāng)前登錄用戶,如圖3所示。
Ifconfig:查看網(wǎng)絡(luò)配置信息,如圖4所示。
可以得到漏洞主機(jī)登錄用戶名為msfadmin,IP為192.168.154.132。
(2)查看攻擊者主機(jī)登錄用戶及網(wǎng)絡(luò)配置信息,可以得到攻擊主機(jī)登錄用戶為root,IP為192.168.154.129,如圖5所示。
(3)利用Nmap掃描漏洞主機(jī)開放的端口,根據(jù)開放的端口信息判斷漏洞主機(jī)存在的安全問題。利用口令nmap –sT –v 192.168.154.132 掃描漏洞主機(jī)的IP地址,得到漏洞主機(jī)開放的端口信息,其中,-sT表示TCP端口掃描(完整三次握手),-v表示顯示詳細(xì)詳細(xì)。掃描結(jié)果(部分截圖)如圖6和圖7所示。
3.3.2 利用UnrealIRCd后門漏洞攻擊漏洞主機(jī)
UnrealIRCd后門漏洞(安全組織索引CVE:CVE-2010-2075 BID:BID-40820 OSVDB:OSVDB-65445):在2009年11月到2010年6月間分布于某些鏡面站點(diǎn)的UnrealIRCd,在DEBUG3_DOLOG_SYSTEM宏中包含外部引入的惡意代碼,遠(yuǎn)程攻擊者能夠執(zhí)行任意的代碼。影響系統(tǒng)/軟件:Unreal UnrealIRCd 3.2.8.1。
攻擊分七個(gè)步驟。
(1)分析可以利用的漏洞
根據(jù)Nmap的掃描結(jié)果發(fā)現(xiàn),漏洞主機(jī)開啟了大量的端口,意味著漏洞主機(jī)對(duì)外提供了大量的服務(wù),增加了被攻擊的風(fēng)險(xiǎn),其中6667號(hào)端口開放的是IRC服務(wù),可以利用UnrealIRCD IRC軟件的漏洞來攻擊漏洞主機(jī)。
(2)開啟Msfconsole
運(yùn)行命令msfconsole,開啟msf,如圖8所示。
(3)搜索漏洞利用Exp
運(yùn)行命令search unrealircd,搜索關(guān)于UnrealIRCD漏洞的利用信息,如圖9所示。
(4)運(yùn)行漏洞利用Exp
運(yùn)行命令use exploit/unix/irc/unreal_ircd_3281_backdoor,開始運(yùn)行Exp。使用命令show option,查看該exploit的參數(shù)設(shè)置信息,發(fā)現(xiàn)Exp前可以配置漏洞主機(jī)的IP和端口,如圖10所示。
(5)設(shè)置漏洞主機(jī)IP
運(yùn)行命令set RHOST 192.168.154.132,設(shè)置漏洞主機(jī)的IP,如圖11所示。
(6)執(zhí)行Exp
運(yùn)行命令exploit,提示:“Command shell session 1 opened (192.168. 154.129:4444->192.168.154.132:36418) at 2019 -03-08 18:44:32 +0800”時(shí),說明攻擊成功,并成功建立了Shell會(huì)話,如圖12所示。
(7)驗(yàn)證Shell權(quán)限
運(yùn)行Linux系統(tǒng)命令whoami,回顯Root說明當(dāng)前Shell的權(quán)限是Root,可進(jìn)行任意的操作而不受權(quán)限控制,如圖13所示。
3.3.3 利用Distcc后門漏洞攻擊Metasploitable2漏洞主機(jī)
Distcc后門漏洞(安全組織索引 CVE:CVE-2004-2687 BID:無 OSVDB:OSVDB-13378):Distcc用于大量代碼在網(wǎng)絡(luò)服務(wù)器上的分布式編譯,但是如果配置不合格,很容易被濫用執(zhí)行命令,該漏洞是XCode 1.5 版本及其他版本的distcc 2.X 版本配置,對(duì)服務(wù)器端口的訪問不限制。影響系統(tǒng)/軟件:distcc 2.X。
具體步驟如下。
(1)在Kali中執(zhí)行命令msfconsole,啟動(dòng)metasploit。運(yùn)行命令use exploit/unix/misc/distcc_exec,選擇漏洞利用Exp,如圖14所示。
(2)運(yùn)行命令set RHOST 192.168.154.132,設(shè)置漏洞主機(jī)IP。運(yùn)行命令Exploit,開始攻擊,出現(xiàn)“Command shell session 1 opened (192.168. 154.129:4444 -> 192.168.154.132:54291) at 2019 -03-08 18:48:14 +0800”時(shí),說明Shell建立成功,如圖15所示。
(3)運(yùn)行命令whoami,驗(yàn)證創(chuàng)立的Shell的權(quán)限,結(jié)果如圖16所示。
3.4 滲透測試總結(jié)
在本次滲透測試中,利用了Linux操作系統(tǒng)的兩個(gè)安全漏洞,對(duì)測試環(huán)境進(jìn)行了一系列的模擬攻擊,最終獲得了漏洞主機(jī)的控制權(quán)限,進(jìn)一步驗(yàn)證了操作系統(tǒng)安全漏洞的危害性。因此,在使用操作系統(tǒng)的過程中,管理員要定期的對(duì)操作系統(tǒng)進(jìn)行滲透測試,以便及時(shí)發(fā)現(xiàn)和修補(bǔ)系統(tǒng)漏洞,確保操作系統(tǒng)的安全性。
4 結(jié)束語
對(duì)系統(tǒng)進(jìn)行滲透測試,就可以完全模擬攻擊者可能使用的漏洞檢測與攻擊技術(shù),對(duì)目標(biāo)網(wǎng)絡(luò)系統(tǒng)的安全進(jìn)行深入檢測,探尋出網(wǎng)絡(luò)系統(tǒng)中最脆弱的安全環(huán)節(jié),從而讓管理人員能夠直觀地知道網(wǎng)絡(luò)所面臨的問題。防范計(jì)算機(jī)安全漏洞是一個(gè)長期并且持續(xù)的過程,其措施也要隨著時(shí)代的發(fā)展和技術(shù)的更新不斷地加強(qiáng)。系統(tǒng)管理員要根據(jù)網(wǎng)絡(luò)安全漏洞的類型和特點(diǎn)有針對(duì)性地制定防范措施,才能有效地填補(bǔ)漏洞,保證系統(tǒng)的安全性。
參考文獻(xiàn)
[1] 中國網(wǎng)絡(luò)空間研究院,中國網(wǎng)絡(luò)空間安全協(xié)會(huì).網(wǎng)絡(luò)安全實(shí)驗(yàn)培訓(xùn)教程[M].北京:人民郵電出版社,2017.
[2] The Ministry of Education of the Peoples Republic of China.Notice concerning developing cyberspace security first level discipline doctorate authorization[Z].2015.
[3] 譚彬,楊明,梁業(yè)裕,寧建創(chuàng).Web安全漏洞研究和防范[J].通信技術(shù),2017,5(4) :795-802.
[4] 徐光.基于Kali Linux的Web滲透測試研究[J].信息安全與技術(shù),2015(3) :56-58.
[5] Babincev I,Vuletic D.Web Application Security Analysis Using the Kali Linux Operating System.Military Technical Courier[J].2016.