BRC4?or CS新加载器?

admin 2025年3月2日21:09:25评论8 views字数 2150阅读7分10秒阅读模式

1.前言

这次的两个样本来自朋友的分享,本来这两个是去年四五月份就分析完了,正好护网的时候,但是因为涉及一些原因没有发出来。

虽然当时这样本被送来才过了两三天,但是当时分析的时候插件的加载也被关了,没获取到也是一个遗憾吧。

当初分析的时候以为这两个样本是brc4的,因为实在有些功能点还有隐匿的点很像,但是当时应该是呆在qax的,那会儿内网终端部门发了个文章讲的也是这个样本貌似是cs的变种,但是这些个内容实在和cs不太能扯上关系,勉强算作cs的loader加载器吧,整体的逻辑还是正常C2的插件化功能,还是当作C2分析就好。

小米su7 ultra很帅~~祝卖爆,哈哈哈哈哈哈。

2.一些过程的记录

后面拿到的样本像是一个brc4 1.8+,这一篇是不知道几版本的那个,看了下brc4官网的BLOGS,比对一下更新的内容,按功能点来看应该不是最新或者1.6+。

1.6版本加入了curl命令

BRC4?or CS新加载器?

中文如下

BRC4?or CS新加载器?

这个样本的加载阶段是没做什么反调试操作的

前置是win c msvc的运行时,但是整体crt的结构改了不少,去掉了一些没用的加了一些初始化内容及反调内容

正常的运行时:

BRC4?or CS新加载器?

样本的运行时:(部分函数重命名了)

BRC4?or CS新加载器?

BRC4?or CS新加载器?

第一个函数做了初始化url释放的操作,释放的内容如下,其中做了反ida pro操作

反调试的点在进入的第二层函数中

BRC4?or CS新加载器?

只看f5 ida无法识别对于rsp替换成通用寄存器

BRC4?or CS新加载器?

BRC4?or CS新加载器?

后续操作使用rsp与rbp进行数据释放地址的操作

BRC4?or CS新加载器?

释放内容如下

000000ADF87BF9E400 00 00 00 00 00 00 00 00 00 00 00 55 73 65 72............User

000000ADF87BF9F433 32 2E 64 6C 6C 00 00 00 00 00 00 57 69 6E 6932.dll......Wini

000000ADF87BFA046E 65 74 2E 64 6C 6C 00 00 00 00 00 68 00 74 00net.dll.....h.t.

000000ADF87BFA1474 00 70 00 73 00 3A 00 2F 00 2F 00 6C 00 6F 00t.p.s.:././.l.o.

000000ADF87BFA2467 00 2D 00 31 00 33 00 30 00 37 00 36 00 32 00g.-.1.3.0.7.6.2.

000000ADF87BFA3433 00 ** 00 30 00 35 00 2E 00 63 00 6F 00 ** 003.*.0.5...c.o.*.

000000ADF87BFA442E 00 61 00 70 00 2D 00 73 00 68 00 61 00 ** 00..a.p.-.s.h.a.*.

000000ADF87BFA5467 00 68 00 61 00 69 00 2E 00 6D 00 79 00 71 00g.h.a.i...m.y.q.

000000ADF87BFA6463 00 6C 00 6F 00 75 00 64 00 2E 00 63 00 6F 00c.l.o.u.d...c.o.

000000ADF87BFA746D 00 2F 00 65 00 72 00 72 00 6F 00 72 00 2F 00m./.e.r.r.o.r./.

000000ADF87BFA8464 00 75 00 6D 00 70 00 68 00 61 00 73 00 68 00d.u.m.p.h.a.s.h.

BRC4?or CS新加载器?

用的是腾讯云的存储桶做数据交换

BRC4?or CS新加载器?

初始化url后和下面的操作执行都会触发对抗反调

这边的反调策略用到了一个int 0x29

BRC4?or CS新加载器?

这里触发异常

BRC4?or CS新加载器?

BRC4?or CS新加载器?

触发异常的前置点

BRC4?or CS新加载器?

释放一个ff210200不知道干啥的

BRC4?or CS新加载器?

BRC4?or CS新加载器?

Enter

BRC4?or CS新加载器?

进入这四个函数,如果返回true或 rbx==rdi则ret

BRC4?or CS新加载器?

Rbx为这四个函数位置,上面的是rdi的值,也就是执行完这四个函数

BRC4?or CS新加载器?

BRC4?or CS新加载器?

BRC4?or CS新加载器?

初始化loadlibrary调用load两个dll

BRC4?or CS新加载器?

BRC4?or CS新加载器?

再寻找函数

BRC4?or CS新加载器?

上面初始化的几个函数分别在rbx、rsi、rdi、r14、rax

19a8为通过hash获取指定函数并放入rbx、rbp。同上

BRC4?or CS新加载器?

BRC4?or CS新加载器?

Enumwindows回调结束后对比所有窗口上中的getwindowtexta获取的内容,比对如果有内容就inc自加在栈中,代码如下,灰色部分是自加操作,前面是之前提过的调用

BRC4?or CS新加载器?

遍历完所有窗口后得到的值为6

BRC4?or CS新加载器?

这里-7与2a做比较

BRC4?or CS新加载器?

这里是当前样本中的明文virtualalloc

做了一个是反沙箱的操作,如果小于就不进入virtualalloc与net连接

BRC4?or CS新加载器?

Openurl:https://log-**********************************.com/error/dumphash

(加些星号去下敏感数据)

这个函数先进入          0000020CCC8FC78F

首先说下这个反射加载的是一个混淆过的pe文件,pe头如下

BRC4?or CS新加载器?

通过明文的PE判断可能是一个pe文件,但是这里并不能被识别,做了下pe格式的校验对齐

BRC4?or CS新加载器?

去掉了前三个字节,并且查看后面的代码,也可以看到对前三个字节做了pass

Syscall调用顺序

BRC4?or CS新加载器?

申请内存 释放payload 修改内存页状态

BRC4?or CS新加载器?

BRC4?or CS新加载器?

这里内存布局中显示当前页没有可执行权限,但是执行不会报异常

释放的第二个内存块没有pe头,反射入口在第一次样本中的loaderflags中存储

BRC4?or CS新加载器?

代码如下

BRC4?or CS新加载器?

service-8du**xl5-**********.sh.tencentapigw.com          (做了敏感数据处理)

可惜是个云函数

原文始发于微信公众号(CrackME安全):BRC4?or CS新加载器?

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

发表评论

匿名网友 填写信息