病毒专题丨 plugx病毒

news2024/9/22 15:39:13

一、病毒简述

之前分析了一下,分析的较为简单,这次又详细分析了一下。
文件名称
00fbfaf36114d3ff9e2c43885341f1c02fade82b49d1cf451bc756d992c84b06
文件格式
RAR
文件类型(Magic)
RAR archive data, v5
文件大小
157.74KB
SHA256
00fbfaf36114d3ff9e2c43885341f1c02fade82b49d1cf451bc756d992c84b06
SHA1
1c251974b2e6f110d96af5b23ad036954ba15e4e
MD5
c1c9624b21f71e4565b941a37db3815a
CRC32
59832D3D
SSDEEP
3072:c8BHz/pBz9AycS0lEm2DchuhmE62duNkKa2W75u57cXehC9v:cgz/pnUS5chuHfu/aTI4Xeha
TLSH
T1A8F323A63B4FFB50C74C35A6EC2B4D09068B929D14CBB6093F14C7722F5A0667D1BB92
Tags
rar,contains_pe

二、环境准备

系统版本

Win7x86

三、行为分析

打开火绒剑监控:

 

转存失败重新上传取消

可以看到这里创建了文件夹,文件夹中创建了三个文件。最后有设置了注册表自启动,并退出当前进行,启动了拷贝入新目录的进程。

 

转存失败重新上传取消

之后就是很多的网络链接。

 

转存失败重新上传取消

这里又对文件进行了创建写入移动等操作,然后一直有网络链接的操作。

四、静态分析

1、病毒本体

病毒本体拖入Ida,打开start,F5

 

转存失败重新上传取消

可以看到这里很纯洁,加载了wsc.dll,并调用run函数,我们继续调试wsc.dll中run函数。

2、wsc.dll

跟进run函数,到达后到最下面:

 

转存失败重新上传取消

这里主要是一个LocalAlloc,申请了一段空间,然后进行for循环解密赋值,随后进入100015D0函数。

转存失败重新上传取消

这是函数VirtualProtect函数,修改了内存属性,随后开始调用这段Shellcode。我们动态附加病毒,跟进run函数,记录LocalAlloc函数申请空间地址,等for循环结束之后,二进制复制拷出这段内存,在010Editor中进行保存为文件,拖到Ida中,可以发现是一个dll。

3.shellcode分析

跟进dllmain函数,到了这里:

 

转存失败重新上传取消

通过进程参数,进行不同的函数功能,首先分析case1:

3.1、case1

进入sub_100090E0:
图1:

转存失败重新上传取消

图2:

 

转存失败重新上传取消

图3:

 

转存失败重新上传取消

可以看到这里是对exe,dll,dat三个文件在系统目录中的一个拷贝过程。

转存失败重新上传取消

之后在这里设置了程序自启动,结合病毒行为分析,这里的createProcess函数是启动了拷贝之后的exe,case1第二个函数是ExitProcess函数,这里很简单很简单,就到这里。

3.2、case2


 

转存失败重新上传取消

第一个函数是创建互斥体,完事后面进行参数比较,首先看函数sub_10014580:

 

转存失败重新上传取消

这里是设置了出册表network/version为1,返回去。
函数sub_100090E0和case1中一样,继续看函数sub_100153A0:

 

转存失败重新上传取消

先看第一个函数:

 

转存失败重新上传取消

看addtoken:

 

转存失败重新上传取消

可以看到这里是一个提权操作,接下来返回去看第二个函数:

 

转存失败重新上传取消

这里有四个函数,第一个是找到传入进程名,完事通过KillProcess函数杀掉。先看第一个函数:

 

转存失败重新上传取消

退出来,返回上一层看第三个函数:

转存失败重新上传取消


 

转存失败重新上传取消进入MyFileDeleandDir:

 

转存失败重新上传取消

可以看到这里就是删除文件,删除目录等操作。返回上层,看第四个函数sub_100119A0:

 

转存失败重新上传取消

