lpk.dll病毒是比较常见的一类病毒,系统本身的lpk.dll文件位于C:\WINDOWS\system32和C:WINDOWS\system\dllcache目录。
lpk.dll病毒的典型特征是感染存在可执行文件的目录,并隐藏自身,删除后又再生成,当同目录中的exe文件运行时,lpk.dll就会被Windows动态链接,从而激活病毒,进而导致不能彻底清除。

样本概况

样本基本信息

MD5: 304bbe0e401d84edf63b68588335ceb6
SHA-1: 8389fb0466449755c9c33716ef6f9c3e0f4e19c8
SHA-256: 1f3e836b4677a6df2c2d34d3c6413df2c5e448b5bc1d5702f2a96a7f6ca0d7fb File size: 52.50 KB (53760 bytes)

测试环境及工具

测试环境:Windows 7

测试工具:PEID、StudyPE、IDA Pro、x32dbg、火绒剑

沙箱检测

从上面的沙箱检测结果,初步可以得到的信息:

该病毒启动具有隐藏界面的cmd窗口,将自身拷贝到其他目录,修改网络代理设置,连接了三个域名等操作。

样本分析

主要流程概述

第一次运行样本后会创建系统服务、添加注册表的键值,根据系统时间随机生成一个名字的文件,将母体拷贝到该文件并释放到C:/Windows路径下,给新生成的子文件icykmk.exe添加服务的自启动项,结束母体并删除。

之后运行icykmk.exe,首先加载hra33.dll然后创建4个线程。

加载的hra33.dll首先遍历文件,判断是否存在.exe,如果存在,就继续递归寻找下一个;否则,就在同路径下创建lpk.dll;然后判断是否存在.rar或者.zip,如果存在,就继续递归寻找下一个,如果不存在就往压缩包添加lpk.dll。

线程1:通过弱口令感染局域网内的共享文件夹,将病毒释放到共享文件夹中。
线程2:连接到控制端sbcq.f3322.org,获取当前系统信息(CPU型号,系统版本,上线时间,内存信息等)发送给病毒作者,然后就循环等待病毒作者的指令接收,判断info的类型,做出相应的操作。
线程3:连接控制端www.520123.xyz。具体功能同线程2。
线程4:连接控制端www.520520520.org:9426。具体功能同线程2。

流程图如下:

样本动作捕捉

运行样本,火绒剑捕捉样本行为动作:

设置注册表项:

创建进程操作:

文件增删查改操作:

网络收包发包操作:

下面是随机生成名字的子程序进程和har33.dll:

具体行为分析

查壳

首先,查壳,病毒upx加壳,手动esp定律或者upx -d脱壳后PEID看到病毒是由Microsoft Visual C++ 6.0编写。

studyPE查看导入表:

初次运行初始化服务

IDA Pro7.5载入样本文件,进入WinMain函数:

WinMain函数中是网络相关的函数,判断服务及注册表是否存在,并且母体病毒开始初始化。

sub_405A52()函数内部就是判断键值是否存在。就是判断是否创建了一个名为”Ghijkl Nopqrstu Wxy“的服务,如果创建了,就返回1,执行if当中的操作;如果没有创建,那么执行else当中的操作,创建服务。简言之,就是判断样本是否第一次运行。

下面分析else当中的sub_405B6E():

sub_405B6E()

1、在ADVAPI32.dll中加载函数,遍历文件。

2、根据时间随机生成数作为文件名进行拼接,然后拷贝到C:\Windows\目录下。

3、创建服务。

4、添加注册表项。

sub_40355B()

然后分析下面的sub_40355B():

上面的伪代码可以看到:母体通过字符串拼接执行cmd命令删除自身,设置高优先级。

以上代码,程序第一次运行,将自己拷贝到指定系统目录,创建服务,启动服务,删除自身。

若服务已被创建,则通过判断,第二次打开程序则直接打开服务。调用sub_40561A()。

再次运行sub_40561A()主函数

会先判断键值是否存在,如果存在的话就开启服务,进入服务回调继续分析。

sub_40561A()主函数内容如下:

作为新程序的主程序,之前先做了服务初始化操作,主要分析下面的函数。

回调函数EnumFunc:

sub_4053A6()

sub_4053A6()函数主要作用的就是加载dll。
在sub_4053A6()函数中,检查注册表,打开hra33.dll,拷贝2个资源到hra33.dll。大致如下:

