记一次带有FSG壳的熊猫烧香病毒分析过程

    • 样本概况
      • 样本信息
      • 测试环境以及工具
      • 分析目标
    • 具体行为分析
      • 0利用查壳工具查看
      • 1.利用PChunter
      • 2.手工清理
      • 3.利用火绒剑进行主要行为分析
        • 恶意行为的一个简要小结
      • 4.脱壳
      • 病毒恶意行为分析(OD结合IDA双剑合璧)
        • 知识点扩展1:
          • 知识点扩展1小结:
        • 知识点扩展2
        • 知识点扩展3
        • 知识点扩展4(编辑函数标签:)
        • 知识点扩展5(有关seh链的:)
        • 知识点扩展6(Delphi语言中传参)
    • 恶意代码分析
    • 专杀工具的编写
    • 总结

样本概况

样本信息

文件:spo0lsv.exe
大小:3001字节
MD5:512301C535C88255C9A252FDF70B7A03
SHA1:CA3A1070CFF311C0BA40AB60A8FE3266CFEFE870
CRC32:E334747C
病毒行为:自我复制,感染可执行文件,修改网页文件内容,修改注册表,删除备份文件,关闭杀毒软件窗口,服务与进程

测试环境以及工具

测试环境:win7 32bit
分析工具:OD,IDA,火绒剑,PChunter

分析目标

分析病毒行为与程序具体执行流程;

具体行为分析

0利用查壳工具查看

发现其加了FSG壳
记一次带有FSG壳的熊猫烧香病毒分析过程_第1张图片

1.利用PChunter

打开Pchunter之后发现可疑进程:
记一次带有FSG壳的熊猫烧香病毒分析过程_第2张图片
查看启动项那一项:
记一次带有FSG壳的熊猫烧香病毒分析过程_第3张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第4张图片
查看驱动,服务等可疑项
未发现异常

查看网络连接:
发现可疑进程的网络连接:
记一次带有FSG壳的熊猫烧香病毒分析过程_第5张图片
使用抓包工具(WSExplorer)查看可疑流量:
记一次带有FSG壳的熊猫烧香病毒分析过程_第6张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第7张图片
提取样本(利用hash工具)
将路径下文件提取到压缩到本地,并修改扩展名为vir
记一次带有FSG壳的熊猫烧香病毒分析过程_第8张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第9张图片

2.手工清理

a.结束可疑进程 spo01sv.exe(在PChunter中的spo01sv.exe右击—>结束进程)
b.删除可疑进程启动项:如下图
记一次带有FSG壳的熊猫烧香病毒分析过程_第10张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第11张图片

3.利用火绒剑进行主要行为分析

a.先暂时只勾选下面这两个动作,其他都不勾选:
记一次带有FSG壳的熊猫烧香病毒分析过程_第12张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第13张图片
点击确定:
记一次带有FSG壳的熊猫烧香病毒分析过程_第14张图片

发现生成了一个病毒exe:
记一次带有FSG壳的熊猫烧香病毒分析过程_第15张图片
注册表操作:
记一次带有FSG壳的熊猫烧香病毒分析过程_第16张图片

记一次带有FSG壳的熊猫烧香病毒分析过程_第17张图片
点击确定之后:
设置启动项:
记一次带有FSG壳的熊猫烧香病毒分析过程_第18张图片
进程操作:
记一次带有FSG壳的熊猫烧香病毒分析过程_第19张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第20张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第21张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第22张图片
网络操作:
记一次带有FSG壳的熊猫烧香病毒分析过程_第23张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第24张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第25张图片
实用技巧:利用火绒剑中的动作详细信息中的调用栈可以定位到相关动作信息
记一次带有FSG壳的熊猫烧香病毒分析过程_第26张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第27张图片
其他行为:
这里写图片描述
记一次带有FSG壳的熊猫烧香病毒分析过程_第28张图片
执行监控:
记一次带有FSG壳的熊猫烧香病毒分析过程_第29张图片
执行CMD命令,删除网络共享!
记一次带有FSG壳的熊猫烧香病毒分析过程_第30张图片

恶意行为的一个简要小结

1.自我复制样本到c盘,c/Windows/driver/目录下面
启动c/Windows/driver/spo01sv.exe(样本)
记一次带有FSG壳的熊猫烧香病毒分析过程_第31张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第32张图片
2.在每一个目录下面创建了Desktop_.ini
记一次带有FSG壳的熊猫烧香病毒分析过程_第33张图片

