标签:
代码基本源于网络,作用看个人需求。
session 0隔离是个老话题,这里简单讲讲,小伙伴们赶快看过来吧。
自vista系统开始,进程便有了session空间的概念,一般系统服务进程是在session 0的会话空间里面执行,其他应用程序都是在session 1或者session x会话空间中运行。一般情况下,进程A属于session x会话空间,那么它所创建的进程同样是属于session x会话空间。
当你写的是个系统服务的时候,由于系统服务进程处于session 0空间,所以该进程如果想创建出一个进程,那么创建出来的进程也就是属于session 0会话空间了。而session 0会话空间中能做的事情有限,比如无法显示一个操作界面,很难和用户交互。所以你必须在session 0会话空间中创建出属于非session 0会话空间的进程。
下面的代码展示了如何去做。
简单吧,代码主要来自网络。
有了创建的代码还不行,因为有时候我们服务进程需要做一点儿猥琐的事情,比如创建一个傀儡进程,比如选择一个svchost作为傀儡进程,然后执行我们偷偷想要做的事情。创建傀儡进程的好处是杀毒基本不会管你傀儡进程中做什么事情,那就不用考虑行为拦截问题了。
首先这个代码是把一个exe程序放在了资源里面,函数第一个参数的模块句柄是当前模块的句柄,如果是dll,那么就是dll的模块句柄。如果你想测试此函数效果,那么你写的就是exe程序运行此函数,这时这里的模块句柄可以为NULL。至于怎么把文件添加到资源,这里我就不讲解方法了,网上很多资料。
必须注意的是,你所要创建的傀儡进程必须是32位的,你放在资源中的exe也必须是32位的。而你调用CreatePuppetProcess函数所在的进程可以是32位或者64位。
然后通过此代码你就可以实现创建一个傀儡进程了,如果是在session 0会话空间中创建傀儡进程,这里还会实现突破session 0隔离创建进程。
小伙伴们赶紧自己去实验吧,更多内容请关注mengwuji.net后续动态。
突破session 0隔离 和 劫持exe注入(转自梦无极)
标签:
原文地址:http://www.cnblogs.com/15157737693zsp/p/4691116.html