freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

使用wsb-detect检测你是否在Windows沙盒中
2020-12-11 02:31:58

wsb-detect概述

wsb-detect可以帮助广大研究人员判断应用程序当前是否在Windows Sandbox(WSB)中运行。众所周知,Windows Defender会使用沙盒来进行动态分析,而且很多安全分析都是需要在沙盒中手动执行的。在2019年底,微软推出了名为Windows Sandbox(简称WSB)的新功能。

Windows Sandbox允许我们在15秒内快速创建一个基于Hyper-V的虚拟机,该虚拟机具有常见虚拟机所具备的所有特性,比如说剪贴板共享和映射目录等。该沙盒也是Microsoft Defender Application Guard(WDAG)的基础,用于在支持Hyper-V的主机上进行动态分析,并且可以在任何Windows 10专业版或企业版计算机上启用。

技术细节

wsb_detect_time

沙盒的镜像似乎是在2019年12月7日(星期六)上午9:14:52制作的,此时正是Windows sandbox向公众发布的时间。此检查交叉引用mountmgr驱动程序上的创建时间戳。

wsb_detect_username

此方法将检查当前用户名是否为WDAGUtilityUserAccount,即沙盒中默认使用的帐户。

wsb_detect_suffix

此方法将使用getAdapterAddresses遍历适配器列表,并将DNS后缀与mshome.net进行比对,而后者是沙盒默认使用的。

wsb_detect_dev

检查是否可以打开原始设备\\.\GLOBALROOT\device\vmsmb,该设备用于通过SMB与主机通信。

wsb_detect_cmd

启动时,在HKEY U LOCAL_MACHINE的RunOnce键下搜索一个命令,该命令将密码设置为永不过期。

wsb_detect_office

检查当前根驱动器中的OfficePackagesForWDAG,该驱动器似乎用于Windows Defender Microsoft Office模拟。

wsb_detect_proc

检查CExecSvc.exe,这是一个容器执行服务,负责处理大量复杂的事情。

wsb_detect_genuine

当涉及到沙盒检测时,这是一种更通用的方法,但是从测试来看,Windows在虚拟机中似乎没有被验证为合法的。

其他

另外,通过检查是否可以创建一个名为WindowsSandboxMutex的互斥体,可以在主机上检测沙盒是否正在运行。这样可以限制每一台主机只能运行一个虚拟机,不过我们可以通过复制句柄并调用ReleaseMutex-viola来释放这个互斥体,以此来获取多个虚拟机实例。

wsb-detect下载

广大研究人员可以使用下列命令将该工具源码克隆至本地,随后可以在我们的代码中直接调用:

git clone https://github.com/LloydLabs/wsb-detect.git

wsb-detect使用

detect.h这个头文件可以导出wsb-detect的所有检测功能函数:

#include <stdio.h>

#include "detect.h"

 

int main(int argc, char** argv)

{

  // example vmsmb & username check

  if (wsb_detect_dev() || wsb_detect_username())

  {

    puts("We're in Windows Sandbox!");

    return 0;

  }

  

  return 1;

}

项目地址

wsb-detect:【GitHub传送门

# 虚拟机安全 # 沙盒
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录