删掉注册表自启动。
返回到case2,看函数sub_100019B0:

 

转存失败重新上传取消

分析函数sub_100164D0:

 

转存失败重新上传取消

简单的创建一个窗口。看函数sub_100165A0:

 

转存失败重新上传取消

这里是获取消息并处理。DestroyWindow是销毁窗口。最后看79行MySub_0,里面是创建了一个线程,跟进去回调:

 

转存失败重新上传取消

这里简单看了一下,都是网络连接之类的和获取本机信息的操作。

3.3、case3

 

 

 

这里是文件拷贝,查找窗口发送消息,打开了shell的操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/728687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【编程中的数学】:冰雹猜想

今天和大家分享一个令人着迷的数学谜题——冰雹猜想。这个谜题曾在1976年引起轰动,当时《华盛顿邮报》以头版头条刊登了一篇关于它的报道。让我们一起探索这个数学游戏的奥秘。 70年代中期,美国一所名牌大学的校园内兴起了一种数学游戏,这个游…

微信小程序使用vant时间选择器二次封装成自定义区间时间选择

目录 1.引入vant组件库 2.wxml页面 3.js页面 1.引入vant组件库 1.安装vant # 通过 npm 安装 npm i vant/weapp -S --production # 通过 yarn 安装 yarn add vant/weapp --production # 安装 0.x 版本 npm i vant-weapp -S --production 2.将 app.json 中的 "style&quo…

2-需求

目录 1.需求的定义 1.1.用户需求 1.2.软件需求 PS:软件需求规格说明书 2.为什么有需求? PS:为什么需求对软件测试人员如此重要? 3.测试人员眼里的需求 4.如何深入了解需求? 4.1.参加需求评审会议 4.2.查阅文…

数据结构初阶--二叉树OJ1

目录 二叉树的最大深度思路分析代码实现 相同的树思路分析代码实现 单值二叉树思路分析代码实现 二叉树的前序遍历思路分析代码实现 翻转二叉树思路分析代码实现 对称二叉树思路分析代码实现 另一棵树的子树思路分析代码实现 二叉树的最大深度 先来看题目描述 思路分析 题目…

QT学习—串口LED小项目

前言——博主刚开始接触QT,本文参考博主嵌入式大杂烩的一篇博文易懂 | 手把手教你编写你的第一个上位机,初步学习一下QT开发。 文章目录 一、QT安装二、新建工程三、创建上位机界面3.1 修改控件名3.2 添加槽函数 四、上位机程序打包五、上位机测试六、总…

不要用 in + 子查询

前两天我的 VIP 用户向我抛出了一个 SQL 问题,他的 MySQL 是 8.x版本: 大概意思如下 sql : select * from A where id in (select max(id) as id from A where task_id in(1,2,3) group by task_id );这个 A 表中是有 task_id 这个索引的。 …

【转换】编码转换工具笔记

应用场景 应用场景是程序整合第三方库多平台运行,第三方库window平台编译,代码移植到linux出现bom问题 思考解决 windows使用utf-8编码,linux使用utf-8无bom编码 工具主要针对utf-8编码文件,能够批量添加删除BOM,无…

SpringBoot获取项目日志

目的 对于布署在远端的服务,我们想快速的获取到日志。对于使用了日志服务,也可能因为上报间隔太长,日志不够实时。 所以想通过一些方式,可以不用进入到容器内也可以简单快速获取到日志,而且是实时的日志。目标就是获…

c语言进阶-动态内存管理

重点学习内容 动态内存管理四大函数 Malloc 内存申请函数 返回值是无类型的指针,指向分配的内存的首地址。申请失败会返回空指针。 malloc返回值是void*类型,使用时需要强制转换成所需类型。 malloc和free匹配使用,但是如果不free释放内存&…

解析3D视觉系统在引导金属件上下料中的应用

原创 | 文 BFT机器人 引言 Introduction 机器视觉技术作为一种高科技的智能化技术,正在工业生产领域发挥着越来越重要的作用。它利用计算机视觉技术,通过获取、处理和分析图像,实现对产品和工艺过程的监测、检测和控制。 随着人工智能技术的…

