0x01 工具介绍
在物理接触的情况下,GrabAccess可以:
绕过Windows登陆密码执行任意操作(以System权限执行命令、重置Windows账户密码等)
植入木马并添加自启动(可以绕过Bitlocker,但要求受害者登录)
通过修改主板UEFI固件实现无视重装系统、更换硬盘的持久化(Bootkit)
注意:现在只对常读和星标的公众号才展示大图推送,建议大家把渗透安全HackTwo"设为星标⭐️"否则可能就看不到了啦!
下载地址 https://github.com/Push3AX/GrabAccess
0x02 功能简介
GrabAccess最基础的功能是绕过Windows登录密码:
-
准备一个U盘。(需为FAT16或FAT32格式)
-
下载GrabAccess_Release.zip,解压到U盘根目录。
将U盘插入目标计算机。重启,在启动时进入BIOS菜单。选择从U盘启动(如果开启了Security Boot,还需将其设置为DISABLE)。
在Windows启动时会弹出CMD窗口和账户管理窗口,可以System权限执行任意命令而无需登录。
按下ALT+F4关闭CMD窗口后,Windows回到登陆界面。
自动化植入(支持绕过 Bitlocker):
GrabAccess可以自动植入指定的程序,并为其添加启动项。
要使用该功能,需要预先将GrabAccess与要植入的程序打包:
-
下载GrabAccess_Release.zip,解压并放置在U盘根目录。
-
将需要植入的程序命名为payload.exe,放置在U盘根目录。
-
运行build.bat进行打包。
将U盘插入目标计算机、从U盘启动(与前文相同)
Windows启动后即可看到指定的程序。
该植入过程可以绕过Bitlocker的系统盘加密。
从含有GrabAccess的U盘启动后,GrabAccess就会写入到内存中。此时可以拔出U盘,但需要停留在Bitlocker输入密码的界面,等待受害者返回输入密码。当Bitlocker解锁之后,指定的程序会被写入磁盘。但在这之前,由于GrabAccess仅停留在内存,如果重启或关机,GrabAccess将会失效。
修改主板UEFI固件实现Bootkit:
GrabAccess可以被植入到计算机主板的UEFI固件。实现硬件级别的持久化(Bootkit)。
每次Windows系统启动时,GrabAccess会植入指定的程序,即使重装系统或更换硬盘之后也会重新植入。要移除它,只能刷写主板固件或更换主板。
警告:以下操作可能损坏主板!必须对UEFI固件有一定了解才可继续。AT YOUR OWN RISK !!!!
要实现这一功能,大致分为四步:
- 将GrabAccess与要植入的程序打包
- 提取主板UEFI固件
- 向UEFI固件插入GrabAccessDXE
- 将固件刷回主板
不同主板的第2和第4步有较大不同。部分主板可以通过软件方式刷新固件,但也有部分主板存在校验,只能使用编程器刷新。因差异众多,在此不深入讨论,读者可以自行在网上搜索某型号主板对应的方式。
将GrabAccess与要植入的程序打包的方式与前文相同,即:将需要植入的程序命名为payload.exe,放置在GrabAccess的根目录,运行build.bat进行打包。结束后得到native.exe,稍后将会用到。
在提取到主板UEFI固件后,使用UEFITool打开,按下Ctrl+F,选择Text,搜索pcibus,在下方双击搜索到的第一项。
在pcibus这一项上右键,选择Insert before然后选取GrabAccess_Release.zip中UEFI_FSS文件夹的GrabAccessDXE.ffs。
插入GrabAccessDXE后,在GrabAccessDXE上右键,选择Insert before,插入UEFI_FSS文件夹的native.ffs。此时应该如下所示:
双击展开native.ffs(它没有名字,但GUID是2136252F-5F7C-486D-B89F-545EC42AD45C),在Raw section上右键,选择Replace body,然后选取前文中生成的native.exe进行替换。
最后,点击File菜单的Save image file,保存固件到文件。
这份固件已经成功植入了Bootkit,将其刷回主板。如果一切顺利,在每一次Windows启动过程中,native.exe都会被写入并执行。
如果没有成功,可以尝试以下操作:
- 关闭UEFI设置中的Security Boot和CSM,确定操作系统是通过UEFI模式加载的。
- 向固件插入UEFI_FSS文件夹下的pcddxe.ffs(方法同前文。但注意,这个模块可能会与其它模块冲突造成不能开机,仅建议在使用编程器的情况下尝试!)
系统支持情况:
GrabAccess仅支持UEFI引导下的Windows系统,目前仅支持x64系统。
已测试Windows 10 (1803, 22H2)和Windows 11(23H2)。包括使用了TPM、联网账户、Pin码的情况。但不支持绕过Security Boot。
0x03更新说明
使用 EDK2 重建。
Native APP 的默认功能现在是打开 CMD 和 netplwiz。
Bootkit 功能。
0x04 原理介绍
Windows Platform Binary Table(WPBT)
作为Windows系统固件层级的预置机制,WPBT被设计用于设备制造商在主板固件中植入合法的系统级应用(如硬件管理工具或安全模块)。其核心原理是通过ACPI(高级配置与电源接口)表的特殊条目,在系统启动的早期阶段(Windows内核加载前),自动执行固件中指定的二进制程序。与恶意Bootkit不同,WPBT属于微软认证的OEM功能,但其特性可能被攻击者利用——通过劫持UEFI引导过程插入伪造的WPBT配置,即可绕过常规系统防护机制,在任意Windows安装环境下实现持久化攻击。
GrabAccess的攻击流程
- UEFI阶段植入(Stage1-UEFI)
该组件以UEFI应用程序形式运行,利用UEFI引导期间的可操作窗口,直接修改系统ACPI表中的WPBT配置。通过注入指向攻击者程序的路径信息,迫使Windows在后续启动过程中加载指定恶意模块,此过程不依赖固件写入权限,仅需引导过程控制能力。 - Windows原生阶段执行(Stage2-NativeNT)
作为WPBT触发的后续载荷,该原生程序运行于Windows内核初始化完成后的NT环境(早于用户登录界面),其核心功能包括:- Payload部署:将内嵌的恶意程序如
- C:WindowsSystem32GrabAccess.exe写入系统目录,确保隐蔽性和高权限执行环境。
- 持久化配置:通过注册表启动项
- (HKEY_LOCAL_MACHINE...RunGrabAccess)维持攻击载荷在用户登录后的自动激活。
- 备选攻击链:若未检测到内嵌载荷,则劫持登录界面进程(Logonui.exe),利用映像劫持(IFEO)技术强制启动cmd.exe与netplwiz.exe,实现凭证窃取或权限提升。
Native Application的技术特性
- 执行时机优势:在Windows启动流程的Native阶段运行,早于用户身份认证和安全防护软件(如EDR)的加载,可规避多数运行时监控。
- 受限功能环境:依赖有限的Native API(如NT内核服务),无法直接调用常规Win32接口,需通过底层文件操作(如NtWriteFile)和注册表函数实现持久化。
- 逃逸设计:通过将恶意代码伪装为系统关键组件(如释放至System32目录),并利用启动项或进程劫持绕过常规防御机制,形成双重持久化链路。
0x05 下载
https://github.com/Push3AX/GrabAccess
原文始发于微信公众号(渗透安全HackTwo):Windows登陆密码Bypass和Bitlocker绕过工具|APT社工必备
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论