一、基本信息

样本名称:Rub.EXE

样本大小:21504 字节

病毒名称:Trojan.Win32.Rootkit.hv

加壳情况:UPX(3.07)

样本MD5:035C1ADA4BACE78DD104CB0E1D184043

样本SHA1: BAD1CE555443FC43484E0FACF8B88EA8756F78CB

病毒文件的组成:

病毒母体文件Rub.EXE   MD5:035C1ADA4BACE78DD104CB0E1D184043

病毒母体释放的文件owwesc.exe(随机字母组成的文件名称而且是病毒母体Rub.EXE脱UPX壳后的文件) MD5: CC7E53EBCE40AC0BFE07FAF3592C210A

病毒母体释放的文件hra33.dll  MD5: 5B845C6FDB4903ED457B1447F4549CF0

二、样本脱壳



对病毒母体文件Rub.EXE进行查壳,使用DIE.exe查壳软件查壳的结果例如以下。

病毒母体文件被加了UPX壳,而且病毒的开发工具Microsoft Visual C/C++(6.0)。UPX壳脱壳难度不大,依据脱壳的ESP定律,对病毒母体文件进行脱壳处理,然后開始对脱壳的病毒母体文件进行病毒的行为分析。

三、样本病毒行为分析



1. 尝试打开注冊表"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.Net CLR",推断该注冊表是否存在。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


2. 假设注冊表项"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.Net CLR"存在则为主线程设置服务派遣例程。



2.1 以下具体的分析病毒进程设置的服务派遣例程的行为。



2.1.1 为主线程服务控制设置服务请求处理过程函数,服务请求处理函数依据相关的控制命令nServiceControlStatus设置服务的状态。


2.1.2 创建信号相互排斥量".Net CLR",防止病毒行为的二次运行。


2.1.3 枚举病毒进程文件的资源。获取类型为0xA的资源。事实上该资源就是一个PE文件。


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


2.1.4 使用获取到的0xA类型的资源在系统文件夹C:\WINDOWS\system32下释放病毒文件C:\WINDOWS\system32\hra33.dll,然后改动hra33.dll文件的头2个字节为"MZ",恢复"hra.dll"为正常的PE文件。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">



2.1.5  查询注冊表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.Net CLR 项ImagePath相应的镜像文件ImageFile;以资源更新或者替换的方式改动该镜像文件IamgeFile的语言资源为病毒文件C:\WINDOWS\system32\hra33.dll的数据。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


2.1.6  载入动态库文件C:\WINDOWS\system32\hra33.dll,然后连续创建3个病毒线程,对用户的电脑进行肆意的破坏。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


======================================================================

线程1 的病毒行为是 利用IPC$在用户的本地主机server上种植病毒。



1.  获取用户本地主机的标准主机名。然后依据获取的主机名遍历获取本地主机名相应的全部的IP地址和port信息。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


2. 对获取的用户的本地主机的IP地址和port号循环的进行弱口令的登录測试。尝试入侵到本地主机server上进行后面的植入病毒文件的操作。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">



watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


3. 假设弱口令登录入侵用户本地主机server成功则向用户的本地主机server植入病毒文件,然后执行病毒文件。创建病毒进程,对用户的本地主机server进行肆意的破坏。


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">



======================================================================

线程2 的病毒行为是 创建非常多死循环的网络操作等的线程,获取用户的电脑的操作系统信息、CPU的信息、内存的信息、网络流量的信息,创建网络套接字主动连接病毒作者的server。将这些信息发送给病毒作者,因此用户的电脑也变成了“肉鸡”被病毒作者所控制。

用户的电脑等待病毒作者发送控制命令。进行恶意行为的操作。以下详细分析。

1. 死循环创建同一病毒线程然后休眠(这样的行为在该病毒进程中很的多),有软件将这些线程标识为“僵尸线程”。


2. 创建网络套接字,向 网址www.hacker22.com 发起网络连接。接受病毒作者的远程网络控制。


3. 获取用户的电脑的操作系统的版本号信息、CPU处理的频率和数目信息、系统的内存信息以、使用的网络流量的信息以及用户电脑从启动到如今的上线时间,准备将用户的这些信息发送给病毒作者。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">









watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


4. 创建死循环网络等待。等待接受病毒作者远程发送来的控制命令。然后解析病毒作者发送来的控制命令。对用户的电脑运行对应的恶意行为操作。

病毒作者的远程控制命令还区分nRevCmdNumber 等于6、nRevCmdNumber 大于 6以及nRevCmdNumber 小于6。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

