REinject's Blog

我们的功夫再棒,也敌不过洋枪


注册表中计划任务的 Triggers、Actions 内容结构研究

win7计划任务里没有schtasks,而是旧的 at 命令,以文件形式表示,win8开始出现有 schtasks.exe 命令即现在的计划任务服务。

之前在 深入理解 Windows 计划任务及其恶意隐藏方式探究 中描述了注册表中一些字段的大概含义,但是没有研究具体字段的内容结构,尤其是二进制表示的 Triggers、Actions 等字段。

通过参考公开资料和 GhostTask 项目,大概梳理了一下 win8.1 和 win10 上 Triggers 和 Actions 结构的区别,后面可能有用。

Read more...

Deletion of Arbitrary File into Escalation of Privilege

最近看到了 @AndrewOliveau 发的 tweet,只看那句描述 “arbitrary file deletions to SYSTEM” 我就感觉很神奇的样子,任意文件删除的洞还能变成本地提权。我带着问号看完之后,我发现这个大概思路是利用 Windows 的 MSI 安装回滚机制,看到 “Config.Msi” 我就觉得很熟悉,因为两三年前深入学习过还记得当时自制了一个 MSI 包试了一下酷毙了,没记笔记爽完就忘了还有这么个点,现在算是又被点到了。不过这并不是文章重点,而是 “如何把一个固定的普通用户文件删除变成一个任意文件删除漏洞”。

Read more...

Hell's Gate

地狱之门,是一种在 Windows 下直接做系统调用技术,可用于绕过 Ring3 层的大多数 EDR hook。随便记录一下。

CVE-2021-1732 Windows10 本地提权漏洞

漏洞发生在 Windows 图形驱动 win32kfull.sys 中,当调用 win32kfull!NtUserCreateWindowEx 函数创建窗口且 tagWND→cbWndExtra≠0 时,该函数调用 win32kfull!xxxClientAllocWindowClassExtraBytes 回调用户层函数 user32.dll!__xxxClientAllocWindowClassExtraBytes 分配内存,攻击者可以 Hook 这个用户层函数调用 ntdll!NtCallbackReturn 向内核返回一个任意值,并且当 tagWND→flag 包含 0x800 标志时该返回值将被视为相对内核桌面堆起始地址的偏移。用户层调用 NtUserConsoleControl 可以修改 tagWND→flag 值包含 0x800,因此返回值将直接被用于堆内存寻址,引发内存越界访问。攻击者通过越界读写可复制 system 进程 token 到当前进程完成提权。

深入理解 Windows 计划任务及其恶意隐藏方式探究

恶意软件或攻击者通常使用计划任务作为他们的持久化机制。

从风险发现的角度考虑,理解计划任务的运行和创建方式以及和计划任务相关联的进程是有必要的。

并且,本文还对一种未公开的计划任务隐藏手法进行了猜测与探究。

Read more...
Previous Page 2 of 3 Next Page