一例感染型病毒样本的分析

news2024/11/26 10:55:32

这个样本是会释放两个dll和一个驱动模块,通过感染USB设备中exe文件传播,会向C&C下载PE执行,通过rookit关闭常用的杀软,是一例典型的感染型病毒,有一定的学习价值。

原始样本

样本的基本信息

Verified: Unsigned
Link date: 16:41 2010/8/3
Publisher: n/a
Company: n/a
Description: n/a
Product: n/a
Prod version: n/a
File version: n/a
MachineType: 32-bit
MD5: 9DBD5F2FD6DC745CFF7BF40F79A2751B
SHA1: EF5AA1DC70293449BE93B848343C262D820747C9
PESHA1: 98B25E06B3F51E9AA30595200BE98360ADB45F6F
PE256: C51B1056C7CCF08DD8C4AD5C8AC042741BE50A68A66F68C5B9A61B2C6C6BBDA6
SHA256: A007B83DB8CBF3A443A172D73A2E5F9539CCEEBDB1E86599AAEE8D17CB525766
IMP: 44E7AF86D13BD689602E96DCCC077D31

该样本的功能比较简单,在系统目录下释放了两个dll,文件名是随机生成的,使用rundll32调用这两个dll的Execute函数。
然后把自己拷贝系统目录(C:\windows\system32\)下,命名为system.exe

释放的两个dll的基本信息
0x1600-0xd600.dll:

Verified: Unsigned
Link date: 16:40 2010/8/3
Publisher: n/a
Company: n/a
Description: n/a
Product: n/a
Prod version: n/a
File version: n/a
MachineType: 32-bit
MD5: F42BDE03A60AA8430290C9598DB10D40
SHA1: CDFBDD3CBC04150D1E1B1892DEA6450A379CA00D
PESHA1: AF2D794219940E61717BA2F2DED642D066C7C9F7
PE256: 5E685D465FAC902157D8BEAF3A8155A4D5C99772B40F3E548452F3B5A0101BAF
SHA256: E1E875C1D42F3196306887D31CFD5D49C0BED29926BCB0DAAC1B9DCD365127CE
IMP: 9A36BF7D2561DAEFD227467B3E92D494

0xec00-0x4a00.dll:

Verified: Unsigned
Link date: 16:40 2010/8/3
Publisher: n/a
Company: n/a
Description: n/a
Product: n/a
Prod version: n/a
File version: n/a
MachineType: 32-bit
MD5: 056AC80D746CEE3A003D283ADEECA989
SHA1: A0985DDDFB010D8F784B1515264691008CF8673A
PESHA1: 215D42B95AC59DF7338F0CEE5873695E24792AE4
PE256: C3ADBAD848CBF746E066419B5DED789BF378F3FCE29C5D879AFDE2E2D37B4E7B
SHA256: C115B42F9838E9BA531D9A1D5DC2881BBF2874933E8F85314FAEBA90064076DA
IMP: 970FAC8680ECC98ADE1D72E260CA2FC7

下面重点分析一下这两个dll

0xec00-0x4a00.dll

首先创建了一个名为SeBebugPrivilege的互斥量,防止双开。

创建了三个线程。

线程1 sub_10002000

第一线程是从CC下载PE执行
首先会从http://tsa13.t12hg.com:8080/sa13/d.txt下载一个文本文本,其中每一行是一个PE文件链接,然后再依次下载这些PE文件,保存为C:\windows\system32[随机字符].exe,调用winexec执行。

线程2 sub_100021B0

线程2 在注册表中将自身添加为开机启动项,启动项名为system,指向C:\windows\system32\system.exe

线程3 sub_10002E20

线程3的作用是感染USB设备
首先遍历系统内所有盘符,获取驱动器属性,找到USB设备

遍历U盘中所有目录,找到PE文件,删除同名的exet文件,感染exe

感染EXE过程:

在目标pe文件中添加两个节,

第一个节 节名是随机生成的,写入sub_10005000,并将pe的执行入口修改到这里。

第二个节 节名为空,内容是自身副本.

当用户点击U盘中被感染的exe文件时,会首先执行sub_10005000中的代码,首先会遍历自身的节表,找到最后一个节(里面是system.exe的副本),将其保存为C:\windows\system32\system.exe,并执行。

将被感染的文件重命名为.exet文件,并隐藏。
还原出原始的PE文件,保存后再打开,这样用户完全无感的情况下就被感染了。

