-
asp.net教程之ASP木馬Webshell安全解決辦案
- 2017-06-11 20:18 來源:未知
注意:本文所講述之設置方法與環境:適用于Microsoft Windows 2000 Server/Win2003 SERVER IIS5.0/IIS6.0
1、首先我們來看看一般ASP木馬、Webshell所利用的ASP組件有那些?我們以海洋木馬為列:
<object runat="server" id="ws" scope="page" classid="clsid:72C24DD5-D70A-438B-8A42-98424B88AFB8">
</object>
<object runat="server" id="ws" scope="page" classid="clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B">
</object>
<object runat="server" id="net" scope="page" classid="clsid:093FF999-1EA0-4079-9525-9614C3504B74">
</object>
<object runat="server" id="net" scope="page" classid="clsid:F935DC26-1CF0-11D0-ADB9-00C04FD58A0B">
</object>
<object runat="server" id="fso" scope="page" classid="clsid:0D43FE01-F093-11CF-8940-00A0C9054228">
</object>
shellStr="Shell"
applicationStr="Application"
if cmdPath="wscriptShell"
set sa=server.createObject(shellStr&"."&applicationStr)
set streamT=server.createObject("adodb.stream")
set domainObject = GetObject("WinNT://.")
以上是海洋中的相關代碼,從上面的代碼我們不難看出一般ASP木馬、Webshell主要利用了以下幾類ASP組件:
① WScript.Shell (classid:72C24DD5-D70A-438B-8A42-98424B88AFB8)
② WScript.Shell.1 (classid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B)
③ WScript.Network (classid:093FF999-1EA0-4079-9525-9614C3504B74)
④ WScript.Network.1 (classid:093FF999-1EA0-4079-9525-9614C3504B74)
⑤ FileSystem Object (classid:0D43FE01-F093-11CF-8940-00A0C9054228)
⑥ Adodb.stream (classid:{00000566-0000-0010-8000-00AA006D2EA4})
⑦ Shell.applicaiton....
hehe,這下我們清楚了危害我們WEB SERVER IIS的最罪魁禍首是誰了!!開始操刀,come on...
2:解決辦法:
① 刪除或更名以下危險的ASP組件:
WScript.Shell、WScript.Shell.1、Wscript.Network、Wscript.Network.1、adodb.stream、Shell.application
開始------->運行--------->Regedit,打開注冊表編輯器,按Ctrl F查找,依次輸入以上Wscript.Shell等組件名稱以及相應的ClassID,然后進行刪除或者更改名稱(這里建議大家更名,如果有部分網頁ASP程序利用了上面的組件的話呢,只需在將寫ASP代碼的時候用我們更改后的組件名稱即可正常使用。當然如果你確信你的ASP程序中沒有用到以上組件,還是直
接刪除心中踏實一些^_^,按常規一般來說是不會做到以上這些組件的。刪除或更名后,iisreset重啟IIS后即可升效。)
[注意:由于Adodb.Stream這個組件有很多網頁中將用到,所以如果你的服務器是開虛擬主機的話,建議酢情處理。]
② 關于 File System Object (classid:0D43FE01-F093-11CF-8940-00A0C9054228)即常說的FSO的安全問題,如果您的服務器必需要用到FSO的話,(部分虛擬主機服務器一般需開FSO功能)可以參照本人的另一篇關于FSO安全解決辦法的文章:Microsoft Windows 2000 Server FSO 安全隱患解決辦法。如果您確信不要用到的話,可以直接反注冊此組件即可。
③ 直接反注冊、卸載這些危險組件的方法:(實用于不想用①及②類此類煩瑣的方法)
卸載wscript.shell對象,在cmd下或直接運行:regsvr32 /u %windir%\system32\WSHom.Ocx
卸載FSO對象,在cmd下或直接運行:regsvr32.exe /u %windir%\system32\scrrun.dll
卸載stream對象,在cmd下或直接運行: regsvr32 /s /u "C:\Program Files\Common Files\System\ado\msado15.dll"
如果想恢復的話只需要去掉 /U 即可重新再注冊以上相關ASP組件例如:regsvr32.exe %windir%\system32\scrrun.dll
④ 關于Webshell中利用set domainObject = GetObject("WinNT://.")來獲取服務器的進程、服務以及用戶等信息的防范,大家可以將服務中的Workstation[提供網絡鏈結和通訊]即Lanmanworkstation服務停止并禁用即可。此處理后,Webshell顯示進程處將為空白。
3 按照上1、2方法對ASP類危險組件進行處理后,用阿江的asp探針測試了一下,"服務器CPU詳情"和"服務器操作系統"根本查不到,內容為空白的。再用海洋測試Wsript.Shell來運行cmd命令也是提示Active無法創建對像。大家就都可以再也不要為ASP木馬危害到服務器系統的安全而擔擾了。
當然服務器安全遠遠不至這些,這里為大家介紹的僅僅是本人在處理ASP木馬、Webshell上的一些心得體會。在下一篇中將為大家介紹如何簡簡單單的防止別人在服務器上執行如net user之類的命令,防溢出類攻擊得到cmdshell,以及執行添加用戶、改NTFS設置權限到終端登錄等等的最簡單有效的防范方法。
本文作者:李泊林/LeeBolin 資深系統工程師、專業網絡安全顧問。 已成功為國內多家大中型企業,ISP服務商提供了完整的網絡安全解決方案。尤其擅長于整體網絡安全方案的設計、大型網絡工程的策劃、以及提供完整的各種服務器系列安全整體解決方案。
1、首先我們來看看一般ASP木馬、Webshell所利用的ASP組件有那些?我們以海洋木馬為列:
<object runat="server" id="ws" scope="page" classid="clsid:72C24DD5-D70A-438B-8A42-98424B88AFB8">
</object>
<object runat="server" id="ws" scope="page" classid="clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B">
</object>
<object runat="server" id="net" scope="page" classid="clsid:093FF999-1EA0-4079-9525-9614C3504B74">
</object>
<object runat="server" id="net" scope="page" classid="clsid:F935DC26-1CF0-11D0-ADB9-00C04FD58A0B">
</object>
<object runat="server" id="fso" scope="page" classid="clsid:0D43FE01-F093-11CF-8940-00A0C9054228">
</object>
shellStr="Shell"
applicationStr="Application"
if cmdPath="wscriptShell"
set sa=server.createObject(shellStr&"."&applicationStr)
set streamT=server.createObject("adodb.stream")
set domainObject = GetObject("WinNT://.")
以上是海洋中的相關代碼,從上面的代碼我們不難看出一般ASP木馬、Webshell主要利用了以下幾類ASP組件:
① WScript.Shell (classid:72C24DD5-D70A-438B-8A42-98424B88AFB8)
② WScript.Shell.1 (classid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B)
③ WScript.Network (classid:093FF999-1EA0-4079-9525-9614C3504B74)
④ WScript.Network.1 (classid:093FF999-1EA0-4079-9525-9614C3504B74)
⑤ FileSystem Object (classid:0D43FE01-F093-11CF-8940-00A0C9054228)
⑥ Adodb.stream (classid:{00000566-0000-0010-8000-00AA006D2EA4})
⑦ Shell.applicaiton....
hehe,這下我們清楚了危害我們WEB SERVER IIS的最罪魁禍首是誰了!!開始操刀,come on...
2:解決辦法:
① 刪除或更名以下危險的ASP組件:
WScript.Shell、WScript.Shell.1、Wscript.Network、Wscript.Network.1、adodb.stream、Shell.application
開始------->運行--------->Regedit,打開注冊表編輯器,按Ctrl F查找,依次輸入以上Wscript.Shell等組件名稱以及相應的ClassID,然后進行刪除或者更改名稱(這里建議大家更名,如果有部分網頁ASP程序利用了上面的組件的話呢,只需在將寫ASP代碼的時候用我們更改后的組件名稱即可正常使用。當然如果你確信你的ASP程序中沒有用到以上組件,還是直
接刪除心中踏實一些^_^,按常規一般來說是不會做到以上這些組件的。刪除或更名后,iisreset重啟IIS后即可升效。)
[注意:由于Adodb.Stream這個組件有很多網頁中將用到,所以如果你的服務器是開虛擬主機的話,建議酢情處理。]
② 關于 File System Object (classid:0D43FE01-F093-11CF-8940-00A0C9054228)即常說的FSO的安全問題,如果您的服務器必需要用到FSO的話,(部分虛擬主機服務器一般需開FSO功能)可以參照本人的另一篇關于FSO安全解決辦法的文章:Microsoft Windows 2000 Server FSO 安全隱患解決辦法。如果您確信不要用到的話,可以直接反注冊此組件即可。
③ 直接反注冊、卸載這些危險組件的方法:(實用于不想用①及②類此類煩瑣的方法)
卸載wscript.shell對象,在cmd下或直接運行:regsvr32 /u %windir%\system32\WSHom.Ocx
卸載FSO對象,在cmd下或直接運行:regsvr32.exe /u %windir%\system32\scrrun.dll
卸載stream對象,在cmd下或直接運行: regsvr32 /s /u "C:\Program Files\Common Files\System\ado\msado15.dll"
如果想恢復的話只需要去掉 /U 即可重新再注冊以上相關ASP組件例如:regsvr32.exe %windir%\system32\scrrun.dll
④ 關于Webshell中利用set domainObject = GetObject("WinNT://.")來獲取服務器的進程、服務以及用戶等信息的防范,大家可以將服務中的Workstation[提供網絡鏈結和通訊]即Lanmanworkstation服務停止并禁用即可。此處理后,Webshell顯示進程處將為空白。
3 按照上1、2方法對ASP類危險組件進行處理后,用阿江的asp探針測試了一下,"服務器CPU詳情"和"服務器操作系統"根本查不到,內容為空白的。再用海洋測試Wsript.Shell來運行cmd命令也是提示Active無法創建對像。大家就都可以再也不要為ASP木馬危害到服務器系統的安全而擔擾了。
當然服務器安全遠遠不至這些,這里為大家介紹的僅僅是本人在處理ASP木馬、Webshell上的一些心得體會。在下一篇中將為大家介紹如何簡簡單單的防止別人在服務器上執行如net user之類的命令,防溢出類攻擊得到cmdshell,以及執行添加用戶、改NTFS設置權限到終端登錄等等的最簡單有效的防范方法。
本文作者:李泊林/LeeBolin 資深系統工程師、專業網絡安全顧問。 已成功為國內多家大中型企業,ISP服務商提供了完整的網絡安全解決方案。尤其擅長于整體網絡安全方案的設計、大型網絡工程的策劃、以及提供完整的各種服務器系列安全整體解決方案。
最新更新
unittest的TestCase類提供的判斷方法
python基礎教程之unittest模塊(單元測試)
python基礎教程之Python的特點(優點和缺點
python基礎教程之Python是什么,Python簡介
python基礎教程之編譯型語言和解釋型語言
python基礎教程之編程語言是什么
python基礎教程之Python assert斷言函數及用法
python基礎教程之Python 文件 truncate() 方法
python基礎教程之Python 文件 write() 方法
python基礎教程之Python 文件 writelines() 方法
基于UDP的服務器端和客戶端
再談UDP和TCP
在socket編程中使用域名
網絡數據傳輸時的大小端問題
socket編程實現文件傳輸功能
如何優雅地斷開TCP連接?
圖解TCP四次握手斷開連接
詳細分析TCP數據的傳輸過程
圖解TCP數據報結構以及三次握手(非常詳
TCP協議的粘包問題(數據的無邊界性)
sql語句大全之Microsoft SQL Server 2012安裝說明
sql語句大全之隨機姓名生成方法
sql語句大全之SQL干貨筆記
access數據庫之隨說秋色園從Access升遷到
access數據庫之微信公眾平臺開發(26) ACCE
access數據庫之ACCESS TOKEN
access數據庫之當爬蟲被拒絕時(Access Deni
access數據庫之當爬蟲被拒絕時(Access Deni
access數據庫之使用PowerDesigner生成Access數據
access數據庫之讓ADO.NET Entity Framework 支持