diff --git a/01_卡资(金)/金仓_存储备份/分布式算力管控/SKILL.md b/01_卡资(金)/金仓_存储备份/分布式算力管控/SKILL.md index f99f1fe5..b94a0f01 100644 --- a/01_卡资(金)/金仓_存储备份/分布式算力管控/SKILL.md +++ b/01_卡资(金)/金仓_存储备份/分布式算力管控/SKILL.md @@ -1,18 +1,20 @@ --- name: 分布式算力管控 -description: PCDN/矿机/GPU节点自动扫描与一键部署 -triggers: 算力、PCDN、矿机、GPU、网心云、甜糖、节点 +description: PCDN/矿机/GPU节点自动扫描与一键部署 + 分布式节点安全攻防体系 +triggers: 算力、PCDN、矿机、GPU、网心云、甜糖、节点、攻防、入侵检测、挖矿木马、Mirai、僵尸网络、PHP漏洞、Discuz安全、服务器安全 owner: 金仓 group: 金 -version: "1.0" -updated: "2026-02-16" +version: "2.0" +updated: "2026-02-20" --- # 🖥️ 分布式算力管控 -> **金仓** 负责 | 一键扫描 · 一键部署 · 自动绑定 · 收益变现 +> **金仓** 负责 | 一键扫描 · 一键部署 · 自动绑定 · 收益变现 · **安全攻防** > > **核心目标**:给一个 IP/网段,自动扫描可用设备 → 自动SSH登录 → 一键安装PCDN/矿机 → 绑定卡若账号 → 获得收益 +> +> **安全目标**:所有分布式节点和服务器具备入侵检测、攻击防御、漏洞修复能力,防止被反向利用为僵尸网络/挖矿肉鸡 --- @@ -209,6 +211,10 @@ cred = db["device_credentials"].find_one({"ip": "目标IP"}) | 🔗 **自动绑定** | 部署后输出管理页面地址,引导绑定卡若账号 | 自动 | | 📊 **机群监控** | 查看所有已部署节点的状态和收益 | `fleet_monitor.py` | | 🛡️ **安全防护** | SSH加固、威胁扫描、入侵清除 | `threat_scanner.sh` | +| 🔍 **攻击识别** | Mirai/挖矿/PHP漏洞 5大攻击类型识别与分析 | 第十一节 | +| 🛡️ **节点安全基线** | SSH/防火墙/应用层/www用户全面加固 | `node_security_baseline_check.sh` | +| 🚨 **应急响应** | 隔离→证据保全→清理→加固→验证 5步流程 | `threat_scanner_v2.sh --fix` | +| 🔒 **PHP/Discuz 防护** | PHP 5.6 升级 + Discuz 加固 + Nginx 路径封堵 | 第十一节 §11.3 | ### 支持的算力类型 @@ -235,7 +241,8 @@ cred = db["device_credentials"].find_one({"ip": "目标IP"}) │ ├── storage/ ← wxnode(节点身份) + .onething_data(激活数据) │ └── scripts/ ← chroot_start.sh + rc.d_wxedge.sh ├── references/ -│ ├── 攻击链分析_20260201.md ← 真实入侵案例分析 +│ ├── 攻击链分析_KR宝塔_202602.md ← KR宝塔 Mirai+挖矿入侵实战分析 +│ ├── PHP56_Discuz漏洞防护指南.md ← PHP 5.6 / Discuz 专项防护 │ └── 已部署节点清单.md ← 所有已部署设备记录 ├── scripts/ │ ├── pcdn_auto_deploy.py ← ⭐ 核心:自动扫描+登录+部署(Python) @@ -250,9 +257,12 @@ cred = db["device_credentials"].find_one({"ip": "目标IP"}) │ ├── fleet_monitor.py ← 机群监控(状态+收益) │ ├── fleet_status.sh ← 单机状态查询 │ │ -│ ├── threat_scanner.sh ← 威胁扫描 +│ ├── threat_scanner.sh ← 威胁扫描(基础版) +│ ├── threat_scanner_v2.sh ← 威胁扫描(增强版,含 7 项检查) │ ├── threat_cleaner.sh ← 威胁清除 -│ └── ssh_hardening.sh ← SSH加固 +│ ├── ssh_hardening.sh ← SSH加固 +│ ├── node_security_baseline_check.sh ← 节点安全基线检查 +│ └── php_hardening.sh ← PHP/Discuz 安全加固 ``` --- @@ -663,45 +673,654 @@ bash scripts/fleet_status.sh --- -## 十一、安全与防护 +## 十一、安全与攻防体系(防守为核心 · 基于真实攻防实战) -### 11.1 部署后安全加固 +> **定位**:本节是分布式算力管控的**安全防线**,基于 2026-02 KR宝塔服务器遭受 Mirai 僵尸网络 + 挖矿木马入侵的**真实攻防实战**提炼。 +> **核心原则**:**攻击分析 70%(知己知彼)+ 防守执行 30%(对症下药)**。理解攻击才能有效防守。 + +--- + +### 11.1 攻击模式识别(知己知彼 · 五大威胁类型) + +#### 类型一:Mirai 僵尸网络(DDoS + SSH 扫描) + +| 维度 | 详情 | +|:---|:---| +| **目的** | 将服务器变成僵尸节点,对外发起 DDoS 攻击和 SSH 端口扫描,扩大感染范围 | +| **入侵方式** | PHP 应用漏洞 / 弱密码 → 获取 www 用户权限 → 上传恶意二进制 | +| **特征进程** | `zusvavbox`(伪装系统进程)、`kthreadd` 伪装、`/tmp/.update`(SSH 扫描器/投放器) | +| **持久化** | `.bashrc`/`.profile` 注入、systemd user timer、watchdog 守护脚本 | +| **网络特征** | 大量对外 TCP:22 连接(SSH 扫描)、连接矿池或 C2 服务器 | +| **危害等级** | 🔴 严重 — 触发云厂商违规告警,可导致服务器被封停 | + +**IOC 指标**: +```bash +# 进程特征 +ps aux | grep -E 'zusvavbox|kthreadd.*\[|\.update|xmrig|minerd' +# 网络特征(大量对外 22 端口连接) +ss -antp | awk '$5~/:22$/ && $1=="ESTAB"' | wc -l +# 文件特征 +ls -la /tmp/.update /tmp/.systemdpw/ /home/www/c3pool/ 2>/dev/null +# 持久化检查 +grep -r 'zusvavbox\|\.update\|c3pool' /home/www/.bashrc /home/www/.profile 2>/dev/null +systemctl --user -M www@ list-timers 2>/dev/null +``` + +#### 类型二:挖矿木马(CPU 盗用) + +| 维度 | 详情 | +|:---|:---| +| **目的** | 利用服务器 CPU 挖门罗币(XMR),挖矿收益归攻击者 | +| **特征** | CPU 长期 100%、高负载、`xmrig`/`xmr-stak`/`minerd`/`cpuminer` 进程 | +| **隐蔽手段** | 重命名为 `kthreadd`/`kworker`/`systemd-xxx` 等系统进程名 | +| **矿池连接** | `c3pool.com`、`pool.hashvault.pro`、`nanopool.org`、`minexmr.com`、`supportxmr.com` | +| **矿池端口** | 3333, 5555, 7777, 14433, 14444, 45700 | + +#### 类型三:PHP 应用漏洞利用(⚠️ 重点防护对象) + +| 维度 | 详情 | +|:---|:---| +| **目标应用** | Discuz! 论坛(PHP 5.6)、phpMyAdmin、WordPress、ThinkPHP | +| **漏洞类型** | 远程代码执行(RCE)、文件上传、SQL 注入、反序列化、已知 CVE | +| **PHP 5.6 已知严重漏洞** | CVE-2019-11043(PHP-FPM RCE)、CVE-2015-6835(use-after-free)、CVE-2016-5385(httpoxy)等 | +| **Discuz! 专项漏洞** | `misc.php` RCE、`/uc_server/` 未授权、模板注入、`/data/cache/` 可写 | +| **攻击链** | 扫描 Discuz 版本 → 匹配 CVE → 上传 WebShell → 提权 → 投放挖矿/僵尸程序 | +| **⚠️ 弱点** | **PHP 5.6 已于 2018 年底 EOL,不再有安全补丁** — 这是 KR 宝塔被入侵的根本原因 | + +**PHP 5.6 + Discuz 已知攻击路径**: +``` +1. 攻击者扫描 → 发现 www.lkdie.com / db.lkdie.com 运行 Discuz (PHP 5.6) +2. 利用 Discuz 已知漏洞(misc.php / uc_server / 文件上传)获取 WebShell +3. 以 www 用户身份在服务器上执行命令 +4. 上传 zusvavbox(挖矿木马)和 /tmp/.update(SSH 扫描器) +5. 写入 /home/www/.bashrc 和 .profile 实现持久化 +6. 创建 systemd user timer 定期检查并重启恶意程序 +7. 同时挖矿(CPU 100%)+ 对外 SSH 扫描(TCP:22) +8. 触发腾讯云「对外攻击」违规告警 +``` + +#### 类型四:SSH 暴力破解 + +| 维度 | 详情 | +|:---|:---| +| **特征** | `/var/log/secure` 中大量 `Failed password` / `Invalid user` | +| **目标端口** | 22、2222、22022 等 SSH 端口 | +| **防护** | fail2ban + iptables recent + MaxStartups/MaxAuthTries | + +#### 类型五:容器逃逸与供应链攻击 + +| 维度 | 详情 | +|:---|:---| +| **场景** | PCDN/矿机 Docker 容器被恶意镜像替换,或容器逃逸到宿主机 | +| **防护** | 只用官方镜像 + 镜像哈希校验 + `--no-new-privileges` | + +--- + +### 11.2 真实攻击链分析(KR 宝塔 2026-02 实战) + +> **攻击类型**:Mirai 变种僵尸网络 + 加密挖矿 +> **攻击时间**:2026 年 2 月 +> **受害服务器**:kr宝塔 43.139.27.93(腾讯云 2核4G) +> **入侵入口**:Discuz 论坛(PHP 5.6)— www.lkdie.com / db.lkdie.com + +#### 完整攻击链路(7 步) + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ 攻击链路(Attack Kill Chain) │ +├─────────────────────────────────────────────────────────────────┤ +│ │ +│ ① 侦察(Reconnaissance) │ +│ 攻击者扫描公网 IP → 发现 Discuz (PHP 5.6) │ +│ 工具:masscan / zmap / Shodan │ +│ │ │ +│ ▼ │ +│ ② 漏洞利用(Exploitation) │ +│ 利用 Discuz 已知漏洞获取 WebShell │ +│ → 以 www 用户身份执行命令 │ +│ │ │ +│ ▼ │ +│ ③ 投放(Delivery) │ +│ wget/curl 从 C2 下载恶意二进制 │ +│ → /tmp/.update(SSH 扫描器 + 投放器) │ +│ → /home/www/c3pool/(矿机配置) │ +│ → zusvavbox(Mirai 变种 + xmrig 矿机) │ +│ │ │ +│ ▼ │ +│ ④ 持久化(Persistence) │ +│ a. /home/www/.bashrc 注入启动命令 │ +│ b. /home/www/.profile 注入启动命令 │ +│ c. systemd user timer 定时检查 + 重启 │ +│ d. watchdog 脚本 — 主进程被杀后自动重启 │ +│ │ │ +│ ▼ │ +│ ⑤ 执行(Execution) │ +│ a. zusvavbox 启动 → CPU 100%(挖矿) │ +│ b. /tmp/.update 启动 → 对外 SSH:22 扫描 │ +│ c. 伪装为 kthreadd 等系统进程名 │ +│ │ │ +│ ▼ │ +│ ⑥ C2 通信(Command & Control) │ +│ 连接矿池 c3pool.com:13333 │ +│ 连接 C2 控制服务器接收扫描指令 │ +│ │ │ +│ ▼ │ +│ ⑦ 横向传播(Lateral Movement) │ +│ 对外 SSH:22 扫描 → 弱密码服务器 → 投放同款木马 │ +│ → 被腾讯云检测为「对外攻击」→ 违规告警 │ +│ │ +└─────────────────────────────────────────────────────────────────┘ +``` + +#### 攻击核心设计分析 + +| 维度 | 攻击者设计 | 我方弱点 | +|:---|:---|:---| +| **入口** | 选择 PHP 5.6 EOL 应用 | **Discuz 运行在已停止维护的 PHP 5.6** | +| **权限** | www 用户足够(无需 root) | www 用户有 shell 权限、可执行任意二进制 | +| **隐蔽** | 进程名伪装为 kthreadd | 没有实时进程监控告警 | +| **持久化** | 4 种方式并行 | 清一种不够,必须全清 | +| **收益** | 挖矿 + 扫描双线程 | CPU 100% 但无主动告警机制 | +| **扩散** | 自动化 SSH 扫描扩散 | 无 OUTPUT 规则限制对外连接 | + +#### 清理与修复记录 + +```bash +# ===== 1. 杀进程 ===== +kill -9 $(pgrep -f zusvavbox) +kill -9 $(pgrep -f '/tmp/.update') +pkill -9 -u www -f 'xmrig|minerd|c3pool' + +# ===== 2. 清文件 ===== +rm -rf /tmp/.update /tmp/.systemdpw/ /home/www/c3pool/ +rm -f /dev/shm/.x* /var/tmp/.cache/ + +# ===== 3. 清持久化 ===== +# .bashrc / .profile — 删除恶意注入行 +sed -i '/zusvavbox\|\.update\|c3pool/d' /home/www/.bashrc /home/www/.profile +# systemd user timer +systemctl --user -M www@ stop zusvavbox.timer 2>/dev/null +rm -f /home/www/.config/systemd/user/zusvavbox.* +# crontab +crontab -u www -r 2>/dev/null + +# ===== 4. 锁 www 用户 ===== +usermod -s /sbin/nologin www +passwd -l www +# 随机化 www 密码(防止弱密码被再次利用) +echo "www:$(openssl rand -base64 32)" | chpasswd + +# ===== 5. iptables 封堵对外攻击 ===== +iptables -A OUTPUT -p tcp --dport 22 -m owner --uid-owner www -j DROP +iptables -A OUTPUT -p tcp --dport 22 -m state --state NEW -m recent \ + --set --name SSH_OUT +iptables -A OUTPUT -p tcp --dport 22 -m state --state NEW -m recent \ + --update --seconds 60 --hitcount 5 --name SSH_OUT -j DROP +``` + +--- + +### 11.3 PHP 5.6 / Discuz 专项防护(⚠️ 入侵根因修复) + +> **核心结论**:PHP 5.6 是被入侵的根本原因。Discuz 论坛运行在已 EOL 的 PHP 上,等于裸奔。 + +#### 11.3.1 PHP 5.6 已知严重漏洞(部分) + +| CVE | 类型 | 影响 | CVSS | +|:---|:---|:---|:---| +| CVE-2019-11043 | PHP-FPM RCE | 远程代码执行 | 9.8 | +| CVE-2016-5385 | httpoxy | HTTP 代理劫持 | 8.1 | +| CVE-2015-6835 | use-after-free | 远程代码执行 | 7.5 | +| CVE-2016-7124 | 反序列化绕过 | 认证绕过 | 7.5 | +| CVE-2015-8994 | 路径信息泄露 | 信息泄露 | 5.3 | + +#### 11.3.2 Discuz 专项加固清单 + +```bash +# ===== 1. 升级 PHP(优先级最高)===== +# 最低升级到 PHP 7.4,推荐 PHP 8.0+ +# 宝塔面板操作:软件商店 → 安装 PHP 7.4/8.0 → 站点设置 → 切换 PHP 版本 + +# ===== 2. Discuz 目录权限收紧 ===== +# 关闭危险目录的执行权限 +chmod 000 /www/wwwroot/论坛路径/uc_server/data/ +chmod 644 /www/wwwroot/论坛路径/config/config_global.php +chmod 644 /www/wwwroot/论坛路径/config/config_ucenter.php +# 禁止 data/cache/template 等目录执行 PHP +find /www/wwwroot/论坛路径/data/ -name "*.php" -exec rm -f {} \; + +# ===== 3. Nginx 层防护(拦截常见攻击路径)===== +# 添加到站点 Nginx 配置的 server 块中 +# location ~* /(uc_server|uc_client|source|data/cache)/.*\.(php|php5)$ { +# deny all; +# } +# location ~* /misc\.php { deny all; } +# location ~* \.(sql|bak|old|orig|swp)$ { deny all; } +# location ~* /config/ { deny all; } + +# ===== 4. PHP 安全配置 ===== +# php.ini 关键设置 +# disable_functions = exec,system,passthru,shell_exec,proc_open,popen,dl,pcntl_exec +# expose_php = Off +# allow_url_fopen = Off +# allow_url_include = Off +# open_basedir = /www/wwwroot/论坛路径/:/tmp/ +# upload_max_filesize = 2M +# max_execution_time = 30 + +# ===== 5. 文件完整性监控 ===== +# 生成基线 +find /www/wwwroot/论坛路径/ -type f -name "*.php" -exec md5sum {} \; > /root/discuz_baseline.md5 +# 定期检查 +md5sum -c /root/discuz_baseline.md5 --quiet 2>/dev/null | head -20 +``` + +#### 11.3.3 PHP 升级路径与兼容性 + +| Discuz 版本 | 支持 PHP | 建议 | +|:---|:---|:---| +| Discuz! X3.4 | PHP 5.6 - 7.4 | 升级到 PHP 7.4 | +| Discuz! X3.5 | PHP 7.0 - 8.1 | 升级到 X3.5 + PHP 8.0 | +| Discuz! Q | PHP 7.2+ | 如果可以,迁移到 Discuz! Q | + +**升级步骤**: +```bash +# 1. 宝塔面板安装新版 PHP(如 7.4) +# 2. 安装 Discuz 所需扩展:mysql, gd, curl, mbstring, xml, openssl +# 3. 备份数据库:mysqldump -u root -p 数据库名 > /tmp/discuz_backup.sql +# 4. 备份站点文件:tar -czf /tmp/discuz_files_backup.tar.gz /www/wwwroot/论坛路径/ +# 5. 在宝塔面板切换站点 PHP 版本 +# 6. 测试站点功能 +# 7. 确认无问题后删除 PHP 5.6 +``` + +--- + +### 11.4 节点安全基线(部署前必检 · 每台节点强制) + +> 每台分布式算力节点(PCDN、矿机、云服务器)部署前和定期巡检时必须通过以下基线。 + +#### 11.4.1 SSH 加固清单 + +```bash +# /etc/ssh/sshd_config 关键配置 +Port 22022 # 改非默认端口 +PermitRootLogin prohibit-password # 禁密码 root 登录 +MaxAuthTries 3 # 最多 3 次认证 +MaxStartups 3:50:10 # 防暴力并发 +PasswordAuthentication no # 建议:仅密钥认证 +AllowUsers root@指定IP # 限制来源 IP +ClientAliveInterval 300 +ClientAliveCountMax 2 +``` + +#### 11.4.2 防火墙基线(iptables) + +```bash +# ===== INPUT 规则 ===== +# 放行已建立连接 +iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT +# 放行 loopback +iptables -A INPUT -i lo -j ACCEPT +# SSH 限速(60 秒内最多 5 次新连接) +iptables -A INPUT -p tcp --dport 22022 -m state --state NEW \ + -m recent --set --name SSH_IN +iptables -A INPUT -p tcp --dport 22022 -m state --state NEW \ + -m recent --update --seconds 60 --hitcount 5 --name SSH_IN -j DROP +# 放行 SSH +iptables -A INPUT -p tcp --dport 22022 -j ACCEPT +# 放行 HTTP/HTTPS +iptables -A INPUT -p tcp --dport 80 -j ACCEPT +iptables -A INPUT -p tcp --dport 443 -j ACCEPT +# 放行宝塔面板(仅限管理 IP) +iptables -A INPUT -p tcp --dport 9988 -s 管理IP -j ACCEPT +# 放行 PCDN 端口(如有) +iptables -A INPUT -p tcp --dport 18888 -j ACCEPT +# 默认拒绝 +iptables -P INPUT DROP + +# ===== OUTPUT 规则(关键!防止被利用为跳板)===== +# www 用户禁止对外 SSH +iptables -A OUTPUT -p tcp --dport 22 -m owner --uid-owner www -j DROP +# 非 root 用户限制对外 SSH 速率 +iptables -A OUTPUT -p tcp --dport 22 -m state --state NEW \ + -m recent --set --name SSH_OUT +iptables -A OUTPUT -p tcp --dport 22 -m state --state NEW \ + -m recent --update --seconds 60 --hitcount 5 --name SSH_OUT -j DROP +``` + +#### 11.4.3 应用层防护 + +```bash +# 1. www 用户安全加固 +usermod -s /sbin/nologin www # 禁止 www 用户 shell 登录 +passwd -l www # 锁定密码 +crontab -u www -r 2>/dev/null # 清空 www 的 crontab + +# 2. /tmp 防执行 +mount -o remount,noexec,nosuid /tmp # 禁止 /tmp 下执行二进制 +# 永久生效:/etc/fstab 加 noexec,nosuid + +# 3. PHP-FPM 安全 +# pm = ondemand(按需启动,减少攻击面) +# pm.max_children = 10(限制并发) +# security.limit_extensions = .php(只允许 .php 后缀) + +# 4. fail2ban 配置 +apt install fail2ban -y # 或 yum install fail2ban +systemctl enable fail2ban +# /etc/fail2ban/jail.local +# [sshd] +# enabled = true +# port = 22022 +# maxretry = 3 +# bantime = 3600 +# findtime = 600 +``` + +#### 11.4.4 安全基线检查脚本 + +```bash +#!/bin/bash +# node_security_baseline_check.sh — 节点安全基线快速检查 +echo "===== 安全基线检查 =====" + +echo "--- SSH 配置 ---" +grep -E '^(Port|PermitRootLogin|MaxAuthTries|PasswordAuthentication)' /etc/ssh/sshd_config + +echo "--- www 用户状态 ---" +getent passwd www | awk -F: '{print "Shell:"$7, "Home:"$6}' +passwd -S www 2>/dev/null | awk '{print "密码状态:"$2}' + +echo "--- /tmp 挂载选项 ---" +mount | grep '/tmp ' | grep -o 'noexec' || echo "⚠️ /tmp 未设 noexec" + +echo "--- fail2ban 状态 ---" +systemctl is-active fail2ban 2>/dev/null || echo "⚠️ fail2ban 未运行" + +echo "--- iptables OUTPUT SSH 规则 ---" +iptables -L OUTPUT -n | grep -c 'dpt:22.*DROP' && echo "✅ OUTPUT SSH 限制已设" || echo "⚠️ 无 OUTPUT SSH 限制" + +echo "--- PHP 版本 ---" +php -v 2>/dev/null | head -1 +[ "$(php -v 2>/dev/null | head -1 | grep -c '5\.6')" -gt 0 ] && echo "🔴 PHP 5.6 已 EOL!必须升级" || echo "✅ PHP 版本可接受" + +echo "--- 可疑进程检查 ---" +ps aux | grep -E 'xmrig|zusvavbox|kdevtmpfsi|minerd|c3pool|\.update' | grep -v grep +[ $? -ne 0 ] && echo "✅ 无可疑进程" + +echo "--- 可疑 /tmp 可执行文件 ---" +find /tmp /var/tmp /dev/shm -type f -executable 2>/dev/null | head -10 +[ $? -ne 0 ] && echo "✅ /tmp 无可执行文件" + +echo "===== 检查完成 =====" +``` + +--- + +### 11.5 自动化威胁检测与响应 + +#### 11.5.1 增强版 IOC 检测特征库 + +```yaml +# ===== 恶意文件路径(发现即删除)===== +malicious_paths: + - /tmp/.update + - /tmp/.systemdpw/ + - /tmp/.X11-unix/.rsync/ + - /tmp/.ICE-unix/.* + - /home/www/c3pool/ + - /home/www/.config/sys-update-daemon + - /var/tmp/.cache/ + - /dev/shm/.x* + - /dev/shm/.ice* + - /root/.configrc/ + - /usr/local/bin/.hidden/ + +# ===== 恶意进程名(发现即杀)===== +malicious_processes: + - xmrig, xmr-stak, minerd, cpuminer, ccminer + - kdevtmpfsi, kinsing, sys-update-daemon + - zusvavbox, bioset, kthreadd_fake + - solrd, networkservice, crypto-pool + - \.update, \.rsync, \.ice + +# ===== 矿池域名/IP(发现连接即告警)===== +mining_pools: + - c3pool.com + - pool.hashvault.pro + - nanopool.org + - minexmr.com + - supportxmr.com + - pool.supportxmr.com + - gulf.moneroocean.stream + - auto.c3pool.org + +# ===== 矿池端口 ===== +mining_ports: [3333, 5555, 7777, 13333, 14433, 14444, 45700] + +# ===== 持久化路径(必须定期检查)===== +persistence_paths: + - /home/www/.bashrc + - /home/www/.profile + - /home/www/.config/systemd/user/ + - /var/spool/cron/www + - /etc/cron.d/ + - /etc/rc.local + - /usr/local/etc/rc.d/ +``` + +#### 11.5.2 威胁扫描脚本(增强版 threat_scanner.sh) + +```bash +#!/bin/bash +# threat_scanner_v2.sh — 分布式节点威胁全面扫描 +# 用法:bash threat_scanner_v2.sh [--fix](加 --fix 自动清理) +FIX_MODE="${1:-}" +ALERT=0 + +echo "========== 分布式节点威胁扫描 v2 ==========" +echo "时间: $(date '+%Y-%m-%d %H:%M:%S')" +echo "主机: $(hostname) ($(hostname -I | awk '{print $1}'))" +echo "" + +# --- 1. 可疑进程扫描 --- +echo "--- [1/7] 可疑进程 ---" +SUSPECTS=$(ps aux | grep -Ei 'xmrig|zusvavbox|kdevtmpfsi|minerd|cpuminer|c3pool|\.update|kinsing|solrd|crypto' | grep -v grep) +if [ -n "$SUSPECTS" ]; then + echo "🔴 发现可疑进程:" + echo "$SUSPECTS" + ALERT=1 + if [ "$FIX_MODE" = "--fix" ]; then + echo "$SUSPECTS" | awk '{print $2}' | xargs -r kill -9 + echo "✅ 已杀掉可疑进程" + fi +else + echo "✅ 无可疑进程" +fi + +# --- 2. 高 CPU 进程(>80%)--- +echo "" +echo "--- [2/7] 高 CPU 进程 ---" +ps aux --sort=-%cpu | awk 'NR<=6 && $3>80 {print "⚠️ CPU "$3"%: "$11" (PID:"$2" USER:"$1")"}' + +# --- 3. 恶意文件检查 --- +echo "" +echo "--- [3/7] 恶意文件路径 ---" +for p in /tmp/.update /tmp/.systemdpw /tmp/.X11-unix/.rsync /home/www/c3pool \ + /dev/shm/.x /var/tmp/.cache /root/.configrc; do + if ls -d ${p}* 2>/dev/null | head -1 > /dev/null 2>&1; then + echo "🔴 发现: $p" + ALERT=1 + [ "$FIX_MODE" = "--fix" ] && rm -rf ${p}* && echo " ✅ 已删除" + fi +done +[ $ALERT -eq 0 ] && echo "✅ 无恶意文件路径" + +# --- 4. /tmp 可执行文件 --- +echo "" +echo "--- [4/7] /tmp 可执行文件 ---" +EXEC_FILES=$(find /tmp /var/tmp /dev/shm -type f -executable 2>/dev/null) +if [ -n "$EXEC_FILES" ]; then + echo "⚠️ 发现可执行文件:" + echo "$EXEC_FILES" | head -10 + ALERT=1 + if [ "$FIX_MODE" = "--fix" ]; then + echo "$EXEC_FILES" | xargs -r rm -f + echo "✅ 已删除" + fi +else + echo "✅ /tmp 无可执行文件" +fi + +# --- 5. 持久化检查 --- +echo "" +echo "--- [5/7] 持久化机制 ---" +for f in /home/www/.bashrc /home/www/.profile; do + if grep -qE 'zusvavbox|\.update|c3pool|xmrig|minerd|curl.*\|.*sh|wget.*\|.*sh' "$f" 2>/dev/null; then + echo "🔴 $f 中发现恶意注入" + ALERT=1 + [ "$FIX_MODE" = "--fix" ] && sed -i '/zusvavbox\|\.update\|c3pool\|xmrig\|minerd/d' "$f" && echo " ✅ 已清理" + fi +done +# systemd user timer +if ls /home/www/.config/systemd/user/*.timer 2>/dev/null | head -1 > /dev/null 2>&1; then + echo "🔴 发现 www 用户 systemd timer" + ls /home/www/.config/systemd/user/*.timer 2>/dev/null + ALERT=1 +fi +# crontab +if crontab -u www -l 2>/dev/null | grep -v '^#' | grep -q .; then + echo "🔴 www 用户有 crontab 任务:" + crontab -u www -l 2>/dev/null + ALERT=1 +fi +[ $ALERT -eq 0 ] && echo "✅ 无持久化机制" + +# --- 6. 矿池连接检查 --- +echo "" +echo "--- [6/7] 矿池/C2 连接 ---" +POOL_CONN=$(ss -antp | grep -E ':3333|:5555|:7777|:13333|:14433|:14444|:45700' | grep ESTAB) +if [ -n "$POOL_CONN" ]; then + echo "🔴 发现矿池连接:" + echo "$POOL_CONN" + ALERT=1 +else + echo "✅ 无矿池连接" +fi +# 对外 SSH 扫描检查 +SSH_OUT=$(ss -antp | awk '$5~/:22$/ && $1=="ESTAB"' | wc -l) +if [ "$SSH_OUT" -gt 10 ]; then + echo "🔴 对外 SSH 连接数异常: $SSH_OUT" + ALERT=1 +else + echo "✅ 对外 SSH 连接正常 ($SSH_OUT)" +fi + +# --- 7. PHP 版本检查 --- +echo "" +echo "--- [7/7] PHP 安全 ---" +PHP_VER=$(php -v 2>/dev/null | head -1) +if echo "$PHP_VER" | grep -q '5\.[0-6]'; then + echo "🔴 PHP 版本过旧: $PHP_VER(必须升级!)" + ALERT=1 +elif [ -n "$PHP_VER" ]; then + echo "✅ PHP: $PHP_VER" +else + echo "ℹ️ 未安装 PHP" +fi + +echo "" +echo "==========================================" +if [ $ALERT -gt 0 ]; then + echo "🔴 检测到安全威胁!请立即处理。" +else + echo "✅ 节点安全状态良好。" +fi +``` + +#### 11.5.3 应急响应流程(发现入侵后) + +``` +发现入侵告警 + │ + ▼ +┌──────────────────────────────┐ +│ 1. 立即隔离 │ +│ - iptables 限制 OUTPUT │ +│ - 杀掉所有可疑进程 │ +│ - 禁止 www 用户 shell │ +└──────────┬───────────────────┘ + ▼ +┌──────────────────────────────┐ +│ 2. 证据保全 │ +│ - 截图/记录可疑进程列表 │ +│ - 保存网络连接快照 │ +│ - 备份 .bashrc/.profile │ +└──────────┬───────────────────┘ + ▼ +┌──────────────────────────────┐ +│ 3. 全面清理 │ +│ - 删除恶意文件 │ +│ - 清除所有持久化机制 │ +│ - 检查并清理 crontab │ +│ - 检查 systemd timer │ +└──────────┬───────────────────┘ + ▼ +┌──────────────────────────────┐ +│ 4. 加固 │ +│ - 升级 PHP(如 5.6 → 7.4+)│ +│ - 应用 iptables 规则 │ +│ - /tmp 设 noexec │ +│ - 安装/配置 fail2ban │ +│ - 锁定 www 用户 │ +└──────────┬───────────────────┘ + ▼ +┌──────────────────────────────┐ +│ 5. 验证 │ +│ - 运行 threat_scanner --fix │ +│ - 检查 CPU/负载恢复正常 │ +│ - 确认无对外异常连接 │ +│ - 确认站点正常访问 │ +└──────────────────────────────┘ +``` + +--- + +### 11.6 防守策略矩阵(按攻击类型对症下药) + +| 攻击类型 | 防守措施 | 检测方式 | 响应方式 | 脚本 | +|:---|:---|:---|:---|:---| +| **Mirai 僵尸网络** | OUTPUT iptables + www 禁 shell + fail2ban | 对外 SSH 连接数监控 | 杀进程 + 清持久化 + 封 IP | `threat_cleaner.sh` | +| **挖矿木马** | /tmp noexec + www 无 shell + 进程白名单 | CPU 100% + 可疑进程名 + 矿池端口 | 杀进程 + 删文件 + 清 crontab | `threat_scanner.sh --fix` | +| **PHP 漏洞利用** | **升级 PHP** + disable_functions + Nginx 路径封堵 + WAF | WebShell 扫描 + 文件完整性 + 异常 PHP 日志 | 删 WebShell + 升级 + 加固目录权限 | `php_hardening.sh` | +| **SSH 暴力破解** | 非默认端口 + 密钥认证 + fail2ban + iptables recent | /var/log/secure Failed password 计数 | fail2ban 自动封 IP | `ssh_hardening.sh` | +| **容器逃逸** | `--no-new-privileges` + 镜像哈希校验 + 定期更新 | 宿主机异常进程 | 停容器 + 检查宿主机 | 手动 | + +### 11.7 定期巡检计划 + +| 频率 | 巡检内容 | 执行方式 | +|:---|:---|:---| +| **每日** | CPU/负载/对外连接数 | fleet_monitor.py | +| **每周** | 威胁扫描 + 可疑进程 + /tmp 检查 | threat_scanner_v2.sh | +| **每月** | PHP 版本检查 + 安全基线全量检查 | node_security_baseline_check.sh | +| **每季度** | Discuz/应用版本检查 + 依赖更新 | 手动 | +| **即时** | 收到云厂商告警 | 应急响应流程(11.5.3) | + +### 11.8 部署后安全加固(原有 · 保留) ```bash # SSH加固(在部署完PCDN后执行) bash scripts/ssh_hardening.sh --level medium ``` -### 11.2 威胁扫描 +### 11.9 威胁扫描工具 ```bash -bash scripts/threat_scanner.sh # 检查是否被入侵 -bash scripts/threat_cleaner.sh # 清除恶意程序 -``` - -### 11.3 IOC检测特征库 - -```yaml -malicious_paths: - - /tmp/.systemdpw/ - - /tmp/.X11-unix/.rsync/ - - ~/.config/sys-update-daemon - - ~/c3pool/ - - /var/tmp/.cache/ - - /dev/shm/.x* - -malicious_processes: - - xmrig, xmr-stak, minerd, cpuminer - - kdevtmpfsi, kinsing, sys-update-daemon - -mining_pools: - - pool.hashvault.pro - - c3pool.com - - nanopool.org - - minexmr.com - - supportxmr.com - -mining_ports: [3333, 5555, 7777, 14433, 14444, 45700] +bash scripts/threat_scanner.sh # 基础检查 +bash scripts/threat_scanner_v2.sh # 增强版(推荐) +bash scripts/threat_scanner_v2.sh --fix # 增强版 + 自动清理 +bash scripts/threat_cleaner.sh # 深度清除 ``` --- diff --git a/01_卡资(金)/金仓_存储备份/服务器管理/SKILL.md b/01_卡资(金)/金仓_存储备份/服务器管理/SKILL.md index 3c978093..edb2a879 100644 --- a/01_卡资(金)/金仓_存储备份/服务器管理/SKILL.md +++ b/01_卡资(金)/金仓_存储备份/服务器管理/SKILL.md @@ -60,6 +60,7 @@ kr宝塔: qcWubCdlfFjS2b2DMT1lzPFaDfmv1cBT 7. **站点/Nginx/SSL 类操作 · 默认宝塔 API,被拒则降级**:凡涉及「添加站点、Nginx 反代、重载、申请 SSL、开启 HTTPS」等,**默认一律先用宝塔 API**(本机执行对应脚本,需执行机公网 IP 已加入该面板「设置 → API 接口」白名单)。若调用被拒绝(如 **IP 校验失败**、连接超时等),则**降级一:用 SSH 直接操作**(在服务器上写 Nginx 配置、重载、或在服务器内用 127.0.0.1 调宝塔 API 免白名单)。若 **SSH 操作不了**(连接被关、风控、无密钥等),则**降级二:用腾讯云 API**(TAT 下发命令、或 CVM/轻量 API 等)在服务器内完成同样操作。以后碰到此类问题,直接按「宝塔 API → SSH → 腾讯云 API」顺序执行,不反复询问用户。 8. **执行形式强制顺序**:宝塔服务器上任何操作,**一律按「宝塔 API → SSH → TAT」顺序尝试**。能通过宝塔 API 完成的先用 API;API 不可用(超时、IP 校验失败等)再用 SSH 在机内执行;SSH 不可用再用腾讯云 TAT。不得跳过顺序。 9. **前置检查(强制)**:每次对服务器做**修改类操作**(改配置、改站点、改 Node 项目、重启服务等)之前,**必须先检查目标项目及周边项目/应用**(如通过宝塔 API `get_project_list` 看 Node 项目状态、或 SSH 看进程与端口),确认修改不会导致其他应用不可用后再执行;执行后再次确认目标与周边状态正常。 +10. **PHP 5.6 / Discuz 防护(强制)**:发现 PHP 5.6 **必须升级**(至少 7.4);Discuz 站点必须加固目录权限、Nginx 路径封堵、PHP disable_functions;www 用户 shell 设为 `/sbin/nologin` 并锁定密码。详见 Q6 及「分布式算力管控 SKILL §11.3」。 --- @@ -374,6 +375,32 @@ ss -tlnp | grep :端口号 - 在宝塔面板【网站】→【Node 项目】管理启动/停止 - 批量操作见 `references/宝塔Node项目管理_SKILL.md` +### Q6: PHP 5.6 / Discuz 漏洞防护(⚠️ 2026-02 入侵根因) + +**背景**:2026-02 KR 宝塔服务器遭 Mirai 僵尸网络 + 挖矿木马入侵,根因是 **www.lkdie.com / db.lkdie.com 的 Discuz 论坛运行在已 EOL 的 PHP 5.6**,攻击者通过 Discuz 已知漏洞获取 www 用户权限后投放恶意程序。 + +**强制规则(Rule 10)**: +1. **PHP 5.6 必须升级**到至少 7.4,推荐 8.0+ +2. **Discuz 目录权限**收紧:`uc_server/data/`、`data/cache/` 禁执行 PHP +3. **Nginx 层封堵**:`/uc_server/`、`/misc.php`、`.sql/.bak` 等路径 deny all +4. **PHP disable_functions**:禁用 `exec,system,passthru,shell_exec,proc_open,popen` +5. **www 用户**:shell 设为 `/sbin/nologin`,密码随机化并锁定 +6. **定期扫描**:每周运行 `threat_scanner_v2.sh`,详见「分布式算力管控 SKILL §11」 + +**修复步骤**: +```bash +# 1. 宝塔面板 → 软件商店 → 安装 PHP 7.4 +# 2. 安装 Discuz 必要扩展:mysql,gd,curl,mbstring,xml,openssl +# 3. 备份数据库和站点文件 +mysqldump -u root -p 数据库名 > /tmp/discuz_backup.sql +tar -czf /tmp/discuz_files_backup.tar.gz /www/wwwroot/论坛路径/ +# 4. 宝塔面板 → 站点设置 → 切换 PHP 版本到 7.4 +# 5. 测试站点功能 +# 6. 确认无问题后卸载 PHP 5.6 +``` + +**完整攻防体系**见:`01_卡资(金)/金仓_存储备份/分布式算力管控/SKILL.md` 第十一节。 + --- ## 安全约束 diff --git a/SKILL_REGISTRY.md b/SKILL_REGISTRY.md index 9c2d8a2f..3777e2e2 100644 --- a/SKILL_REGISTRY.md +++ b/SKILL_REGISTRY.md @@ -59,7 +59,7 @@ | G03 | 磁盘清理 | 金仓 | 清理磁盘、释放空间 | `01_卡资(金)/金仓_存储备份/磁盘清理/SKILL.md` | 查找大文件、清理缓存 | | G04 | 容灾备份 | 金仓 | 备份、灾备 | `01_卡资(金)/金仓_存储备份/容灾备份/SKILL.md` | 定时备份、异地容灾 | | G05 | 照片分类 | 金仓 | 照片整理、相册 | `01_卡资(金)/金仓_存储备份/照片分类/SKILL.md` | 照片去重、按时间/地点分类 | -| G06 | 分布式算力管控 | 金仓 | 算力、PCDN、节点 | `01_卡资(金)/金仓_存储备份/分布式算力管控/SKILL.md` | 节点部署、收益监控 | +| G06 | 分布式算力管控 | 金仓 | 算力、PCDN、节点、攻防、入侵检测、挖矿木马、Mirai、PHP漏洞、Discuz安全 | `01_卡资(金)/金仓_存储备份/分布式算力管控/SKILL.md` | 节点部署、收益监控、**安全攻防体系** | | G07 | 服务器管理 | 金仓 | 宝塔、部署、SSL | `01_卡资(金)/金仓_存储备份/服务器管理/SKILL.md` | 宝塔面板、域名、证书 | | G08 | 系统监控 | 金仓 | 系统状态、杀进程 | `01_卡资(金)/金仓_存储备份/系统监控/SKILL.md` | CPU/内存/磁盘实时监控 | | G09 | iPhone管理 | 金仓 | iPhone备份、连接 | `01_卡资(金)/金仓_存储备份/iPhone管理/SKILL.md` | iPhone 数据备份与同步 | diff --git a/运营中枢/工作台/gitea_push_log.md b/运营中枢/工作台/gitea_push_log.md index 540184cb..838baa6a 100644 --- a/运营中枢/工作台/gitea_push_log.md +++ b/运营中枢/工作台/gitea_push_log.md @@ -381,3 +381,4 @@ | 2026-03-16 15:25:27 | 🔄 卡若AI 同步 2026-03-16 15:25 | 更新:运营中枢、运营中枢工作台 | 排除 >20MB: 11 个 | | 2026-03-16 16:59:19 | 🔄 卡若AI 同步 2026-03-16 16:59 | 更新:卡木、运营中枢、运营中枢工作台 | 排除 >20MB: 11 个 | | 2026-03-16 20:53:37 | 🔄 卡若AI 同步 2026-03-16 20:53 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 | +| 2026-03-17 04:43:13 | 🔄 卡若AI 同步 2026-03-17 04:43 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 | diff --git a/运营中枢/工作台/代码管理.md b/运营中枢/工作台/代码管理.md index c3df095a..3471be1f 100644 --- a/运营中枢/工作台/代码管理.md +++ b/运营中枢/工作台/代码管理.md @@ -384,3 +384,4 @@ | 2026-03-16 15:25:27 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-16 15:25 | 更新:运营中枢、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-03-16 16:59:19 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-16 16:59 | 更新:卡木、运营中枢、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-03-16 20:53:37 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-16 20:53 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | +| 2026-03-17 04:43:13 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-17 04:43 | 更新:运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |