微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一个进程是否有可能将代码注入到没有pipe理权限的代码中?

DPAPI中的CryptProtectMemory API允许您传递CRYPTPROTECTMEMORY_SAME_PROCESS标志,从而防止其他进程解密内存。 解决这个问题的一个方法是使用OpenProcess , WriteProcessMemory和CreateRemoteThread将代码注入到目标进程中并让它调用CryptUnprotectMemory ,从而解密内存并将其泄漏到其他进程。

假设两个进程都在Windows Vista或更高版本的相同的有限特权用户(即不是pipe理员)的环境下运行,这仍然是可能的吗? 我的印象是进程内存写入操作被拒绝限制用户,不pipe进程ACL如何,但我可能是错的。

CryptGetProvParam和multithreading程序

使用Java,我怎样才能得到一个Windows机器上的所有本地用户的列表

在允许的进程之间传递Windows安全令牌

如何testing主机名称是否指本地机器

当我在主机中运行一个虚拟框时,是否需要执行更新?

Windows尊重进程ACL,并且认情况下,这允许访问进程运行的用户以及本地系统帐户和用户登录会话SID。 管理员可以使用SeDebugPrivilege绕过此ACL。

否则,您需要成为管理员才能调试您自己的代码

您可以更改进程ACL,但通常(IIRC)当前用户是进程所有者,我不确定是否可以阻止当前用户上下文中的另一个进程将其更改回来。 另外,由于这些进程很可能在同一个桌面上运行,所以无论如何你都会受到粉碎的攻击 。

您没有描述您需要使用代码注入的确切场景。 如果在没有管理权限的情况下运行ope进程,则创建另一个关于CreateProcess的进程,例如,获得具有所有权限PROCESS_ALL_ACCESS ( PROCESS_ALL_ACCESS hProcess )的新进程的句柄。 你可以在这里阅读下面的例子

由CreateProcess函数返回的句柄对过程对象具有PROCESS_ALL_ACCESS访问权限。

所以你应该只保存从CreateProcess返回的处理程序,并且不要关闭它,直到你需要完全访问子进程。 通过这种方式,您将拥有调用CreateRemoteThread和WriteProcessMemory所需的PROCESS_CREATE_THREAD,PROCESS_QUERY_@R_64_4045@ION,PROCESS_VM_OPERATION,PROCESS_VM_WRITE和PROCESS_VM_READ访问权限。

所以你的问题的答案是:“是的,在一些附加条件下是可能的”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