0°

crack弱口令检测

1.简介

通过隐藏或保密来获取安全不是一种可靠的方式。虽然通过保密来提供安全具有冒险性,但依靠能被敌人猜到的秘密是更加危险的。

UNIX口令方案依赖于秘密—字母与数字构成的字符串,它存在于一个有限的空间中。

无论如何,口令对于人类脆弱的心理仍是有价值的,甚至一个复杂的”随机”口令猜测方法也能最终演变为一个算法。

Crack以/etc/passwd文件为输入,扫描文件的内容并寻找薄弱的口令。然后报告它的发现。

不要把它与其他许多程序搞混,有些程序在其名字中使用”crack”或”rip”这些单词,这些程序用来破坏系统或应用程序的安全。

也不能把它与通常的系统”崩溃(cracking)”相混。Crack5.0a是由英国程序员AlexMuffett和几个UNIX界著名的成员编制的[1]。虽然它找到薄弱的口令并进行报告—这就潜在地帮助了系统破坏者,它并不因为薄弱的口令或没有影子口令就产生一些以前不存在的安全问题[2]。Crack对于改变任何特定用户的口令并无实际用处,它是用来找到薄弱口令而不是给出可选择的口令。尽管可能存在某些疑虑,但Crack是一个完全合法的工具,被作为标准系统管理员实践的一部分进行应用。

尽管Crack是一个对系统安全无害的工具,但必须在明确授权后才能安装和运行它。很明显,如果自己拥有机器,就可随意运行Crack。另一方面,在其他没有写权限的系统(属于老板、大学、ISP、客户等)上运行时要格外小心。

警告 没经过明确授权而运行Crack也许会被认为是一种敌意的行为。在某些管辖权内甚至是非法的。[3]
一个著名专家在客户的系统上运行Crack以评价系统的安全性。他被抓住并进行审判,然后宣布有罪,被判处5年缓刑、480小时社会服务、90天监禁,并处以68000美元罚款。
Crack实际上不”破坏(crack)”(像”decrypt”一样)passwd文件中的UNIX口令。当Crack被调用时,它首先从一个每行一个单词的简单单词列表中创建一个字典集。一个字典直接根据口令文件中包含的单词(如用户名)来编译。

另一个字典直接根据口令文件中包含的用户名的排列组合来编译—”JoeUser”变为”JUser,JoeU,resueoj”等。其他字典可以根据系统或用户添加的单词列表来编译。通过对字典运行各种规则来产生各种猜测结果,这些规则可以强迫单词都变为大写或小写,变成复数,颠倒字符顺序,用数字”3″代替字母”E”等。Crack然后把猜测结果加密—使用系统的口令加密算法,把它们与/etc/passwd中的加密口令进行比较。最终产生一个纯文本或HTML格式的可读报告。

Crack计算开销可能较大。程序包含了几种选项,使得管理计算需求更容易一些。它可以设置成在下班后运行,作为一个后台进程运行比较好。它还可以通过网络运行,使得不止一台主机进行计算。

该程序的完善性在于:Crack提供API,可以与任何crypt()函数集成(改变算法来加强口令系统)并能处理任何口令格式(有些古怪的系统不遵从传统的UNIX格式)。
像许多优秀的UNIX安全工具一样,Crack可以在各种UNIX产品上运行,包括Solaris、Linux、FreeBSD、NetBSD、OSF和Ultrix。

Crack报告

Crack运行结果是一个简单的报告。包括能够猜到的用户口令以及关于口令文件中错误的警告信息。对于每个猜到的口令,它列出用户名、口令、源文件和用户的Shell。
像下面所看到的,Crack不能处理/etc/passwd中像”nobody”这样的系统帐号,它报告一个错误。在一个普通的Linux系统中运行可能会产生一个清单5-1所示的输出。

