misc-unix密码破解 #shadow#crypt

看《python绝技》看到“你的第一个程序,一个unix密码破解器!”,涌上一种中学生回小学装逼的幸福感。但书里只写了test:$1$HXEtlo/Qz.0mA这种情况,对于现行的情况懒得提,所以更新下代码顺便复习(好吧是学习)unix密码相关知识点

  • unix密码:
    root:$1$Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.:14838:0:99999:7:::
    1)“登录名”是与/etc/passwd文件中的登录名相一致的用户账号
    2)“口令”字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登录。
    3)“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。
    4)“最小时间间隔”指的是两次修改口令之间所需的最小天数。
    5)“最大时间间隔”指的是口令保持有效的最大天数。
    6)“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
    7)“不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。
    8)“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
  • 代码环境
    unix环境,py2,crypt
FILE
/usr/lib/python2.7/lib-dynload/crypt.x86_64-linux-gnu.so
MODULE DOCS
https://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.
>>>import crypt
>>>crypt.crypt('19830617','$6$Jn47piWf$')  #密码,$算法类型$salt值
  • 实验:
>>useradd nino
>>passwd nino  #19830617
>>cat /etc/shadow       
nino:$6$Jn47piWf$J2vYwIbHDgrAC4Lt3TD/KWj.F7Hu7W2wUmfA/J1iCKN7KyraKmQ9/jWcC9MLjiuICTKKTGB8t4vhEAx754Rq7/:17903:0:99999:7:::
#$6  表示类型标记为6的密码散列算法——SHA-512哈希算法;$Jn47piWf$指的是加盐(Salt)值
>>> crypt.crypt('19830617','$6$Jn47piWf$')  
'$6$Jn47piWf$J2vYwIbHDgrAC4Lt3TD/KWj.F7Hu7W2wUmfA/J1iCKN7KyraKmQ9/jWcC9MLjiuICTKKTGB8t4vhEAx754Rq7/'

完整代码

# -*- coding: utf-8 -*-
import crypt
import sys
import hashlib

file = '''
test:$1$HXEtlo/Qz.0mA  
root:$1$Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.:14838:0:99999:7:::
nino:$6$Jn47piWf$J2vYwIbHDgrAC4Lt3TD/KWj.F7Hu7W2wUmfA/J1iCKN7KyraKmQ9/jWcC9MLjiuICTKKTGB8t4vhEAx754Rq7/:17903:0:99999:7:::    
'''
#test:123456(HX是salt);root:123;nino:19830617
#dictionary=sys.argv[1]
#dictFile=open(dictionary,'r').readlines()

def testPass(cryptPass,dictFile):
    for word in dictFile:
        word=word.strip('\n')
        cryptWord=crypt.crypt(word,cryptPass)
        if (cryptWord==cryptPass):
            print "[+] Found Password:"+word+"\n"
            return word
    print "[-] Password Not Found.\n"
    
def main():
    passFile=file.split()#open('/etc/shadow').readlines()
    dictionary= ['123','19830617']
    for line in passFile:
        if ":" in line:
            user=line.split(':')[0]
            cryptPass=line.split(':')[1].strip()
            print "[*] Cracking Password For:"+user
            testPass(cryptPass,dictionary)

if __name__=="__main__":
    main()
运行结果

总结

  • 熟悉shadow文件每个字段的含义
    nino:$6$Jn47piWf$J2vYwIbHDgrAC4Lt3TD/KWj.F7Hu7W2wUmfA/J1iCKN7KyraKmQ9/jWcC9MLjiuICTKKTGB8t4vhEAx754Rq7/:17903:0:99999:7:::
  • 根据字典遍历破解crypt.crypt('密码','算法类别salt值')
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,548评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,069评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,985评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,305评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,324评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,030评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,639评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,552评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,081评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,194评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,327评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,004评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,688评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,188评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,307评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,667评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,337评论 2 358

推荐阅读更多精彩内容

  • 不知道什么时候,养成了这种宠辱不惊的性子,有时候觉得自己有些可怕,太隐忍了,什么事情都看得太明白,什么事情都可以...
    这酒有毒阅读 198评论 0 0
  • 简介 最近项目接触到Openwrt的编译和使用,op本身是一个定制的linux系统,兼容的包和语言也有很多,随着物...
    cowkeys阅读 4,516评论 0 0
  • 她,十七岁:天真率直、勇敢大胆、追求梦想、野心勃勃、想当一个画家,想去法国留学,对于未来有很多非常美好的规划。 她...
    二月春熙阅读 896评论 0 50
  • 雨还在下,不知黑夜,不知天明。 我把属于自己的一切收拾的干净利索。 等待着,黎明的到来!
    会码字的胤禛阅读 292评论 0 6