王學慶,羅尚平
(樂山師范學院 a.離退休工作處;b.計算機科學學院,四川 樂山 614000)
隨著經濟與信息化的飛速發(fā)展,網絡信息安全是我們需要迫切解決的一個問題。網絡滲透的攻與防御成為了研究網絡信息安全的重要內容,為此,涌現(xiàn)出了眾多滲透攻擊測試平臺,如基于Web的安全攻擊測試平臺[1]、基于系統(tǒng)漏洞的安全攻擊測試平臺[2]、基于應用軟件的安全攻擊測試平臺[3]等。這些平臺解決了一部分安全功能測試所需要的環(huán)境與手段,但沒有構建一個真實有效的網絡整體環(huán)境,安全漏洞與代碼不能有效更新,不能很好地滿足用戶滲透測試、攻防對抗與技術學習的需要,為此,如何構建一個能模擬真實的網絡環(huán)境并能實現(xiàn)不同應用對象在不同安全測試條件下均能實現(xiàn)滲透攻擊的平臺就顯得尤為重要。本文通過研究Metasploit滲透攻擊平臺,模擬一個真實的網絡環(huán)境,利用虛擬機軟件部署多臺虛擬機,使用Metasploit框架對平臺中的靶機進行漏洞探測,并利用靶機存在的漏洞發(fā)起滲透攻擊,分析滲透攻擊過程中可以應用的手段,再針對部分攻擊手段制定防御對策,以達到驗證攻防技術、提升網絡安全性的目的。平臺能提供給學習者盡可能豐富的安全模塊與滲透攻擊手段,并能溯源整個攻防過程,讓學習者能了解其中滲透攻擊原理,有效進行二次開發(fā)與研究學習。
Metasploit是一個跨平臺的開源的滲透測試框架,有1 500多個模塊和400多個攻擊載荷[4]。它采用模塊化理念設計,包含了很多利用代碼和滲透測試工具且被不斷地更新。它可以在同一個平臺上利用各種不同的代碼進行滲透攻擊測試,許多攻擊代碼和設置參數(shù)等可以重復利用,還可以根據(jù)需要將滲透過程中不同階段使用的攻擊代碼進行自由組合,而不需要針對每一個漏洞去寫一整套完整的代碼,故它可以在不同的目標環(huán)境中快速地執(zhí)行完整的滲透攻擊測試。Metasploit的這些超越同類的特點與優(yōu)勢,使得它在安全領域享有很高的地位。
平臺給出了基于Metasploit框架下的滲透攻擊測試的總體設計,包括攻擊機和靶機。針對被滲透攻擊測試系統(tǒng)的運行環(huán)境,給出了網絡總平臺、DMZ平臺、企業(yè)門戶平臺和內網平臺四個關鍵平臺的設計和建設方案,具體如圖1所示:
圖1 虛擬機下的滲透攻擊平臺
平臺采用Vmware虛擬化技術,支持在一臺高性能的PC機或筆記本電腦上(建議四核酷睿i5 CPU以上、8 G內在以上及500 G以上硬盤空間)安裝這些測試的主機鏡像,可以根據(jù)不同的滲透攻擊技術選擇性地運行不同的虛擬機,具體使用如表1中所列的8個虛擬機鏡像:
表1 平臺環(huán)境中的虛擬機鏡像
平臺能實現(xiàn)由學習者根據(jù)需要自主地選擇掃描工具,對目標網絡進行有針對性的掃描,根據(jù)網絡滲透測試實驗的步驟,逐步完成網絡滲透測試過程。實驗不設定特定的環(huán)境,注重教學實踐,培養(yǎng)實驗者獨立思考的能力。在該平臺上,學習者可以自由地選取掃描工具和滲透測試對象以及滲透測試的策略,通過在虛擬網絡環(huán)境下完成網絡滲透測試的整個過程,來理解網絡滲透測試的流程、步驟和手段,并能根據(jù)獲取到的漏洞信息編寫、修改和添加攻擊載荷模塊,完成相應的滲透測試;學習者能更加清楚地了解網絡滲透測試的全過程,并能夠直觀清晰地看到滲透攻擊所產生的效果,以便分析和研究漏洞信息、攻擊原理以及防御手段。
平臺支持功能模塊二次開發(fā),能夠模擬主流滲透測試場景以及快速搭建不同的測試環(huán)境,并具備再現(xiàn)典型攻擊手段,支撐安全技術的研究等作用,研究人員通過平臺可以提高對于應用系統(tǒng)、設備的安全防護能力和對突發(fā)事件的應急響應能力。
平臺的攻擊機整合了Metasploit的多個信息收集工具如Nmap、Nessus、OpenVAS等搜集目標的信息[5],掃描目標的開放端口,分析目標上正在運行的網絡服務內容。它既能對網絡進行廣泛掃描,也能聚焦單個目標;還可以加載附加腳本,擴展信息搜集能力。根據(jù)掃描結果,可以發(fā)現(xiàn)目標網絡中的不同服務對象、不同目標類型,根據(jù)不同服務對象、不同目標類型采用不同的方法嘗試對目標進行滲透攻擊。平臺設計中,門戶網站服務器靶機是尋找整個平臺環(huán)境中的切入點,其OWASP模塊匯集了大量存在已知安全漏洞的訓練實驗環(huán)境和真實Web應用程序,使用者可對其進行掃描與滲透攻擊測試,以獲得整個網絡環(huán)境情況,作為攻擊跳板入侵網絡內其他主機與服務器。
利用Metasploit掃描功能能獲取單個服務器靶機信息,要分析總體安全性,需要調用一些深入掃描的腳本詳細探測目標的全面信息。可通過Metasploit框架中的find命令找到漏洞探測腳本,并通過-script參數(shù)利用Nmap、Nessus、OpenVAS等工具加載腳本掃描目標系統(tǒng),找到目標系統(tǒng)是否易受漏洞攻擊,存在的安全隱患以及網絡路由情況,最后確定安全攻擊方式。
要利用安全漏洞發(fā)起滲透攻擊,首先通過use命令進入Exploit發(fā)起攻擊,然后執(zhí)行“show options”命令顯示攻擊的參數(shù)選項。這時并沒有設定Payload(攻擊載荷)。在Metasploit框架中Exploit的作用是對漏洞發(fā)起攻擊,而Payload就是攻擊成功之后執(zhí)行的功能代碼[6]。它能獲得一個shell或者能根據(jù)攻擊機指令從攻擊機獲得更多的Payload去運行,這樣有利于對目標進行不同方式的滲透攻擊。
攻擊成功后將會看到控制臺中提示已經打開了一個目標的Session,即控制的會話,并且出現(xiàn)了系統(tǒng)的cmdshell的命令提示,執(zhí)行whoami命令查看獲得的權限,發(fā)現(xiàn)Metasploit已經成功獲得了目標服務器系統(tǒng)的最高權限。
僅獲得cmdshell并不能體現(xiàn)Metasploit的強大,此時可以換用Metasploit提供的更強大的Payload功能Meterpreter來對目標系統(tǒng)進行控制。通過靈活運用meterpreter內建的滲透命令或執(zhí)行腳本、加載模塊,可以搜集到更多的信息或實現(xiàn)某些功能,方便進一步對目標進行滲透,以達到再次滲透攻擊的目的。
由于此時Payload是在目標系統(tǒng)內存中運行的,一旦注入的進程終止或者目標系統(tǒng)關閉重啟,就會失去對目標的控制。為此,可在目標系統(tǒng)中安裝一些后門程序,實現(xiàn)持久化控制。Metasploit集成的后門程序中較為常用的有Metsvc和Persistence[7-8]。Metsvc是通過服務項目啟動的,會被上傳到目標系統(tǒng)的用戶臨時目錄,文件名字都帶有Metsvc字樣,其默認的啟動服務名稱為“meterpreter”。
Persistence后門通過注冊表啟動VBS腳本文件的方式釋放后門運行,本身的VBS文件、釋放的EXE文件的文件名以及注冊表啟動項名稱均為隨機字符串,在VBS腳本中保存的后門程序代碼是經過編碼后的普通文本,沒有明顯的惡意代碼特征,所以相對于Metsvc而言比較能隱藏自己不被發(fā)現(xiàn)。
后門植入完成后,攻擊對象就完全被攻擊控制了,此時可以獲取對象的任何信息。
本文設計了用于研究網絡安全與網絡攻擊方法測試與學習的平臺,解決了教與學中沒有真實環(huán)境進行實戰(zhàn)演習的瓶頸,讓學習者真實地進行網絡滲透攻擊與防御,了解其深層次的原理,提高了他們的理論與實戰(zhàn)水平。平臺模擬一個真實的網絡環(huán)境,并利用靶機存在的漏洞發(fā)起滲透攻擊,分析滲透攻擊過程中可以應用的手段,再針對部分攻擊手段制定防御對策,以達到驗證攻防技術,提升網絡安全性的目的。平臺提供給學生者盡可能豐富的安全模塊與滲透攻擊手段,并能溯源整個攻防過程,讓學習者能了解其中的滲透攻擊原理,實現(xiàn)了代碼的重復利用與二次開發(fā),這是以前滲透攻擊平臺所不具有的功能。此外,平臺結合Metasploit開源的特點,能實時更新代碼與滲透攻擊庫,讓學習者能了解最新的網絡安全態(tài)勢,以應對網絡安全挑戰(zhàn)。