抵御Webshell入侵
本文介紹了Webshell的概念、入侵原理以及防護方法,幫助您抵御Webshell入侵,避免其帶來的數據泄露等危害。
從字面上理解,"Web"指需要服務器開放Web服務,"shell"指取得對服務器的某種程度的操作權限。Webshell指匿名用戶(入侵者)通過網站端口,獲取網站服務器的一定操作權限。
Webshell通常是以ASP、PHP、JSP、ASA或者CGI等網頁文件形式存在的一種命令執行環境,也稱為網頁后門。黑客在入侵網站后,通常會將Webshell后門文件與網站服務器Web目錄下正常的網頁文件混在一起;然后使用瀏覽器來訪問這些后門,得到命令執行環境,以達到控制網站或者Web系統服務器的目的。
黑客如果想使用Webshell完成一些特殊的功能,就不可避免地用到一些特殊函數。通過對這些函數進行對照特征值檢查,就能夠定位Webshell,但是Webshell本身也會進行加密來躲避這種檢測。
Webshell 樣例
以下是一個ASP Webshell的樣例。從界面看,它的功能還是比較全的,可以對服務器的文件目錄進行讀寫操作。如果你是網站管理員的話,肯定不希望普通用戶獲得下面的權限。
Webshell如何被注入
常見的Webshell植入方式以下類型:
利用站點上傳漏洞,上傳Webshell。
系統前臺的上傳業務可被利用來上傳Webshell腳本,而被上傳的目錄往往對用戶開放可執行權限。在Web中有上傳圖像、資料文件的地方,上傳完后通常會向客戶端返回上傳文件的完整URL信息;該URL一般是常見的image、upload等目錄。
如果Web服務器對網站存取權限或者文件夾目錄權限控制不嚴,就可能被利用來實現Webshell攻擊。攻擊者可以利用上傳功能上傳一個腳本文件,然后通過URL訪問并執行這個腳本;然后攻擊者就可以上傳Webshell到網站的任意目錄中,從而拿到網站的管理員控制權限。
黑客獲取管理員的后臺密碼,登錄到后臺系統,利用后臺的管理工具向配置文件寫入Webshell木馬;或者私自添加上傳類型,允許上傳類似ASP、PHP格式的腳本程序文件。
利用數據庫備份與恢復功能獲取Webshell。例如,備份時把備份文件的后綴改成 .asp;如果后臺有MySQL數據查詢功能,黑客可以執行
select..in To outfile
查詢輸出PHP文件,并把代碼插入到MySQL,從而生成Webshell的木馬。系統中其他站點被攻擊,或者服務器上還搭載了FTP服務器。FTP服務器被攻擊時被注入了Webshell的木馬,導致網站系統被感染。
黑客直接攻擊Web服務器系統漏洞,實現入侵。Web服務器在系統層面也可能存在漏洞,如果黑客利用其漏洞攻擊服務器系統;在獲取其權限后,黑客就可以在Web服務器目錄里上傳Webshell文件。
綜上,Webshell能夠入侵到系統,一般是由于以下原因:
通過Web站點漏洞上傳Webshell。
Webshell能夠被注入,在很大程度是由于服務器或中間件的安全漏洞。例如,以下常見漏洞都可能被利用來注入Webshell:舊版本的IIS目錄解析漏洞、文件名解析漏洞、應用后臺暴露和弱口令、Fast-CGI解析漏洞、Apache文件解析漏洞、截斷上傳、后臺數據庫備份功能上傳、數據庫語句上傳漏洞等。
站點部署時混入了Webshell文件。
大量的用戶在使用從網上下載的第三方開源代碼時,其代碼本身已經混入了Webshell的惡意腳本,造成二次入侵或多次入侵。所以在部署前期,如果不是新開發的代碼,都需要對代碼進行惡意文件掃描查殺,防止上線后被入侵。
如何防止系統被植入Webshell
配置必要的防火墻并開啟防火墻策略;防止暴露不必要的服務,為黑客提供利用條件。
對服務器進行安全加固。例如,關閉遠程桌面功能、定期更換密碼、禁止使用最高權限用戶運行程序、使用HTTPS加密協議。
加強權限管理,對敏感目錄進行權限設置,限制上傳目錄的腳本執行權限,不允許配置執行權限等。
安裝云安全中心產品,發現檢測結果后,立即隔離查殺,并排查漏洞。
排查程序存在的漏洞,并及時修補漏洞。您可以通過應急響應服務人工界入,協助排查漏洞及入侵原因,同時可以選用阿里云商業Web應用防火墻進行防御,降低被入侵機率。