样本一:dump2.bin
MD5: 4B99184764B326B10640A6760111403D
样本概述:
该样本是c#编写的窃密木马,从VT研判可知是massLogger家族。massLogger是一个相当新的凭证窃取软件。采用了一种复杂的技术,该技术在运行时取代了Microsoft中间语言(MSIL),从而阻碍了静态分析,而且代码中用到的字符串都被加密放到了资源节。
样本执行细节:
入口点函数,非常简洁,调用yd.bx, 然后在初始化会调用pC(4).Fvq方法返回值为函数类型,然后调用该函数。
上面调用过程就是massLogger的主要混淆技术,把方法声明和方法体分开,通过一张映射表做关联,而这张表就是通过LR4Cc这个资源节数据解密获取的,key值对应方法声明的token,value对应方法体的token
下面是[0x40001E2,0x60001E2]对应关系为aP.cB对应kW0.PWX的w6R方法
有了这个映射表,我可以通过Token的RID在储存流中找到名字(主要是dnspy没办法搜索token),每个token的最高字节代表了类型,后面的几位代表序号,找到名字之后就能通过搜索找到定义的地方了
在“-“模块中,有很多类都是通过这种方式调用方法
由于混淆基本只能动态跟踪,刚看到资源节中加载了数据,然后看了下有4个资源
在加载资源的地方下断点,通过后面的调试,这4个资源都会被加载,但能力有限只看出两个有用的数据,后面的不知道干啥的。
从b7XmD中解密出了程序所需要的字符串,每个字符串第1个字节标识长度,00因该是结束符,后面才是字符串内容,然后程序会通过w4.bx获取指定index的字符串
生成的字符串大部分是没有加密的,有些关键的配置开关和数据传输地址进行了加密处理,还是有很多有用信息,我们可以通过字符串在内存中的偏移index在程序中搜索,以得到获取该字符串的位置
下面是Ohlz资源名字通过22482搜索到的使用处位置
通过该方法找到了配置数据所在的文件,在XWr这个类中包含了所有配置信息,Ftp的账号和密码,反调试开关等
这个是用户配置信息
然后在这些地方下断点,就能解密很多数据
然后根据这些开关和调试信息可以找到使用他们的地方,然后改写数据就能跳过一些限制,比如可以把反调试给关闭,OlnySendOnPassword字段关闭
基本的通过上面的方法就能获取到有用的信息,现在可以在w4.bx处下断点,跟踪用到了哪些字符串,可以看出木马执行了那些功能
检测有无AVGUI进程,杀软的进程
窃取浏览器和邮箱凭证
获取设备的HWID
获取本机ip地址
通过FTP协议发送数据
键盘记录功能
网络抓取的数据
分析总结:
在分析中有时会遇到调试到某个地方就会终止了,后面发现程序开启了互斥体,但它不是一启动就检测的,在跑完很长一大段才检测。还有调试时一直没有发送FTP请求,但看anyRun上面有请求,使得一直觉得是有哪个反虚拟机指令没有过掉,但后面仔细看了配置字段发现OlnySendOnPassword才知道我的环境里面没有配置账号密码,导致一直不发送。
IOCs:
nankasa.com.ar
参考资料:
关于masslogger反混淆技术,火眼有篇文章讲了破解方法,但试了下并没有成功
https://www.4hou.com/posts/o7lj
来源:freebuf.com 2021-06-19 22:17:32 by: 毛酷Roy66
请登录后发表评论
注册