• 修改beacon与C2通信的流量特征:Malleable-C2-Profiles


    前言

    这篇文章主要探讨一些Malleable-C2-Profiles的简单运用,Malleable-C2-Profiles可用于定制beacon向cobaltstrike服务端通信的流量特征,不同于常见的修改端口,证书,做反向代理等。Malleable-C2-Profiles是cobaltstrike的一个扩展,意为"可定制的" 的 C2 服务器,官方链接地址https://www.cobaltstrike.com/help-malleable-c2

    beacon与C2的通信模式

    在目标主机上线以后,beacon会定时向C2进行通信,这个通信时间是可以通过sleep控制的,从客户端输入的希望受害主机执行的命令并不是直接通过C2转发给beacon让受害主机去执行,而是存储在C2中,beacon定时向C2进行通信,这种通信是以心跳的方式进行的,beacon每次通信都会读取C2上有没有新的命令,如果有,就读取这个命令,并在下一次与C2通信时将执行命令的结果发送给C2。

    不经过修改的beacon流量分析

    既然要通信,从被害主机上就一定会捕获通信的流量,那就先来看以下在不进行定制流量特征时流量是什么样子的。我们使用以下环境进行测试:

    受害主机:windows7
    
    C2服务器:CentOS
    
    cobaltstrike版本:cobaltstrike4.0
    

      

    首先,开启一个http的监听器,并生成beacon,上传到目标主机运行使其上线,

     

    上线成功,开始在受害主机上使用wireshark进行抓包,筛选出与C2通信的流量

     从抓取的流量可以看到,beacon与C2之间的通信是以http协议通信的,每次心跳,都会请求dot.gif,中间的通信的时间间隔就是以sleep设定的时间为准,这个时间是有一个默认值的,也可通过sleep命令来修改。但所有beacon与C2之间的通信不一定都是请求这个地址,我尝试过生成其他监听器重新上线,这个请求地址会发生变化,由此可以确认这个流量特征是随机的。

    查看一下数据包的详细内容:

     

     虽然通信的数据包格式是随机的,但如果通过人工分析,这个数据包还是显得那么不正常,尤其是Host字段还带了C2服务器的地址和监听器的端口。

    关于Malleable-C2-Profiles

    刚才已经说过,Malleable-C2-Profiles可以定制流量特征,具体如何编写profiles在官方链接和其他关于profiles编写的文章都有详细的描述,如果感觉编写很麻烦或不熟练,可以下载实例文件,对文件中的参数进行修改,这样就简单的多

    实例文件地址:https://github.com/threatexpress/malleable-c2

    下载完后,把对应版本的示例文件拿下来编辑

     set sample_name 是这个profiles的名称,不影响其他功能

     set sleeptime为设置sleep时间,以毫秒为单位

    set jiiter设置抖动值

    https-certificate可以定制关于证书的一些信息

     DNS beacon设置可以定制以dns beacon进行通信时的一些流量特征

     http-stager定义分段过程,这里也就是可以定制HTTP请求的地方,实例文件中将流量伪装成请求一个js文件,并定制一个看似合法的响应。

     

     

     http-get就不难理解了,这里定义了get请求,客户端和服务端都可进行详细配置,剩下还有http-post也是一样。

    Profiles使用

    修改完(或编写完)之后将profiles上传到C2服务器上,在启动teamserver时做如下调用

    ./teamserver [external IP] [password] [/path/to/my.profile]

     启动teamserver,并调用profile,重新上线主机,抓取流量

     这样Host字段隐蔽了C2服务器的ip,请求看起来也像是一个正常的,请求js文件的请求。

    参考文献

     https://xz.aliyun.com/t/2796

  • 相关阅读:
    5的阶乘以及任意输入一个数的阶乘
    继入门程序后的第一篇函数调用的小程序 比较两数大小
    计算机网络01-计算机网络与因特网
    2021春招冲刺-1227 数组去重 | 响应式布局 | 媒体查询 |浏览器帧
    2021春招冲刺-1225 TCP与UDP | 单例模式 | 回流与重绘
    2021春招冲刺-1223 进程线程的通信 | 字符串是否有效 | 数组转换与展平
    2021春招冲刺-1221 进程与线程的区别 | 进程的切换 | 单链表是否相交 | 元素水平/垂直居中的方式
    左边固定,右边自适应解决方案
    mock 模拟数据在框架中的简单使用
    一个页面从输入url到加载到内容,这个过程经历了什么
  • 原文地址:https://www.cnblogs.com/xuanlvsec/p/14201986.html
Copyright © 2020-2023  润新知