linux shadow文件破解

linux shadow文件破解程序

解析shadow文件中密码字符串的内容

对于示例的密码域$1$Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.,我们参考了Linux标准源文件passwd.c,在其中的pw_encrypt函数中找到了加密方法。

我们发现所谓的加密算法,其实就是用明文密码和一个叫salt的东西通过函数crypt()完成加密。

而所谓的密码域密文也是由三部分组成的,即:$id$salt$encrypted。

【注】:

id为1时,采用md5进行加密;

id为5时,采用SHA256进行加密;

id为6时,采用SHA512进行加密。

# -*- coding: utf-8 -*-

import crypt
import sys
import hashlib

dictionary=sys.argv[1]

def enMd5(word,salt):
    md5_obj=hashlib.md5()
    md5_obj.update(word+salt)
    return md5_obj.hexdigest()

def enSha512(word,salt):
    sha512_obj=hashlib.sha512()
    sha512_obj.update(word+salt)
    return sha512_obj.hexdigest()

def testPass(cryptPass):
    salt=cryptPass[0:2]
    dictFile=open(dictionary,‘r‘)
    for word in dictFile.readlines():
        word=word.strip(‘\n‘)
        if salt==‘$1‘:
            cryptWord=crypt.crypt(word,salt)
        elif salt==‘$5‘:
            cryptWord=enMd5(word,salt)
        elif salt==‘$6‘:
            cryptWord=enSha512(word,salt)
        else:
            return
        if (cryptWord==cryptPass):
            print "[+] Found Password:"+word+"\n"
            return
        print "[-] Password Not Found.\n"
        return

def main():
    passFile=open(‘/etc/shadow‘)
    for line in passFile.readlines():
        if ":" in line:
            user=line.split(‘:‘)[0]
            cryptPass=line.split(‘:‘)[1].strip(‘ ‘)
            print "[*] Cracking Password For:"+user
            testPass(cryptPass)

if __name__=="__main__":
    main()
时间: 2024-10-13 22:24:19

linux shadow文件破解的相关文章

生成linux shadow文件

1 echo "password" | openssl passwd -1 -salt $(< /dev/urandom tr -dc '[:alnum:]' | head -c 32) -stdin 1 $1$cVcjk1yK$sfdBsYIEr800Mdr3PsICe0 2 $1$oBrzawaF$WeVJjd2eyoEEmJykNtMH01 3 $1$HM0y28Ln$CzEhvJgWndEcfcw8jGh1f/ 4 $1$qYTBl3gY$g1.Q3o.g9rD/mp6x

shadow文件弱口令暴力破解——John

在渗透测试中,这里主要说的是linux系统,我们经常遇到任意文件下载或读取,以及命令执行等,但是命令执行有些时候并没有交互式的,我们想添加账号和密码就会很困难,所以这时我们就可以读取shadow文件,将内容保存到本地,然后使用john来进行破解,从而可使用系统中的账号进行远程连接控制! 下载地址:http://www.openwall.com/john/ 基本使用语法: john shadow [email protected]:~# john /etc/shadow Warning: dete

linux shadow破解

主要学习了下linux /etc/shadow文件中密码的破解:学习了hashcat工具的简单实用,具体的可以参加:https://samsclass.info/123/proj10/p12-hashcat.htm 由于进行hash的时候,采用了salt机制,所以传统的彩虹表方式将起不到作用.破解方法有字典破解和暴力破解. linux /etc/shadow中hash算法包括缺省的DES经典算法.MD5哈希算法($1).Blowfish加密算法($2或$2a)和SHA哈希算法($5或$6).因此

详细介绍Linux /etc/shadow文件

与Linux /etc/passwd文件不同,Linux /etc/shadow文件是只有系统管理员才有权利进行查看和修改的文件,系统管理员应该弄明白Linux /etc/shadow文件中每个字符段的相应的意义,清楚管理时的具体意义. Linux /etc/shadow文件中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生.它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用“:”隔开.这些字段是:登录名:加密口令:

Linux下/etc/shadow文件

**Linux操作系统下有一个文件负责所有用户的密码.那就是shadow.该文件的权限必须设置为: -r- - - (400)或者 -rw - -(600) 即:Linux /etc/shadow文件是只有系统管理员才有权利进行查看和修改的文件.** **/etc/shadow文件中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生. 它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用":"隔开.这些字段是:

《Linux学习并不难》用户管理(3):/etc/shadow文件详细介绍

9.3  <Linux学习并不难>用户管理(3):/etc/shadow文件详细介绍 /etc/shadow文件是/etc/passwd的影子文件,这两个文件应该是对应互补的./etc/shadow文件的内容包括用户被加密的密码以及其它/etc/passwd文件不能包括的信息,比如用户账户的有效期限等. /etc/shadow文件只有root用可以读取和操作,文件的权限不能随便更改为其它用户可读,这样做是非常危险的.如果发现这个文件的权限变成了其它组群或用户可读了,要进行检查,以防系统安全问题

Linux下passwd和shadow文件内容详解

一./etc/passwd/etc/passwd 文件是一个纯文本文件,每行采用了相同的格式: name:password:uid:gid:comment:home:shell name 用户登录名 password 用户口令.此域中的口令是加密的,常用x表示.当用户登录系统时,系统对输入的口令采取相同的算法,与此域中的内容进行比较.如果此域为空,表明该用户登录时不需要口令. uid 指定用户的 UID.用户登录进系统后,系统通过该值,而不是用户名来识别用户. gid GID.如果系统要对相同的

解释Linux中passwd与shadow文件

passwd文件: 文件所在路径:vi /etc/passwd 打开文件出现一梭子这个,现在来解释一下这些每部分代表的意思 文件中内容每行都是一样的,以'' : ''进行分隔,以下为对应关系: =>username : password : UID : GID : content :  catalogue : shell <1>   :      <2>       :<3> :  <4> :     <5>    :       <

/etc/passwd和/etc/shadow文件解析

一,/etc/passwd 1,在讲用户管理前先来看看/etc/passwd文件. [[email protected]~]# more /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin 2,现在来慢慢解释每个字段含义.原文可以参考#man