浅谈云函数的代理IP利用面

简介: 本篇文章介绍如何通过 **Serverless(云函数)** 实现各种扫描器探测功能,以达到绕过态势感知、WAF等安全设备,增大蓝队研判人员溯源难度,实现封无可封,查无可查的效果。

浅谈云函数的代理IP利用面

前言

本篇文章介绍如何通过 Serverless(云函数) 实现各种扫描器探测功能,以达到绕过态势感知、WAF等安全设备,增大蓝队研判人员溯源难度,实现封无可封,查无可查的效果。

什么是云函数?

云函数(Serverless Cloud Function,SCF)是云计算厂商为企业和开发者们提供的无服务器执行环境,可在无需购买和管理服务器的情况下运行代码, 是实时文件处理和数据处理等场景下理想的计算平台。只需使用 SCF 平台支持的语言编写核心代码并设置代码运行的条件,即可在某云基础设施上弹性、安全地运行代码。

为什么通过云函数代理IP?

这是因为云函数会自动的在同一个地域内的多个可用区部署,在请求目标时,会自动调用不同的可用区的IP地址。这样一来,每次请求IP会发生改变,也就达到了我们想要建立一个代理池的目的。

环境准备

本地环境:kali 2021.4a

python版本:3.9.0

代理客户端:mitmproxy

云函数厂商:腾讯云

用到的仓库:https://github.com/shimmeris/SCFProxy

本地配置

首先在本地kali 中安装SCFProxy

需 Python >= 3.8

python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt

项目配置

函数配置

  1. 开通腾讯云函数服务
  2. 在 函数服务 > 新建 中使用自定义创建,函数名称及地域任选,运行环境选择 Python3.6

按我下图中的箭头配置就好了

修改 server.py 中的 SCF_TOKEN 为随机值(该值将用于鉴权),并将相同的值填入 client.py 中的 SCF_TOKEN

再通过在线编辑,将 SCFProxy 工具中的 server.py 文件代码替换进去,然后点击完成会自动部署

如需更多 ip 数,可重复上述步骤创建函数服务,地域选择不同区域。

触发器配置

成功创建函数后进入触发管理,创建触发器

触发方式选择 API 网关触发,其他保持不变即可

将访问路径记下

修改代理客户端配置

将触发器中的访问路径添加至 client.py 中 scf_servers 变量中,以逗号 , 分隔

本次研究基于 mitmproxy 提供本地代理(kali自带mitmproxy工具 )

为代理 HTTPS 流量需安装证书。

运行 mitmdump 命令,证书目录自动生成在在 ~/.mitmproxy 中,安装并信任。

开启代理开始运行:

mitmdump -s client.py -p 8081 --no-http2

通过浏览器代理工具进行代理,代理协议为 HTTP 代理服务器为 127.0.0.1 代理端口为 8081

效果

浏览器代理后,可以看到IP地址也变了,每次请求IP地址都会变化

百度查看ip

ip 数量

经测试,单个地区服务器 200 个请求分配 ip 数量在 60-70 左右。

限制

  1. 请求与响应流量包不能大于 6M
  2. 云函数操作最大超时限制默认为 3 秒,可在云函数环境配置中修改执行超时时间
  3. 因云函数限制不能进行长连接,仅支持代理 HTTP 流量

本篇文章只是简单了谈了下云函数的代理ip利用,下篇文章将详细讲解云函数的扫描技术深入研究。

目录
相关文章
|
网络协议 网络安全 CDN
「红队建设」Domain Fronting隐藏C2服务器技术
「红队建设」Domain Fronting隐藏C2服务器技术
|
应用服务中间件 Linux 网络安全
Linux 安装 Nginx 并配置为系统服务(超详细)
Linux 安装 Nginx 并配置为系统服务(超详细)
|
10月前
|
人工智能 JavaScript 前端开发
分享开源库:AI驱动的JavaScript反编译,针对混淆和压缩的代码
这是一个智能JavaScript反混淆与代码分析工具,通过AST转换和AI深度分析,自动还原变量名、识别依赖库、生成可视化控制流图,并支持多格式导出,提升代码理解与审计效率。访问 [jsunpack.tech](https://www.jsunpack.tech/) 即可在线体验。
2078 0
|
6月前
|
弹性计算 运维 负载均衡
阿里云渠道商:阿里云弹性公网IP是什么?
阿里云弹性公网IP(EIP)实现IP与计算资源解耦,支持灵活绑定、动态切换,提升业务稳定性和网络灵活性,广泛应用于高可用架构、成本优化及跨境访问场景。
|
Ubuntu Linux Go
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
2923 14
|
SQL JSON 前端开发
若依RuoYi脚手架二次开发教程(二次开发必学技能)
本次我们将通过一个菜品管理模块开发的案例,来演示拿到若依框架后,如何在若依管理系统上进行二次开发,升级改造为自己的管理系统。适合以若依作为项目脚手架的公司开发人员、毕业设计的学生及开源项目学习者。
9907 1
若依RuoYi脚手架二次开发教程(二次开发必学技能)