一、基本信息

样本名称: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. PHP抓取网页内容的几种方法

    方法1: 用file_get_contents 以get方式获取内容 <?php $url='http://www.domain.com/?para=123'; $html = file_get ...

  2. Spring Cloud学习笔记【三】服务消费者Feign

    Feign 是一个声明式的 Web Service 客户端,它的目的就是让 Web Service 调用更加简单.它整合了 Ribbon 和 Hystrix,从而让我们不再需要显式地使用这两个组件.F ...

  3. WMI获取进程CPU占用率

    Monitor % Process CPU Usage (specific process) http://www.tek-tips.com/viewthread.cfm?qid=395765 for ...

  4. [Zabbix] 怎样实现邮件报警通知以及免费短信报警通知

     前提条件: (1) zabbixserver端已经安装成功而且执行. (2) zabbixclient已经成功建立而且执行. 1 下载而且安装msmtp软件 Wget http://sourcefo ...

  5. nagios插件之登陆防火墙实现session监控

    ssh_firewall_session.sh -- 登陆防火墙并运行dis session statistics firewall_check_sessions.c -- 调用上面脚本.过滤出ses ...

  6. 聊聊高并发(十八)理解AtomicXXX.lazySet方法

    看过java.util.concurrent.atomic包里面各个AtomicXXX类实现的同学应该见过lazySet方法.比方AtomicBoolean类的lazySet方法 public fin ...

  7. Java的IO流架构

    输入输出是指应用程序与外部设备及其他计算机进行数据交流的操作,如读写硬盘数据.向显示器输出数据.通过网络读取其他节点的数据等.任何一种编程语言必须拥有输入输出的处理方式,Java语言也不例外.Java ...

  8. Codefroces 766D Mahmoud and a Dictionary

    D. Mahmoud and a Dictionary time limit per test 4 seconds memory limit per test 256 megabytes input ...

  9. javascript 获​取​H​T​M​L​ ​D​O​M​父​,​子​,​临​近​节​点

    在Web应用程序特别是Web2.0程序开发中.常常要获取页面中某个元素,然后更新该元素的样式.内容等.怎样获取要更新的元素,是首先要解决的问题.令人欣慰的是,使用JavaScript获取节点的方法有非 ...

  10. poj 2503 哈希 Map 字典树

    Babelfish Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 36967   Accepted: 15749 Descr ...