首页
社区
课程
招聘
[分享]萌新教程丨VulnHubDC系列之DC1靶机渗透测试
发表于: 2020-4-23 16:45 1691

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

2020-4-23 16:45
1691

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


靶机配置及说明

靶机下载地址:

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!


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
......... To the next day. 
2020-4-23 17:26
0
雪    币: 300
活跃值: (2532)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
mark
2020-4-23 20:56
0
雪    币: 2747
活跃值: (1697)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
2020-4-30 09:42
0
游客
登录 | 注册 方可回帖
返回
//