长亭百川云 - 文章详情

浅谈杀软挂钩技术

木星安全实验室

67

2024-07-13

2020年即将结束,我看过许多不同种类的杀毒规避方法。值得注意的是,之前的反钩挂技术再次兴起,可以应用于AV和EDR系统。如果我们被钩住了,那是谁在钩我们?若要检查杀毒软件或EDR系统是否已经安装好,可以用WMIC查询Windows安全中心记录的杀软。

wmic /node:localhost /namespace:\\root\SecurityCenter2 path

(由StackOverflow的Sam Denty提供)

该方法适用于大多数情况。但如果杀毒软件或EDR系统注册了Windows安全中心的命名空间,那么该方法只返回一个字符串。如果软件尚未注册,那么查询失败。由于我们依靠的是安全无毒的软件来注册,我决定用不同的路径。本文用于记录杀毒后的残留物:计算机上的杀软能指出是否已经安装了安全无毒的软件,这样一来,我们就不用依赖Windows安全中心的命名空间。

本文描述了以下几款杀软:

小红伞(Avira):无法检测挂钩,可以定位驱动程序/minifilters

- F-secure:无法检测挂钩,可以定位驱动程序/minifilters

诺顿(Norton):3个被钩住的DLL,可以定位驱动程序/minifilters

- 趋势科技(TrendMicro):3个被钩住的DLL,可以定位驱动程序/minifilters

- WebRoot:5个被钩住的DLL,可以定位驱动程序/minifilters

比特梵德(BitDefender):6个被钩住的DLL,可以定位驱动程序/minifilters

- MalwareBytes:8个被钩住的DLL,可以定位驱动程序/minifilters

以上杀软纯属随机筛选,排位也是随机的。攥写本文的目的是为了回答以下问题:

  1. 什么功能会被钩住?

  2. 如果系统上有杀毒软件,那么是哪个杀毒软件?

小红伞(Avira)

驱动程序:

名称

描述

路径

avkmgr.sys

小红伞管理驱动程序

C:\Windows\System32\Drivers\

avipbb.sys

小红伞增强安全性能的驱动程序

C:\Windows\System32\Drivers\

avusbflt.sys

小红伞USB过滤驱动程序

C:\Windows\System32\Drivers\

avdevprot.sys

小红伞USB功能驱动程序

C:\Windows\System32\Drivers\

avnetflt.sys

小红伞WFP网络驱动程序

C:\Windows\System32\Drivers\

avgntflt.sys

小红伞Minifilter驱动程序

C:\Windows\System32\Drivers\

F-secure

驱动程序:

名称

描述

路径

nif2s64.sys

F-Secure NIF2核心驱动程序

ProgramFilesx86\F-Secure\

Antivirus\Ultralight\..\

fshs.sys

DG 64位内核模块

ProgramFilesx86\F-Secure\

Antivirus\Ultralight\..\

fsulgk.sys

F-Secure Gatekeeper 64 位

ProgramFilesx86\F-Secure\

Antivirus\Ultralight\..\

诺顿(Norton)

驱动程序:

名称

描述

路径

BHDrvx64.sys

Bash驱动程序

ProgramFile\NortonSecurity

\NortonData\..\

IDSVia64.sys

IDS核心驱动程序

ProgramFile\NortonSecurity

\NortonData\..\

SymEvnt.sys

赛门铁克事件平台

ProgramFile\NortonSecurity

\NortonData\..\

被挂钩的函数

KERNELBASE.DLL

VirtualAllocEx

CreateFileMappingW

CreateFileMappingNumaW

CreateFileW

MapViewOfFile

VirtualProtect

HeapCreate

VirtualAlloc

MapViewOfFileEx

CreateRemoteThreadEx

WriteProcessMemory

VirtualProtectEx

NTDLL.DLL

RtlAddVectoredExceptionHandler

RtlRemoveVectoredExceptionHandler

LdrLoadDll

RtlCreateHeap

NtSetInformationProcess

NtMapViewOfSection

NtWriteVirtualMemory

NtCreateSection

NtProtectVirtualMemory

NtCreateFile

