webshell检测平台

0x01 相关技术

  • Python

    编程语言使用python开发,纯属为了学习编程。

  • Flask

    使用Flask作为Web开发微框架,交与其他Python框架,具有简便、易扩展等优点。具体可看:Flask中文文档

  • MySQL

    MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。文档参考:MySQL教程应用软件之一)

  • inotify

    从 Linux 2.6.13 内核开始,Linux 就推出了 inotify,允许监控程序打开一个独立文件描述符,并针对事件集监控一个或者多个文件,例如打开、关闭、移动/重命名、删除、创建或者改变属性,文档参考:用 inotify 监控 Linux 文件系统事件

0x02 扫描流程

0x03 具体实现

文件监控模块

使用inotify一直循环监听文件上传的目录,发现新文件立即调用扫描引擎检测。

查杀模块

先判断文件大小,文件过大则跳过。

检测规则有两种:

  • 当type等于1时,是使用的是静态匹配;

  • 当type等于2时,是使用的正则匹配,正则匹配需满足所有正则条件才算成功匹配;

扫描结束后,将结果插入数据库。

其中检测规则使用的是@haozige之前逆向的阿里云、腾讯云的webshell检测规则:

0x04 Todo

1、机器学习检测webshell:深度学习PHP webshell查杀引擎demo

2、语义分析(旁路、沙盒)检测webshell:Webshell查杀的新思路

3、基于流量模式检测webshell(做agent的话很有用)

4、逆向算法+静态匹配检测webshell:D盾webshell查杀

大爷,赏个铜板呗!