vulnhub靶场【kioptrix-4】靶机

admin 2025年6月7日14:04:24评论2 views字数 3586阅读11分57秒阅读模式

前言

靶机:kioptrix-4,IP地址为192.168.1.75,后期IP地址为192.168.10.8

攻击:kali,IP地址为192.168.1.16,后期IP地址为192.168.10.6

都采用VMware虚拟机,网卡为桥接模式

这里的靶机,官方只给了硬盘文件,没有给出虚拟机可直接加载文件.vmx,所以这里需要自行安装一个,然后导入硬盘

文章中涉及的靶机,来源于vulnhub官网,想要下载,可自行访问官网下载,或者在本公众号回复 kioptrix 获取靶机以及工具的下载链接

安装靶机

首先使用VMware新建一个虚拟机

vulnhub靶场【kioptrix-4】靶机

然后选择稍后安装操作系统

vulnhub靶场【kioptrix-4】靶机

然后选择其他,默认版本即可

vulnhub靶场【kioptrix-4】靶机

然后一直点击下一步直到完成即可

打开新建虚拟机的设置,添加一个硬盘,该路径就是靶机的硬盘位置

vulnhub靶场【kioptrix-4】靶机
vulnhub靶场【kioptrix-4】靶机

然后这时候把原本新建虚拟机的硬盘移除

这里千万别忘了把网络适配器改为桥接模式

vulnhub靶场【kioptrix-4】靶机

这时候直接启动即可成功

vulnhub靶场【kioptrix-4】靶机

主机发现

使用arp-scan -lnetdiscover -r 192.168.1.1/24,因为这两款工具对于同一局域网,同一网段扫描极快,当然也可以使用nmap扫描,我这里因为设备过多,影响截图,所以采用上面两个

vulnhub靶场【kioptrix-4】靶机

信息收集

使用nmap扫描端口

vulnhub靶场【kioptrix-4】靶机

网站信息探测

访问80端口默认界面,发现是一个登录界面

vulnhub靶场【kioptrix-4】靶机

查看页面源代码,发现是form表单,并且是提交给checklogin.php处理的

vulnhub靶场【kioptrix-4】靶机

尝试进行网站目录爆破,借助gobuster、dirsearch、dirb等工具皆可

gobuster dir -u http://192.168.1.75 -w /usr/share/wordlists/dirb/big.txt -x php,zip,gz,tar,txt,md -b 403-404
vulnhub靶场【kioptrix-4】靶机

访问johnrobert都是跳转到index.php

dirsearch -u http://192.168.1.75 -x 404
vulnhub靶场【kioptrix-4】靶机

访问database.sql,发现是类似于日志一样,访问发现添加了一个用户和密码,但是登录网站并不能成功

vulnhub靶场【kioptrix-4】靶机

samba探测

之前扫描出的139445端口,服务为samba,那么尝试确定其版本

使用nmap脚本测试发现版本为3.0.28a,并且使用之前的脚本探测也是这个版本

nmap -sV 192.168.1.75 --script=smb-os-discovery
vulnhub靶场【kioptrix-4】靶机
vulnhub靶场【kioptrix-4】靶机

使用searchsploit搜索对应的版本漏洞,发现并无好用的,毕竟目的是获取shell

searchsploit samba 3.0.28a
vulnhub靶场【kioptrix-4】靶机

尝试使用enum4linux测试,发现几个用户

enum4linux 192.168.1.75 -a
vulnhub靶场【kioptrix-4】靶机

不过当测试ssh爆破时,发现长时间就出现超时,所以暂时搁置

漏洞寻找

根据前面收集的信息,暂无直接漏洞可用,那么开启burp或者yakit

尝试对网站进行抓取数据包进行测试,每一步都抓取数据包测试

但是这里不知道什么原因,这里原本的主机在开启burp后突然无法访问成功了,唉,估计是ip测试技术之类的吧,换一个机器测试,毕竟之前也没有抓取数据包,无法得知数据包情况

抓取登录时的数据包

vulnhub靶场【kioptrix-4】靶机

那么尝试在post请求体数据中修改,在username处发现闭合并未有任何效果

password处发现闭合,出现返回不一样的,这里是数据库的报错

vulnhub靶场【kioptrix-4】靶机

说明存在sql注入,那么尝试万能密码

myusername=john&mypassword=1234'+or+1=1--+&Submit=Login
vulnhub靶场【kioptrix-4】靶机

发现跳转,并且这个重定向有点东西,根据英语意思是否可以理解为登录成功,并在后面指定用户

跟随跳转,发现又跳转到用户界面

vulnhub靶场【kioptrix-4】靶机

再次跟随跳转发现直接登录成功

vulnhub靶场【kioptrix-4】靶机

查看浏览器的界面,并以密码登录,确实成功

vulnhub靶场【kioptrix-4】靶机

这里可以看到登录后,在url的构造是以username为参数指定用户名的,测试直接在url中修改username=robert,但是发现还是john的界面

继续通过抓包修改,也就是以robert登录时的数据包

然后与上面的形式一样进行万能密码测试,发现确实可行

「这里注意,抓取的数据包是重新抓取的新的,当然也是可以在其中一个跳转的数据包中修改,也就是在login_success.php?username=john这里修改用户名,也就是前面enum4linux中枚举出的用户名」

