什麼是暴力破解?

「網絡安全」常見攻擊篇(1)——暴力破解

暴力破解是一種針對於密碼或身份認證的破譯方法,即窮舉嘗試各種可能,找到突破身份認證的一種攻擊方法。

暴力破解是一把雙刃劍,一方面能夠被惡意者使用,另一方面在計算機安全性方面卻非常重要,它用於檢查系統、網絡或應用程序中使用的弱密碼。

暴力破解原理

「網絡安全」常見攻擊篇(1)——暴力破解

暴力破解的原理就是使用攻擊者自己的用戶名和密碼字典,一個一個去枚舉,嘗試是否能夠登錄。因為理論上來說,只要字典足夠龐大,枚舉總是能夠成功的!

但實際發送的數據並不像想象中的那樣簡單——“ 每次只向服務器發送用戶名和密碼字段即可!”,實際情況是每次發送的數據都必須要封裝成完整的 HTTP 數據包才能被服務器接收。但是你不可能一個一個去手動構造數據包,所以在實施暴力破解之前,我們只需要先去獲取構造HTTP包所需要的參數,然後扔給暴力破解軟件構造工具數據包,然後實施攻擊就可以了。

Web暴力破解通常用在已知部分信息,嘗試爆破網站後臺,為下一步的滲透測試做準備。

Http 中的 response 和 request 是相對瀏覽器來說的。瀏覽器發送request,服務器返回response。

Get和Post:get放在url中,而post放在http的body中。

http_referer:是http中header的一部分,向瀏覽器發送請求時,一般會帶上referer,告訴服務器我是從哪個頁面鏈接而來,為服務器處理提供一些信息。

暴力破解分類

「網絡安全」常見攻擊篇(1)——暴力破解

暴力破解可分為兩種,一種是針對性的密碼爆破,另外一種是擴展性的密碼噴灑。

  • 密碼爆破

密碼爆破一般很熟悉,即針對單個賬號或用戶,用密碼字典來不斷的嘗試,直到試出正確的密碼,破解出來的時間和密碼的複雜度及長度及破解設備有一定的關係。

  • 密碼噴灑

密碼噴灑和密碼爆破相反,也可以叫反向密碼爆破,即用指定的一個密碼來批量的試取用戶,在信息蒐集階段獲取了大量的賬號信息或者系統的用戶,然後以固定的一個密碼去不斷的嘗試這些用戶。

暴力破解常用工具

「網絡安全」常見攻擊篇(1)——暴力破解

  • Hydra

Hydra工具是著名黑客組織Thc的一款開源的暴力破解工具。可以 破解多種密碼。主要支持:Telnet、Ftp、Http、Https、Http-proxy、 Mssql、Mysql等。唯一不方便的就是破解時須要的字典須我們自己製作。

Hydra,這款工具可以應用在Windows環境和Linux環境下,Windows 環境下是沒有圖形界面的,在Linux環境下是有圖形界面的。

  • Burp Suite

Burp Suite是用於攻擊web應用程序的集成平臺。它包含了許多工 具,併為這些工具設計了接口。主要可以應用Burp Suite來進行抓 包、改包、截斷上傳、掃描、爆破等功能。

  • DUBrute

DUBrute工具主要是一款用於批量暴破3389密碼的工具,也可以進 行指定目標的暴破。

  • Oraburte

Oraburte 是一款專門針對於Oracle數據庫用戶名密碼登錄暴破的工 具,此工具使用簡單,但暴破速度較慢。

  • X-Scan掃描器

X-Scan掃描器是國內的一款綜合性漏洞掃描和口令掃描工具。可以 針對大量的服務進行認證,如:Ftp、Ssh、Telnet、Sql-Server等。

  • Apache Tomcat弱口令掃描器

ApacheTomcat弱口令掃描器,是一款專門針對Tomcat後臺登錄猜 解的工具。

暴力破解防禦

「網絡安全」常見攻擊篇(1)——暴力破解

針對暴力破解攻擊,應用的安全設計要多方考量,從每一個可能的受攻擊面出發,結合逆向的邏輯思路,建立合理的防禦機制。常見的防禦措施如下:

  • 用戶名或密碼輸入錯誤時統一返回“登錄錯誤,請重試”提示信息
  • 在用戶登錄時增加驗證碼,防止通過程序自動枚舉賬戶
  • 驗證碼應具有足夠的隨機性和干擾性,考慮邏輯和交互式驗證碼
  • 確保所有類型的驗證碼能夠用後即失效,防範可被重用
  • 在用戶登錄中增加對同一IP地址嘗試次數的限制

防止暴力破解的最佳方法是限制無效登錄,通過這種方式,攻擊只能在有限的時間點擊並嘗試密碼。這就是為什麼基於網絡的服務開始使用驗證碼,如果您三次輸入錯誤的密碼他們會對您的IP地址進行屏蔽。

  • 系統自身安全性增強:強制要求用戶註冊時滿足口令複雜度要求,即強密碼,建議用戶使用小寫字母、大寫字母、數字和特殊字符組合的長密碼。

暴力破解是破解密碼最常用的方法,攻擊的成功取決於各種因素。影響最多的因素是密碼的長度以及數字、字母和特殊字符的組合。它不會使得暴力破解不可能,但會讓其變得十分困難。這樣,暴力破解會需要更長的時間來破解密碼。

幾乎所有的散列破解算法都使用暴力破解來嘗試,當您對數據進行脫機訪問時,此攻擊最佳。在這種情況下,它易於破解,而且會花費更少的時間。

  • 定期對比數據庫存儲的密碼密文值與top500弱密碼的密文值