NtCreateProcess

NtCreateThreadEx

NtCreateUserProcess

KiUserExceptionDispatcher

N/A

KERNEL32.DLL

CreateFileMappingA

SetProcessDEPPolicy

VirtualAlloc

MapViewOfFile

CreateFileMappingW

VirtualProtect

HeapCreate

MapViewOfFileEx

CreateRemoteThread

VirtualAllocEx

VirtualProtectEx

WriteProcessMemory

WinExec

N/A

N/A

趋势科技(TrendMicro)

驱动程序:

名称

描述

路径

TMBEC64.sys

趋势科技早期启动驱动程序

C:\Windows\System32\Drivers\

tmnciesc.sys

趋势科技NICE扫描器

C:\Windows\System32\Drivers\

tmeevw.sys

趋势科技鹰眼驱动程序

C:\Windows\System32\Drivers\

tmeyes.sys

趋势科技鹰眼驱动程序模块

C:\Windows\System32\Drivers\

TMUMH.sys

趋势科技UMH驱动程序x64

C:\Windows\System32\Drivers\

tmusa.sys

趋势科技Osprey扫描驱动程序

C:\Windows\System32\Drivers\

DLL:

名称

描述

路径

tmmon64.dll

趋势科技UMH检测引擎

System32\tmumh\20019\..\

TmUmEvt64.dll

趋势科技用户模式钩子

System32\tmumh\20019\..\

TmAMSIProvider64.dll

趋势科技AMSI提供者模块

System32\TmAMSI\TmAMSIProvider64.dll

被挂钩的函数

KERNELBASE.DLL

CreateFileA

CreateFileW

LoadLibraryExW

CreateFileMappingW

LoadLibraryExA

CreateRemoteThreadEx

VirtualAlloc

MapViewOfFile

VirtualProtect

HeapCreate

WriteProcessMemory

VirtualProtectEx

LoadLibraryA

LoadLibraryW

N/A

KERNEL32.DLL

CreateFileMappingA

N/A

N/A

NTDLL.DLL

RtlCreateHeap

LdrUnloadDll

LdrUnloadDll

NtMapViewOfSection

NtUnmapViewOfSection

NtContinue

NtCreateSection

NtProtectVirtualMemory

NtCreateFile

NtSetContextThread

N/A

N/A

WebRoot

驱动程序:

名称

描述

路径

WRkm.sys

Webroot SecureAnywhere

C:\Windows\System32\Drivers\

DLL

名称

描述

路径

WRusr.dll

Webroot SecureAnywhere

Windows\SysWOW64\WRusr.dll

被挂钩的函数

ADVAPI32.DLL

OpenSCManagerW

OpenServiceW

OpenSCManagerA

StartServiceW

ControlService

CreateServiceA

CreateServiceW

DeleteService

OpenServiceA

StartServiceA

WmiExecuteMethodW

N/A

USER32.DLL

PostThreadMessageA

PostMessageA

SendMessageA

SendMessageTimeoutA

SetWindowTextA

CreateWindowExA

SetWindowsHookExA

DrawTextExW

CreateWindowExW

PostMessageW

SendMessageW

SetWindowTextW

PostThreadMessageW

SendMessageTimeoutW

SetWindowsHookExW

SetWinEventHook

SendMessageCallbackW

SendNotifyMessageW

ExitWindowsEx

MessageBoxTimeoutW

SendMessageCallbackA

KERNELBASE.DLL

OutputDebugStringA

CreateProcessInternalW

N/A

NTDLL.DLL

NtWaitForSingleObject

NtDeviceIoControlFile

NtRequestWaitReplyPort

NtOpenProcess

NtMapViewOfSection

NtTerminateProcess

NtDelayExecution

NtWriteVirtualMemory

NtOpenEvent

NtAdjustPrivilegesToken

NtQueueApcThread

NtCreateEvent

NtCreateSection

NtCreateThread

NtProtectVirtualMemory

NtTerminateThread

NtWaitForMultipleObjects

NtSetValueKey

NtAlpcConnectPort

NtAlpcCreatePort

NtAlpcCreatePortSection

