• 一个DDOS病毒的分析(一)



    一、基本信息

    样本名称: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_MACHINESYSTEMCurrentControlSetServices.Net CLR",推断该注冊表是否存在



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



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


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



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



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




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




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




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



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

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


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



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





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





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

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

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



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



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



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











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

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




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


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



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

    释放病毒创建的信号相互排斥量.Net CLR关闭病毒创建的名称为".Net CLR"服务删除注冊表"HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices.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:WINDOWSsystem32Program FilesInternet Exploreriexplore.exe下的iexplore.exe程序向网址www.hacker22.com发送GET形式的Http数据请求包,从病毒作者的server下载文件。







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

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




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

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



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





    2.1.7 假设注冊表项"HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices.Net CLR"不存在

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







  • 相关阅读:
    关于android中透明、半透明、百分比转换
    详解 RestTemplate 操作
    springboot No Identifier specified for entity的解决办法
    Java-Spring-获取Request,Response对象
    java 如何判断操作系统是Linux还是Windows
    Spring中使用Ehcache的方法和注意事项
    Protostuff序列化
    如何使用apache自带的ab压力测试工具
    java 调用 wsdl形式的webservice 示例
    web service 异常
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7039494.html
Copyright © 2020-2023  润新知