pyexp
一、靶机介绍
靶机下载地址:
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地址
三、端口扫描
nmap -p- 192.168.43.148 |
发现靶机1337和3306端口开放
1337开放的是ssh服务
3306还是默认的mysql
发现这个靶机没有web端口,于是想着使用searchploit搜索一下对应的版本,看看有没有提权脚本
ssh没有找到
mysql找到一个dos的脚本对打靶机拿权限没啥用
四、hydra爆破
将字典先复制解压到桌面上,便于一会指定字典
cp /usr/share/wordlists/rockyou.txt.gz . # 将字典复制到桌面 |
4.1、ssh爆破
hydra -l root -P rockyou.txt ssh://192.168.43.148:1337 |
跑了半个小时,我都通过mysql拿到另一个用户的shell了,他还没跑完,我果断终止了
4.2、mysql爆破
hydra -l root -P rockyou.txt mysql://192.168.43.148:3306 |
root
prettywoman
这个稍等几分钟就跑出来密码了
五、mysql远程登录
远程登录一下尝试,但是没想到root竟然能远程登录成功
mysql -u root -p -h 192.168.43.148 |
5.1、\!
尝试执行命令
\!
来尝试执行系统命令没有无法成功的,说明靶机进行了相关命令的防护
\! |
这里回显的内容都是我攻击机kali的内容
5.2、load_file读取文件
尝试发现load_file这个函数能够执行成功
select load_file('/etc/passwd'); |
读取passwd函数
习惯从下往上看,发现lucy这个用户能够使用命令行登录,同时根据这个名字也不像是系统自带的名字,猜测是创建的用户
尝试用户是否存在公私密钥,如果存在的话,通过复制密钥,直接登录用户,发现返回内容为空
select load_file('/home/lucy.ssh/id_rsa'); |
5.3、信息收集
找不到其他有用信息了,尝试从数据库中查找有用信息
show databaes; |
发现两个字符串,列名为keyy,猜测是个密钥,前面应该是加密内容
gAAAAABfMbX0bqWJTTdHKUYYG9U5Y6JGCpgEiLqmYIVlWB7t8gvsuayfhLOO_cHnJQF1_ibv14si1MbL7Dgt9Odk8mKHAXLhyHZplax0v02MMzh_z_eI7ys=
UJ5_V_b-TWKKyzlErA96f-9aEnQEfdjFbRKt8ULjdV0=
搜索了一下表名,发现是个表名对应的是一种对称加密,直接找了一个在线解密平台,直接解了出来
Fernet (Decode) (asecuritysite.com)
lucy:wJ9`”Lemdv9[FEw-
六、ssh登录
ssh lucy@192.168.43.148 -p 1337 |
尝试ssh登录,指定一下端口
七、python exec提权
通过suod查看是否存在sudo可以直接执行的程序
cat user.txt # 获取flag |
发现有个python脚本可以直接使用sudo权限执行
sudo python2 /opt/exp.py |
运行了一下,没搞懂,查看了一下权限,发现其他用户有读取的权限
查看一下脚本,发现是执行exec函数(会将传入的字符串按照python语句进行解析并执行)
sudo python2 /opt/exp.py |
提权成功