背景
偶然发现普通管理员(非 Administrator),在右键管理员权限运行 A.exe 时,使用 ProcessMonistrator 观察这个进程被 explorer 创建,但是 hook explorer 的进程创建 api 却拦截不到 A.exe 的创建,之后尝试全局注入 dll ,发现创建 A.exe 的竟然是 svchost.exe !
回头看 ProcessMonistrator 中 explorer 的创建进程时的调用栈,发现里面有很多 rpc 相关的函数,所以应该是 explorer 使用 rpc 通知 svchost ,再由 svchost 完成进程创建的操作。
介绍
MSRPC (MicroSoft Remote Procedure Call,微软远程过程调用) 是对 DCE/RPC 在 Windows 系统下的重新改进和实现,用以支持 Windows 系统中的应用程序能够无缝地通过网络调用远程主机上服务进程中的过程。
DCE/RPC 独立运行于网络传输层协议之上,采用的网络传输层协议包括 ncacn_ip_tcp (TCP 135 端口)、ncadg_ip_udp (UDP 135 端口)、ncacn_np (TCP 139、445 端口) 等。其中,主要使用的是 ncacn_np (SMB 命名管道传输协议),也就是利用 SMB 命名管道机制作为 RPC 的承载传输协议 (MSRPC over SMB)。
原理分析
参考:
https://zhuanlan.zhihu.com/p/352908213
https://zhuanlan.zhihu.com/p/351280032
————————————————
原文链接:https://blog.csdn.net/Simon798/article/details/114363644