免责声明
⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权!
前言
您是否曾经访问某个网站的子域名,却看到令人沮丧的“No Such Bucket”错误提示?这个信息对于大多数人来说可能是个死胡同,但对于掌握相关技能的黑客而言,这却可能是一个千载难逢的机会。今天,我将向您展示我是如何通过一个Amazon S3 Bucket成功接管一个子域名的
这是子域名可能存在接管漏洞的第一个信号。服务器提示正在寻找一个不存在的S3 Bucket。接下来,就是您的行动时间了。
第一步:收集关键信息
在继续之前,您需要以下两条信息:
-
Bucket名称
-
AWS区域
找到Bucket名称
: Bucket名称通常直接显示在子域名的错误页面上,通常在错误信息中有所提及。
确定AWS区域
: 要确定区域,可以使用dig工具:
dig xyz.target.com
在输出中查找CNAME记录。这些记录通常包含与区域相关的信息,例如eu-west-1。了解正确的区域至关重要,因为S3 Bucket的配置依赖于此信息。
第二步:创建Bucket
掌握了Bucket名称和区域后,是时候行动了。
以下是步骤:
登录AWS管理控制台
: 前往 console.aws.amazon.com
。
选择正确的区域
: 选择之前确定的区域。
创建S3 Bucket
:
进入S3服务页面,点击“创建Bucket(Create Bucket)”。输入您通过子域名错误信息获取的Bucket名称。
配置公共访问权限
:
取消勾选“阻止所有公共访问(Block all public access)”并确认相关风险。此步骤至关重要,以确保Bucket可以被公众访问。
第三步:上传内容
在创建好Bucket后,您需要向其中填充内容,以便在子域名上显示。
上传一个示例HTML文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dashboard</title>
</head>
<body>
<h1>Welcome! HUNTERS... </h1>
<h1>Subdomain Taken Over by <i>"dkcyberz"</i></h1>
</body>
</html>
点击您刚刚创建的Bucket,随后点击“上传”按钮,添加您的HTML文件。
设置权限
: 上传完成后,前往文件的权限设置。授予“读取”权限给所有人(公共访问)。
第四步:启用静态网站托管
最后,您需要将上传的文件名称输入为索引文档(例如,index.html)。
检查接管情况
一切设置完成后,我打开浏览器并访问了该子域名。果然,我的内容已经上线!这个子域名现在已经在我的控制之下,承载着我选择上传的任何内容。