一个Trojan木马病毒的分析(一)
本帖最后由 龙飞雪 于 2015-8-18 20:08 编辑一个Trojan木马病毒的分析(一)作者:龙飞雪一、基本信息
样本名称: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.dllMD5: 5B845C6FDB4903ED457B1447F4549CF0
二、样本脱壳
对病毒母体文件Rub.EXE进行查壳,使用DIE.exe查壳软件查壳的结果如下。病毒母体文件被加了UPX壳,并且病毒的开发工具Microsoft Visual C/C++(6.0)。UPX壳脱壳难度不大,根据脱壳的ESP定律,对病毒母体文件进行脱壳处理,然后开始对脱壳的病毒母体文件进行病毒的行为分析。
三、样本病毒行为分析
1. 尝试打开注册表"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.Net CLR",判断该注册表是否存在。
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文件。
2.1.4 使用获取到的0xA类型的资源在系统目录C:\WINDOWS\system32下释放病毒文件C:\WINDOWS\system32\hra33.dll,然后修改hra33.dll文件的头2个字节为"MZ",恢复"hra.dll"为正常的PE文件。
2.1.5 查询注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.Net CLR 项ImagePath对应的镜像文件ImageFile;以资源更新或者替换的方式修改该镜像文件IamgeFile的语言资源为病毒文件C:\WINDOWS\system32\hra33.dll的数据。
2.1.6 加载动态库文件C:\WINDOWS\system32\hra33.dll,然后连续创建3个病毒线程,对用户的电脑进行肆意的破坏。
======================================================================线程1 的病毒行为是 利用IPC$在用户的本地主机服务器上种植病毒。
1. 获取用户本地主机的标准主机名,然后根据获取的主机名遍历获取本地主机名对应的所有的IP地址和端口信息。
2. 对获取的用户的本地主机的IP地址和端口号循环的进行 弱口令的登录测试,尝试入侵到本地主机服务器上进行后面的 植入病毒文件 的操作。
3. 如果弱口令登录入侵用户本地主机服务器成功,则向用户的本地主机服务器植入病毒文件,然后运行病毒文件,创建病毒进程,对用户的本地主机服务器进行肆意的破坏。
======================================================================线程2 的病毒行为是 创建很多死循环的网络操作等的线程,获取用户的 电脑的操作系统信息、CPU的信息、内存的信息、网络流量的信息,创建网络套接字主动连接病毒作者的服务器,将这些信息发送给病毒作者,因此用户的电脑也变成了“肉鸡”被病毒作者所控制。用户的电脑等待病毒作者发送控制命令,进行恶意行为的操作。下面具体分析。
1.死循环创建同一病毒线程然后休眠(这种行为在该病毒进程中非常的多),有软件将这些线程标识为“僵尸线程”。
2. 创建网络套接字,向 网址www.hacker22.com 发起网络连接,接受病毒作者的远程网络控制。
3. 获取用户的电脑的操作系统的版本信息、CPU处理的频率和数目信息、系统的内存信息、使用的网络流量的信息以及用户电脑从启动到现在的上线时间,准备将用户的这些信息发送给病毒作者。
4. 创建死循环网络等待,等待接受病毒作者远程发送来的控制命令,然后解析病毒作者发送来的控制命令,对用户的电脑执行相应的恶意行为操作。病毒作者的远程控制命令还区分nRevCmdNumber 等于6、nRevCmdNumber 大于 6以及nRevCmdNumber 小于6。
下面对病毒作者的远程控制命令的相应的恶意操作进行具体的分析下。
1. 当病毒作者的远程控制命令 nRevCmdNumber等于0x10 时,从网址www.hacker22.com下载病毒文件到用户的临时系统文件目录%temp%下,然后运行病毒文件,创建病毒进程并且释放的病毒文件的名称是 随机不定个数的数字没有文件后缀名。
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",然后结束当前病毒进程。
3. 当病毒作者的远程控制命令 nRevCmdNumber等于0x14 时,调用ShellExecute函数 使用病毒作者远程发来的控制数据作为IE程序的指定启动参数,创建 iexplore.exe 进程。
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数据请求包,从病毒作者的服务器下载文件。
======================================================================线程3 的病毒行为与线程2的病毒行为是一致,只不过发起连接的网址变成了aiqing.txddos.com。创建死循环病毒线程,向病毒作者的服务器网址aiqing.txddos.com发起网络连接主动接受控制,获取病毒作者发送来的控制命令,解析这些控制命令,对用户的电脑进行控制操作,具体的分析过程见对线程2行为的具体分析。
======================================================================死循环僵尸线程 的行为分析 利用 死循环,在用户的电脑上不断的创建同一个线程,然后根据相关的服务控制命令nServiceControlStatus设置服务的状态。
死循环创建的同一线程的作用是 首先解密字符串 "CgvQyt0d4NzeCQsTCxND" 获取到发起网络连接的IP地址和端口号;获取用户电脑的系统、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访问服务;通过前面已经分析过的监测事件的方式 病毒进程删除病毒文件自身,结束当前病毒进程。
asd9988 发表于 2015-8-21 16:56
这是一个DDOS的木马端,里面的图片中有一幅图是HTTP的请求,这段代码我在某个攻击器上看到过。可以发起各种 ...
哈哈,还是你厉害。见多识广,这是最近一段时间出现的病毒,导致用户的服务器瘫痪了,还有一个加了强壳的病毒,脱不了壳,不能分析。 龙飞雪 发表于 2015-8-21 17:42
哈哈,还是你厉害。见多识广,这是最近一段时间出现的病毒,导致用户的服务器瘫痪了,还有一个加了强壳的 ...
什么强壳,不会是vm了代码的那种吧,你显示的代码高亮很不错,不知道是ida插件自带的还是,复制出来贴到别的编译器去呢{:301_975:} 厉害啊 完全看不到 不懂 学学习了 这是一个DDOS的木马端,里面的图片中有一幅图是HTTP的请求,这段代码我在某个攻击器上看到过。可以发起各种攻击。例如TCP,UDP,CC之类的。
谢谢willJ的鼓励。@willJ 也谢谢大家的支持。 腻害啊~赞一个{:301_991:} 蚯蚓翔龙 发表于 2015-8-21 21:22
什么强壳,不会是vm了代码的那种吧,你显示的代码高亮很不错,不知道是ida插件自带的还是,复制出来贴到 ...
是IDA的字体的配置文件,泄露的绿色版的IDA6.6里的字体配置。 蚯蚓翔龙 发表于 2015-8-21 21:22
什么强壳,不会是vm了代码的那种吧,你显示的代码高亮很不错,不知道是ida插件自带的还是,复制出来贴到 ...
,TMD壳,我不擅长脱壳,难一点的就不信了