【CyberSecurityLearning 51】渗透测试方法论+渗透测试流程
目錄
滲透測試方法論
滲透測試(penetration testing,pentest)
滲透測試種類
* 黑盒測試
* 白盒測試
* 脆弱性評估與滲透測試
安全測試方法論
? * 開放式web 應用程序安全項目(Open Web Aplication Security Project ,OWASP)
OWASP top 10
*通用缺陷列表(CWE)
*通用漏洞與披露(CVE)
*其他方法論
滲透測試流程
*滲透測試執行標準
*通用滲透測試框架(√)
范圍界定
信息搜集
目標識別
服務枚舉(就是端口掃描)
漏洞映射(就是漏洞掃描)
社會工程學
漏洞利用
權限提升
訪問維護(就是埋藏后門)
文檔報告
*簡化的滲透測試流程
*黑客攻擊的一般過程
?
?
滲透測試方法論
滲透測試(penetration testing,pentest)
是實施安全評估(即審計)的具體手段。
方法論是在制定、實施信息安全審計方案時,需要遵循的規則、慣例和過程。
人們在評估網絡、應用、系統或者三者組合的安全狀況時,不斷摸索各種務實的理念和成熟的做法,并總結了一套理論——滲透測試方法論。
滲透測試種類
* 黑盒測試
在進行黑盒測試時,安全審計員在不清楚被測單位的內部技術構造的情況下,從外部評估網絡基礎設施的安全性。
在滲透測試的各個階段,黑盒測試借助真實世界的黑客技術,暴露出目標的安全問題,甚至可以揭露尚未被他人利用的安全弱點。
滲透測試人員應能理解安全弱點,將之分類并按照風險等級(高危、中危、低危、信息泄露)對其排序。通常來說,風險級別取決于相關弱點可能形成危害的大小。老練的滲透測試專家應能夠確定可引發安全事故的所有攻擊模式。
當測試人員完成黑盒測試的所有測試工作之后,他們會把與測試對象安全狀況有關的必要信息進行整理,并使用業務的語言描述這些被識別出來的風險,繼而將之匯總為書面報告。黑盒測試的市場報價通常高于白盒測試。
* 白盒測試
白盒測試的審計員可以獲取被測單位的各種內部資料甚至不公開的資料,所以滲透測試人員的視野更為開闊。
若以白盒測試的方法評估安全漏洞,測試人員可以以自小的工作量達到最高的評估精確度。
白盒測試從被測系統環境自身出發,全面消除內部安全問題。從而增加了從單位外部滲透系統的難度。黑盒測試起不到這樣的作用。白盒測試所需要的步驟數目與黑盒測試不相上下。
另外,若能夠將白盒測試與常規的研發生命周期相結合,就可以在入侵者發現甚至利用安全弱點之前,盡可能最早地消除全部安全隱患,這使得白盒測試的事件、成本,以及發現、解決安全弱點的技術門檻都全面低于黑盒測試。
* 脆弱性評估與滲透測試
通俗說,脆弱性評估就是漏洞掃描、漏洞發現、要工具。
脆弱性評估通過分析企業資產面臨安全威脅的情況和程度,評估內部和外部的安全控制的安全性。
這種技術上的信息系統評估,不僅揭露現有防范措施里存在的風險,而且要提出多重備選的補救策略,并將這些策略進行比較。
內部脆弱性評估可保證內部系統的安全性,而外部的脆弱性評估則是驗證邊界防護(perimeter defenses)的有效性。
無論內部脆弱性評估還是進行外部脆弱性評估,評估人員都會采用各種攻擊模式來嚴格測試網絡資產的安全性,從而驗證信息系統處理安全威脅的能力,進而確定應對措施的有效性。
不同類別的脆弱性評估需要的測試流程、測試工具和自動化測試技術也不相同。這可通過一體化的安全弱點管控(vulnerability management)平臺來實現。
現在的安全弱點管理平臺帶有可自動更新的漏洞數據庫,能夠測試不同類型的網絡設備,而且不會影響配置管理和變更管理的完整性。
脆弱性評估和滲透測試兩者最大的區別就是:滲透測試不僅要識別目標的弱點,它還設計在目標系統上進行漏洞利用、權限提升和訪問維護。
換句話說,脆弱性評估雖然可以充分發現系統里的缺陷,但不會考慮去衡量這些缺陷對系統造成的危害。
另外,相比脆弱性評估,滲透測試更傾向于入侵,會刻意使用各種技術手段利用安全漏洞;所以滲透測試可能對生產環境帶來實際的破壞性影響。而脆弱性評估以非入侵的方式,定性、定量得識別已知安全弱點。
?
安全測試方法論
? * 開放式web 應用程序安全項目(Open Web Aplication Security Project ,OWASP)
[https://www.owasp.org.cn/]
測試指南
[https://www.owasp.org/index.php/OWASP_Testing_Project]
開發人員指南
[https://www.owasp.org/index.php/Gategory:OWASP_Top_Ten_Project]
代碼審查
OWASP top 10
Web十大安全漏洞
十大Web應用程序安全風險
1、注入。當將不受信任的數據作為命令或查詢的一部分發送到解釋器時,會出現諸如SQL,NoSQL,OS和LDAP注入之類的注入漏洞。攻擊者的敵對數據可能會誘使解釋器執行未經預期的命令或未經適當授權而訪問數據。
2、身份驗證失敗。與身份驗證和會話管理相關的應用程序功能通常會錯誤地實現,從而使攻擊者可以破壞密碼,密鑰或會話令牌,或者利用其他實現缺陷來臨時或永久地假定其他用戶的身份。
3、敏感數據暴露。許多Web應用程序和API無法正確保護敏感數據,例如金融,醫療保健和PII。攻擊者可能會竊取或修改這些受保護程度不高的數據,以進行信用卡欺詐,身份盜用或其他犯罪。敏感數據可能會在沒有額外保護的情況下受到損害,例如靜態加密或傳輸中加密,并且與瀏覽器進行交換時需要采取特殊的預防措施。
4、XML外部實體(XXE)。許多較舊的或配置不當的XML處理器都會評估XML文檔中的外部實體引用。外部實體可以使用文件URI處理程序,內部文件共享,內部端口掃描,遠程代碼執行和拒絕服務攻擊來公開內部文件。
5、訪問控制損壞。通常,對身份驗證用戶允許執行的操作的限制通常未得到正確執行。攻擊者可以利用這些缺陷來訪問未經授權的功能和/或數據,例如訪問其他用戶的帳戶,查看敏感文件,修改其他用戶的數據,更改訪問權限等。
6、安全配置錯誤。安全配置錯誤是最常見的問題。這通常是由于不安全的默認配置,不完整或臨時的配置,開放的云存儲,錯誤配置的HTTP標頭以及包含敏感信息的詳細錯誤消息所導致的。不僅必須安全地配置所有操作系統,框架,庫和應用程序,而且還必須及時對其進行修補/升級。
7、跨站點腳本XSS。每當應用程序在未經適當驗證或轉義的情況下在新網頁中包含不受信任的數據,或者使用可以創建HTML或JavaScript的瀏覽器API用用戶提供的數據更新現有網頁時,都會發生XSS漏洞。XSS允許攻擊者在受害者的瀏覽器中執行腳本,這些腳本可以劫持用戶會話,破壞網站或將用戶重定向到惡意網站。
8、不安全的反序列化。不安全的反序列化通常會導致遠程執行代碼。即使反序列化缺陷不會導致遠程執行代碼,也可以將它們用于執行攻擊,包括重播攻擊,注入攻擊和特權升級攻擊。
9、使用已知漏洞的組件。諸如庫,框架和其他軟件模塊之類的組件以與應用程序相同的特權運行。如果利用了易受攻擊的組件,則此類攻擊可能會導致嚴重的數據丟失或服務器接管。使用具有已知漏洞的組件的應用程序和API可能破壞應用程序防御,并造成各種攻擊和影響。
10、日志和監控不足。日志和監視的不足,再加上事件響應的缺失或無效集成,使攻擊者可以進一步攻擊系統,保持持久性,轉向更多系統以及篡改,提取或破壞數據。大多數違規研究表明,檢測到違規的時間超過200天,通常由外部各方而不是內部流程或監視來檢測。
*通用缺陷列表(CWE)
通俗講就是:漏洞類別的編號
CWE-79:XSS漏洞
[http://cwe.mitre.org/data/definitions/79.html]
CWE-89:SQLi
[http://cwe.mitre.org/data/definitions/89.html]
*通用漏洞與披露(CVE)
通俗講就是:具體某一個漏洞的編號
[http://cve.scap.org.cn/]
具體的某一個漏洞
[http://cve.mitre.org/]
MS17-010(微軟安全公告)【微軟17年發布的第10個安全公告】
一個公告對應一個漏洞
KB 開頭
S2-053(S2就是strtus2,是APACHE 開源開發java的框架)
【strtus2第53個安全公告】
一個安全公告就是一個漏洞
*其他方法論
開源安全測試方法論(OSSTMM)
http://www.isecom.org/research/osstmm.html
信息系統安全評估框架 (ISSAF)
http://www.oissg.org/issaf
Web 應用安全聯合威脅分類(WASC-TC)
http://projects.webappsec.org
?
滲透測試流程
*滲透測試執行標準
滲透測試執行標準(PTES)的先驅都是滲透測試行業的精英,有七個階段組成,
可以在任意環境中進行富有成功的滲透測試。
[http://www.pentest-standard.org/index.php/Main_Page]
?
@7個階段
?主要特點優勢
PTES的主要特性和優勢如下
1、他是非常全面的滲透測試框架涵蓋了繩滲透測試的技術方面和其他重要方面,如范圍蔓延、報告、以及滲透人員保護自身的方法
2、他介紹了多數測試任務的具體方法,可指導你準確測試目標系統的安全狀態
3、他匯聚了多名日行一”滲“的滲透測試專家的豐富經驗
4、它包含最常用的以及很罕見的相關技術
5、他淺顯易懂,你可根據測試工作的需要對相應的測試步驟進行調整
?
*通用滲透測試框架(√)
從技術管理的角度,遵循正規的測試框架對安全測試極為重要,通用滲透測試框架涵蓋了典型的審計測試工作和滲透測試工作會涉及到的各個階段。
相關階段:
無論是進行白盒測試還是黑盒測試,選擇和使用測試步驟都是一個滲透測試人員的責任。
在測試開始前,測試人員需要根據目標系統的實際環境和已掌握的相關目標系統的情況,指定最佳的測試策略。
?
范圍界定
1、測試對象是什么?
2、應當采用何種測試方法?黑盒/白盒
3、有哪些在滲透測試中需要滿足的條件?
4、哪些因素可能會限制測試執行的過程?
5、需要多久才能完成測試?
6、此次測試應該達到什么樣的任務目標?
信息搜集
滲透測試人員需要使用各種公開的資源盡可能的獲取測試目標的相關消信息。
從互聯網上搜集信息的主要渠道有:
論壇|公告板|新聞組|媒體文件|博客|社交網絡|其他商業或非商業的網站
此外還可以通過各種搜索引擎獲取相關數據。
如谷歌、雅虎、MSN必應、百度等
收集信息主要包括DNS、服務器、路由關系、whois、數據庫、電子郵件地址、電話號碼、個人信息以及用戶賬戶。
收集的信息越多,滲透測試成功的概率越高。
目標識別
識別目標網絡的狀態,操作系統和網絡架構。
就是你要知道你被測單位有哪些聯網設備,并且這些聯網設備如何進行通信
目前的設備主要使用的就是tcp/ip協議
你要知道我們目標里面有多少主機在線,并且這些主機的IP地址是多少,網絡架構是什么樣?網絡拓撲?
服務枚舉(就是端口掃描)
這一階段根據前面各個階段的成果,進一步找出目標系統所有開放的端口。
一旦找到了所有開放端口,就可以通過這些端口列出目標系統上運行的服務。
主機上開放的端口都有相應的服務程序,對這些信息進行深度分析之后,可進一步發掘目標網絡基礎設施中可能存在的漏洞。
漏洞映射(就是漏洞掃描)
根據已發現的的開放端口和服務程序,查找已知和未知的漏洞
社會工程學
如果目標網絡沒有直接的入口,欺騙藝術將起到拋磚引玉的重要作用。
對目標組織的人員進行定向攻擊,很可能幫助我們找到滲透目標系統的入口。
例如,誘使用戶安裝后門的惡意程序,就可能對審計人員的的滲透工作形成突破。
社會工程學滲透分為多種不同的實現形式。
偽裝成網絡管理員,通過電話要求用戶提高自己的賬戶信息;發送釣魚郵件來劫持用戶的銀行賬戶;甚至誘使某人出現在某地,這些都是社會工程學攻擊
需要注意的是在對目標進行欺騙以達到滲透目標之前,多數情況下需要長時間研究目標人員的心理
另外,需要研究當地的法律是否允許
漏洞利用
發現漏洞之后,就可以使用已有漏洞利用程序對目標系統進行滲透
這個階段的主要任務就是控制目標系統
這個流程可分為三步,涉及攻擊前、攻擊、攻擊后的相關行動
權限提升
滲透測試人員根據其擁有的訪問權限,在目標系統任意發揮,
提權,就是將普通用戶權限提升至管理員權限
訪問維護(就是埋藏后門)
多數情況下,審計人員需要一段時間內維護他們對目標系統的訪問權限。
也就是埋藏后門(離開時清除后門)
文檔報告
審計人員要記錄、報告并現場演示那些已經識別、驗證和利用了的安全漏洞。
并根據這些文檔修補所有存在的安全漏洞
*簡化的滲透測試流程
明確目標
確定范圍 | 確定規則 | 確定需求
信息收集
基礎信息 | 系統信息 | 應用信息 | 人員信息 | 防護信息
漏洞探測
系統漏洞 | Web服務漏洞 | Web應用漏洞 | 其他端口 | 通信安全
漏洞驗證
手工驗證 | 工具驗證 | 實驗驗證
漏洞利用
定制EXP | 防御繞過 | 進一步滲透 | 清理痕跡
完整的漏洞利用程序叫EXP
形成報告
整理結果 | 補充介紹 | 修復建議
*黑客攻擊的一般過程
總結
以上是生活随笔為你收集整理的【CyberSecurityLearning 51】渗透测试方法论+渗透测试流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【CyberSecurityLearni
- 下一篇: 【2016年第6期】专题:科学数据与创新