在该输出中,有6个用户的口令被猜到。事实上,这几个口令都包含基本的缺陷。Alice选择了一个ZIP代码(比较著名的一个)。Bob选择了一个地名。Carol把她的用户名倒过来拼写(Crack首先检查的一项)。Dave错在使用了一个普通的QWERTY键盘串。Mallory使用了一个古老的”password”。Trent很放心地使用了用户名—一个临时的攻击者第一次也会这样猜测。

Crack字典

Crack5包括一个丰富的单词列表集。它们包括从以下渠道得来的大约1500000个单词:

  • 地名,男性名,女性名和姓。
  • 像DOS和UNIX这样的操作系统。
  • 参考书,如CurrentIndextoStatistics、ZIP代码字典、CIAWorldFactBook、字典以及Roget’sThesaurus。
  • 各种语言,包括汉语、丹麦语、荷兰语、芬兰语、法语、德语、日语、挪威语、西班牙语、瑞典语和犹太语。
  • 著名作家的作品,包括莎士比亚、密尔顿和LewisCarroll的作品。
  • 宗教文献,包括KingJamesBible,Koran以及各种神话和传奇。
  • 生物和体育等主题。
  • 流行文化,包括MontyPython,StarTrek,卡通人物和电影。

提示 许多Crack字典来源于PaulLeyland的优秀单词站点—位于牛津大学这个闻名世界的地方,这里有各种各样的字典,包括从南非荷兰语到土耳其语。可以参见:
ftp://ftp.ox.ac.uk/pub/wordlists/

2.安装Crack

可以从AlexMuffett的主页下载Crack5:
http://www.users.dircon.co.uk/~crypto/
或从下面几个镜像站点下载:
ftp://ftp.cert.org/pub/tools/crack
ftp://ftp.cert.dfn.de/pub/tools/password/crack
ftp://ftp.win.tue/nl/pub/security
http://www.thehub.com.au/~bc/crack
用以下命令把文档解压到正确的目录下(如果运行Linux就可能是/usr/local/sbin):

$ gunzip crack5.0.tar.gz
$ tar xvof crack5.0.tar

警告要仔细考虑在哪儿安装Crack。管理员可能不想让用户使用它进行互相攻击。可以考虑设置Crack目录权限,只让root读取并执行其内容。不要保存Crack运行的结果,要立即行动来解决发现的问题(参见5.5节的警告)。

下一步要编辑主要的Crack脚本,为CRACK-PATH、C5FLAGS、CC、CFLAGS和LIBS设
置合适的值。这应该不困难。如果遇到障碍,帮助文件有几个提示和方案。在RedHat Linux系统中,缺省设置是”立即工作”。

提示如果运行RedHatLinux,那么可能需要到Alex的站点找一个文件来代替src/util/Makefile。替代文件为c50-linux-util-makefile.txt。如果运行NetscapeNavigator,不要只进行cut和paste(这会影响文件格式),使用”SaveAs”命令。

如果运行的是RedHatLinux,那么就要准备编译源代码。如果不是,可能要多做些事情,这依赖于运行的平台和系统使用的口令算法。帮助文件中有许多地方指出该怎么办。
从Crack目录执行命令:

$ ./Crack-makeonly

这将生成二进制文件并保存到run/bin目录下。

3.配置Crack

如果通过网络运行Crack,就需要在每台主机上从源地址创建Crack。
如果系统使用影子口令,那么就需要合并加密口令和/etc/password文件并代替旧的/etc/passwd文件。这可以手工进行或通过scripts目录中提供的脚本来进行。脚本Shadmgr.sv是为SystemV设计的。但在RedHatLinux下也工作的很好。要在Crack目录下生成一个叫Shadow4crack的合并文件,可以运行如下命令:

#bshshadmgr.sv>../shadow4crack在许多情况下,Crack提供的缺省单词表就足够了。可以通过添加额外的单词表到dict目录下来提供额外的单词表(如从牛津站点得到的或自己编的)。这对使用缺省中没有的语言的用户可能合适(例如班图语)。一旦单词表到位了,就要把它们转换为Crack需要的压缩格式,

