OpenSSH命令注入漏洞复现

本篇文章给大家分享的是有关OpenSSH命令注入漏洞复现,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

0x01 简介

OpenSSH是SSH(Secure SHell)协议的免费开源实现。OpenSSH是个SSH的软件,linux/unix都用openssh软件提供SSH服务。scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。

0x02 漏洞概述

该漏洞编号CVE-2020-15778。OpenSSH的8.3p1及之前版本中的scp允许在scp.c远程功能中注入命令,攻击者可利用该漏洞执行任意命令。目前绝大多数linux系统受影响。

0x03 影响版本

OpenSSH <= OpenSSH-8.3p1

0x04 环境搭建

未安装ssh,进行安装,安装命令如下:

已安装ssh:

使用ssh -V 查看版本信息,可以看到我这里使用的实验版本是Openssh_8.3p1。OpenSSH命令注入漏洞复现

0x05 漏洞复现

前提已知:

攻击机:192,168.152.130(kali)

目标机:192.168.152.133(centOs 7 64位)

需要知道目标ssh账号密码

1. 利用scp命令,用kali对centOs进行写文件,复制文件。

复制当前目录下的1.txt到目标的/tmp目录下,并且执行 touch /tmp/test.sh 的命令OpenSSH命令注入漏洞复现

OpenSSH命令注入漏洞复现

可以发现成功的将kali上面的文件传入到centOS上面也创建了text.txt文件,确认漏洞存在:OpenSSH命令注入漏洞复现

2. 执行命令:监听端口9999

命令:nc -lvvp 9999OpenSSH命令注入漏洞复现

3.再打开kali的一个窗口进行反弹shell,OpenSSH命令注入漏洞复现

OpenSSH命令注入漏洞复现

0x06 漏洞分析

在使用scp远程传输文件时,正常使用是这样的

scp SourceFile user@host:目录/TargetFile

在执行上面这条命令时会执行一个本地命令

scp -t 目录/TargetFile

对应源码如下:OpenSSH命令注入漏洞复现

源码地址:

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

由此可以看到对用户输入的目录没有做过滤,导致攻击者可以利用反引号(` `)可以执行一些shell命令。

反引号在linux中的作用:

反引号(`)这个字符所对应的键一般位于键盘的左上角,不要将其同单引号(')混淆。反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。如例程中的`date -d '-1 day' +%Y%m%d`就是把这条命令的结果赋给变量OPDATE。

0x07 修复方式

1、周期性的更换密码或密钥

2、使用rsync代替scp

以上就是OpenSSH命令注入漏洞复现,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/227547.html

(0)
上一篇 2022年1月10日
下一篇 2022年1月10日

相关推荐

发表回复

登录后才能评论