今天看到小猪在safekey的群裡面說關注了很久了一個.NET遠程程式碼執行漏洞exp公開了,於是馬上去exploit-db找了下找到http://www.exploit-db.com/exploits/35280/。
受影響的版本為
Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 2.0 Service Pack 2
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5.1
Microsoft .NET Framework 4
Microsoft .NET Framework 4.5
Microsoft .NET Framework 4.5.1
不過不必驚慌,正如微軟自己說的一樣,.NET Remoting用的並不多,我在搜尋引擎找了下使用它開發的協力廠商程式也沒看到什麼,所以我在微博說影響並不大,但是部分大型企業還是有使用的,可能這樣說大家還不是很明白,那就簡單科普下.NETRemoting是幹嘛的和什麼情况下存在漏洞,
.NET Remoting Services是一種對外提供服務的管道,你可以像理解webserver一樣理解它,不一樣的地方是.NET Remoting Services 是基於C/S架構。
利用條件:
1.只有在使用以上列出受影響版本開發的.NET Remoting服務才存在此漏洞。
2.知道.NET Remoting服務的服務名和監聽的埠。
OK,知道這些以後,可以去翻一些開源程式,或者反編譯一些程式,看看程式碼裡面有沒有使用.NET Remoting。
下麵我們來測試下這個漏洞,在作者提供的exp裡面就包含了利用exp和測試server程式,由於我的埠12345被佔用了,所以我稍稍改了下server程式,把埠改成了8002,然後運行在虛擬機器裡面,測試如下圖。