36

技术分享 | 多种测试HTTP身份验证的方法

 5 years ago
source link: https://www.freebuf.com/news/193649.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在这篇文章中,我们会告诉大家如何保护Apache Web服务器免受未经身份验证的用户非法访问,以及如何隐藏关键核心信息不被非法用户查看到。当然了,我们还会介绍如何利用这些安全缺陷来渗透目标服务器,相信这也是大家非常感兴趣的东西。

EZZBZjV.jpg!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

vUV3Ybu.jpg!web

创建密码文件

使用htpasswd命令创建密码文件,Apache将会用它来验证用户身份:

sudo htpasswd -c /etc/apache2/.htpasswd raj
cat /etc/apache2/.htpasswd
gedit etc/apache2/sites-enabled/000-default.conf

zuUNJjA.jpg!web

在虚拟主机设置中配置访问控制

将下列配置内容保存到000-default.conf文件中:

<Directory "/var/www/html">
       AuthType Basic
       AuthName "Restricted Content"
       AuthUserFile /etc/apache2/.htpasswd
       Require valid-user
</Directory>

B77ryuv.jpg!web

利用.htaccess文件配置访问控制

打开Apache配置文件,修改.htaccess文件来启用密码保护,添加下列代码:

sudo gedit /etc/apache2/apache2.conf
ServerName localhost

FbI3qyv.jpg!web

将AllowOverride参数修改为“All”,保存并重启Apache服务:

<Directory /var/www/>
   Options Indexes FollowSymLinks
   AllowOverride All
   Require all granted
</Directory>

mQny6rV.jpg!web

现在,我们需要往受限目录中添加一个.htaccess文件。这里我们给整个网站添加限制,当然了,你也可以限制单独目录:

sudo nano /var/www/html/.htaccess
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
sudo service apache2 restart

MBbEfmA.jpg!web

确认密码认证

在浏览器中尝试访问受限资源,确认你的内容已受保护。这里会弹出如下所示的验证框:

Jj63Qba.jpg!web

如果你访问的内容没有弹出认证窗,或者你取消了认证页面,那你将会看到401未授权访问错误。

MZveqmV.jpg!web

输入正确的用户名和密码之后,你就应该可以访问网站内容了:

eAJBriM.jpg!webmeyQFvm.jpg!web

利用HTTP认证漏洞

xHydra

这是一款通过FTP端口和字典攻击入侵系统的图形化工具,在Kali中打开xHydra,选择“Single Target option”,设置目标IP,其他按下图勾选:

emQjaqR.jpg!web

Passwords标签页配置如下,配置好字典文件:

VFrAzyM.jpg!web

切换到Start标签,点击“Start”,可以看到字典攻击的进度以及最终的结果:

2AvI7zE.jpg!web

Hydra

Hydra可以针对50种协议进行快速的字典攻击,其中包括telnet、ftp、http、https、smb以及多种数据库。操作命令如下:

hydra -L user.txt -P pass.txt 192.168.0.105 http-get

6FRBRvr.jpg!web

Ncrack

Ncrack是一款高速网络认证破解工具,它可以帮助企业测试网络安全情况,并识别弱密码。操作命令如下:

ncrack -U user.txt -P pass.txt http://192.168.0.105

bAv63u6.jpg!web

Metasploit

下面这个模块可以对HTTP认证服务进行攻击,打开Kali终端,输入“msfconsole”,然后输入下列命令:

use auxiliary/scanner/http/http_login
msf auxiliary(scanner/http/http_login) > set user_file  user.txt
msf auxiliary(scanner/http/http_login) > set pass_file  pass.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

fUjUr2E.jpg!web

后记

希望这篇文章的内容可以帮助大家了解HTTP弱配置的安全风险,并帮助大家更好地提升自己网站的安全性。

* 参考来源: hackingarticles ,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK