这篇文章主要讲解了IFEO注入(Image File Execution Options Injection),这是一种基于Windows注册表的攻击技术,用于实现代码执行和持久化。以下是文章的核心内容总结:
-
IFEO注入的定义与用途:
-
IFEO(Image File Execution Options)是Windows NT操作系统提供的一项功能,原本用于调试应用程序启动时的行为。
-
攻击者通过修改注册表中的IFEO键,将恶意可执行文件绑定为目标可执行文件的“调试器”,从而在目标程序启动时触发恶意代码执行。
-
该技术几乎可以保证以登录用户甚至管理员/SYSTEM权限执行代码,适用于任何需要将恶意代码绑定到Windows平台上可执行文件的场景。
-
攻击步骤:
-
选择目标:攻击者选择一个Windows可执行文件(通常是常见的.exe文件,如notepad.exe)作为目标。
-
配置恶意载荷:在注册表路径(例如HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\<目标程序>)中设置“Debugger”值,指向恶意可执行文件。
-
执行触发:当用户或系统运行目标程序时,操作系统会优先执行注册表中指定的“调试器”(即恶意文件)。
-
清理痕迹:攻击完成后,需清理注册表以避免被检测,体现攻击者的专业性。
-
潜在影响:
-
持久化与权限提升:IFEO注入可用于建立持久化机制,甚至可能实现从管理员到SYSTEM权限的提升。
-
检测与局限:目标程序可能因注入而无法正常运行,容易被用户察觉。文章提到了一种改进技术——静默进程退出注入(Silent Process Exit Injection),允许目标程序正常运行后再触发恶意代码,以降低被检测的概率。
-
应用场景:
-
文章建议渗透测试人员在侦察阶段列出目标系统上的所有可执行文件,分析攻击面后选择适合的二进制文件进行IFEO注入。
-
强调了该技术对红队和网络安全研究人员的实用性,同时提醒要谨慎操作以避免留下痕迹。
-
技术背景与参考:
-
文章引用了Microsoft和MITRE的资料,说明IFEO的原始用途及被滥用的可能性。
-
提供了一个命令示例,需以管理员权限在命令提示符或PowerShell中执行,以实现注入。
那些没有听说过网络安全的人是和平的。
介绍
注意:本博客中提供的所有信息仅用于研究和教育目的。
IFEO 注入攻击是一种基于注册表的攻击技术,几乎可以保证以登录用户甚至管理员/系统用户的身份执行代码。那么,你会在哪些场景下使用它呢?在你能想到的任何场景下,如果你希望将有效载荷绑定到 Windows 平台上二进制文件的“启动”,IFEO(图像文件执行选项)可能是你最好的选择。这是一种简单的攻击,开发人员经常忽略它。引用微软关于 IFEO 用例的博客:
IFEO(图像文件执行选项)是 NT 操作系统提供的一项功能。它在应用程序启动初期进行调试时非常有用。
成功的 IFEO 注射涉及以下内容:
-
受害者/目标机器上的 Windows 二进制文件。(通常是某种 .exe 文件)
-
确定要执行的有效载荷。这通常是您的“malicious.exe”文件或您计划在活动中使用的 C2C 信标。(对于测试,calc.exe 就足够了)
-
找到适合发射有效载荷的位置。
-
修改 Windows 注册表(创建映射)以启动我们的有效载荷。
识别目标
任何 Windows EXE 文件都可能成为基于调试器的 IFEO 注入攻击的潜在目标。在渗透测试过程中,一个好主意是在侦察/枚举阶段尽早识别并列出所有二进制文件。在详细了解应用程序的攻击面后,选择可执行文件并尝试基于 IFEO 调试器的注入,然后清理注册表。清理注册表至关重要,它可以区分经验丰富的渗透测试人员和新手。
影响
最初,图像文件执行选项 (IFEO) 是为调试 Windows 二进制文件及其功能而创建的。然而,由于没有检查链接的二进制文件是否是调试器,它立即就成为了一个颇具吸引力的攻击向量。为了深入了解此技术的潜在影响,以下来自MITRE IFEO 注入页面的引文尤为贴切:
攻击者可以通过执行由图像文件执行选项 (IFEO) 调试器触发的恶意内容来建立持久性并提升权限。IFEO 允许开发人员将调试器附加到应用程序。创建进程时,应用程序 IFEO 中存在的调试器将被添加到应用程序名称的前面,从而有效地在调试器下启动新进程(例如,C:\dbg\ntsd.exe -g notepad.exe)。
因此,如果您想确保有效载荷的持久性,并且不想使用其他一些易于检测的基于文件的持久性技术,那么基于 IFEO 的注入是一个很好的选择。这种技术是确保您的有效载荷保持持久性且难以检测的绝佳替代方案。
漏洞利用
保存特定 target.exe 的这些映射的注册表位置是:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\target.exe
为了演示,假设我们的目标二进制文件是 notepad.exe,有效载荷是一个名为“darkrelay_payload.exe”的二进制可执行文件(calc.exe 的副本),存储在用户的“下载”文件夹中。作为攻击者,你的目标是编辑以下注册表:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe
并添加一个名为“Debugger”的新字符串值,指向你的payload,在本例中为“%HOMEDRIVE%%HOMEPATH%/Downloads/darkrelay_payload.exe”。这将使你能够访问并使用payload,以实现你的预期目的。因此,注册表命令可以概括如下:
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v Debugger /d "%HOMEDRIVE%%HOMEPATH%\Downloads\darkrelay_payload.exe"
REG 命令执行成功
上述命令应以管理员命令提示符的形式执行(或者,您可以使用管理员PowerShell实例来获得相同的结果)。接下来,我们需要等待用户执行记事本,正如预期的那样,目标程序的启动将触发有效载荷的执行。
成功执行有效载荷
在某些情况下,此技术还可能导致管理员权限提升到系统权限。需要注意的是,虽然我们的有效载荷已成功执行,但原始目标二进制文件(在本例中为 Notepad.exe)却无法启动,这很容易被检测到,并清楚地向受害者表明存在问题。
为了规避这个问题,我们可以使用一种类似的技术,称为静默进程退出注入,其中允许原始目标完成其执行并退出,然后调用有效载荷。
感谢您抽出
.
.
来阅读本文
点它,分享点赞在看都在这里
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论