Chinaunix首页 | 论坛 | 博客

qsh

  • 博客访问: 4055374
  • 博文数量: 1015
  • 博客积分: 15904
  • 博客等级: 上将
  • 技术积分: 8572
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-04 19:16
文章分类

全部博文(1015)

文章存档

2019年(1)

2017年(1)

2016年(19)

2015年(27)

2014年(30)

2013年(95)

2012年(199)

2011年(72)

2010年(109)

2009年(166)

2008年(296)

分类:

2009-11-18 13:45:30

Nutcracker

Linux和其他UNIX变种在口令加密过程中使用了加盐,目的是为了让口令难以被破解。不要受认为破解Linux和其他UNIX变种平台的口令速度很慢这一点的迷惑,我们依然可以对/etc/shadow文件进行快速的字典攻击。

Nutcracker或许是速度最快的UNIX/Linux口令破解器,这个工具由Ryan Rhea开发。我们可以从位置下载这个口令破解工具。

由于Nutcracker是一个字典破解程序,因此要求使用字典文件。Nutcracker本身携带了一个包含2400个词汇的示例字典,但我们应该创建自己的字典。运行Nutcracker很简单,语法格式为:

nutcrack passwdfile worddic

其中,passwdfile是要破解的口令文件的名称,通常是/etc/shadow,worddic是破解使用的字典的名称,Nutcracker本身携带的字典的文件名为words。示例8-8给出了该工具应用的一个示例。

示例8-8:运行Nutcracker。

linux:/usr/bin/nutcrack.1.0 # ./nutcrack /etc/shadow words

Nutcracker version 1.0

Copyright 2000 by Ryan T. Rhea

got dict file: words

got passwd file: /etc/shadow

cracking...

user name        status           password

---------------- --------------- ----------------

at               unable to crack X

bin              disabled         -

daemon           disabled         -

ftp              disabled         -

games            disabled         -

lp               disabled         -

mail             disabled         -

man              disabled          -

news             disabled         -

nobody           disabled         -

ntp              unable to crack X

postfix          unable to crack X

root             unable to crack X

sshd             unable to crack X

uucp             disabled         -

wwwrun           disabled         -

andrew           unable to crack X

admin            unable to crack X

user1            CRACKED          Mickey

user2            CRACKED          newuser

user3            CRACKED          123456

user4            CRACKED          foobar

从上面的输出中我们看到,有一些口令没有被破解出来。这就是说,它们的口令没有出现在字典文件中。而user1、user2、user3、user4的口令被破解了出来,原因在于他们的口令出现在字典文件中。如果我们想把破解结果保存在文件中,那么将它们重定向到指定的文件即可。下面是一个将破解结果重定向到results.txt文件的示例:

linux:/usr/bin/nutcrack.1.0 # ./nutcrack /etc/shadow words > results.txt

Boson GetPass——破解Cisco路由器口令

本章前面介绍的内容都是阐述UNIX和Windows系统中口令破解的工具。网络上的其他主机也有口令,特别是,Cisco路由器包含了恶意黑客能够破解并获取访问权的口令。为了评估恶意攻击成功的可能性,渗透测试人员也必须对这类设备的口令进行破解。

在介绍如何破解Cisco设备口令之前,我们需要了解Cisco口令的工作方式。Cisco路由器具有两种运行模式:

— 用户执行模式(User exec mode)——用户执行模式就像旅店的大厅,我们可以进去看一看,但做不了什么事情。在用户执行模式下,我们可以查看界面的状态、路由表及执行其他信息收集任务,但不能进行配置。

— 特权执行模式(Privileged exec mode)——特权执行模式就像拥有了旅馆中能够打开所有房间大门的万能钥匙一样,可以做自己想做的一切事情。在获取特权执行模式之后,就可以完整访问路由器的配置。在从用户执行模式转移到特权执行模式时可以设置口令,这样,看好这个口令对保护路由器的安全至关重要。

进入特权执行模式时有两种方式提供口令:

— 明文口令支持

— 秘密口令支持

假设我们选定路由器的口令为vB*hq0,这里包含了字母、数字和特殊字符。使用下面的命令输入明文口令支持:

Router(config)#enable password vB*hq0

在浏览配置时,将会显示这个口令。配置通常以离线方式存储,能够浏览配置的任何人都能够看到这个口令。为了提供对这个口令的一定程度的保护,我们可以使用秘密口令支持方式。使用下述命令输入秘密口令支持:

Router(config)#enable secret vB*hq0

当显示配置时,这个口令使用5类口令加密方法进行加密:

enable secret 5 1401304104157A

现在,在离线配置文件中看到这个口令的人就不会轻易解密这个口令了,当然,如果他了解了如Boson GetPass这样的工具的用途、并能够使用这个工具时则另当别论。Boson GetPass工具可以在地址处下载。GetPass能够将路由器加密命令加密后生成的口令密文还原为原始口令,如图8-13所示。

图8-13 Boson GetPass工具

从这个示例中也可以看到将所有脱机配置文件保存到安全场所的重要性。否则,利用Boson GetPass这样的工具能够很容易地破解出路由器的口令,从而登录到路由器上。

RainbowCrack

RainbowCrack是一个使用内存时间交换技术(Time-Memory Trade-Off Technique)加速口令破解过程的口令破解器,这个工具可以在地址 rainbowcrack/下载。RainbowCrack使用了彩虹表,也就是一张预先计算好的明文和散列值的对照表。通过预先花费时间创建这样的彩虹表,能够在以后破解口令时节约大量的时间。RainbowCrack包含了下述实用程序:

