Featured image of post Linux 安全:挖矿病毒清理、c3Pool 木马与 GVM 漏洞扫描实战

Linux 安全:挖矿病毒清理、c3Pool 木马与 GVM 漏洞扫描实战

2024 视角下的 Linux 主机安全——挖矿病毒应急(xmrig / c3Pool 木马清理)、chattr 防删与解锁、EDR 终端部署、OpenVAS/GVM 漏洞扫描(23.11 时代)安装与升级、漏扫告警体系建设

一、为什么是 2024 年这一份

2024 年这个时间点,Linux 主机安全进入"专业化"阶段:

  • 挖矿病毒(xmrig / c3Pool / kinsing)仍是企业最常见的入侵后果
  • EDR 终端(Endpoint Detection and Response)成为云主机标配
  • OpenVAS 在 2017 改名 GVM(Greenbone Vulnerability Management),2024 已是 23.x
  • 合规要求(等保 2.0、ISO 27001)要求定期漏洞扫描
  • xmrig 6.x 的对抗特征(chattr +i 防删)成为应急手册标配

这一篇覆盖挖矿病毒应急、c3Pool 木马清理、EDR 部署、GVM 漏洞扫描安装与升级、漏扫告警——一个"安全运营"工程师的实战手册。

阅读建议:本文是"应急 + 体系建设"双重性质——先应急(挖矿病毒清理),再体系(漏洞扫描)。

二、挖矿病毒应急:c3Pool 木马清理

2.1 现象与定位

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 1. top 找高 CPU 进程
top
# 看到 xmrig、kdevtmpfsi、.service 等非常规进程

# 2. 找进程 exe 路径
ls -l /proc/<pid>
# /proc/<pid>/exe -> /usr/local/lib/<挖矿二进制>

# 3. 看进程工作目录
ls -l /proc/<pid>/cwd
# 通常在 /tmp 或 /dev/shm 这种"隐蔽"位置

2.2 文件无法删除:chattr +i

挖矿木马常 chattr +i 锁住自己的二进制、SSH 公钥、cron 文件等,让 rm 删不掉。

1
2
3
4
5
6
7
8
# 查属性
lsattr 文件名

# 加锁(之后 rm 删不掉)
chattr -R +i ./test*

# 解除(运行完就能删)
chattr -R -i ./test*

2.3 c3Pool 矿池连接特征

c3Pool 是公开矿池(c3pool.com),挖矿木马的"标配"会连接 c3pool.com

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 1. 看进程网络连接
ss -tnp | grep <pid>
# 看是否有到矿池 IP 的 TCP 连接

# 2. 查 DNS 解析记录
cat /etc/resolv.conf
# 木马经常改 DNS 指向自建 DNS

# 3. 查 hosts
cat /etc/hosts
# 木马经常把 c3pool.com、pool.minexmr.com 指向 0.0.0.0

xmrig 配置:挖矿配置一般在 ~/.config/xmrig/config.json,里面能找到矿池地址、钱包地址、CPU 占用等。

2.4 完整清理流程

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 1. 杀进程
ps -ef | grep xmrig | grep -v grep | awk '{print $2}' | xargs kill -9
pkill -9 xmrig

# 2. 解锁
find / -name "*.xmrig*" -exec chattr -i {} \;
find / -path "*/xmrig/*" -exec chattr -R -i {} \;
chattr -R -i /etc/cron.d/
chattr -R -i /etc/cron.daily/
chattr -R -i /var/spool/cron/

# 3. 删文件
rm -rf /usr/local/lib/xmrig
rm -rf /tmp/.xmrig
rm -rf /dev/shm/.xmrig

# 4. 清 cron
# 全局搜索定时任务
find / -name "cron*" -type d

