zoukankan      html  css  js  c++  java
  • LPK病毒分析报告

    文件: lpk.dll

    大小: 44032 字节

    MD5: 78311085E5CD3F86A7243D628BFACF95

    SHA1: BA7C78590F1E940F51AFD2945674D904A814F976

    CRC32: F223E90D

    LPK.dl主要行为:

    pk.dll获取了系统正常的lpk.dll文件的导出函数地址,并伪装成正常的lpk文件,当伪装的LPK.dll被加载后,该模块会进行以下的操作:

    1. 伪装的lpk.dll释放其中包含一段恶意资源到Windows临时目录下,将该资源命名为hrl*.tmp(*为随机字符), 用任意十六进制查看器可以看到该资源是PE文件。

     

                           图1   lpk.dll中的一段资源文件

     

                          图 2  调用FindResourceA查找资源

    1. 调用CreateProcess将创建hrl*.tmp进程。

     

    1. 遍历磁盘目录,如果当前目录存在”.exe”后缀的文件,将自身lpk.dll拷贝到当前目录。

     

    将lpk.dll拷贝到当前目录,并将属性设置为隐藏:

     

    对lpk.dll释放的母体hrl*.tmp的分析:

    Hrl*.tmp主要行为:

    hrl*.tmp是lpk.dll释放的恶意文件,当创建该进程后,将会进行大量的恶意操作,归类如下:

    1、  创建服务:

    首先判断注册表项:"SYSTEM\\CurrentControlSet\\Services\\Nationaluhm”是否存在,如果存在注册表项,则先将自己拷贝一份命名为”******.exe”,复制到”C:\Windows\System32\”目录下,然后创建一个名称为”Nationaluhm”的服务,将该服务的可执行文件指向刚刚复制的”C:\Windwos\System32\******.exe”,启动该服务。

     

                     图3 复制hrl*.tmp到系统目录

     

                   图4 创建并启动服务

     

    2.修改注册表

    将” SYSTEM\\CurrentControlSet\\Services\\Nationaluhm\\”下Description的键值设置为” Nationallwk Instruments Domain Service”.

     

                      图5 修改注册表

    3.进程操作:

    如果注册表项不存在,将进程注入到Svhost.exe中:

    (1)       首先调用CreatProcess函数创建一个Svchost.exe,并且使进程处于CREATE_SUSPEND状态。

    (2)       调用GetThreadContect函数获取Svchost进程的各个寄存器的值,其中EBX指向PEB,EAX保存程序的入口点。

    (3)从PEB中获取进程的基址base_address(EBX+0x8)

    (4)调用ZwUnmapViewOfSection卸载这个基址内存空间的数据,(该函数由ntdll.dll导出),(5)然后调用VirtualAllocEx函数在Svchost.exe进程空间里申请足够大的一片内存,读取hrl.tmp到内存中,调用WriteProcessMemory函数将hrl*.tmp拷贝到申请的空间。

    用hrl*.tmp的BaseAddress修正svchsot进程中的PEB。用Eax设置入口地址,调用SetThreadContext修正。

    (6)用ResumeThread函数恢复svhost.exe,注入完成。

     

    获取ZwUnmapViewOfSection的地址

     

    调用WriteProcessMemory函数将hrl*.tmp写到到申请的空间

     

    SetThreadContext修正入口地址,ResumeThread重启进程。

     

    注入后的svhost进程相当于一个僵尸进程,可以用XueTr查看svhost.exe的模块

     

    1. 网络操作:

    首先将当前进程的母体资源写入到hra33.dll,相当与重新合成lpk.dll.

     

                        Hrl**.exe中包含了的lpk.dll

    调用EnumResourceNamel遍历当前模块,将资源写入hrl33.dll

     

    调用CreateFileA将模块写入hra*.dll

     

    给hra*.dll添加资源:

     

                         写入编号为0x66(102)的资源

     

                         写入编号为0x65(101)的资源

    开启下载线程,从服务器地址为:http://www.ody.cc/vip48.html的页面,并从该页面获取病毒的服务器地址.

    通过上面获取的页面信息获得服务器ip地址和端口号,与远程服务器建立socket连接,将连接设置为KEEPALIVE状态,75s检测一次连接状态。

    获取计算机的运行Windows版本信息,CPU频率,以及运行内存大小,通过socket发送给远程服务器。

    从远程服务器读取远控文件”PlusCtrl.dll”,并获取导出函数”ProcessTrans”来对计算机进行远程控制。

     

    加载PlusCtr.dll

     

    接收服务端指令,执行操作

     

    接收远程服务器指令,通过switch case语句对不同的指令执行相应的操作,计算机成为僵尸机(肉鸡),可以对任意指定的服务器发起恶意请求(或DDOS攻击)。

     

    其中402004保存执行操作的数据表

     

     当收到不同指令则对应表中不同的地址,然后指向相应的操作函数;

     

    Case 22:从服务器获取PlusCtr.dll

     

    Case 2:对指定的IP发起DDOS

     

    Case 16 17:下载恶意文件到临时目录并执行

     

    Case 19 以隐藏方式打开ie指定页面,case 20 用正常窗口方式打开指定页面

     

    标题: 作者: 时间: 链接:
  • 相关阅读:
    Android RxJava 2.0中backpressure(背压)概念的理解
    Android 解决RecyclerView瀑布流效果结合Glide使用时图片变形的问题
    Android 滚动RecyclerView加载图片时的流畅度优化
    Android RecyclerView 滑动时图片加载的优化
    云计算之路-阿里云上:结合IIS日志分析“黑色30秒”问题团队
    云计算之路-阿里云上:对“黑色30秒”问题的猜想团队
    云计算之路-阿里云上:排查“黑色30秒”问题-为什么请求会排队团队
    云计算之路-阿里云上:Web服务器遭遇奇怪的“黑色30秒”问题团队
    上周热点回顾(4.14-4.20)团队
    上周热点回顾(4.7-4.13)团队
  • 原文地址:https://www.cnblogs.com/Lamboy/p/3099991.html
Copyright © 2011-2022 走看看