4.脱壳

手脱FSG2.0过程:
运行至下图中位置:
记一次带有FSG壳的熊猫烧香病毒分析过程_第34张图片

按F9运行:
记一次带有FSG壳的熊猫烧香病毒分析过程_第35张图片
EDI数据窗口中跟随:
记一次带有FSG壳的熊猫烧香病毒分析过程_第36张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第37张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第38张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第39张图片
按F9继续:
记一次带有FSG壳的熊猫烧香病毒分析过程_第40张图片
继续F9(经过若干次的F9以后):IAT修复完成
记一次带有FSG壳的熊猫烧香病毒分析过程_第41张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第42张图片
同时将IAT中的7FFFFFFF改成00000000
记一次带有FSG壳的熊猫烧香病毒分析过程_第43张图片
下面按F7跳至OEP:
记一次带有FSG壳的熊猫烧香病毒分析过程_第44张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第45张图片
下面DUMP文件:(D278为默认,一般不会错,查看此时OEP:0040D278)
记一次带有FSG壳的熊猫烧香病毒分析过程_第46张图片

保存为1.exe
记一次带有FSG壳的熊猫烧香病毒分析过程_第47张图片
修复IAT:
记一次带有FSG壳的熊猫烧香病毒分析过程_第48张图片
D278为上面在OD里面dump时候的oep的值
记一次带有FSG壳的熊猫烧香病毒分析过程_第49张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第50张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第51张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第52张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第53张图片
选择1.exe
1.exe是从OD里面dump下来的
记一次带有FSG壳的熊猫烧香病毒分析过程_第54张图片
1_.exe是自己生成的
记一次带有FSG壳的熊猫烧香病毒分析过程_第55张图片

脱完壳以后进行深度扫描:(发现其语言为Delphi6.0-7.0)
记一次带有FSG壳的熊猫烧香病毒分析过程_第56张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第57张图片
至此,脱壳完成!

病毒恶意行为分析(OD结合IDA双剑合璧)

1.将dump修复之后的文件使用IDA打开;
按shift+F5:
记一次带有FSG壳的熊猫烧香病毒分析过程_第58张图片
2.在IDA中用Shift+F5打开签名窗口:
右键加入delphi的签名库:
记一次带有FSG壳的熊猫烧香病毒分析过程_第59张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第60张图片
按快捷键:ctrl+F搜索delphi:
记一次带有FSG壳的熊猫烧香病毒分析过程_第61张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第62张图片
IDA与OD双剑合璧
OEP处的对比:
记一次带有FSG壳的熊猫烧香病毒分析过程_第63张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第64张图片

进入到函数里面,堆栈中跟随:
记一次带有FSG壳的熊猫烧香病毒分析过程_第65张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第66张图片

知识点扩展1:

记一次带有FSG壳的熊猫烧香病毒分析过程_第67张图片
借此机会,讲讲交叉引用与导入表的联合应用:
双击此API:
记一次带有FSG壳的熊猫烧香病毒分析过程_第68张图片
按Ctrl+x:
记一次带有FSG壳的熊猫烧香病毒分析过程_第69张图片
双击下面框中的API,就会跳往调用RegCreateKeyExA这个API的函数
记一次带有FSG壳的熊猫烧香病毒分析过程_第70张图片
可以发现RegCreateKeyExA这个API是在上面这个框里面的这个函数(j_RegCreateKeyExA)中的,下面对这个函(j_RegCreateKeyExA)数进行交叉引用
记一次带有FSG壳的熊猫烧香病毒分析过程_第71张图片
Ctrl+x,交叉引用:
记一次带有FSG壳的熊猫烧香病毒分析过程_第72张图片
来到了上一层函数:
记一次带有FSG壳的熊猫烧香病毒分析过程_第73张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第74张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第75张图片
来到了上一层:
记一次带有FSG壳的熊猫烧香病毒分析过程_第76张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第77张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第78张图片
跳往上一层:

记一次带有FSG壳的熊猫烧香病毒分析过程_第79张图片
再次跳往上一层,交叉引用:
这里就是接近OEP的地方了;

知识点扩展1小结:

结合导入表,查看关键API,利用交叉引用这个强大的功能可以直捣黄龙,追根朔源!

知识点扩展2

一般而言,黑色表示非系统函数,上面的天蓝色表示系统函数,
记一次带有FSG壳的熊猫烧香病毒分析过程_第80张图片

