Vulnhub-DC1靶场

发布于:2022-11-29 ⋅ 阅读:(348) ⋅ 点赞:(0)

部署方法

1.下载镜像并解压。
2.打开虚拟机,将解压的.ova文件拖入虚拟机,如果导入过程出现不合规的提示不用管,按照提示点击重试就可以了。
3.配置网络,一般设置成和攻击机kali一样即可,这里我设置的是NAT模式。
4.打开虚拟机启动靶场。

下载DC-1_drupal镜像

下载地址:
https://pan.baidu.com/s/1LQosX5m-NYpPihKG9zAsng?pwd=chao
提取码:chao(我貌似开启了不用提取码领取,没开启的话提取码就这个)
靶机描述:
There are multiple ways of gaining root, however, I have included some flags which contain clues for beginners.
There are five flags in total, but the ultimate goal is to find and read the flag in root’s home directory. You don’t even need to be root to do this, however, you will require root privileges.
(有多种获取根的方法,但是,我包含了一些标志,为初学者提供了线索。
总共有五个标志,但最终目标是在根目录的主目录中查找和读取标志。您甚至不需要成为根用户就可以做到这一点,但是,您需要根权限。)
简单说就是它有五个flag,需逐个获取flag,最终获取root下的flag,获取flag的方法不唯一。

打靶过程

1.获取靶机的ip地址