释放资源:

sub_4034E5()函数加载hra33.dll,该dll具有dll劫持功能。

下面分析一下创建的四个线程当中的具体操作。

线程1:

初始化一堆字符串,根据下面获取主机名以及网络连接的函数,IPC内置的一些弱口令。

弱口令攻击:

线程1的作用就是:通过弱口令感染局域网其他主机, 如果连接成功通过,通过共享目录将病毒传播出去, 利用 at 定时执行启动任务, 通过 admin$共享传播病毒。

线程234:

第二、三、四线程功能基本相同,区别是连接的地址不同。

就拿线程2来说:

该线程首先与sbcq.f3322.org控制端进行网络连接,如果连接成功继续往下,不然就返回。然后初始化socket套接字。

sub_4060F0()函数当中获取了一些系统内存cpu等信息,

之后又加载了hra33.dll,将收集到的系统相关信息发送到控制端,等待接收控制端发来的指令,当接收的数据>6时才开始进行swtich…case中进行匹配。

指令 > 6时:

当指令为0x10时,会从网络上下载恶意代码到临时的文件然后执行它。

当指令为0x12:
打开互斥体,防止多开带来的检测风险。根据系统时间随机生成文件名,初始化一些信息,设置优先级,更新病毒,如果下载成功就删除服务,注册表以及自身的程序。执行新的程序,退出本身。

当指令为0x14:
打开IE浏览器并弹框。

当指令 < 0x6时:
指令等于0x6:
和0x12执行一致,打开互斥体,防止多开带来的检测风险。根据系统时间随机生成文件名,初始化一些信息,设置优先级,更新病毒,如果下载成功就删除服务,注册表以及自身的程序。执行新的程序,退出本身。

当指令为0x2:

进行初始化socket

当指令为0x3:

sub_403280函数,里面仍然会做一些判断,继续分析各个函数,会发现这是一个发包的函数。

GET数据请求头:

GET请求数据包:

指令为0x4:
仍旧是初始化socket。

至此线程2分析结束。

总结一下,它获取系统信息,cpu信息,内存信息,将这些信息发往控制端,通过控制端发来的指令类型执行不同的操作。

第二个远程连接服务器地址sbcq.f3322.org

第三个远程连接服务器地址www.520123.xyz

第四个远程连接服务器地址被加密,"1NTUHRYRExYRExYREx3c0eQJChcRFUM=",解密后是www.520520520.org:9426

接着来分析分析劫持lpk.dll的hra33.dll。

hra33.dll:

Dllmain函数中分析,获取模块名字后判断病毒文件是否存在,如果存在,就在同目录下将内存数据写入到.TMP临时文件,并创建一个胡互斥体,检测同目录下是否存在lpk.dll,如果存在,加载lpk.dll到zip,rar文件,并且同目录下创建exe。如果没有被加载就释放dll文件。之后获取原lpk.dll,将其替换为自己的lpk.dll,实现lpk劫持。

sub_1000142B()当中是添加压缩包的操作:

利用rar的shell命令进行操作,先检查同路径有没有lpk.dll,如果没有,就以最大速度解压文件,将lpk.dll添加到文件夹中,然后再重新压缩文件,最后删除临时文件。

以上就是hra33.dll当中的操作。

总结

手工查杀步骤或是工具查杀步骤或是查杀思路等。

1、使用PcHumter结束病毒程序

2、删除HKEY_LOCAL_MACHINE\system\CurrentControlset\services\Ghijkl Nopqrstu Wxy下注册表键;

3、结束服务:Ghijkl Nopqrstu Wxy,删除服务对应的exe文件。

4、删除C:\windows\system32\hra33.dll文件;

5、删除生成的lpk.dll文件。

样本文件如下,请在虚拟机中运行!!!
提取码1234
https://pan.baidu.com/s/1EeLqt_l263-6nscIGX1y7g

