当我们拿到一个服务器的shell之后,肯定需要维持好我们的权限,这里我们需要留个后门方便我们进出。这里我们不讨论提权的问题,前提我们通过各种方式提权到root,拿到root之后才是我们留后门的开始。做了个openssh的后门,也就是root双密码,管理一个密码、我们的后门一个密码,不影响管理的那个密码。
这里我们讨论两个Linux,实验环境为Centos 7和Ubuntu 16.0.4
0x01 查看版本
|
|
Centos 7.0
Ubuntu 16.0.4
有必要的话需要对原ssh配置文件进行备份,可以对后期的文件时间进行修改:
0x02 下载SSH配置文件
openssh-5.9p1.tar.gz
openssh-5.9p1.patch.tar.gz
使用wget进行远程下载,如果没有安装wget,可以安装可以直接下载openssh源码,也可以使用菜刀大马等上传上去。
0x03 编辑安装
Centos 7
可能遇到的问题patch未安装
Ubuntu 16.0.4
编辑安装Centos 7和Ubuntu 16.0.4过程一样,就不过多介绍了。
0x04 修改后门密码和文件记录
|
|
可以对后门密码和记录文件进行修改,在文件前面加上.相当于是隐藏文件,也可以换个隐蔽的目录。修改之后的
可以根据我们刚才的查看的版本信息进行修改,使其版本一致不易被管理员发现和察觉。
0x05 编译安装
Centos 7
首先对ssh里面的几个key的权限进行修改,否则可能进行编译的时候key不能修改而报错。
安装环境编译运行
可以看到我们已经编译成功,我们的OpenSSH后门已经设置成功。使用我们的后门密码可以正常登陆,以前的密码也有记录,实验成功。
Ubuntu 16.04
安装环境编译运行
可以看到我们已经编译成功,我们的OpenSSH后门已经设置成功。使用我们的后门密码可以正常登陆,以前的密码也有记录,实验成功。
0x06 系统优化
恢复新配置文件的日期跟旧文件日期一致对ssh_config和sshd_config新旧文件进行内容对比,使其配置文件一致,然后在修改文件日期。
清除操作日志
0x07 修复方案与应急响应
1)重装openssh软件
2)SSH禁止对外开放
应急响应:
1)比对ssh的版本
ssh -V
2)查看ssh配置文件和/usr/sbin/sshd的时间
stat /usr/sbin/sshd
3)strings检查/usr/sbin/sshd,看是否有邮箱信息
strings可以查看二进制文件中的字符串,在应急响应中是十分有用的。有些sshd后门会通过邮件发送登录信息,通过strings /usr/sbin/sshd可以查看到邮箱信息。
4)通过strace监控sshd进程读写文件的操作
一般的sshd后门都会将账户密码记录到文件,可以通过strace进程跟踪到ssh登录密码文件。