可用下面命令:

$ ./Crack-makedict

4.运行Crack

一旦运行了”-makeonly”和”-makedict”,就应该准备启动Crack,执行命令:

$ ./Crack-debug/etc/passwd

Crack将开始工作,”-debug”标志将显示Crack冗长的内部工作。

调用Crack的通常形式为:
Crack[options][-fmtformat][file…]
file通常是/etc/passwd(也可能是自己合并的影子文件Shadow4crack,或手工创建的文件),”-fmt”标志指明是BSD4.4或其他版本。
也许不想让Crack在系统繁忙的时候运行。如果必须在正常工作时运行Crack,那么可以用”nicing”来削弱对系统资源的冲击:

$ ./Crack-debug-nice10/etc/passwd

警告 应该做好准备在系统受限或时间紧张的情况下终止Crack。正确的方式是使用scripts目录下的”plaster”脚本。
一旦Crack完成了分析,就可以运行”Reporter”命令来查看结果,其形式为:

$ ./Reporter[-quiet][-html]

“-quiet”标志删除口令文件中错误的报告。看过它们一次可能就够了。”-html”标志一个纯文本的HTML文件。
猜测是按时间顺序报告的。若Alice的口令在第一次运行时被猜到,那么在其后的运行中还要被列出(直到她把它处理掉)。这可能很令人恼火,但它会提醒说仍有问题需要处理。
警告 在安全策略中应说明如何处理被猜出的口令。最安全的方式是立即禁用该帐号(通过把用户口令条目中Shell改为/bin/false,加密口令改为”*”进行),然后离线与用户接触。
表5-1描述了一些可以用来控制Crack运行的选项。

5.Crack的提示与技巧

  • Crack可设置为在非尖峰时间运行,以减少干扰系统要完成的真正工作的可能性。可以修改文件scripts/pauser来使Crack在一天的任意时间或系统中用户多于x时休眠。
  • 可以使用”-mail”标志让Crack为每个被猜到口令的用户发电子邮件,它调用
    “nastygram”脚本并以用户名作为输入。在调用该选项前要确定脚本存在—虽不是所有的缺省情况都不好,但也不是所有的都好。试着观察一下合适的网络礼节。
    警告 不赞成使用mail选项。像Muffett指出的那样,如果系统中的邮件日志是所有人都可读的,那么其他用户和潜在攻击者可能会看到Crack向谁发送了警告信息,暗示可能存在一个漏洞。另外,如果帐号不再使用,向它发送邮件就什么也得不到。一个较好的反应是禁用帐号并稍后再询问。
  • 如果Crack在运行时意外终止,那么可以使用”-recover”标志重新启动。可以执行下面的命令,用合适的文件名代替”Dhostname.N”。
    $ mv run/Dhostname.N run/tempfilename
    $ ./Crack -recover -fmt spf run/tempfilename
    
  • 可以通过编辑文件conf/network.conf和使用”-network”选项来把Crack的工作分布到网络中的不同主机上。这需要一个”主攻击”主机,它要安装Perl。网络应该运行NFS。
    帮助文件中包含网络配置的细节。
  • Crack5像”Crack6″一样包括一些额外内容,如只有一行Perl代码来进行简单的口令攻击,”Crack7″进行强大有力的口令攻击。
  • 如果对Crack有什么问题,可以阅读联机帮助。如果还有障碍,作者建议用户以”Crack5″为主题行向新闻组comp.security.unix发信。
  • 不要认为Crack是万无一失的。Crack运行后未发现薄弱的口令,并不意味着它们不存在。记住总有人比你更精明或有更好的设备。也许一个攻击者可以用一个更大更好的单词表来运行Crack破坏系统—或用一个从无名辞典中得到的单词表。也许读者用的Crack已经被破坏过。使用Crack可以提高,但不能代替好的口令策略和用户培训。
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
网络管理
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论