滲透測試流程:
1.明確目標 2.分析風險,獲得授權 3.信息收集 4.漏洞探測(手動&自動) 5.漏洞驗證 6.信息分析 7.利用漏洞,獲取數據 8.信息整理 9.形成報告
對於web應用的滲透測試,大致可分為三個階段:信息收集、漏洞發現以及漏洞利用。在實踐過程中需要進一步明細測試的流程,以下通過9個階段來描述滲透測試的整個流程:
1.明確目標
1)確定范圍:測試的范圍,如:IP、域名、內外網、整站or部分模塊
2)確定規則:能滲透到什么程度(發現漏洞為止or繼續利用漏洞)、時間限制、能否修改上傳、能否提權...
- 目標系統介紹、重點保護對象及特性。
- 是否允許數據破壞?
- 是否允許阻斷業務正常運行?
- 測試之前是否應當知會相關部門接口人?
- 接入方式?外網和內網?
- 測試是發現問題就算成功,還是盡可能的發現多的問題?
- 滲透過程是否需要考慮社會工程?
3)確定需求:web應用的漏洞(新上線程序)?業務邏輯漏洞(針對業務的)?人員權限管理漏洞(針對人員、權限)?
根據需求和自己技術能力來確定能不能做、能做多少
2.分析風險,獲得授權
分析滲透測試過程中可能產生的風險,如大量測試數據的處理、影響正常業務開展、服務器發生異常的應急、數據備份和恢復、測試人力物力成本...
由測試方書寫實施方案初稿並提交給客戶(or本公司內部領導)進行審核。在審核完成后,從客戶(or本公司內部領導)獲取對測試方進行書面委托授權書,授權測試方進行滲透測試。
3.信息收集
在信息收集階段,我們需要盡量多的收集關於目標web應用的各種信息,比如:腳本語言的類型、服務器的類型、目錄的結構、使用的開源軟件、數據庫類型、所有鏈接頁面,用到的框架等。
方式:主動掃描;開放搜索
開放搜索:利用搜索引擎獲得后台、未授權頁面、敏感url
基礎信息:IP,網段,域名,端口 系統信息:操作系統版本 應用信息:各端口的應用,例如web應用,郵件應用等 版本信息:所有探測到的版本 服務信息:服務器類型、版本 人員信息:域名注冊人員信息,web應用中網站發帖人的id,管理員姓名等 防護信息:試着看能否探測到防護設備
4.漏洞探測(手動&自動)
利用上一步中列出的信息,使用相應的漏洞檢測
方法:
1)漏掃:AWVS、AppScan...
2)結合漏洞去exploit-db等位置找利用
3)在網上尋找驗證POC
內容:
系統漏洞:系統沒有及時打補丁
Websever漏洞:Websever配置問題
Web應用漏洞:Web應用開發問題
其它端口服務漏洞:各種21/8080(st2)/7001/22/3389
通信安全:明文傳輸,token在cookie中傳送等
5.漏洞驗證
將上一步中發現的有可能可以成功利用的全部漏洞都驗證一遍。結合實際情況,搭建模擬環境進行試驗,成功后再應用於目標中。
- 自動化驗證:結合自動化掃描工具提供的結果
- 手工驗證:根據公開資源進行驗證
- 試驗驗證:自己搭建模擬環境進行驗證
- 登錄猜解:有時可以嘗試猜解一下登陸口的賬號密碼等信息
- 業務漏洞驗證:如發現業務漏洞,要進行驗證
- 公開資源的利用
exploit-db/wooyun/
滲透代碼網站
通用、缺省口令
廠商的漏洞警告等
6.信息分析
為下一步實施滲透做准備
- 精准攻擊:准備好上一步探測到的漏洞exp(漏洞利用),用來精准攻擊
- 繞過防御機制:是否有防火牆等設備,如何繞過
- 定制攻擊路徑:最佳工具路徑,根據薄弱入口,高內網權限位置,最終目標
- 繞過檢測機制:是否有檢測機制,流量監控,殺毒軟件,惡意代碼檢測等(免殺)
- 攻擊代碼:經過試驗得來的代碼,包括不限於xss代碼,sql注入語句等
7.利用漏洞,獲取數據
- 實施攻擊:根據前幾步的結果,進行攻擊
- 獲取內部信息:基礎設施(網絡連接,vpn,路由,拓撲等)
- 進一步滲透:內網入侵,敏感目標
- 持續性存在:一般對客戶做滲透不需要。rookit,后門,添加管理賬號,駐扎手法等
- 清理痕跡:清理相關日志(訪問,操作),上傳文件等
8.信息整理
- 整理滲透工具:整理滲透過程中用到的代碼,poc,exp等
- 整理收集信息:整理滲透過程中收集到的一切信息
- 整理漏洞信息:整理滲透過程中遇到的各種漏洞,各種脆弱位置信息
目的:為了最后形成報告,形成測試結果使用。
9.形成報告
- 按需整理:按照之前第一步跟客戶確定好的范圍,需求來整理資料,並將資料形成報告
- 補充介紹:要對漏洞成因,驗證過程和帶來危害進行分析
- 修補建議:當然要對所有產生的問題提出合理高效安全的解決辦法
文章來源:https://www.cnblogs.com/w1023913214/p/11192620.html