热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

安装和利用john破解linux密码

作者:Komy1.#cdtmp#wgethttp:www.openwall.comjohngjohn-1.7.4.2.tar.gz#tar-zxvfjohn-1.7.

 作者:Komy

1. #cd /tmp

#wget http://www.openwall.com/john/g/john-1.7.4.2.tar.gz

#tar -zxvf john-1.7.4.2.tar.gz

# cd john-1.7.4.2
# cd src
#make linux-x86-any-a.out

或者使用sudo apt-get install john

2:unshadow /etc/passwd /etc/shadow >passwd.txt (注意只有root才能执行unshadow,
因为只有root才能读取/etc/shadow。)
3:chmod 600 passwd.txt
4: john passwd.txt

此外,如果已经破解成功,则可以查看john.pot来查看。这个john.pot档案还有另一个功能, 就是让 John 不要重覆跑你已经破解过的帐号, 如果你使用 John 再跑一次曾经跑过的密码档, 相同的帐号不会再跑过一次, 而是直接显示出你曾经跑出的密码。如果你想要看你已经破解过的密码, 你可以使用 ‘-show’ 这个功能.在破解的时候, 你可以按下 Enter 来观看目前破解的状态,或是按下 Ctrl+C 来中断目前的破解工作, 这样程式会自动将目前破解到的位置, 储存在一个档案之中~/restore为内定的档名), 另外, 如果你是按了两下 Ctrl+C 来中断的话, John 就会直接中断而不会将目前破解进度储存了. 这个破解进度档每十分钟也会自动的储存, 以必免你的机器在破解中当机而功亏一溃. (这是个不错的设计, 当然 Jack 里也有这项功能)命令列的功能选项。一般来说密码要么是很简单的,要么很复杂。

#john -show passwd.txt

#john -show -users:yujs passwd.txt
获得指定用户的密码。
John the Ripper的四种破解模式

 

「字典档」破解模式(Wordlist Mode)
这在John所支援的破解模式中是最简单的一种,你要做的唯一工作就是告诉John字典档在哪(字典档就是文字档,内容每行一个单字代表试验的密码),好 让它可以取出破解。在「字典档」破解模式里可以使用「字词变化」功能,来让这些规则自动的套用在每个读入的单字中,以增加破解的机率。

「简单」破解模式(Single Crack)
「简单」破解模式是专门针对「使用帐号当作密码」的懒人所设计的;所谓「使用帐号当作密码」的意思是,如果一个使用者帐号是「john」,它的密码也取为 「john」。在「简单」破解模式里john会拿密码档内的「帐号」栏位等相关资讯来破解密码,并且使用多种「字词变化」的规则套用到的「帐号」内,以增 加破解的机率。如帐号「john」,它会尝试用「john」、「john0」、「njoh」、「j0hn」….等规则变化来尝试密码的可能性。

「增强」破解模式(Incremental Mode)
这是John里面功能最强大的破解模式,它会自动尝试所有可能的字元组合,然后当作密码来破解。这个破解模式所需要的时间非常冗长,因为要尝试组合字元是 非常耗费时间的,所以John才会定义一些「字元频率表」(character frequencytables)来帮助破解。简言之这个破解方法就是「暴力法」,把所有可能的密码组合都测试一次,来得到正确的结果。

「外挂模组」破解模式(External Mode)
这个破解模式是让使用者可以自己用C语言写一些「破解模组程式」,然后挂在John里面来使用。其实所谓的「破解模组程式」就是一些用C语言设计好的副函 示,然后它的功能就是产生出一些单字来让John尝试破解。而

在执行John程式时,它在载入这些「破解模组程式」时会自动编译这些C语言副函示然后来使用。 (真伟大,光这点就让笔者佩服五体投地)

John the Ripper命令列参数说明

【命令列指令】

john [-命令列参数] [密码档档名]

【命令列参数】

参数:-single
说明:使用「简单」(Single Crack)破解模式解密,主要是根据使用者的「帐号」产生变化来猜测解密,其变化规则记录在JOHN.INI档案的 [List.Rules:Single]区域内。 (稍后会再介绍)

范例:john -single passwd

参数:-wordfile:[字典档档名] -stdin

说明:使用「字典档」破解模式解密,由字典档内读取单字来破解;或是可以加上-stdin参数,代表由键盘输入单字来破解。

范例:john -wordfile:bigdict.dic passwd

参数:-rules
说明:在「字典档」破解模式下,开启字词规则变化功能,如「字典档」读入单字cook,则开启字词变化下,程式可能会尝试cook、c00k、 cooker、cook0…等其它字词。详细变化规则记录在JOHN.INI档案的[List.Rules:Wordlist]区域内。(稍后会再介绍)

范例:john -wordfile:bigdict.dic -rules passw

