• 沒有找到結果。

嗅探并破解 Kerberos

在文檔中 第 3 部分 攻击 101 (頁 145-152)

渗透测试与工具

5.4.3 嗅探并破解 Kerberos

如果某个企业在使用 Kerberos 认证,黑客仍然可以嗅探并破解口令,只是方法有所不 同。在 2002 年下半年,Arne Vidstrom 发布了 kerbsniff 和 kerbcrack。像读者想像的那样,

kersniff 会监听网络并捕获 Windows 2000 和 XP 的 Kerberos 登录并将其存储为文件。然后 kerbcrack 处理捕获文件,并使用蛮力或字典攻击来破解口令,过程相当简单。这里是一个 例子,说明了上述过程:

C:\kerb>kerbsniff GrayHat.out

KerbSniff 1.2 - (c) 2002, Arne Vidstrom

- http://ntsecurity.nu/toolbox/kerbcrack/

Captured packets: **^c

此时,kerbsniff 已经捕获了两个 Kerberos 认证序列。(每个“*”都表示一个捕获的登录。)

这两个序列保存在文件 GrayHat.out 中:

C:\kerb>type GrayHat.out test

GrayHat

36ED42F5B86F2CA7F236A9E2FAB2498C39A1729A75351C389F7AADB2BBC7C85876E0BAB9 1A47CADA45861665A2D022BA4D214A52

# test1 GrayHat

2AA32BB9E29CFBBA206FAEB15FB7F73A846B57C20804831450663CDF160657296B2F4AF2 AFE36CD4F51D533EBBF4619838F4EC4A

#

输出文件中列出了用户名、用户所在的域和在通信数据中捕获的口令的 Kerberos 散列值。

这只是工作的一半。现在我们需要破解这些口令,kerbcrack 是该软件包提供的一个简单的

第 2 部分

破解工具。该工具可以进行蛮力或字典攻击,但没有提供精巧的混合破解,正像 John Ripper 或 L0phtcrack 那样。这里是 kerbcrack 的一个例子:

+-+-C:\kerb>dir /b *english*

words-english

C:\kerb>kerbcrack

KerbCrack 1.2 - (c) 2002, Arne Vidstrom

- http://ntsecurity.nu/toolbox/kerbcrack/

Usage: kerbcrack <capture file> <crack mode> [dictionary file] [password size]

crack modes:

-b1 = brute force attack with (a-z, A-Z) -b2 = brute force attack with (a-z, A-Z, 0-9)

-b3 = brute force attack with (a-z, A-Z, 0-9, special characters) -b4 = b1 + swedish letters

-b5 = b2 + swedish letters -b6 = b3 + swedish letters

-d = dictionary attack with specified dictionary file C:\kerb>kerbcrack GrayHat.out -d words-english

KerbCrack 1.2 - (c) 2002, Arne Vidstrom

- http://ntsecurity.nu/toolbox/kerbcrack/

Loaded capture file.

Currently working on:

Account name - test1 From domain - GrayHat Trying password – test

Number of cracked passwords this far: 1

Done.

C:\kerb>

本例中,我们能够破解 test1 账号的口令,即使该域使用 Kerberos 进行认证。之所以能 够成功,是因为 test1 的口令是“test”。使用字典攻击无法破解的比较强的口令,这是抵御 kerbcrack 的方法。

5.5 摘要

本章涵盖了下列主题:

 踩点的类别:

 被动工具:p0f。

 主动工具:xprobe2 和 nmap。

 踩点类型:

 TCP 栈踩点:nmap。

 ICMP 分析:xprobe2、nmap。

 不是所有的操作系统在实现 TCP/IP 时都遵循 RFC 标准。

 ICMP 扫描比畸形的 TCP 扫描更隐蔽。

 scanrand 是一个无状态的端口扫描器和 traceroute 工具,比其他同类工具都要快速。

 scanrand 以无状态方式使用 TCP 和一个有状态的协议。

 paratrace 可以发现网络第三层跳数,而 traceroute 和 tracert 不行。

 paratrace 依赖于现存的、经过授权的 TCP 会话。

 paratrace 可以穿过有状态的防火墙。

 如果允许从内部网络向外发送 ICMP,则很难阻止 paratrace。

 p0f 可以嗅探并使用任何网络通信数据,来识别发送数据包的主机。

 通过向特定的系统发送请求,同时用 p0f 监听返回的 SYN-ACK 或 RST 数据包,有 助于 p0f 识别目标系统。

 服务标题和客户/服务器握手可以泄露服务的类型和版本。

 有些服务甚至会泄漏主机的操作系统信息。

 amap 可以识别大量的服务,而无论服务在何种端口上监听。

 amap 可以识别包装在 SSL 中的的服务。

 amapcrap 可用于识别新的服务,并使得用户能够提高 amap 的准确度。

 Winfingerprint 是一个 Windows 踩点实用程序,使用了 Linux 上不可用的 Windows API。

 Winfingerprint 源代码可以在 SourceForge.net 自由下载。

