田立軍
(西安鐵路局 信息化處,西安 710054)
滲透性測試技術及方法研究
田立軍
(西安鐵路局 信息化處,西安 710054)
隨著企業(yè)對信息系統(tǒng)安全性需求的增強,對滲透測試方法和技術的研究也越來越重要。本文對安全滲透測試工程師經常采用的方法和技術進行了綜述類研究,總結了若干方法和技術及滲透測試流程,在此基礎上結合等級保護測評基本要求中對于滲透測試的要求提出了滲透測試方法。
滲透測試;測試技術;滲透測試流程;等級保護
滲透測試通常指模擬黑客采用的漏洞發(fā)掘技術及攻擊方法,測試工程師對被測試單位的網絡、主機、應用及數(shù)據(jù)是否存在安全問題進行檢測的過程,這種活動主要是發(fā)現(xiàn)系統(tǒng)的脆弱性,評估信息系統(tǒng)是否安全,從攻擊者角度發(fā)現(xiàn)分析系統(tǒng)的缺陷及漏洞,并利用這些漏洞實現(xiàn)主動攻擊。滲透測試是一個逐漸深入信息系統(tǒng)內部的過程,有可能影響業(yè)務信息系統(tǒng)的正常運行,所以一般選擇對業(yè)務最少影響的通用方法測試。
1.1 滲透測試方法
(1)信息收集。通常被稱作“踩點”,是進行攻擊入侵的首要任務。收集信息系統(tǒng)的網絡信息,主要是為了制定有目的性和針對性的滲透測試計劃和方案,來減小被發(fā)現(xiàn)的概率、提高測試的成功率、減小漏報率。“踩點”的主要內容有掃描主機域名和IP地址、判斷操作系統(tǒng)類型、發(fā)現(xiàn)系統(tǒng)開放的端口及該端口對應的應用程序、掃描系統(tǒng)賬號列表、收集系統(tǒng)配置信息等。信息收集常用的工具有BT5、nmap、X-Scan、Appscan等。
(2)端口掃描。端口掃描是通過掃描目標地址的開放端口,發(fā)現(xiàn)其所開放的所有服務來確定系統(tǒng)的基本特征,這是進行滲透測試的基礎步驟,安全測試者通過掃描結果并結合經驗發(fā)現(xiàn)系統(tǒng)可被利用的安全缺陷,為進一步的滲透提供依據(jù)。
(3)遠程溢出。遠程溢出攻擊是通過遠程終端對信息系統(tǒng)實現(xiàn)溢出攻擊的方式,它由于較易掌握和實施,導致成為出現(xiàn)頻率最高、威脅最嚴重的滲透測試方式,通常只要攻擊者具備基礎網絡常識就能通過利用現(xiàn)成的遠程溢出攻擊工具實現(xiàn)這種攻擊。
(4)本地溢出。本地溢出是指本地計算機因程序數(shù)據(jù)溢出而關閉或無法執(zhí)行。本地溢出攻擊是指在本地執(zhí)行一段特定的代碼指令導致本地計算機程序溢出從而獲得管理員權限的方法,使用該攻擊方法的前提是需要經過口令猜測或暴力破解獲得普通用戶的密碼口令。由于本地計算機設置了弱口令的不當密碼策略導致了本地溢出,在使用普通用戶登錄到系統(tǒng)后對未部署主動安全防御的系統(tǒng)實施本地溢出攻擊,達到獲得完全控制管理權限的目的。
(5)網絡嗅探。嗅探是進行信息收集的一種方法,主要是用來捕捉網絡中像明文密碼這樣的傳輸數(shù)據(jù)的方法,同時也能夠抓取特定計算機之間的完整會話信息。要強調的是為了達到捕獲網絡中所有傳輸數(shù)據(jù)的目的,通常要求計算機的網卡模式在嗅探時設置為混合模式,嗅探器或計算機需要直連到網絡來獲取大量數(shù)據(jù)信息,所以嗅探常被用在內部測試。
(6)SQL注入攻擊。SQL注入是指在網站中的Web表單、字符查詢輸入框中,通過提交某些特殊SQL語句達到篡改網站后端采用數(shù)據(jù)庫中內容的方式。SQL注入攻擊是黑客攻擊數(shù)據(jù)庫的常用技術手段之一,由于網站沒有詳細的過濾用戶輸入的數(shù)據(jù)導致存在SQL注入漏洞,這也是非法數(shù)據(jù)侵入數(shù)據(jù)庫系統(tǒng)的主要原因。
(7)跨站腳本攻擊??缯灸_本攻擊是指攻擊者將具有惡意目的的數(shù)據(jù)潛入到遠程用戶信任的WEB頁面的HTML代碼中,當該頁面被瀏覽器下載運行時嵌入的腳本將被執(zhí)行,用戶頁面被跳轉到攻擊者精心編織的其他頁面,用戶毫無顧及的填寫各種敏感信息,殊不知已被攻擊者盜取或被站點掛馬控制。
(8)暴力破解。暴力攻擊的主要目的是通過嘗試各種密碼字典和窮舉法查出合法的用戶名和口令,所采用的字典比較龐大,比如最常使用的彩虹表有100 G以上,這種字典由大量的字母、數(shù)字、符號等組合而成的,雖比較完善但這種破解用戶口令的方法是很耗時的,并且可能會造成系統(tǒng)過載而無法響應合法的請求。另外若系統(tǒng)開啟了帳戶鎖定策略,這種口令嘗試攻擊會關閉合法登錄帳戶。
(9)漏洞掃描。漏洞掃描是針對目標系統(tǒng)的窮舉檢查發(fā)現(xiàn)系統(tǒng)是否存在漏洞的一種方法。掃描的目標范圍包括網絡設備、主機操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)及應用系統(tǒng),它通常是使用自動化工具執(zhí)行的,如綠盟漏洞掃描設備,這些工具能夠測試目標范圍內已知漏洞方面的大量潛在弱點,并出具漏洞掃描報告,羅列系統(tǒng)潛在的安全問題并提供整改方案。
(10)代碼審查。代碼審查主要是通過手工或審查工具對被測業(yè)務信息系統(tǒng)進行安全代碼審查,發(fā)現(xiàn)可能會導致安全問題的不安全編碼規(guī)范、編碼技術和代碼漏洞。代碼審查測試工作包括:審查代碼中的XSS腳本漏洞;審查代碼中的SQL注入漏洞;審查代碼中的緩沖區(qū)溢出漏洞;審查不規(guī)范的編碼技術;另外也包括發(fā)現(xiàn)軟件代碼編寫錯誤及其他潛在漏洞的審查。
1.2 滲透測試技術
滲透測試按照滲透的對象不同可分為操作系統(tǒng)滲透、數(shù)據(jù)庫系統(tǒng)滲透、應用系統(tǒng)滲透和網絡設備滲透。對于不同的滲透目標或對象,采用不同的滲透測試技術,主要分為內網測試技術和外網測試技術。
1.2.1 內網測試
內網測試通常指滲透測試執(zhí)行者從信息系統(tǒng)內部網絡繞過防火墻直接進行的測試,這種測試能夠模擬內部員工的違規(guī)操作。進行這種測試主要可能采用的滲透方法包括:緩沖區(qū)溢出攻擊、口令破解、應用程序測試、漏洞掃描、端口掃描等,其中對C/S模式的應用程序進行測試之前需準備好有關客戶端軟件。內網測試也稱為白盒測試,測試者可以通過與被測單位的程序員、維護人員、管理人員面對面交流取得各種資料,包括網絡拓撲、操作系統(tǒng)和數(shù)據(jù)庫類型、員工資料甚至網站或其他程序的代碼片段。
1.2.2 外網測試
外網測試指的是在公司網絡的外部進行的測試,測試人員在對內部網絡狀態(tài)完全不知道的情況下,模擬外部攻擊者的一種行為[1]。其中包括防火墻規(guī)則的規(guī)避、試探,遠程攻擊網絡設備,對口令管理的安全性測試,其它開放應用服務及相關Web的安全性測試等。外網測試通常也被稱為黑盒測試,所以,外網測試最初獲取的信息大多通過搜索引擎、單位論壇或單位公開對外的服務器。
1.2.3 滲透測試實例
下面以主機滲透測試為例,闡述針對主機身份鑒別如何開展?jié)B透測試。
等級保護《基本要求》中對第3、第4級系統(tǒng)要求如下:
(1)針對服務器的操作系統(tǒng)進行滲透性測試,可以通過應用口令破解等相關工具,針對具體服務器的操作系統(tǒng)強度檢測其相關的用戶口令,查看是否能夠有針對性地對用戶口令進行破解,其用戶口令被破解后是否能夠登錄進入服務器的操作系統(tǒng)[3]。
(2)針對服務器的操作系統(tǒng)進行滲透性測試,主要是指檢查是否真正存在著一種能夠繞過用戶認證方式而進行操作系統(tǒng)登錄的方法[3]。
針對要求點(1)指出的通過破解服務器用戶口令的工具對系統(tǒng)進行較高強度檢測,主要采用的工具有綠盟漏洞掃描設備中的口令破解模塊以及BT5工具中在線密碼破解工具hydra的圖形化界面hydragtk,這里用到了用戶字典和密碼字典,口令是否破解成功與字典是否強大有直接關聯(lián)[5]。
滲透測試實例如下:
(1)Windows服務器口令破解實例
對于Windows服務器操作系統(tǒng)主要版本有Winnt 4.0 Server、Win2000/Advanced Server、Win2003/ Advanced Server、Windows Server 2008。首先采用Windows(SMB)常見用戶名口令組合字典,字典中包含Administrator:123/1234/123123/111111等的弱口令賬戶,新建任務輸入要掃描的IP地址,選擇字典模板進行弱口令賬戶的掃描,掃描結果,該服務器操作系統(tǒng)類型為Windows Server 2008 R2 Enterprise 7601 Service Pack 1,運行的應用程序MySQL存在弱口令賬戶root/root。
采用hydra-gtk工具對Windows XP 系統(tǒng)進行簡單的實驗,實驗截圖如圖1~圖3所示。
圖1 滲透第一步
圖2 填寫滲透測試目標IP
圖3 滲透測試結果
(2)繞過操作系統(tǒng)認證方式進入系統(tǒng)
采用U盤啟動Win PE系統(tǒng),開機時按F12進入Win PE系統(tǒng)USB模式,打開程序,選擇密碼修改或密碼恢復,對密碼進行重置,修改成功后重啟電腦,輸入新密碼即可登錄系統(tǒng)。
當Windows系統(tǒng)用戶列表中有除Administrator管理員用戶(用戶密碼為空)之外的普通用戶如aa,可以進入帶命令行模式的安全模式下通過net user aa 1234/add來重新設置aa的密碼,也可以通過net localgroup administrators aa/add來提升其權限為管理員,重啟電腦后即可采用aa登錄系統(tǒng)。
使用Windows安裝光盤,選擇用“恢復控制臺”修復Windows XP 安裝,跳過管理員密碼輸入步驟,隨后進入System32文件夾:cd system32,并重命名該目錄下的文件sfcfiles.dll :ren sfcfiles.dll sfcfiles. lld。接著從光盤中I386目錄下復制文件pinball.ex_到system32文件夾中,并命名為sfcfiles.dll:copy d:i386pinball.ex_ sfcfiles.dll.至此前期工作全部做完,把光盤拿出,輸入exit命令退回控制臺,重啟電腦。
利用發(fā)現(xiàn)的操作系統(tǒng)漏洞對操作系統(tǒng)進行滲透測試,獲取操作系統(tǒng)權限。主要可利用系統(tǒng)緩沖區(qū)的溢出漏洞、遠程代碼執(zhí)行漏洞、系統(tǒng)拒絕服務的漏洞、內存破壞漏洞等。下面舉例采用Windows Server 操作系統(tǒng)的服務RPC請求其系統(tǒng)緩沖區(qū)溢出的一個漏洞(ms08-067),即針對Windows操作系統(tǒng)的Server服務,在進行處理特制的一種RPC請求時,存在著這種關于緩沖區(qū)溢出的系統(tǒng)漏洞[4],使用BT5中的metasploit工具攻陷XP系統(tǒng)獲取系統(tǒng)權限,流程如圖4所示。
圖4 獲取系統(tǒng)權限流程
至此攻擊成功,獲取了服務器操作系統(tǒng)的shell,也即獲取了系統(tǒng)的控制權限,進行新建管理員用戶及口令即可成功繞過認證方式登錄系統(tǒng)。
滲透測試流程如圖5所示。
2.1 準備階段
圖5 滲透測試流程圖
項目經理根據(jù)從客戶收集到的文檔資料及調查數(shù)據(jù),編制《信息系統(tǒng)滲透測試方案》,主要目的是確定具體日期及雙方配合人員名單,并要求被測評單位簽訂《信息系統(tǒng)滲透測試用戶授權單》。
2.2 預攻擊階段
主要確定進一步攻擊策略,目的為收集信息,包括獲得域名及IP分布,獲得網絡拓撲和操作系統(tǒng),獲得服務器端口和服務,獲得應用系統(tǒng)情況,跟蹤新漏洞發(fā)布,主要包括以下幾個方面。
(1)獲取基本網絡信息
a.使用Ping命令得到網絡IP和ttl等信息;
b.使用Tcptraceroute和traceroute查看路由結果;
c.使用Curl域名方式獲取目標Web基本信息;
d.使用Nmap命令進行端口掃描并判斷操作系統(tǒng)類型;
e.谷歌、百度搜索引擎獲取目標信息;
f.使用hping3工具進行防火墻規(guī)則探測。
(2)漏洞掃描
a.采用Xscan、nessus、綠盟漏洞掃描等商用或免費的掃描工具進行漏掃掃描;
b.采用綠盟漏洞掃描對網絡設備、Web應用程序、數(shù)據(jù)庫進行掃描分析。
(3)對Web應用進行分析
a.采用Webscarab工具對Web進行分析;
b.用Ethereal、wireshark抓包協(xié)助分析;
教師在智慧職教云上安排了課后拓展階段,提出思考問題,進行頭腦風暴,拓展知識視野,進一步提升學生專業(yè)技能學習的廣度和深度。學生利用課余時間,通過移動終端和PC終端訪問智慧職教云平臺,學習任課教師構建的一體化教學資源。這樣既培養(yǎng)學生進行持續(xù)學習,提升學生自我學習能力,又對已學知識進行檢測。
c.用Webscan、appscan進行SQL注入和XSS漏洞初步分析。
分析應用時為防止直接繞過系統(tǒng)修改數(shù)據(jù)庫文件需檢查應用系統(tǒng)架構;為防止非法繞過身份認證需檢查身份認證模塊;為防止用戶獲得系統(tǒng)權限需檢查數(shù)據(jù)庫接口模塊;為防止用戶獲取系統(tǒng)文件需檢查文件接口模塊。
2.3 攻擊階段
攻擊獲得系統(tǒng)的權限。主要有獲得遠程權限進入系統(tǒng),提升本地權限,進一步擴展權限,進行實質性操作。攻擊主要針對通用設備、數(shù)據(jù)庫、操作系統(tǒng)和應用展開。
(1)Web腳本攻擊:SQL注入攻擊、跨站腳本攻擊、文件上傳攻擊、cookie欺騙等。
(2)木馬攻擊:木馬偽裝、木馬免殺、網頁木馬偽裝、網頁木馬免殺。
(3)緩沖區(qū)溢出:系統(tǒng)服務緩沖區(qū)溢出等。
(5)網絡設備滲透:防火墻攻擊、路由器攻擊等。
(6)賬戶口令攻擊:內存截獲賬戶數(shù)據(jù)、口令暴力破解、克隆賬戶等。
(7)管理缺陷利用:遠程終端入侵通道、FTP弱口令破解與入侵利用等。
(8)嗅探欺騙技術:“廣播型”網絡環(huán)境的嗅探、ARP欺騙、DNS欺騙劫持等。
2.4 后攻擊階段
消除痕跡并維持一段長期的權限。主要包括刪除滲透日志,修補漏洞,植入后門,進一步滲透,進入潛伏狀態(tài)。
(1)鍵盤記錄與口令嗅探:使用木馬植入、鍵盤記錄、嗅探等相關功能簡單的入侵軟件,但需要不被殺毒軟件和防火墻發(fā)覺,所以通常需要進行部分修改完善或完全自行開發(fā)。
(2)口令破解:借助如Cain、L0phtCrack等破解用戶操作系統(tǒng)口令的相關軟件進行日志清除,為避免入侵痕跡被系統(tǒng)管理員發(fā)現(xiàn),通常刪除系統(tǒng)或應用日志需要技巧。
2.5 滲透測試報告編寫階段
項目組和客戶溝通核對測試結果,編制滲透測試報告,在必要時可召開報告評審會,如果客戶要求復測,則要被測評單位在整改完畢后提交信息系統(tǒng)整改報告,開展復測工作。復測結束后,測評方出具《信息系統(tǒng)滲透測試復測報告》。
社會網絡化不斷發(fā)展和各類信息系統(tǒng)在商業(yè)、政府、軍事領域的廣泛使用,系統(tǒng)的安全問題也日益被重視。為了能夠有效地檢測系統(tǒng)的安全性,提升其防御能力,降低系統(tǒng)被攻擊的風險,滲透測試作為一種能全面檢測系統(tǒng)可能存在的安全漏洞的手段被廣泛使用,由于需要測試的對象比較復雜,所以滲透測試的技術和方法多種多樣。本文主要對滲透測試的技術、方法和測試流程進行了探討和總結,并結合等級保護基本要求對主機安全身份鑒別測試項的滲透要求進行了測試方法的介紹及測試實驗,為后續(xù)的網絡安全、應用安全等滲透提供借鑒的思路。
[1]王曉聰,張 冉. 滲透測試技術淺析[J]. 計算機科學,2012(6).
[2]唐秀存,杜德慧. 滲透測試技術與模型研究[J]. 計算機與信息技術,2007(5).
[3] 中華人民共和國國家質量監(jiān)督檢驗檢疫總局,中國國家標準化管理委員會. GB/T 22239-2008,信息安全技術—信息系統(tǒng)安全等級保護基本要求[S].北京:中國標準出版社, 2008.
[4] David Kennedy,Jim O'Gorman,Devon Kearns,Mati Aharoni. Metasploit滲透測試指南[M].北京:電子工業(yè)出版社,2013.
[5]卞崢嶸.back track5從入門到精通[M].北京:國防工業(yè)出版社,2012.
責任編輯 方 圓
Techniques and methods for penetration testing
TIAN Lijun
( Department of Information Technology, Xi’an Railway Administration, Xi’an 710054, China )
With the increased demand of information system security for enterprise, the research of penetration testing methods and techniques became more and more important. This paper mainly researched on the methods and technologies which were often used by penetration testing engineer, and summarized these methods, skills and penetration testing process. Based on these researches and basic requirements of classified protection, the paper
proposed the penetration testing methods.
penetration testing; testing techniques; penetration testing process; level protection
U29-39
A
1005-8451(2015)02-0008-05
2014-10-08
田立軍,高級工程師。