初識滲透測試(記錄篇)
前言
熟悉軍事的朋友都應該瞭解,各個國家的軍隊每年都會組織一些軍事演習來檢驗部隊的攻防戰術和作戰能力,在美國,一般會將美軍稱為藍軍,將假想敵稱為紅軍,這種軍事演戲的方式,也在上個世紀90年代引入美軍的網路安全和資訊基礎設施的實際攻防測試過程。由一群接受過職業培訓的安全專家作為紅方,對防禦方藍方進行安全攻擊,以實戰的方式來檢驗目標系統的防禦體系和應急響應計劃的有效性,這種通過實際的攻擊方式進行安全測試和評估的方法就是安全滲透測試。
在20世紀90年代後期,逐步開始從軍隊和情報部門拓展到安全界,一些對安全需求很高的企業開始採用這種方式來對他們的網路和系統進行測試。
一、滲透測試概述
所謂滲透測試是藉助各種漏洞掃描工具,通過模擬黑客的攻擊方法來對網路安全進行評估。
滲透測試型別
選擇的滲透測試型別取決於公司和組織的用途和範圍 - 他們是否想要模擬員工,網路管理員或外部來源的攻擊。通常,有三種不同型別的滲透測試:
黑盒測試:是指對基礎設施不知情的情況下進行測試。黑盒測試比較費時費力,同時要求滲透測試者具備較高的技術能力;
白盒測試:是指在完全瞭解結構的情況下進行的測試。白盒測試能比黑盒測試消除更多的目標的安全漏洞,給客戶帶來更大的價值。白盒測試最大的問題在於無法有效的測試客戶的應急響應程式,無法判斷客戶的安全防護計劃對檢測特定的統計的效率;
灰盒測試:就是以上兩種的組合。可以同時發揮兩種基本型別滲透測試方法各自的優勢。
二、滲透測試流程
滲透測試與入侵的最大區別:
滲透測試:出於保護系統的目的,更全面地找出伺服器的安全隱患。
入侵:不擇手段地(甚至是具有破壞性的)拿到系統許可權。
一般滲透測試流程如下:
2.1 明確目標
根據需求和自己技術能力來確定能不能做、能做多少。
- 確定範圍:測試目標的範圍,ip,域名,內外網。
- 確定規則:能滲透到什麼程度(發現漏洞為止or 繼續利用漏洞)、時間限制、能否修改上傳、能否提權等。
- 確定需求:web應用的漏洞(新上執行緒序)、業務邏輯漏洞(針對業務的)、人員許可權管理漏洞(針對人員、許可權)等等。
2.2 資訊收集
方式:主動掃描,開放搜尋等。
開放搜尋:利用搜索引擎獲得,後臺,未授權頁面,敏感url等。
- 基礎資訊:IP,網段,域名,埠。
- 系統資訊:作業系統版本。
- 應用資訊:各埠的應用,例如web應用,郵件應用等等。
- 版本資訊:所有探測到的版本。
- 服務資訊:伺服器型別、版本。
- 人員資訊:域名註冊人員資訊,web應用中網站發帖人的id,管理員姓名等。
- 防護資訊:試著看能否探測到防護裝置。
2.3 漏洞探索
利用上一步中列出的各種系統,應用等使用相應的漏洞。
方法:
- 漏掃,awvs,IBM appscan等。
- 結合漏洞去exploit-db等位置找利用。
- 在網上尋找驗證poc。
內容:
- 系統漏洞:系統沒有及
- 時打補丁。
- Websever漏洞:Websever配置問題。
- Web應用漏洞:Web應用開發問題。
- 其它埠服務漏洞:各種21/8080(st2)/7001/22/3389。
- 通訊安全:明文傳輸,token在cookie中傳送等。
2.4 漏洞驗證
將上一步發現的有可能可以成功利用的全部漏洞都驗證一遍。結合實際情況,搭建模擬環境進行試驗,成功後再應用於目標中。
- 自動化驗證:結合自動化掃描工具提供的結果。
- 手工驗證:根據公開資源進行驗證。
- 試驗驗證:自己搭建模擬環境進行驗證。
- 登陸猜解:有時可以嘗試猜解一下登陸口的賬號密碼等資訊。
- 業務漏洞驗證:如發現業務漏洞,要進行驗證。
- 公開資源的利用:
-exploit-db/wooyun/ -google hacking
-滲透程式碼網站 -通用、預設口令 -廠商的漏洞警告等
2.5 資訊分析
為下一步實施滲透做準備。
- 精準打擊:準備好上一步探測到的漏洞的exp,用來精準打擊。
- 繞過防禦機制:是否有防火牆等裝置,如何繞過。
- 定製攻擊路徑:最佳工具路徑,根據薄弱入口,高內網許可權位置,最終目標。
- 繞過檢測機制:是否有檢測機制,流量監控,防毒軟體,惡意程式碼檢測等(免殺)。
- 攻擊程式碼:經過試驗得來的程式碼,包括不限於xss程式碼,sql注入語句等。
2.6 獲取所需
- 實施攻擊:根據前幾步的結果,進行攻擊。
- 獲取內部資訊:基礎設施(網路連線,vpn,路由,拓撲等)。
- 進一步滲透:內網入侵,敏感目標。
- 持續性存在:一般我們對客戶做滲透不需要。rookit,後門,新增管理賬號,駐紮手法等。
- 清理痕跡:清理相關日誌(訪問,操作),上傳檔案等。
2.7 資訊整理
- 整理滲透工具:整理滲透過程中用到的程式碼,poc,exp等。
- 整理收集資訊:整理滲透過程中收集到的一切資訊。
- 整理漏洞資訊:整理滲透過程中遇到的各種漏洞,各種脆弱位置資訊。
目的:為了最後形成報告,形成測試結果使用。
2.8 形成報告
- 按需整理:按照之前第一步跟客戶確定好的範圍,需求來整理資料,並將資料形成報告。
- 補充介紹:要對漏洞成因,驗證過程和帶來危害進行分析。
- 修補建議:當然要對所有產生的問題提出合理高效安全的解決辦法。
2.9 流程總結
三、常用工具系統
下面簡單介紹兩種經典工具。
3.1 Kali linux
專門為滲透測試和安全審計提供的作業系統,整合很多的黑客工具。
- 由Back Track系統發展而來
- 基於Debian
- 開始滾動更新的模式
# kali支援線上更新 apt update apt dist-upgrade reboot #檢測版本 uname -a
3.2 Metasploit
- 由HD moore開發,開源。
- 2011年, v4.0版,717個滲透攻擊模組、226個攻擊載荷、361個輔助模組、68個後滲透攻擊模組。
- 方便升級。
- 框架:
模組:Metasploit框架對外提供的最核心的滲透功能實現代。
1、Aux輔助模組:主要完成資訊蒐集
2、Exploits模組:進行滲透攻擊
3、Post後滲透攻擊模仿:進行主機控制與拓展攻擊
外掛:用於整合外部的安全攻擊例如Nessus. OpenVAS. Nmap等。
- 安裝 支援Windows和Linux/unix。
總結
藉助滲透測試,可以先於黑客發現系統安全隱患,提前部署好安全防禦措施,保證系統的每個環節在未來都能經得起黑客挑戰,進一步鞏固客戶對企業及平臺的信賴。滲透測試並不是一個簡單的工作,它需要很廣闊的涉獵面和長期的經驗積累。
另外,歡迎加入軟體測試技術交流群 313782132 ~進群可領取免費軟體測試資料以及群內測試大牛解惑!
測試工程師職業發展路線圖
功能測試 — 介面測試 — 自動化測試 — 測試開發 — 測試架構師
加油吧,測試人!如果你需要提升規劃,那就行動吧,在路上總比在起點觀望的要好。事必有法,然後有成。
資源不錯就給個推薦吧~