■ 河南 劉景云
編者按:為了防止黑客入侵,我們通常會(huì)為系統(tǒng)打上各種補(bǔ)丁,安裝各種安全軟件,但是,百密必有一疏,一旦出現(xiàn)薄弱環(huán)節(jié),黑客就會(huì)乘虛而入。如何發(fā)現(xiàn)系統(tǒng)安全配置上的不足之處,并及時(shí)堵上漏洞呢?其實(shí)通過對(duì)日志進(jìn)行深入分析,就可以找到黑客的活動(dòng)特點(diǎn),有針對(duì)性的制定出更好的防御和反擊策略。
日志對(duì)系統(tǒng)安全的重要性不言而喻。對(duì)于經(jīng)驗(yàn)豐富的管理員來說,通過分析日志可以對(duì)系統(tǒng)的安全狀態(tài)了如指掌。
點(diǎn)擊“Windows+R”鍵,執(zhí)行“eventvwr”命令,可以查看日志內(nèi)容。不管哪個(gè)版本W(wǎng)indows,都至少可以看到應(yīng)用程序日志、安全性日志和系統(tǒng)日志三類日志信息。
在默認(rèn)情況下,日志記錄的內(nèi)容并不全面,一些非常重要的安全性監(jiān)視項(xiàng)目并沒有激活。這樣雖然可以節(jié)省系統(tǒng)資源,但對(duì)安全性不利。運(yùn)行“gpedit.msc”程序,在組策略編輯器窗口左側(cè)選擇“計(jì)算機(jī)配置”→“Windows設(shè)置”→“安全設(shè)置”→“本地策略”→“審核策略”項(xiàng),在右側(cè)窗口中可以對(duì)多種審核策略進(jìn)行配置。
很多服務(wù)器使用的都是msSQL Server 數(shù)據(jù)庫,黑客在采用SQL 注入過程中,必然會(huì)涉及到SQL Server 的函數(shù)或存儲(chǔ)過程,這就會(huì)在數(shù)據(jù)庫的日志文件中留下痕跡信息。在默認(rèn)情況下,msSQL Server 日志文件保存在“C:Program FilesMicrosoft SQL ServerMSSQLLOG”目錄中。為了保證安全,需要會(huì)在服務(wù)器上安裝殺毒軟件或者防火墻軟件。這些安全軟件同樣有自己的日志記錄功能。如果在服務(wù)器上安裝了Serv-U 等服務(wù)軟件,也會(huì)產(chǎn)生對(duì)應(yīng)的日志文件。通過對(duì)這些日志文件的分析判讀,也可以發(fā)現(xiàn)黑客的蹤跡。
在實(shí)際工作中,需要針對(duì)黑客的具體攻擊行為,對(duì)日志進(jìn)行有效的分析,來提高系統(tǒng)的安全性。
例如,當(dāng)某臺(tái)服務(wù)器安裝有IIS 組件、msSQL Server數(shù)據(jù)庫、公司官網(wǎng)或論壇等網(wǎng)站。當(dāng)被黑客盯上后,黑客會(huì)對(duì)其進(jìn)行徹底掃描,來發(fā)現(xiàn)其中開啟了哪些端口。
例如,管理員在事件查看器窗口左側(cè)選擇“安全性”項(xiàng),在右側(cè)窗口可發(fā)現(xiàn)可疑的審核日志。如果在詳細(xì)信息窗口中的“來源”欄中顯示“MSFTPSVC”字樣,表示其來自于FTP 服務(wù)模塊。在“描述”欄中顯示登錄失敗信息,連接者使用了未知的用戶名和錯(cuò)誤的密碼,而且顯示器使用的FTP 賬戶名為“root”。根據(jù)這些信息,不難看出黑客使用了某些FTP破解工具對(duì)IIS 中的FTP 服務(wù)進(jìn)行檢測(cè),每次測(cè)試一個(gè)賬戶和密碼,因?yàn)槭遣煌5臏y(cè)試,每次破譯都會(huì)在日志中留下一條記錄。
由此看出,為FTP 服務(wù)器設(shè)置復(fù)雜的密碼,可以大大增加黑客破解的難度。打開“C:WINDOWSsystem32LogFiles”目錄,在其中可以找到和FTP相關(guān)的日志文件,可以查看到以下一些內(nèi)容:
從中可以看出,黑客利用了字典對(duì)FTP 服務(wù)器進(jìn)行賬戶和密碼的猜測(cè),如果密碼設(shè)置的比較簡(jiǎn)單,黑客就很容易突破防線。在默認(rèn)情況下,掃描工具還會(huì)對(duì)目標(biāo)主機(jī)進(jìn)行IIS 漏洞檢測(cè),這些檢測(cè)都會(huì)在IIS 日志中留下痕跡。
對(duì)于老練的黑客來說,會(huì)利用最新漏洞對(duì)服務(wù)器進(jìn)行掃描。例如,黑客可能會(huì)使用針對(duì)某個(gè)新漏洞的專用掃描器,對(duì)服務(wù)器進(jìn)行掃描檢測(cè)。根據(jù)實(shí)際的測(cè)試,這些掃描器并不會(huì)在系統(tǒng)日志中留下什么可用的線索。所以為了系統(tǒng)的安全,必須為其打上各種補(bǔ)丁。
黑客對(duì)目標(biāo)進(jìn)行全面掃描后,接下來就會(huì)發(fā)起實(shí)際的攻擊動(dòng)作了。例如,黑客發(fā)現(xiàn)目標(biāo)機(jī)上存在一個(gè)可以溢出的漏洞,就會(huì)毫不猶豫發(fā)起進(jìn)攻。
對(duì)于危害性比較大的漏洞來說,黑客甚至可以使用多個(gè)不同的服務(wù)(例如IIS服務(wù)、SMTP 服務(wù)、SMB 服務(wù)等)來執(zhí)行溢出操作。在事件查看器左側(cè)選擇“系統(tǒng)日志”項(xiàng),可以發(fā)現(xiàn)由此產(chǎn)生的錯(cuò)誤日志信息。例如,相關(guān)服務(wù)的進(jìn)程遇到了錯(cuò)誤,系統(tǒng)將試圖恢復(fù);系統(tǒng)內(nèi)存出現(xiàn)不足的問題,要求用戶檢查虛擬內(nèi)存是否消耗完等。
從具體的實(shí)例進(jìn)行分析,可以得出這樣的結(jié)論,當(dāng)黑客針對(duì)某個(gè)系統(tǒng)漏洞進(jìn)行攻擊操作后,如果對(duì)應(yīng)的服務(wù)出錯(cuò),就會(huì)被系統(tǒng)日志完整記錄下來。但是這樣顯示的方式和內(nèi)容并不直觀,所提供的信息量也比較有限。甚至有些漏洞攻擊并不被記錄。
因此,完全依賴系統(tǒng)日志功能,是不足以對(duì)付漏洞攻擊行為的。為了彌補(bǔ)這一不足,可以使用帶有主動(dòng)防御功能的殺毒軟件。
很多網(wǎng)站采用了msSQL Server 數(shù)據(jù)庫,黑客在入侵此類網(wǎng)站時(shí),往往會(huì)使用注入的方式對(duì)網(wǎng)站進(jìn)行滲透。對(duì)日志進(jìn)行分析,不難發(fā)現(xiàn)其蹤跡。為了便于分析,可以使用UltraEdit32 這款強(qiáng)悍的編輯軟件,打開IIS 日志文件,來尋找有用的線索。
例如,在UltraEdit32 主界面中點(diǎn)擊“Ctrl+F”組合鍵,在搜索窗口中輸入“1=1”“and 1=1” “and 1=2” “' and'1'='1”及“'and '%25'='#25”等內(nèi)容,搜索與其關(guān)聯(lián)的信息。因?yàn)樵趫?zhí)行SQL 注入操作時(shí),黑客往往會(huì)在特定的網(wǎng)址后面添加測(cè)試語句,里面就包含上述內(nèi)容。在搜索窗口中勾選“列出包含字符串的行”項(xiàng),可以讓搜索更具效率。
執(zhí)行搜索操作后,Ultra Edit32 很快就在日志文件中找到了很多信息,為了便于觀察,在工具欄上點(diǎn)擊“全部書簽”按鈕,讓搜索到的數(shù)據(jù)高亮顯示。對(duì)這些日志行進(jìn)行逐一分析,可以很容易的發(fā)現(xiàn)疑點(diǎn)。
黑客除了借助“Master..XP_CMDSHELL”等存儲(chǔ)進(jìn)程的權(quán)限來執(zhí)行各種命令外,常見的入侵手法還包括借助于數(shù)據(jù)庫差異備份操作,上傳ASP 木馬得到WebShell 控制接口。使用SQL Server 提供的日志記錄功能,可以查看與其相關(guān)的事件。在SQL Server 企業(yè)管理器中依次打開“管理”→“SQL Server 日志”項(xiàng),可以查看日志信息。
注意,上述對(duì)日志的檢測(cè)分析,是基于未編碼的明文格式,如果黑客使用了比較強(qiáng)悍的入侵掃描工具,對(duì)Web服務(wù)器進(jìn)行入侵時(shí),在日志中會(huì)看到與之相關(guān)的內(nèi)容全部處于編碼狀態(tài),這給分析工作帶來了繁瑣。
其實(shí),使用UltraEdit32這款工具,可以輕易將其破解,使用UltraEdit32 打開IIS 日志文件,在其窗口底部點(diǎn)擊解碼按鈕,就可以對(duì)其進(jìn)行解碼,并還原其本來面目了。
實(shí)好多網(wǎng)站都提供了論壇版塊,而論壇版塊幾乎都是利用現(xiàn)成的模板包,只是對(duì)其顯示內(nèi)容進(jìn)行修改而已。在這些現(xiàn)成的論壇程序中不免存在各種漏洞。當(dāng)然,論壇程序中也提供了日志記錄功能,查看這些日志,就會(huì)發(fā)現(xiàn)黑客上傳的可疑文件。
例如,像“Dbpath=…/UploadFile/ 具體日期/具體文件名稱.txt&backpath=../shell.asp”等日志內(nèi)容。黑客為了逃避檢測(cè),也會(huì)設(shè)法清除這些日志內(nèi)容。但是,有些日志數(shù)據(jù)受時(shí)間限制是不能隨意清除的。對(duì)于管理員來說,最好養(yǎng)成每天都查閱日志的習(xí)慣。
在很多的入侵案例中,都可以看到黑客利用各種漏洞上傳ASP、PHP 等木馬,來獲得WebShell 接口,進(jìn)而執(zhí)行查閱敏感信息,搜尋重要文件,非法提權(quán)等操作。那么,這些木馬的活動(dòng)是否在日志中也留下蹤跡了嗎?答案是肯定的。例如,在IIS日志中如果出現(xiàn)了“Get/shell.asp%23=Executr(Se ssion(%22%23%22))&pageN ame=MsDataBase&theAct=qu ery&sqlStr=具體的數(shù)據(jù)庫路徑編碼”之類的內(nèi)容,說明黑客利用一句話木馬連接上了后臺(tái)數(shù)據(jù)庫。而類似于“POST/shell.asp PageNam e=MsdateBase&theAct=quer y&sqlStr=后臺(tái)數(shù)據(jù)庫路徑編碼”的內(nèi)容,說明其執(zhí)行了特定的SQL 語句,但是沒有記錄具體的內(nèi)容。而看到“POST/shell.asp %23=Exe cute(Session(%22%23%22))&pageName=FsoFIleExplo rer&theAct=upload&thePa th=具體Web 路徑+cmd.com&overWrite=false 80 -服務(wù)器IP”之類的內(nèi)容,說明黑客上傳了CMD.exe 程序(當(dāng)然,也可以是其它程序)。然后黑客就可以執(zhí)行各種命令了。
在日志中可以看到類似于“POST/shell.asp %23=Execute(Session(%22%23%2 2))&pageName=WscmdRun”的內(nèi)容,說明黑客已經(jīng)在執(zhí)行所需的命令的,例如提升權(quán)限之類的,但是日志中并沒有記錄具體的命令內(nèi)容。
注意,不同的ASP 木馬使用的關(guān)鍵字(例如Path、info等)是不同的,如果管理員對(duì)ASP 木馬比較了解,根據(jù)使用關(guān)鍵字信息就可以判斷其出處?,F(xiàn)在ASP、PHP 等木馬已經(jīng)成了過街老鼠,是安全軟件重點(diǎn)打擊對(duì)象。一旦黑客上傳了木馬,如果被殺毒軟件認(rèn)出就會(huì)被清除。黑客自然不甘心失敗,還會(huì)上傳免殺型木馬,來避開殺軟的監(jiān)控。而且黑客習(xí)慣于向網(wǎng)站的同一個(gè)路徑中上傳木馬。所以在查閱安全軟件的日志時(shí),如果發(fā)現(xiàn)了攔截這些木馬的信息,就應(yīng)該根據(jù)提示進(jìn)行對(duì)應(yīng)的目錄中,查看是否有漏網(wǎng)之魚,并及時(shí)將其清除。
黑客為了便于長(zhǎng)期控制肉機(jī),往往會(huì)在其中留下后門。其常用的手法包括添加一個(gè)賬戶到管理員組中,或者克隆一個(gè)賬戶來避開用戶的檢測(cè);安裝一個(gè)免殺型的后門程序,不過這會(huì)在系統(tǒng)路徑(或者別的目錄)中留下木馬文件,同時(shí)會(huì)開啟新的端口或者安裝替換某個(gè)服務(wù)。
最隱蔽的招數(shù)是安裝RootKit 類型的病毒木馬,將相關(guān)文件,端口和服務(wù)徹底隱藏起來。
如果黑客的賬戶沒有隱藏,那么執(zhí)行“net user”命令,可以很容易將其檢測(cè)出來。對(duì)于克隆賬戶,可以使用LP_Check 工具來檢測(cè)。
在LP_Check 主窗口中列出所有存在的賬戶,如果在列表中對(duì)應(yīng)賬戶的“Result”列中顯示為“Shadow Admini strator”項(xiàng),就表示該賬戶被克隆了。同時(shí)在窗口底部的“Result”欄中顯示存在的克隆賬戶的數(shù)量。想刪除克隆賬戶,必須擁有SYSTEM賬戶權(quán)限。
使用“PsExec”工具,可以獲得擁有SYSTEM 帳戶權(quán)限??蓪ⅰ癙sexec.exe”復(fù)制到系統(tǒng)文件夾中,之后在CMD窗口中執(zhí)行命令“psexec -i-d -s %windir% egedit.exe”,在注冊(cè)表編輯器中展開“HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsersNames”分支,在其下可以看到所有的賬戶信息,在克隆賬戶名稱的右鍵菜單上點(diǎn)擊“刪除”按鈕,即可將其從系統(tǒng)中徹底刪除。
其實(shí),即使黑客將Guest賬戶克隆成管理員賬戶,當(dāng)其使用該賬戶登錄終端服務(wù)時(shí),在事件查看器中的安全性日志中也會(huì)記錄下這一行為。在日志列表中選擇查找到與之關(guān)聯(lián)的登錄項(xiàng)目,在其詳細(xì)信息窗口中可以查看到“目標(biāo)用戶名”為Guest,在“源網(wǎng)絡(luò)地址”和“源端口”中顯示黑客主機(jī)的IP 和端口。
即使黑客為了逃避檢測(cè),將安全性日志清空,依然會(huì)留下一條日志信息,顯示審核日志已經(jīng)被清除。該記錄黑客是無法清理的。當(dāng)發(fā)現(xiàn)Guest 賬戶登錄后,而服務(wù)器根本沒有使用過該賬戶,或者已經(jīng)將其禁用,那么就說明黑客將Guest 賬戶克隆成管理員賬戶了。可以恢復(fù)Guest 賬戶的本來面目,或者干脆將其刪除。
如果黑客安裝了后門,就必然會(huì)在系統(tǒng)中留下木馬文件,一般來說,黑客常常在系統(tǒng)路徑下存放木馬文件。
因此,可以在CMD 窗口中執(zhí)行“dir c:windowssys tem32 > c:sysfile1.txt:”以及“net start > c:server1.txt”命令,將系統(tǒng)路徑下的文件信息存放到“sysfile1.txt”文件,并將系統(tǒng)服務(wù)信息存到“server 1.txt”文件中。
當(dāng)懷疑系統(tǒng)中存在木馬時(shí),執(zhí)行“dir c:windowssystem32 > c:sysfile2.txt:”和“net start > c:server2.txt” 命令,可以獲得當(dāng)前的系統(tǒng)文件信息和服務(wù)信息。之后執(zhí)行“fc sysfile1.txt sysfile2.t xt”和“fc server1.txt ser ver2.txt”命令,來檢測(cè)系統(tǒng)文件和服務(wù)的變動(dòng)信息。如果發(fā)現(xiàn)可疑的新文件或者服務(wù),就要提高警惕了。將其找出來分析,確認(rèn)是木馬文件后,可以進(jìn)入Windows PE環(huán)境,將相關(guān)的木馬文件徹底刪除。
當(dāng)然,對(duì)付使用RootKit技術(shù)深度隱身的病毒木馬,僅僅依靠“dir”和“fc”命令是遠(yuǎn)遠(yuǎn)不夠的。因?yàn)檫@種基于內(nèi)核級(jí)別的惡意程序可以輕松隱藏文件,端口或者服務(wù)等對(duì)象。
當(dāng)然,對(duì)于此類惡意程序當(dāng)然不能束手無策,利用合適的工具,同樣可以讓其現(xiàn)出原形。例如針對(duì)隱藏的服務(wù),可以使用Knlsc 這款小工具,讓其徹底暴露出來。
當(dāng)黑客入侵之后,必然會(huì)使用各種黑客工具對(duì)日志進(jìn)行刪除,來掩蓋其蹤跡。因此,對(duì)日志進(jìn)行保護(hù)就能顯得非常重要了。
在默認(rèn)情況下,打開“%systemroot%system32con fig”文件夾,其中后綴為“.evt”的文件就是日志文件。這些文件受到系統(tǒng)嚴(yán)格的保護(hù),無法直接刪除。但若擁有足夠的權(quán)限,完全可以清空對(duì)應(yīng)日志的記錄信息。
因此,如果想保護(hù)系統(tǒng)日志,最直接的辦法就是更改其存放位置。
打開注冊(cè)表編輯器,展開“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlog”分支,其中可以看到與所有日志項(xiàng)目關(guān)聯(lián)的子健。選擇所需的日志子健名,在右側(cè)窗口中雙擊“file”鍵值名,可以修改該日志文件的存儲(chǔ)位置。
如果系統(tǒng)中安裝了IIS組件,還涉及到Web 日志文件的搬遷問題。其方法是在Internet 信息服務(wù)管理器中選擇目標(biāo)站點(diǎn),在屬性窗口中的“網(wǎng)站”面板中勾選“啟用日志記錄”項(xiàng),點(diǎn)擊“屬性”按鈕,在常規(guī)屬性面板中點(diǎn)擊“瀏覽”按鈕,更改Web 日志存放路徑。
經(jīng)過上述操作,雖然修改了日志存放位置,但只要訪問者擁有足夠的權(quán)限,仍然可以輕松的清除日志信息。我們必須通過Windows 文件保護(hù)機(jī)制來捍衛(wèi)日志安全。當(dāng)然,前提是日志文件必須存儲(chǔ)在NTFS 格式分區(qū)中。
選擇新的日志存放文件夾,在屬性窗口中打開“安全”面板,點(diǎn)擊“刪除”,清除除 了“Users” 和“SYSTEM”之外的所有賬戶。如果有些賬戶不能刪除,可以點(diǎn)擊“高級(jí)”按鈕,在彈出窗口中的“權(quán)限”面板中取消從父項(xiàng)繼承那些可以應(yīng)用到自對(duì)象的權(quán)限項(xiàng)目,來清除所有的賬戶。之后選擇“Users”組,在“允許”欄中只勾選“讀取”項(xiàng),讓其只讀取日志。選擇“SYSTEM”賬戶,在“允許”欄中勾選除了“完全控制”和“修改”之外的所有權(quán)限。之后點(diǎn)擊“確定”保存配置。當(dāng)以后進(jìn)入事件查看器窗口,試圖刪除日志信息時(shí),系統(tǒng)就會(huì)彈出“清除事件日志失敗,拒絕訪問”的提示。即使利用系統(tǒng)漏洞滲透進(jìn)來,取得了權(quán)限很大的CMDshell,試圖清理日志毀滅證據(jù),也同樣會(huì)遭到系統(tǒng)的攔截。
當(dāng)然,對(duì)于殺毒軟件、防火墻、數(shù)據(jù)庫等日志文件,同樣可以采取調(diào)整其存儲(chǔ)路徑,設(shè)置管理權(quán)限等方式。對(duì)于管理員來說,每天認(rèn)真地查閱日志信息,就可以及時(shí)發(fā)現(xiàn)黑客的入侵蹤跡。
處于安全考慮,對(duì)日志進(jìn)行備份,同樣不可忽略。除了使用各種備份軟件外,利用微軟提供的“dumpel.exe”工具,可以快速有效的備份日志。該工具在ResourceKit工具箱中。例如,在CMD 窗口中執(zhí)行“dumpel -l sys tem -f owesystem.log”“dumpel -l application-f oweapplication.log”“dumpel -l secury -f owe security.log”命令,即可備份本機(jī)的系統(tǒng)、應(yīng)用程序及安全日志信息。