NtAlpcCreateSectionView

NtAlpcSendWaitReceivePort

NtAssignProcessToJobObject

NtConnectPort

NtCreateMutant

NtCreatePort

NtCreateSemaphore

NtCreateThreadEx

NtDeleteKey

NtDeleteValueKey

NtMakeTemporaryObject

NtOpenMutant

NtOpenSemaphore

NtOpenThread

NtQueueApcThreadEx

NtRequestPort

NtSecureConnectPort

NtSetContextThread

NtShutdownSystem

NtSystemDebugControl

CsrClientCallServer

URLMON.DLL

URLDownloadToFileW

URLDownloadToFileA

N/A

WININET.DLL

InternetOpenA

InternetCloseHandle

InternetOpenUrlA

GDI32.DLL

BitBlt

TextOutW

N/A

KERNEL32.DLL

GetTickCount

N/A

N/A

RPCRTT4.DLL

RpcSend

RpcSendReceive

NdrSendReceive

比特梵德(BitDefender)

驱动程序:

名称

描述

路径

atc.sys

BitDefender主动威胁服务

C:\Windows\System32\Drivers\

DLL:

名称

描述

路径

bdhkm64.dll

BitDefender钩住DLL

Program Files\BitDefender AntivirusFree\bdkdm\...\

atcuf64.dll

BitDefender主动威胁服务

Program Files\BitDefender AntivirusFree\atcuf\...\

被挂钩的函数

KERNELBASE.DLL

DefineDosDeviceW

CreateProcessW

CreateProcessA

CreateProcessInternalA

CreateProcessInternalW

PeekConsoleInputW

CloseHandle

DeleteFileW

OpenThread

CreateRemoteThreadEx

GetProcAddress

MoveFileWithProgressW

MoveFileExW

GetModuleBaseNameW

GetModuleInformation

GetModuleFileNameExW

EnumProcessModules

SetEnvironmentVariableW

EnumDeviceDrivers

SetEnvironmentVariableA

QueueUserAPC

GetLogicalProcessorInformationEx

LoadLibraryA

LoadLibraryW

GetLogicalProcessorInformation

GetApplicationRecoveryCallback

EnumProcessModulesEx

PeekConsoleInputA

ReadConsoleInputA

ReadConsoleInputW

GenerateConsoleCtrlEvent

ReadConsoleA

ReadConsoleW

CreateRemoteThread

N/A

N/A

USER32.DLL

SetWindowsHookExW

CallNextHookEx

FindWindowExA

SendMessageA

PeekMessageA

PeekMessageW

GetDesktopWindow

SendMessageW

SetWindowLongW

GetKeyState

PostMessageW

EnumDesktopWindows

EnumWindows

GetMessageW

SystemParametersInfoW

FindWindowW

GetAsyncKeyState

SetPropW

FindWindowExW

GetDC

GetMessageA

SystemParametersInfoA

SendNotifyMessageW

SetWinEventHook

PostMessageA

UnhookWindowsHookEx

GetClipboardData

SetWindowLongA

SetClipboardData

SendNotifyMessageA

GetDCEx

GetKeyboardState

GetRawInputData

GetWindowDC

RegisterRawInputDevices

SetWindowsHookExA

FindWindowA

SetPropA

N/A

COMBASE.DLL

CoCreateInstance

CoGetClassObject

N/A

KERNEl32.DLL

Process32NextW

CreateToolhelp32Snapshot

MoveFileExA

MoveFileWithProgressA

DefineDosDeviceA

N/A

GDI32.DLL

CreateDCW

BitBlt

CreateCompatibleDC

CreateBitmap

CreateDCA

CreateCompatibleBitmap

NTDLL.DLL

RtlImageNtHeaderEx

NtSetInformationThread

NtClose

NtOpenProcess

NtMapViewOfSection

NtUnmapViewOfSection

NtTerminateProcess

NtWriteVirtualMemory

NtDuplicateObject

NtReadVirtualMemory

NtAdjustPrivilegesToken

NtQueueApcThread

NtCreateProcessEx

NtCreateThread

NtResumeThread

