【问题标题】:How Internet Explorer(IE11)Creates low Integrity child process without CreateProcess CallInternet Explorer(IE11)如何在没有 CreateProcess 调用的情况下创建低完整性子进程
【发布时间】:2014-06-20 17:08:11
【问题描述】:

我想知道 Internet Explorer 如何在不调用 CreateProcess API 的情况下创建低完整性不受信任的沙盒子进程。

这是我尝试过的:

在 Windbg 中打开可执行文件 (iexplore.exe)。在初始 BP 命中时,我在 Kernel32!CreateProcessA 处设置了一个断点。然后我让主 IE 进程运行。我可以看到它在进程资源管理器/进程黑客实用程序中创建了沙盒子进程(低完整性子 iexplore.exe),但它没有触及 CreateProcess 断点。

我想知道 IE 是如何做到的。

【问题讨论】:

  • 也许使用 NtCreateProcess ?
  • 看起来他们在使用CreateProcessAsUser
  • @AndrewLambert 你是对的..

标签: windows debugging winapi windbg


【解决方案1】:

Kernel32!CreateProcessA 位于链的顶部,是一个包装器,用于进一步调用链

最终调用以 api 形式跨越 usermode kernelmode border is ntdll!NtCreateProcessEx 和 hacks 可用于通过设置堆栈和 calling sysenter directly 来更深地挖掘并越界

尝试在kernel32!CreateProcessW / kernel32!CreateProcessInternal Advapi32!CreateProcessAsUser / ntdll!ntCreateProcessEx 等设置断点

【讨论】:

  • 说得好。我还要补充一点,如果你真的想调试子进程,你应该选择使用:.childdbg 1; sxe cpr in windbg。
  • 那么我怎样才能从 kernel32!CreateProcessInternal() 返回的句柄中获取子进程的 PID,使用 windbg / 或来自父进程的任何其他调试器(仅附加到父进程的调试器)..??
  • 你是怎么找回手柄的
  • 查看GetProcessId(),或者只是阅读CreateProcess/AsUser() 输出的PROCESS_INFORMATION 结构的dwProcessId 字段。
猜你喜欢
  • 2011-04-16
  • 2021-03-05
  • 2011-06-06
  • 2016-12-10
  • 1970-01-01
  • 2018-05-15
  • 2018-12-05
  • 1970-01-01
  • 2011-05-07
相关资源
最近更新 更多