找回密码
 注册
搜索
热搜: 回贴
微赢网络技术论坛 门户 安全攻防 查看内容

pwdump--NT系统帐户安全审核利器

2009-12-14 01:56| 发布者: admin| 查看: 25| 评论: 0|原作者: 回梦游仙

前言:本文面向新手,因此不仅仅事简单地介绍pwdump工具的命令语法,也对shell等新手比较困惑的概念有所阐述,也许显得比较杂乱,见谅~~:P
众所周知,获得帐户,可谓对WINNT类系统渗透测试最重要的工作。为了达成这个目的,我们可以通过使用既定的缓冲区溢出来获得一个具有一定权限的shell;也可以使用密码破解,网络嗅探以及社交工程等办法得到一个帐户的密码,从而光明正大地使用一个帐户进入NT系统。对一个NT系统帐户安全角度进行全面的审计工作,最常用的方法即是使用pwdump来获取帐户的密码散列以配合L0pht Crack等密码破解工具来测试每个帐户的密码强壮度。

随着WINNT的逐步更新换代,pwdump使用的技术也在不断的进步

pwdump 未启用syskey措施的winNT4系统

pwdump2 已启用syskey措施的winNT4系统 - win2000[默认启用syskey措施] [本地获取散列]

pwdump3 已启用syskey措施的winNT4系统 - win2000[默认启用syskey措施] [远程获取散列]


NT系统帐户密码是保存在SAM[Security Accounts Manager 安全帐户管理器]文件中的,WIN2000的域控制器则不依赖SAM,它将密码保存在Active Directory 活动目录中。不过,针对不同的NT系统帐户密码保存措施,pwdump的历代产品都有其特别的获取散列的技术。

L0pht Crack 是众所周知的NT上最强大和易用的帐户密码破解工具,它需要的是帐户密码的散列,通过得到的帐户密码散列来破解密码,由于NT帐户密码使用的加密算法不够强大,以及L0pht Crack成熟的设计,使得黑客在一般情况下,只要获得密码散列就可以在不长的时间内得到全部帐户的密码。而获取的帐户密码散列的方法也有许多种,比如伪装成一个版本比较低的WIN系统来进行SMB协商欺骗等。不过服务器通过安全配置,可以拒绝接受低级SMB协商,这样就避免了密码散列在网络上传递;另外,由于交换网络的逐步普及,使得基于嗅探技术来获取帐户密码散列的方法更加难于奏效,于是pwdump系列工具这种从注册表中转存出帐户密码散列的方法日益受到黑客和安全审核人员的重视。

最早的pwdump第一代由 Jeremy Allison 编制,它事实上只是简单的从注册表中提取密码散列并转存为UNIX系统的/etc/passwd 文件的格式,以供L0pht Crack等破解工具破解,前提是你得具有administrator权限,由于之后微软在之后的SP中提供了的对syskey增强SAM文件加密的策略,因此这个工具不再对升级后的系统起作用。

之后的 pwdump2 [程序编制:Todd Sabin] 可以算是具有比较高的编制技巧,它使用DLL注射技术来将自己的代码[这些代码在samdump.dll中]加载到另一个高特权进程下,这样将能执行一个直接访问syskey 加密后密码的内部API调用,也就事实上绕过了syskey提供的128位MD5加密保护策略以获取帐户密码散列。讽刺的是,pwdump所利用的高特权进程事实上正是微软引以自豪的WIN2000安全架构的一部分 Local Security Authority Subsystem [本地安全权威子系统]的进程 lsass.exe ,pwdump2 将把samdump.dll注射到lsass.exe中,在lsass.exe的高特权的进程地址空间中执行自己的代码,绕过几乎无法破解的syskey策略,使之成为一道马其诺防线。pwdump2 只能使用于本地,也就是说待破解帐户属于哪个系统,则pwdump必须工作在那个系统的内存空间中,说得通俗一点:如果你打算在自己的机器上使用pwdump2对一台远程NT系统进行帐户安全测试[或者说:入侵],则必须先获得一个来自目标系统的shell

