Linux 提权实战:Zico2 靶场中 2 种 Sudo 权限滥用方法(tar/zip)原理与复现 Linux 提权实战Zico2 靶场中 2 种 Sudo 权限滥用方法tar/zip原理与复现在渗透测试和安全研究中Linux 系统的权限提升Privilege Escalation是一个至关重要的环节。Zico2 靶场作为 VulnHub 上的经典练习环境提供了一个绝佳的机会来探索 Sudo 权限配置不当导致的安全风险。本文将深入剖析两种鲜为人知但极具杀伤力的 Sudo 提权方法通过tar命令的--checkpoint-action参数和zip命令的--unzip-command参数实现权限提升。1. Sudo 权限滥用风险模型Linux 系统中的 Sudo 机制本意是让普通用户能够以 root 权限执行特定命令但当配置不当时它可能成为攻击者获取 root 权限的后门。在 Zico2 靶场中我们发现了以下关键风险点过度授权普通用户 zico 被允许以 root 身份执行tar和zip命令参数滥用这两个命令都支持执行外部脚本的参数环境控制攻击者能够控制命令执行时的当前目录和文件内容# 查看当前用户的sudo权限 sudo -l输出示例User zico may run the following commands on zico2: (root) NOPASSWD: /bin/tar (root) NOPASSWD: /usr/bin/zip2. tar 命令提权--checkpoint-action 的致命陷阱tar命令的--checkpoint-action参数本意是为了在备份过程中执行自定义操作但在安全配置不当的系统上它可能成为提权的利器。2.1 攻击原理剖析tar命令的检查点机制包含两个关键参数--checkpointn每处理 n 个文件后触发检查点--checkpoint-actionexeccommand在检查点执行指定命令当以 root 权限执行tar时--checkpoint-action会以同样的高权限执行命令这就为权限提升创造了条件。2.2 完整攻击步骤# 1. 创建恶意脚本 echo /bin/bash shell.sh chmod x shell.sh # 2. 构造tar命令触发检查点执行 sudo tar cf archive.tar * --checkpoint1 --checkpoint-actionexec./shell.sh执行后系统会启动一个具有 root 权限的 bash shell。这个攻击之所以有效是因为--checkpoint1确保处理第一个文件后就触发检查点--checkpoint-action指定执行的脚本在当前目录下完全可控sudo tar以 root 权限执行连带提升了脚本的执行权限2.3 防御措施要防范此类攻击系统管理员可以限制 Sudo 配置中的命令参数# 安全的sudoers配置示例 Cmnd_Alias SAFE_TAR /bin/tar --exclude* --no-checkpoint * zico ALL(root) NOPASSWD: SAFE_TAR使用最小权限原则只授予必要的命令权限定期审计 Sudo 配置移除不必要的权限3. zip 命令提权--unzip-command 的隐蔽后门zip命令的测试模式参数-T通常用于验证压缩文件完整性但其--unzip-command选项可能被滥用。3.1 技术细节解析zip的测试模式包含以下关键参数组合-T启用完整性测试--unzip-commandcommand指定自定义解压命令而非默认的 unzip当这些参数与 Sudo 结合时攻击者可以指定任意命令以 root 权限执行。3.2 实战操作演示# 1. 创建一个空文件作为压缩对象 touch dummy.txt # 2. 构造恶意zip命令 sudo zip test.zip dummy.txt -T --unzip-commandsh -c /bin/bash执行后系统会直接返回一个 root shell。这个过程的关键在于-T参数强制zip进入测试模式--unzip-command覆盖了默认的测试行为整个命令链以 root 权限执行3.3 安全加固建议针对这种攻击方式建议采取以下防护措施在 sudoers 文件中限制 zip 的参数使用Cmnd_Alias SAFE_ZIP /usr/bin/zip -[0-9A-Za-z]* zico ALL(root) NOPASSWD: SAFE_ZIP监控系统日志中的可疑 zip 命令执行考虑使用更严格的 SELinux 或 AppArmor 策略4. 综合防御策略与最佳实践通过上述两个案例我们可以总结出一套完整的 Sudo 安全防护体系4.1 Sudo 安全配置清单风险点安全配置检测方法命令参数控制使用 Cmnd_Alias 限制允许的参数sudo -l密码策略对敏感操作要求密码验证检查 sudoers 中的 NOPASSWD日志审计启用详细的 sudo 日志记录检查 /var/log/auth.log权限最小化只授予必要的最小权限定期权限审计4.2 日常维护建议定期审计每月检查一次 /etc/sudoers 文件权限回收对不再需要的 Sudo 权限及时撤销版本更新保持系统工具的最新版本监控告警设置异常 Sudo 使用的告警机制# 示例监控可疑sudo使用的脚本 grep -E sudo.*--checkpoint-action|sudo.*--unzip-command /var/log/auth.log5. 从攻击者视角看防御理解攻击手法是为了更好地防御。在实际渗透测试中安全专家还会关注环境探测检查哪些命令具有 Sudo 权限参数研究研究允许的命令是否存在危险参数上下文利用结合文件上传等其他漏洞创造攻击条件痕迹清理攻击成功后清除日志记录这种攻防对抗的思维模式正是 Zico2 靶场想要传达的核心安全理念。