# 看每个 cron 文件内容
for f in /var/spool/cron/* /etc/crontab /etc/cron.d/* /etc/cron.daily/* /etc/cron.hourly/* /etc/cron.monthly/* /etc/cron.weekly/*; do
    echo "=== $f ==="
    cat "$f" 2>/dev/null
done

# 找可疑条目(含 curl / wget / base64 / sh -c 的)
grep -rE "(curl|wget|base64|sh -c)" /var/spool/cron/ /etc/cron.d/ /etc/cron.daily/ /etc/cron.hourly/ 2>/dev/null

# 重启 crond
systemctl restart crond

# 5. 查 SSH 攻击者后门
# 看 authorized_keys
find / -name "authorized_keys" -ls 2>/dev/null
cat ~/.ssh/authorized_keys
# 找陌生的公钥

# 6. 查新增 sudo 用户
awk -F ":" '$3==0{print $1}' /etc/passwd

# 7. 改所有用户密码
passwd root
passwd <其他用户>

# 8. 查进程还在不在
top
ps -ef | grep -E "(xmrig|kdevtmpfsi|minerd)"

2.5 xmrig 自检配置

xmrig 官方有"配置向导":https://xmrig.com/wizard

不要去生成实际挖矿配置——这个工具只是让你理解挖矿配置长什么样,方便在应急时识别。

三、EDR 终端部署

3.1 简介

EDR(Endpoint Detection and Response)通过 agent 收集主机行为日志,实时检测异常,是现代主机的"安全底座"。

3.2 命令行部署

1
2
3
4
5
wget --no-check-certificate https://<EDR管理平台IP>:4430/download_installer_linux.php \
     -O linux_edr_installer.tar.gz

tar -xzvf linux_edr_installer.tar.gz
./agent_installer.sh -c

端口:默认 4430。

3.3 下载器部署

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 1. 把安装包拷贝到终端
scp linux_edr_installer.tar.gz root@<host>:/tmp/

# 2. 终端解压
cd /tmp
tar -xzvf linux_edr_installer.tar.gz

# 3. 安装
cd /tmp
./agent_installer.sh        # 同目录有 manager_info.txt 时
# 或
./agent_installer.sh -f     # 强制安装
./agent_installer.sh -h www.mgr.com     # 自定义域名
./agent_installer.sh -h www.mgr.com -p 443 -d /root/edr/ -f   # 完全自定义

# 4. 验证
./agent_installer.sh --help
1
2
# 4. agent 启动后会自动连接 EDR 管理中心
systemctl status edr-agent

四、OpenVAS / GVM 漏洞扫描

4.1 简介

OpenVAS(Open Vulnerability Assessment Scanner)2017 年改名 GVM(Greenbone Vulnerability Management),是开源漏洞扫描器的事实标准

特点:

  • 用户界面简单友好
  • 内置测试库,每天更新
  • 扫描目标设备的所有软件版本
  • 匹配漏洞库后直接提示可能的漏洞

4.2 GVM 23.x 时代组件

  • gvmd —— Manager
  • gsad —— Web 前端(Greenbone Security Assistant)
  • openvas / ospd-openvas —— Scanner
  • notus —— 产品元数据
  • redis-server —— Scanner 缓存
  • PostgreSQL —— 元数据库
  • gvm-tools —— 命令行工具

4.3 安装(Debian/Ubuntu)

1
2
3
apt update
apt install gvm -y
# 依赖:greenbone-security-assistant gsad gvm-tools libmicrohttpd12t64

4.4 初始化

1
2
3
4
5
6
7
8
9
# 初始化(下载漏洞库,时间比较长)
gvm-setup

# 检查安装结果
gvm-check-setup
# 如果检测失败按提示执行修复命令

# GVM 的 Redis 不是开机启动
systemctl enable redis-server@openvas.service

4.5 升级漏洞库

1
2
3
4
5
6
7
# 旧命令(已废弃)
gvm-feed-update
# > This script is now deprecated
# > Please use 'sudo greenbone-feed-sync' instead

# 新命令
sudo greenbone-feed-sync

4.6 启动

1
2
gvm-start
# > GVM services are already running

4.7 修改 admin 密码

1
2
3
4
5
6
7
# 改密码为自定义值
runuser -u _gvm -- gvmd --user=admin --new-password='<your-password>'

# 第一次安装时会有初始化密码输出
# [+] Done
# [*] Please note the password for the admin user
# [*] User created with password '...uuid...'

4.8 创建新用户

1
2
# admin 填要创建的用户名,最后的 password 填密码
runuser -u _gvm -- gvmd --create-user=<username> --new-password='<password>'

4.9 修改 Web UI 监听地址

默认 gsad 只监听 127.0.0.1:9392,要对外暴露:

1
2
3
4
5
6
7
8
9
vim /usr/lib/systemd/system/gsad.service

# 把
# ExecStart=/usr/local/sbin/gsad --foreground --listen=127.0.0.1 --port=9392
# 改为
ExecStart=/usr/local/sbin/gsad --foreground --listen=0.0.0.0 --port=443

sudo systemctl daemon-reload
sudo systemctl restart gsad

4.10 查日志

1
tail -f /var/log/gvm/gvmd.log

4.11 典型 gvm-check-setup 输出(23.11)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
gvm-check-setup 23.11.0
  Test completeness and readiness of GVM-23.11.0
Step 1: Checking OpenVAS (Scanner)...
        OK: OpenVAS Scanner is present in version 23.0.1.
        OK: Notus Scanner is present in version 22.6.3.
        OK: Server CA Certificate is present.
        OK: redis-server is present.
        OK: scanner (db_address setting) is configured properly.
        OK: _gvm owns all files in /lib/openvas/plugins.
        OK: NVT collection contains 91760 NVTs.
        OK: The notus directory contains 464 NVTs.
Step 2: Checking GVMD Manager ...
        OK: GVM Manager (gvmd) is present in version 23.5.2.
Step 3: Checking Certificates ...
        OK: GVM client certificate is valid.
        OK: Your GVM certificate infrastructure passed validation.
Step 4: Checking data ...

关键指标:91760 NVTs(漏洞特征库)、464 notus NVTs(产品元数据)是 2024 时代正常范围。GVM 23.5.2 是 2024 上半年的版本。

五、漏扫告警体系建设

5.1 关键指标

指标含义
CVSS 评分通用漏洞评分系统,0-10 越高越严重
高危 / 中危 / 低危业务常用的粗粒度分类
CVE 编号公开漏洞编号
影响资产漏洞影响的具体资产范围

5.2 集成方式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 方式一:GVM 自带的 Web UI
# 浏览器访问 https://<gvm-host>:443
# 登录后:Configuration → Targets → New Target

# 方式二:Python gvm-tools
pip install gvm-tools
gvm-cli --gmp-username admin --gmp-password <password> \
        tls --hostname <gvm-host> --port 443 \
        --xml '<get_tasks/>'

# 方式三:REST API(gmp 22.4+)
# 见 https://greenbone.github.io/docs/

5.3 与企业 SIEM 集成

把 GVM 扫描结果导入 SIEM(Splunk / ELK / QRadar):

1
2
3
4
5
# 1. GVM 导出 CSV
# Web UI → Reports → Export → CSV

# 2. 用 logstash / filebeat 采集
# 3. 用 SPL / DSL 写告警规则

六、安全基线检查清单(2024 等保 2.0 视角)

检查项命令 / 工具
操作系统补丁uname -r 比对最新安全公告
特权账号awk -F":" '$3==0{print $1}' /etc/passwd
弱口令john --wordlist=pass.txt /etc/shadow(破解测试)
SSH 安全`sshd -T
防火墙iptables -L -n / ufw status
入侵检测AIDE / Tripwire / OSSEC
病毒查杀chkrootkit / rkhunter / clamav
漏洞扫描GVM / Nessus / Qualys
终端 EDR部署 EDR agent
日志审计auditd / rsyslog → SIEM
备份至少 3-2-1 策略

七、前置知识 / 下一步

  • 想看 chkrootkit / rkhunter / clamav 详细用法 → 翻独立文章
  • 想看 SIEM 集成(ELK / Loki)→ 翻独立文章
  • 想看 GVM 高级配置(任务、报告、调度)→ 翻独立文章
  • 想看 AIDE / Tripwire 主机入侵检测 → 翻独立文章
  • 想看 SELinux / AppArmor 强制访问控制 → 翻独立文章

八、参考资源

使用 Hugo 构建
主题 StackJimmy 设计