摘 要:隨著計算機技術的普及和發展,越來越多的人使用著互聯網,越來越多的應用被放置在互聯網之上,人們在享受著它帶來的方便快捷的同時,越來越多的網絡安全問題也隨之而來。本文重點對常見網站攻擊及應對方法進行了分析論述。
關鍵詞:網絡安全漏洞 DDOS木馬 SQL注入 Webshell
計算機系統中的漏洞已經越來越引起人們的重視,而針對這些漏洞的攻防技術始終在不斷的變化中。漏洞是指任意地允許非法用戶未經授權獲得訪問或提高其訪問權限的硬件或軟件特征。學校的網站由于分支較多,因此漏洞存在的可能性也較大。為此,筆者在此探討常見網站攻擊及應對方法。
一、網絡攻擊的分類
就網站而言,網絡攻擊分為四類。
一是對網站進行分布式拒絕服務攻擊DDOS。通常,攻擊者在幾秒鐘內激活成百上千次訪問服務器的程序。同一時間大量的服務請求會占用過多的服務資源,從而使合法用戶無法得到服務的響應。
應對DOS攻擊,一般可以采取以下措施:加大服務器的響應能力、關閉不必要的服務、限制同時打開的Syn半連接數目、縮短Syn半連接的time out時間、及時更新系統補丁。
二是攻擊者對服務器植入木馬,是服務器成為DDOS的“肉雞”,用來攻擊其他服務器。一般來說,相對于個人電腦,服務器的安全設置比較嚴密,服務比較單一,不容易被作為“肉雞”使用,但也不排除這種可能性。
三是獲得網站管理員用戶名及密碼。獲得管理員賬戶和密碼之后,整個網站就在攻擊者的控制之中了。攻擊者控制了信息的發布和修改權,對網站數據構成威脅。
四是通過系統漏洞獲取服務器主機控制權限。通過修改網站上傳文件類型的限制,將木馬上傳至web服務器,從而進一步獲取服務器主機的控制權限,并以此為跳板威脅整個內部網絡的安全。攻擊者還可以利用系統漏洞塞入木馬,對主機進行控制。
筆者在工作中,發現網站數次被上傳了后門文件,并在留言板貼出管理員用戶名和密碼,但大多不正確,未引起實質性損失。也有更嚴重的情況是服務器密碼被修改,這是致命的安全問題。
二、網絡攻擊順序與防范的方法
通過分析攻擊者上傳的文件和數據庫,筆者認為攻擊者入侵的順序有以下方法。
1.SQL注入
攻擊者尋找網站代碼的漏洞,通過SQL注入獲取數據庫中的信息,找到網站的用戶名和密碼。在網頁的鏈接上加入查詢語句,通過查看iis返回的錯誤信息猜測數據庫結構信息。比如當入侵者猜到網站管理員的賬號存在表admin中,管理員賬號名為manager,他想知道manager的密碼,那他可以從瀏覽器的地址欄輸入網址:http://localhost/shownews.asp?ID=555 and (一段sql代碼),這段代碼可以是(Select xxxx from yyyy where zzzz='manager')>0,xxxx代表字段名,yyyy代表管理員表名,zzzz代表猜測的管理員用戶名。瀏覽器返回的錯誤信息中將 varchar 值 'xxxxxxmanager' 轉換為數據類型為 int 的列時會出現錯誤,里面會包含管理員manager的密碼。使用SQL注入入侵工具,如NBSI 2.0能夠更快地注入。防范的方法有兩點。
第一點,使用代碼檢驗。我們可以寫一段對訪問者通過瀏覽器提交過來的變量參數進行檢驗的代碼,如SQL注入,必須要有SQL語言常用的關鍵字。比如,在查詢select、插入insert、更新update等常用于SQL注入的字符時,立即停止執行ASP程序,這意味著可能正在遭受攻擊,所以應當立刻轉向出錯頁面或者給出警告信息。
第二點,屏蔽IIS錯誤提示信息。入侵者通過SQL注入入侵往往是根據IIS給出的ASP錯誤提示來判斷數據庫有什么表、表是什么結構的。例如剛才所說的,如果我們把IIS設置成所有錯誤都不提示詳細信息,只提示一種錯誤,那對于入侵者來說就是一件很頭疼的事。這就好像“他”在問一個人,問了半天,回答只有 “不知道”。
2.獲得Webshell
Webshell是web入侵的一種腳本攻擊工具。簡單來說,Webshell就是一個asp、php或jsp木馬后門。Webshell最大的優點就是可以穿越防火墻,由于與被控制的服務器或遠程主機交換的數據都是通過80端口傳遞的,因此不會被防火墻攔截。當獲得Webshell之后,再使用命令行創建用戶并提升權限。
利用netcat(nc)把cmd.exe綁定,然后使用net user命令進行提權,通過緩沖區溢出漏洞直接獲得Cmdshell或者系統權限。比如說IIS寫權限漏洞,可以匿名訪問IIS,并且寫入ASP木馬,獲得Webshell。比如說Webdav溢出,先用nc監聽本地端口,再去溢出對方端口,獲得一個Cmdshell,然后通過管理命令獲得遠程控制權限。
網站系統管理員首先應做到以下幾點。
第一點,嚴格控制fso,設置好web服務器目錄的權限,讓能寫入的目錄不能運行,能運行的不能寫入。
第二點,對個別組件進行設置。ASP Webshell需要使用的一些組件,現在看來,比較有威脅的組件是Wscript.Shell和Shell.Application這兩個組件。這兩個組件是系統自帶的,我們可以通過修改注冊表,將此組件改名。一旦改名,入侵者就無法知道怎樣調用這兩個組件了。通過Wscript.Shell組件可以修改注冊表,也可以執行DOS命令。而Shell.Application組件不但可以對文件進行一些操作,而且還可以執行程序,但卻不能帶任何參數。我們可以在注冊表中把它改成我們習慣的名字,自己以后調用的時候使用自己改的新名字就可以了。
第三點,對提權常用到的cmd.exe進行改名。這樣入侵者不知道名字就無法調用了。cmd.exe是系統自帶的文件,需要在Windows文件保護中將文件保護掃描關閉后再改。
總之,網絡安全漏洞層出不窮,作為管理員應該研究應對網絡攻擊的方式方法,并且想出應對方案。另外,我們還要防范自己的網站被掛馬成為攻擊其他網站的工具,這是個社會工程,需要廣大管理員共同努力。
參考文獻:
[1]科教工作室.黑客攻防實戰必備[M].北京:清華大學出版社,2012.
[2]肖松嶺.網絡安全技術內幕[M].北京:科學出版社,2008.
[3][美]Eric Cole.網絡安全寶典[M].北京:清華大學出版社,2010.
(作者單位:青島市技師學院)