姚莉 林科辰 鄧丹君
摘 要:滲透測試是一種在獲得用戶或甲方單位授權的情況下,對用戶信息系統或目標系統實施漏洞攻擊的方法。目前所有滲透測試的技術體系理論工作都處于不斷完善和更新中。通過分析黑客攻擊行為的完整流程,本文提出一種基于Kali-Linux進行滲透測試的方法,以提高滲透測試效率和能力。本文總結了當前業內被接受程度較高的幾大標準技術測試體系理論,通過使用Kali-Linux系統作為平臺載體,說明一套完整的滲透測試的思路、流程、步驟和結果輸出等為網絡管理者提供參考。
關鍵詞:網絡安全;安全測試;漏洞評估;Kali-Linux;滲透測試
中圖分類號:TP399 文獻標識碼: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)
隨著移動互聯網的高速發展,計算機系統和數據的安全保障也將面臨著日益嚴峻的考驗。截止至2014年底,據《2014中國互聯網網絡安全報告》得知我國大約有22萬余網站及系統被黑客入侵和篡改。其中商業機構網站占75%,政府類占4%,教育機構占1%,其他占20%。近年網站數據泄露事件頻發,包括幾十省幾千萬社保人員信息、運營商注冊信息、網易郵箱注冊用戶信息、學信網等知名網站數據的泄露。在網上曝光的用戶信息高達數十億條,甚至有33%的組織不知道自身系統是否受到入侵[1]。網絡安全面臨著嚴峻的現實考驗,如何保證網絡安全已成為尤其重要的嚴峻課題。
2 滲透測試(Penetration testing)
滲透測試作為信息安全領域中的一種新型防護技術,是通過執行漏洞利用和概念證明(POC或EXP)攻擊來證明系統確實存在安全隱患。在獲得用戶或甲方單位授權的情況下,由專業從事信息安全的相關人員發起攻擊行為,同時進行高級安全風險評估,通過完全地真實地模擬黑客的攻擊行為和過程,以達到評估計算機系統安全風險級別的目的[2]。滲透測試用于發現系統潛在的風險或漏洞,以達到加強計算機和網絡系統的安全性。讓其在使用中免遭攻擊,最終目的就是使這些被測系統更加安全[3]。滲透測試因而成為檢驗一個網絡是否安全的一個重要手段,滲透測試技術也成為保障系統和數據安全的一種重要途徑。一個完整的滲透測試流程結束以后,后續輸出的報告或文檔會明確說明發現的系統漏洞及相關細節信息,并給出明確的修復意見。
2.1 滲透測試方法論
對信息系統進行一次安全風險評估是一項專業性極強的工作,評估到什么程度或級別困難指數將會成倍增長。選擇使用一些開源的工具和測試方法論,則可大大降低這項工作的技術難度。目前已經有很多開源的安全工具和工具包鏡像,Kali-Linux就是其中一個被廣泛接受的工具集[4]。滲透測試方法理論當中,有偏向信息安全管理層面的,有偏向安全技術層面的,也有些偏向某些核心指標的。幾種業內接受度相對較高的方法論,依次是:
(1)開源安全測試方法OSSTMM。
(2)滲透測試執行標準(PTES)。
(3)開放式Web應用程序安全項目(OWASP)。
(4)Web應用安全聯合威脅分類(WASC-TC)。
其中開源安全測試方法(OSSTMM)和滲透測試執行標準(PTES)這兩種測試方法更偏向信息評估需求,而開放式Web應用程序安全項目(OWASP)十大Web應用風險和Web應用安全聯合威脅分類(WASC-TC)更偏向于Web應用安全方面的測試。由于信息系統微小的變化都可能導致出現意想不到的嚴重后果,直接影響整個安全測試工作的結果。因此在使用上述方法論的過程中,都必須保證目標環境的完整性。
2.2 Kali-Linux測試方法論
Kali-Linux是一套開源的功能大的操作系統級的工具集,集成了目前眾多主流的安全測試、評估和滲透工具。由于各類的工具非常多,在沒有合適的方法理論支撐的情況下,擴展或直接使用這些工具進行測試時常出現測試失敗或不太令人滿意的結果[5]。因此,無論是從管理層面還是技術角度出發,使用一套規范化的、標準化、結構化的測試方法來支撐安全測試過程,是非常重的。Kali-Linux方法論體系中所有的測試過程都可以被切分成若干步驟,具體包括:目標界定、信息收集、發現目標、枚舉目標、映射漏洞、社會工程學、漏洞執行、系統提權、持續控制及輸出報告歸檔。Kali-Linux測試流程的示意圖如1所示。
3.1 執行摘要
測試團隊接受客戶要求進行滲透測試,測試團隊的所有活動都在模擬惡意黑客對客戶目標進行針對性攻擊,確定其是否存在安全威脅。
(1)確定一個遠程攻擊者可以穿透用戶的安全防御。
(2)確定安全漏洞的影響。
(3)對用戶私人數據保密處理。
(4)確定內部可用基礎設施和信息系統。
所有測試和行動都根據NIST SP 800-1151標準下進行。主要識別和利用安全漏洞,發現允許遠程攻擊者對組織數據未授權訪問。
3.2 測試過程
(1)對遠程系統漏洞挖掘
為了盡可能模擬所有資產在沒有確定之前盡可能避免遭到網絡攻擊,客戶提供一個對外信息特別少的組織域名。本次測試首先對域名服務器傳送進行測試,發現主機ns2很容易出現DNS區域傳送記錄。這為測試提供了與主機名和相關聯的IP地址和列表,可用于進一步定位客戶目標。區域傳送可提供有關的詳細信息,也可以泄露所有者組織網絡范圍信息,如圖2所示。
以上主機列表已得到客戶驗證,由此整個50.7.67.X都納入滲透測試范圍。通過掃描探測這些系統允許服務進行詳細審查確定運行的服務,由此確定可能面臨的針對性的攻擊。通過DNS遍歷和網絡掃描相結合,能夠建立一個探測出客戶的網絡。該admin二級域名WEB服務器發現在81端口運行Apache服務器。通過訪問URL網址顯示空白頁。接下來進行一次快速枚舉掃描系統存在目錄和文件,如圖3所示。
掃描結果顯示與普通的Apache默認文件一起確定一個“/admin”目錄后可以開始驗證訪問。基于用戶網站內容,準備針對性的密碼破解,整理了自定義字典。經過幾輪排列和替換最終篩出為有16201密碼的字典。該字典將用于密碼破解,用戶名使用“admin”嘗試進行猜解測試。最終破解出密碼為“nanotechnology”。利用這些憑據成功獲得對保護部分的未授權訪問,如圖4所示。
網站管理部分包含SQLite Manager Web,這里是不需要任何其他驗證即可訪問。利用這個接口,發現是支持管理他網站實際內容的數據庫,如圖5所示。
通過接口對數據庫執行訪問獲取了用戶列表中密碼hash值。經檢測發現hash值不是常見hash加密,通過下載“phpsqlitecms”程序直接對源代碼分析獲得系統的密碼hash生成方法。方法是利用一個十位字符散列的hash值,再拼接原始的散列與字符串一起存入到數據庫中。根據上述方法,采用同樣的hash值散列來暴力破解密碼并嘗試破解其他賬戶。使用相同的用戶賬號和密碼信息,可以登錄用戶不同的其他應用系統(如email、OA、ERP、CRM等),有效提高了進入目標系統的可能性,可以輕松的進入了其他內部系統。
(2)獲取Admin服務器shell
客戶使用“SQLite Manager”軟件版本偏低,存在一個注入漏洞。可以利用此漏洞導致Webshell訪問。基于網絡公共資源搜索并修改利用exploit,就能獲取對admin服務器的shell訪問。
(3)權限提升
通過Webshell操作獲取網絡服務器管理員,繼續尋找升級權限的方法。通過信息收集,發現使用該版本系統的服務存在本地權限提升漏洞。該漏洞利用不一定都是系統,包括開發工具上都可能成為漏洞攻擊的對象。在目前的滲透過程中,Webserver代表的內部攻擊平臺是惡意攻擊的一方。隨著獲取到完整的管理權限,惡意攻擊者可以利用該漏洞進行更深入的攻擊,從對客戶本身攻擊擴散到客戶的用戶面。這可能就是未來攻擊者利用這個系統的目的。
3.3 滲透測試執行標準
滲透測試執行標準(Penetration Testing Execution Standard)是目前一個正在開發中的新標準,其核心宗旨是在滲透測試技術領域對滲透測試進行重新詮釋。定義一個完整的滲透測試流程的所有步驟和相關操作規范,將滲透測試工作規范化、流程化和標準化。一切的測試都必須在不影響用戶正常環境使用的前提下進行。因此必須要雙方明確自己的義務和責任,并在整個測試過程中雙方都遵循標準的操作方法和流程。
4 結論(Conclusion)
綜上所述,為了滿足安全風險評估的日益復雜的需求,在有限的時間內對龐大的目標系統進行一次完整的安全風險評估是非常重要的。使用何種測試方法以及技術體系作為理論指導非常重要,因此本文提出的滲透測試方法是基于目前安全行業內主流的滲透測試方法和技術體系,例如:OSSTMM、PTES、OWASP和WASC-TC等作為理論指導。本文提出了基于Kali-Linux的網絡安全滲透測試技術方法,并在結合具體案例的情況下全面講述了該方法的使用過程與測試效果。Kali-Linux方法論體系中所有的測試過程都可以被切分成若干步驟,要完成整個評估項目,必須在整個測試過程當中嚴格遵循這些步驟。在本次案例滲透測試過程中還需注意發現安全基礎設施,同時在網絡邊界和主機安全管理未設置足夠的訪問控制時應采取網絡分段來加強保障客戶網絡安全。
參考文獻(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開展滲透測試[J].長春大學學報,2015(06):49-52.
作者簡介:
姚 莉(1982-),女,碩士,講師.研究領域:計算機應用技
術,嵌入式系統設計及應用.
林科辰(1993-),男,本科生.研究領域:軟件工程,網絡安全.
鄧丹君(1981-),女,碩士,講師.研究領域:計算機應用技術.