以下对病毒作者的远程控制命令的对应的恶意操作进行详细的分析下。


1.当病毒作者的远程控制命令nRevCmdNumber等于0x10时,从网址www.hacker22.com下载病毒文件到用户的暂时系统文件文件夹%temp%下,然后执行病毒文件。创建病毒进程而且释放的病毒文件的名称是随机不定个数的数字没有文件后缀名。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


2.当病毒作者的远程控制命令nRevCmdNumber 等于0x6 和nRevCmdNumber 等于 0x12时,对用户电脑的控制行为是一致的。

释放病毒创建的信号相互排斥量.Net CLR,关闭病毒创建的名称为".Net CLR"服务,删除注冊表"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.Net CLR"项,删除病毒进程的文件自身,依旧从网址www.hacker22.com下载病毒文件到用户系统的暂时文件文件夹%temp%下,运行下载的病毒文件,创建病毒进程而且下载的病毒文件的名称组成为前5个字符是随机的,后面是固定字符的即"%c%c%c%c%ccn.exe",然后结束当前病毒进程。


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">



3.当病毒作者的远程控制命令nRevCmdNumber等于0x14时,调用ShellExecute函数使用病毒作者远程发来的控制数据作为IE程序的指定启动參数,创建iexplore.exe进程。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


4.当病毒作者的远程控制命令nRevCmdNumber等于0x2、0x4或0x5时,并没有做什么实质性的操作,无非就是使用网络操作API的函数地址或者对于网址www.hacker22.com的连接等操作的函数过程地址为要创建的线程的过程回调,混乱的创建非常多的网络套接字操作的线程(不是重点)。

5.当病毒作者的远程控制命令nRevCmdNumber等于0x3时,解析病毒作者远程发来的控制命令,依据解析的控制命令,创建病毒作者指定数量的线程,线程的作用是 利用文件路径C:\WINDOWS\system32\Program Files\Internet Explorer\iexplore.exe下的iexplore.exe程序向网址www.hacker22.com发送GET形式的Http数据请求包,从病毒作者的server下载文件。






======================================================================

线程3 的病毒行为与线程2的病毒行为是一致,仅仅只是发起连接的网址变成了aiqing.txddos.com。创建死循环病毒线程,向病毒作者的server网址aiqing.txddos.com发起网络连接主动接受控制,获取病毒作者发送来的控制命令。解析这些控制命令。对用户的电脑进行控制操作。详细的分析过程见对线程2行为的详细分析。



======================================================================

死循环僵尸线程的行为分析 利用死循环,在用户的电脑上不断的创建同一个线程,然后依据相关的服务控制命令nServiceControlStatus设置服务的状态。


死循环创建的同一线程的作用是 首先解密字符串"CgvQyt0d4NzeCQsTCxND"获取到发起网络连接的IP地址和port号;获取用户电脑的系统、CPU、内存、网络流量等信息,发送给病毒作者。后面 除了网址的可能会不同。其它的病毒行为与上面的线程2和线程3的病毒行为一致,接受病毒作者的远程控制命令,然后解析控制命令,对用户的电脑进行控制操作。



2.1.7 假设注冊表项"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.Net CLR"不存在。

使用当前病毒进程(UPX壳解压后的病毒文件数据),在Windows系统文件夹C:\WINDOWS下释放名称为随机字母组成且格式为"%c%c%c%c%c%c.exe"的病毒文件如owwesc.exe。使用该释放的随机字母病毒文件创建名称为".Net CLR"的病毒服务并启动该病毒服务;设置注冊表"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.Net CLR"的项Description的值为 "Microsoft .NET COM+ Integration with SOAP"让用户的系统支持web的SOAP訪问服务;通过前面已经分析过的监測事件的方式 病毒进程删除病毒文件自身,结束当前病毒进程。


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">



watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">



watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

