Linux 漏洞利用与防范技巧
一 核心攻击面与典型利用
- 内核本地提权:利用内核缺陷直接获取 root。代表案例包括 Dirty COW(CVE-2016-5195)、Dirty Pipe(CVE-2022-0847),常在未及时更新的系统上被本地触发。
- 特权位滥用:对设置了 SUID/SGID 的程序进行“借刀”。如 find . -exec /bin/sh -p ; -quit、旧版 nmap --interactive 等,一旦被低权用户触发即可提权。
- 可写计划任务与服务:对 /etc/cron.*、/var/spool/cron、/etc/rc.local 等可写脚本或服务二进制进行劫持,等待高权定时或开机执行。
- sudo 误配置:通过 sudo -l 发现可无密码或以高权执行的命令(如 awk、vim、less 等),构造“合法”提权链。
- 环境变量与库劫持:PATH 劫持、LD_PRELOAD、LD_LIBRARY_PATH 等污染导致特权程序加载恶意代码。
- 共享与第三方服务:NFS no_root_squash 可写共享、弱口令或配置不当的 Redis、MySQL UDF、PostgreSQL 常被用于写 SSH 公钥、加载恶意库或执行系统命令。
- 容器逃逸:–privileged 容器、hostPath 挂载、内核漏洞等可突破隔离访问宿主机。
- 身份与口令攻击:弱口令、/etc/shadow 离线破解(如 John the Ripper、hashcat)、暴力破解 SSH 等获取初始立足点。
- 最新风险示例:CVE-2025-6018(PAM 配置) 与 CVE-2025-6019(libblockdev/udisks2) 存在本地提权链风险,影响 Ubuntu、Debian、Fedora、openSUSE Leap 15、SUSE Enterprise 15 等,需尽快修补与核查 polkit/udisks2 规则。
二 攻击流程与自查要点
- 信息收集:查看系统与内核信息(uname -a、cat /etc/os-release)、网络与进程(netstat -tulpen、ss -lntp、ps aux)、登录与历史(last、who、~/.bash_history)、计划任务(crontab -l、cat /etc/crontab、ls -la /etc/cron. /var/spool/cron*)。
- 快速定位风险:
- 查找 SUID/SGID:find / -perm -4000 -type f 2>/dev/null(必要时排除 /proc、/snap)。
- 查找可写敏感路径:find /etc /var/spool/cron /var/www -type f -writable 2>/dev/null。
- 审计 sudo 权限:sudo -l;对可疑条目进一步验证。
- 第三方与网络服务:核查 Redis、MySQL、PostgreSQL、NFS 等配置与访问控制。
- 自动化辅助:使用 LinPEAS、Linux Exploit Suggester 做信息聚合与漏洞匹配;用 pspy 观察进程与定时任务触发时机。
三 加固与防护清单
- 系统与内核:
- 及时更新内核与软件包;关键系统启用 内核热补丁(Live Patching) 减少重启窗口。
- 最小化内核功能与模块加载,关闭不必要的接口与调试设施。
- 特权与身份:
- 清理不必要的 SUID/SGID,仅保留系统必需项;定期复核。
- 精细化 sudoers(使用 visudo),禁止 ALL=(ALL) NOPASSWD 等高危规则;对特权命令采用最小权限与白名单。
- 禁止 root 远程登录(如 PermitRootLogin no),统一通过普通用户 + sudo 管理。
- 计划任务与服务:
- 限制 /etc/cron.*、/var/spool/cron 的写入权限;仅允许受控目录与受信脚本。
- 服务二进制与配置目录(如 /etc/systemd)严格权限控制;启用 systemd-analyze verify 检查单元文件安全。
- 文件系统与共享:
- 严格 NFS 导出策略,默认启用 root_squash,避免 no_root_squash;最小暴露面。
- 限制 /tmp、/var/tmp 挂载选项(如 noexec,nosuid,nodev)。
- 第三方与容器:
- Redis 强制口令与绑定本地/内网、禁用危险命令;MySQL 限制 secure_file_priv、禁用 UDF;PostgreSQL 限制语言/函数执行。
- 容器禁用 –privileged,最小化 capabilities,谨慎使用 hostPath,启用 seccomp/AppArmor/SELinux。
- 认证与访问控制:
- 强制口令策略与周期轮换(如 chage),禁用空口令与弱口令;启用 多因素认证(MFA)。
- 使用 SSH 密钥 替代口令,限制 AllowUsers/AllowGroups,仅开放必要端口与协议。
- 日志、监控与响应:
- 集中采集与分析 auth、secure、syslog、journald;对 /etc/shadow、/etc/passwd、/etc/sudoers、/etc/cron.* 变更设置 auditd 监控与告警。
- 部署 Falco、Wazuh/OSSEC 检测异常提权与可疑行为;建立基线并定期巡检。
四 近期漏洞处置示例 CVE-2025-6018 与 CVE-2025-6019
- 影响范围:
- CVE-2025-6018(PAM):影响 openSUSE Leap 15、SUSE Linux Enterprise 15 等,错误配置可能让远程登录获得 allow_active 状态。
- CVE-2025-6019(libblockdev/udisks2):影响 Ubuntu、Debian、Fedora、openSUSE Leap 15,与前者可形成提权链。
- 核查要点:
- 检查 PAM 配置(如 /etc/pam.d/sshd 是否存在不当的 user_readenv=1 等);
- 检查组件版本:dpkg -l | grep libblockdev/udisks2 或 dnf/zypper 查询;
- 关注发行版安全通告并核对修复版本。
- 处置建议:
- 立即更新相关包(如 libblockdev、udisks2、PAM 组件);
- 审核 polkit/udisks2 规则,避免 allow_active=yes 等过度授权;
- 临时缓解:限制 SSH 登录、收紧 sudoers、最小化 polkit 动作授权,直至完成修补与回归验证。
五 合规与演练提示
- 仅在取得系统所有方的书面授权前提下进行安全测试与演练;对生产环境先做备份与变更评估。
- 建立例行化巡检与应急响应预案:补丁、配置基线、日志审计、告警处置与复盘闭环。
- 安全提示:本文仅用于合法合规的安全防护与培训,严禁用于任何未授权的攻击或违法行为。