-
-
[原创][原创]熊猫烧香分析(二)
-
发表于:
2022-7-21 01:15
5742
-
博客:412K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6I4N6$3g2J5y4e0V1%4i4K6u0W2k6$3W2@1K9s2g2T1i4K6u0W2K9h3!0Q4x3V1j5`.
sub_40C054(第二功能)

这篇文章分析第二大功能,这里的分析会涉及到多次OD多线程调试
sub_40A2A4

进入sub_40A2A4
这里创建线程,该线程是地址为40A180

这两个upper分别将盘符和‘a’改成大写

Repne scasb 查找‘A’在硬盘名字符串中的位置

接下来重复的步骤,变换大小写,并查找‘b’在字符串中的位置,这里的offset dword_40A294就是字符‘b’
create_path_of_ini这个函数在第一个功能中构造ini的路径
这里构造分区的根目录

顺着保存C盘目录的内存往下翻会发现读取很多隐藏文件的名称,这就是接下来病毒感染的征兆
sub_4091DC

sub_4077c0

第一个call判读参数是否有值
FindFirstFilaA是delphi的FindFirst
获取C:*.的文件属性
保存在第二个参数Attr中
结果与Sub_4077c0的第一个参数保存的内容一样
*loc_409277

第一个cmp对获取到的文件属性做检查,判断是否是faDirectory
接下来是一段冗长的分别对获取到的文件夹和特殊文件名大写变换并比较的过程,就像图中
分别检测WINDOWS, WINNT, system32, Documents and Settings等
如果找到感染文件那就不跳转,并做标记,否则在黄色处跳转执行感染程序,这部分在后边分析,留意标号地址

随后是对ini文件的操作
通过API函数获得当前时间2022.7.1
API函数后的两个函数分别将16进制的时间转换成ASCII码

Strcmp函数通过对比时间判断文件是否被感染
时间相同那么被感染
随后Sub_4050f0会在分区目录下创建txt文件做记录

检查ghost文件,并DeletFilea删除系统镜像,防止还原系统

如果不是ghost文件那么比对是不是htm文件
之后同样的重复操作,对html,asp,php,jsp,aspx等文件查找并感染
sub_407AF4

sub_407AF4写入感染内容
此处手动修改内存,让病毒加载s_002.html文件
读取html文件,同过两个字符串解码出一个html代码的内联框架,包含一个网址
095K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3q4U0z5o6k6Q4x3X3g2U0L8W2)9J5c8U0R3^5i4K6u0r3K9h3&6V1k6i4S2Q4x3X3g2Z5N6r3@1`.
跟着最后的jmp向下分析

sub_40C054

此函数总体来说没什么分析难点,加载一个回调函数,回调函数中先寻找setup.exe,如果没有直接退出,否则构造.inf文件路径
copyfile写入setup.exe自启动的命令,并修改属性,写入setup.exe自启动的命令
sub_40B7AC

图中sub_40b76c是网络感染的功能线程,此函数中重要的sub_40B544

网络连接成功后弱口令匹配传输数据
总结
三大功能的第二个就分析完了,这部分是感染程序,多线程配合回调函数确实不太好分析
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课