JayHackPro/JayShield

GitHub: JayHackPro/JayShield

JayShield 是一款零依赖的 Web 恶意软件扫描与隔离工具,帮助用户快速发现并安全移除网站中的 Webshell、后门和注入代码。

Stars: 0 | Forks: 0

# JayShield ### 查找并移除 Web 恶意软件、Webshell 和后门。 一款快速、无依赖的恶意软件扫描和移除工具,适用于网站和服务器。 将其指向一个文件夹,准确查看哪些文件被感染,然后安全地隔离威胁。未经您的许可,绝不会删除任何内容。 [![License: MIT](https://img.shields.io/badge/license-MIT-brightgreen)](LICENSE) [![Node](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](package.json) [![Dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](package.json) **由 [JayHackPro](https://www.JayHackPro.com) 提供**
## 为什么选择 JayShield 当网站遭到黑客攻击时,攻击者通常会留下一些东西:放在上传文件夹中的 PHP Webshell、附加在正常文件中的混淆后门、主页上不可见的 iframe,或者隐藏在脚本中的加密货币挖矿程序。在数千个文件中手动查找这些东西既缓慢又容易出错。 JayShield 可以在几秒钟内完成。它会读取每个文件,将其与恶意软件技术库进行匹配,检查其确切指纹是否与已知的恶意文件匹配,并寻找打包和隐藏代码的典型特征。然后,它会为您显示一份清晰、排名明确的报告,并提议将威胁移至本地保险库,让您的网站立即停止提供这些文件。 它是一个没有依赖项的小型工具,因此您可以信任它、阅读它,并在安装了 Node 的任何地方运行它。 ## 快速开始 无需安装: ``` npx @jayhackpro/jayshield ./public_html ``` 或者一次性安装它: ``` npm install -g @jayhackpro/jayshield jayshield ./public_html ``` 使用无害的行业标准测试文件,证明它可以在您的机器上运行: ``` jayshield --selftest ``` ## 它能捕获什么 - **Webshells**:c99、r57、WSO、b374k、FilesMan,以及基于相同模式构建的通用远程文件管理器和命令执行器。 - **后门**:对请求输入执行 `eval`、由 `$_GET` 和 `$_POST` 驱动的变量函数、`preg_replace` `/e` 技巧、获取并执行的远程 payload、硬编码的密码验证以及反向 shell。 - **混淆**:解码并执行的 payload、字符代码和十六进制字符串技巧、打包的单行代码,以及与解码器配对的大型编码 blob。 - **注入的前端恶意软件**:隐藏或零大小的 iframe、未转义标记的 `document.write`、`eval(atob(...))` 以及重定向到解码后的 URL。 - **加密货币挖矿程序**:CoinHive 以及消耗您访客设备资源的浏览器挖矿脚本。 - **Skimmer 和垃圾信息**:会话 cookie 窃取以及大块隐藏的 SEO 或医药垃圾链接。 - **伪装文件**:隐藏在声称是图像文件中的 PHP、像 `invoice.pdf.php` 这样的双重扩展名,以及位于只应存放静态文件的上传文件夹中的可执行脚本。 - **已知的恶意文件**:与您可以扩展的哈希集完全匹配,外加 EICAR 防病毒测试文件。 ## 扫描结果示例 ``` ▓▓ JayShield malware scanner by JayHackPro Scanned 1,284 files (24.6 MB) in 0.9 s CRITICAL public_html/wp-content/uploads/2026/logo.php ✕ Obfuscated eval of a decoded payload:1 Code is hidden inside a decode call and run on the fly, the hallmark of a packed webshell. > ▲ Executable script in an uploads folder:1 Upload and media folders should hold only static files. An executable script here is very often a planted backdoor. HIGH public_html/index.html ▲ Hidden or zero-size iframe:42 An invisible iframe usually delivers malware or ad fraud to visitors without a trace on the page. Summary critical 1 high 1 medium 0 low 0 2 files infected, 1,282 clean Review the findings, then remove them safely with: jayshield public_html --quarantine ``` ## 安全移除威胁 JayShield 绝不会删除您的文件。当您准备好进行清理时,隔离功能会将每个被标记的文件移动到本地保险库中,并记录其原始位置,这样您的线上网站会立即停止提供该文件,同时保留所有字节数据。 ``` # 预览将要移动的内容,不进行任何更改 jayshield ./public_html --quarantine --dry-run # 将每个 threat 移入 vault jayshield ./public_html --quarantine # 查看 vault 中的内容 jayshield --list # 如果检测错误,将文件还原 jayshield --restore # 还原所有内容 jayshield --restore ``` 如果您已确认文件是恶意的并希望回收磁盘空间,且仅在此时,您才可以永久删除保险库: ``` jayshield --purge --yes ``` ## 命令参考 ``` jayshield [paths...] [options] ``` | 选项 | 功能 | | --- | --- | | `--quarantine` | 将每个威胁移至本地保险库 | | `--restore [id]` | 还原被隔离的文件,可还原单个或全部 | | `--list` | 显示保险库中的内容 | | `--purge --yes` | 永久删除保险库(最后的手段) | | `--min-severity ` | `critical`、`high`、`medium` 或 `low` | | `--ignore-rule ` | 按 ID 忽略一个或多个规则 | | `--hashes ` | 添加已知的恶意 sha256 哈希值,每行一个 | | `--max-size ` | 跳过大于此值的文件(默认为 5) | | `--vault ` | 隔离文件夹(默认为 `.jayshield-quarantine`) | | `--follow-symlinks` | 跟随符号链接(默认关闭) | | `--dry-run` | 显示将执行的操作,但不进行任何更改 | | `--json` | 用于 pipeline 的机器可读输出 | | `--no-color` | 纯文本输出 | | `-v, --verbose` | 包含规则 ID 和参考信息 | | `--selftest` | 端到端检测 EICAR 测试文件 | | `-V, --version` | 打印版本信息 | | `-h, --help` | 显示帮助信息 | 退出代码:`0` 表示干净,`1` 表示发现威胁,`2` 表示错误。这使得 JayShield 非常容易集成到 CI pipeline 或 cron 作业中。 ## 在 pipeline 中使用 ``` # 如果发现任何 high 或更严重级别的内容,则使构建失败 jayshield ./release --min-severity high || exit 1 # 保存 JSON 报告 jayshield ./public_html --json > jayshield-report.json ``` ## 从代码中使用 ``` import { scan, quarantineFiles } from "@jayhackpro/jayshield"; const result = await scan(["./public_html"]); console.log(`${result.infected.length} infected of ${result.stats.scanned} scanned`); if (result.infected.length) { await quarantineFiles(result.infected, { vaultDir: ".vault" }); } ``` ## 扩展功能 **添加您自己已知的恶意哈希值。** 保留一个文本文件,每行一个 `sha256`,后面可选地加上标签,然后通过 `--hashes` 传入: ``` # my-threats.txt e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 seen on client site ``` **忽略嘈杂的规则。** 如果某个规则标记了您确信安全的文件,请传入其 ID: ``` jayshield . --ignore-rule js.packer,spam.pharma ``` **编写新规则。** 签名位于 [`src/rules.js`](src/rules.js) 中,以小巧且易读的对象形式存在。每个对象都有一个 ID、严重级别、适用的文件类型以及一个匹配模式。添加一个新规则,在 [`test/rules.test.mjs`](test/rules.test.mjs) 中添加测试,然后提交 pull request。 ## 它是什么,以及它不是什么 JayShield 是一款针对 Web 恶意软件的快速第一响应工具。它非常擅长查找构成绝大多数网站入侵事件的 Webshell、后门、注入和已知恶意文件,并且能够在不丢失数据的情况下移除它们。 它不是完整的 endpoint 保护套件,不会在内核中运行,也不会实时监控内存。在繁忙的生产服务器上,它最好与主机扫描程序和 Web 应用程序防火墙结合使用,作为您可以按需和在 pipeline 中运行的快速、易读、可脚本化的安全层。签名主要用于发现已知技术,因此请将扫描与良好的备份和及时的更新配合使用。 ## 开发 ``` npm test # run the full suite on Node's built in test runner npm run selftest ``` 设计上为零运行时依赖。安全工具应该小到足以让人通读。 ## 关于 JayHackPro JayShield 由 **JayHackPro® Inc.** 构建和维护,这是一家总部位于加利福尼亚州洛杉矶、专注于网络安全的软件开发公司。 - 网站:[JayHackPro.com](https://www.JayHackPro.com) - X:[@JayHackPro](https://x.com/JayHackPro) - 联系方式:info@JayHackPro.com 由 Jayden Yoon ZK 设计。 ## 许可证 [MIT](LICENSE)。可在您的项目和服务器上自由使用,并请保留许可声明。品牌版权保留。
标签:GNU通用公共许可证, MITM代理, Node.js, Webshell查杀, Web安全, 后门检测, 安全, 恶意软件扫描, 数据可视化, 暗色界面, 自定义脚本, 蓝队分析, 超时处理