一个DDOS病毒的分析(一)的更多相关文章

  1. 一个DDOS病毒的分析(二)

    一.基本信息 样本名称:hra33.dll或者lpk.dll 样本大小: 66560 字节 文件类型:Win32的dll文件 病毒名称:Dropped:Generic.ServStart.A3D47B ...

  2. 【病毒分析】对一个vbs脚本病毒的分析

    [病毒分析]对一个vbs脚本病毒的分析 本文来源:i春秋社区-分享你的技术,为安全加点温度 一.前言 病毒课老师丢给我们一份加密过的vbs脚本病毒的代码去尝试分析,这里把分析过程发出来,供大家参考,如 ...

  3. [转] 一个U盘病毒简单分析

    (转自:一个U盘病毒简单分析 - 瑞星网   原文日期:2014.03.25) U盘这个移动存储设备由于体积小.容量大.便于携带等优点,给人们的存储数据带来了很大的便利.但正是由于这种便利,也给病毒有 ...

  4. 一个简单的Android木马病毒的分析

    一.样本信息 文件名称: 一个安卓病毒木马.apk 文件大小:242867 byte 文件类型:application/jar 病毒名称:Android.Trojan.SMSSend.KS 样本MD5 ...

  5. 【转】用C写一个简单病毒

    [摘要]在分析病毒机理的基础上,用C语言写了一个小病毒作为实例,用TURBOC2.0实现. [Abstract] This paper introduce the charateristic of t ...

  6. Android版本的"Wannacry"文件加密病毒样本分析(附带锁机)

    一.前言 之前一个Wannacry病毒样本在PC端肆意了很久,就是RSA加密文件,勒索钱财.不给钱就删除.但是现在移动设备如此之多,就有一些不法分子想把这个病毒扩散到移动设备了,这几天一个哥们给了一个 ...

  7. Android发展的一个重要方面Makefile分析

    Android发展的一个重要方面Makefile分析 随着移动互联网的发展,移动开发也越来越吃香了.眼下最火的莫过于android.android是什么就不用说了,android自从开源以来,就受到非 ...

  8. 今天中了一个脚本病毒。把我的所有 html 加了 vbs 脚本,WriteData 是什么鬼?

    今天中了一个脚本病毒.把我的所有 html 加了 vbs 脚本: WriteData 是什么鬼? <SCRIPT Language=VBScript><!-- DropFileNam ...

  9. 发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser

    发布一个高效的JavaScript分析.压缩工具 JavaScript Analyser 先发一段脚本压缩示例,展示一下JSA语法压缩和优化功能. try { //xxxx(); } catch (e ...

随机推荐

  1. 从2014年D2前端技术论坛看前端发展趋势

    上周六有幸參加了在杭州阿里巴巴西溪园区举办的2014年D2前端技术论坛和晚上的酒会.实地感受了一下阿里巴巴前端开发的技术氛围和影响力.整体上看这次D2规模还是挺大的,国内前端的知名大牛基本上都到了. ...

  2. android 动画xml属性具体解释

    /** * 作者:crazyandcoder * 联系: * QQ : 275137657 * email: lijiwork@sina.com * 转载请注明出处! */ android 动画属性具 ...

  3. 改动GDAL库支持RPC像方改正模型

    近期在做基于RPC的像方改正模型.方便对数据进行測试,改动了GDAL库中的RPC纠正模型,使之能够支持RPC像方改正參数. 以下是RPC模型的公式,rn,cn为归一化之后的图像行列号坐标,PLH为归一 ...

  4. pip的认识

    一.pip与python的关系:pip并不是一种语言,而是一个Python包管理工具,主要是用于安装 PyPI 上的软件包.安装好pip之后,使用pip install 命令即可方便的安装python ...

  5. Deep Networks : Overview

    Overview In the previous sections, you constructed a 3-layer neural network comprising an input, hid ...

  6. Java证书通信

    一.概念介绍:   加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击.其重点在于数据的安全性.身份认证是用来判断某个身份的真实性 ...

  7. JS原生方法被覆盖后的恢复办法

    alert 被覆盖 今天装修博客园,调试了下JS代码发现 alert() 方法被官方覆盖了,查看源码得知 alert 的功能被替换成了 console.log. 恢复 var _frame = doc ...

  8. Myeclipse学习总结(3)——Myeclipse中的代码格式化、注释模板及保存时自动格式化

    设置Myeclipse中的代码格式化.注释模板及保存时自动格式化 1:设置注释的模板: 下载此模板:  codetemplates.xml This XML file does not appear ...

  9. 通过Gradle来下载依赖的jar包

    前段时间在看Gradle文章方向其比ANT.Maven真的要简单很多,特别是在下载jar依赖方面下面就是用gradle写的一个jar包依赖下载的小例子: (1)建立build.gradle文件 (2) ...

  10. Linux下的一个高速跳转到上N层文件夹的简单方法

    编辑文件 vim .bashrc  (使改动在当前用户下有效) 或者 vim /etc/profile (须要在root用户下运行,使改动在全部用户下有效) 在文件结尾加入别名 alias cd1=' ...