一、为什么是 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 强制访问控制 → 翻独立文章
八、参考资源