0x1600-0xd600.dll

这个dll的主要功能是关闭杀软,主要的功能在Exucute函数中

首先关闭和禁用windows defender和系统防火墙

解密并释放了一个驱动程序,保存在

C:\Program Files\\KAV\\CDriver.sys

加载并启动这个驱动,服务名为aav,这个驱动程序主要用来关闭杀软,下一节会重点分析。

首先关闭系统中常见杀软的进程和服务,最后关闭了系统的安全策略

重点分析一下KillAV_100016A0函数。

KillAV_100016A0

该函数首先打开驱动设备对象,驱动的符号链接名为\\.\ccc

该函数中有一个杀软文件名的hash列表

AvHashList[0] = 0x164CFA74;                   // 杀软程序的hash值
  AvHashList[1] = 0x45470A4A;
  AvHashList[2] = 0x4FEDA50D;
  AvHashList[3] = 0x19C93F2D;
  AvHashList[4] = 0x13CA8828;
  AvHashList[5] = 0x3ADCBDE7;
  AvHashList[6] = 0x2B3CDE89;
  AvHashList[7] = 0x1C847040;
  AvHashList[8] = 0x537987BF;
  AvHashList[9] = 0x478FD21E;
  AvHashList[10] = 0x498C0C71;
  AvHashList[11] = 0x5583BB21;
  AvHashList[12] = 0x1BAB5D2F;
  AvHashList[13] = 0x4F2FBA5D;
  AvHashList[14] = 0x76497166;
  AvHashList[15] = 0x7C98CB4A;
  AvHashList[16] = 0x3DF2B1A5;
  AvHashList[17] = 0x6503969F;
  AvHashList[18] = 0x7B9B11DA;
  AvHashList[19] = 0x66B2765F;
  AvHashList[20] = 0x42ECD6E9;
  AvHashList[21] = 0x4943E14C;
  AvHashList[42] = 0xCEFE30D;
  AvHashList[22] = 0x15D2C220;
  AvHashList[23] = 0x7D4E0DE4;
  AvHashList[24] = 0x6FC69904;
  AvHashList[25] = 0x756ED81C;
  AvHashList[26] = 0x58323429;
  AvHashList[27] = 0xB0C69E2;
  AvHashList[28] = 0x394DA81A;
  AvHashList[29] = 0x65A5668E;
  AvHashList[30] = 0x47F1C7C1;
  AvHashList[31] = 0x3F28EA27;
  AvHashList[32] = 0x47961D3B;
  AvHashList[33] = 0x217F3E03;
  AvHashList[34] = 0x2034E6E0;
  AvHashList[35] = 0x50A10259;
  AvHashList[36] = 0x7D6C72B3;
  AvHashList[37] = 0x3F4DB63D;
  AvHashList[38] = 0x4AB0954F;
  AvHashList[39] = 0xB4642F0;
  AvHashList[41] = 0x40832288;

向驱动模块发送指令,hook SSDT中的ZwCreateProcessEx函数,拦截上述进程的进程创建操作,控制码为0x222006。删除注册表中Macfee的服务项。

遍历系统中的所有进程,计算其文件hash,若在上面的列表中,将进程的pid发送给驱动程序,将其关闭,控制码为0x222009。

停止和删除360安全卫士、瑞星、McAfee、NOD32的服务。

最后,向驱动发送指令,卸载SSDT中针对ZwCreateProcessEx的HOOK,控制码为0x222007.

下面重点分析一下这个驱动程序。

CDriver.sys

这个驱动的主要功能是关闭杀软进程,基本信息为

Verified:	Unsigned
Link date:	16:31 2010/8/2
Publisher:	n/a
Company:	Microsoft Corporation
Description:	The driver for the supercool driver-based tool
Product:	Supercool driver-based tool
Prod version:	1.0
File version:	1.0.0.950
MachineType:	32-bit
MD5:	6AD5C8644299EE28CBB2523C89A82B8E
SHA1:	71F8C912D2156630CE2F562FB8B1C187E1AA29E1
PESHA1:	1314038EEEF5A1BA06EC2FAC1DA7519DA34F5F10
PE256:	A8A289DB92D7B0318967B79A32C442AAD5AD33E692FD9EFFAA80F18AB6C7C96F
SHA256:	9FA2C365DE2A920DA38E6CFA11EEC698DED6068DAF96A82F979A27E05CBF1164
IMP:	9C213807982738BE9582191EA86403C9
pdb:c:\users\icyheart\docume~1\visual~2\projects\download\driver\objchk_wxp_x86\i386\Driver.pdb

