三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

dirty_sockv1 vs v2:哪个版本更适合你的渗透测试场景?对比分析

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版本的典型场景

  1. 合规性测试环境
    当需要最小化对目标系统的修改时,v1通过官方API创建用户的方式更为隐蔽。其自动清理临时文件的特性(dirty_sockv1.py#L167)可减少审计风险。

  2. 长期驻留需求
    利用用户自己的SSH密钥进行认证,避免硬编码凭证带来的泄露风险,适合需要持续访问的场景。

  3. 有网络访问权限
    在可访问Ubuntu SSO服务的环境中,v1的执行成功率通常高于v2,因为其利用的是snapd的标准用户创建流程。

选择v2版本的典型场景

  1. 网络隔离环境
    在无法连接外部网络的内网渗透中,v2完全离线的特性使其成为唯一选择(dirty_sockv2.py#L49-L66的嵌入式恶意snap包)。

  2. 快速应急响应
    无需预先配置Ubuntu账户,即开即用的特性使其适合时间敏感的渗透测试任务。

  3. 受限环境突破
    当目标系统未运行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包的安装/卸载过程可能被安全软件检测

🎯 版本选择决策流程图

  1. 是否有Ubuntu SSO账户?
    是 → 检查网络连接 → 有网络 → 优先v1
    否 → 直接选择v2

  2. 目标系统是否运行SSH服务?
    是 → v1/v2均可
    否 → 必须选择v2

  3. 是否需要最小化审计痕迹?
    是 → 优先v1
    否 → 选择v2

通过以上对比分析,渗透测试人员可以根据具体环境条件选择最优的提权方案。在实际测试中,建议同时准备两个版本,根据目标系统的实际情况灵活切换使用。

【免费下载链接】dirty_sockLinux privilege escalation exploit via snapd (CVE-2019-7304)项目地址: https://gitcode.com/gh_mirrors/di/dirty_sock

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表