vulnhub靶场【kioptrix-4】靶机

继续以上面的形式测试loneferret,通过抓包修改的方式以及修改url参数的方式,获取到一个提示

「这里因为换了网络,所以这里靶机的ip地址和kali的地址都改变了」

靶机地址192.168.10.8kali地址192.168.10.6

vulnhub靶场【kioptrix-4】靶机

当前获取到的两个用户和密码

用户名
密码
john
MyNameIsJohn
robert
ADGAdsafdfwt4gadfga==

一般到这里就可以进行下一步的测试了,不过实际情况中,不知道是否还有遗漏

建议进行一次完整的sql注入,这里就不演示了,很简单的,不过大概率是盲注

所以尝试使用sqlmap进行测试,说不定有些东西

吧抓取的数据包复制,并放置在一个文件中即可,命名为data

vulnhub靶场【kioptrix-4】靶机

使用sqlmapsqlmap -r data --batch --dump

vulnhub靶场【kioptrix-4】靶机

bash逃逸

johnrobert对应的密码,都可以以ssh登录成功,只是这里应该是rbash,太多东西无法使用

vulnhub靶场【kioptrix-4】靶机

这里经过多次测试,发现大多都是无法使用的rbash逃逸,并且可用的命令很少

尝试使用echo写脚本等也是不行。最终无奈,百度一下wp,发现竟然是配合使用,就是这个命令echo os.system('/bin/bash')这个让我不理解。继续搜索,发现这个是lshell的一个漏洞,是针对python2的一个,下面是链接https://dev59.com/unix/LUHGoIgBc1ULPQZFOr8H

vulnhub靶场【kioptrix-4】靶机

靶机内网收集

使用find寻找具有SUID权限的文件

find / -perm -u=s -type f 2>/dev/null
find / -perm -4000 -print 2>/dev/null
vulnhub靶场【kioptrix-4】靶机

sudo,但是没有权限,进一步收集,之前在网站存在sql注入,可能与数据库有交互的,那么去网站目录寻找一下是否连接数据库,确实连接数据库,并且还是以root这个权限极高的用户,且无密码

vulnhub靶场【kioptrix-4】靶机

查看网络连接

ss -antlp
netstat -antlp
vulnhub靶场【kioptrix-4】靶机

查看进程,并发现mysql服务确实以root在运行的

ps aux | grep root
ps -ef | grep root
vulnhub靶场【kioptrix-4】靶机

内核版本信息以及系统信息

uname -a/-r
cat /etc/issue
cat /etc/*release
lsb_release
vulnhub靶场【kioptrix-4】靶机

尝试上传脚本pspy64以及les.sh,发现该靶机首先不能执行二进制文件,然后les.sh需要更高的bash版本才行,所以可能隐藏的一些内容,可能无法收集

提权

既然mysqlroot执行,并且也是指定root连接,密码也为空,就可能直接联想到udf提权,不过需要进一步验证

首先确定数据库版本信息,然后再次连接数据库,并查看安全配置

mysql -uroot -p

可以连接成功数据库

vulnhub靶场【kioptrix-4】靶机

这里我在前面的raven靶机提到过这个提权方式的,对于这个提权,如果secure_file_priv后没有具体值是,代表可能存在提权的。

并且这里的mysql版本信息,是因为当mysql>=5.1时,是必须把udf的动态链接库文件放置于mysql安装目录下的插件文件夹下,才能创建自定义函数,以提权。这里mysql版本是小于的,所以可直接使用

这里的提权方式可以使用默认的文件lib_mysqludf_sys.so,这个是可以执行系统命令的一个函数,根据情况,若是没有加载,需要使用create加载这个文件

或者也可以使用searchsploit搜索出的c文件中的函数进行提权,这里的文件可以自己编写,当然知道原理即可

vulnhub靶场【kioptrix-4】靶机

查看/bin/bash是否修改为SUID权限

vulnhub靶场【kioptrix-4】靶机

发现确实,并且可以直接输入/bin/bash -p提权至root

查看最终文件

vulnhub靶场【kioptrix-4】靶机

对于使用searchsploit搜索出的,直接进行复原即可,因为文件中有每一步的用法,这里就省略

或者可以看之前的靶机raven系列,那个是mysql版本>=5.0的。链接:https://mp.weixin.qq.com/s/M1MQcKTW738sx463Vo7pgg

总结

该靶机主要考察:

  1. 对于sql注入,要结合,不要只看固定的地方,这里是根据http协议,存在于post方式中,那么依次类推,是否可以存在请求头中呢,要去思考
  2. 对于rbash逃逸,也要考虑可能是版本问题,这里就是lshell的版本漏洞,导致执行python中的函数
  3. 对于mysqludf提权,要知道条件,不然就是盲目的去硬碰,这里知道UDF提权条件后,就可以根据版本来进行测试,当然可以自己写提权文件

最后加个广告测试一下

原文始发于微信公众号(泷羽sec-何生安全):vulnhub靶场【kioptrix-4】靶机

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月7日14:04:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   vulnhub靶场【kioptrix-4】靶机https://cn-sec.com/archives/3783316.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息