吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9828|回复: 11
收起左侧

[PC样本分析] 【病毒分析学习】Beta bot样本分析 Part.1 解密部分

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

基本信息
  报告名称:Beta bot样本分析 Part.1
  作者:lSHANG
  报告更新日期:2013/12/1
  样本发现日期:2013/11/23
  样本类型:Bot
  样本文件大小/被感染文件变化长度:188416 bytes
  样本文件MD5 校验值:B15DED00C6C54A5549CF99808D53DB33
  样本文件SHA1 校验值:C812A19475910BE0FCBE829CACCA251C6AB1F56F
  壳信息:N/A
  可能受到威胁的系统:Intel 386 or later processors and compatibleprocessors
  相关漏洞:N/A
  已知检测名称:N/A
简介
  该样本为Bot类木马,样本运行后将进行潜伏、注入其他进程以及接受远程控制等。本文只关注其解密部分。
被感染系统及网络症状
  暂不关注
文件系统变化
  暂不关注
注册表变化
  暂不关注
网络症状
  暂不关注
详细分析/功能介绍
  本文只对样本解密部分进行分析,没有什么新内容,权当一次记录及给我一样的新人一些启示,其中错误之处还望诸位多多指正。
  首先查壳可知该样本未加壳且为VB语言编写,尝试使用工具反编译失败。而后直接使用IDA进行分析,发现VB只不过是个幌子,不过这是后话,此处不表。
  通过IDA载入后找到入口点,发现代码如下图
   1.jpg
  前边有一些初始化及掩人耳目的代码,比如调用一个计算汇率的库函数,当然这些无用的地方这里就不再赘述。
  向下看发现VB部分的核心代码如下图
   2.jpg
  主要逻辑就是将已硬编码到程序中的代码写入到数据段预留的空间,然后通过WriteProcessMemory函数用预定义的代码覆盖掉原来函数的代码,以此执行恶意代码功能。
  copy_code不表,write_process_memory函数实现如下图
   3.jpg
  该函数通过调用一个VB函数DLLFunctionCall来实现获取函数地址。
  被覆盖后的代码如下图
   4.jpg
  前边是一些调试器、沙盘检测,之后代码整理后如下图
   5.jpg
  可以看出该样本利用call指令会自动将返回地址入栈的特点来进行传参,这样的流程分析起来也很简单,一路跟踪跳转就可以了。
  之后申请内存之类不表,向下跟踪可以发现如下图代码:
   6.jpg
  上边部分代码通过TEB获取PEB地址,然后获取PEB.ImageBaseAddress的值,即程序的加载基址,此时eax指向了样本加载的基址,edi则是之前申请的内存的地址。
  之后代码在样本中寻找标志数据4D42h,校验其向后偏移0Eh字节的数据是否为28h。获取标志数据地址再向后偏移40h字节,获取解密密钥。通过代码可以看出密钥的结束标志是标志数据向后偏移36h字节的DWORD数据。
  通过已知这些信息我们可以通过编辑工具在文件中找到对应数据如下图
   7.jpg
  解密密钥之后的蓝色数据部分则为被加密的数据,解密代码如下图
   8.jpg
  通过代码可知,样本通过使用MMX寄存器利用密钥对加密数据循环异或解密。待这里执行完毕,我们可以抓取到一个PE文件,这里我们先继续跟随此处代码。
  获取TerminateProcess函数用来退出不表,向下可以看到如下代码
   9.jpg
  这里获取了样本的命令行参数,以及对调用sheep_function时的参数进行判断,如果为0则会以自身为对象创建傀儡进程,如果为1则会获取默认浏览器路径,并以其为对象创建傀儡进程。
  获取默认浏览器路径是通过注册表获取,使用到了” \http\shell\open\command\”这个键,不对其赘述。
  创建傀儡进程后,向下可看到如下代码
   10.jpg
  首先强卸了傀儡进程的文件模块,然后在该地址重新分配了一块内存区域。继续向下
   11.jpg
  毫无悬念,接下来将已解密的PE文件写入到了刚刚分配的内存区域中,此两步偷梁换柱完成了对傀儡进程内模块内容的替换。
   12.jpg
  因为之前的替换,这里需要对主线程状态进行修复,之后恢复线程执行判断退出不表。


  话分两头,前文说到解密代码执行完毕后我们抓取到一个PE文件,之后的代码都是在为该文件的执行做准备,我们直接对该文件进行分析。
  首先迎来的仍是一个经典的调试器检测不再赘述,检测后该文件获取标记串E6 9C 18 EE C8 8A 25 1D 00 02 AB 7F 10 00 05 FF在内存中的地址
   13.jpg
  获取标记串地址后,再次进行数据解密。这里进行了两次解密,首先在原文件内进行一次异或解密,此时解密出的数据仍是被加密的。之后申请一块内存,然后再次进行算法解密,申请内存块中的数据即最终运行的恶意代码样本。
  解密部分涉及到的数据在文件中表现如下图
   14.jpg
  解密部分代码如下图
   15.jpg
  如果第二次解密成功,样本将会擦除掉在自身异或解密出的数据,并对内存块中的数据进行校验
   16.jpg
  之后样本在存放解密数据的内存块中寻找标记串26 01 11 8A F8 82 9B 1C 37 D2 AA D8 9B 4D 64 B9 CC C1,然后用自身数据覆盖标记地址处数据,源数据地址为硬编码写入,长度为126h字节
   17.jpg
  最后,样本重新申请一块内存,将存放解密数据的内存块内容复制过去后擦除该内存块内容不表,完成上述操作,样本对内存中代码进行重定位,并修正PEB结构中的BASEADDRESS后运行恶意代码。
  通过重定位表进行重定位代码如下图
   18.jpg
  修正PEB结构中的BASEADDRESS代码如下图
   19.jpg
  至此,该样本解密部分完毕。至于最终执行的恶意代码是为何物,该Bot有何与众不同,且听下回分解。

