前言

当你有一台云主机,而你又开放了SSH端口,那么请一定要注意及时升级OpenSSH版本。不然有可能因为OpenSSH版本漏洞导致主机被入侵,从而造成你的数据泄露危险。

今天以一个小脚本,来跟大家分享下一个之前的安全漏洞问题,教你如何检测服务器的OpenSSH版本漏洞,希望大家喜欢。

漏洞说明

OpenSSH 7.7前存在一个用户名枚举漏洞,服务器在接收到畸形的认证请求包时,会根据用户名的存在与否给出不同的响应,由此导致通过SSH服务枚举服务器的用户名。

通过该漏洞,攻击者可以判断某个用户名是否存在于目标主机中。

具体版本影响范围:

OpenSSH >=2.3&&<=7.7

如何查看服务器SSH版本

在服务器上执行这个命令,就可以看到是不是在漏洞版本范围内。这里我拿了一台没有升级的服务器,来进行演示。

# ssh -VOpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

如何进行模拟检测是否有漏洞

这里以Python2.7版本为例,请注意不是Python3.X。

第一步:安装指定的第三方库版本

# pip install paramiko==2.0.8

第二步:编写一个脚本ssh_checkusername.py,脚本如下图所示:

第三步:按照脚本的语法进行执行

语法:

python ssh_checkusername.py ip username –port 22

假设我当前主机有一个用户名aiwm,不存在用户名aiwm1。

* 当我们尝试使用不存在的用户名来检测

# python test.py 10.3.3.6 --port 22022 aiwm1[*] Invalid username

从这里可以看到服务器是没有这个用户,所以报“Invalid username”无效的用户名。

* 当我们尝试使用存在的用户名来检测

# python test.py 10.3.3.6 --port 22022 aiwm[+] Valid username

从这里可以看到服务器是有这个用户,所以报“Valid username”存在这个用户名。

这时候我们可以分别看系统日志,可以看到攻击者的IP:10.3.21.12。

# tail -F /var/log/secureJul  6 09:09:03 centos6-dev6 sshd[10528]: error: buffer_get_ret: trying to get more bytes 1907 than in buffer 564Jul  6 09:09:03 centos6-dev6 sshd[10528]: error: buffer_get_string_ret: buffer_get failedJul  6 09:09:03 centos6-dev6 sshd[10528]: fatal: buffer_get_string: buffer errorJul  6 09:09:19 centos6-dev6 sshd[10530]: Invalid user aiwm1 from 10.3.21.12Jul  6 09:09:19 centos6-dev6 sshd[10531]: input_userauth_request: invalid user aiwm1Jul  6 09:09:19 centos6-dev6 sshd[10531]: Connection closed by 10.3.21.12Jul  6 09:18:14 centos6-dev6 sshd[11721]: Accepted password for aiwm from 10.3.21.12 port 50794 ssh2Jul  6 09:18:14 centos6-dev6 sshd[11721]: pam_unix(sshd:session): session opened for user aiwm by (uid=0)Jul  6 09:18:14 centos6-dev6 su: pam_unix(su-l:session): session opened for user root by aiwm(uid=503)

升级SSH版本后问题解决

升级前的效果是:

  • 如果服务器存在的用户,则脚本会返回Valid username。
  • 如果服务器不存在的用户,则脚本会返回Invalid username。

如果升级ssh版本之后,不管存不存在都会返回Valid username。

  • 如果服务器存在的用户,则脚本会返回Valid username。
  • 如果服务器不存在的用户,则脚本会返回Valid username。

总结

对于一些基础的入口,我们要不断升级我们的版本,以免被渗透,及时加固,才是王道。

希望这篇文章可以让你们有更加安全的意识。


我是testerzhang,喜欢本文的童鞋,可以关注我+收藏,不明白的地方也可以评论留言。

