0x00 概述
findWebshell是一款基于python開發(fā)的webshell檢查工具,可以檢查任意類型的webshell后門。
該工具具有一定的擴展能力,能夠通過字典添加以及插件開發(fā)兩種方式,對findwebshell進行擴展。
0x01 安裝
本工具的安裝方法比較簡單,因為是基于python開發(fā)的小工具,只要有python運行環(huán)境就可以了。
PS:源碼有些地方存在錯誤,需要修改。
于
plugins/php_packshell-plugin.py的第12行,多一個分號
于plugins/php_include_file-plugin.py的第29行,少一個r
0x02 測試環(huán)境
測試環(huán)境:
- 運行環(huán)境:Ubuntu Server 12.04 LTS
- web服務器:apache2
- web應用:dvwa
- webshell:一句話木馬+中國菜刀
這樣的測試環(huán)境里,我們藏進去一個一句話木馬webshell(自留)以及一個文件包含webshell(dvwa自帶)。
0x03 使用方法
命令行參數(shù)
- -h 幫助
- -p PATH, --path=PATH 待掃描的web應用目錄路徑PATH
- -o OUTPUT, --output=OUTPUT 創(chuàng)建文件格式為html的,文件名為OUTPUT的webshell掃描報告,默認為report.html
- -e php|asp|aspx|jsp|all, --ext=php|asp|aspx|jsp|all 定義待掃描的文件格式
示例
python main.py -e php -p /path/to/web/applcation -o output
測試環(huán)境掃描
python main.py -e php -p /home/crazydog/workspace/src/DVWA-1.9/ -o output
掃描結(jié)果如下:

0x04 開發(fā)擴展
findWebshell具有擴展能力,該能力可以通過字典添加和插件開發(fā)的方式來實現(xiàn)。
字典添加
后門敏感關鍵字
在directory/目錄下的文件sensitiveWord.py定義的是后門中的敏感關鍵字,可以手動添加,格式通常為{"關鍵字":"類型"}。
其原理是某些后門文件中包含有指明后門相關信息的特有敏感字符,接著我們將這些敏感字符添加到字典之中,其中敏感詞分為php,jsp,asp,aspx四種字典。
文件如下:
#/usr/bin/env python
#coding=utf8
"""
后門中包含的特有敏感字符
自行手動添加各個類型后門到字典中,格式{"關鍵字":"類型"}
"""
#php敏感字符列表
php_sensitive_words = {
"www.phpdp.org":"PHP神盾加密后門",
"www.phpjm.net":"PHP加密后門"
}
#asp敏感字符列表
asp_sensitive_words = {
}
#aspx敏感字符列表
apsx_sensitive_words = {
}
#jsp敏感字符列表
jsp_sensitive_words = [
]
webshell列表
在在directory/目錄下的文件webshell.py定義了webshell列表。
其原理是定義了一個列表,列表中的文件名可能是潛在的已知webshell名以及明顯的木馬名字列表,需要關注。其中webshell類型分為php,jsp,asp,aspx四種。
文件如下:(我們可以在列表中添加可疑的文件名)
#!/usr/bin/env python
#coding=utf8
"""
文件名包含明顯的木馬名字和已知webshell名列表
"""
#php的
php_webshell = [
"phpspy.php",
"yijuhua.php",
"houmeng.php",
"backdoor.php",
"后門.php",
"xxoo.php",
"一句話.php"
]
#asp的
asp_webshell = [
]
#aspx的
aspx_webshell = [
]
#jsp的
jsp_webshell = [
]
插件開發(fā)
命名規(guī)范
命名格式:網(wǎng)頁程序類型_后門類型-plugin.py
如php_eval_assert-plugin.py php_preg_replace-plugin.py asp_execute-plugin.py
函數(shù)規(guī)范以及返回值
函數(shù)名: def judgeBackdoor(fileCtent):
存在后門則應返回后門類型,不存在則返回None。
我們擴展的插件基本上是基于一個原理,即通過正則表達式在讀入的文件內(nèi)容篩選出可疑的字段,從而判斷是否存在特定類型的webshell,這樣的方式一般需要較為強大的webshell特征代碼儲備,但是其本身還是對文件內(nèi)容的掃描,并沒有基于行為等。
0x04 優(yōu)缺點
優(yōu)點
- 開源
- 文件小,掃描速度快
- 容易擴展,存在字典方式和插件方式,這兩種方式。
缺點
- 字典方式和插件方式都是靜態(tài)的,是基于對webshell文件名、敏感文件內(nèi)容文本或者webshell內(nèi)容中的特征代碼的識別。其實現(xiàn)方式還是比較簡單粗暴的。