知识点扩展3

OD和IDA配合的又一个例子:
在OD里面不知道这个函数的功能,想要知道它大概的功能,可以这么做:
利用这个函数在OD中的地址,在IDA里面搜索:
显而易见,这个函数就是一个字符串拼接库函数;
记一次带有FSG壳的熊猫烧香病毒分析过程_第81张图片
说明:如果OD和IDA加载基址不一样的话可以按照下面操作调整:
记一次带有FSG壳的熊猫烧香病毒分析过程_第82张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第83张图片

知识点扩展4(编辑函数标签:)

记一次带有FSG壳的熊猫烧香病毒分析过程_第84张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第85张图片

知识点扩展5(有关seh链的:)

.seh链的:
栈顶是指向下一个seh的地址,栈顶的下一行是当前处理异常的函数所在地址,如果当前处理不了,就发给下一个seh:
记一次带有FSG壳的熊猫烧香病毒分析过程_第86张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第87张图片
依次类推,直到seh的链尾
记一次带有FSG壳的熊猫烧香病毒分析过程_第88张图片

知识点扩展6(Delphi语言中传参)

Delphi语言中是用寄存器传参的:
记一次带有FSG壳的熊猫烧香病毒分析过程_第89张图片

恶意代码分析

分析思路:
从OEP处开始的代码:
猜测sub_405250的依据:
调用的第一个sub_405250函数,其参数有”xboy”,后面另一次调用之中,参数有字符串”whboy”,并且在调用sub_405250函数之后,又调用strcmp函数,之后又有判断返回值的代码,如果不对,则退出进程
记一次带有FSG壳的熊猫烧香病毒分析过程_第90张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第91张图片
动态跟踪sub_405250函数:
记一次带有FSG壳的熊猫烧香病毒分析过程_第92张图片
观察LstrArrayClr函数;

记一次带有FSG壳的熊猫烧香病毒分析过程_第93张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第94张图片
可以发现调用当前代码的函数(其实就是主函数):
记一次带有FSG壳的熊猫烧香病毒分析过程_第95张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第96张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第97张图片
继续跟,来到主函数线程中:

记一次带有FSG壳的熊猫烧香病毒分析过程_第98张图片
寻找定位字符串!(IDA与OD结合)
记一次带有FSG壳的熊猫烧香病毒分析过程_第99张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第100张图片

当然也可以在OD中进行定位:
记一次带有FSG壳的熊猫烧香病毒分析过程_第101张图片

第一个恶意代码函数分析:

v43 = &savedregs;
 v42 = &loc_408781;
 v41 = __readfsdword(0);
 __writefsdword(0, (unsigned int)&v41); // Write memory to a location specified by an offset relative to the begining of the fs segment,这里0为偏移量,后面一个参数为要写入的数据

System::ParamStr(0, &v71);//就是在exe文件后面可以跟参数,paramstr 获取的就是exe文件后面跟参数。
如有可执行文件project1.exe 在运行中输入e:\project1.exe 123 456 789 
那么paramstr(1)='123' paramstr(2)='456' paramstr(3)='789',这里paramstr函数括号里面应该只有一个函数,它这里伪代码可能有点问题,
unknown_libname_123(v71, &v72);

重点部分1:
复制自身到系统驱动目录下面,然后执行拷贝的程序
Teminatevirusprocess这个函数的猜测,是因为在IDA中进入到这个函数之后发现了teminatevirusProcess这个关键API,至于为什么为是结束的是病毒,根据这个函数括号里面的关键字符串来猜测的,结束掉病毒进程是为了让自己隐藏起来不让杀毒软件找到
记一次带有FSG壳的熊猫烧香病毒分析过程_第102张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第103张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第104张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第105张图片

感染文件部分:
记一次带有FSG壳的熊猫烧香病毒分析过程_第106张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第107张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第108张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第109张图片

感染函数:

记一次带有FSG壳的熊猫烧香病毒分析过程_第110张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第111张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第112张图片
可以发现,病毒感染了C:\program Files 目录下的exe,过程如下:
1读取原文件至内存
2.复制病毒至感染路径,覆盖原文件
3.在感染之后的exe上追加原标识
4.在感染之后的exe上追加感染标识
如下:Whboy+原文件名+随机数
这里写图片描述
记一次带有FSG壳的熊猫烧香病毒分析过程_第113张图片