在DriverEntry中创建设备和符号链接

设备名为 \Device\ccc
符号链接名为 \DosDevices\ccc 应用层\\.\ccc


在IRP_MJ_DEVICE_CONTROL消息的处理函数中处理应用层DeviceIoControl的指令。

这个函数会根据不同的控制码执行不同的操作。

  • 0x22E14B 根据应用层输入的service_id和地址 设置SSDT中特定api
  • 0x222009 根据pid关闭指定进程
  • 0x222006 Hook ZwCreateProcessEx 拦截特定的杀软进程的进程创建操作
  • 0x222007 UnHook ZwCreateProcessEx

在hook函数中,提取出当前进程的路径,计算文件名的hash值与给定的列表中hash值进行比对,如果在其中,就阻止其创建进程。

总结

IOC

HASH
9DBD5F2FD6DC745CFF7BF40F79A2751B
F42BDE03A60AA8430290C9598DB10D40
056AC80D746CEE3A003D283ADEECA989
6AD5C8644299EE28CBB2523C89A82B8E

文件
C:\windows\system32\system.exe
或C:\windows\syswow64\system.exe
C:\windows\system32\[随机名].dll
或C:\windows\syswow64\[随机名].dll
C:\Program Files\KAV\CDriver.sys

互斥量
SeBebugPrivilege


注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\system
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aav

url
http://tsa13.t12hg.com:8080/sa13/d.txt

驱动信息
设备对象名 \Device\ccc
符号链接名为 \DosDevices\ccc 

pdb
c:\users\icyheart\docume~1\visual~2\projects\download\driver\objchk_wxp_x86\i386\Driver.pdb

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

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

相关文章

免费无需魔法会语音聊天的ChatGPT

今天发现了一个很好的ChatGPT,可以语音聊天,而且免费无需魔法 角色目前包括夏洛克、雷电影等等,对话的声调完全模拟了原角色! 目前只有英文和日语两种对话,我们可以文字输入或者语音输入,中文即可&#xff…

泰克Tektronix DPO5204B混合信号示波器

特征 带宽:2 GHz输入通道:4采样率:1 或 2 个通道上为 5 GS/s、10 GS/s记录长度:所有 4 个通道 25M,50M:1 或 2 个通道上升时间:175 皮秒MultiView zoom™ 记录长度高达 250 兆点>250,000 wf…

M序列测量幅频特性

M序列 M 序列是一种伪随机序列,具有很好的伪噪声特性,常用于信道噪声测试和保密通信。不过 M 序列还有一个用途,也就是本文所介绍的——通过 M 序列测量频率响应。在讨论这个问题之前,我们先介绍 M 序列的特征与生成方法。 M 序列…

活力二八:CRM助力销售管理再现“浓缩”新活力

活力28、沙市日化! 央视段子手朱广权再次喊出这句口号时,迅速激活了人们心中对于曾经“日化一哥”的记忆。 作为市场占率曾超 70% 的家清品牌,活力二八业务始于1950年,前身为沙市油脂化工厂,伴随中国改革开放大潮&…

第十一章_SpringBoot集成Redis

总体概述 redisTemplate-jedis-lettuce-redission之间的的联系 1、redisTemplate是基于某个具体实现的再封装,比如说springBoot1.x时,具体实现是jedis;而到了springBoot2.x时,具体实现变成了lettuce。封装的好处就是隐藏了具体的…

大家都在用的视频音频提取器,免费用!

随着互联网的日益普及,人们可以通过多种方式获取和分享媒体内容,例如通过社交媒体、视频共享网站等。但是,在处理媒体文件时,提取其中的音频或视频仍然是一个挑战。这就是为什么越来越多的人都在使用免费的视频音频提取器。 这些…

Node框架 【Koa】介绍、安装以及使用

文章目录 🌟前言🌟介绍🌟koa优势🌟洋葱模型🌟安装🌟具体步骤:🌟创建项目目录🌟初始化项目🌟进入目录,安装koa 🌟使用🌟案例&#x1f3…

C++STL详解(十一)-- 位图(bitset)

