yangruiqi 发表于 2020-5-6 20:29

一个.net远控样本自启部分分析

本帖最后由 yangruiqi 于 2020-5-7 12:45 编辑

首先说明前面部分详细分析了下,后门加载起来之后,远控样本的那些诸如下载上传等相关操作只是粗略静态的看了下,附件有已经去过混淆去了随机基址并且修改过变量名函数名的.net的病毒样本(密码52pojie),另外本人才疏学浅,分析的不到位地方,还有遇到的难点,欢迎大佬们指正。
1 样本概况
首先拖入PEID观察发现是.net

首先拿到样本发现加了混淆,

使用de4dot去混淆,然后再用dnspy打开就以及去混淆了。

然后去了随机基址,然后因为是32位程序并且用到dnspy5.0.1,所以使用x86的win7 sp1作为分析环境,样本信息如下:
1.1样本信息
文件名:
TrustedInstaller
Size: 458240 bytes
File Version: 1.14.7.21
Modified: 2020年5月5日, 18:56:43
MD5: 2A51F1F2CFA2A4A3A844C901D34B8025
SHA1: 039BB9A1EFA83F4DA5A2024F4A77F7F2FFB6F7DD
CRC32: 20299FD2
1.2测试环境及工具
运行平台:Windows 7X64
系统监控工具:火绒剑
分析工具:de4dot,dnspy5.0.1


2 功能分析
2.1样本综述
此样本是一个远控,大致流程是启动之后,开启计划任务,设置注册表,将自己伪装成TrustedInstaller.exe系统更新程序,然后开机自启,然后启动自身,在机器登录时候启动自身,然后发送被控主机信息给C2,然后建立通信ssl加密,做一些传输文件等的远控操作。
2.2局部剖析
从main开始分析,首先设置窗口,SetCompatibleTextRenderingDefault(false)使用GDI方式显示文本,UnhandledException设置异常处理。然后查看异常处理操作

继续往下,进入smethod0,判断masterkey是否为空,此值为"t0fAvt1fcrRUVd0ogpBHUbv4dceY85nT",使用Rfc2898DeriveBytes类的通过使用基于 HMACSHA1 的伪随机数生成器,实现基于密码的密钥派生功能 (PBKDF2)。Rfc2898DeriveBytes获取密码、salt 和迭代次数,然后通过调用GetBytes 方法来生成密钥。

首先分别解密字符串。TrustedInstaller,51.89.185.242:1718,TrustedInstaller,TrustedInstaller.exe,QSR_MUTEX_Cqh19K3HcvAFaqnE1A,SystemCheck,Logs,以及三个字符串,创建类为X509Certificate2类操作证书文件。

然后调用m_fnSetByEnv(),根据系统版本号设置运行环境。看起来是x64直接返回

X86继续首先判断specialFolder当前所在目录是否是systemX86,不是的化设置成系统目录。即{C:\Windows\system32},紧接着分析if中第二个Class0.smethod_3
进入GClass36.smethod_0,分析发现里面就是处理分号的一个类

处理方法是生成一个queue。

将之前的host地址入队

紧接着是判断初始化互斥体,判断host是否为空创建直接生成的字符串的互斥体

经过分析,此时if的true和false分两种,false, main函数继续往下走发现是退出函数,流程如下:

返回,main,如果main,中if不成立,后面就是关闭相关销毁函数了。所以main函数继续往下走,紧接着返回


进行一些判断如果成立就退出线程,此时并没有进去,往下走进入smethod_0(),

最后就退出了。所以ture是继续运行的流程:首先是个installPath目录拼接,如下:

判断gclass非空,所以三目运算符走前面,后半部分是"TrustedInstaller\TrustedInstaller.exe
"
最后拼接如下: "C:\Windows\system32\TrustedInstaller\TrustedInstaller.exe"

紧接着如下函数

进入观察,发现处理运行样本机器的地理信息

其中第一个函数是调用jason处理web请求

继续往下,发现此时操作是自删除样本本身Zone.Identifier


继续返回smethod_3()继续往下,发现if不成立没有C:\Windows\System32\TrustedInstaller进入GClass30.smethod_0();