第 2 部分

 在 Unix/Linux 上,最古老、使用最多的嗅探器是 tcpdump,其 Windows 版本是 windump。

 许多嗅探器依赖 libpcap 或 WinPcap 库进行嗅探和解码。这些库是开源的,可以进 行核心级的 I/O 调用,并支持 BPF 过滤器表达式。

 在需要安装 libpcap 和 WinPcap 的嗅探器软件之前,libpcap 和 WinPcap 通常必须安 装。有些嗅探器会自行安装,但可能会造成问题。

 ettercap 是一工具,能够完成许多事情,诸如嗅探各种各样的口令、主动嗅探、会 话断路/盗取、MAC flooding、ARP storm 主机检测,等等。

 主动嗅探的目的是绕过交换机的阻塞。主动嗅探有 MAC flooding、ARP cache poisoning、MAC duplicating(或 spoofing)和 DNS poisoning。有些工具专攻消除交 换机的阻塞(如 arpspoof、macof、etherflood),而其他工具(如 ettercap、Hunt)

则是“全面”式的主动嗅探器。

 端口安全和类似于 ARPWatch/WinARPWatch 的监控工具,可以帮助抵御主动嗅探 技术。针对嗅探(主动或被动)的最好的防御是加密与认证联合使用。PKI、IPSec、

VPN 和隧道协议都能够为不安全的协议和应用程序提供安全性。

 LANMAN、NTLM 和 NTLMv2 是 Windows 和 Samba 系统使用的认证协议。

LANMAN 对蛮力和字典破解非常敏感。还有一些工具能够从网络通信数据中筛选 挑战/应答对,并格式化后导入到破解应用程序。Kerberos 是一种新的、更强的标准,

用于 Windows Active Directory。

 LANMAN 散列值未加密时是 16B 长,在对挑战的应答中,将散列值加密后发送,

长度变为 24B。ettercap 工具能够检测这些 24B 的应答,并将挑战/应答对输出到一 个文件中,该文件可以导入到 L0phtcrack 2.5。

 有些嗅探器软件能调整为嗅探口令,这些工具包括 dsniff 和 ettercap。其他嗅探器也 能够得到同样的结果,但这些工具特别容易,新手和脚本小子都可以使用。

 攻击者的一种常用的策略是,首先通过攻击(如缓冲区溢出)获取一台不重要的机 器的访问权限,接下来上传嗅探器,嗅探有效的登录凭据,以获得更重要目标的访 问权限。

5.5.1 习题

1. 对 ICMP Echo Request Type 8 Code 222 数据包,运行 Microsoft Windows 的机器会发 送何种 ICMP 应答(type 和 code)?

A. Type 8 Code 0 B. Type 0 Code 222 C. Type 222 Code 0 D. Type 0 Code 0

2. 哪个 p0f 选项可设置 SYN+ACK 模式,以根据对产生的 SYN 的应答来识别远程操 作系统?

A. 无需选项。该模式是默认的 B. -A

C. -R D. -U

3. 哪些是有效的 amap 配置文件?(选择两个)

A. triggerdefs.dat B. appdefs.trig C. respdefs.dat D. appdefs.resp 4. amap 识别服务时,所用的触发数据包中的机器名称是?

A. amd-xp B. kpmg-pt C. abcd-123 D. thc-#1 5. scanrand 用于识别合法应答的方法称作:

A. ISN (Initial Sequence Number) B. Reverse Statefull Inspection C. Inverse SYN Cookies D. Stateless TCP/TP

6. paratrace 试图从注入的数据包产生哪种 ICMP 应答?

A. ICMP Type 11 Code 0 B. ICMP Type 0 Code 0 C. ICMP Type 0 Code 0 D. ICMP Type 3 Code 0 7. 以下哪个不是主动嗅探方法?

A. ARP spoofing B. ARP cache poisoning C. DNS resolver cache poisoning D. IP address spoofing 8. 哪个认证方案对字典攻击和蛮力攻击最敏感?

A. Kerberos B. NTLMv2 C. LANMAN D. MSCHAP

5.5.2 答案

