手机版

渗透会议0 ASP.NET隔离(一)

时间:2021-10-07 来源:互联网 编辑:宝哥软件园 浏览:

Windows服务在后台执行各种任务,并支持我们的日常桌面操作。有时候服务可能需要在信息或者界面上与用户进行交互,这在XP时代是没有问题的,但是自从Vista之后,你会发现这种方法似乎没有什么效果。0会话隔离实验接下来,我们来做一个名为AlertService的服务,它的功能是向用户发送一个提示对话框,并且让我们来看看这个服务在Windows 7中会发生什么。复制代码如下:使用系统。serviceprocess使用系统。Windows .窗体;命名空间AlertService {公共分部类Service1 : ServiceBase {公共服务1(){ InitializeComponent();}受保护的override void OnStart(string[]args){ MessageBox。显示('警报服务的消息');}受保护的override void onstop () {}}程序通过Installutil: 编译并加载到系统服务中。

选中服务属性中的“允许服务与桌面交互”,以便AlertService可以与桌面用户交互。

在服务管理器中“启动”AlertService服务,任务栏中会闪烁一个图标:

单击此图标将显示以下窗口,提示程序(AlertService)正在尝试显示信息,以及是否有必要浏览信息:flashmeg

尝试点击“查看消息”,会显示下面的界面(其实我是不能从当前桌面操作截图的,但是我是通过Virtual PC截图的,请继续阅读)。注意下图中的桌面背景不再是Windows 7的默认桌面背景,说明AlertService与桌面系统的Session不一样,是Session 0隔离效果的结果。

0会话隔离原则在Windows XP、Windows Server 2003或早期Windows系统的时代,当第一个用户登录系统时,服务和应用程序在同一个会话中运行。这是会话0,如下图所示:

但是这种操作方式增加了系统安全风险,因为服务是通过增加用户权限来运行的,而应用往往是由不具备管理员身份的普通用户来运行,危险性明显。从Vista开始,Session 0仅包含系统服务,而其他应用程序通过单独的会话运行,将服务与应用程序隔离开来并提高系统安全性。如下图所示:

这样,Session 0就无法与其他会话进行交互,信息窗口、UI窗口等信息也无法通过服务弹出给桌面用户。所以我才说图片不能通过当前桌面进行筛选。

会话检查在实际开发过程中,可以通过Process Explorer检查服务或程序处于哪个会话,是否会遇到Session 0隔离的问题。我们在服务中找到了以前加载的AlertService服务,并右键单击该属性以查看其会话状态。

您可以看到警报服务处于会话0:

让我们来看看Outlook应用程序:

显然,在Windows 7中,服务和应用程序处于不同的Session中,它们之间有一道保护墙。在下一篇文章中,我们将介绍如何让服务通过这道防护墙与桌面用户进行交互。服务下载作者:李(Gnie)来源:(http://www . cn blogs.com/Gniele/)。

版权声明:渗透会议0 ASP.NET隔离(一)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。