小小的记录一下~~
分析对象
动态分析 – 测试电脑环境
测试电脑运行环境:Win10_64位机
木马分析工具:火绒剑5.0.74,dnSpy
木马动态分析
运行时提示加载失败,该文件未释放任何文件,且在注册表,计划任务,服务项,用户组内未发现恶意内容存在。
木马静态分析
将木马拖入DIE中进行检查,发现其为32位.Net木马程序,且不存在加壳保护。时间戳为2058-09-27,时间戳混乱。
将文件拖入dnSpy中进行反编译,检查其代码。其程序入口处为BingNav.Program.Main,进入程序入口处继续分析,发现其实际运行函数为BingNav()。
BingNav()函数中只有两步代码,第一行负责初始化一个Windows窗口,即动态分析中跳出的Windows窗口,第二行则是进入功能函数BingNavWorkJob(),继续跟进该函数。
该函数中尝试执行实际的功能函数BingNavExcuteBingNav(),如果执行中发生了错误,则执行函数BingNavShowErrMesgBingNav(),该函数主要负责返回错误提示信息窗口。
BingNavExcuteBingNav()函数中则实现了该程序的主要功能逻辑,函数较为复杂且部分敏感字符串是被AES加密后再以字节数据格式写在程序中,以下是对该函数的功能分析:
- 获取当前进程并匹配目标进程(chyed.exe,qq.exe,tim.exe):该函数首先使用CreateToolhelp32Snapshot创建当前计算机中系统进程的快照,并通过Process32First和Process32Next遍历每个进程。随后使用SelfDec函数解密字节数组,并进行匹配。
SelfDec函数内定义了一个AES-ECB模式的解密方法,接收加密的字节数组,并解密为UTF8编码的字符串。在本地实现该解密函数,其三个字节数组的实际内容为:
bytes1 = chyed.exe;
bytes2 = qq.exe(QQ进程);
bytes3 = tim.exe(QQ tim进程)
说明该程序匹配的是这三个与QQ相关的进程,获取到当前电脑存在匹配进程后进入后续操作。
- 读取匹配进程的内存数据,搜索并提取特定数据字符串:该函数在匹配到目标进程后,继续获取此进程的内存数据,随后在该内存数据中使用BingNavGetIDXByComBingNav函数进行匹配,被匹配的字节数组为array。
BingNavGetIDXByComBingNav函数负责在传入的内存数据中查找另一个字节序列的首次出现位置,并返回匹配序列末尾的索引,完成寻找特定的数据块这一行为。
array字节数组并未进行加密操作,其字节数据转为UTF8字符串为:msg.fcg?clientuin=,pattern字节数组解密后是一串正则表达式:clientuin=[0-9]*,即匹配以字符串“clientuin=“开始的一串阿拉伯数字字符串,这些字符串可能与劫持QQNT、TIM、QQ客户端的QQClientKeys/QQKey相关,相关文章:
https://www.cnblogs.com/RainbowTechnology/p/17947778
https://cloud.tencent.com/developer/article/2150324
根据代码和文章可得,此步主要行为是遍历进程的内存数据,并在内存数据中查找字符串msg.fcg?clientuin=,最后获取到的内容为当前受害者电脑中的QQ号码。
接下来函数再次进行匹配,进行的操作与上一步匹配类似,只是第一次匹配的字节数组换为bingNavMatchBingNav,解析出的16进制字符串为“70000000700000000001“,匹配到该16进制字符串后继续获取该字符串后1024字节的数据,并在该数据内搜索被解密的bytes4字节数组,该字节数组实际内容为“700000007000000000016”,在网上搜索未发现有关内容,可能和QQ进程的cookie或key值有关。最后程序在匹配到的结果中提取从第16个字符开始的到第224个字符,可能是存在其固定的数据格式。
如果两个匹配都匹配到目标数据后,函数则将提取的信息添加到列表中,并构造一个特定格式的字符串(10@{第一个匹配的QQ号码数据}@{第二个匹配的16进制字符串数据)),然后终止循环。
- 构造和发送HTTP请求到固定的URL,并解析响应包获取客户段密钥:此部分中函数使用了多个加密的字节数组(从byte5到byte14),这里先列出这些字节数组对应的明文内容:
bytes5 = https://localhost.ptlogin2.qq.com:4301/pt_get_st?callback=
bytes6 = https://localhost.ptlogin2.qq.com:4301/pt_get_uins?callback=
bytes7 = https://xui.ptlogin2.qq.com
bytes8 = pt_local_token=
bytes9 = &pt_local_tk=
bytes10 = "uin" 标签:QQ,匹配,函数,数组,盗号,木马,字符串,字节 From: https://www.cnblogs.com/cateraser/p/18308239