-
-
[原创]熊猫烧香分析(一)
-
发表于: 2022-7-11 07:26 5401
-
博客:https://qwer597.github.io/
行为分析
接下来对spoclsv.exe的行为分析发现大量对注册表run(自启动)的修改
其中包括google,macfee和windows等杀毒自启动项,甚至包括不常见的查毒程序
在注册表中创建隐藏项,并修改自己的自启动项
此处出现大量对tcp修改操作,验证了前面在网络行为监控中发现很多向外发送的信息的推断
创建inf自启动文件,和ini文件(类似注册表)
程序分析
在sub_403c98之前的这部分是delphi的初始化部分
Sub_403C98
函数的功能是生成字符串,被调用两次,返回值分别是两个不同的地址,并分别保存在第一个参数中,此图为两个地址对应的两个字符串
Sub_405360
Sub_4040BC只是对内存做lock锁定
其他函数都不重要仅仅是变量的处理,接下来的do-while循环是重点
将参数++戊+缓"叛聋+肛+删"蚊苜+兆++
依次与xboy中的一个字母xor解码
运行到紫色框位置时会出现一个地址00AE0078
这是setup.00403E2C函数的返回值
Set.00403ed4将“++戊+缓“叛聋+肛+删”蚊苜+兆++”的异或解密结果存在地址00AE0078
Sub_404018
此函数用来验证上边函数解码结果和武汉男生的字符串是否一样
我们可以在OD中看到两个字符串一样
这三个函数是病毒的三个主要功能
复制,传染文件并运行
感染其他文件
设置注册表,阻止杀毒软件查杀
这三大功能在前面的行为分析中都能看到
Sub_408024
Sub_40277C
通过GetModuleFileName获得本体路径
Sub_405684
此函数返回值是一个地址保存获取样本所在文件路径
Sub_403ED4
此函数拼接一个新的ini文件路径路径
Sub_4057A4
通过FindFirstFileA查找Desktop.ini文件,如果找到ini文件跳转,并结束函数
否则继续创建并写入内容
接下来程序要找到ini文件,通过SetFileAttributes更改ini文件属性0x80
Sub_403ECC
此函数的eax参数是一个pe文件首地址,delphi下字符串起始位置-4=字符串长度
此函数返回值也是EC00
Sub_40532c
转化参数字符为大写
判断感染
此处的strcmp函数是sub_404018,通过比较当前本体目录和spoclsv的目录判断自身是不是感染程序,此处在后边分析
Sub_4054bc
Eax参数保存地址中存放系统目录的路径
Sub_403f8c
此函数的两个参数,返回值保存spoclsv的路径
此函数将系统路径与两个参数拼接成新路径
并在下个函数转化为大写
Sub_40416C
参数eax=PE文件首地址,
Ebx=PE文件长度
此函数结束后,PE文件长度从EC00编成EBFF
Sub_4060D4
第一部分三个函数查明spcolsv.exe是否运行,下边有一个无条件跳转
无条件跳转到此位置,判断spcolsv是否存在,两种情况下都需要执行closeHandle函数关闭进程
虚线以上是不存在进程情况下的处理
接下来就出现很多重复函数,总体来说是构造spoclsv.exe的目录并创建文件
SetFileAttributes修改基本属性
并通过CopyFile填充文件,实现传染的目的
WinExec函数执行spoclsv.exe后推出
判断感染判断
接前文判断本体的跳转接着分析
跳转后需要对PE文件(前文出现的pe)的内容进行删改,其实也是样本自己
跟着jmp往下跳来到loc_4085D3
var_8保存和标记对比后的结果
总结
三大功能的第一个就分析完了,唉!样本分析还是要有耐心,如有不对的地方还请路过的大牛指点。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
- [求助]confuser手动脱壳缺少模块 4552
- Net脱壳修复失败 3781
- [求助]dnspy修改代码后不能保存 4617
- CreateProcess启动指定程序不能保持运行 3983
- [求助]QT缺失<QtWin>的头文件,如何解决 5262