如何利用神经网络和Python生成指定模式的密码
2018-01-15 00:00
826 查看
今天给大家介绍的是Github上一个名叫PyMLProjects的项目,这个项目的目的是为了训练AI来学习人类构造密码的模式,然后我们就可以用AI来生成大量同一模式或种类的密码了。这种方法也许可以用来生成暴力破解攻击中需要使用的攻击字典,因为人们为了方便记忆,通常都会采用某种密码“模式”来设计自己的密码。一些经验丰富的渗透测试人员可能都知道,很多类似银行或政府之类的大型组织他们所使用的默认密码或重置密码都采用的是一种旧的密码方案。为了更加贴近实际情况地去评估目前这种问题的严重性,为了更好地模拟出攻击者所能做到的事情,这个项目将开发一个由自动化AI驱动的工具,并尝试模拟这样的密码攻击。它将允许你将一个很小的密码样本转变成一个无限长度的密码。
项目主页
PyMLProjectsREADME.md如何使用这个项目包括以下两个脚本:1. learn_passwords.py:该脚本可以用一套密码来训练神经网络,并生成权值;2. generate_passwords.py:该脚本可以根据训练集生成的权值来计算并生成密码;训练神经网络
为了开发出一个能够基于样本生成密码的AI,最简单的方法就是给learn_passwords.py脚本提供密码列表,操作代码如下:$>./learn_passwords.py
UsingTensorFlow backend.
Usage:./learn_passwords.py [password list]
$>./learn_passwords.pypasswords_random_medium.txt
UsingTensorFlow backend.
['\n',' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+',',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';','<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c','d', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's','t', 'u', 'v', 'w', 'x', 'y', 'z', '{', '}', '~', '\x82', '\x84', '\x85','\x88', '\x91', '\x95', '\x96', '\xa0', '\xa1', '\xa3', '\xac', '\xb0', '\xb2','\xb4', '\xb6', '\xb8', '\xb9', '\xbc', '\xc2', '\xc3', '\xe0', '\xe1', '\xe2']
[*]Total Characters: 244242
[*]Total Vocab: 92运行了上述代码之后,将生成一系列权值文件,我们之后将需要用这些权值文件来设置神经网络:
-rw-rw-r--1 k3170makan k3170makan 2463936 Jul 25 18:22seq-100-weights-improvement-44-2.0382.hdf5
-rw-rw-r--1 k3170makan k3170makan 2463936 Jul 25 18:24seq-100-weights-improvement-45-2.0002.hdf5
-rw-rw-r--1 k3170makan k3170makan 2463936 Jul 25 18:26seq-100-weights-improvement-46-1.9580.hdf5
-rw-rw-r--1 k3170makan k3170makan 2463936 Jul 25 18:28seq-100-weights-improvement-47-1.9290.hdf5
-rw-rw-r--1 k3170makan k3170makan 2463936 Jul 25 18:30 seq-100-weights-improvement-48-1.9157.hdf5
-rw-rw-r--1 k3170makan k3170makan 2463936 Jul 25 18:32seq-100-weights-improvement-49-1.8796.hdf5
生成密码
为了生成我们所需要的密码,我们需要运行generate_passwords.py脚本,操作代码如下所示:$>./generate_passwords.py
Using TensorFlow backend.
Usage: ./generate_passwords.py [data file][weights filename]
$>./generate_passwords.pypasswords_1000.txt seq-100-weights-improvement-49-1.8796.hdf5
Using TensorFlow backend.
[*] Total Characters: 7784
[*] Total Vocab: 38
[*] Total Patterns: 7684
[*] Seed: tiful
mylove
angela
poohbear
patrick
iloveme
sakura
adrian
alexander
destiny
christian
121212
工具依赖组件
唯一需要的就是在你的计算机中安装Python环境。PythonPython Keras参考资料
http://www.ieeeconfpublishing.org/cpir/UploadedFiles/ver11.0.pdf http://machinelearningmastery.com/text-generation-lstm-recurrent-neural-networks-python-keras/ https://0day.work/using-neural-networks-for-password-cracking/ 你会喜欢DIY简易Python脚本调用AWVS扫描如何用Python编写信息收集之子域名收集脚本10个最容易犯的Python开发错误相关文章推荐
- 如何利用神经网络和Python生成指定模式的密码
- 如何利用神经网络和Python生成指定模式的密码
- 如何利用神经网络和Python生成指定模式的密码
- 利用Python如何生成随机密码
- 【Python开发】【神经网络与深度学习】如何利用Python写简单网络爬虫
- 如何利用Python生成随机密码
- 利用Python如何生成随机密码
- 如何用9行Python代码编写一个简易神经网络
- 如何利用Android特点及设计模式 设计一个网络下载功能
- python随机生成指定长度的密码
- 如何在长短期记忆(LSTM)网络中利用TimeDistributed层---python语言
- 用python生成指定位数的密码
- 利用Python生成随机密码
- caffe 利用python命令绘制神经网络图+pycaffe绘制loss_accuracy图片
- python生成指定长度的随机数密码
- Linux笔记2--忘记密码如何利用单用户模式修改密码
- 在Python中利用Theano训练神经网络
- python随机生成指定长度密码的方法
- 如何利用训练好的神经网络进行预测
- O2O模式:如何利用网络创造生活消费类服务新的价值