marcocesarato/amwscan

AMWSCAN (Antimalware Scanner) 是一个用于扫描项目的 php 防病毒扫描控制台脚本,用 php 编写。它可以在 php 项目和其他许多平台上运行。


README

Version

PHP 防病毒扫描器

Version Requirements Code Style License GitHub

如果您觉得这个项目对您有所帮助,请通过给星 ⭐ 支持我们

文档

描述

PHP 防病毒扫描器是一个免费工具,用于扫描 PHP 文件并分析项目,以查找其中任何恶意代码。

它提供了一个交互式文本终端控制台界面来扫描文件,或扫描给定目录中的所有文件(文件路径也可以使用 --filter-paths--ignore-paths 进行管理),并查找似乎包含恶意代码的 PHP 代码文件。当检测到可能的恶意软件时,将询问要采取什么操作(例如添加到白名单、删除文件、尝试清理感染代码等)。

该软件包还可以在报告模式下扫描 PHP 文件(--report|-r),这样就不会与终端控制台交互并输出任何内容。在这种情况下,结果将存储在 HTML(默认)或文本格式的报告文件中(--report-format <format>)。

此扫描器可以在您的 PHP 项目和其他许多平台上使用正确的配置组合运行(例如,使用 --lite|-l 标志可以帮助找到更少的误报)。

⚠️ 请记住,您将 solely 对您计算机系统中的任何损坏或数据丢失负责,这可能是此类活动造成的。在执行扫描程序之前,您 solely 负责 data 的适当保护和备份。

如何贡献

有想法?发现错误?请提交到 问题拉取请求。欢迎贡献,并且非常感谢!每一份贡献都很有帮助。

📘 要求

  • php 5.5+
    • php-xml
    • php-zip
    • php-mbstring
    • php-json
    • php-common
    • php-curl
    • php-gd

📖 安装

版本

您可以通过从 GitHub 下载或直接从控制台下载来安装扫描器。

下载

转到 GitHub 页面,并点击“发布”选项卡或从以下位置下载原始文件:

Download

控制台

  1. 从控制台运行此命令(扫描器将下载到您的当前目录)

    wget https://raw.githubusercontent.com/marcocesarato/PHP-Antimalware-Scanner/master/dist/scanner

  2. 运行扫描器

    php scanner ./dir-to-scan -l ...

  3. (可选) 作为 bin 命令安装(Unix Bash)

    运行此命令

    wget https://raw.githubusercontent.com/marcocesarato/PHP-Antimalware-Scanner/master/dist/scanner -O /usr/bin/awscan.phar && \
    printf "#!/bin/bash\nphp /usr/bin/awscan.phar \$@" > /usr/bin/awscan && \
    chmod u+x,g+x /usr/bin/awscan.phar && \
    chmod u+x,g+x /usr/bin/awscan && \
    export PATH=$PATH":/usr/bin"

    现在您可以使用此命令简单地运行扫描器:awscan ./dir-to-scan -l...

源码

下载

点击 GitHub 页面的“克隆或下载”或从以下位置下载:

Download

Git
  1. 安装 Git
  2. 将以下命令和链接复制到您的终端: git clone https://github.com/marcocesarato/PHP-Antimalware-Scanner
  3. 更改目录到新的 ~/PHP-Antimalware-Scanner 目录: cd ~/PHP-Antimalware-Scanner/
  4. 要确保您的 master 分支是最新的,请使用 pull 命令: git pull https://github.com/marcocesarato/PHP-Antimalware-Scanner
  5. 享受

🐳 Docker

  1. 下载源码
  2. 构建命令 docker build --tag amwscan-docker .
  3. 运行命令 docker run -it --rm amwscan-docker bash

🔎 扫描模式

首先您需要决定强度,您需要校准扫描以在扫描过程中尽可能减少误报,同时不遗漏真实恶意软件。为此,您可以选择攻击级别。

扫描器允许使用一些预定义的模式

💻 使用方法

命令行

php amwscan ./mywebsite/http/ -l -s --only-exploits
php amwscan -s --max-filesize="5MB"
php amwscan -s -logs="/user/marco/scanner.log"
php amwscan --lite --only-exploits
php amwscan --exploits="double_var2" --functions="eval, str_replace"
php amwscan --ignore-paths="/my/path/*.log,/my/path/*/cache/*"

不工作?

如果上述命令不工作,您可以手动执行脚本以进行恶意软件扫描,执行方法如下: php dist/scanner <路径>

要检查所有选项,请参阅文档

建议

如果您在WordPress项目或其他流行平台上运行扫描器,请使用--only-signatures--lite标志以进行检查,以减少误报,但这可能会错过一些危险的漏洞,如nano

编程方式

在编程静默模式下,自动跳过功能会自动启用。

use AMWScan\Scanner;

$app = new Scanner();
$report = $app->setPathScan("my/path/to/scan")
              ->enableBackups()
              ->setPathBackups("/my/path/backups")
              ->enableLiteMode()
              ->setAutoClean()
              ->run();
报告对象
object(stdClass) (7) {
  ["scanned"]    => int(0)
  ["detected"]   => int(0)
  ["removed"]    => array(0) {}
  ["ignored"]    => array(0) {}
  ["edited"]     => array(0) {}
  ["quarantine"] => array(0) {}
  ["whitelist"]  => array(0) {}
}

🎨 截图

报告

HTML报告格式(默认

Screen Report

交互式CLI

Screen Full