介绍
IFEO 注入攻击是一种基于注册表的攻击技术,几乎可以保证以登录用户甚至管理员/系统用户的身份执行代码。在任何你可以想象的用例中,如果你想要将你的有效载荷绑定到 Windows 平台上二进制文件的“启动”,IFEO(图像文件执行选项)可能是你最好的选择。这是一种开发人员经常忽略的简单攻击。详细IFEO参考 微软关于 IFEO 用例的博客
IFEO( 图像文件执行选项 )是 NT 操作系统提供的功能。在应用程序启动时进行调试时,此功能非常有用。
成功的 IFEO 注入涉及流程如下:
-
受害者/目标机器上的 Windows 二进制文件。(通常是某种 .exe 文件)
-
确定要执行的有效负载。这通常是您的“malicious.exe”文件或您计划在活动中使用的 C2C 后门。(对于测试,calc.exe 就足够了)
-
找到适合利用的有效payload的位置。
-
修改 Windows 注册表(创建映射)来启动我们的有效payload。
识别目标
任何 Windows EXE 文件都是基于调试器的 IFEO 注入攻击的潜在候选对象。在渗透测试过程中,一个好主意是在侦察/枚举阶段尽早识别并列出所有二进制文件。一旦您对应用程序攻击面有了详细的了解,请选择可执行文件并尝试基于 IFEO 调试器的注入,然后清理注册表。清理部分是具有典型的操作,它将区分经验丰富的渗透测试人员和新手。
影响
最初,创建映像文件执行选项 (IFEO) 是为了调试 Windows 二进制文件及其功能。但是,没有检查链接的二进制文件是否是调试器,因此它立即成为一个有吸引力的攻击媒介。为了深入了解这种技术的潜在影响, MITRE 的 IFEO 注入页面上的以下引述特别恰当:
攻击者可以通过执行由图像文件执行选项 (IFEO) 调试器触发的恶意内容来建立持久性并提升权限。IFEO 允许开发人员将调试器附加到应用程序。创建进程时,应用程序 IFEO 中存在的调试器将添加到应用程序名称的前面,从而有效地在调试器下启动新进程(例如,C:dbgntsd.exe -g notepad.exe)
因此,如果您想确保有效payload具有持久性,并且不想使用其他一些可快速检测到的基于文件的持久性技术,那么基于 IFEO 的注入将是一个很好的选择。此技术是确保您的有效payload保持持久性且难以检测的绝佳选择。
漏洞利用
保存特定 target.exe 的这些映射的注册表位置是:
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionstarget.exe
为了演示,我们假设目标二进制文件是 notepad.exe,有效payload是一个名为“pikasec_payload.exe”的二进制可执行文件(calc.exe 的副本),存储在用户的下载文件夹中。作为攻击者,你的目标是编辑以下注册表:
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsnotepad.exe
并添加一个名为“Debugger”的新字符串值,指向您的有效负载,在本例中为“%HOMEDRIVE%%HOMEPATH%/Downloads/pikasec_payload.exe”。这将使您能够访问和使用有效负载以实现所需的目的。因此,注册表命令可以总结如下:
REG ADD "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsnotepad.exe" /v Debugger /d "%HOMEDRIVE%%HOMEPATH%Downloadsdarkrelay_payload.exe"
成功执行 REG 命令,上述命令应以管理员命令提示符的形式执行(或者,您可以使用管理员 powershell 实例来获得相同的结果)。接下来,我们需要等待用户执行记事本,正如预期的那样,目标程序的启动将触发我们的有效payload的执行。
在某些情况下,这种技术还可能导致管理员 -> 系统权限提升。请注意,虽然我们的有效负载已成功执行,但原始目标二进制文件(在本例中为 Notepad.exe)无法启动,这很容易检测,并且会向受害者明确表明存在问题。
为了解决这个问题,我们可以使用一种类似的技术,称为 静默进程退出注入 ,其中允许原始目标完成其执行并退出,然后调用有效payload。
原文始发于微信公众号(暴暴的皮卡丘):Windows注册表 IFEO注入
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论