[SUCTF2019]hardcpp

前言 又遇到ollvm了 解混淆 可以直接用angr运行脚本去除除控制流平坦化,最好在ancoda等管理环境里面安装angr不然问题很多 https://github.com/Pure-T/deflat 去除前 去除后,它将多余的直接nop了 分析 主要加密区域位于匿名函数这一块&#xff0c…

前端学习——Web API(Day1)

Web API基本认知 Web API 基本认知 作用和分类 DOM DOM树 DOM对象 获取DOM对象 根据CSS选择器来获取DOM元素 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" …

【教学类-36-08】转学“纪念册“留念(生肖用midjounery-niji)

作品样式 背景需求&#xff1a; 即将离开班级&#xff0c;我想收集一份28个孩子的绘画册做——留念转学纪念册. 材料准备&#xff1a; 幼儿照片 ——3月初到中6班拍摄的幼儿手持学号名字纸的照片&#xff08;为了背诵幼儿信息而拍摄的照片&#xff0c;统一竖版&#xff09; 生…

jmeter 连接数据库常见报错

1. 不允许主机连接到MySQL 报错信息&#xff1a; Response message:java.sql.SQLException: Cannot create PoolableConnectionFactory (null, message from server: "Host 192.168.1.6 is not allowed to connect to this MySQL server") 说明&#xff1a;本机的地…

代码随想录day10

232. 用栈实现队列 思路&#xff1a;用两个list去模拟栈的操作&#xff0c;一个入栈list&#xff0c;一个出栈list. 并且了解栈的操作&#xff0c;pop,peek,push. 代码&#xff1a; def __init__(self):self.stack1 [] #入栈self.stack2[] #出栈def push(self, x: int) ->…

【Linux】常用网络命令:ping\netstat\mount\ifconfig

ping命令用于检测主机&#xff0c;执行ping命令指令会使用ICMP传输协议&#xff0c;发出请求回应的信息&#xff0c;若远程主机的网络功能没有问题&#xff0c;就会回应该信息。   netstat命令用于显示网络状态&#xff0c;利用netstat 指令可让你得知linux系统的网络情况。…

图像 跟踪 - MOTR: End-to-End Multiple-Object Tracking with Transformer (ECCV 2022)

MOTR: End-to-End Multiple-Object Tracking with Transformer - 使用Transformer进行端到端多目标跟踪&#xff08;ECCV 2022&#xff09; 摘要1. 引言2. 相关工作3. 方法3.1 目标检测中的查询3.2 检测查询和跟踪查询3.3 Tracklet-Aware标签分配3.4 MOTR架构3.5 查询交互模块3…

git-创建文件夹方式管理分支

文章目录 前言一、效果图二、git命令总结 前言 下面介绍一个git创建文件夹的方式管理分支的方法&#xff0c;在sourcetree上显示目录样式&#xff0c;好对每个版本做管理&#xff0c;可以更方便追踪历史版本代码。 一、效果图 1、git文件夹方式管理分支 二、git命令 1、在本…

SSMP整合案例(14) 将界面查询改为分页查询

前面几篇文章过后 我们的项目基本环境就算搭好了 但是 我们下面的分页显然就是个摆设 这里 我们就先将查询的方法改成分页的 我们 java项目之前做了这个分页的函数 那么 我们vue项目 直接在 src下的 api 下的bookApi.js中加上对应的函数 export function getPage(params){r…

动态SLAM论文(8) — DynaSLAM II: Tightly-Coupled Multi-Object Tracking and SLAM

目录 1 Introduction 2 Related Work 3 Method A. 符号表示 B. 物体数据关联 C. 以对象为中心的表示 D. 对象束调整 E. 边界框 4 Experiments A. 视觉里程计 B. 多目标跟踪 C. 时间分析 5 结论和未来工作 摘要 —— 在视觉SLAM算法中&#xff0c;假设场景是刚性的是…