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等。
與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的處理,等等.
更多相關知識,請造訪常見問題欄位!
以上是conhost.exe是什麼進程的詳細內容。更多資訊請關注PHP中文網其他相關文章!