介绍
在虚拟机中进行连接
1 | sudo openvpn 名称.ovpn |
出现 Initialization Sequence Completed 代表连接成功

连接
参考:
主要参考——Hackthebox - Precious(Easy) - YouTube
PreciousHTB | Hack The Box Precious| PreciousWriteUp | Hack The Box - YouTube
Precious是 Hack the Box 上的一台简单机器,它托管了一个使用易受攻击的 pdfkit 版本的网站。使用此版本的 pdf kit 和 CVE-2022–25765,我们能够以 ruby 用户的身份获得计算机的反向 shell。然后,我们从配置文件中收集一些信息,以将我们的权限提升给其他用户。一旦我们成为用户 henry,我们就通过 YAML 反序列化使用远程代码执行将我们的权限提升给根用户。
地址:https://app.hackthebox.com/machines/513
1 | 10.10.11.189 |

常规探测
1 | # nmap 全端口扫描,发现开放了 22 和 80 端口,分别是 ssh 和 http 协议 |

网站能够输入一个 URL,它会将网页转换为 pdf
1 | exiftool iza6l21cttk715syc00tn5uzd4t4hgqz.pdf |

Google 直接搜索 pdfkit v0.8.6 vuln、pdfkit v0.8.6 exploit(意思就是搜索和 pdfkit v0.8.6 相关的漏洞 )
Command Injection in pdfkit | CVE-2022-25765 | Snyk
==找到了 PoC,把要执行的命令放在``中==
反弹 shell


1 | # 需要设置一个侦听器,以便在获得反向 shell 后与机器进行交互。 |
1 | # 构造一个 payload |

输入whoami,将会显示rudy


提权
1 | # ssh 登录 |

现在可以访问用户 henry,试一下可以用 root 权限运行吗,利用sudo -l
1 | -bash-5.1$ sudo -l |
通过 YAML 远程执行代码的文章,发现可以通过 dependencies.yml 文件使用远程代码注入,该文件将由 /opt/update_dependencies.rb 运行
根据 sudo -l 命令的返回结果
这说明你的目标机器上的用户 henry 可以使用 sudo 命令来以 root 权限运行以下命令,而不需要输入密码:
1 /usr/bin/ruby /opt/update_dependencies.rb复制
这可能是一个提权的机会,如果你可以控制或者修改
/opt/update_dependencies.rb这个文件,或者利用 ruby 的特性来执行任意命令。你可以尝试以下方法:
1 | cat /opt/update_dependencies.rbcat |
使用 nano 编辑器
- 在 nano 编辑器中,按下
Ctrl+O组合键,这会提示你输入要保存的文件名。如果你不想改变文件名,直接按下Enter键即可。- 如果你想要退出 nano 编辑器,按下
Ctrl+X组合键,这会提示你是否要保存修改。如果你想要保存,按下Y键,然后按下Enter键。如果你不想要保存,按下N键。
1 | # 将 /tmp/1 添加到 PATH,您可以使系统能够在该目录中查找并执行命令。 |
Google 搜索:file yml rce
https://staaldraad.github.io/post/2019-03-02-universal-rce-ruby-yaml-load/
https://gist.github.com/staaldraad/89dffe369e1454eedd3306edc8a7e56
1 | --- |
1 | # 执行我们的命令 |



