磁盘清理工具介绍
磁盘清理(通常称为 Disk Cleanup 或 Cleanmgr.exe)是Windows操作系统的一个实用程序,可以通过主要删除缓存和临时文件来释放硬盘驱动器磁盘空间,以提高系统性能。该实用程序是在 Windows 98 操作系统中引入的,尽管它已被弃用并被设置应用程序中的现代版本取代,但 Microsoft 并未将其删除,并将其保留为旧版工具。
利用原理
从攻防蓝队的角度来看,利用磁盘清理实用程序通过在启动该实用程序时执行任意代码来建立持久性是可行的。具体来说,此方法依赖于 COM 劫持, 因为 cleanmgr.exe (启动磁盘清理的实用程序)将检查 Windows 注册表中的许多 DLL。因此,劫持与磁盘清理相关的 CLSID 将导致代码执行。
要删除的文件 功能 是从注册表中检索的,并且它不是静态的。如果已实现特权提升,则可以创建能够让 cleanmgr.exe 实用程序执行任意 DLL 的注册表项。以下注册表项与磁盘清理功能相关:
Plaintext |
执行以下命令将枚举与 “要删除的文件” 功能相关的注册表项:
Plaintext |
从列出的注册表项中, 下载的程序文件与 {8369AB20-56C9-11D0-94E8-00AA0059CE02} CLSID关联 。
此外,这表明以下注册表项下存在此 CLSID:
Plaintext |
以下代码可用作概念证明,以在启动磁盘清理实用程序时显示消息框。
Shell |
需要在以下注册表项下创建要被劫持的 CLSID,以及被劫持的 CLSID 下的 InprocServer32 子项,该子项需要以任意 DLL 的路径为目标。
Plaintext |
执行以下命令可以枚举被劫持的 CLSID,以验证它是否指向任意 DLL。
Plaintext |
运行 cleanmgr.exe 将执行代码。应该注意的是,使用参数 /autoclean 不会向用户显示磁盘清理的图形用户界面。此外,它可以与 Windows 的其他功能(例如 注册表运行键 或 计划任务) 相结合,以在启动期间或在特定时间间隔执行此二进制文件。
Plaintext cleanmgr.exe /autoclean cleanmgr.exe /setup cleanmgr.exe /cleanup |
实战利用
使用msf 框架实用程序 msfvenom 可用于自动生成 DLL。尽管这不是一种安全的方法,并且可能会在红队演习期间被检测到,但它仅用于本文的目的。
Plaintext |
与之前一样,需要将 DLL 写入磁盘,并且必须修改注册表项以定位新路径。
一旦磁盘清理开始,代码将被执行,并且 将与受感染的主机建立 meterpreter会话。
原文始发于微信公众号(暴暴的皮卡丘):windows持久化之磁盘清理
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论