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查杀