一个DDOS病毒的分析(一)
一、基本信息
样本名称:Rub.EXE
样本大小:21504 字节
加壳情况: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病毒的分析(一)的更多相关文章
- 一个DDOS病毒的分析(二)
一.基本信息 样本名称:hra33.dll或者lpk.dll 样本大小: 66560 字节 文件类型:Win32的dll文件 病毒名称:Dropped:Generic.ServStart.A3D47B ...
- 【病毒分析】对一个vbs脚本病毒的分析
[病毒分析]对一个vbs脚本病毒的分析 本文来源:i春秋社区-分享你的技术,为安全加点温度 一.前言 病毒课老师丢给我们一份加密过的vbs脚本病毒的代码去尝试分析,这里把分析过程发出来,供大家参考,如 ...
- [转] 一个U盘病毒简单分析
(转自:一个U盘病毒简单分析 - 瑞星网 原文日期:2014.03.25) U盘这个移动存储设备由于体积小.容量大.便于携带等优点,给人们的存储数据带来了很大的便利.但正是由于这种便利,也给病毒有 ...
- 一个简单的Android木马病毒的分析
一.样本信息 文件名称: 一个安卓病毒木马.apk 文件大小:242867 byte 文件类型:application/jar 病毒名称:Android.Trojan.SMSSend.KS 样本MD5 ...
- 【转】用C写一个简单病毒
[摘要]在分析病毒机理的基础上,用C语言写了一个小病毒作为实例,用TURBOC2.0实现. [Abstract] This paper introduce the charateristic of t ...
- Android版本的"Wannacry"文件加密病毒样本分析(附带锁机)
一.前言 之前一个Wannacry病毒样本在PC端肆意了很久,就是RSA加密文件,勒索钱财.不给钱就删除.但是现在移动设备如此之多,就有一些不法分子想把这个病毒扩散到移动设备了,这几天一个哥们给了一个 ...
- Android发展的一个重要方面Makefile分析
Android发展的一个重要方面Makefile分析 随着移动互联网的发展,移动开发也越来越吃香了.眼下最火的莫过于android.android是什么就不用说了,android自从开源以来,就受到非 ...
- 今天中了一个脚本病毒。把我的所有 html 加了 vbs 脚本,WriteData 是什么鬼?
今天中了一个脚本病毒.把我的所有 html 加了 vbs 脚本: WriteData 是什么鬼? <SCRIPT Language=VBScript><!-- DropFileNam ...
- 发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
发布一个高效的JavaScript分析.压缩工具 JavaScript Analyser 先发一段脚本压缩示例,展示一下JSA语法压缩和优化功能. try { //xxxx(); } catch (e ...
随机推荐
- UVC和V4L2的关系(转载)
UVC是一种usb视频设备驱动.用来支持usb视频设备,凡是usb接口的摄像头都能够支持 V4L2是Linux下的视频采集框架.用来统一接口,向应用层提供API UVC: USB video clas ...
- U-BOOT概述及源码分析(一)
嵌入式Linux系统从软件角度通常可以分为以下4个层次: 引导加载程序 | Linux内核 | 文件系统 | 用户应用程序 嵌入式Linux系统中典型分区结构: 正常启动过程中,Bootloader首 ...
- Android Studio升级到0.8.1后怎样设置字体大小?
升级到0.8.1后.打开设置字体大小页面.你会发现无论是Default还是Darcula,都不同意你改变字体的大小.事实上这个是由于这两个模式是Android Studio自带模式,所以不同意你修改, ...
- Hadoop-2.6.0上的C的API訪问HDFS
在通过Hadoop-2.6.0的C的API訪问HDFS的时候,编译和执行出现了不少问题,花费了几天的时间,上网查了好多的资料,最终还是把问题给攻克了 參考文献:http://m.blog.csdn.n ...
- 版本号控制-搭建gitserver
GitHub是一个免费托管开源码的Gitserver,假设我们不想公开项目的源码,又不想付费使用.那么我们能够自己搭建一台Gitserver. 以下我们就看看,怎样在Ubuntu上搭建Gitserve ...
- amaze ui响应式表格
amaze ui响应式表格 这里的div外嵌设置格式倒是不错的选择
- 1、Bracket使用
转自:https://www.jianshu.com/p/393833400782 Adobe的PhotoShop.Dreamweaver等大批优秀软件,印(nue)象(杀)了一代一代的优秀的计算机高 ...
- 自己增删改查Razor页面
AccountContext db = new AccountContext(); public ActionResult Index() { return View(db.SysUsers); } ...
- at&&atq&&atrm---定时任务
at放在 ls /var/spool/at/ 目录下 At的配置文件/etc/at.deny和/etc/at.allow 如果deny单独存在,则是deny以为的所有用户都可以使用at命令 如果all ...
- Python修改文件内容
工作中要写个脚本来修改文件的内容,然后就写了一个刷子: #coding:utf8 import os def modify_file(old_file, new_version, old_versio ...