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

本文介绍了OpenSSH 7.7之前的用户名枚举漏洞,解释了如何通过特定响应判断服务器上是否存在特定用户名。提供了查看SSH版本的方法,并演示了一个Python脚本用于模拟检测漏洞。升级到最新SSH版本可以解决此问题,强调了及时升级和加固系统的重要性。
摘要由CSDN通过智能技术生成

前言

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

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

5055ad4d87524c50245bf0ea7e3fa0ad.png

漏洞说明

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,脚本如下图所示:

a12d9ba48b54350c6f1a4ef782471c4c.png
d623d608947ff78001ea063e42b0bc2f.png

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

语法:

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,喜欢本文的童鞋,可以关注我+收藏,不明白的地方也可以评论留言。

2e73d06c1bb22a19c918de45a0483b22.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值