type
status
date
slug
summary
tags
category
icon
password
CSA(Cloud Seucrity Alliance)推出了首个云渗透领域认证 CCPTP (Certified Cloud Penetration Test Professional),我有幸作为课程体验官参加了课程。
课程分为10个模块,1-4和10为理论课,其余为实操课
- 云计算概念和体系架构
- 云计算整体安全
- 渗透测试安全意识培训
- 云计算攻击路径
- 云上资产发现与信息收集
- 云租户业务层渗透测试
- 云管理层渗透测试
- 云服务层渗透测试
- 虚拟化与容器渗透测试
- 云基础设施层渗透测试
课程干货还是很多的,不过作为实战党更加看重的是实操课,所以主要记录了一下课程中练习
模块五 云上资产发现与信息收集
GoogleHack
NMAP使用
- Public Buckets by GrayhatWarfare 用于搜索公共云存储桶 (感觉不会用上
- 腾讯云 API Explorer - 云 API - 控制台 (tencent.com) 可以看到一些接口, 并知道API接口 curl 的请求方式
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fd720333d-1575-4546-b4e2-a2477d86e362%2FUntitled.png?table=block&id=e8e78529-427d-46a5-bb86-87194634067a&t=e8e78529-427d-46a5-bb86-87194634067a&width=2978&cache=v2)
- 腾讯 COS 签名工具 COS 请求签名生成工具 (tencent.com)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F64618331-e08d-4f7f-9a67-ecaa965ad7b5%2FUntitled.png?table=block&id=9afb9035-c6cb-4eee-8cfa-e4e1bc97a5d1&t=9afb9035-c6cb-4eee-8cfa-e4e1bc97a5d1&width=2430&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F4b21f444-3f76-45c0-b46d-c6ec90733730%2FUntitled.png?table=block&id=a814ba85-866a-499a-ba42-1877477a54d7&t=a814ba85-866a-499a-ba42-1877477a54d7&width=1714&cache=v2)
查看token所有权限
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F2acb25f0-9c29-4e32-b9e7-4a3ab18f0d7c%2FUntitled.png?table=block&id=47759fcc-d856-46ea-9a40-482c16c37438&t=47759fcc-d856-46ea-9a40-482c16c37438&width=1938&cache=v2)
- aksk可从 调试/测试页面、前端JS脚本调用文件、硬编码在代码里、第三方存储里获得, 如 GoogleHack
intext:OSSAccessId
阿里云 只支持windows平台
多云利用,使用可见
综合云存储管理客户端
多云靶场搭建,要打哪个云的拉哪个云的镜像就好了 我这里是拉阿里和腾讯的
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Ff024b921-4cfc-4232-a86c-bb06136e4b22%2FUntitled.png?table=block&id=519e3633-a426-4dab-871d-29faf7068d23&t=519e3633-a426-4dab-871d-29faf7068d23&width=720&cache=v2)
存储桶对象遍历实操
COS Object 公开访问场景实操
COS Bucket ACL 可读场景实操
利用前提: 获取到了满足ACL用户的aksk或者签名
先通过
/?acl
查看权限, 发现所有用户有读ACL权限, 特定用户有 FULL_CONTROL权限 (注意记录下原本的 acl 方便改回去~)![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F02f03dc0-cba2-460d-8670-e2c92af3b36a%2FUntitled.png?table=block&id=67256bb2-832c-4e98-a08a-2ede4e7e85af&t=67256bb2-832c-4e98-a08a-2ede4e7e85af&width=1548&cache=v2)
假设现在我们获取到了该用户的aksk, 则生成签名
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F0c2f537f-cedd-4814-9a10-99a679ca5464%2FUntitled.png?table=block&id=3d3ab079-66e5-41bc-ae78-f1500af4cf31&t=3d3ab079-66e5-41bc-ae78-f1500af4cf31&width=2370&cache=v2)
如果获取到签名直接用即可
可以通过 API 去改acl配置: https://console.cloud.tencent.com/api/explorer?Product=cos&Version=2018-11-26&Action=PutBucketAcl
或者直接通过Burp抓包, 发送 以下数据包更改
注意uin后面的数字替换为自己的噢
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Ffe9ee272-4f68-40f9-82a4-99919a03dc69%2FUntitled.png?table=block&id=149ea848-610c-4e4e-a573-5d75a058fd89&t=149ea848-610c-4e4e-a573-5d75a058fd89&width=2514&cache=v2)
接下来访问即可遍历对象存储
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fcacccdd2-3a31-4001-bcd6-738b64dd36a5%2FUntitled.png?table=block&id=f4a97bcc-d186-4b4e-83c5-ce5a087c7387&t=f4a97bcc-d186-4b4e-83c5-ce5a087c7387&width=766&cache=v2)
或者通过在 Header 头部修改, 然后任何用户都可以修改 acl 了~ 现在通过上面的数据包去掉 Authorization 部分也可以修改啦~
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F15de58a0-b5b7-4565-8c07-140350f4131c%2FUntitled.png?table=block&id=f0f7e2e7-d817-4d97-9b1f-fbc2a227fefd&t=f0f7e2e7-d817-4d97-9b1f-fbc2a227fefd&width=2584&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F7aadfc38-f1ef-46e8-96bb-88147af1672d%2FUntitled.png?table=block&id=8f45310d-84dd-4168-9715-15ec8721e132&t=8f45310d-84dd-4168-9715-15ec8721e132&width=2534&cache=v2)
COS Bucket ACL 可写场景实操
- https://console.cloud.tencent.com/api/explorer?Product=cos&Version=2018-11-26&Action=PutBucketAcl 修改对象存储公有读写权限
- https://console.cloud.tencent.com/api/explorer?Product=cos&Version=2018-11-26&Action=GetBucketAcl 查看acl
- 攻防矩阵 | 云安全知识库 (huoxian.cn) 包含阿里、腾讯、华为等的攻防手段
模块六 云租户业务层渗透测试
云租户web应用攻击面概览
端口 | 服务 | 渗透测试 |
tcp 20,21 | FTP(文件传输协议) | 允许匿名的上传下载,爆破,嗅探,win提权,远程执行
(proftpd 1.3.5),各类后门(proftpd,vsftp 2.3.4) |
tcp 22 | SSH (安全外壳协议 ) | 可根据已搜集到的信息尝试爆破,v1版本可中间人,ssh隧
道及内网代理转发,文件传输等等 |
tcp 23 | Telnet ( 远程终端协议) | 爆破,嗅探,一般常用于路由,交换登陆,可尝试弱口令 |
tcp 25
| SMTP(简单邮件传输协议) | 邮件伪造,vrfy/expn查询邮件用户信息,可使用smtp-user-
enum工具来自动跑 |
tcp/udp 53 | DNS(域名系统) | 允许区域传送,dns劫持,缓存投毒,欺骗以及各种基于dns
隧道的远控 |
tcp/udp 69 | TFTP (简单文件传送协议 ) | 尝试下载目标及其的各类重要配置文件 |
tcp 80-89,443,8440-
8450,8080-8089 | 各种常用的Web服务端口 | 可尝试经典的topn,vpn,owa,webmail,目标oa,各
类Java控制台,各类服务器Web管理面板,各类
Web中间件漏洞利用,各类Web框架漏洞利用等
等...... |
tcp 110 | POP3(邮局协议版本3 ) | 可尝试爆破,嗅探 |
tcp 111,2049 | NFS(网络文件系统) | 权限配置不当 |
tcp 137,139,445 | SMB(NETBIOS协议) | 可尝试爆破以及smb自身的各种远程执行类漏洞利用,如,ms08-067,ms17-010,嗅探等...... |
tcp 143 | IMAP(邮件访问协议) | 可尝试爆破 |
udp 161 | SNMP(简单网络管理协议) | 爆破默认团队字符串,搜集目标内网信息 |
tcp 389 | LDAP( 轻量目录访问协议 ) | ldap注入,允许匿名访问,弱口令 |
tcp 512,513,514 | Linux rexec (远程登录) | 可爆破,rlogin登陆 |
tcp 873 | Rsync (数据镜像备份工具) | 匿名访问,文件上传 |
tcp 1194 | OpenVPN(虚拟专用通道) | 想办法钓VPN账号,进内网 |
tcp 1352 | Lotus(Lotus软件) | 弱口令,信息泄漏,爆破 |
tcp 1433 | SQL Server(数据库管理系统) | 注入,提权,sa弱口令,爆破 |
tcp 1521 | Oracle(甲骨文数据库) | tns爆破,注入,弹shell... |
tcp 1500 | ISPmanager( 主机控制面板) | 弱口令 |
tcp 1723 | PPTP(点对点隧道协议 ) | 爆破,想办法钓VPN账号,进内网 |
tcp 2082,2083 | cPanel (虚拟机控制系统 ) | 弱口令 |
tcp 2181 | ZooKeeper(分布式系统的可靠协调系统 ) | 未授权访问 |
tcp 2601,2604 | Zebra (zebra路由) | 默认密码zerbra |
tcp 3128 | Squid (代理缓存服务器) | 弱口令 |
tcp 3312,3311 | kangle(web服务器) | 弱口令 |
tcp 3306 | MySQL(数据库) | 注入,提权,爆破 |
tcp 3389 | Windows rdp(桌面协议) | shift后门[需要03以下的系统],爆破,ms12-020 |
tcp 3690 | SVN(开放源代码的版本控 制系统) | svn泄露,未授权访问 |
tcp 4848 | GlassFish(应用服务器) | 弱口令 |
tcp 5000 | Sybase/DB2(数据库) | 爆破,注入 |
tcp 5432 | PostgreSQL(数据库) | 爆破,注入,弱口令 |
tcp 5900,5901,5902 | VNC(虚拟网络控制台,远 控) | 弱口令爆破 |
tcp 5984 | CouchDB(数据库) | 未授权导致的任意指令执行 |
tcp 6379 | Redis(数据库) | 可尝试未授权访问,弱口令爆破 |
tcp 7001,7002 | WebLogic(WEB应用系统) | 反序列化,弱口令 |
tcp 7778 | Kloxo(虚拟主机管理系统) | 主机面板登录 |
tcp 8000 | Ajenti(Linux服务器管理面 板) | 弱口令 |
tcp 8443 | Plesk(虚拟主机管理面板) | 弱口令 |
tcp 8069 | Zabbix (系统网络监视) | 远程执行,SQL注入 |
tcp 8080-8089 | Jenkins,JBoss (应用服务 器) | 反序列化,控制台弱口令 |
tcp 9080-9081,9090 | WebSphere(应用服务器) | Java反序列化/弱口令 |
tcp 9200,9300 | ElasticSearch (Lucene的 搜索服务器) | 远程执行 |
tcp 11211 | Memcached(缓存系统) | 未授权访问 |
tcp 27017,27018 | MongoDB(数据库) | 爆破,未授权访问 |
tcp 50070,50030 | Hadoop(分布式文件系统) | 默认端口未授权访问 |
- SQL注入漏洞 - 报错注入和布尔盲注, 可 sqlmap 一把梭
文件上传漏洞 - DedeCMS文件上传(织梦v5.7)
/uploads/dede/login.php
admin/admin 或者 admin/admin123 登录后台
- 模板 > 默认模板管理 > (拉到最下面 点击)新建模板
- 文件内容
<?php phpinfo(); ?>
保存
- 生成 > 更新 HTML 主页 > 浏览选择新建的模板,然后在 主页位置 输入框中将文件后缀改为
.php
,首页模式 选择 生成静态 ,点击更新 主页 HTML,最后点击浏览即可
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Feb0b4f6c-27ea-48e3-bafe-c1c40c87b2b2%2FUntitled.png?table=block&id=458e1cfb-3923-4167-bf31-fb77921f217c&t=458e1cfb-3923-4167-bf31-fb77921f217c&width=1686&cache=v2)
- RCE命令执行漏洞 - 反弹Shell
CVM SSRF漏洞
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F9f5602c6-20cf-4528-81fd-d13f0ba19a3c%2FUntitled.png?table=block&id=b4cb4172-f8ef-4a1b-8559-2dd33a34ff90&t=b4cb4172-f8ef-4a1b-8559-2dd33a34ff90&width=2786&cache=v2)
读取元数据
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F9dec1369-2221-490a-bb52-8ab4505bc1b4%2FUntitled.png?table=block&id=de9b8ba0-6a2d-44ec-8810-b52fa2539302&t=de9b8ba0-6a2d-44ec-8810-b52fa2539302&width=2786&cache=v2)
读取用户元数据
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F0d75e66d-2ef8-49e5-af4c-7cef7070bdcf%2FUntitled.png?table=block&id=4a6b5da6-3aca-4aef-aeff-0e43a9e165d7&t=4a6b5da6-3aca-4aef-aeff-0e43a9e165d7&width=2786&cache=v2)
获取flag
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fbcc56cd2-5e9b-4e8e-bdde-0b5241b841b2%2FUntitled.png?table=block&id=d3b594ca-b522-4a51-8c53-16db1178345a&t=d3b594ca-b522-4a51-8c53-16db1178345a&width=2786&cache=v2)
如果实例绑定了CAM角色,则可以获取到他们的临时访问凭据,通过 云API 进一步利用
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fbe9c59b5-8541-43f8-807e-1142a19720ea%2FUntitled.png?table=block&id=00fa35b2-b9e6-42a2-868c-6f6a06cfd12a&t=00fa35b2-b9e6-42a2-868c-6f6a06cfd12a&width=2786&cache=v2)
获取公网IP
业务逻辑漏洞 semcms 密码找回漏洞, 支付逻辑漏洞利用 → semcms密码找回可见 逻辑漏洞之密码找回漏洞(semcms) - 腾讯云开发者社区-腾讯云 (tencent.com)
模块七 云管理层渗透测试
- Spring Boot heapdump 文件
存储桶敏感信息
题目,从某处得知泄漏了ak/sk
AKID75q0hmfJkxvfART9bonX3KNCm7D57uTn
94mIbgWEj27ze7NQFtKbfW9XotIPp22q
和桶地址
获取所有对象存储
获取具体对象内容
模块八 云服务层渗透测试
根据角色名称,初步判断角色可访问的云服务 AWS IAM 权限枚举工具 enumerate-iam
enumerate-iam
andresriancho • Updated Jul 14, 2024
IaaS服务渗透测试技术
元数据凭证泄漏和利用
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fc2c03572-50d2-4f87-a46d-5a5e6b5c9efa%2FUntitled.png?table=block&id=0165e4b0-dfde-46d1-af0f-58c7d9f950ba&t=0165e4b0-dfde-46d1-af0f-58c7d9f950ba&width=3264&cache=v2)
这时我们创建一个私有读写存储桶,直接访问读取不了
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fea71e146-acf0-4a8a-9fa4-641a7748de6a%2FUntitled.png?table=block&id=94805297-4f90-4e98-9940-d3c8b67fb90e&t=94805297-4f90-4e98-9940-d3c8b67fb90e&width=1580&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F79b223ca-2c82-4351-90f2-bcbfddbe4c80%2FUntitled.png?table=block&id=b81d0830-91cd-46c5-ae35-4be9a4abd931&t=b81d0830-91cd-46c5-ae35-4be9a4abd931&width=1834&cache=v2)
使用 COS SDK(这里安装使用的是 python 版本),配置获取到的 tmpSecretid(替换下方脚步的 secret_id)、tmpSecretkey(替换下方脚步的 secret_key) 以及 Token(替换下方脚步的 token),并填写相应的地区region和对象存储前缀Bucket 获取目标存储桶中的对象
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F436fab99-9f03-4cfe-935d-866dfd34c8e5%2FUntitled.png?table=block&id=f900d95e-b9ee-4c01-ae70-35de6c4d70e9&t=f900d95e-b9ee-4c01-ae70-35de6c4d70e9&width=1688&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F8b4c88cb-b42d-4ad0-b71f-4746b68f38ba%2FUntitled.png?table=block&id=3f294416-27a7-4f48-a48d-02c31271911c&t=3f294416-27a7-4f48-a48d-02c31271911c&width=1730&cache=v2)
元数据服务还能做什么?
一、获取实例信息
curl http://metadata.tencentyun.com/latest/dynamic/instance-identity/document
二、更多数据
PaaS层
利用泄漏的凭据接管整个K8S集群
利用SA凭据进行集群提权
创建特权容器
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F01d239b7-1e7c-4702-a833-1ca0fd073c82%2FUntitled.png?table=block&id=ef25f52b-5e1a-4bb7-8416-517fd73797f4&t=ef25f52b-5e1a-4bb7-8416-517fd73797f4&width=740&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F25b86deb-dfd1-4fcc-8bae-5a0df203d49e%2FUntitled.png?table=block&id=7b343ac9-e464-4d32-ab31-dfbd4a777085&t=7b343ac9-e464-4d32-ab31-dfbd4a777085&width=1374&cache=v2)
takeover.yaml
利用daemonset进行横向,因为会在每个节点都创建一个POD
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F2452a466-db58-484d-87d9-cfc88625c244%2FUntitled.png?table=block&id=0611aac4-fde1-476a-a2b6-141729b9b44d&t=0611aac4-fde1-476a-a2b6-141729b9b44d&width=870&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fc4da0c24-6600-48c1-ae52-1d96d39f7428%2FUntitled.png?table=block&id=e99d1813-94d4-4987-a296-f966346fd9bf&t=e99d1813-94d4-4987-a296-f966346fd9bf&width=1712&cache=v2)
云服务滥用技术
在公有云CloudShell滥用技术
模块九 虚拟化与容器渗透测试
容器逃逸 /proc 目录挂载
准备两个程序:
crash
和 exp.py
1、crash
把编译好的文件crash.c
编译
2、exp.py
3、获取宿主机路径
或者
4、把获取的目录拼接,然后运行 crash 即可
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F20e16abf-5815-43d0-b02d-2d16e6cb07af%2FUntitled.png?table=block&id=f0519147-f5aa-42cb-9c97-b7525f86e3d7&t=f0519147-f5aa-42cb-9c97-b7525f86e3d7&width=2946&cache=v2)
- notify_on_release 机制
利用条件:实用 cgroup v1