吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 23607|回复: 23
收起左侧

[PC样本分析] “金猪报喜”病毒样本分析

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

而我们先看看”金猪报喜“的需要哪些动态链接函数?



而在我们分析PE结构中,一般是在输入表中获取这些信息。Import Table是在IMAGE_NT_HEADER中的IMAGE_OPTIONAL_HEADER中的DataDirectory中的第二个成员。



这里看到Import Table是00 60 01 00 68 0C 00 00,这里存储的是数据库的起始RVA和数据库的长度。



那我们就知道了起始RVA是00016000,数据库的长度是00000C68。





验证了我们的分析基本正确后, 我们继续分析下这些dll主要功能,因为通过分析这些dll的主要功能我们可以进一步对恶意程序的行为有了解。

[td]
KERNEL32.DLL
控制着系统的内存管理、数据的输入输出操作和中断处理。

USER32.DLL
用于包括Windows处理,基本用户界面等特性,如创建窗口和发送消息。

ADVAPI32.DLL
包含的函数与对象的安全性,注册表的操控以及事件日志有关。

OLEAUT32.DLL
是对象链接与嵌入OLE相关文件。

MPR.DLL
是Windws操作系统网络通讯相关模块。

WS2_32.DLL
用于支持Internet和网络应用程序。Windows和需要执行TCP/IP网络通信的应用程序会调用动态链接库ws2_32.dll。

WININET.DLL
wininet.dll是Windows应用程序网络相关模块。

NETAPI32.DLL
netapi32.dll是Windows网络应用程序接口,用于支持访问微软网络,不可或缺。

URLMON.DLL
是微软Microsoft对象链接和嵌入相关模块。





初步估计”金猪报喜“会对文件、注册表、网络有相关的行为操作。我们接着获取一些外壳信息,看这个”金猪报喜“是否加壳了。



程序是用Delphi写的,那么程序是什么时候编译的呢?我们可以通过IMAGE_NT_HEADER中的IMAGE_FILE_HEADER中的TimeDateStamp获取程序的编译时间。



经过换算得知程序编译时间是1992年6月20日6点22分,其实这并不是程序真实的编译时间。因为Delphi程序都是采用统一的编译时间,时间是在1992年6月20日前后。

接下来看一看区块的信息,区块的数目由IMAGE_NT_HEADER中IMAGE_FILE_HEADER的NumberOfSections决定。



这里显示00 0A,经过换算得知”金猪报喜“的区块数目是10个。





Virtual Size可以获取程序加载过程中需要分配多少空间给这个分节。Size of Raw Data 显示在磁盘上这个分节的大小规模。

按道理来说这两个值是大致相等的,”金猪报喜“的区块的虚拟大小和原始数据大小是一样的。就可以进一步肯定它没有加壳了。如果我们发现虚拟大小比原始数据大得多,我们就可以得知这个节在内存中占用了比磁盘存储更多的空间,代表了程序存在加壳代码。

而我们还通过IMAGE_OPTIONAL_HEADER中SubSystem得知它是Windows图形用户界面。通过资源区块没有获取到什么有用的信息,看到了图标文件。



简单静态分析就到这里,整理下我们获取到的信息。
  • 编译语言是Delphi

  • 编译时间并不代表是1992年6月20日6点22分

  • 没有无壳

  • 根据导入函数,初步估计会有网络、文件、注册表行为

  • 初步判定位感染性病毒


动态分析

注册表行为

我们先检查一下”金猪报喜“会对注册进行哪些操作,我们利用工具对注册表建立快照,通过前后快照进行比较,获取注册表的变化。

加入启动项
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"svcshare"="C:\\WINDOWS\\system32\\drivers\\sppoolsv.exe"

对局域网共享进行设置
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG]
"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

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Epoch]
"Epoch"=dword:0000019a
"Epoch"=dword:0000019b


隐藏文件夹
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]
"CheckedValue"=dword:00000001
"CheckedValue"=dword:00000000

文件系统操作
C:\WINDOWS\system32\drivers\sppoolsv.exe被感染

修改C盘的autorun,inf文件,由于注册设置隐藏文件,所以我们看不到C盘目录下的autorun,inf文件。但是,我们可以通过地址栏输入文件地址进行访问。



