Serverless扫描技术研究及应用
字数 1086 2025-08-07 08:21:50
Serverless扫描技术研究及应用
一、技术概述
Serverless扫描技术是一种利用云函数(Serverless)服务实现隐匿扫描的技术,通过云函数平台提供的随机出口IP和弹性资源,可以绕过传统安全设备的检测,降低被溯源的风险。
主要优势:
- 使用云服务商的随机IP作为出口,增大溯源难度
- 绕过态势感知、WAF等安全设备的检测
- 实现"封无可封,查无可查"的效果
- 可扩展性强,可结合多地域、多厂商云服务
二、基础实现
1. 云函数配置(以腾讯云为例)
创建步骤:
- 选择"自定义创建"
- 运行环境选择Python 3.6
- 设置函数名称
- 选择地域(不同地域对应不同IP池)
核心代码实现:
# -*- coding: utf8 -*-
import requests
def main_handler(event, context):
headers = event["headers"]
url = event["queryString"]["url"]
path = event["queryString"]["path"]
crake_url = str(url+path)
try:
r = requests.get(crake_url, timeout=5, headers=headers, verify=False)
status = r.status_code
except Exception:
status = None
pass
return status, crake_url
触发器配置:
- 进入"触发管理"选项
- 配置API网关触发器
- 取消勾选"集成响应"
- 编辑API配置,将路径设置为"/"
2. 本地控制代码
基本功能:
- 通过API网关公网域名触发云函数
- 传递扫描参数(目标URL和路径字典)
- 接收并处理扫描结果
随机User-Agent实现:
# get_ua-header.py
import random
USER_AGENTS = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64)...",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...",
# 更多UA...
]
def get_random_ua():
return random.choice(USER_AGENTS)
三、进阶技术实现
1. 多地域部署
原因:
- 单个用户在某个地域只能有5个随机出口IP
- 多地域部署可扩展可用IP数量
实现方式:
- 创建相同功能的云函数,但选择不同地域
- 本地控制代码将扫描任务分配给不同地域的API网关
- 可通过端口或字典内容进行任务分配
2. 端口扫描实现
云函数代码:
# -*- coding: utf8 -*-
from socket import *
def main_handler(event, context):
IP = event["queryString"]["ip"]
port = event["queryString"]["port"]
try:
conn = socket(AF_INET, SOCK_STREAM)
res = conn.connect_ex((str(IP), int(port)))
conn.send('Hello,World!'.encode("utf8"))
results = conn.recv(25)
if res == 0:
conn.close()
return port
except Exception as err:
print(err)
finally:
print("")
conn.close()
return None
本地控制优化:
- 使用协程提高扫描速度(如grequests模块)
- 多地域API网关并行扫描
- 随机延时避免频率检测
四、对抗与防御
1. 攻击方优势
- IP随机性强,难以封禁
- 请求分散,不易被关联
- 可自定义请求头,模拟合法流量
- 多地域部署增加IP池规模
2. 防御方对策
- 封禁可疑IP(但效果有限)
- 分析请求模式特征
- 关注云服务商IP段
- 利用威胁情报(如IP历史记录)
3. 溯源关键点
- 检查IP是否为云服务商IP
- 分析IP的历史记录(如Kunyu工具)
- 关注请求时间与IP分配时间的差异
五、扩展应用
1. 大规模扫描优化
- 多厂商云服务组合使用(AWS、阿里云等)
- 动态调整扫描速率
- 任务分片与结果聚合
2. 其他应用场景
- 漏洞探测
- 信息收集
- 隐蔽C2通信
六、实现思维导图
Serverless扫描技术
├─ 云函数部署
│ ├─ 多地域
│ ├─ 多厂商
│ └─ 多实例
├─ 本地控制
│ ├─ 任务分配
│ ├─ 结果处理
│ └─ 速率控制
├─ 隐匿技术
│ ├─ 随机UA
│ ├─ 自定义Header
│ └─ 随机延时
└─ 对抗升级
├─ IP池扩展
└─ 扫描策略优化
七、注意事项
- 遵守云服务商的使用条款
- 注意扫描行为的法律边界
- 合理控制扫描频率
- 测试前获取授权
八、工具推荐
- Kunyu - 空间测绘数据分析工具
- 微步情报 - IP情报分析
- 各云服务商API工具
通过以上技术实现,Serverless扫描可以成为一种高度隐匿的探测手段,在红队评估中具有重要价值,同时也提醒蓝队需要更新防御策略以应对此类新型攻击方式。