虚拟机打开DC1靶机,用kali自带的arp-scan进行扫描,获取靶机ip地址。(不知道什么是arp-scan?
命令:arp-scan -l

在这里插入图片描述
如果你还是看不出哪个是靶机ip那就把靶机关闭,再次输入arp-scan -l,然后看前后有什么变化。

2.端口扫描

用nmap进行端口扫描,方便进一步利用(本人习惯扫描一部分端口,不扫描全端口,所以就用-p限制了范围)
nmap -sS -p0-2048 靶机ip
从扫描结果可以看到目标靶机开放了几个端口:
22:ssh服务,有可能存在弱密码爆破
80:存在web页面

在这里插入图片描述
我们上web页面看一下,打开浏览器,输入靶机ip:80访问页面如下

在这里插入图片描述
如果这里没能显示如上页面,这说明之前的配置可能有误。

3.开始渗透

既然页面是个登录页,那就浅浅地登录一下

在这里插入图片描述
登录失败提示为Sorry, unrecognized username or password. 故不存在遍历用户名的漏洞。接着再试试暴力破解。

在这里插入图片描述
暴力破解同样以失败告终,看来暴力突破是突破不了的,得另找一条路。
使用Wapplayzer插件查看该网页的构成。

在这里插入图片描述
可以看到这里内容管理系统(CMS)使用了Drupal 7.0,可能存在利用的价值,接下来我们就从这里入手。上网找找有没有适用于Drupal 7.0的漏洞。

在这里插入图片描述
可以看到Drupal是存在CVE-2018-7600漏洞的。路途明朗了,打开kali的msf,用search CVE-2018-7600搜索看看有没有对应的漏洞。

在这里插入图片描述
可以看到msf收录了相对应的漏洞,用use exploit/unix/webapp/drupal_drupalgeddon2使用该漏洞,并用show options来查看需要配置哪些配置(Required为yes就表示要攻击必须要设置该参数)。

在这里插入图片描述
在这里插入图片描述
set RHOSTS 靶机ip设置RHOST,然后exploitrun攻击,成功获得会话。

在这里插入图片描述
在这里插入图片描述
ls查看当前目录文件,就看到了我们本次渗透的第一站——flag1.txt

在这里插入图片描述
cat flag1.txt查看flag1.txt内容

在这里插入图片描述
(每一个好的CMS都需要一个配置文件,你也一样)
这句话的意思就是说要我们去配置文件看一看。Drupal7的配置文件路径为 /sites/default/settings.php,所以我们可以用cat ./sites/default/settings.php命令来查看它的配置文件。

在这里插入图片描述
哦豁,大发现!本次渗透的第二站flag2就已经出现了,并且还附赠了数据库用户名密码大礼包,看来只要登录了数据库并查看,这次渗透很快就可以结束!个屁啊~~~
输入shell后再输入myql -udbuser -pR0ck3t,得到的结果是看不见回显。

在这里插入图片描述
看不见回显,那就只能用python中的pty模块反弹一个完整的shell环境,命令:python -c 'import pty;pty.spawn("/bin/bash")'。然后再输入myql -udbuser -pR0ck3t便可以回显。

在这里插入图片描述
接着就是数据库的命令行模式基本操作了。
show databases;查看数据库

在这里插入图片描述use drupaldb切换数据库

在这里插入图片描述
show tables;查看表

在这里插入图片描述浏览一遍表名可以发现有个users表,一般是用于存放用户信息的,用select * from users;查看users表格信息

在这里插入图片描述
观察表格可以看到密码已经被加密过了,可能是某种哈希加密,将它丢到md5解密网站上进行暴力解密,未成功,那就只能另寻一条路。

在这里插入图片描述
我们知道数据库有个操作叫update(修改),所以只要我们能够找到加密函数或加密文件,将A密码加密,然后将加密后的密文替换至admin的密码处,这样我们就能用A密码来登录admin用户。
Drupal7的密码加密脚本文件为/scripts/password-hash.sh

首先我们进入到网站根目录/var/www,一定要在这个目录,不然会报错,怎么进参考前面的反弹shell那个步骤。
然后使用命令php scripts/password-hasn.sh 密码来获取加密后的hash密码。

在这里插入图片描述
接着使用加密后的密码修改数据表中admin的密码,命令:update users set pass="加密后的hash密码" where name ='admin';

在这里插入图片描述
修改成功后返回web页面,用我们的密码登录admin用户,登录成功。

在这里插入图片描述在这里插入图片描述
接着就是渗透日常胡乱点击,左点点,右点点,上点点,下点点最终在Dashboard中发现了本次渗透的第三站——flag3

在这里插入图片描述
点击查看,flag3说的是特权账号能够帮助我们找到密码,但是我们需要用-exec这个命令去shadow里找东西。

在这里插入图片描述
在这里,passwd和shadow是两个关键字,因为在Linux里passwd和shadow是两个文件,所以接下来我们的目标是去看一看passwd和shadow的内容。
返回shell,这个shell同样是要在网站根目录/var/www上运行的,用cat /etc/shadow命令查看shadow文件,结果为Permission denied(没有权限/拒绝访问)

在这里插入图片描述
别灰心,还有passwd文件,用cat /etx/passwd命令查看passwd,终于在passwd文件中找到了本次渗透的第四站——flag4

在这里插入图片描述
可以看到flag4的位置是在/home/flag4里,于是我们用cd /home/flag4进入flag4文件夹内,再用ls查看flag4文件夹里有什么文件,可以看到包含了一个flag4.txt,于是最后我们用cat flag4.txt来查看flag4的内容。

在这里插入图片描述
flag4内容:Can you use this same method to find or access the flag in root? Probably. But perhaps it’s not that easy. Or maybe it is?(您可以使用相同的方法在根目录中查找或访问标志吗?可能。但也许并没有那么容易。也许是这样?)

意思就是要我们在root中找flag,也许很不容易,也许很容易?来了,终极挑战来了,看看这略带挑衅的语句,作者一笑,生死难料。

那么按照提示,我们先看看root的位置。

在这里插入图片描述
发现在/root下,用cd /root来进入/root,毫不意外,权限不够,果然作者还是挺鸡贼的,所以我们最终的任务就是提权。

在这里插入图片描述
对于提权,我们首先借助msf的post/multi/recon/local_exploit_suggester模块来查看是否有提权方法。
先用background将会话挂起,然后use post/multi/recon/local_exploit_suggester使用该辅助模块,show options查看要设置哪些参数。

在这里插入图片描述
设置完毕后exploitrun开始攻击,从结果可看出查找失败。

在这里插入图片描述
因此我们不能借助工具的方式了,得通过手工的方式进行提权。
session -1命令回到会话。

sudo提权

由于我们当前用户并不是管理员用户,我们先用sudo -l看看我们能执行哪些命令,方便我们后续利用。遗憾的是,结果为command not found,并没有命令可供我们使用,sudo提权宣告失败。

在这里插入图片描述
在这里插入图片描述
suid提权

通过命令find / -perm -4000 2>/dev/null查看是否具有root权限的命令。

在这里插入图片描述
还记得flag4要我们用到-exec吗?我们从flag4至今都还未用到,于是使用命令find -exec /bin/sh \;提权

在这里插入图片描述
终于提权成功了,接下来就可以为所欲为了,之前的要求是进入/root目录,我们就用cd /root进入目录,然后用ls查看该目录下的文件,终于看到我们本次渗透的终点站——thefinalflag.txt,用cat thefinalflag.txt查看文件内容,本次渗透宣告结束。

在这里插入图片描述

心得体会

本人是一个刚步入渗透几个月的小白,很多渗透知识都还不是很熟悉,对一些步骤的表达能力还有些欠缺。本次渗透是跟着Freebuf的一篇文章一步一步进行渗透的,收获满满,虽然还有很多步骤只是知其然而不知其所以然,但这说明我还有很大的提升空间,今后会继续发表文章来提升自己的表达及渗透能力。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到