这里显示C盘目录下还有一个setup.exe程序,我们通过CMD用dir /a:h来查看这个隐藏文件。



我们通过尝试修改注册表把隐藏文件恢复过来,发现当我们打开了注册表没一会,注册表就被关掉了。接着分析行为,发现每个盘符的autorun.inf和setup.exe都存在。

并且”金猪报喜“会遍历磁盘,可执行文件的图标都被篡改成金猪的图标。



它会遍历杀毒软件,并尝试kill掉这些杀毒软件。



在提取字符串中还发现作者的一些信息和”金猪报喜“尝试用弱口令的爆破行为。





网络行为

对计算机所在的网段进行扫描,并尝试与同网段计算机的139/445端口建立连接。



我们通过抓包进一步分析它的行为,发现它不断对网段IP发生ARP数据包。



被感染的可执行文件一旦执行,就会”金猪报喜“又再次被启动。主要是C盘目录下system32中drivers文件夹里的sppoolsv.exe,这个程序无法被删除和重命名。



试图用任务管理器关闭sppoolsv.exe,而任务管理器也被kill掉了。即使把sppoolsv.exe以及每个盘符中的autorun.inf和setup.exe删除。

虽然用del /s /q /f /ah 这个语句可以删除隐藏的文件,只要执行被感染了的可执行程序后”金猪报喜“就会死灰复燃。我们只好用OD来分析一下它了。



GetModuleHandle:获取一个应用程序或动态链接库的模块句柄
LocalAlloc:这个函数从堆中分配指定大小的字节数。
TlsGetValue:得到上一步的那块内存区域的地址
TlsSetValue:设置和获取变量值



╮(╯▽╰)╭ 可惜我逆向分析还不太熟练吖,好多信息都没有很有效的跟踪到。接下来的分析比较乱,留给自己做参考。通过GetVersion获得版本"Service Pack 3"



Advapi32.dll包含的函数与对象的安全性,注册表的操控以及事件日志有关,也跟到了 "C:\WINDOWS\system32\drivers\sppoolsv.exe"的操作。





对盘符下的autorun.inf和setup.exe文件进行操作。



注册表启动项的操作,大概就是把"C:\WINDOWS\system32\drivers\sppoolsv.exe"加到启动项中去。



启动cmd.exe 创建、删除共享的自由,这里把admin$给删除了。



总结

虽然“金猪报喜”是很老的感染性病毒了,但是在分析过程中,发现自己在恶意代码分析这块有很多不足。逆向分析这块很薄弱。



免费评分

参与人数 3热心值 +3 收起 理由
Hyabcd + 1 我很赞同!
1223102608 + 1 已答复!
hjgbil + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

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

 楼主| t2st 发表于 2015-11-17 09:33
dushe 发表于 2015-11-17 00:36
楼主没查查 Services 项,病毒或流氓都喜欢在这里 注册一个 服务项,监视 进程 及 启动项。。。

对喔,你这么一说还真是。谢谢提醒~
 楼主| t2st 发表于 2015-11-14 16:32
xlycaq1 发表于 2015-11-14 16:28
我去 以前电脑中过金猪报喜 用了N多杀软和工具都无济于事 最后还是超级巡警给摆平的 学习了

相互学习.
xlycaq1 发表于 2015-11-14 16:28
我去 以前电脑中过金猪报喜 用了N多杀软和工具都无济于事 最后还是超级巡警给摆平的 学习了
莫里亚蒂 发表于 2015-11-14 16:42 来自手机
大神,我来膜拜ing
0x2766 发表于 2015-11-14 16:59
病毒分析什么的小白也就看看。。
 楼主| t2st 发表于 2015-11-14 17:48

我也是在学习,逆向分析还是很薄弱。
 楼主| t2st 发表于 2015-11-14 17:49
0x2766 发表于 2015-11-14 16:59
病毒分析什么的小白也就看看。。

要相信一万小时定律。
AmazingSusan 发表于 2015-11-14 20:05 来自手机
最喜欢看这类东东了,斗智斗勇。看着过瘾
xuebin123 发表于 2015-11-14 21:18
在哪里可以学到这些个知识 好像去学习
陈静 发表于 2015-11-14 22:24 来自手机
看得眼睛花
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 12:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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