“金猪报喜”病毒样本分析
本帖最后由 t2st 于 2015-11-14 15:53 编辑基本信息
作者:t2st
时间:2015/11/14
样本类型:网络病毒
Size: 93184 bytes
MD5: 080CDF89BCF11DAAEB6B64E9EF9B2A27
SHA1: A4437321BEE4EBD853C22E50F10845B519D6DA2A
CRC32: 8B2E0FB4
简介
金猪报喜算是比较老的病毒了,它实际是熊猫烧香的新变种。
静态分析
按照我的理解,在静态分析过程中我们可以通过工具对我们分析的恶意程序需要那些动态链接函数进行一个简单的了解。
常见的dll程序有:Kernel32.dll、Advapi32.dll、User32.dll、Gdi32.dll、Ntdll.dll、Wsock32.dll、Ws2_32.dll、Wininet.dll。
而我们先看看”金猪报喜“的需要哪些动态链接函数?
https://dn-shimo-image.qbox.me/bsBgGXWE5xE6ktii.png!thumbnail
而在我们分析PE结构中,一般是在输入表中获取这些信息。Import Table是在IMAGE_NT_HEADER中的IMAGE_OPTIONAL_HEADER中的DataDirectory中的第二个成员。
https://dn-shimo-image.qbox.me/0whsHTpgbSlUlGvW.png!thumbnail
这里看到Import Table是00 60 01 00 68 0C 00 00,这里存储的是数据库的起始RVA和数据库的长度。
https://dn-shimo-image.qbox.me/IcsE4t6f9GMTEHUm.png!thumbnail
那我们就知道了起始RVA是00016000,数据库的长度是00000C68。
https://dn-shimo-image.qbox.me/PzVbYr4HilhKavnk.png!thumbnail
https://dn-shimo-image.qbox.me/lTKGpxZu2yalJ2vd.png!thumbnail
验证了我们的分析基本正确后, 我们继续分析下这些dll主要功能,因为通过分析这些dll的主要功能我们可以进一步对恶意程序的行为有了解。
KERNEL32.DLL控制着系统的内存管理、数据的输入输出操作和中断处理。
USER32.DLL用于包括Windows处理,基本用户界面等特性,如创建窗口和发送消息。
ADVAPI32.DLL包含的函数与对象的安全性,注册表的操控以及事件日志有关。
OLEAUT32.DLL是对象链接与嵌入OLE相关文件。
MPR.DLL是Windws操作系统网络通讯相关模块。
WS2_32.DLL用于支持Internet和网络应用程序。Windows和需要执行TCP/IP网络通信的应用程序会调用动态链接库ws2_32.dll。
WININET.DLLwininet.dll是Windows应用程序网络相关模块。
NETAPI32.DLLnetapi32.dll是Windows网络应用程序接口,用于支持访问微软网络,不可或缺。
URLMON.DLL是微软Microsoft对象链接和嵌入相关模块。
初步估计”金猪报喜“会对文件、注册表、网络有相关的行为操作。我们接着获取一些外壳信息,看这个”金猪报喜“是否加壳了。
https://dn-shimo-image.qbox.me/QPMjf9HuJLd8kKGK.png!thumbnail
程序是用Delphi写的,那么程序是什么时候编译的呢?我们可以通过IMAGE_NT_HEADER中的IMAGE_FILE_HEADER中的TimeDateStamp获取程序的编译时间。
https://dn-shimo-image.qbox.me/QCegCsurwwrydZQv.png!thumbnail
经过换算得知程序编译时间是1992年6月20日6点22分,其实这并不是程序真实的编译时间。因为Delphi程序都是采用统一的编译时间,时间是在1992年6月20日前后。
接下来看一看区块的信息,区块的数目由IMAGE_NT_HEADER中IMAGE_FILE_HEADER的NumberOfSections决定。
https://dn-shimo-image.qbox.me/ei3e0AZ7mKpycXku.png!thumbnail
这里显示00 0A,经过换算得知”金猪报喜“的区块数目是10个。
https://dn-shimo-image.qbox.me/QuPuPhcWfGOWxhqM.png!thumbnail
https://dn-shimo-image.qbox.me/8eLSOGXshfN7pUQo.png!thumbnail
Virtual Size可以获取程序加载过程中需要分配多少空间给这个分节。Size of Raw Data 显示在磁盘上这个分节的大小规模。
按道理来说这两个值是大致相等的,”金猪报喜“的区块的虚拟大小和原始数据大小是一样的。就可以进一步肯定它没有加壳了。如果我们发现虚拟大小比原始数据大得多,我们就可以得知这个节在内存中占用了比磁盘存储更多的空间,代表了程序存在加壳代码。
而我们还通过IMAGE_OPTIONAL_HEADER中SubSystem得知它是Windows图形用户界面。通过资源区块没有获取到什么有用的信息,看到了图标文件。
https://dn-shimo-image.qbox.me/6z1NSY2afRbWKUn6.png!thumbnail
简单静态分析就到这里,整理下我们获取到的信息。
[*]编译语言是Delphi
[*]编译时间并不代表是1992年6月20日6点22分
[*]没有无壳
[*]根据导入函数,初步估计会有网络、文件、注册表行为
[*]初步判定位感染性病毒
动态分析
注册表行为
我们先检查一下”金猪报喜“会对注册进行哪些操作,我们利用工具对注册表建立快照,通过前后快照进行比较,获取注册表的变化。
加入启动项
"svcshare"="C:\\WINDOWS\\system32\\drivers\\sppoolsv.exe"
对局域网共享进行设置
"Seed"=hex:c1,24,14,84,ee,29,e5,ab,c9,ce,3f,44,52,c1,1f,ba,99,e0,61,84,0d,e0,\
db,b3,da,9c,d2,ec,d6,e5,d3,9f,2f,20,e6,af,f5,45,11,08,11,f1,6f,16,45,29,ca,\
ec,82,7c,3b,d8,ee,7d,42,4e,1f,e9,97,34,e8,87,8f,28,25,b9,fa,59,83,0c,ee,cd,\
cd,b9,ea,ba,90,c2,23,6e
"Seed"=hex:3e,55,cc,d8,3b,56,d3,d9,24,30,92,c1,7c,1d,92,d5,79,e4,6d,41,2e,33,\
c4,f0,ca,9c,da,ec,2f,64,b0,2d,4c,d5,7e,0a,2f,d2,4d,8d,8c,ee,3d,25,7c,47,f5,\
9b,ab,7f,83,4e,d0,75,7b,ba,35,62,73,f2,58,60,e0,09,8b,cf,7f,80,6c,b1,55,73,\
63,05,0f,0b,c1,60,43,72
"Epoch"=dword:0000019a
"Epoch"=dword:0000019b
隐藏文件夹
"CheckedValue"=dword:00000001
"CheckedValue"=dword:00000000
文件系统操作
C:\WINDOWS\system32\drivers\sppoolsv.exe被感染
修改C盘的autorun,inf文件,由于注册设置隐藏文件,所以我们看不到C盘目录下的autorun,inf文件。但是,我们可以通过地址栏输入文件地址进行访问。
https://dn-shimo-image.qbox.me/CjAEr8lnfwlNxctg.png!thumbnail
这里显示C盘目录下还有一个setup.exe程序,我们通过CMD用dir /a:h来查看这个隐藏文件。
https://dn-shimo-image.qbox.me/D5Ilird0r6QxYpjI.png!thumbnail
我们通过尝试修改注册表把隐藏文件恢复过来,发现当我们打开了注册表没一会,注册表就被关掉了。接着分析行为,发现每个盘符的autorun.inf和setup.exe都存在。
并且”金猪报喜“会遍历磁盘,可执行文件的图标都被篡改成金猪的图标。
https://dn-shimo-image.qbox.me/UX5GJuFsTR2s7r3X.png!thumbnail
它会遍历杀毒软件,并尝试kill掉这些杀毒软件。
https://dn-shimo-image.qbox.me/id8rxO3ZLHQkxlVw.png!thumbnail
在提取字符串中还发现作者的一些信息和”金猪报喜“尝试用弱口令的爆破行为。
https://dn-shimo-image.qbox.me/FKcNfWNHDPquMY6x.png!thumbnail
https://dn-shimo-image.qbox.me/gVKsxh0YK4LGet6t.png!thumbnail
网络行为
对计算机所在的网段进行扫描,并尝试与同网段计算机的139/445端口建立连接。
https://dn-shimo-image.qbox.me/lfOPVr4WbvLBEoOZ.png!thumbnail
我们通过抓包进一步分析它的行为,发现它不断对网段IP发生ARP数据包。
https://dn-shimo-image.qbox.me/LJybJ2J7Zjm7fVkd.png!thumbnail
被感染的可执行文件一旦执行,就会”金猪报喜“又再次被启动。主要是C盘目录下system32中drivers文件夹里的sppoolsv.exe,这个程序无法被删除和重命名。
https://dn-shimo-image.qbox.me/Ccbg8R7VVegOXeHw.png!thumbnail
试图用任务管理器关闭sppoolsv.exe,而任务管理器也被kill掉了。即使把sppoolsv.exe以及每个盘符中的autorun.inf和setup.exe删除。
虽然用del /s /q /f /ah 这个语句可以删除隐藏的文件,只要执行被感染了的可执行程序后”金猪报喜“就会死灰复燃。我们只好用OD来分析一下它了。
https://dn-shimo-image.qbox.me/NHxDs1nFRC2iZziU.png!thumbnail
GetModuleHandle:获取一个应用程序或动态链接库的模块句柄
LocalAlloc:这个函数从堆中分配指定大小的字节数。
TlsGetValue:得到上一步的那块内存区域的地址
TlsSetValue:设置和获取变量值
https://dn-shimo-image.qbox.me/fAgGunRUAK1q4m0J.png!thumbnail
╮(╯▽╰)╭ 可惜我逆向分析还不太熟练吖,好多信息都没有很有效的跟踪到。接下来的分析比较乱,留给自己做参考。通过GetVersion获得版本"Service Pack 3"
https://dn-shimo-image.qbox.me/P8wZ33joqkwj8xUc.png!thumbnail
Advapi32.dll包含的函数与对象的安全性,注册表的操控以及事件日志有关,也跟到了 "C:\WINDOWS\system32\drivers\sppoolsv.exe"的操作。
https://dn-shimo-image.qbox.me/DHdmpmTY0az6I4SJ.png!thumbnail
https://dn-shimo-image.qbox.me/oNnNsdFRABfacxN0.png!thumbnail
对盘符下的autorun.inf和setup.exe文件进行操作。
https://dn-shimo-image.qbox.me/27x3jpj2Eq5KvKwg.png!thumbnail
注册表启动项的操作,大概就是把"C:\WINDOWS\system32\drivers\sppoolsv.exe"加到启动项中去。
https://dn-shimo-image.qbox.me/TUdL7c1ShGR6Yb8g.png!thumbnail
启动cmd.exe 创建、删除共享的自由,这里把admin$给删除了。
https://dn-shimo-image.qbox.me/9LeisR9FOVend1Hn.png!thumbnail
总结
虽然“金猪报喜”是很老的感染性病毒了,但是在分析过程中,发现自己在恶意代码分析这块有很多不足。逆向分析这块很薄弱。{:1_906:}
dushe 发表于 2015-11-17 00:36
楼主没查查 Services 项,病毒或流氓都喜欢在这里 注册一个 服务项,监视 进程 及 启动项。。。
对喔,你这么一说还真是。谢谢提醒~{:17_1065:} xlycaq1 发表于 2015-11-14 16:28
我去 以前电脑中过金猪报喜 用了N多杀软和工具都无济于事 最后还是超级巡警给摆平的 学习了
{:17_1057:} 相互学习. 我去 以前电脑中过金猪报喜 用了N多杀软和工具都无济于事 最后还是超级巡警给摆平的 学习了{:1_893:} 大神,我来膜拜ing 病毒分析什么的小白也就看看。。{:17_1083:} 莫里亚蒂 发表于 2015-11-14 16:42
大神,我来膜拜ing
{:17_1054:} 我也是在学习,逆向分析还是很薄弱。 0x2766 发表于 2015-11-14 16:59
病毒分析什么的小白也就看看。。
{:17_1074:} 要相信一万小时定律。 最喜欢看这类东东了,斗智斗勇。看着过瘾 在哪里可以学到这些个知识 好像去学习 看得眼睛花