Vulnhub靶场练习 DC-1

前言

本文作者是新手,全程跟着Vulnhub DC-1靶机渗透学习和Vulnhub靶机DC_1渗透两位大佬的教程,照猫画虎,最终也算是完成DC-1的通关。在这个过程中学到了很多东西,所以记录下来。

正文

环境部分:本文全程使用Vmware Wrokstation pro,所下载的DC-1(下载地址)为镜像。攻击机和靶机的网络配置均为默认NAT模式。最终效果如下图。

Vulnhub靶场练习 DC-1_第1张图片

真正的正文:同时打开kali和DC-1,在kali终端中输入arp-scan -l,然后出现

Vulnhub靶场练习 DC-1_第2张图片

 通过不断尝试,可以发现,上图中的192.168.79.134为我们的目标。浏览器输入ip打开192.168.79.134。

Vulnhub靶场练习 DC-1_第3张图片

通过所安装的浏览器插件wappalyzer,可以知道该网站使用的内容管理系统(CMS)是drupal。

之后在kali终端依次输入msfconsole、search drupal。

Vulnhub靶场练习 DC-1_第4张图片

然后输入use drupal_drupalgeddon2(当然使用use+相应模块的序号也可以)。

之后set RHOSTS 192.168.79.134。exploit。

Vulnhub靶场练习 DC-1_第5张图片

当显示meterpreter >时, 说明进入成功。输入shell,ls,查看当前目录文件。

Vulnhub靶场练习 DC-1_第6张图片

可以发现,有flag1.txt,我们打开看一下,cat flag1.txt

翻译可知,每个好的cms都需要一个配置文件,你也一样。提示我们要找到cms配置文件。

然后,cd sites/default,cat settings.php。

Vulnhub靶场练习 DC-1_第7张图片

得到数据库账号和密码:dbuser R0ck3t 

接下来进入 /etc/passwd。注意这里/etc是在总目录下的,而目前我们在某个不知名的子目录中,需要回到最上级,也就是总目录下面。使用cd .. 回到上一级,然后一步一步移到/etc中。在/etc目录下,cat passwd

Vulnhub靶场练习 DC-1_第8张图片

发现了账号flag4。尝试用hydra+john暴力破解。(这里的kali终端不要关闭,之后会用到) 重新打开一个kali终端,输入如下代码:

hydra -l flag4 -P /usr/share/john/password.lst ssh://192.168.79.134

注意,这里的hydra 是kali自带的,而john需要下载(终端输入apt-get install john)。在john下载后,其所在的目录里会生成password.ls密码字典,我们使用的就是这个字典进行爆破。此处的/usr/share/john/password.lst是我所下载john的文件路径,注意更换成你所下载的john所在的路径。在寻找john路径时,应学会使用find语句。

在输入代码块后,显示:

Vulnhub靶场练习 DC-1_第9张图片

可以发现,密码为orange(乐ing)。

再在kali终端远程登陆DC-1,输入ssh [email protected],输入密码

Vulnhub靶场练习 DC-1_第10张图片 显示我们已经登陆了进去。

然后登陆mysql,依次输入mysql -u dbuser -pshow databases;、use drupaldb;、show tables;、select * from users;五条代码,每条代码输入完都应换行。第一条代码实现mysql的登陆,这里dbuser为之前得到的数据库账号,同时会提示输入密码,输入之前得到的R0ck3t即可。第二条代码为显示数据库,第三条代码为使用被命名为drupaldb数据库,第四条代码为显示表,第五条代码为查看users。(这里的代码都是mysql基本命令)

Vulnhub靶场练习 DC-1_第11张图片

Vulnhub靶场练习 DC-1_第12张图片

下面,我们修改uid=1,name=admin的管理员用户密码进行修改。因为如果想要得到最高权限,就必须得到admin(管理员)密码。而如果想修改管理员密码,必需知道密码的加密法则。要想知道密码的加密法则,就得找到scripts目录。

紧接着,我们在之前没关闭的kali终端中,按住Ctrl+C,输入y,退出meterpreter。之后输入shell,再次进入(这里再次进入主要是为了方便找到scripts目录) 。进入后直接输入cd scripts,ls

Vulnhub靶场练习 DC-1_第13张图片

发现password-hash.sh密码加密脚本。输入cd .../scripts/password-hash.sh 123456,可以得到123456经加密后的值。事实上,这里使用的哈希加密算法。

Vulnhub靶场练习 DC-1_第14张图片

我们复制123456经过哈希加密后的值。

回到之前mysql所在的kali终端。首先保证是在use drupaldb之后,然后输入如下代码:

update users set pass='$S$DuCz5h51tL8F/fV0VAgjCpUpwgV27PyimMSucvknQKmP5JH1o9GP' where name='admin';

这里是代码大意时改变users表中name=admin用户的pass值(upgrade set命令)。显示如图

若有OK字样,则说明管理员账号admin的密码pass修改成功。 

这时,我们可以使用 admin 123456登陆之前的网站192.168.79.134。

Vulnhub靶场练习 DC-1_第15张图片

 Vulnhub靶场练习 DC-1_第16张图片

 登陆成功。点进content界面,发现flag3

Vulnhub靶场练习 DC-1_第17张图片

翻译可知, 特殊的PERMS将会帮助FIND密码,但是你需要 -exec来……根据大佬的看法,这应该想让我们提权(参考)。提权,顾名思义就是通过一些手段获得更高一级的权限,即通过各种漏洞以普通用户的身份得到网站系统的最高权限。我们目前使用的是flag4的账号登陆系统(如何判断:输入whoami命令,系统输出的为当前用户账号),而通过提权操作我们可以成为root用户(拥有最高权限)。

在当前的kali 终端中,我们需要先退出mysql系统。然后输入find / -perm -u=s -type f 2>/dev/null

显示所有具有root权限的SUID的文件。

Vulnhub靶场练习 DC-1_第18张图片

发现/usr/bin/find拥有root权限。所以我们可以通过使用特定的find命令来提权。在tmp目录下新建abcd文件,然后在/tmp目录下使用find ./ abcd -exec '/bin/sh' \; 命令,可以将目前的flag4用户提升为root用户,获得最高级权限。这时输入whoami,系统会输出root。Vulnhub靶场练习 DC-1_第19张图片

更换成功。输入命令时的前缀flag4@DC-1改成了#也说明我们已经成功更换成了root用户(这可能和kali的版本有关)。这下总算可以进入总目录下的root目录了。(用flag4账号登陆时是无法进入root目录的),然后cat thefinalflag.txt

Vulnhub靶场练习 DC-1_第20张图片

 Well done!!!!大功告成。

总结

由于是第一次做Vulnhub靶场的练习,总的来说进展不是很顺利,但能学到很多东西,见到了很多大佬写的文章,也不失为一种趣事。

你可能感兴趣的:(linux,经验分享)