基于python实现弱密码检测工具
一、引用的python模块
Crypto:
Python中一个强大的加密模块,提供了许多常见的加密算法和工具。它建立在pyc.ypodome或pyc.ypto等底层加密库之上,为Python程序员提供了简单易用的API,使其可以轻松地实现各种加密功能。
commands:
commands 模块是 Python 的内置模块,它主要有三个函数:
FUNCTIONS
getoutput(cmd)
Return output (stdout or stderr) of executing cmd in a shell.getstatus(file)
Return output of "ls -ld <file>" in a string.getstatusoutput(cmd)
Return (status, 'output) of executing cmd in a shell.
SYS: 基础系统模块
sys模块是与python解释器交互的一个接口。sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分。
二、实现过程
python脚本如下:
import crypt import commands import sys def testPass(user,cryptPass,ipaddr): #dictfile=open('dictionary.txt','r') start_index=cryptPass.find("$") finish_index=cryptPass.rfind("$") salt=cryptPass[start_index:finish_index+1] dictfile=open('/root/dict.txt','r') pwd_suffix = ['','.','..','!','!@#','1','123','1234','12345','123456','888','666','999','2006','2007','2008','2009','2010','2011','2012','2013','2014','2015','2016','2017','2018','2019'] for sfx in pwd_suffix: #print user+sfx for separator in ['','@','#','&']: cryptWord=crypt.crypt('%s%s%s'%(user,separator,sfx),salt) if cryptWord==cryptPass: #print ipaddr + " [+] Found Password: " +user+'/'+user+sfx+ " \n" print '%s [+] Found Passwd: %s/%s%s%s \n'%(ipaddr,user,user,separator,sfx) break cryptWord=crypt.crypt('%s%s%s'%(user,sfx,separator),salt) if cryptWord==cryptPass: #print ipaddr + " [+] Found Password: " +user+'/'+user+sfx+ " \n" print '%s [+] Found Passwd: %s/%s%s%s \n'%(ipaddr,user,user,sfx,separator) break for word in dictfile.readlines(): #print word word=word.strip() cryptWord=crypt.crypt(word,salt) if cryptWord==cryptPass: print ipaddr + " [+] Found Password: " +user+'/'+word+ " \n" break print('[-] Password not found!') def main(): cmd = "ifconfig|grep \"inet addr\"|grep -v 127.0.0.1|awk '{print $2}'" ipaddr = commands.getoutput(cmd).replace('addr:','').replace('\n','|') shadowfile=open('/etc/shadow') for line in shadowfile.readlines(): user=line.split(':')[0] cryptPass=line.split(':')[1].strip('\n') if not (cryptPass.startswith('*') or cryptPass.startswith('!')): print "[*] Cracking Password For: " +user testPass(user,cryptPass,ipaddr) if __name__=='__main__': main()
注:破解密码有两种方式,一种是通过脚本pwd_suffix定义的后缀,另一种是调用密码字典库(/root/dict.txt)来破解。
三、演示效果
创建一个测试用户testuser,密码设置成123456,然后执行检测脚本。滴,弱密码已被发现!
到此这篇关于基于python实现弱密码检测工具的文章就介绍到这了,更多相关python弱密码检测内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
这篇文章主要介绍了Python结合ImageMagick实现多张图片合并为一个pdf文件的方法,结合实例形式分析了Python将图片文件转换为pdf文件的相关操作技巧,需要的朋友可以参考下2018-04-04Python functools冻结参数小技巧实现代码简洁优化
这篇文章主要为大家介绍了Python functools冻结参数小技巧实现代码简洁优化示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-12-12Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版
这篇文章主要介绍了Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12
最新评论