地铁应用程序DLL注入背后的真相,Nektra与Komodia

Mar*_*lsi 10 windows dll-injection microsoft-metro

科莫迪亚说:

在Windows 8上使用Modern UI无法进行DLL注入,可以将DLL注入Metro应用程序,但是,您将无法将Winsock流量重定向到localhost.

换句话说,windows metro应用程序工作在沙箱环境中,无法完成DLL注入.

让我们看看Nektra 说的话:

我们意识到我们需要使用交叉证书来签署我们的DLL,就像那些用于签署内核模式驱动程序的证书一样.我们已经有了一种在WinRT应用程序中注入DLL的方法:将DLL文件复制到System32文件夹中并发表文件!

你可以看到Komodia和Nektra说的是一个相互矛盾的信息,我的问题是Windows 8下DLL注入背后的真实情况,我可以照常将我的代码注入Metro应用程序(NT,win9x),就像Nektra所说的那样吗?

Mau*_*eri 10

我是Nektra文章的作者.当我们想要为Windows 8附带的有限Metro Mail应用程序添加更多功能时,研究开始了.

尽管该过程与桌面应用程序不完全相同,因为通常地铁应用程序暂停,我们首先连接了DCOM服务.

当DCOM服务启动Metro Mail应用程序时,我们使用众所周知的方法CreateRemoteThread/LoadLibrary调用注入dll.

在初始测试中,我们尝试注入位于同一文件夹中的dll,我们的测试位于并发现,如果dll在system32中,则加载正常.

稍后我们进行进一步的研究,看看为什么dll没有加载,如果不在system32文件夹上.

关于挂钩winsock,我们没有测试,但我认为它应该是可能的,因为,至少在台式计算机上,在地铁后面有通常已知的dll(kernel32,user32等),我们挂钩了一些api没有问题.


小智 9

我是Komodia文章的作者,我们的文章与Nektra没有冲突,可以挂钩Metro应用程序或运行Metro应用程序的沙箱,但是你无法连接到localhost,不是因为挂钩而是因为本地主机连接的Metro限制.在我们的第一次测试中,我们使用了我们的Win7 WFP(这是一个网络驱动程序),并将数据包的IP修改为localhost,这对于Metro应用程序不起作用,NDIS也不能正常工作,唯一的方法是使用Microsoft的WFP代理重定向.

也许有人最终会发现或已经发现允许本地主机直接连接的黑客攻击,并且与任何黑客一样,存在需要考虑的风险.如果您需要批准的方法,WFP代理重定向是唯一的方法.