进入GClass30.smethod_0(Class0.gclass27_0);观察发现首先创建目录C:\Windows\System32\TrustedInstaller,然后判断此目录是否存在文件TrustedInstaller.exe
不存在继续,然后复制自身到

紧接着如下,进去观察发现是设置开机自启此程序

上面函数进入观察

@"/create/tn ""SystemCheck"" /sc ONLOGON /tr""C:\Users\yrq\Desktop\12346"" /rl HIGHEST /f"创建计划任务,任务名 SystemCheck,类型为ONLOGON,然后/tr指定运行的程序是次样本,/rl Highest以最高权限运行。然后如果计划任务失败,使用注册表实现开机自启

然后设置文件属性隐藏自身

继续往下

然后发现再往外就是返回主函数退出此进程了。所以我们想要继续观察流程需要在C:\Windows\System32\TrustedInstaller此目录,分析TrustedInstaller.exe下面就是静态观察分析了,由于时间有限,再ctrl+shift+e修改源代码或者直接动态调试时候修改指令出现修改了还执行原来代码之类的问题,最后就只静态看了下,留作以后详细观察此远控代码,或者去搜集相关quasarrat远控的源码

base.method_4(gclass.IpAddress,gclass.Port);为连接socket通信

首先创建socket类然后SetKeepAliveEx,此处为保持存活的功能

设立Ssl通信

然后就建立了通信然后就进行远控,功能就是一个远控的rat,相关操作,有上传下载文件,更新系统版本等。下面就是相关的部分代码

3 分析总结
3.1总结
此样本是一个远控,大致流程是启动之后,开启计划任务,设置注册表,将自己伪装成TrustedInstaller.exe系统更新程序,然后开机自启,然后启动自身,在机器登录时候启动自身,然后发送被控主机信息给C2,然后建立通信ssl加密,做一些传输文件等的远控操作,经过调研是个quasarrat远控。
3.2关于清除
样本可以手动进行清除,首先清除计划任务:将systemcheck计划任务清除"/create/tn ""SystemCheck"" /sc ONLOGON /tr""C:\Users\yrq\Desktop\12346"" /rl HIGHEST /f"另外还有注册表中表项:reg_key:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\SystemCheckreg_value:"C:\Windows\system32\TrustedInstaller\TrustedInstaller.exe"需要将其清除3.3遇到的问题
在分析中遇到的最大问题就是关于动态调试远控木马通信模块,本来想着改代码跳过去,后来发现不行,目前想到的是只能模拟发包之类的,有待实验。
4 IoCs
4.1 文件hash
MD5: 2A51F1F2CFA2A4A3A844C901D34B8025
SHA1: 039BB9A1EFA83F4DA5A2024F4A77F7F2FFB6F7DD
4.2 ip
51.89.185.242


yangruiqi 发表于 2020-5-7 17:35

大白痴先生 发表于 2020-5-7 14:24
请问一下楼主,随机基址是怎么去掉呢?

就直接用010editor之类编辑工具的把pe文件的"IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE"属性的值修改成"0"

yangruiqi 发表于 2020-5-7 17:36

hhxx26 发表于 2020-5-7 15:57
请问一下楼主,随机基址是怎么去掉呢?

就直接用010editor之类编辑工具的把pe文件的"IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE"属性的值修改成"0"

dxaw2458 发表于 2020-5-6 21:00

虽然不懂感觉挺牛的

hackgsl 发表于 2020-5-6 21:12

过来学习。

isver2 发表于 2020-5-6 21:56

留个记号好看看

liminglu 发表于 2020-5-7 09:13

学学吧,锻炼一下

Mr_Y 发表于 2020-5-7 14:22

感觉大神的操作很牛逼

大白痴先生 发表于 2020-5-7 14:24

请问一下楼主,随机基址是怎么去掉呢?

余佳卓 发表于 2020-5-7 14:48

不明觉厉

18036948381 发表于 2020-5-7 15:22

66666666666666666666666666666

hhxx26 发表于 2020-5-7 15:55

过来学习。
页: [1] 2 3
查看完整版本: 一个.net远控样本自启部分分析