第二个恶意代码函数里面:
记一次带有FSG壳的熊猫烧香病毒分析过程_第114张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第115张图片

进入回掉函数:
遍历文件目录行为:
记一次带有FSG壳的熊猫烧香病毒分析过程_第116张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第117张图片
这里搜索机器上的可用分区,然后感染分区中的脚本文件,但是除了上图中的”WINDOWS”,”WINNT”,”system32”等文件夹。
记一次带有FSG壳的熊猫烧香病毒分析过程_第118张图片

记一次带有FSG壳的熊猫烧香病毒分析过程_第119张图片
小技巧,在IDA中:
将伪代码识别出来的特征API在IDA view视图中快速定位出来alt+t键
记一次带有FSG壳的熊猫烧香病毒分析过程_第120张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第121张图片
回到主线:
感染后病毒在相应的文件夹中写上已感染标记文件Desktop_.ini。

记一次带有FSG壳的熊猫烧香病毒分析过程_第122张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第123张图片
如果文件是GHO(备份),则将其删除
即:病毒会删除机器中GHO文件,使得中毒后无法使用ghost还原
记一次带有FSG壳的熊猫烧香病毒分析过程_第124张图片

进入包含SetTimer这个API的函数:
记一次带有FSG壳的熊猫烧香病毒分析过程_第125张图片

进入SetTimer的回掉函数:
1.搜索字符串进行定位:

记一次带有FSG壳的熊猫烧香病毒分析过程_第126张图片

ALT+T进行字符串搜索:
记一次带有FSG壳的熊猫烧香病毒分析过程_第127张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第128张图片

设置定时器,将病毒自身复制到各分区根目录下命名为setup.exe,并生成autorun.inf文件
记一次带有FSG壳的熊猫烧香病毒分析过程_第129张图片

创建文件并向文件里面添加数据!
记一次带有FSG壳的熊猫烧香病毒分析过程_第130张图片
连接本地网络
记一次带有FSG壳的熊猫烧香病毒分析过程_第131张图片

执行恶意代码的第三个函数:
这个函数中调用了6个定时器:
记一次带有FSG壳的熊猫烧香病毒分析过程_第132张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第133张图片

进入第一个回掉函数sub_40CEE4:
OpenProcessToken获取访问令牌;
利用LookupPrivilegeValueA可以获取本地唯一标识符(LUID)
OpenProcessToke和LookupPrivilegeValueA获取的信息被AdjustTokenPrivileges利用,进行提权:
记一次带有FSG壳的熊猫烧香病毒分析过程_第134张图片

Ctrl+x进行交叉引用
记一次带有FSG壳的熊猫烧香病毒分析过程_第135张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第136张图片

检查是否有杀毒软件,如果有,则让其关闭
记一次带有FSG壳的熊猫烧香病毒分析过程_第137张图片

与此同时,结束以下进程:
记一次带有FSG壳的熊猫烧香病毒分析过程_第138张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第139张图片
添加设置注册表选项:
记一次带有FSG壳的熊猫烧香病毒分析过程_第140张图片
以上为第一个回掉函数;
下面看第二个回掉函数:
使用InternetOpen初始化WinINet函数,然后使用InternetOpenUrl打开指定链接,最后用InterReadFile读取到网页源代码,下载恶意代码:
记一次带有FSG壳的熊猫烧香病毒分析过程_第141张图片
创建里两个回掉函数,估计不会干什么好事:
记一次带有FSG壳的熊猫烧香病毒分析过程_第142张图片

执行cmd命令:
这里写图片描述
利用cmd命令删除共享文件
怎么样利用字符串定位函数:
记一次带有FSG壳的熊猫烧香病毒分析过程_第143张图片
Alt+B键来定位:
记一次带有FSG壳的熊猫烧香病毒分析过程_第144张图片
删除杀毒软件启动项,关闭杀软服务:
记一次带有FSG壳的熊猫烧香病毒分析过程_第145张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第146张图片
打开解密之后的网页:
先解密然后从网址下载恶意代码:
记一次带有FSG壳的熊猫烧香病毒分析过程_第147张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第148张图片
记一次带有FSG壳的熊猫烧香病毒分析过程_第149张图片
至此,分析基本结束!

专杀工具的编写

参考我写的这篇博客:
熊猫烧香专杀工具编写

总结

最后以一张流程图来总结一下熊猫烧香的过程:
这里写图片描述
(注:图中清楚应为 清除!)

你可能感兴趣的:(virus相关)