NtAlpcConnectPort

NtAlpcCreatePort

NtAlpcSendWaitReceivePort

NtCreateProcess

NtCreateThreadEx

NtCreateUserProcess

NtQuerySystemEnvironmentValueEx

NtRaiseHardError

NtSetContextThread

NtSetSystemEnvironmentValueEx

RtlWow64SetThreadContext

RtlReportException

MalwareBytes

驱动程序:

名称

描述

路径

mbae64.sys

MalwareBytes反漏洞利用

C:\Windows\System32\Drivers\

farft.sys

MalwareBytes Bytes Antiransomware

C:\Windows\System32\Drivers\

MbamChameleon.sys

MalwareBytes Chameleon

C:\Windows\System32\Drivers\

mbam.sys

MalwareBytes实时保护

C:\Windows\System32\Drivers\

mbamswissarmy.sys

MalwareBytes SwissArmy

C:\Windows\System32\Drivers\

mwac.sys

MalwareBytes网络保护

C:\Windows\System32\Drivers\

DLL:

名称

描述

路径

mbae.dll

MalwareBytes反漏洞利用

Program Files\MalwareBytes\AntiMal ware\mbae.dll

被挂钩的函数

MSCVRT.DLL

wsystem

system

N/A

WSA_32.DLL

WSAStartup

N/A

N/A

SHELL32.DLL

ShellExecuteW

ShellExecuteExW

N/A

NTDLL.DLL

ResolveDelayLoadedAPI

GetDllHandle

CreateProcessInternalW

NtAllocateVirtualMemory

NtProtectVirtualMemory

N/A

KERNELBASE.DLL

VirtualAllocEx

CreateProcessW

CreateProcessInternalW

GetModuleHandleW

CreateFileW

LoadLibraryExW

VirtualProtect

HeapCreate

VirtualAlloc

WriteProcessMemory

CreateFileA

VirtualProtectEx

CreateProcessA

CreateProcessInternalA

N/A

URLMON.DLL

URLDownloadToFileW

URLDownloadToCacheFileA

URLDownloadToCacheFileW

URLDownloadToFileA

URLOpenBlockingStreamA

URLOpenBlockingStreamW

URLOpenStreamA

URLOpenStreamW

N/A

WININET.DLL

InternetReadFile

InternetReadFileExW

HttpOpenRequestW

HttpSendRequestW

HttpSendRequestExW

HttpSendRequestA

HttpSendRequestExA

InternetOpenUrlA

InternetOpenUrlW

HttpOpenRequestA

N/A

N/A

KERNEL32.DLL

SetProcessDEPPolicy

CopyFileA

MoveFileA

MoveFileW

CopyFileW

WinExec

总结

本文展现了杀软以下特点:

  • 一些杀软需要依靠旧的恶意软件方法和技术。

  • 一些杀软无法监测网络流量,若要检测网络流量,这些杀软必须是完全独立的软件,会向客户收取额外费用。

  • 一些杀软无法检测API转发,让恶意软件的作者有机会从NTDLL而不是KERNELBASE或KERNEL32的姐妹DLL发起功能调用,完全绕过API钩子。

许多杀软依靠YARA规则,或者YARA执行基本静态二进制分析的操作。

我在自己开发的键盘记录器上测试了本文提到的杀软。这个键盘记录器叫“UnderTaker.exe”,它用USER32.dll中的RegisterRawInputDevices和GetRawInputData函数键盘记录用户输入。在测试环境中,除了F-Secure和BitDefender,它基本规避了所有杀软。在本文所讲到的杀软里,能检测RegisterRawInputDevices和GetRawInputData函数的只有BitDefender。

POC IOC:

2a419d2ddf31ee89a8deda913abf1b25d45bb0dc59a93c606756cfa66acb0791

木星安全实验室(MxLab),由中国网安·广州三零卫士成立,汇聚国内多名安全专家和反间谍专家组建而成,深耕工控安全、IoT安全、红队评估、反间谍、数据保护、APT分析等高级安全领域,木星安全实验室坚持在反间谍和业务安全的领域进行探索和研究。

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2