吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 19888|回复: 27
收起左侧

[PC样本分析] Sality病毒逆向分析

  [复制链接]
晨雾 发表于 2016-9-15 12:40
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 晨雾 于 2016-9-15 13:17 编辑

作者:晨雾                                                           
报告更新日期:2016-9-14               
样本类型:感染型病毒                                             
样本文件大小:416KB
释放文件大小:348KB
样本文件MD5 校验值:e100c2c3f93cabf695256362e7de4443                             
样本文件SHA1 校验值:b8b6dbf8974f55557715ce160cb89717c9d53d63                           
壳信息:FSG v1.10 (PEID查壳结果)
简介:
此病毒属于Sality病毒变种的一员,运行后会在Temp文件夹下释放子程序,
同时会禁用UAC,注册表,任务管理器等,并且会通过共享文件来感染网路主机...
文件系统变化
在Temp目录下创建同名子程序,虽然子程序同母程序名称相同但是大小不一样,原文件416KB,
子文件大小348KB,同时还会在windows目录下添加系统配置项(此项目前还不理解是什么作用)。
1.png   
2.png
3.png

注册表变化
通过修改注册表键值,该病毒禁用了任务管理器、册表编辑器、UAC和windows更新,
同时把自身添加到防火墙白名单。
4.png   
5.png
6.png    
7.png
详细分析
以上是病毒运行后的效果,可以看出该病毒为了自身能够长期存在于操作系统中做了
大量的准备,接下来详细分析病毒的行为,包括脱壳前后对比分析等。首先对病毒母体
查壳会发现是FSG壳,心中一阵窃喜,以为捡到软柿子可以捏一下,实际还是证明
我too young!,预知后事,接下来请看...
8.png
好!脱壳开始,直接用ESP定律迅速找到OEP,此处简单不详细叙述
(如有朋友对ESP定律脱壳不熟悉请看论坛相关教程,推荐ximo脱壳基础教程),
可以看到OEP处安装SHE和调用GetVersion这种很明显的VC++入口特征。
9.png
用LordPE dump内存(注意,这里用OD自带插件dump内存会出错,大家可以试一试),
10.png
可以看到似乎已经脱壳成功,PEID已经识别为VC++编译器,但是双击运行没有任何反应,
估计是没有修复IAT,于是修复IAT,利用import工具AutoSearch功能扫描IAT,然后点击
ShowInvalid可以看到有两个API没有正确的地址,这里不管它,直接右键Cut thunks,
然后修复刚才dump的文件dumped.exe,
完了会自动生成dumped_.exe文件。
11.png
现在运行dumped_.exe文件,发现之前的许多的注册表设置操作都不见了,而只留下了一条
12.png
这里猜想可能是IAT修复时,剪掉的那两个API出了问题,于是拿脱壳前后IAT表作对比
13.png    
通过对比发现,在脱壳之后的IAT中原来的CreateFile和GetProcAddress这两个API不见了,
所以在脱壳后运行不完整,注册表的功能没有实现。
现在用OD来跟一下看原来CreateFile这个
位置也就是现在459F5A这里到底什么情况,在459F5A处下硬件访问断点,断下之后可以看到
该函数出只调用了一个子函数459E15然后再还原原来的CreateFile。

14.png
再来看看459E15函数情况,可以看到它在验证母体程序存在之后就复制母体文件到temp目录,
然后直接执行母体程序
15.png

16.png
17.png
好的,到这里由CreateFile变成的459F5A算是分析完毕,总结流程就是 调用子程序复制母体
程序到Temp目录并执行母体程序,然后还原CreateFile,整个流程不算复杂。
OK,再回到之前
所说的两个不见的另外一个API-GetProcAddress(458E4C处),分析流程和上面一样如法炮制,
这里不再赘述,流程为先还原GetProcAddress,然后调用了几次上面分析的子函数459E15来创建
Temp文件夹下子程序,最后执行病毒程序。
脱壳后的程序反编译分析
由于最终没能完全脱壳,导致部分功能受损,主要是使设置注册表部分功能丢失,先看看整个病毒程序流程如下
18.png

不得不说IDA的反编译插件很好用,不过内部函数调用流程还是很长,我大概分析了部分函数,
并且做好的注释,如下所示,由于现在已经很晚了,脑子发晕,就不在继续分析解密的字符串了
19.png

从一个子函数可以看到该病毒已经比较老了,会判断当前系统是否XP系统,再决定以何种方式执行程序

20.png

小结:
写到这里,总体流程已经明朗,该病毒首先通过设置注册表对自身做大量的保护工作,
然后根据不同系统版本隐藏运行,具有较强的生存能力和隐藏性,因后面经过查询发现此病毒与Sality病毒
特征非常相似,姑且认为它们来自同一体系。由于本小白功力尚浅,此病毒已经断断续续花了几天时间,
然而最终还是没能完整脱壳,只待功力精进之时再与之搏杀,期间网友hown给予多次帮助,这里对他表示感谢,
OK最后会附件相关样本和分析IDB文件,有兴趣的朋友如果能完整脱壳,请一定不吝赐教,帮助我进步,这里先行谢过!
样本百度网盘链接   https://pan.baidu.com/s/1o80ahT4    密码: pmpv        

免费评分

参与人数 5热心值 +5 收起 理由
珍惜幸福涙 + 1 用心讨论,共获提升!
菜鸟也想飞 + 1 谢谢@Thanks!
Hmily + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
610100 + 1 谢谢老师!
心断空 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

冰绿茶 发表于 2016-9-15 13:08
真不错,感谢楼主分享经验                                                                                                      
 楼主| 晨雾 发表于 2016-9-15 13:14
冰绿茶 发表于 2016-9-15 13:08
真不错,感谢楼主分享经验                                                                             ...

见笑了,第一次在吾爱发帖,格式都调了半天
louxh 发表于 2016-9-15 21:36
 楼主| 晨雾 发表于 2016-9-15 21:58
louxh 发表于 2016-9-15 21:36
喜欢这种详细分析的

多谢支持,共同学习
Hmily 发表于 2016-9-18 18:05
Sality好像是多态的,难度应该比较大,我看了下文章,fsg那修复iat不能自动获取,要收到填写iat的大小,这个是要注意的,剪切那应该没有问题。
A-zhu 发表于 2016-9-18 22:50
支持。。
tzqq7961 发表于 2016-9-19 20:16
感觉以前见过的样子。。。能看出来写程序的人挺用心的。。。近年出现的代码里好像都没有管自动更新的部分了
remtf 发表于 2016-9-20 20:55
66666666666
xiaodouble 发表于 2016-9-21 06:35 来自手机
看一看 瞧一瞧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 19:17

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表