一.什么是WebShell?
“web”的含義是顯然需要服務器開放web服務,“shell”的含義是取得對服務器某種程度上操作權限。webshell常常被稱為匿名用戶(入侵者)通過網站端口對網站服務器的某種程度上操作的權限。
簡單理解: WebShell通常是以asp、php、jsp、asa或者cgi等網頁文件形式存在的—種命令執行環境,也可以稱為—種網頁后門。黑客在入侵網站后,通常會將WebShell后門文件與網站服務器WEB目錄下正常的網頁文件混在—起,然后就可以使用瀏覽器來訪問這些后門,得到命令執行環境,以達到控制網站或者WEB系統服務器的目的。
webshell中由于需要完成一些特殊的功能就不可避免的用到一些特殊的函數,我們也就可以對著特征值做檢查來定位webshell,同樣的webshell本身也會進行加密來躲避這種檢測。
二.webshell長什么樣子
以下是asp webshell的樣例,從界面看,它的功能還是比較全的,可以對服務器的文件目錄進行讀寫操作,如果你是網站管理員的話肯定是不希望普通用戶獲得下面的權限的。
三.WebShell是如何入侵系統的?
1)利用站點上傳漏洞實現上傳webshell
利用系統前臺的上傳業務,上傳WebShell腳本,上傳的目錄往往具有可執行的權限。在web中有上傳圖像、上傳資料文件的地方,上傳完后通常會向客戶端返回上傳的文件的完整URL信息,有時候不反饋,我們也可以猜到常見的image、upload等目錄下面,如果Web對網站存取權限或者文件夾目錄權限控制不嚴,就可能被利用進行webshell攻擊,攻擊者可以利用上傳功能上傳一個腳本文件,然后在通過url訪問這個腳本,腳本就被執行。然后就會導致黑客可以上傳webshell到網站的任意目錄中,從而拿到網站的管理員控制權限。
2)黑客獲取管理員的后臺密碼,登陸到后臺系統,利用后臺的管理工具向配置文件寫入WebShell木馬,或者黑客私自添加上傳類型,允許腳本程序類似asp、php的格式的文件上傳。
3)利用數據庫備份與恢復功能獲取webshell。如備份時候把備份文件的后綴改成asp。或者后臺有mysql數據查詢功能,黑客可以通過執行select..in To outfile 查詢輸出php文件,然后通過把代碼插入到mysql,從而導致生成了webshell的木馬。
4)系統其他站點被攻擊,或者服務器上還搭載了ftp服務器,ftp服務器被攻擊了,然后被注入了webshell的木馬,從而導致網站系統也被感染。
5)黑客直接攻擊Web服務器系統漏洞入侵Web服務器在系統層面也可能存在漏洞,如果黑客利用其漏洞攻擊了服務器系統,那么黑客獲取了其權限,則可以在web服務器目錄里上傳webshell文件。
四.WebShell能夠肆虐的重要原因是什么?
1)通過web站點漏洞上傳webshell
WebShell能夠被注入很大程度是由于服務器或中間件的安全漏洞。例如:老版本的IIS目錄解析漏洞、文件名解析漏洞、應用后臺暴露和弱口令、fast-CGI解析漏洞、apache文件解析漏洞、截斷上傳、后臺數據庫備份功能上傳、利用數據庫語句上傳等漏洞實現。
2)站點部署時混入了webshell文件
我們發現有大量的客戶在使用從網上下載的第三方開源代碼時,混入了WebShell的惡意腳本,造成二次入侵或多次入侵,所以在部署前期,如果不是新開發的代碼,需要對代碼進行惡意文件掃描查殺,防止上線后被入侵。
五.如何防止系統被植入WebShell?
配置必要的防火墻開啟防火墻策略,防止暴露不必要的服務,為黑客提供利用條件。
對服務器進行安全加固,例如:關閉遠程桌面這些功能、定期更換密碼、禁止使用最高權限用戶運行程序、使用https加密協議。
加強權限管理,對敏感目錄進行權限設置,限制上傳目錄的腳本執行權限,不允許配置執行權限。
安裝webshell檢測工具,發現檢測結果后,立即隔離查殺,并排查漏洞。
排查程序存在的漏洞,并及時修補漏洞,如果沒有安全能力,可以通過應急響應服務人工界入協助排查漏洞及入侵原因,同時可以選用阿里云商業web應用防火墻防御,降低入侵機率。