用户名_网络安全与防御-OpenSSH用户名枚举及其检测方法相关推荐

  1. mysql隐藏用户名_系统默认的MySQL用户名消失的解决方法(修正版)

    修改MySQL下的默认mysql数据库的user表,删除所有host为localhost记录,另 外添加一些其他记录,重新启动MySQL服务器.执行show databases,只出现informat ...

  2. z怎么查看mysql的用户名_怎么查看mysql的用户名和密码

    假若你一直在安裝全过程中沒有设定登陆名登陆密码得话,你可以用root登陆名与账号登陆密尺码数据库查寻:登陆名:root 登陆密码为空.假如设定过登陆密码忘记了,那不有脸,不可以查寻无线网络互连接网络登 ...

  3. linux mysql修改登录用户名_修改linux的mysql用户名和密码

    MySQL数据库密码忘记之后,可以进入linux下修改原始密码,步骤为下. 第一步:登陆服务器管理员权限. 第二步:进入MySQL数据配置文件 [root@VM_0_8_centos ~]# vi / ...

  4. java 设置两个方法互斥_分享两个操作Java枚举的实用方法

    1. 前言 Java枚举在开发中是非常实用的.今天再来分析几个小技巧并且回答一些同学的的疑问.首先要说明的是我的枚举建立在以下的范式之中: 枚举统一接口范式 2. 如何把枚举值绑定的下拉列表 这种场景 ...

  5. 目标立体检测 红外图像_一种有效的红外小目标检测方法

    [3]CHEN Bing-wen, WANG Wen-wei, QIN Qian-qing. Infrared dim target detection based on fuzzy-ART neur ...

  6. 普中51控制火焰传感器_汽车爆震传感器的工作原理及的检测方法、处理

    汽车爆震传感器的工作原理及的检测方法.处理 黄永刚 1 爆震传感器的工作原理 按照结构的不同,可以将汽车爆震传感器分为压电式非共振型爆震传感器.压电式共振型爆震传感器和压电式火花塞座金属垫型爆震传感器 ...

  7. 溢出检测单符号位法_电工知识:继电器的识别与检测方法图解

    继电器的识别与检测方法图解 [1] 继电器是一种常用的控制器件,它可以用较小的电流来控制较大的电流,用低电压来控制高电压,用直流电来控制交流电等,并且可实现控制电路与被控电路之间的隔离,在自动控制.遥 ...

  8. aep内存用法_一种AEP内存接口的压力检测方法及系统与流程

    本发明属于内存接口检测领域,具体涉及一种AEP内存接口的压力检测方法及系统. 背景技术: AEP内存简称Apache Pass DIMMs,为高性能和灵活性而设计的,The Intel® Optane ...

  9. code epi 光场_基于EPI的光场图像特征点检测方法与流程

    本发明属于计算机视觉技术领域,涉及一种基于epi的光场图像特征点检测方法. 背景技术: 光场成像技术是计算机视觉领域的热点研究方向,光场是一个研究的热点领域,简而言之,光场是一束光在传播过程中,所包含 ...

  10. bootstrap signin将邮件改成用户名_[源码和文档分享]基于VC++和Oracle数据库的邮件管理系统的设计与实现...

    摘 要 电子邮件的使用简易,投递迅速,收费低廉,易于保存,全球畅通无阻,使得电子邮件被广泛地应用,当前流行的各大邮件系统除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功 ...

最新文章

  1. 谷歌把安全融入主机芯片
  2. 事件冒泡和捕获的执行顺序
  3. 如何在Linux下统计高速网络中的流量
  4. 安装 | R2021a链接及Matlab运行图
  5. struts2,实现Ajax异步通信
  6. 这就是数据分析之Pandas与数据清洗
  7. python语言名片管理系统,进行增删改查
  8. 3 Django视图层
  9. Qt Q_ENUM使用 枚举字符串互转
  10. 计算机操作系统(第二版)庞丽萍 杨富民 第一章 绪论课后答案
  11. linux dhcpv6 客户端,Linux(RedHat6.4)下配置radvd和dhcpv6
  12. 查看IP访问服务器日志的次数
  13. Word页码从正文开始-请务必文档格式要规范,这在你未来的工作中的细节是很重要的
  14. oracle同一个库不同用户,oracle同一个库上面,不同用户相互赋予权限
  15. AD19学习笔记之元器件的绘制
  16. EMV技术学习和研究(二)应用选择
  17. matlab构造传递函数
  18. 任正非:我们最需要一本厚厚的中国护照
  19. Google I / O 2016后果
  20. 前端优化之回流(Reflow)与重绘(Repaint)

热门文章

  1. std::thread的常用参数传递总结
  2. 原 python下DataFrame, Series, ndarray, list, dict, tuple的相互转换
  3. 论文阅读笔记(五)——FD-MOBILENET
  4. a=a++问题引发的思考
  5. HTML5 FileAPI读取实例---(一)
  6. VBA读取固定文件夹中txt内容
  7. 控制方法只有相应权限才可执行
  8. C++/CLI的简单介绍。from维基百科们,http://zh.wikipedia.org/zh-cn/C%2B%2B/CLI
  9. EF Code First 中使用Jarek Kowalski's Provider的方法1
  10. 【颜色空间】CLElab颜色空间