dirty_sockv1 vs v2:哪个版本更适合你的渗透测试场景?对比分析
dirty_sockv1 vs v2:哪个版本更适合你的渗透测试场景?对比分析
【免费下载链接】dirty_sockLinux privilege escalation exploit via snapd (CVE-2019-7304)项目地址: https://gitcode.com/gh_mirrors/di/dirty_sock
dirty_sock是针对Linux系统中snapd服务漏洞(CVE-2019-7304)的本地提权工具,通过两种不同实现方式提供了可靠的权限提升能力。本文将深入对比dirty_sockv1与v2版本的核心差异,帮助渗透测试人员根据实际场景选择最适合的工具版本。
🚀 核心功能对比:两种提权路径的本质区别
dirty_sockv1:基于Ubuntu SSO的优雅提权
v1版本通过snapd的/v2/create-userAPI实现提权,利用Ubuntu SSO账户信息创建具有sudo权限的本地用户。其核心特点包括:
- 依赖外部服务:需要有效的Ubuntu SSO账户及配置好的SSH公钥(dirty_sockv1.py)
- 网络要求:必须具备访问Ubuntu SSO服务的出站网络连接
- 操作流程:通过SSH密钥认证自动登录提权后的账户(dirty_sockv1.py#L137-L141)
- 优势:对系统侵入性低,利用官方API流程创建用户,审计痕迹较少
dirty_sockv2:无依赖的独立提权方案
v2版本采用sideload恶意snap包的方式,通过安装钩子(install hook)直接创建特权用户。其核心特点包括:
- 完全离线:无需任何外部账户或网络连接(dirty_sockv2.py#L11)
- 自动创建凭证:默认生成
dirty_sock/dirty_sock账户密码(dirty_sockv2.py#L13-L14) - 操作流程:通过
snapdAPI安装包含提权脚本的恶意snap包(dirty_sockv2.py#L139) - 优势:适用环境更广,尤其适合网络隔离或无外部账户的场景
📊 渗透测试场景适配分析
选择v1版本的典型场景
合规性测试环境
当需要最小化对目标系统的修改时,v1通过官方API创建用户的方式更为隐蔽。其自动清理临时文件的特性(dirty_sockv1.py#L167)可减少审计风险。长期驻留需求
利用用户自己的SSH密钥进行认证,避免硬编码凭证带来的泄露风险,适合需要持续访问的场景。有网络访问权限
在可访问Ubuntu SSO服务的环境中,v1的执行成功率通常高于v2,因为其利用的是snapd的标准用户创建流程。
选择v2版本的典型场景
网络隔离环境
在无法连接外部网络的内网渗透中,v2完全离线的特性使其成为唯一选择(dirty_sockv2.py#L49-L66的嵌入式恶意snap包)。快速应急响应
无需预先配置Ubuntu账户,即开即用的特性使其适合时间敏感的渗透测试任务。受限环境突破
当目标系统未运行SSH服务时(v1依赖SSH登录),v2通过su命令直接切换用户的方式更具优势(dirty_sockv2.py#L207-L209)。
💻 实战操作指南
v1版本使用步骤
# 克隆仓库 git clone https://gitcode.com/gh_mirrors/di/dirty_sock cd dirty_sock # 执行exploit(需提前准备Ubuntu SSO账户) python3 dirty_sockv1.py -u your-ubuntu-email@example.com -k ~/.ssh/id_rsa关键参数说明:
-u:Ubuntu SSO账户邮箱(必须已配置SSH公钥)-k:本地SSH私钥路径(对应SSO账户中的公钥)
v2版本使用步骤
# 克隆仓库 git clone https://gitcode.com/gh_mirrors/di/dirty_sock cd dirty_sock # 直接执行,无需参数 python3 dirty_sockv2.py # 提权成功后切换用户 su dirty_sock # 输入密码:dirty_sock⚠️ 风险与限制
两个版本共同存在的限制:
- 仅适用于安装了
snapd服务的Linux系统(主要是Ubuntu) - 需要对
/run/snapd.socket具有访问权限 - 漏洞已在snapd 2.37版本中修复,需确认目标系统版本
版本特有风险:
- v1:操作记录会出现在Ubuntu SSO审计日志中
- v2:恶意snap包的安装/卸载过程可能被安全软件检测
🎯 版本选择决策流程图
是否有Ubuntu SSO账户?
是 → 检查网络连接 → 有网络 → 优先v1
否 → 直接选择v2目标系统是否运行SSH服务?
是 → v1/v2均可
否 → 必须选择v2是否需要最小化审计痕迹?
是 → 优先v1
否 → 选择v2
通过以上对比分析,渗透测试人员可以根据具体环境条件选择最优的提权方案。在实际测试中,建议同时准备两个版本,根据目标系统的实际情况灵活切换使用。
【免费下载链接】dirty_sockLinux privilege escalation exploit via snapd (CVE-2019-7304)项目地址: https://gitcode.com/gh_mirrors/di/dirty_sock
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
