• 如何利用神经网络和Python生成指定模式的密码


    盗取登陆密码

    今天给大家介绍的是Github上一个名叫PyMLProjects的项目,这个项目的目的是为了训练AI来学习人类构造密码的模式,然后我们就可以用AI来生成大量同一模式或种类的密码了。这种方法也许可以用来生成暴力破解攻击中需要使用的攻击字典,因为人们为了方便记忆,通常都会采用某种密码“模式”来设计自己的密码。

    一些经验丰富的渗透测试人员可能都知道,很多类似银行或政府之类的大型组织他们所使用的默认密码或重置密码都采用的是一种旧的密码方案。为了更加贴近实际情况地去评估目前这种问题的严重性,为了更好地模拟出攻击者所能做到的事情,这个项目将开发一个由自动化AI驱动的工具,并尝试模拟这样的密码攻击。

    它将允许你将一个很小的密码样本转变成一个无限长度的密码。

    项目主页

    PyMLProjects:【传送门

    README.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.

    [' ',' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+',',', '-', '.', '/', '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环境。

    Python:【传送门

    Python Keras:【传送门

    参考资料

  • 相关阅读:
    [转]Putty中文乱码解决方法
    linux内核编译
    grub2的使用
    linux的简单网络配置
    [转]建立swap分区
    [转]ps/2键盘线序识别方法
    Linux下备份系统至另一硬盘
    [转]Vimium快捷键
    [转] C中的位域
    [转]diskpart命令
  • 原文地址:https://www.cnblogs.com/h2zZhou/p/7277889.html
Copyright © 2020-2023  润新知