HWSyscalls是一种使用HWBP、HalosGate和kernel32上的合成跳板执行syscalls的方法

作者:Sec-Labs | 发布时间:

项目介绍

HWSyscalls是一种使用HWBP、HalosGate和带有HWBP的kernel32上的合成跳板执行间接syscalls的新方法。

项目地址

https://github.com/Dec0ne/HWSyscalls

描述

HWSyscalls 是一种使用 3 个主要组件执行间接系统调用的新方法:

  • 硬件断点和 Vectored Exception Handler 来控制执行流程。
  • HalosGate 用于查找系统调用编号和地址。
  • 在带有硬件断点的 kernel32 上创建一个合成蹦床。

HWSyscalls 作为一个易于包含的库提供,可以添加到任何想要使用间接系统调用的项目,而无需基于当前的间接系统调用检测触发 EDR 或 AV 检测。

间接系统调用是一种流行的方法,在不同的变体中用于从 ntdll 调用系统调用,但是,从 ntdll 调用系统调用的主要问题是其核心:从程序直接访问 ntdll 的奇怪访问,而无需通过任何先前的 dll . HWSyscalls 建立在间接系统调用的核心思想之上,但通过结合硬件断点功能来解决这个问题,在 kernel32 和 HalosGate 中创建合成蹦床以获取 SSN。

为了简单起见,正常的间接系统调用流程如下所示:

ac16517dcf182144

虽然我们的看起来像这样:

26c51d4083182158

如需更多信息,请查看我们的博文 (即将推出)

⚠️ 警告:该项目正在进行中。 当前版本导致堆栈无法展开。 有关堆栈展开的更多信息,请查看 MSDN 上的这篇博文@KlezVirus在 这篇博文 中的解释 。

用法

要使用该项目,您需要包含 HWSyscalls.h 并调用 InitHWSyscalls 以查找所需的小工具并初始化异常处理程序。 在程序执行结束时,调用 DeinitHWSyscalls 以删除异常处理程序。

#include "HWSyscalls.h"

typedef NTSTATUS(WINAPI* NtOpenProcess_t)(
    OUT          PHANDLE            ProcessHandle,
    IN           ACCESS_MASK        DesiredAccess,
    IN           POBJECT_ATTRIBUTES ObjectAttributes,
    IN OPTIONAL  PCLIENT_ID         ClientId);

void main() {

    // Initialize the exception handler and find the required gadgets.
    if (!InitHWSyscalls())
        return;

    // ...

    // Execute your function!
    NtOpenProcess_t pNtOpenProcess = (NtOpenProcess_t)PrepareSyscall((char*)("NtOpenProcess"));
    NTSTATUS status = pNtOpenProcess(&targetHandle, PROCESS_ALL_ACCESS, &object, &clientID);

    // ...

    // Removing the exception handler.
    DeinitHWSyscalls();

}

HWSYSCALLS_DEBUG 可以通过更改中的定义 来打开或关闭调试详细信息 HWSyscalls.h

#pragma once
#include <windows.h>
#include <inttypes.h>
#include <stdio.h>

#pragma region Defines

#define HWSYSCALLS_DEBUG 0 // 0 disable, 1 enable
#define UP -32
//...

设置

要编译此项目,您需要 Visual Studio 2019 及更高版本。 需要注意的是,该项目仅适用于 x64 环境,需要在不进行优化的情况下进行编译。 您可以从 Project Settings -> C/C++ -> Optimization -> Optimization (Disabled /Od) 禁用它。

例子

 

ad1a1b7183182225

致谢

标签:工具分享, 主机安全