PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

conhost.exe是什么进程

藏色散人
藏色散人 原创
2023-02-20 10:37:51 2572浏览

conhost.exe是命令行程序的宿主进程,conhost全称是console host process;conhost.exe是微软出于安全考虑,在windows7和windows server 2008中引进的新的控制台应用程序处理机制。

本教程操作环境:Windows7系统、Dell G3电脑。

conhost.exe是什么进程?

命令行程序的宿主进程。

全称是Console Host Process, 即命令行程序的宿主进程。简单的说他是微软出于安全考虑,在windows 7和Windows server 2008中引进的新的控制台应用程序处理机制。

来历及作用

原先,win7之前的宿主程序是由csrss.exe来完成的,,所有命令行进程都使用session唯一的csrss.exe进程。而到了win7则改成每个命令行进程都有一个独立的conhost作为宿主了。 这样当然有很多好处了,比如各进程之间不会相互影响,也不会影响到csrss,毕竟csrss还有其他更重要的任务要做。 当然最最重要的还是安全性的考虑,因为csrss是运行在local system账号下的,如果要处理Windows message,就要承担很多威胁,比如著名的Windows Message Shatter Attack。而如果用用户权限的conhost来处理,则即使有攻击,影响的也只是低权限的宿主进程。

其实,不论是作为普通用户还是企业管理员,我们在日常的Windows应用和运维过程中都会或多或少的使用到控制台应用程序。控制台应用程序是没有用户界面的,我们需要通过命令提示符(CMD,这可不是DOS,很多人混淆不清)对其进行输入、输出操作。Windows自带的控制台应用程序 ,典型的有cmd.exe、nslookup.exe和telnet.exe等。

b09e5d6af5dd182a962ec7941f0dd3a.jpg

与Csrss.exe的关系

在早期的Windows版本中,所有代表非GUI活动的应用程序(即控制台应用程序)要在桌面上运行时,都通过系统进程Csrss.exe进行协调。当控制台应用程序需要接收字符时,会在Kernel32.dll中调用一个小型的“控制台APIs”以让Kernel32产生LPC来调用CSRSS。此时CSRSS会对控制台窗口的输入队列进行检查和校验,并将字符模式的结果通过Kernel32返回给控制台应用程序进行关联。

这样的处理机制就已经产生了一个问题:即使一个控制台应用程序在普通用户的上下文环境中执行,但Csrss.exe始终是运行在本地系统账户权限下的。因此,某些情况下“坏人”开发的恶意软件就有可能通过本地系统账户权限执行的Csrss.exe获取到更多特权。这种攻击模式被称为Shatter Attack。

而到了win7和Windows Server 2008 R2时代,所有控制台应用程序都被放到了一个新的上下文进程ConHost.exe中来执行,而ConHost(控制台主机)与控制台程序运行在相同安全级的上下文环境当中,取代了发出LPC消息请求到CSRSS中进行处理这种机制,而是去请求ConHost。因此,任何应用程序企图利用消息请求来导致特权的自动提升都不会成功。

conhost不是病毒···

conhost全称是console host process, 即命令行程序的宿主进程. 大家都知道命令行程序是什么东西吧, 比如ipconfig.exe之类, 由于命令行程序自身没有代码来显示UI, 我们平时看到的命令行窗口内容都是由宿主进程来完成的,包括窗口的显示, window message的处理,等等.

更多相关知识,请访问常见问题栏目!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。