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 的请求方式
- 腾讯 COS 签名工具 COS 请求签名生成工具 (tencent.com)
查看token所有权限
- aksk可从 调试/测试页面、前端JS脚本调用文件、硬编码在代码里、第三方存储里获得, 如 GoogleHack
intext:OSSAccessId
阿里云 只支持windows平台
多云利用,使用可见
综合云存储管理客户端
多云靶场搭建,要打哪个云的拉哪个云的镜像就好了 我这里是拉阿里和腾讯的
存储桶对象遍历实操
COS Object 公开访问场景实操
COS Bucket ACL 可读场景实操
利用前提: 获取到了满足ACL用户的aksk或者签名
先通过
/?acl
查看权限, 发现所有用户有读ACL权限, 特定用户有 FULL_CONTROL权限 (注意记录下原本的 acl 方便改回去~)假设现在我们获取到了该用户的aksk, 则生成签名
如果获取到签名直接用即可
可以通过 API 去改acl配置: https://console.cloud.tencent.com/api/explorer?Product=cos&Version=2018-11-26&Action=PutBucketAcl
或者直接通过Burp抓包, 发送 以下数据包更改
注意uin后面的数字替换为自己的噢
接下来访问即可遍历对象存储
或者通过在 Header 头部修改, 然后任何用户都可以修改 acl 了~ 现在通过上面的数据包去掉 Authorization 部分也可以修改啦~
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,最后点击浏览即可
- RCE命令执行漏洞 - 反弹Shell
CVM SSRF漏洞
读取元数据
读取用户元数据
获取flag
如果实例绑定了CAM角色,则可以获取到他们的临时访问凭据,通过 云API 进一步利用
获取公网IP
业务逻辑漏洞 semcms 密码找回漏洞, 支付逻辑漏洞利用 → semcms密码找回可见 逻辑漏洞之密码找回漏洞(semcms) - 腾讯云开发者社区-腾讯云 (tencent.com)
模块七 云管理层渗透测试
- Spring Boot heapdump 文件
存储桶敏感信息
题目,从某处得知泄漏了ak/sk
AKID75q0hmfJkxvfART9bonX3KNCm7D57uTn
94mIbgWEj27ze7NQFtKbfW9XotIPp22q
和桶地址
获取所有对象存储
获取具体对象内容
模块八 云服务层渗透测试
根据角色名称,初步判断角色可访问的云服务 AWS IAM 权限枚举工具 enumerate-iam
enumerate-iam
andresriancho • Updated Aug 1, 2024
IaaS服务渗透测试技术
元数据凭证泄漏和利用
这时我们创建一个私有读写存储桶,直接访问读取不了
使用 COS SDK(这里安装使用的是 python 版本),配置获取到的 tmpSecretid(替换下方脚步的 secret_id)、tmpSecretkey(替换下方脚步的 secret_key) 以及 Token(替换下方脚步的 token),并填写相应的地区region和对象存储前缀Bucket 获取目标存储桶中的对象
元数据服务还能做什么?
一、获取实例信息
curl http://metadata.tencentyun.com/latest/dynamic/instance-identity/document
二、更多数据
PaaS层
利用泄漏的凭据接管整个K8S集群
利用SA凭据进行集群提权
创建特权容器
takeover.yaml
利用daemonset进行横向,因为会在每个节点都创建一个POD
云服务滥用技术
在公有云CloudShell滥用技术
模块九 虚拟化与容器渗透测试
容器逃逸 /proc 目录挂载
准备两个程序:
crash
和 exp.py
1、crash
把编译好的文件crash.c
编译
2、exp.py
3、获取宿主机路径
或者
4、把获取的目录拼接,然后运行 crash 即可
- notify_on_release 机制
利用条件:实用 cgroup v1