用户名_网络安全与防御-OpenSSH用户名枚举及其检测方法
前言
当你有一台云主机,而你又开放了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用户名枚举及其检测方法相关推荐
- mysql隐藏用户名_系统默认的MySQL用户名消失的解决方法(修正版)
修改MySQL下的默认mysql数据库的user表,删除所有host为localhost记录,另 外添加一些其他记录,重新启动MySQL服务器.执行show databases,只出现informat ...
- z怎么查看mysql的用户名_怎么查看mysql的用户名和密码
假若你一直在安裝全过程中沒有设定登陆名登陆密码得话,你可以用root登陆名与账号登陆密尺码数据库查寻:登陆名:root 登陆密码为空.假如设定过登陆密码忘记了,那不有脸,不可以查寻无线网络互连接网络登 ...
- linux mysql修改登录用户名_修改linux的mysql用户名和密码
MySQL数据库密码忘记之后,可以进入linux下修改原始密码,步骤为下. 第一步:登陆服务器管理员权限. 第二步:进入MySQL数据配置文件 [root@VM_0_8_centos ~]# vi / ...
- java 设置两个方法互斥_分享两个操作Java枚举的实用方法
1. 前言 Java枚举在开发中是非常实用的.今天再来分析几个小技巧并且回答一些同学的的疑问.首先要说明的是我的枚举建立在以下的范式之中: 枚举统一接口范式 2. 如何把枚举值绑定的下拉列表 这种场景 ...
- 目标立体检测 红外图像_一种有效的红外小目标检测方法
[3]CHEN Bing-wen, WANG Wen-wei, QIN Qian-qing. Infrared dim target detection based on fuzzy-ART neur ...
- 普中51控制火焰传感器_汽车爆震传感器的工作原理及的检测方法、处理
汽车爆震传感器的工作原理及的检测方法.处理 黄永刚 1 爆震传感器的工作原理 按照结构的不同,可以将汽车爆震传感器分为压电式非共振型爆震传感器.压电式共振型爆震传感器和压电式火花塞座金属垫型爆震传感器 ...
- 溢出检测单符号位法_电工知识:继电器的识别与检测方法图解
继电器的识别与检测方法图解 [1] 继电器是一种常用的控制器件,它可以用较小的电流来控制较大的电流,用低电压来控制高电压,用直流电来控制交流电等,并且可实现控制电路与被控电路之间的隔离,在自动控制.遥 ...
- aep内存用法_一种AEP内存接口的压力检测方法及系统与流程
本发明属于内存接口检测领域,具体涉及一种AEP内存接口的压力检测方法及系统. 背景技术: AEP内存简称Apache Pass DIMMs,为高性能和灵活性而设计的,The Intel® Optane ...
- code epi 光场_基于EPI的光场图像特征点检测方法与流程
本发明属于计算机视觉技术领域,涉及一种基于epi的光场图像特征点检测方法. 背景技术: 光场成像技术是计算机视觉领域的热点研究方向,光场是一个研究的热点领域,简而言之,光场是一束光在传播过程中,所包含 ...
- bootstrap signin将邮件改成用户名_[源码和文档分享]基于VC++和Oracle数据库的邮件管理系统的设计与实现...
摘 要 电子邮件的使用简易,投递迅速,收费低廉,易于保存,全球畅通无阻,使得电子邮件被广泛地应用,当前流行的各大邮件系统除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功 ...
最新文章
- 谷歌把安全融入主机芯片
- 事件冒泡和捕获的执行顺序
- 如何在Linux下统计高速网络中的流量
- 安装 | R2021a链接及Matlab运行图
- struts2,实现Ajax异步通信
- 这就是数据分析之Pandas与数据清洗
- python语言名片管理系统,进行增删改查
- 3 Django视图层
- Qt Q_ENUM使用 枚举字符串互转
- 计算机操作系统(第二版)庞丽萍 杨富民 第一章	绪论课后答案
- linux dhcpv6 客户端,Linux(RedHat6.4)下配置radvd和dhcpv6
- 查看IP访问服务器日志的次数
- Word页码从正文开始-请务必文档格式要规范,这在你未来的工作中的细节是很重要的
- oracle同一个库不同用户,oracle同一个库上面,不同用户相互赋予权限
- AD19学习笔记之元器件的绘制
- EMV技术学习和研究(二)应用选择
- matlab构造传递函数
- 任正非:我们最需要一本厚厚的中国护照
- Google I / O 2016后果
- 前端优化之回流(Reflow)与重绘(Repaint)
热门文章
- std::thread的常用参数传递总结
- 原 python下DataFrame, Series, ndarray, list, dict, tuple的相互转换
- 论文阅读笔记(五)——FD-MOBILENET
- a=a++问题引发的思考
- HTML5 FileAPI读取实例---(一)
- VBA读取固定文件夹中txt内容
- 控制方法只有相应权限才可执行
- C++/CLI的简单介绍。from维基百科们,http://zh.wikipedia.org/zh-cn/C%2B%2B/CLI
- EF Code First 中使用Jarek Kowalski's Provider的方法1
- 【颜色空间】CLElab颜色空间