文章目录 位图的介绍位图的引入位图的概念位图的应用 位图的使用位图的定义位图的成员函数位图运算符的使用 位图的模拟实现成员函数构造函数set reset testflip,size,countnone,any,all 位图应用题扩展位图模拟实现代码 位图的介绍 位图的引入 有一道面试题: 给40亿个不重复…

QFIELD-GIS工具 定位功能使用方法

一、 简介 定位是一款GIS APP重要功能,可以帮助我们快速在地图上找到现在所处的位置。结合地图我们就可以快速了解我们所处环境的情况。同时可以利用APP的信息标注采集功能采集当前位置的信息到数据库中。 下面我们来介绍【QFIELD-GIS】如何进行GPS定位、如何…

平衡二叉树的实现(包含旋转)

平衡二叉树是子啊二叉排序树的基础上建立的,他的概念就是这棵树中的任意节点的平衡因子都必须要大于1或是小于-1。平衡因子就是这个节点的左子树高度减右子树高度所得到的差。那么,它有什么优点呢?为什要在二叉排序树的基础上来建立这个平衡二…

语音芯片排行榜,为何唯创知音WT588F语音芯片如此受欢迎

随着智能家居、智能玩具、智能机器人等领域的快速发展,语音芯片逐渐成为智能硬件的重要组成部分。在众多语音芯片中,唯创知音WT588F语音芯片备受关注,成为市场上备受欢迎的产品。那么,WT588F语音芯片具备哪些功能,为何…

您的云,您做主:Google Distributed Cloud Hosted 全面可用

近日,谷歌宣布Google 分布式云(GDC) 托管的全面可用性来扩展该产品组合,它支持具有最严格要求的客户的需求,包括机密、受限和绝密数据。 GDC Hosted 包括部署、操作、扩展和保护完整托管云所需的硬件、软件、本地控制平面和操作工具。此外&…

【高危】MySQL Server拒绝服务漏洞(CVE-2023-21912)

漏洞描述 MySQL是Oracle开源的关系型数据库管理系统。 MySQL Server 受影响版本存在拒绝服务漏洞,攻击者者无需身份验证可发送连接数据包导致MySQL Server 崩溃拒绝服务。官方未公布相关细节,可能由于对客户端设置字符集的处理不当,当客户端…

关于倾斜摄影超大场景的三维模型轻量化中的数据质量优化方法浅析

关于倾斜摄影超大场景的三维模型轻量化中的数据质量优化方法浅析 倾斜摄影超大场景的三维模型轻量化处理需要兼顾数据大小和渲染性能,同时保证模型的准确性和真实感。为了提高轻量化质量,可以从以下方面入手: 1、选择合适的轻量化算法和参数…

OpenCV实战5 车牌号识别

原文在这里,参考这个进行了改进 感觉学到了很多东西,便在这里作下笔记。 效果: 目录 一、知识点学习: 1. fstream 2. 形态学开操作与形态闭操作 2.1 第一个角度:消除较小的联通区域 vs 弥合较小的联通区域 2.2 第二个角度&…

【LeetCode】222.完全二叉树的节点数

1.问题 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位…

【MySQL】存放页面的大池子——InnoDB的表空间

1 前置知识回顾 1.1 页面类型 InnoDB是以页为单位管理存储空间的。我们的聚簇索引(也就是完整的表数据)和其他的二级索引都是以B树的形式保存到表空间中,而B树中的节点就是数据页,这个数据页的类型名其实是 FIL_PAGE_INDEX。 除…

JS手撕代码系列【手写实现Promise.all】

Promise.all() 方法接收一个 Promise 对象数组作为参数,返回一个新的 Promise 对象。该 Promise 对象在所有的 Promise 对象都成功时才会成功,其中一个 Promise 对象失败时,则该 Promise 对象立即失败。 本篇博客将手写实现 Promise.all() 方…

初始 Ajax

文章目录 一、服务器的基本概念1、客户端与服务器2、url地址3、客户端与服务器的通信过程4、服务器对外提供资源5、资源的请求方式 二、初始 Ajax1、了解Ajax2、JQuery中的Ajax(1)$.get()函数的用法(2)$.post()函数的语法&#xf…

国民技术N32G430开发笔记(7)- Gpio EXTI中断的使用

GPIO EXTI中断的使用 1、N32G430C8L7_STB板卡带有三个用户按键,我们初始化key1 key2 按键,当按键按下时,在中断处理函数里输出我们的打印信息。 2、根据芯片手册上N32G430C8L7有24 条中断线,16条分配给GPIO使用,其余八…