— rtgen.exe——彩虹表生成器,生成口令、散列值对照表。

— rtsort.exe——排序彩虹表,为rcrack.exe提供输入。

— rcrack.exe——使用排好序的彩虹表进行口令破解。

首先使用彩虹表生成器(rtgen.exe)生成自己的彩虹表。其命令行格式为:

rtgen hash_algorithm \

         plain_charset plain_len_min plain_len_max \

         rainbow_table_index \

         rainbow_chain_length rainbow_chain_count \

         file_title_suffix

rtgen hash_algorithm \

         plain_charset plain_len_min plain_len_max \

         rainbow_table_index \

         -bench

命令行各参数的意义和取值如表8-4所示。

表8-4 彩虹表生成器使用的参数

   

   

   

Hash_algorithm

lm, md5, sha1

散列算法,其中lm表示LANMAN,为Windows口令的散列方法

plain_charset

alpha, alphanumeric, alphanumeric- symbol14, all, numeric, loweralpha, lower-alphanumeric1

明文所用字符集,使用byte表示将256个字符全作为字符集

plain_len_min

数字

明文的最小长度

plain_len_max

数字

明文的最大长度

rainbow_table_index

数字

彩虹表的索引

rainbow_chain_length

数字

彩虹链长度

rainbow_chain_count

数字

要生成彩虹链的个数

file_title_suffix

字符串

添加到文件标题后面的字符串,用于书写彩虹表的注释

-bench

-bench

测试选项,用于性能测试

下面是使用彩虹表生成器的几个命令行示例:

rtgen lm alpha 1 7 0 100 16 test

rtgen md5 byte 4 4 0 100 16 test

rtgen sha1 numeric 1 10 0 100 16 test

rtgen lm alpha 1 7 0 -bench

除非我们已经对密码分析和内存时间交换技术训练有素,否则就应该使用建议值创建自己的彩虹表。示例8-9演示了如何创建一个128MB的彩虹表。

示例8-9:创建一个128MB的彩虹表。

C:\rainbowcrack-1.2-win>rtgen lm alpha 1 7 0 21 00 8000000 all

hash routine: lm

hash length: 8

plain charset: ABCDEFGHIJKLMNOPQRSTUVWXYZ

plain charset in hex: 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a

plain length range: 1 - 7

plain charset name: alpha

plain space total: 8353082582

rainbow table index: 0

reduce offset: 0

generating...

100000 of 8000000 rainbow chains generated (8 m 5 s)

done.

创建彩虹表可能要花费数小时、甚至数天的时间。在生成了彩虹表之后,我们会在当前目录下找到一个名称为lm_alpha#1-7_0_2100x8000000_all.rt的文件,其中all是我们在命令中输入的文件后缀。

接下来的工作是使用彩虹表排序程序(rtsort.exe)进行排序,目的是加快彩虹表的查找速度。这个命令的语法很简单,格式为:

rtsort rainbow_table_pathname

其中rainbow_table_pathname是要排序彩虹表的文件名。例如,排序前面创建的彩虹表,可以使用下面的命令:

C:\rainbowcrack-1.2-win>rtsort lm_alpha#1-7_0_2100x8000000_all.rt

这个命令需要执行几分钟的时间。

最后,使用彩虹表破解程序(rcrack.exe)破解散列值。对于Windows口令破解来说,需要从SAM数据库中提取出散列值,我们可以使用Pwdump程序来完成这个任务,该程序可以从 cfm处下载。使用下面的命令将Windows口令散列值转储到文件hashes.txt中:

C:\rainbowcrack-1.2-win>pwdump2.exe > hashes.txt

得到了口令的散列值之后,就可以使用口令破解程序rcrack.exe和已经排好序的彩虹表进行口令破解了:

C:\rainbowcrack-1.2-win>rcrack alpha#1-7_0_2100x8000000_all.rt -f hashes.txt

虽然创建彩虹表是要花费大量的时间,但是,一旦创建了彩虹表之后,口令的破解速度就会大大提高。通常需要数小时才能够破解的口令可能在使用预定义的彩虹表之后仅仅花费数秒钟的时间就破解出来。

 
几个基本知识

1:telnet是一种强有力的服务,它能为用户提供很多internet设施和服务的唯一访问手段,允许用户以明文方式远程访问一个命令界面,由简单的用户名/口令认证机制所控制,很容易被欺骗。telnet端口在路由器上被称为虚拟终端(vty)端口; [信息来源"岁月联盟"]
2:tftp不是一种安全的协议,因为它没有任何认证机制,也就是说不需要口令,入侵者可以很容易地用tftp请求文件传输,其可以用于得到路由配置文件并修改之;
3:SNMP是一个应用层协议,它在SNMP管理器和代理之间提供了一个通信管道,SNMP有多种访问级别:RO(只读),RW(读/写),W(允许对代理进行写操作)。SNMP团体字符对MIB对象的访问进行认证,并作为嵌入的口令; 4:CISCO口令分为用户访问口令和特权级口令(enable)。缺省情况下,路由器上所有控制台口令是以明文形式存储在路由器配置中。有两种用于隐藏明文形式的口令:(一般地)"Service
password_encryption"命令用于加密用户访问口令,"enable
secret"命令用于加密特权级口令,"Service
password_encryption"命令所用的加密算法是一种不太复杂的可逆的基于Vigener密码的CISCO专有算法,安全级别低,有大量破解器能反解CISCO口令;而"enable
secret"则用到了一个基于MD5散列函数的单向加密算法,安全级别较高,目前尚无良好解决方法,但其仍然可能会受到强力破解或口令字典的攻击。
阅读(1686) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~