预备知识
漏洞描述
OpenSSH8.3p1及之前版本中scp的scp.c文件存在操作系统命令注入漏洞。该漏洞即使在禁用ssh登录的情况下,但是允许使用scp传文件,而且远程服务器允许使用反引号(`)。攻击者可利用scp复制文件到远程服务器时,执行带有payload的scp命令,从而在后续利用中getshell。
OpenSSH简介
OpenSSH是 SSH(Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制,或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、rcpftp、rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。
scp命令简介
scp 是安全拷贝协议(Secure Copy Protocol)的缩写,和众多Linux/Unix 使用者所熟知的拷贝(cp)命令一样。scp的使用方式类似于cp 命令,cp命令将一个文件或文件夹从本地操作系统的一个位置(源)拷贝到目标位置(目的),而scp用来将文件或文件夹从网络上的一个主机拷贝到另一个主机当中去。
scp一些基本参数如下:
-B 采取批量模式(避免询问密码或口令)
-C 启用压缩,通过指明-C参数来开启压缩模式。
-c 加密方式,选择在传输过程中用来加密的加密方式 这个选项会被直接传递到ssh。
-F ssh配置,给ssh指定一个用来替代默