美文网首页
findwebshell使用手册

findwebshell使用手册

作者: cr4zyd0g | 来源:发表于2016-03-10 09:22 被阅读524次

0x00 概述

findWebshell是一款基于python开发的webshell检查工具,可以检查任意类型的webshell后门。

该工具具有一定的扩展能力,能够通过字典添加以及插件开发两种方式,对findwebshell进行扩展。

0x01 安装

本工具的安装方法比较简单,因为是基于python开发的小工具,只要有python运行环境就可以了。

findwebshell

PS:源码有些地方存在错误,需要修改。

plugins/php_packshell-plugin.py的第12行,多一个分号
plugins/php_include_file-plugin.py的第29行,少一个r

0x02 测试环境

测试环境:

  1. 运行环境:Ubuntu Server 12.04 LTS
  2. web服务器:apache2
  3. web应用:dvwa
  4. webshell:一句话木马+中国菜刀

这样的测试环境里,我们藏进去一个一句话木马webshell(自留)以及一个文件包含webshell(dvwa自带)。

0x03 使用方法

命令行参数

  • -h 帮助
  • -p PATH, --path=PATH 待扫描的web应用目录路径PATH
  • -o OUTPUT, --output=OUTPUT 创建文件格式为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

测试环境扫描

python main.py -e php -p /home/crazydog/workspace/src/DVWA-1.9/ -o output

扫描结果如下:

0x04 开发扩展

findWebshell具有扩展能力,该能力可以通过字典添加和插件开发的方式来实现。

字典添加

后门敏感关键字

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 = [
]

插件开发

命名规范

命名格式:网页程序类型_后门类型-plugin.py

php_eval_assert-plugin.py php_preg_replace-plugin.py asp_execute-plugin.py

函数规范以及返回值

函数名: def judgeBackdoor(fileCtent):

存在后门则应返回后门类型,不存在则返回None。

我们扩展的插件基本上是基于一个原理,即通过正则表达式在读入的文件内容筛选出可疑的字段,从而判断是否存在特定类型的webshell,这样的方式一般需要较为强大的webshell特征代码储备,但是其本身还是对文件内容的扫描,并没有基于行为等。

0x04 优缺点

优点

  1. 开源
  2. 文件小,扫描速度快
  3. 容易扩展,存在字典方式和插件方式,这两种方式。

缺点

  1. 字典方式和插件方式都是静态的,是基于对webshell文件名、敏感文件内容文本或者webshell内容中的特征代码的识别。其实现方式还是比较简单粗暴的。

相关文章

网友评论

      本文标题:findwebshell使用手册

      本文链接:https://www.haomeiwen.com/subject/csdtlttx.html