滲透測試操作手冊
滲透測試是測試人員結合各種安全測試技術,模擬真實的黑客,對評測目標進行入侵攻擊,最大程度的挖掘業務系統潛在的安全威脅(包括系統存在的漏洞、脆弱點、網站的不安全因素等)。滲透測試可用用了評估評測目標是否存在可以被黑客利用的漏洞,以及該漏洞引起的風險大小,讓企業先於攻擊者發現存在的問題,為使用者制定完善的安全措施與應對方案提供科學有效的依據。
完整的滲透測試包含以下幾個過程:
1. 確定目標
2. 資訊收集
3. 主機測試
4. Web測試
5. 資料庫測試
6. 業務安全測試
7. 資訊收集整理
8. 形成報告
1. 確定目標
第一、確定測試目標的範圍,ip,域名,內外網。
第二、確定能滲透到什麼程度、什麼時間測試、能否進行修改上傳操作、能否進行許可權提升操作等。
第三、明確滲透需求,是針對web應用的漏洞(新上執行緒序)?還是針對業務邏輯漏洞(針對業務的)?還是針對人員許可權管理漏洞(針對人員、許可權)等等。
2.資訊收集
資訊收集是安全測試工作的基礎,資訊收集是否完善、準確,直接影響到測試效率及測試結果準確性。
資訊收集包括客戶提供的基礎資訊、主動資訊收集和被動資訊收集。
2.1客戶提供資訊
安全測試工作開展前,需要客戶提供基礎的測試資訊,包括以下內容:
1.內外網IP
2.內外網URL
3.測試賬號(高低權)
4....
2.2被動資訊收集
被動資訊蒐集,指通過客戶提供的基礎資訊,如域名、IP等,通過各種渠道獲取開源情報(OSINT)。
常用的開源情報獲取工具有Recon-NG、Discover、SpiderFoot等。
2.3主動資訊收集
主動資訊收集主要是通過掃描確認目標安裝的作業系統、網路服務、軟體版本等,並發現潛在的漏洞。安全測試過程中,需要選擇正確的掃描工具,從內部及外部網路對指定的網路進行掃描。
2.4被動資訊蒐集工具
•DataSploit
•Recon-NG
•Discover
•SpiderFoot
•003Recon
2.5主動資訊蒐集工具
2.5.1埠掃描
•Nmap(Nmap掃描結果可以輸出XML檔案,使用Python指令碼提取需要的資訊生成Excel檔案,便於檢視)
•Masscan
•Sparta
2.5.2HTTP截圖
•EyeWitness
3. 主機測試
3.1主機漏洞掃描:
主要是進行主機漏洞掃描,伺服器漏洞掃描;主要使用綠盟極光漏掃,可使用Nessus、Openvas等輔助檢查。漏掃掃描時掃描埠設定為0-65535,快速全面的發現各類主機服務問題。
工具:綠盟極光漏掃、Nessus等。
3.2系統服務攻擊測試:
主要測試為SSH、SMB、RDP、SNMP、FTP。下面將對其分別進行介紹:
3.2.1 SSH主要測試:
弱口令暴力破解:檢查是否存在易破解的弱賬號弱密碼。工具:nmap、hydra、medusa等
使用弱加密演算法:較低版本的SSH,可能存在使用弱加密演算法的問題。工具:nmap --script ssh2-enum-algos、nmap --script ssh-auth-methods
3.2.2 SMB主要測試:
弱口令暴力破解:檢查是否存在易破解的弱賬號弱密碼。工具:nmap、hydra等例:nmap -p 445 --script smb-brute
SMB漏洞利用:其分析要點是驗證是否存在smb漏洞,如ms08-067、ms17-010可直接獲取Windows shell。工具:msf、nmap script 例:nmap --script smb-vuln-ms17-010 -p 445
3.2.3 RDP主要測試:
弱口令暴力破解:檢查是否存在易破解的弱賬號弱密碼。工具:hydra、medusa
RDP漏洞:MS12-020漏洞利用成功後會導致伺服器藍屏,生產環境嚴禁利用該漏洞。所用工具:msf、nmap script
3.2.4 SNMP主要測試:
預設字串掃描。工具:hydra、nmap script
3.2.5 FTP主要測試:
弱口令暴力破解:檢查是否存在易破解的弱賬號弱密碼。工具:hydra、nmap script
匿名訪問:所使用工具為hydra、nmap script
FTP跨目錄訪問:服務端配置不當,可能導致FTP訪問系統所有檔案
4. Web測試
4.1 Web漏洞掃描:
使用Web掃描工具對Web站點進行掃描,用於快速發現站點已知漏洞,獲取基礎資訊用於人工滲透測試。工具:Awvs、Sparker、Appscan等
4.2 Web平臺攻擊測試:
主要測試HTTP方法、版本資訊洩露、框架漏洞、反序列化、DOS攻擊、管理後臺弱口令。下面將對其分別介紹:
HTTP方法:測試是否使用不安全的HTTP方法。一般情況下,只允許開發GET/POST/HEAD三類基本方法。工具:Burpsuite/ZAP
版本資訊洩露:測試HTTP返回資料或報錯資訊是否洩露Web服務軟體版本資訊。工具:Burpsuite/ZAP
框架漏洞:測試Web框架存在的漏洞,如Struts2框架存在大量遠端命令執行漏洞。工具:K8shack2等Struts 2利用工具、Struts 2批量檢測指令碼
反序列化:Weblogic、Jboss、Websphere等使用Java技術的Web容器,低版本中存在反序列化漏洞。工具:Weblogic反序列化、Jboss反序列測試工具等、Burpsuite外掛
DOS攻擊:測試服務端是否存在DOS攻擊風險。Apache httpd預設配置是否存在slowhttpdos攻擊漏洞。工具:slowhttpdos
管理後臺弱口令:測試Web管理後臺是否存在弱口令或預設口令。管理後臺弱口令,可導致攻擊者直接上傳webshell,獲取伺服器控制權限。工具:Burpsuite/ZAP、Weblogic管理密碼破解指令碼等。
4.3 Web認證測試:
主要測試賬號及口令猜解、資料提交方式、認證繞過、令牌重放、驗證碼安全、Cookie安全。下面將對其詳細介紹:
賬號及口令猜解:測試是否對設定登陸錯誤次數閾值。工具:Burpsuite/ZAP
資料提交方式:測試資料提交方法及內容是否安全。登陸資訊應加密提交;重要資訊使用POST方法提交。工具:Burpsuite/ZAP
認證繞過:測試是否可以不需要密碼登陸系統。在登入表單中輸入'or'='or'等語句實現SQL注入,包括:
a' or 'a' = 'a
1 or 2=2
……
關鍵是構造的字串能否被直接帶入查詢語句。工具:Burpsuite/Firefox + Hackbar
令牌重放:測試令牌是否可重複使用。
1.通過瀏覽器訪問目標網站;
2.通過Firebug檢視HTTP的POST和GET資料包,檢查有無Cookie和Session等資訊;
3.使用Hackbar外掛複製或修改Cookie、Session等字串重新訪問授權頁面;
工具:Burpsuite/Firefox + Hackbar
驗證碼安全:包括測試簡訊驗證碼過期時間以及是否可列舉(簡訊驗證碼位數短及有效期過長,存在暴力破解驗證碼的風險)、驗證碼重複使用、驗證碼客戶端回顯、驗證碼繞過(驗證碼未在伺服器做校驗)、測試圖形驗證碼是否可識別(驗證碼過於簡單,可能被機器自動識別)。使用工具:Burpsuite/ZAP、PKAV Fuzzing(測試圖形驗證碼是否可識別所用工具)
Cookie安全:測試cookie是否測試httponly。新增httponly屬性,可防止cookie被Javascript讀取。工具;瀏覽器
4.4 Session安全:
主要測試連線超時限制和httponly。下面將對其進行詳細介紹:
連線超時限制:檢查是否設定連線超時。一般設定最大時長為5分鐘。
Httponly:Cookie是否設定httponly。阻止JS操作Cookie,以防止XSS獲取cookie資訊。工具:Burpsuite/ZAP
4.5 Web授權測試:
主要測試未授權訪問、水平越權和垂直越權。下面將對其進行詳細介紹:
未授權訪問:測試Web目錄是否可以未授權訪問。工具:Burpsuite/ZAP
水平越權:測試賬號是否可獲取同級別其它賬號功能許可權。工具:Burpsuite/ZAP
垂直越權:測試是否存在低權賬號可使用高權賬號功能。工具:Burpsuite/ZAP
4.6 輸入輸出:
主要測試XSS、命令執行和SQLi。下面將對其進行詳細介紹:
XSS:測試是否存在XSS漏洞。工具:Burpsuite + 外掛
命令執行:測試是否可執行系統命令。工具:Burpsuite/ZAP
SQLi:測試是否存在SQLi漏洞。工具:SQLmap、Burpsuite
4.7 檔案上傳下載:
主要測試任意檔案上傳和任意檔案下載。下面將對其進行詳細介紹:
任意檔案上傳:測試是否可以上傳Webshell指令碼檔案。檔案上傳校驗不嚴格,可導致攻擊者上傳Webshell,獲取伺服器許可權。工具:Burpsuite/ZAP
任意檔案下載:測試是否可下載系統檔案。Web伺服器配置不當,可能導致攻擊者下載任意系統檔案。工具:Burpsuite/ZAP
4.8 目錄遍歷:
4.9 敏感資料洩露:
主要測試個人隱私資訊洩露、伺服器資訊洩露、憑證洩露和備份檔案洩露。下面將對其進行詳細介紹:
個人隱私資訊洩露:測試HTTP返回頁面原始碼是否洩露個人隱私資訊。工具:Burpsuite/ZAP
伺服器資訊洩露:測試HTTP返回頁面原始碼中是否洩露內網伺服器資訊。工具:Burpsuite、瀏覽器
憑證洩露:測試是否存在簡訊驗證碼、Token等洩露。如密碼找回的Token、驗證碼等資訊返回的客戶端,可導致任意賬號密碼重置。工具:Burpsuite/ZAP
備份檔案洩露:測試伺服器是否洩露原始碼備份文件等敏感資訊。通過備份檔案可能洩露原始碼、程式碼中儲存的IP/賬號等。工具:Brupsuite、敏感檔案測試指令碼。
5. 資料庫測試
5.1 Oracle:
主要測試口令破解、Oracle預設口令猜解、OracleSid破解和Oracle TNS安全檢查。下面將對其進行詳細介紹:
口令破解:檢測是否使用弱口令。需知道SID後破解使用者密碼。工具:Oracle Password Auditor
Oracle預設口令猜解:測試是否存在預設使用者名稱scott 預設密碼tiger。
OracleSid破解:使用工具猜解存在的SID。在Oracle中,SID是System IDentifier的縮寫。SID是一個數據庫的唯一識別符號。當用戶希望遠端連線Oracle資料庫時,則需要知道SID、使用者名稱、密碼及伺服器的IP地址。工具:SidGuess
Oracle TNS安全檢查:測試TNS安全、是否洩露資料庫版本等。根據版本的不同,TNS listener可能較易受到多種型別的緩衝區溢位攻擊,這些攻擊可以在不提供使用者ID和口令的情況下被利用。例如:在oracle 9i中,當客戶機請求某個過長的service_name時,很容易受到溢位攻擊。當listener為日誌構建錯誤訊息之後,service_name的值會被複制到某於棧結構的緩衝區內,從而引起溢位—覆蓋儲存值將返回棧中的地址。這種做法可以使攻擊者獲得控制權。工具:tnscmd。
5.2 MySQL
主要測試為密碼破解,檢測是否使用弱口令。工具:msf、nmap script
5.3 SQL Server
主要測試密碼破解和空口令使用者檢查。下面將對其進行詳細介紹:
密碼破解:檢測是否使用弱口令。工具:hydra
空口令使用者檢查:檢查使用使用空口令。工具:hydra
5.4 弱口令
主要測試弱口令檢測:檢測MySQL、MSSql、Postgresql、Oracle是否存在弱口令。指令碼地址:。工具:DBScanner(Python指令碼)
5.5 未授權訪問
主要測試未授權訪問,檢測Redis、Mongodb、Memcached是否存在未授權訪問。指令碼地址:。工具:DBScanner(Python指令碼)
6. 業務安全
6.1業務授權訪問模組:
主要測試非授權訪問和越權訪問。下面將對其進行詳細介紹:
非授權訪問:測試是否可在未通過認證授權的情況下直接訪問需要認證訪問的頁面。工具:Burpsuite/ZAP
越權訪問:測試是否存在水平越權或垂直越權。工具:Burpsuite/ZAP
6.2 業務辦理安全:
主要測試訂單IP篡改測試、手機號碼篡改測試、使用者ID篡改測試、郵箱和使用者篡改測試、商品篡改測試、競爭條件測試、商品支付金額和商品訂購數量篡改測試。業務辦理安全問題將可能造成0元購物、使用他人賬號購物等各種問題。工具:Burpsuite/ZAP
6.3 密碼找回模組測試:
主要測試驗證碼客戶端回顯、驗證碼暴力破解、介面引數賬號修改、Response狀態值修改、Session覆蓋測試、密碼找回流程繞過測試和弱Token設計缺陷測試。密碼找回模組安全問題可造成重置任意使用者密碼。工具:Burpsuite/ZAP
6.4 業務介面呼叫測試:
主要測試介面呼叫重放測試、介面呼叫遍歷測試、介面呼叫引數篡改測試、介面未授權訪問、Callback自定義測試和WebService測試。工具:Burpsuite/ZAP。
7. 資訊收集整理
整理滲透工具:整理滲透過程中用到的程式碼,poc,exp等
整理收集資訊:整理滲透過程中收集到的一切資訊
整理漏洞資訊:整理滲透過程中遇到的各種漏洞,各種脆弱位置資訊
目的:為了最後形成報告,形成測試結果使用
8. 形成報告
按需整理:按照之前第一步跟客戶確定好的範圍,需求來整理資料,並將資料形成報告
補充介紹:要對漏洞成因,驗證過程和帶來危害進行分析
修補建議:當然要對所有產生的問題提出合理高效安全的解決辦法