用搜索神器Everything定位Webshell木馬后門
Everything是速度最快的文件名搜索軟件。其速度之快令人震驚,百G硬盤幾十萬(wàn)個(gè)文件,可以在幾秒鐘之內(nèi)完成索引;文件名搜索瞬間呈現(xiàn)結(jié)果。它小巧免費(fèi),支持中文,支持正則表達(dá)式,可以通過(guò)HTTP或FTP分享搜索結(jié)果。
Everything搜索工具的最大優(yōu)點(diǎn)是速度。其速度不是快,是極快;用戶不是滿意,而是震驚。
因?yàn)镋verything的索引無(wú)需逐一掃描硬盤文件,而是直接讀取NTFS文件系統(tǒng)的USN日志。所以速度已經(jīng)快到令人震驚,甚至是憤怒了:憑什么可以這么快!
“善用佳軟”上有Everything的詳細(xì)介紹:http://xbeta.info/everything-search-tool.htm
—–分割線—–
小菜最近閑著無(wú)事,搭建了一個(gè)blog,但因?yàn)槭堑谝淮?,比較緊張,害怕被黑客入侵,所以狂補(bǔ)安全方面的知識(shí),但無(wú)奈自身水平不夠,而且在了解了一些安全知識(shí)之后認(rèn)為如果網(wǎng)站被盯上了,被入侵是遲早的是,所以,我只好做被入侵之后的打算了:盡可能的查找被嵌入的webshell……
然后最近也在總結(jié)一些軟件的使用經(jīng)驗(yàn),剛好到了Everything這款搜索神器,學(xué)著學(xué)著就想試試用Everything來(lái)輔助webshell的查找,也就有了下面的內(nèi)容(這里查找的思路是通過(guò)文件的修改時(shí)間來(lái)進(jìn)行判斷的,因?yàn)閷?duì)于一個(gè)相對(duì)穩(wěn)定的網(wǎng)站來(lái)說(shuō),網(wǎng)頁(yè)代碼不會(huì)經(jīng)常性的發(fā)生變化,所以可以通過(guò)文件的修改時(shí)間進(jìn)行輔助判斷):
1.通過(guò)文件的修改日期
- dateaccessed:<date> #搜索在指定日期被訪問(wèn)的文件或文件夾
- datecreated:<date> #搜索在指定日期被創(chuàng)建的文件或文件夾
- datemodified:<date> #搜索在指定日期被修改的文件或文件夾
- da:<date> #dateaccessed:<date>的簡(jiǎn)寫
- dc:<date> #datecreated:<date>的簡(jiǎn)寫
- dm:<date> #datemodified:<date>的簡(jiǎn)寫
其中的date的語(yǔ)法格式和一些常量如下:
date格式:
year
month/year or year/month depending on locale settings
day/month/year, month/day/year or year/month/day depending on locale settings
一些date的常量:
today
yesterday
tomorrow
<last|past|prev|current|this|coming|next><year|month|week>
<last|past|prev|coming|next><x><years|months|weeks|hours|minutes|mins|seconds|secs>
january|february|march|april|may|june|july|august|september|october|november|december
jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec
sunday|monday|tuesday|wednesday|thursday|friday|saturday
sun|mon|tue|wed|thu|fri|sat
unknown
實(shí)際使用舉例如下:
C:\Users\userName\Desktop datecreated:yesterday #查找桌面上昨天修改過(guò)的文件or文件夾 C:\Users\userName\Desktop datemodified:today #查找桌面上今天修改過(guò)的文件or文件夾 C:\Users\userName\Desktop datemodified:2014/6/15 #查找桌面上在2014/6/15這天修改過(guò)的文件or文件夾{2014/6/15這個(gè)格式和你本地的設(shè)定有關(guān), 你可以打開(kāi)Everything看"Date Modified"那一列的顯示格式} C:\Users\userName\Desktop datemodified:lastweek #查找桌面上上個(gè)星期修改過(guò)的文件or文件夾 C:\Users\userName\Desktop datemodified:january #查找桌面上在一月份修改過(guò)的文件or文件夾
提示:最好指定一個(gè)路徑來(lái)進(jìn)行搜索(例如在進(jìn)行webshell檢測(cè)時(shí),指定網(wǎng)站目錄),否則速度很慢{當(dāng)然了,這與個(gè)人電腦配置有關(guān),在我的瓜機(jī)上面很慢就是了}
2.通過(guò)文件大小
使用語(yǔ)法介紹:
size:Search for files with the specified size in bytes. Size Syntax: size[kb|mb|gb] Size Constants: empty tiny0 KB < size <= 10 KB small10 KB < size <= 100 KB medium100 KB < size <= 1 MB large1 MB < size <= 16 MB huge16 MB < size <= 128 MB giganticsize > 128 MB unknown
實(shí)際舉例如下:
一般的webshell文件也不大{當(dāng)然了,區(qū)分大小馬},所以可以試試查找大于0KB小于10KB的文件(size:tiny)
查找文件大小小于50KB的文件方法(size:<=50kb)
當(dāng)然也可以通過(guò)查找PHP文件,然后再按文件大小排序的方式來(lái)進(jìn)行。
3.簡(jiǎn)潔實(shí)用的手動(dòng)方式
C:\Apache\htdocs *.php#顯示了結(jié)果之后,再按照文件修改時(shí)間/大小/文件名排序,快速而且直接 C:\Apache\htdocs *.php | *.jpg
一般是通過(guò)指定搜索路徑的方式來(lái)加快速度,可以通過(guò)多種方式的結(jié)合來(lái)達(dá)到自己的目的,這個(gè)需要根據(jù)自己的情況來(lái)定,這里就不細(xì)說(shuō)了。
上面提供的只是一種思路,在Windows上也可以通過(guò)批處理腳本或PHP/Python腳本編寫功能更強(qiáng)大的webshell查找工具,不過(guò)就效率,速度和直觀性而言,Everything這款工具確實(shí)還是非常值得推薦的!Everything還有很多的功能值得我們?nèi)グl(fā)現(xiàn)、去挖掘,多組合、多嘗試就可以找到適合自己的方法,祝好運(yùn)!
編程高手也可以自行編寫腳本調(diào)用Everything的命令行來(lái)進(jìn)行周期性的掃描、報(bào)告,如果寫好了能給大家分享一下那就更好了(☆_☆)/~~
————————–
在Linux上因?yàn)樵闪撕芏嗝钚泄ぞ?,速度也是非常快,所以也不用其他多余的工具了,寫個(gè)shell腳本,然后放在crontab中周期性運(yùn)行并把結(jié)果發(fā)送給自己,效果還是很不錯(cuò)的。
—–下面是從網(wǎng)上搜集的一些使用find/xargs/grep的命令組合查找webshell的方法—–
查找"/path/to/webroot"目錄里面在10天內(nèi)進(jìn)行過(guò)修改的php文件(可根據(jù)需要進(jìn)行微調(diào)):
find /path/to/webroot -name "*.php" -mtime -10
如果文件更新時(shí)間不確定,我們可以通過(guò)查找關(guān)鍵字的方法來(lái)確定。要想查的準(zhǔn)確需要熟悉webshell常用的關(guān)鍵字,我這里列出一些常用的,其他的大家可以從網(wǎng)收集一些webshell,總結(jié)自己的關(guān)鍵字,括號(hào)里面我總結(jié)的一些關(guān)鍵字(eval,shell_exec,passthru,popen,system)查找方法如下:
find /path/to/webroot -name "*.php" |xargs grep "eval" |less find /path/to/webroot -name "*.php" |xargs grep "shell_exec" |less find /path/to/webroot -name "*.php" |xargs grep "passthru" |less
當(dāng)然你還可以導(dǎo)出到文件,下載下來(lái)慢慢分析:
find /home -name "*.php"|xargs grep "fsockopen"|tee webshell_scan.log
這里我就不一一羅列了,如果有自己總結(jié)的關(guān)鍵字直接替換就可以。當(dāng)然并不是所有的找出的文件都是webshell,這個(gè)需要自己做一下判斷,判斷的方法也簡(jiǎn)單,直接從瀏覽器訪問(wèn)一下這個(gè)文件或者和自己找的一些webshell比較一下,看得多了,基本上一眼就可以判斷是不是webshell文件。
因?yàn)長(zhǎng)inux上的這個(gè)的查找方法在各種網(wǎng)站上都有類似的內(nèi)容,沒(méi)法找到原文出處,如有請(qǐng)告知,謝謝。
最后來(lái)點(diǎn)猛料:
在查找webshell的時(shí)候,集中注意力是非常必要的,可如果你昨天看了些小電影而導(dǎo)致精力不足無(wú)法集中精神排查的話可是非常要命的,所以,你需要:
打開(kāi)Everything,在搜索框中輸入: *.rm | *.rmvb |*.avi | *.wmv | *.mkv | *.mpeg | *.3gp,按大小排序,選擇非系統(tǒng)視頻文件,深呼吸,閉眼,手不要抖,按住Shift+Del鍵(是的,shift+del,剝奪它們進(jìn)回收站的權(quán)利),睜眼,露出燦爛的笑容,生活原來(lái)如此美好~~