openssh中包含scp命令,用于远程复制文件,其使用方式与openssh登录的方式是相同的。

ssh远程登录安装了openssh的linux系统

ssh  远程机器用户名@ip地址

scp远程复制文件

scp  本地文件 远程机器用户名@ip地址:'文件路径+文件名称'

之后都是输入用户密码完成操作。

漏洞发生于scp命令:后输入的文件路径中,在’'中加入``,这两个符号之中的文本会被远程主机在运行scp -t 时当作命令执行

例如:

scp  本地文件 远程机器用户名@ip地址:'`touch test.txt`'

会生成一个test.txt文件
也可以执行其他的命令,如shutdown、反向shell等。

这个问题比较鸡肋,需要知道ssh的主机密码,但是问题安全等级比较严重。

解决方法

  1. 通过rpm、yum安装的openssh
//查看运行的openssh相关程序
rpm -qa|grep openssh-*;
//移除包含scp命令的客户端
yum remove openssh-clients -y;
  1. 通过tar.gz压缩包安装的openssh
//执行以下命令,查找openssh 安装后附带的scp命令位置,找到后直接删除scp文件
find . -name  "scp"
  1. 最后的办法,停止sshd服务,但也就无法使用openssh远程了
//找到执行的openssh
ps -ef|grep sshd
//杀死对应的进程
kill -9 XXXX;

实现效果
在主机上运行scp命令,输出
-bash: scp: command not found

Logo

更多推荐