记一次lpk劫持样本分析相关推荐

  1. 记一次粗浅的钓鱼样本分析过程

    原创稿件征集 邮箱:edu@antvsion.com QQ:3200599554 黑客与极客相关,互联网安全领域里的热点话题漏洞.技术相关的调查或分析,稿件通过并发布还能收获200-800元不等的稿酬 ...

  2. 3601-lpk.dll劫持病毒分析

    文章目录 3601-lpk.dll劫持病毒分析 1.样本概况 1.1 样本信息 1.2 测试环境及工具 1.3 分析目标 1.4 样本行为概述 2.具体行为分析 2.1 主要行为 2.2 提取恶意代码 ...

  3. [系统安全] 三十一.恶意代码检测(1)恶意代码攻击溯源及恶意样本分析

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  4. R语言回归模型构建、回归模型基本假设(正态性、线性、独立性、方差齐性)、回归模型诊断、car包诊断回归模型、特殊观察样本分析、数据变换、模型比较、特征筛选、交叉验证、预测变量相对重要度

    R语言回归模型构建.回归模型基本假设(正态性.线性.独立性.方差齐性).回归模型诊断.car包诊断回归模型.特殊观察样本分析.数据变换.模型比较.特征筛选.交叉验证.预测变量相对重要度 目录

  5. linux 环境变量文件_应急响应系列之Linux库文件劫持技术分析,有点硬核哟

    0×01 菜逼阶段 Linux库文件劫持这种案例在今年的9月份遇到过相应的案例,当时的情况是有台服务器不断向个可疑IP发包,尝试建立连接,后续使用杀软杀出木马,重启后该服务器还是不断的发包,使用net ...

  6. CVE-2010-2883 从漏洞分析到样本分析

    本文章将从漏洞利用分析开始,到样本分析结束,其中涉及到的知识点有PDF格式.TTF字体格式.缓冲区溢出漏洞利用.PE文件格式.软件脱壳和恶意代码分析.其中会演示一些基本操作,方便初学者进行复现. 前置 ...

  7. Android版本的Wannacry文件加密病毒样本分析(附带锁机)

    一.前言 之前一个Wannacry病毒样本在PC端肆意了很久,就是RSA加密文件,勒索钱财.不给钱就删除.但是现在移动设备如此之多,就有一些不法分子想把这个病毒扩散到移动设备了,这几天一个哥们给了一个 ...

  8. APT样本分析 -plugx家族RAT⽊⻢

    APT样本分析 - plugx家族RAT⽊⻢ ⼀.样本概述 样 本 从 海 莲 花 服 务 器 扒 下 来 的 ( 经 提 醒 修 改 , 原 先 错 误 归 类 为 海 莲 花 ) , wsc_pr ...

  9. html 设置响应X-frame,X-Frame-Options(点击劫持)漏洞分析及web配置修复

    漏洞描述: 点击劫持(ClickJacking)是一种视觉上的欺骗手段.攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在网页上进行操作,此时用户将在不知情的情况下点击透明的ifram ...

最新文章

  1. java arraylist优点_Java中各种集合的特点总结
  2. 2020 年开源许可证最新趋势:67% 为宽松许可证
  3. windows编程一日一练(2)
  4. 设置MYSQL允许用IP访问
  5. sass 安装和使用
  6. 字节流抽象类 java
  7. 单用户修改root密码--centos6.2
  8. [iOS]如何把App打包成ipa文件,然后App上架流程[利用Application Loader]
  9. 为什么我发现自己照镜子觉得很好看,但是拍照就像变了一个人?
  10. Factorization Mechanism
  11. 用matlab绘制函数图像
  12. 51单片机——串口通信
  13. 思维拓展:用java实现巧妙过桥问题
  14. 第十五届全国大学生智能汽车竞赛华南赛区获奖信息
  15. 利用python爬取教务系统中成绩
  16. 物理层(网线)、数据链路层(交换机)、网络层(IP协议、ARP协议、ICMP协议、路由器)、VLAN(虚拟局域网)、HSRP协议、ACL、NAT
  17. provided port 35589 is not reachable
  18. vue使用ruoyi框架自制icon图标
  19. Python 短文本自动识别个体是否有自杀倾向
  20. KDRB-ZC变压器绕组阻抗测试仪

热门文章

  1. Win10安装使用Hadoop3.0.0
  2. 从无人货架到智能货柜,无人零售的探索
  3. 4、安全理论与框架-企业架构模型(EA)-DoDAF国防部架构框架
  4. 用友U8出入库流水账查询SQL
  5. Python基础 day3
  6. 二叉树的二叉链表表示与基本操作
  7. linux win10自带浏览器,win10系统下如何安装opera浏览器
  8. MSI(微星) GP62mvr Ubuntu16.04 + Opencv3.4.1配置教程
  9. JSP九大内置对象及基本使用
  10. 数据库系统概论第五版-重点知识点思维导图