一、什么是滲透測試?
滲透測試 (penetration test)并沒有一個標準的定義,國外一些安全組織達成共識的通用說法是:滲透測試是通過模擬惡意黑客的攻擊方法,來評估計算機網(wǎng)絡(luò)系統(tǒng)安全的一種評估方法。這個過程包括對系統(tǒng)的任何弱點、技術(shù)缺陷或漏洞的主動分析,這個分析是從一個攻擊者可能存在的位置來進行的,并且從這個位置有條件主動利用安全漏洞。換句話來說,滲透測試是指滲透人員在不同的位置(比如從內(nèi)網(wǎng)、從外網(wǎng)等位置)利用各種手段對某個特定網(wǎng)絡(luò)進行測試,以期發(fā)現(xiàn)和挖掘系統(tǒng)中存在的漏洞,然后輸出滲透測試報告,并提交給網(wǎng)絡(luò)所有者。網(wǎng)絡(luò)所有者根據(jù)滲透人員提供的滲透測試報告,可以清晰知曉系統(tǒng)中存在的安全隱患和問題。我們認為滲透測試還具有的兩個顯
著特點是:滲透測試是一個漸進的并且逐步深入的過程。滲透測試是選擇不影響業(yè)務(wù)系統(tǒng)正常運行的攻擊方法進行的測試。作為網(wǎng)絡(luò)安全防范的一種新技術(shù),對于網(wǎng)絡(luò)安全組織具有實際應(yīng)用價值。但要找到一家合適的公司實施滲透測試并不容易。
二、滲透測試——Web如何進行
應(yīng)用數(shù)以千計,就有必要建立一套完整的安全測試框架,流程的最高目的web當需要測試的標是要保證交付給客戶的安全測試服務(wù)質(zhì)量。 立項:項目建立,時間安排,人力分配,目標制定,廠商接口數(shù)確定; 應(yīng)用:分析系統(tǒng)架構(gòu)、使用的組件、對外提供的接web威脅分析:針對具體的&系統(tǒng)分析top3重點關(guān)注輸出安全威脅分析表,為威脅模型進行對應(yīng)的安全威脅分析,STRIDE以口等, 威脅:具備可測試用例按照模板輸出,根據(jù)威脅分析的結(jié)果制定對應(yīng)的測試用例,制定測試用例: 執(zhí)行性:or發(fā)散測試,挖掘?qū)?yīng)的安全問題&漏洞挖掘:測試用例執(zhí)行&測試執(zhí)行漏洞;漏洞并進行回歸測試,確保or回歸測試:指導(dǎo)客戶應(yīng)用開發(fā)方修復(fù)安全問題&問題修復(fù)漏洞得到修復(fù),并且沒有引入新的安全問題;or安全問題
項目總結(jié)評審:項目過程總結(jié),輸出文檔評審,相關(guān)文檔歸檔。
應(yīng)用的滲透測試流程分別是:信息收集→漏洞發(fā)現(xiàn)→漏洞利用,下面仔細分析一下各個階3主要分為段流程
2.1信息收集:
1,獲取域名的whois信息,獲取注冊者郵箱姓名電話等。
2,查詢服務(wù)器旁站以及子域名站點,因為主站一般比較難,所以先看看旁站有沒有通用性的cms或者其他漏洞。
3,查看服務(wù)器操作系統(tǒng)版本,web中間件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞
4,查看IP,進行IP地址端口掃描,對響應(yīng)的端口進行漏洞探測,比如 rsync,心臟出血,mysql,ftp,ssh弱口令等。
5,掃描網(wǎng)站目錄結(jié)構(gòu),看看是否可以遍歷目錄,或者敏感文件泄漏,比如php探針
6,google hack 進一步探測網(wǎng)站的信息,后臺,敏感文件
2.2 漏洞發(fā)現(xiàn):
在這個階段我們在做測試的時候要對癥下藥,不能盲目的去掃描,首先要確定目標應(yīng)用是否使用的是公開的開源軟件,開源框架等、然后在做深一度的漏洞掃描。
關(guān)于開源軟件的漏洞發(fā)現(xiàn):
開源的軟件:常見的開源軟件有wordpress、phpbb、dedecms
開源的框架:常見的開源框架有Struts2、 Spring MVC、ThinkPHP
中間件服務(wù)器:常見的中間件服務(wù)器有jboss、tomcat、Weblogic
數(shù)據(jù)庫服務(wù):常見的數(shù)據(jù)庫服務(wù)mssql、mysql、oracle、redis、sybase、MongoDB、DB2
對于開源軟件的測試方法:
1 通過指紋識別軟件判斷開源軟件的版本信息,針對不同的版本信息去開放的漏洞數(shù)據(jù)庫查找相應(yīng)版本的漏洞進行測試
2 對于默認的后臺登錄頁、數(shù)據(jù)庫服務(wù)端口認證等入口可以進行簡單的暴力破解、默認口令嘗試等操作
3 使用開源的漏洞發(fā)現(xiàn)工具對其進行漏洞掃描,如:WPScan
關(guān)于自主開發(fā)的應(yīng)用
手動測試:這個階段,我們需要手工測試所有與用戶交互的功能,比如:留言板、登入口、下單、退出、退貨、付款等操作
軟件掃描:如:appscan、wvs、netsparker,burp,nessus等
可能存在的漏洞
Owasp關(guān)鍵點
SQL注入
XSS攻擊
代碼安全之上傳文件
代碼安全之文件包含
代碼安全之SSRF
邏輯漏洞之密碼重置
邏輯漏洞之支付漏洞
邏輯漏洞之越權(quán)訪問
平臺安全之中間件安全
2.3 漏洞利用:
針對不同的弱點有不同的漏洞利用方式,需要的知識點也比較多。一般這個階段包括兩種方式,一種是手工測試,一種是工具測試
手工測試:
手工測試是通過客戶端或服務(wù)器訪問目標服務(wù),手工向目標程序發(fā)送特殊的數(shù)據(jù),包括有效的和無效的輸入,觀察目標的狀態(tài)、對各種輸入的反應(yīng),根據(jù)結(jié)果來發(fā)現(xiàn)問題的漏洞檢測技術(shù)。手工測試不需要額外的輔助工具,可由測試者獨立完成,實現(xiàn)起來比較簡單。但這種方法高度依賴于測試者,需要測試者對目標比較了解。手工測試可用于Web應(yīng)用程序、瀏覽器及其他需要用戶交互的程序。
這種方式對于有特殊過濾等操作,或者網(wǎng)絡(luò)上沒有成型的利用工具的時候可以使用。
工具測試:
網(wǎng)絡(luò)上有很多好用的免費利用工具,比如針對sql注入的sqlmap、針對軟件漏洞的matesploit等
-
Web
+關(guān)注
關(guān)注
2文章
1255瀏覽量
69292 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
8958瀏覽量
85085 -
SQL
+關(guān)注
關(guān)注
1文章
753瀏覽量
44032
發(fā)布評論請先 登錄
相關(guān)推薦
評論