参数:-incremental[:模式名称](参数也可以简写成-i[:模式名称])
说明:使用「增强」破解模式解密,就是组合所有可能的字元当作密码来破解。在JOHN.INI档案内的[Incremental:*****]区域里定义 好许多的模式名称,可以指定使用哪一个模式来破解。 (稍后会再介绍)

范例:john -i:all passwd

参数:-external:[模组名称]
说明:使用「外挂模组」破解模式解密,使用者可以自己撰写额外的「破解模组程式」。 「破解模组程式」是记录在JOHN.INI档案内的[List.External:******]区域内。

范例:john -external:double passwd

参数:-stdout[:LENGTH]
说明:这个选项跟破解没有任何关系,只是单纯显示John所产生出来的单字到萤幕上。

范例:john –i:all –stdout

参数:-restore[:回复档案名称]
说明:继续上次中断的解密工作。 John在执行破解密码工作时,可以按下<CTRLC>键中断工作,而当前的解密进度情形会被存放在一个名为「restore」的档案内。而使用 「-restore」参数,可以从「restore」档案内读取上一次破解时候中断的位置,然后接下去继续破解。

范例:john –restore

参数:-session[:记录档档名]
说明:这个选项是让你设定目前工作记录档(session file)的档名。所谓的工作记录档就是可以用「-restore」参数回复工作的档案。另外,在使用John做多工破解工作时,使用 「-session」参数可以为每个工作设定各别的记录档,而不会混在一起。

范例:john –wordfile:bigdict.dic –session:work1 passwd

参数:-status[:记录档档名]
说明:显示工作记录档里面所记录的工作状态。

范例:john –status:restore

参数:-makechars:[档名]
说明:制作「字元频率表」。这个选项会以目前已破解出的密码为基础,来产生「字元频率表」(注:John会把已破解出的密码记录在JOHN.POT档案 内,)。如果所指定档名的档案已经存在的话,会被覆写。此选项产生出来的档案,可以用在「增强」破解模式上。

范例:john –makechars:ownchars

参数:-show
说明:显示目前已经破解出的密码。因为JOHN.POT档案内并不储存「帐号」资料,所以使用时你应该同时输入相对应的密码档。

范例:john –show passwd

参数:-test
说明:测试目前机器执行John各类型密码破解时的速度。

范例:john –test

参数:-users:[-]LOGIN|UID [,..]
说明:只破解某个「帐号」的密码,如只针对root或拥有root权利UID=0的使用者。 (若在LOGIN|UID名称前加上“-”符号则是相反,表示不要破解这个「帐号」的密码)

范例:john –i:all –users:root passwd

参数:-groups:[-]UID[,..]
说明:只破解某个「群组」内用户的密码。 (若在UID名称前加上“-”符号则是相反,表示不要破解这个「群组」内用户的密码)
范例:john –i:all –groups:100
参数:-shells:[-]SHELL [,..]
说明:和上面两个参数一样,这个选项是只针对所有可以使用shell的用户进行破解密码工作,对其它用户不予理会。(若在SHELL名称前加上“-”符号 则是相反,表示不要破解可以使用这个SHELL的用户的密码)。指定SHELL时,你可以省略绝对路径,如参数「-shells:csh」就会包含 「/bin/csh」或「/usr/bin/csh」等路径,但如果你指定的是「-shells:/bin/csh」则只会包含「/bin/csh」这个 SHELL名称。

范例:john –i:all –shells:csh passwd

参数:-salts:[-]COUNT
说明:只破解「salts」大于「COUNT」的帐号的密码,可以使你得到较佳破解速度(所谓「salts」是指UNIX拿来作为「密码」编码基础的单 位)。举例来说,你可以先只破解某部分用户的密码「-salts:2」来获得较佳的速度,然后有时间时才破解剩余用户的密码「-salts:-2」。

范例:john –i:all –salts:2 passwd

参数:-format:NAME与-savemem:LEVEL
说明:这两个参数是有关John内部运作的设定,跟破解本身没有直接关系,所以省略不介绍。

其他参考:http://hi.baidu.com/deathshadow/blog/item/4103343f38cb00c77d1e7195.html

收集字典:

E:\tools\john>dir *.pot
驱动器 E 中的卷没有标签。
卷的序列号是 5C03-8E69

E:\tools\john 的目录

2010-07-13  12:54   

          .
2010-07-13  12:54              ..
2010-07-13  01:44       415,235,507 john.pot
1 个文件    415,235,507 字节
2 个目录 43,195,133,952 可用字节


















本文转sinojelly51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/354048,如需转载请自行联系原作者




推荐阅读
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • Windows 7 部署工具DISM学习(二)添加补丁的步骤详解
    本文详细介绍了在Windows 7系统中使用部署工具DISM添加补丁的步骤。首先需要将光驱中的安装文件复制到指定文件夹,并进行挂载。然后将需要的MSU补丁解压并集成到系统中。文章给出了具体的命令和操作步骤,帮助读者完成补丁的添加过程。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
author-avatar
Gala彬
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有