【WebShellQuickScanner】 一个在Linux上检查是否有PHP WebShell和使用了高危函数的PHP文件的快查脚本,同时能把扫描结果推送至Telegram。

其实早在17年Typecho出了个洞被人日了插了一句话之后我就已经想写这东西了。鸽了两年之后这0day都已经成为114514day了我终于把这脚本给摸出来了。

这篇文章将作为此脚本的简体中文说明文档。


项目地址

GitHub: https://github.com/DeepSkyFire/WebShellQuickScanner

关于脚本

一个在Linux上快速检查目录下是否含有PHP WebShell和使用了高危函数的PHP文件的快速检查脚本。

它可以在Linux下快速检查指定目录内的所有.php文件中是否使用了高危函数,但它并不会删除被检测出来的文件。所以需要自行决定如何处理这些被检查出来的文件。

它并不能替代杀毒软件,请将它给出的报告作为参考。


快速使用

  • 获取WebShellQuickScanner

    wget --no-check-certificate https://raw.githubusercontent.com/DeepSkyFire/WebShellQuickScanner/master/src/WebShellScanner.sh && chmod +x WebShellScanner.sh
    
  • 开始快速扫描

    ./WebShellScanner.sh -p /data/www-data(要扫描的目录)
    

详细说明

  • 使用依赖

    如果要使用将报告推送至Telegram的功能,需要系统内安装cURL。

  • 将报告推送至Telegram

    你需要先在Telegram中注册一个Bot。并获取你的Chat ID。

  • 关于主机名

    你可以自定义一个主机名。如果你不指定主机名的话,脚本将会自动读取系统默认的主机名。主机名的唯一作用是在将发送至Telegram的报告中作为服务器的标识便于识别。

  • 关于保存日志文件

    如果你想要在服务器本地保存日志文件,你可以使用以下设置:

    ./WebShellScanner.sh -p /data/www-data -l /home/wwwwlogs
    

    请注意!日志保存目录的结尾不要带“/”号。

  • 完整示例

    如果你想扫描“/data/www-data”的网站目录并将扫描日志保存至“/home/wwwlogs”,然后把扫描报告推送至Telegram并将主机名自定义为“MyServer1”,你可以使用以下设置:

    ./WebShellScanner.sh -p /data/www-data -t TELEGRAM_BOT_TOKEN -c TELEGRAM_CHAT_ID -n MyServer1 -l /home/wwwwlogs
    
  • 查看帮助信息

    ./WebShellScanner.sh -h
    
  • 定期扫描

    你可以使用crontab -e设置一个定期扫描任务。


参数说明

WebShellScanner.sh [-h] [-p <扫描目录>] [-t <TELEGRAM BOT TOKEN>] [-c <TELEGRAM CHAT ID>] [-n <自定义主机名>] [-l <日志保存目录>]

允许使用的命令行选项:

-h 显示帮助信息. 可选参数.

-p <扫描目录> 要进行扫描的目录.

-t <TELEGRAM BOT TOKEN> Telegram Bot Token. 可选参数.

-c <TELEGRAM CHAT ID> Telegram Chat id. 可选参数.

-n <HostName> 自定义主机名. 可选参数.

-l <日志保存目录> 日志保存目录(日志保存目录的结尾不要带“/”号). 可选参数.

开源许可证

  • 本项目根据GPLv3(GNU General Public License v3.0)许可证进行发布。