预防及修复措施
  在计算机上安装安全软件。
  及时更新安全软件及病毒库。
技术热点及总结
  该样本解密部分使用了两种不同方式先后两次在内存中解密恶意文件并加载运行,其过程中恶意文件不会在磁盘中留下痕迹,隐蔽性相对更强,但使用傀儡进程的方式及进程间通信的手段通常很难躲避主流安全软件的主动防御模块。

Beta bot Part.1.zip

2.08 MB, 下载次数: 21, 下载积分: 吾爱币 -1 CB

主题中的配图

Beta bot.zip

148.84 KB, 下载次数: 24, 下载积分: 吾爱币 -1 CB

解压密码:52pojie.cn

免费评分

参与人数 1热心值 +1 收起 理由
mcking + 1 我很赞同!

查看全部评分

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

yzh07137 发表于 2016-6-7 15:41
请问为啥我用IDA载入后,只看到一个call    ThunRTMain
然后后面都是乱码?楼主做了什么处理吗?
不太懂这个,希望楼主解答一下,谢谢~
头像被屏蔽
夜的静night 发表于 2013-12-14 18:55
九零-鑫鑫 发表于 2013-12-14 19:03
hy_xyz 发表于 2013-12-14 19:15
哇哇哇哇 大牛啊 完全看不懂的说  汇编都忘的差不多了
Hmily 发表于 2013-12-16 10:49
期待Part.2,先微博传播一下。
天才大帅哥 发表于 2013-12-16 12:09
请问这是什么软件,界面这么酷

点评

IDA PRO  发表于 2013-12-16 12:44
tiebuchen 发表于 2014-1-9 15:31
谢谢,下载个样本看看
暴涨涛涛123 发表于 2014-1-23 01:55
学习了辛苦了额
Wesly_Zhang 发表于 2016-6-19 17:00
很牛擦  膜拜大牛~~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 14:13

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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