1. D。Windows 用 Type 0 Code 0 响应 ICMP Echo Requests(Type 8 Code 0)。A 是不正 确的,因为它是 echo 请求,不是 echo 应答。B 是不正确的,因为 Windows 不使用 请求中的 code 值进行应答。C 是不正确的,因为 type 222 不是 echo 应答。

2. B。设置 SYN+ACK 模式的选项是-A。p0f 默认情况下以 SYN 模式启动,因此 A 不 正确。C 是不正确的,因为-R 将 p0f 设置为 RST 模式。D 是不正确的,因为-U 不

第 2 部分

指定一个模式,而是告诉 p0f 不显示未知的签名。D 该选项很方便,但并不改变匹 配模式。

3. B 和 D 是正确的。appdefs.trig 包含触发数据包而 appdefs.resp 包含已知的应答(含 一 个 基 于 nmap 的 nmap-rpc 文 件 , 称 作 appdefs.rpc )。 更 多 信 息 , 请 参 考 www.insecure.org/nmap/。A 和 C 是不正确的,因为 amap 并不使用二者指定的文件。

4. B。该字符串可以加入到 IDS 警报中(Snort 支持此功能)。A、C 和 D 都是不正确 的,amap 并不使用 amap-xp、abcd-123 或 thc-#1 作为主机名。

5. C。A 是不正确的,因为 scanrand 并不使用 ISN 来识别对所产生通信数据的合法应 答。B 和 D 是不正确的,因为两个概念都不像 Inverse SYN cookies 那样是具体的机 制。

6. A。所有 traceroute 类型的工具,包括 paratrace,都试图产生 ICMP TTL Exceeded 应 答(ICMP Type 11 Code 0)。B、C 和 D 是不正确的,因为都不是 TTL Exceeded 应 答。

7. D。伪装 IP 地址无法监听到比通常更多的信息。如果对机器配置了虚假的 IP 地址,

可能会造成重复地址的错误。这不是主动的,也不能迷惑交换机,且只能将他人的 通信数据发送到你的机器(即发送到你的机器对应的交换机端口)。A、B 和 C 是不 正确的,因为它们都是主动嗅探技术,能够将目的地不同的网络通信数据重定向到 你所在的机器。

8. C。LANMAN 是最古老的,漏洞最多。它会将口令分成两个部分,都转换为大写,

并将两个口令的后半部分都通过填充 NULL 字符来补足 14 个字符。A、B 和 D 是 不正确的,因为每一个都能更好地应对字典攻击和蛮力攻击。

在本章中,笔者将涵盖三种自动化渗透测试引擎并介绍 P ython。三种引擎 中有两个是使用 P ython 驱动的。

 P ython 技巧

 C ore IM P A C T

 C A N V A S

 M etasploit

近期发展出的黑客技术中比较有趣的一种是,非常复杂的自动化工具集。一定水平的 黑客自动化工具出现较早,比如 Nessus 和 ISS,但这些工具能够做到的最多就是漏洞扫描。

它们虽然使漏洞扫描和后续的报告自动化比较容易,但对漏洞的实际攻击仍然需要人的介 入,此时要求相关的人有一定的攻击经验,并能够在成功进行攻击的同时保证有漏洞的服 务不会崩溃。在本章中,笔者将介绍三种工具。来自 Core Security Technologies 的 IMPACT 在 Windows 上运行,是一种综合性的渗透测试引擎,带有对许多已知漏洞的可用攻击,只 需一次点击即可进行攻击。Immunity 的 CANVAS 的功能类似,并包含了一个强大的框架,

能够用于开发原创性的攻击。(对自行开发攻击的话题,本书其余部分将进行更多的讨论。)

由 HD Moore 和 spoonm 开发的 Metasploit,是一个免费的框架,用于开发自动化攻击。该 框架不错,而且还在不断改进。笔者在本章中,将向读者一一介绍这几种工具。

虽然点击 Windows GUI 上的一个按钮即可拥有整个网络,是一件很酷的事情,但知道 如何把真正的黑客与脚本小子区别开,是需要深入理解、定制、调整并进一步发明新的攻 击的能力。笔者介绍这些工具,希望能够激起读者的兴趣,深入研究其工作方式(要不断 阅读!)并推进攻击的技术的发展。但在这样做之前,读者至少需要了解 Python 的基础知 识,前面的软件包使用该脚本语言进行攻击,攻击的开发也使用该语言。笔者通过介绍 Python 来开始本章的内容。

第 2 部分

在文檔中 第 3 部分 攻击 101 (頁 145-152)