zoukankan      html  css  js  c++  java
  • 一个DDOS病毒的分析(二)

    一、基本信息


    样本名称:hra33.dll或者lpk.dll

    样本大小: 66560 字节

    文件类型:Win32的dll文件

    病毒名称:Dropped:Generic.ServStart.A3D47B3E

    样本MD5:5B845C6FDB4903ED457B1447F4549CF0

    样本SHA1:42E93156DBEB527F6CC104372449DC44BF477A03

     

    这个样本文件是前面分析的Trojan木马病毒母体Rub.EXE释放到用户系统C:WINDOWSsystem32目录下的病毒文件C:WINDOWSsystem32hra33.dll在前面的木马病毒分析中没有具体的分析病毒母体进程Rub.EXE加载动态库hra33.dll的行为。





    二、样本行为分析


    1. 从当前病毒文件hra33.dll的资源中查找名称为0x65的字符串资源".Net CLR"






    2. 判断当前运行的病毒进程文件是否是"hrl%.TMP"(其中%代表其他的字符)文件。




    3. 判断互斥信号量".Net CLR"是否已经存在,防止病毒行为的二次执行。




    4. 在当前病毒文件hra33.dll的资源中查找资源名称为0x66的资源,该资源其实就是一个PE文件。






    5. 如果互斥信号量".Net CLR"已经存在并且在用户系统的临时文件路径下"hrl%.TMP"(其中%代表其他的字符)文件不存在,则使用获取到的资源名称为0x66的资源,在用户系统的临时文件路径下释放病毒文件"hrl%.TMP",如hrl65.tmp。






    6. 在用户系统临时文件目录释放病毒文件hrl65.tmp成功,运行病毒文件hrl65.tmp,创建病毒进程hrl65.tmp。




    7. 调用函数{lstrcmpiA}判断当前运行的病毒模块是否是lpk.dll文件。




    8. 如果当前运行的模块病毒文件lpk.dll,则对用户系统驱动器里的".EXE"文件和压缩包{".RAR"}{".ZIP"}里".EXE"文件进行dll劫持。下面对病毒模块的dll劫持行为进行具体的分析。

     

    8.1 分别创建线程,遍历用户电脑的可移动的硬盘驱动器网络驱动器 CD-ROM 驱动器(不区分只读和可读写的 CD-ROM 驱动器)里的文件,为后面对{".EXE"}程序,进行dll劫持做准备。






    8.2 如果上面对用户电脑里的文件遍历,遍历到的是{".EXE"}文件,则拷贝病毒模块文件lpk.dll到该{".EXE"}文件的文件目录下,进行dll的劫持。




    8.3 如果上面对用户电脑里的文件遍历,遍历到的是 {".RAR"} 或 {".ZIP"} 格式的压缩包文件,则对压缩包里的{".EXE"}文件进行dll劫持,拷贝病毒模块文件lpk.dll到压缩包里的{".EXE"}文件的文件目录下。




    9. 如果当前运行的病毒模块不是病毒文件lpk.dll,则动态加载库文件{C:WINDOWSsystem32lpk.dll}并进行lpk.dll文件的初始化,为后面dll直接转发的方式劫持系统库文件lpk.dll 做准备。






    三、病毒行为总结


    1. 从当前病毒文件hra33.dll的资源中查找名称为0x65的字符串资源".Net CLR"


    2. 判断当前运行的病毒进程文件是否是"hrl%.TMP"(其中%代表其他的字符)文件。


    3. 判断互斥信号量".Net CLR"是否已经存在,防止病毒行为的二次执行。


    4. 在当前病毒文件hra33.dll的资源中查找资源名称为0x66的资源,该资源其实就是一个PE文件。


    5. 如果互斥信号量".Net CLR"已经存在并且在用户系统的临时文件路径下"hrl%.TMP"(其中%代表其他的字符)文件不存在,则使用获取到的资源名称为0x66的资源,在用户系统的临时文件路径下释放病毒文件"hrl%.TMP",如hrl65.tmp。


    6. 在用户系统临时文件目录释放病毒文件hrl65.tmp成功,运行病毒文件hrl65.tmp,创建病毒进程hrl65.tmp。


    7. 调用函数{lstrcmpiA}判断当前运行的病毒模块是否是lpk.dll文件。


    8. 如果当前运行的模块病毒文件lpk.dll,则对用户系统驱动器里的".EXE"文件和压缩包{".RAR"}{".ZIP"}里".EXE"文件进行dll劫持。下面对病毒模块的dll劫持行为进行具体的分析。


    8.1 分别创建线程,遍历用户电脑的可移动的硬盘驱动器网络驱动器 CD-ROM 驱动器不区分只读和可读写的 CD-ROM 驱动器)里的文件,为后面对{".EXE"}程序,进行dll劫持做准备。


    8.2 如果上面对用户电脑里的文件遍历,遍历到的是{".EXE"}文件,则拷贝病毒模块文件lpk.dll到该{".EXE"}文件的文件目录下,进行dll的劫持。


    8.3 如果上面对用户电脑里的文件遍历,遍历到的是 {".RAR"} 或 {".ZIP"} 格式的压缩包文件,则对压缩包里的{".EXE"}文件进行dll劫持,拷贝病毒模块文件lpk.dll到压缩包里的{".EXE"}文件的文件目录下。


    9. 如果当前运行的病毒模块不是病毒文件lpk.dll,则动态加载库文件{C:WINDOWSsystem32lpk.dll}并进行lpk.dll文件的初始化,为后面dll直接转发的方式劫持系统库文件lpk.dll 做准备。


    参考网址:

    http://blog.sina.com.cn/s/blog_8cb9886a01018hzz.html

    http://www.xuebuyuan.com/1929372.html



  • 相关阅读:
    Qt应用如何发布
    关于在windows下部署发布QT程序的总结
    干净地发布QT程序
    解析 Qt 程序在Windows 下发布
    Qt 5.2.0 和 VS 2012集成
    Unable to find a qt build, to solve this problem specify a qt build
    运行python程序不显示cmd的方法
    py2exe使用方法
    python 类
    在Pygtk和Glade使用Gtkbuilder
  • 原文地址:https://www.cnblogs.com/csnd/p/11800689.html
Copyright © 2011-2022 走看看