pwdump2 有两个版本,比较早的版本需要使用者手工获取目标进程[一般是lsass.exe]的PID,可以使用Pulist,pslist等工具来操作,当然最简单的还是使用新版的pwdump比较好,自动获取PID,便宜了懒人。

下面是一个例子,我们将利用由netcat建立的shell,在目标机器上运行pwdump2,当然,pwdump2.exe和 samdump.dll 已经事先传输到那了。

------------------------------------------------
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\sheepxxy>nc [IP] [port]

Microsoft Windows 2000 [版本 5.00.2195]
(C) Copyright 1985-1999 Microsoft Corp.

C:\>pwdump2
Administrator:500:01cfe7eff5ebc5b4bd7fb87c6eac93bc:562cab23fe56ebac8e9f2f4bc3ac2bb7:::
Guest:501:ee4dbc678be7caba9b5e78f653bac8f2:b48cc3e7e6e5f3ff2c8b9cab787b4c1f:::
hackart:1016:63245e87b33bbba9a8f9f4e5dd6d944e:b4f6120c78a8a7acbb36f2e6964bcfe5:::

...........其余帐户密码散列此处省略.........

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

对上面这个shell 的解释:“Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp.”这表明安全审核工作者自己的机器是Windows XP的操作系统,同样的,下面的:“Microsoft Windows 2000 [版本 5.00.2195] (C) Copyright 1985-1999 Microsoft Corp.”则表明本次待测试的机器系统是Windows 2000,笔者特意在此阐叙得详细一些,因为往往很多新手会不明白使用shell远程交互是怎么回事。事实上本例在同一个cmd环境中,使用的nc.exe和pwdump2.exe 命令在执行上是不一样的: nc.exe 的进程运行在本地内存空间,它在本地机器[Windows XP]的操纵之下与远程系统[Windows 2000]交互;而pwdump2.exe运行在远程机器内存空间中,远程机器执行完毕后将结果返回给你。

另外值得注意的是帐户名之后的数字,比如本例中Administrator之后的500、Guest之后的501,这些对你来说也是很重要的信息,它们的名称叫Relative Identifier [相对标识符] 简称RID,它是SID的一部分,WIN2000系统使用SID来标识帐户,RID在其中标识帐户的权限,本例中的Administrator的帐户RID是500,事实上这也是默认的设置,不管你给系统内置的Administrator改个多不起眼的名称,有经验的人会根据RID是否等于500来判断谁是管理员。其它用户的RID:Guest是501,一般用户是从1000开始的,比如这里的hackart,它的RID是1016,表明他是第15个普通用户。

pwdump2 将获得的帐户密码散列[也就是你看到的那堆类似乱码的东西]直接输出到屏幕上,你可以复制->另存为文本文件,也可以直接输出为文本文件。剩下的事情就交给L0pht Crack 等密码破解工具了。

pwdump2只能使用于本地,即必须运行在待测试的目标系统内存空间中,局限性比较大,于是也出现了可以远程获取帐户散列的下一个版本pwdump3,它是由 www.ebiz-tech.com 开发的,你可以在那下载到它,下载之后将其解压缩到L0pht Crack的目录下:

与pwdump2 不同的是,它需要利用SMB服务,即远程系统开放tcp端口139或者445

命令语法格式:pwdump3 ip [outputhash-filename] [username]
------------------------------------------------
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\sheepxxy\lc3\pwdump3>pwdump3 192.168.0.88 samhash.txt administrator

pwdump3 (rev 2) by Phil Staubs,ebusiness
technology, 23 Feb 2001 Copyright 2001
e-business technology, Inc.
This program is free software based on pwdump2
by Todd Sabin under the GNU General Public
License Version 2 (GNU GPL)
Please enter the password>*************************
Completed.
------------------------------------------------

之后使用记事本打开samhash.txt,里面就有你得到的帐户散列,下面可以配合LC3等工具来破解。

结束语;本文提及的帐户安全审核方法与黑客入侵破解方法在技术角度来说并无不同,但是未授权的入侵、破解系统行为属于计算机犯罪!请斟酌使用自己掌握的技术。

最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 09:45 , Processed in 0.168663 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部