coolfire黑客入门教学文章八(A)

CoolHC Volume 8 By CoolFire Author E-Mail: [email protected]
Release Date: 10-20-1997 [email protected]
[GB Code Chinese Document]
这不是一个教学文件, 只是告诉你该如何破解系统, 好让你能够将自己的系统作安全的
保护, 如果你能够将这份文件完全看完, 你就能够知道电脑骇客们是如何入侵你的电脑, 我是 CoolFire, 写这篇文章的目的是要让大家明白电脑安全的重要性, 并不是教人
Crack Password 若有人因此文件导致恶意入侵别人的电脑或网路, 本人概不负责 !!
有些人可能已经很习惯这样的教学方式, 也习惯了我写 CoolHC 的语气, 用词. 但是有

很多网友可能会因为我的用词而看不懂, 我已经尽量白话一点了, 如果有看不懂的, 多
看几次应该就会了解了吧? 或把以前的文章拿出来再翻一翻, 也许看了第二次之後所得
到的感想, 又是完全不一样的呢?!
首页上的网友交流版是一个不错的交流方式, 在 CoolHC 没有写的这段时间大家可以在
上面聊一聊自己的破解心得, 这样我也可以少写一些 FAQ, 当然在上面有经验的网友们
也可以分享一下你们的经验, 让一些新手快点进入状况, 不会再问一些怪问题~
!!! 请不要寄些密码档, 或者是寄个网路位址来求破, 我们并不提供这样的服务, 我说
过了, 作这份文件主要是兴趣, 如果还有人这样的骚扰我们, 我们将会停止这份文
件的写作及外流. 另外因为最近收到的来信实在太多, 我们不打算再以 Mail 回答
了, 在 CoolHC#8 问世之後, 我将不会再回答任何人来信所问的任何关於系统破解
的问题, 该给各位的所有资讯都会放在网页上, 如果网友们有任何的问题请在网友
交流版中询问及寻求解答. 有几个喜欢发信问软体破解的请注意, 你的行迳亦已引
起许多软体 Cracker 的不满, 一次寄发的信件就 cc: 给许多人, 请不要再作这种
损人不利己的事了!!! (发一下牢骚, 跳过去吧!)
请各位在 ICQ上也不要再要求我在线上教你甚么, 如果真的要在线上教, 那是教不
完的, 还是写文章来得实际一点吧?
**** 关於网友交流版 ****
原先所打算的是开启一个 MailList 来进行网路入侵及系统安全的交流, 但是由於我并
没有太多的时间来维护, 而且最近收到的许多信件也显示了许多网友的网路使用方式有
很大的差异(有人会发信, 问些怪问题), 所以这个计画目前就暂时延缓了, 为了让大家
还是有交流的机会, 两个月前在首页上特别开辟了一处网友交流版, 这个交流版最主要
的定位跟其它网站的留言版不同, 我们希望大家有问题的时候能够在上面讨论, 并且让
新手可以学习到一些我在 CoolHC 中没有提到, 或者是资料不够详细的资讯.
网友交流版开版至今, 尚未得到我们所预期的效果, 但是也吸引了许多新手到交流版上
发问. 我们希望有经验的老手们能够不吝啬的在交流版上跟新手讨论你们的问题, 并且
也把你们所遇到的挫折或经验跟其它网友们分享. 这才是我们开放这个交流版真正的目
的. 希望这个目标很快就能够达到.
交流版上也希望能够聚集多方的资讯, 如果你也有个破解入侵的首页, 我们希望你也能
够在首页上加入这个交流版的连结, 这样才能够使这个交流版的资讯更多; 更丰富. 如
果你希望在你的首页上加入网友交流版的连结, 请将下列指令加入你的 HTML 文件:
<Center>
<a href=http://www.showtower.com.tw/~fetag/guestbk.htm>填写交流板</a>
<a href=http://www.Lpage.com/wgb/wgbview.dbm?owner=FETAG&lang=!!!chi!!>阅读交流板</a>
</Center>
当然你也可以参照 guestbk.htm 来编辑一个属於你自己首页的交流板填写的表格.
**** 关於本站档案 Mirror Site ****
有许多网友常常来信有甚么档案抓不到的问题, 这些问题我以後也不会再答覆了, 以後
若有相同的问题, 请至 Mirror 站台抓取, 或是知道档名直接用 Archie 系统找寻再使
用 FTP 来抓档, 如果以後有档案抓不到的问题, 请来信 “通知”, 请不要写信来”骂人”
许多网友认为自己花钱上网, 就该得到想要的资料, 那我们呢? 可是在花钱, 花心思,
花精力的在服务大家, 并未收取任何的费用呢!
目前首页的连结点有三处 (WWW):
主站: http://fetag.company.com.tw/ (感谢 艾利克科技 提供)
台北: http://www.showtower.com.tw/~fetag (索夫特)
台中: http://www.ab.net.tw/~fetag (感谢 大世纪全球资讯网 提供)
大陆: http://www.nease.net/~fetag (感谢网友 comc 提供, 并协助 GB 转码)
动态: http://hut.stanford.edu/dips/fetag (工作室主机-DIP)
特别说明:
动态 WWW 主机为工作室的主机, 使用 WebSite 架设, 因为是属於拨接型态的上线方
式, IP 为动态分配, 以 DynamIP 来进行动态 IP 的调整, 连线者必需要在我的主机
已上线的状况下才能进行连结.
如果连结後出现:
DIPS: Error
We are sorry, the server fetag is not currently connected to the network.
The last time we saw this site was on
Sun Oct 19 09:28:04 1997.
[email protected]
表示弟的工作站并未连接到网路上, 所以无法连接, 但若你的 WWW Browser 有设定
Proxy Server 的话, 有可能这项资料是上一位使用者连接时的 Cache, 所以请按一
下 Browser 的 ReLoad 键, 还是这个画面的话就确定无法连接了!
如果有下载後的档案无法解开, 或发生 CRC 错误, 请来信通知更正.
日後若有其它档案或首页映射, 会在工作室首页中公告, 请勿再来信询问.
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
**** John the Ripper v1.4 中文说明 ****
中译: James Lin ([email protected])
许多的工具程式, 在告诉大家要去哪里抓, 要如何使用之後, 还是陆陆续续会有很多人
写信来问一些原本说明档就有说明的问题, 所以, 把说明档翻出来让大家看看, 也许这
种情况就会少很多了吧??
在以前的 CoolHC 中为大家介绍过了 John 这套密码的破解工具, 但是内容并不是很详
细, 有很多的网友也只能使用它部分的功能, 以为这就是 John?? 其实 John 还有许多
的功能可以介绍, 这一次, 就把 John 拿出来, 跟大家作一个完整的讨论, 使大家在使
用的时候, 可以更方便, 也希望大家能够以 John 取得更多的密码!
其中有些部分我直接翻译 John 的文件档内容, 有些部分我会补充一下在说明档中没有
出现的范例画面, 并作一些说明, 所以这一篇可能会稍为长一点, 因为 John 本身所提
供的说明档原来就已经很大了 (作者花了蛮多的心思在写说明喔, 有没有看呀?).
虽然底下的词句我已经尽量的白话, 但是有些地方因为是英文直接翻过来, 中文的意思
反而没有英文的单字还要有解释那个词句来得贴切, 所以尽量就保持原样了!
在翻译这篇文章的同时我的背景还开了三个 DOS 的视窗来跑 John, 这种多功的好处也
是我向大家强力推 密码解密时该使用 John the Ripper 的原因!
终於完成了… 呼呼.. 下次这么累的事情不要再找我了, 快把英文学好吧!!!
=========================
甚么是 John the Ripper?
=========================
John the Ripper 是一个 UNIX 密码破解工具程式, 可以使用的作业系统环境有 UNIX
(在 Linux x86, FreeBSD x86, Solaris 2.x SPARC, OSF/1 Alpha 都测试过了), DOS,
WinNT/Win95. 当然, 在你使用 John 之前, 最好已经使用过其它的 UNIX 密码破解工
具, 这样你才可以很容易的了解 John 的运作方式与操作方法!
==================
1.3 版的新增功能
==================
– MD5 编码的密码档案解码支援; (以前的解码都是只针对 DES)
– SPARC V8 组合语言版本;
– 修正了许多前版的 Bugs. (以前的版本有那么多的 Bug 吗??)
======
概观
======
作者把 John 尽量设计成强大, 而且快速的破解工具. 在同一个程式里面包含了几种的
破解方式, 而且你可以完全的依照你的需求来自订 John 破解的方式(我觉得这点很强,
甚至可以用内建的 C Script 来自定不同个案的破解方式, 容後说明). 而且 John 也
可以在不同的系统平台上使用, 让你可以在不同的电脑上破解密码, 在范例中的接续破
解, 可以让你在破解中断之後, 在不同的作业平台上接下去破解.
John 的 crypt() 函式在快速作业的模式之下进行了最佳化, 这可以让 John 在破解的
时候跑得比其它的破解工具快, 这个函式同时套用了组合语言及可转平台式 C 语言两
个语言所写出来的程式码.
John 支援了以下几种的破解方式:
– 有规则及不规则的字典档破解模式;
– “Single Crack”, 用最简单的资讯来进行破解的工作, 速度最快.
– 增强破解模式(我们称暴力法), 尝试所有可能的字元组合;
– 外部破解模式, 让你可以定义你的破解模式.
==========
如何安装
==========
John 所提供的是压缩过的程式, 你需要建一个目录, 然後把这些档案都拷贝到那个目
录底下, 然後将你需要的档案解压缩(当然你必需要有解缩的程式).在你使用这个压缩
档以前你可能须要先下达一个 ‘chmod +x john’ 指令.
如果你要 Compile 原始程式的话, 只要进入你解压这些档案的目录, 然後在系统提示
符号下输入 ‘make’, 你就会在萤幕上看到一份系统支援的列表. 选择你所使用的系即
可. 如果你的系统没有在该列表上, 就请你输入 ‘make generic’. 请你确定你使用的
是 GCC 且 GNU make (也许你得输入包含路径的执行指令, 例如 ‘/bin/make’,如果你
的系统没有设定路径的话).
==========
如何使用
==========
作者已经尽量把 John 的操作方式设计得跟 Cracker Jack 相同, 所以如果你先前曾经
使用过 Crack Jack, 应该很快的就能够使用 John. 总之, 有很多 Cracker Jack 的功
能, 都可以在 John 上面延用, 操作方法也是相同的.
要使用 John the Ripper, 你必需要有一些密码档, 破解好的密码将会显示在萤幕上,
并且会储存在一个叫作 ~/john.pot 的档案中 (‘~’ 所代表的是 John 的相同目录, 也
就是你放置 John 的目录).这个档案还有另一个功能, 就是让 John 不要重覆跑你已经
破解过的帐号, 如果你使用 John 再跑一次曾经跑过的密码档, 相同的帐号不会再跑过
一次, 如果你想要看你已经破解过的密码, 你可以使用 ‘-show’ 这个功能.
在破解的时候, 你可以按下 Enter 来观看目前破解的状态,或是按下 Ctrl+C 来中断目
前的破解工作, 这样程式会自动将目前破解到的位置, 储存在一个档案之中 (~/restore
为内定的档名), 另外, 如果你是按了两下 Ctrl+C 来中断的话, John 就会直接中断而
不会将目前破解进度储存了. 这个破解进度档每十分钟也会自动的储存, 以必免你的机
器在破解中当机而功亏一溃. (这是个不错的设计, 当然 Jack 里也有这项功能)
命令列的功能选项
——————
你可以在执行 John 的命令列後加上下面这些选项 (所有的选项都不须区分大小写):
-pwfile:<档名>[,..] 指定密码档档名 (可以使用万用字元)
这个选项用来指定你所要破解的密码档 (通常在命令列上要使用的档案名称, 不能够使
用以 ‘-‘这个字作为开头的档案名称, 因为 ‘-‘已经被用来当作命令列的辨识字元了).
-wordfile:<档名> -stdin 字典档破解模式, 由字典档读取来破解, 或是 stdin
这个选项用来开启 John 为字典档破解模式.
-rules 打开规则式字典档破解模式
开启规则式 (就像使用 Alec Muffett 的方式破解). 至於规则的定义就是使用放在 ~/john.ini
中 [List.Rules:Wordlist] 所定义的规则.
-incremental[:<mode>] 增强模式 [使用 john.ini 中定义的模式]
开启增强模式, 使用你在 ~/john.ini 中所定义的模式来破解 (在 [Incremental:<mode>] 段落
中你可以自行定义, <mode> 就是在这里你所要指定的 <mode> 名称, [Incremental:All] 为内定).
这一段可以让你指定很多不同的方式, 我们会在後面再说明.
-single Single Crack模式
开启 “Single Crack” 模式, 使用你在 [List.Rules:Single] 中所定义的规则.
-external:<mode> 外部破解模式, 使用你在 john.ini 定义的 <mode>
开启外部破解模式, 将会自动启用你在 ~/john.ini 的 [List.External:<mode>] 段中
所定义的自订破解功能.
-restore[:<档名>] 回复上一次的破解工作 [经由 <档名>]
继续上次中断的破解工作, 由特定的档案 (通常是 ~/resotre) 读取上一次破解的时候
中断的位置, 然後接下去破解. 这可用在中断破解之後的接续破解.
-makechars:<档名> 制作字元表, 你所指定的档名若存在会被覆写
产生一个内含字元表的档案, 他会以~/john.pot (找到的密码) 为基础来产生. 这个产
生出来的档案你可以用在增强破解模式上. 除非你指定了其它的密码档, 不然系统将会
自动抓~/john.pot 内容来产生字元表. 你也可以同时使用 filter() 函式来进行过滤.
-show 显示已破解的密码
显示已经破解完成的密码. 你必需同时指令你要显示的密码档是哪一个才行.
-test 执行速度测试
这个功能可以用来测试你所使用的电脑的破解速度, 它会显示一个速度的比较表来告诉
你你的电脑在不同的环境 (要破解的帐号多寡) 所产生的不同效率, 让你可以作好最佳
的调整.
在你不熟悉的密码档破解的时候:xform1() 跟 xform2() 是真实的编码函式, 它呼叫了
每一个key/salt (一对一对的呼叫), 当你每个字呼叫 setkey(), 表示说 xform1() 或
xform2() (要看你是用哪一种破解模式才能决定是哪一个) 在足够的 salts 载入之後,
是唯一会被影响到破解速度的函式,总而言之, setkey() 可以决定你在使用这个程式的
时候的速度, 当你使用的是以 MD5 编码的密码档, md5crypt() 就会取代所有的其它函
式.
-users:<login|uid>[,..] 只破解这一个使用者(或群组)
让你能够过滤只破解某些特定的人, 你也可以用在 ‘-show’ 这个功能. (通常你会只找
root, 但是我建议你能够找 uid =0 的人, 因为 uid=0 也就表示他具有 root 同等的
权限)
-shells:[!]<shell>[,..] 只针对某些使用你指定的 shell(s) 的使用者破解
这个选项可以用在 破解/显示 使用的是你所指定的 shell 的帐号, 或者是不要显示/
破解这些帐号(也就是说可以用来过滤) 在 Shell 名称前加上 ‘!’ 就表示 Not 了. 你
可以在的 Shell 名称之前指定绝对路径, 或者也可以不指定, 当然’-shells:csh’就会
包含’/bin/csh’跟’/usr/bin/csh’ ,如果你指定的是 ‘-shells:/bin/csh’ 将只会包含
‘/bin/csh’ 这个 Shell 名称.
-salts:[!]<count> 只破解 salts 大於 <count> 的帐号
这个功能通常使用在让你得到最高的系统效能来破解密码上. 如同范例, 你可以只破解
某些的 salts 使用’-salts:2’这个选项, 会使你的系统运作快一点, 然後再破解 rest
使用 ‘-salts:!2’ 这个选项 (配合著使用). 总共需要的破解时间大约是相同的, 不过
你得到已破解帐号的速度会快一些, 而且系统不需要休息.
-lamesalts 设定 salts 中密码所使用的 cleartext
当你不知道你在作甚么的时候, 不要使用这个选项.
-timeout:<time> 设定最长的破解时间 <time> 分钟
当你设定的时间到达时, John 将会自动中断目前的破解工作.
-list 列出每一个字
在标准输出设备上 (通常是萤幕) 列出已经破解出的每一个字(密码). 这个功能可以用
在检查你的自订破解模式是否正确的完成.
-beep -quiet 当发现密码 是/否 要发出声响
你可以在 ~/john.ini 中指定你所要的预设值.
-noname -nohash 不要使用记忆体来储存 login name 跟其它的资料
在你没有足够的记忆体来跑 John 的时候, 你可能需要这个选项. ‘-noname’ 不能使用
在 “Single Crack” 模式之下. 因为 Login name 必须在此模式下使用!
-des -md5 强制使用 DES 或 MD5 模式
这个选项让你自行决定密码加密的方式(不用自动判断). 你要注意的是 John 并不能在
同一个破解工作中同时跑两种不同的密码加密方式, 如果你的密码档是两种的, 你就要
分开来跑!
附加的工具程式
—————-
你也许会使用到 John 所附的一些工具程式:
xtract [source] [> <target>]
由文字档中取出字典档, 让你可以把字典档使用在破解上. 重覆的字不会自动的移除,
你须要再使用 ‘sort -u’ 来作输出 (这里的指令是用在 UNIX 上的).
unshadow <passwd> <shadow> [> <target>]
组合 passwd 跟 shadow 档案 (当你已经得到这两个档的时候) 让真正的密码档得以还
原, 这样你就可以在 John 上面使用了. 你也许会需要这个功能, 如果你只有 shadow
过的密码档案, GECOS 资讯不能在 “Single Crack” 模式下使用, 而且也不能够使用
‘-shells’ 这个选项的功能.
============
破解的模式
============
这里的破解模式的叙述通常都很简短, 而且只函括了一些基本的东西, 你可以看一下
“使用者自订” 这一个小节, 来获得更多的资讯.
字典档模式
————
这是 John 所支援的破解模式中最简单的一种, 你须要的只是指定一个字典档 (文字档
案, 每行一个英文单字)及一个或一些密码档, 你可以使用规则化的方式(用来修正每个
读入的单字) 来让这些规则自动的套用在每个读入的单字中.
字典档中的字不能够有所重覆, 因为 John 并不会删除重覆及将字典档排序, 所以如果
有重覆的化会占用过多的记忆体, 最好能将一些常用的字典放在你字典档的开头, 当然
你最好能够按字母的排列方式来排序你的字典档,(如果每一个字跟先前的那个字的差别
小一点的话, John会跑得稍微快一点点, 这也是为甚么要排序的原因了, 这个状况在你
破解的密码档小的时候特别明显). 译者按:没想到连这个都测试, 真是想得周到呀!!
另外, 你不须要担心每一个字元的长度超过了八个字元, John会自动比对这些字, 如果
前八个字元一样, John会自动的处理这种情况, 而且只试同一个密码一次, 前提是这个
字必须是接在前一个字後面, 这也就是为甚么要排序字典档的原因了. 你最好是不要擅
作主张的把超过八字元的字切成八个字元, 因为在规则化的破解模式之下, 後面的字可
能还会有其它的用处.
译者按: 因为 DES编码方法在以前的系统上有八字元的限制, 所以超过八字元的密码亦
视同八字元来编码, 超过的部分则会被系统自动切除.
“Single Crack” 模式
———————
这是你刚才使破解密码时需使用的, 它将会试著使用 login/GECOS资讯来当做密码, 这
些资讯通常适用於该资讯来源的帐号(在帐号上是相同的 salt, 所以几乎不需要额外的
破解时间 (很快的意思), “Single Crack” 婆式比字典档模式还要快很多, 它也让你可
以使用许多种规则 (这些规则通常在使用此一模式时都会开启) 在合理的时间之内. 当
然, 这个模式只会得到使用基本资料来当作密码的使用者资料.
值得注意的是, 当你用这个模式在同一个时间跑很多的密码档时, 通常会比你将这些档
案分开来跑, 还要能够更快的得到已经破解的密码.
不要跑尽所有的规则也许是一个好方法, 但是节省时间, 然後用其它的破解模式来跑,
这样的话规则型态会以号码来排列破解的密码.
CJack 的使用者必需要注意到 John 的 “Single Crack” 模式是完全不一样(更好)的.
它不需要指定一个密码档, 因为密码档制造的规则型态与程式码已经内建在 John 里
头了.
增强模式
———-
这是功能最强大的破解模式, 它可是试所有可能的字元组合来当作密码, 但是这个模式
是假设在破解中不会被中断, 所以当你在使用长字串组合时, 最好不要直中断执行 (事
实上你还是可以在执行时中断, 如果你设定了密码字串长度的限制, 或者是让这个模式
跑一些字元数少一点的字元集), 然後你将可以早一点中断它的执行.
这就是为甚么这个么式须要指定字元频率表(character frequency tables, 字元集)–
在有限的时间内去得到所有可能的密码.
要使用这个破解模式, 你须要指定及定义破解模式的参数,(包含密码长度的限制还有字
元集). 这些参数必须写入到~/john.ini 中的[Incremental:<mode>] 这一段内,<mode>
可以任意命名 (就是你必须要在执行 John 时在命令列指定的名称).你可以使用一个重
新定义的增强模式, 或是定义一个自订的.
若你曾经定义过了一次, 日後当你要再使用同一种增强模式的时候只要指定增强模式要
套用的选项, 相同的选项及密码档的套用就会自动的回复.
扩充模式
———-
在使用John的时候你可以定义一些扩充的破解模式.只要在~/john.ini 的[List.External:<mode>]
一节中指定就可以了,<mode>就是你所指定的模式名称. 这一段中必须要包含一些 John
尝试要产生的字典的功能. 这些功能的撰写方式就是 C语言的子集,它会自动的在 John
执行前编译 (只有在你开启 John 时使用这个模式才会被编译).
==========
如何自订
==========
John the Ripper 的破解行为及方式可以编辑~/john.ini 来自订, 你可以在执行 John
的时候在命令列指定破解方式, 其它 John 的选项不会受到命令列的影响, 为增强模式
定义一些参数, 为 Single Crack 模式定义一些规则, 或者你也可以定义一个新的破解
方式.
这个设定档 (~/john.ini) 是由许多小段组合而成的. 每一个小段的起始是由括弧括起
来, 里面所写的是这一段的名称. 每一个段中内含了指定的一些变数来组成可变动的变
数, 或由一些特别的项目来指定段的型态(像这样的段启始字元为 ‘list.’). 段跟可动
变数的大小写对程式来讲是无所谓的. 如果在行前加上了 ‘#’ 或是 ‘;’ 字元, 就表示
这一行将会被程式所略过不予执行, 你可以用来加入一些注解.
一般选项
———-
预设一些命令列选项可以放在 [Defaults] 这一段中. 你可以定义下面这些值:
Wordfile 设定你的字典档档名, 这会自动虚拟成你正使用的破解模式是字典档模式,
你不需要再加上 ‘-wordfile’ 这个选项.
Timeout 设定中断的时间, 单位为分钟.如果使用这个选项的话, 所有的破解模式都
会接受时间到就自动停止 (建议不要指定这项, 在命令列指定就好了).
Beep 当系统找到密码时会发出 ‘哔’声, 或是在一些要问你 (Yes/No) 的时候也
会令你的电脑发出声响来提醒你. 另一组相反的选项为 ‘-quiet’, 它不会
令你的电脑发出声响, 所以最好先指定 Beep, 当你需要让电脑安静时在命
令列使用 -quiet 即可.
一些其它的选项可以先定义在 [Options] 这一段中:
Realtime 设定已经经过的时间为 D:HH:MM:SS 来取代原先用秒数来计算的方式 (跟
CJack 相同).
Percent 设定显示百分比指示器.
增强破解模式的参数