姚莉 林科辰 鄧丹君
摘 要:滲透測試是一種在獲得用戶或甲方單位授權(quán)的情況下,對用戶信息系統(tǒng)或目標(biāo)系統(tǒng)實施漏洞攻擊的方法。目前所有滲透測試的技術(shù)體系理論工作都處于不斷完善和更新中。通過分析黑客攻擊行為的完整流程,本文提出一種基于Kali-Linux進行滲透測試的方法,以提高滲透測試效率和能力。本文總結(jié)了當(dāng)前業(yè)內(nèi)被接受程度較高的幾大標(biāo)準(zhǔn)技術(shù)測試體系理論,通過使用Kali-Linux系統(tǒng)作為平臺載體,說明一套完整的滲透測試的思路、流程、步驟和結(jié)果輸出等為網(wǎng)絡(luò)管理者提供參考。
關(guān)鍵詞:網(wǎng)絡(luò)安全;安全測試;漏洞評估;Kali-Linux;滲透測試
中圖分類號:TP399 文獻標(biāo)識碼:A
Abstract:The penetration test is a method to attack the user information system or the target system in the case of obtaining the authorization from the user or the first-party organization.At present,all the technical systems of the penetration test are constantly improving and updating.By analyzing the complete process of hacking,this paper puts forward a penetration test method based on Kali-Linux to improve the efficiency and capacity of penetration test.Several standardized technical test systems with high acceptance level in the industry are adopted in the research.Using the Kali-Linux system as the platform,the paper introduces the whole set of design,flow,procedures and result,providing some reference to network administrators.
Keywords:network security;security testing;vulnerability assessment;Kali-Linux;penetration test
1 引言(Introduction)
隨著移動互聯(lián)網(wǎng)的高速發(fā)展,計算機系統(tǒng)和數(shù)據(jù)的安全保障也將面臨著日益嚴(yán)峻的考驗。截止至2014年底,據(jù)《2014中國互聯(lián)網(wǎng)網(wǎng)絡(luò)安全報告》得知我國大約有22萬余網(wǎng)站及系統(tǒng)被黑客入侵和篡改。其中商業(yè)機構(gòu)網(wǎng)站占75%,政府類占4%,教育機構(gòu)占1%,其他占20%。近年網(wǎng)站數(shù)據(jù)泄露事件頻發(fā),包括幾十省幾千萬社保人員信息、運營商注冊信息、網(wǎng)易郵箱注冊用戶信息、學(xué)信網(wǎng)等知名網(wǎng)站數(shù)據(jù)的泄露。在網(wǎng)上曝光的用戶信息高達數(shù)十億條,甚至有33%的組織不知道自身系統(tǒng)是否受到入侵[1]。網(wǎng)絡(luò)安全面臨著嚴(yán)峻的現(xiàn)實考驗,如何保證網(wǎng)絡(luò)安全已成為尤其重要的嚴(yán)峻課題。
2 滲透測試(Penetration testing)
滲透測試作為信息安全領(lǐng)域中的一種新型防護技術(shù),是通過執(zhí)行漏洞利用和概念證明(POC或EXP)攻擊來證明系統(tǒng)確實存在安全隱患。在獲得用戶或甲方單位授權(quán)的情況下,由專業(yè)從事信息安全的相關(guān)人員發(fā)起攻擊行為,同時進行高級安全風(fēng)險評估,通過完全地真實地模擬黑客的攻擊行為和過程,以達到評估計算機系統(tǒng)安全風(fēng)險級別的目的[2]。滲透測試用于發(fā)現(xiàn)系統(tǒng)潛在的風(fēng)險或漏洞,以達到加強計算機和網(wǎng)絡(luò)系統(tǒng)的安全性。讓其在使用中免遭攻擊,最終目的就是使這些被測系統(tǒng)更加安全[3]。滲透測試因而成為檢驗一個網(wǎng)絡(luò)是否安全的一個重要手段,滲透測試技術(shù)也成為保障系統(tǒng)和數(shù)據(jù)安全的一種重要途徑。一個完整的滲透測試流程結(jié)束以后,后續(xù)輸出的報告或文檔會明確說明發(fā)現(xiàn)的系統(tǒng)漏洞及相關(guān)細節(jié)信息,并給出明確的修復(fù)意見。
2.1 滲透測試方法論
對信息系統(tǒng)進行一次安全風(fēng)險評估是一項專業(yè)性極強的工作,評估到什么程度或級別困難指數(shù)將會成倍增長。選擇使用一些開源的工具和測試方法論,則可大大降低這項工作的技術(shù)難度。目前已經(jīng)有很多開源的安全工具和工具包鏡像,Kali-Linux就是其中一個被廣泛接受的工具集[4]。滲透測試方法理論當(dāng)中,有偏向信息安全管理層面的,有偏向安全技術(shù)層面的,也有些偏向某些核心指標(biāo)的。幾種業(yè)內(nèi)接受度相對較高的方法論,依次是:
(1)開源安全測試方法OSSTMM。
(2)滲透測試執(zhí)行標(biāo)準(zhǔn)(PTES)。
(3)開放式Web應(yīng)用程序安全項目(OWASP)。
(4)Web應(yīng)用安全聯(lián)合威脅分類(WASC-TC)。
其中開源安全測試方法(OSSTMM)和滲透測試執(zhí)行標(biāo)準(zhǔn)(PTES)這兩種測試方法更偏向信息評估需求,而開放式Web應(yīng)用程序安全項目(OWASP)十大Web應(yīng)用風(fēng)險和Web應(yīng)用安全聯(lián)合威脅分類(WASC-TC)更偏向于Web應(yīng)用安全方面的測試。由于信息系統(tǒng)微小的變化都可能導(dǎo)致出現(xiàn)意想不到的嚴(yán)重后果,直接影響整個安全測試工作的結(jié)果。因此在使用上述方法論的過程中,都必須保證目標(biāo)環(huán)境的完整性。
2.2 Kali-Linux測試方法論
Kali-Linux是一套開源的功能大的操作系統(tǒng)級的工具集,集成了目前眾多主流的安全測試、評估和滲透工具。由于各類的工具非常多,在沒有合適的方法理論支撐的情況下,擴展或直接使用這些工具進行測試時常出現(xiàn)測試失敗或不太令人滿意的結(jié)果[5]。因此,無論是從管理層面還是技術(shù)角度出發(fā),使用一套規(guī)范化的、標(biāo)準(zhǔn)化、結(jié)構(gòu)化的測試方法來支撐安全測試過程,是非常重的。Kali-Linux方法論體系中所有的測試過程都可以被切分成若干步驟,具體包括:目標(biāo)界定、信息收集、發(fā)現(xiàn)目標(biāo)、枚舉目標(biāo)、映射漏洞、社會工程學(xué)、漏洞執(zhí)行、系統(tǒng)提權(quán)、持續(xù)控制及輸出報告歸檔。Kali-Linux測試流程的示意圖如1所示。
3.1 執(zhí)行摘要
測試團隊接受客戶要求進行滲透測試,測試團隊的所有活動都在模擬惡意黑客對客戶目標(biāo)進行針對性攻擊,確定其是否存在安全威脅。
(1)確定一個遠程攻擊者可以穿透用戶的安全防御。
(2)確定安全漏洞的影響。
(3)對用戶私人數(shù)據(jù)保密處理。
(4)確定內(nèi)部可用基礎(chǔ)設(shè)施和信息系統(tǒng)。
所有測試和行動都根據(jù)NIST SP 800-1151標(biāo)準(zhǔn)下進行。主要識別和利用安全漏洞,發(fā)現(xiàn)允許遠程攻擊者對組織數(shù)據(jù)未授權(quán)訪問。
3.2 測試過程
(1)對遠程系統(tǒng)漏洞挖掘
為了盡可能模擬所有資產(chǎn)在沒有確定之前盡可能避免遭到網(wǎng)絡(luò)攻擊,客戶提供一個對外信息特別少的組織域名。本次測試首先對域名服務(wù)器傳送進行測試,發(fā)現(xiàn)主機ns2很容易出現(xiàn)DNS區(qū)域傳送記錄。這為測試提供了與主機名和相關(guān)聯(lián)的IP地址和列表,可用于進一步定位客戶目標(biāo)。區(qū)域傳送可提供有關(guān)的詳細信息,也可以泄露所有者組織網(wǎng)絡(luò)范圍信息,如圖2所示。
以上主機列表已得到客戶驗證,由此整個50.7.67.X都納入滲透測試范圍。通過掃描探測這些系統(tǒng)允許服務(wù)進行詳細審查確定運行的服務(wù),由此確定可能面臨的針對性的攻擊。通過DNS遍歷和網(wǎng)絡(luò)掃描相結(jié)合,能夠建立一個探測出客戶的網(wǎng)絡(luò)。該admin二級域名WEB服務(wù)器發(fā)現(xiàn)在81端口運行Apache服務(wù)器。通過訪問URL網(wǎng)址顯示空白頁。接下來進行一次快速枚舉掃描系統(tǒng)存在目錄和文件,如圖3所示。
掃描結(jié)果顯示與普通的Apache默認(rèn)文件一起確定一個“/admin”目錄后可以開始驗證訪問?;谟脩艟W(wǎng)站內(nèi)容,準(zhǔn)備針對性的密碼破解,整理了自定義字典。經(jīng)過幾輪排列和替換最終篩出為有16201密碼的字典。該字典將用于密碼破解,用戶名使用“admin”嘗試進行猜解測試。最終破解出密碼為“nanotechnology”。利用這些憑據(jù)成功獲得對保護部分的未授權(quán)訪問,如圖4所示。
網(wǎng)站管理部分包含SQLite Manager Web,這里是不需要任何其他驗證即可訪問。利用這個接口,發(fā)現(xiàn)是支持管理他網(wǎng)站實際內(nèi)容的數(shù)據(jù)庫,如圖5所示。
通過接口對數(shù)據(jù)庫執(zhí)行訪問獲取了用戶列表中密碼hash值。經(jīng)檢測發(fā)現(xiàn)hash值不是常見hash加密,通過下載“phpsqlitecms”程序直接對源代碼分析獲得系統(tǒng)的密碼hash生成方法。方法是利用一個十位字符散列的hash值,再拼接原始的散列與字符串一起存入到數(shù)據(jù)庫中。根據(jù)上述方法,采用同樣的hash值散列來暴力破解密碼并嘗試破解其他賬戶。使用相同的用戶賬號和密碼信息,可以登錄用戶不同的其他應(yīng)用系統(tǒng)(如email、OA、ERP、CRM等),有效提高了進入目標(biāo)系統(tǒng)的可能性,可以輕松的進入了其他內(nèi)部系統(tǒng)。
(2)獲取Admin服務(wù)器shell
客戶使用“SQLite Manager”軟件版本偏低,存在一個注入漏洞??梢岳么寺┒磳?dǎo)致Webshell訪問。基于網(wǎng)絡(luò)公共資源搜索并修改利用exploit,就能獲取對admin服務(wù)器的shell訪問。
(3)權(quán)限提升
通過Webshell操作獲取網(wǎng)絡(luò)服務(wù)器管理員,繼續(xù)尋找升級權(quán)限的方法。通過信息收集,發(fā)現(xiàn)使用該版本系統(tǒng)的服務(wù)存在本地權(quán)限提升漏洞。該漏洞利用不一定都是系統(tǒng),包括開發(fā)工具上都可能成為漏洞攻擊的對象。在目前的滲透過程中,Webserver代表的內(nèi)部攻擊平臺是惡意攻擊的一方。隨著獲取到完整的管理權(quán)限,惡意攻擊者可以利用該漏洞進行更深入的攻擊,從對客戶本身攻擊擴散到客戶的用戶面。這可能就是未來攻擊者利用這個系統(tǒng)的目的。
3.3 滲透測試執(zhí)行標(biāo)準(zhǔn)
滲透測試執(zhí)行標(biāo)準(zhǔn)(Penetration Testing Execution Standard)是目前一個正在開發(fā)中的新標(biāo)準(zhǔn),其核心宗旨是在滲透測試技術(shù)領(lǐng)域?qū)B透測試進行重新詮釋。定義一個完整的滲透測試流程的所有步驟和相關(guān)操作規(guī)范,將滲透測試工作規(guī)范化、流程化和標(biāo)準(zhǔn)化。一切的測試都必須在不影響用戶正常環(huán)境使用的前提下進行。因此必須要雙方明確自己的義務(wù)和責(zé)任,并在整個測試過程中雙方都遵循標(biāo)準(zhǔn)的操作方法和流程。
4 結(jié)論(Conclusion)
綜上所述,為了滿足安全風(fēng)險評估的日益復(fù)雜的需求,在有限的時間內(nèi)對龐大的目標(biāo)系統(tǒng)進行一次完整的安全風(fēng)險評估是非常重要的。使用何種測試方法以及技術(shù)體系作為理論指導(dǎo)非常重要,因此本文提出的滲透測試方法是基于目前安全行業(yè)內(nèi)主流的滲透測試方法和技術(shù)體系,例如:OSSTMM、PTES、OWASP和WASC-TC等作為理論指導(dǎo)。本文提出了基于Kali-Linux的網(wǎng)絡(luò)安全滲透測試技術(shù)方法,并在結(jié)合具體案例的情況下全面講述了該方法的使用過程與測試效果。Kali-Linux方法論體系中所有的測試過程都可以被切分成若干步驟,要完成整個評估項目,必須在整個測試過程當(dāng)中嚴(yán)格遵循這些步驟。在本次案例滲透測試過程中還需注意發(fā)現(xiàn)安全基礎(chǔ)設(shè)施,同時在網(wǎng)絡(luò)邊界和主機安全管理未設(shè)置足夠的訪問控制時應(yīng)采取網(wǎng)絡(luò)分段來加強保障客戶網(wǎng)絡(luò)安全。
參考文獻(References)
[1] Babincev I,Vuletic D.Web Application Security Analysis Using the Kali Linux Operating System[J].Military Technical Courier,2016,64(2):513-531.
[2] Heriyanto T,Allen L,Ali S.Kali Linux:Assuring Security By Penetration Testing[C].Packt Publishing,2014:4.
[3] Ramachandran V,Buchanan C.Kali Linux Wireless Penetration Testing:Master Wireless Testing Techniques to Survey and Attack Wireless Networks with Kali Linux[J].Packt Publishing 2015:3.
[4] 張明舵,張卷美.滲透測試之信息搜集的研究與漏洞防范[J].信息安全研究,2016(03):211-219.
[5] 雷驚鵬,沙有闖.利用Kali Linux開展?jié)B透測試[J].長春大學(xué)學(xué)報,2015(06):49-52.
作者簡介:
姚 莉(1982-),女,碩士,講師.研究領(lǐng)域:計算機應(yīng)用技
術(shù),嵌入式系統(tǒng)設(shè)計及應(yīng)用.
林科辰(1993-),男,本科生.研究領(lǐng)域:軟件工程,網(wǎng)絡(luò)安全.
鄧丹君(1981-),女,碩士,講師.研究領(lǐng)域:計算機應(yīng)用技術(shù).