萌新教程丨VulnHubDC系列之DC1靶机渗透测试

Vulnhub是一个提供各种漏洞的靶机网站,特别适合萌新进行渗透测试演练。接下来笔者将通过图文结合的方式对于Vulnhub的DC系列九个靶机做出详解,不仅要完成靶机作者所布置的任务,还会发散思路用不同的方法寻求突破!

 

注:今天的文章是 i 春秋论坛作者小鲜略略略表哥发布的文章,公众号旨在为大家提供更多的学习方法与技能技巧,文章仅供学习参考。

 

靶机配置及说明

靶机下载地址:

https://www.vulnhub.com/entry/dc-1,292/

靶机:DC1 (VirtualBox) IP:192.168.1.13

攻击机:Kali(VMware ) IP:192.168.1.10

特别说明:每个靶机作者都对靶机做了详细的描述以及攻击目标,比如DC1就需要找到5个flag,最终目标是在root的主目录中找到并读取该标志!

 

通过每个flag所获得知识点

1、msf的熟练使用以及搜索可利用漏洞(Drupal);

2、留意目标网站的配置文件(慢慢查看别错过重要信息);

3、数据库管理员提权(更新管理员密码或者添加一个新用户);

4、suid提权的命令(nmap、vim、find、bash、more、less、nano、cp)。

 

进入正文

开始之前让我们先来看看靶机与攻击机的配置,两者均是桥接模式(建议靶机和kali都保存快照,以便不时之需)。

靶机配置

 

 靶机正常运行

 

 kali配置

 

下面我们一步一步来,首先查看Kali的ip得到192.168.1.10。

 

nmap探路,查看靶机IP得到192.168.1.13。

 

继续nmap嗅探其他相关靶机其余信息,发现开放22/80。

 

那我们就先访问80端口Web界面,通过插件看到CMS是Drupal 7。

 

那我们继续查看robots.txt,看看是否有利用的信息:

 

我们并没有得到有用的信息,只是找到了几个没啥用的页面,那我们继续扫描一下目录。

 

扫描依旧也没有什么结果,那我们换个思路,利用msf寻找一下是否有可用的漏洞。

 

这里我们可以依次利用一下,看看哪个模块可以成功来利用,我使用第四个Drupalgeddon2漏洞(CVE-2018-7600)。

Drupal系统没有对表单API接口的AJAX请求输入进行充分的检查,这就使得攻击者能够向内部表单结构中注入一个恶意的载荷,将导致Drupal系统在未进行用户认证的情况下执行这个载荷。通过利用这个漏洞,一个攻击者能够接管任何Drupal系统用户的整个站点。

 

这里我们只需要设置靶机的IP就可以执行exploit。

 

我们可以看到打开session连接到靶机,接下来我们继续反弹一个交互的shell。

 

我们可以看到自己当前的权限以及所在路径,那我们ls查看一下其他文件。

 

我们顺利拿到第一个flag,同时也拿到了提示信息(寻找配置信息百度即可知道默认配置信息位置),这里最好用more查看不至于落掉重要信息。

 

我们顺利拿到了数据库的一些关键信息(数据库名、登录名、密码),那我们顺着线索继续登录数据库。

 

继续查看数据库信息,寻找关键线索flag3

 

 

到此,我们看到了flag3到底在哪里了(uid为1的用户是不受Drupal权限管制的,具有最高权限。)现在我们有两个思路:

 

  • 我们重置管理员的密码

使用Drupal对数据库的加密方法,加密脚本位置在网站根目录下的scripts下,使用加密脚本加密新密码666666,生成加密密文,然后登录系统查看flag3。

 

得到666666的hash值,接下来我们需要重置管理员的密码为666666,还是得进入数据库直接更新密码。

 

那我们用admin 666666尝试登录查看flag3:

 

我们在content查找到flag3。

 

 

  • 添加一个管理员权限的用户

这里需要我们查看一下靶机的版本,然后看一下有没有适用的脚本去添加用户,首先我们查看一下靶机版本:

 

得到版本号为7.24,继续搜索Druapl可利用的脚本。

 

我们发现只要小于7.31即可利用:

 

那我们使用user user 尝试登录:

 

成功登录,同样查看flag3信息。

 

到此,我们成功利用两种不同思路得到了flag3的信息,得到几个关键线索。

(FIND the passwd、need to -exec that command、in the shadow),那我们就按照线索提示寻找这个密码。

 

很明显flag4在/home/flag4目录下:

 

顺利得到flag4,同时根据提示(你可以用相同的方法在root目录下)找到最终flag。

 

思路1:根据提示,想到suid提权。

那么我们查找一下具有root权限的其他命令,以下几条均可查询:

find / -user root -perm -4000 -print 2>/dev/null

find / -perm -u=s -type f 2>/dev/null

find / -user root -perm -4000 -exec ls -ldb { }

 

发现find命令本身就是root权限,那我们查看一下:

 

那我们利用find提权。

 

思路2:既然所有通过find执行的命令都是root权限,那我们利用netcat,可以将它提权为root 权限,首先我们创建一个文件。

 

继续利用find将netcat提权为root权限。

 

同样的也获得最终flag!

posted @ 2020-04-22 16:03  i春秋  阅读(2997)  评论(0编辑  收藏  举报