一个开源的采用WebSocket进行连接的C2分析

admin 2024年2月9日13:56:18评论11 views字数 660阅读2分12秒阅读模式

昨天发现了一个go写的马,试了一下感觉还ok,走的websocket做的连接,一些常规的AV是可以检出的,但是由于是开源项目改一下绕过不是很复杂的,由于工作原因,需要分析各类恶意样本来尝试去给出检测方案,所以俺也分析一下他的代码:

首先看下他的数据库部分,使用的sqlite,完全无加密:

一个开源的采用WebSocket进行连接的C2分析

可能放出来的版本无加密吧,如果这个程序有任意文件读取的话是可以尝试利用这个点进行反制,然后是他的流量情况:

一个开源的采用WebSocket进行连接的C2分析

这里其实可以做一个很大的特征点加到IPS的规则里面,接着是他的启动等待执行指令部分:

一个开源的采用WebSocket进行连接的C2分析

实话说,这里不是很喜欢,和cs的写法差不多,我第一眼看到CS的写法的时候就感觉像是在堆屎山,不过既然命令不多,所以问题也不大

shellcode生成部分,他采用的是donut

一个开源的采用WebSocket进行连接的C2分析

搜了一下donut,发现这个现在支持多种格式的,我记得之前有个是只能转换.net的,然后还得用它自己的加载器,这个看介绍确实不错,学到了~

然后是系统命令执行部分,采用的go原生自带的exec:

一个开源的采用WebSocket进行连接的C2分析

执行 .NET assemblies时还做了bypass AMSI的操作,merlin的agent也是这么做的:

一个开源的采用WebSocket进行连接的C2分析

申请调试权限:

一个开源的采用WebSocket进行连接的C2分析

权限维持部分,添加的注册表:

一个开源的采用WebSocket进行连接的C2分析

添加服务部分主要是以下配置:

一个开源的采用WebSocket进行连接的C2分析

计划任务:

一个开源的采用WebSocket进行连接的C2分析

执行shellcode部分:

一个开源的采用WebSocket进行连接的C2分析

看到了上边的代码基本上就了解了他的思路,我们可以在检测的时候去针对性的防范,例如上边的流量、加载shellcode的行为,等等多个点,emmm有源码在的恶意程序还是比较好写规则的

原文始发于微信公众号(天幕安全团队):一个开源的采用WebSocket进行连接的C2分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月9日13:56:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一个开源的采用WebSocket进行连接的C2分析http://cn-sec.com/archives/2401105.html

发表评论

匿名网友 填写信息