freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

使用云函数辅助渗透测试
JJ1ng 2025-02-25 00:08:54 32464
所属地 北京

0x00 Introduction

本篇章中将说明云函数相关的概念,以及利用云函数辅助日常渗透。个人才疏学浅,有未阐述清楚或遗漏的地方,还请谅解,相关的内容可自行搜索。注:以下所有的内容都以百度云为主。

百度云官方介绍:函数计算(Cloud Function Compute,简称 CFC)提供基于事件触发、全托管的云端计算能力。您仅需要开发业务代码并上传,无需关注和配置服务器资源,CFC 会托管您的代码并在代码需要执行时自动分配计算资源,使您的业务可靠地运行。

简单来说,就是在云端提供一个代码运行的环境,当满足某些条件时,就会执行这些代码。需要注意的是,Serverless是一种架构、一种云计算执行模型、一种范式;CFC 是对Serverless架构其中一种轻量化的实现,CFC 允许用户以函数为单位编写代码,由事件触发执行;云函数通常指在函数计算平台上运行的具体函数。


0x01 Usage

CFC 控制台:https://console.bce.baidu.com/cfc/overview

说明文档:https://cloud.baidu.com/doc/CFC/index.html

1. 创建 CFC

首先进入 CFC 控制台,在“函数列表”中“创建函数”,模版选择“空白函数”。

在“函数配置”中的“运行时”选择“Python 3.6”;在“触发器配置”中,选择“HTTP 触发器”,URL 路径根据提示填写/{filepath+}即可。

创建完成后,可访问生成的“URL 路径”来触发函数执行,如下:

2. 代码说明

云函数中的handler()是请求处理函数,是处理请求的默认方法,通常作为处理事件的入口,类似于 C 语言中的main()函数。触发器会在触发函数时,将事件传递给云函数中的handler()来处理,将结果通过return返回,该函数有两个参数eventcontext,两个参数分别用于接收事件数据和运行时上下文信息。

# -*- coding: utf-8 -*-

def handler(event, context): 
return "Hello World"

HTTP 触发器会将整个客户端请求映射到后端函数的输入event对象,具体包含如下内容:

{
"resource": "请求的资源路径",  
"path": "HTTP触发器的路径",  
"httpMethod": "请求的HTTP方法",  
"headers": {请求头},  
"queryStringParameters": {query string 参数},  
"pathParameters":  {代理路径参数},  
"requestContext": {请求上下文},  
"body": "请求体",  
"isBase64Encoded": "请求体是否为Base64编码,这里固定为false,暂不支持二进制格式"  

详情及示例可参考官方文档:https://cloud.baidu.com/doc/CFC/s/kjzmgugty#%E7%94%A8%E6%88%B7%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E9%85%8D%E7%BD%AE


0x02 Craft

云函数提供了一种无服务、事件触发的代码执行环境。那么为了避免在主动信息收集时被拦截、上线时被溯源等问题,可以通过云函数来进行隐匿操作,这和代理转发、代理池、CDN 等技术有着异曲同工之妙。

1. 端口扫描

在“函数代码”处,写入如下代码。

VSwCKlbeWq2v3tX.png


随后将“触发器”修改为如下形式:

创建一台 ECS 服务来进行测试,如下是服务器开启的端口。

如下是本人编写的端口扫描脚本,将“HTTP 触发器”地址作为请求地址添加,核心代码如下:

2. 目录扫描

将“函数代码”以及“触发器”修改为如下形式:

如下是本人编写的目录扫描脚本,将“HTTP 触发器”地址作为请求地址添加,核心代码如下:

hTzOx6trV2WaPkA.png

同样,拿一台 ECS 服务器进行测试。

Vdy3N1J8zZL265U.png

3. WebShell

将“函数代码”以及“触发器”修改为如下形式:

nWgz1ENyRdDc9IU.png

上传冰蝎马并结合云函数进行连接。

4. CS 上线

首先搭建 CS 服务器,默认监听在 50050 端口,且这里通过 8000 端口来上线,需要在安全组中放行对应端口。这里cfc.profile文件可参考有关腾讯云 C2 上线的文章。

将代码中 C2 地址填写为 CS 服务器监听地址8.155.43.167:8000

新建监听器,选择 HTTPS 类型的 Payload,注意区分“上线端口”和“监听端口”。具体配置如下:


0x03 Reference

https://paper.seebug.org/1776/

https://www.cnblogs.com/sevck/p/16566611.html

https://blog.nsfocus.net/cdn-faas/

https://lzcloudsecurity.gitbook.io/

https://github.com/wikiZ/ServerlessScan

https://github.com/shadowabi/Serverless_PortScan

https://github.com/shimmeris/SCFProxy/blob/main/README_zh.md

https://xz.aliyun.com/news/9001

# 渗透测试 # 云安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 JJ1ng 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
安全平台
JJ1ng LV.1
公众号:JJ1ng
  • 2 文章数
  • 1 关注者
从零开始 Attack the GraphQL API
2024-12-30
文章目录