本文为看雪论优秀文章
看雪论坛作者ID:WPeace
1.1 样本信息
所属家族:Trojan-DDoS.Win32.Macri.atk修改时间:2007年1月22日, 16:48:04b5752252b34a8af470db1830cc48504daec38add0aac1bc59bfaaf1e43dbdab10e13db18病毒行为:连接恶意网址下载代码远程执行、对lpk.dll进行劫持1.2 测试环境及工具
测试工具:火绒剑、PCHunter、IDA、OD。1.3 分析目标
找到恶意代码并且分析病毒是怎样利用代码实现恶意行为的。2.1 主要行为
2.1.1 恶意行为分析
使用火绒剑对病毒的行为进行分析,可以归为以下四类:对文件的操作、对注册表的操作、对进程的操作、对网络的操作。① 创建fadbwg.exe文件(之后经过分析此文件名是随机的六个字母),并写入数据:③ 创建hra33.dll文件和临时文件,并写入数据:在注册表中创建Ghijkl Nopqrstu Wxy项;对注册表有删除操作:① 创建了进程,经过排查发现创建的都是cmd、find、rar的进程:① 发送网络数据包,经过查看数据包流量猜测是发送了计算机的相关信息:2.2 恶意代码分析
2.2.1 分析是否有壳,如果有壳则进行脱壳
① 首先使用PEID进行分析,可以得知此病毒是UPX壳:② 使用OD使用esp定律进行脱壳,脱壳后再使用PEID进行分析,可以得知此程序是VC6.0编写的:2.2.2 恶意程序的代码分析片段
一、首先打开注册表,判断是否打开成功
① 打开注册表的函数OpenRegFunc如图2-1:二、打开注册表失败
1. 首先获取各种API地址,如图2-2:
2. 生成随机的六个字母,如图2-3:
3. 将病毒拷贝到C:\Windows\,以刚才生成的随机字母命名,如图2-4:4. 创建服务Ghijkl Nopqrstu Wxy,路径为随机字母.exe的病毒,如图2-5: 5.更改服务的可选配置参数,如图2-6:
6.使用StartService运行病毒的服务,如图2-7:
7.修改病毒的注册表添加Description项,值为"Ghijklmn Pqrstuvwx Abcdefg Ijklmnop Rst",如图2-8:② 删除病毒自身的函数DeleteFileFunc:① 使用StartServiceCtrlDispatcher函数,启动之前创建的病毒服务:② 分析恶意函数sub_40561A,其行为主要包括创建恶意dll、创建4个线程。Create_hra33dll_Func调用了EnumResourceNames函数,如图2-12:分析EnumResourceNames的回调函数,创建了hra33.dll并写入了可执行文件,如图2-13、图2-14:2. 修改了hra33.dll的文件资源,如图2-15,其主要步骤是先读取病毒的注册表,如图2-16,然后创建病毒文件、读取病毒文件,如图2-17,之后向dll资源中写入病毒文件和一个字符串,如图2-18、图2-19:3. 载入hra33.dll,如图2-20、图2-21:其中有很多常用的用户名,如图2-22,猜测是用于暴力破解时使用。 其中主要函数的功能通过分析可以得知是通过局域网传播病毒,如图2-23,此函数的参数为图2-24:分析NetCopyFunc,首先获取各种API地址,然后字符串操作得到 \\192.168.49.1\ipc$,如图2-25,之后调用WNetAddConnection2函数,参数如图2-26:如果连接成功,则拷贝病毒命名为g1fd.exe,如图2-27,如果不成功会修改路径继续尝试,如图2-28:当成功拷贝病毒会执行CMD语句设置定时任务,如图2-29:
分析其回调函数,首先初始化套接字,然后获取当前日期,如图2-30,之后创建了一个新的线程如图2-31:分析线程回调函数sub_405128,此函数又创建了一个新线程,如图2-32:分析其回调函数sub_4040DA,分析得知其功能是尝试连接主机 sbcq.f3322.org,如图2-33:如果连接成功的话,会有一个函数获取当前计算机的相关信息如图2-35,此函数的主要功能函数如图2-36:然后将发送获得的计算机信息,如图2-38、图2-39:如果发送成功,先获取UrlDownloadToFile函数地址:之后有个switch-case结构,判断是根据消息码不同做出不同操作,有以下三种操作:(2)删除病毒注册表和原文件,然后执行下载的exe文件:之后有关于http数据包的函数,如图2-40、图2-41、图2-42,具体有什么作用暂时看不出来:分析其回调函数,发现做的事情和第二个线程相同,只是地址发生了变化,这次的远程连接地址为www.520123.xyz,如图2-43:5. 第四个线程在sub_4030FD函数中,是while(1)循环调用此函数,如图2-44,回调函数如图2-45:经过OD分析得知回调函数的地址为:0040387C,可以发现此函数也是尝试远程连接,网址为www.520520520.org:9426,和之前操作基本一致,但是含类似base64的加密,如图2-46、图2-47:四、分析hra33.dll
① 加载病毒资源,判断是否加载成功,如图2-48,加载病毒资源的函数如图2-49:② 如果加载成功,那么会判断当前进程加载模块的文件是不是 hrl.tmp,如图2-50:④ 创建临时文件,写入病毒运行,如图2-52~2-55:⑤ 判断当前是否是lpk.dll,判断函数如图2-56,如果不是的话创建一个事件对象,如图2-57:
此函数创建线程循环遍历文件,判断后缀是否有.exe或.rar或.zip。如果有.exe的话判断是否存在lpk.dll,如果不存在就把恶意的hra.dll复制过去并命名为lpk.dll,如图2-58:如果有.rar或.zip的话就获取RAR.exe的路径然后进行恶意操作,操作步骤为:创建临时目录名->查看压缩包中是否存在lpk.dll->如果存在lpk.dll->在临时目录中把压缩包解压出来->替换lpk.dll、重新打包->删除临时目录,如图2-59:⑦ 最后加载原本lpk.dll的原始函数(如果①加载病毒资源失败将直接调到这里),以免原本调用了lpk.dll的程序无法正常运行,如图2-60、图2-61:2.2.3 流程总结
3.1 病毒的特征
3.2 手工查杀步骤
1. 删除注册表HKEY_LOCAL_MACHINE\system\CurrentControlset\services\Ghijkl2. 删除C:\windows\system32\hra33.dll文件。看雪ID:WPeace
https://bbs.pediy.com/user-home-906228.htm
*本文由看雪论坛 WPeace 原创,转载请注明来自看雪社区。
文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458377827&idx=2&sn=28a2a01d036a646431e58f0fda34fef0&chksm=b180eee986f767ffe7acaf2d879bd389ae6ceb33f67aee318a5bbfe0b0a218b3171bbcc0cec5#rd
如有侵权请联系:admin#unsafe.sh