Windows server 2012 用户hash抓取方法研究(本地+域)

2012-11-21 10:17:37 69 20707 18


http://msdn.itellyou.cn/下载了一个windows server 2012 (64) - DVD (Chinese-Simplified),然后去官方下了个vmware 9.0 (8也是可以装的,但是对于有强迫症的我来说,选windows 2008装2012总是不舒服)。
顺便提供俩注册码,方便基友们安装,windows 2012: XC9B7-NBPP2-83J2H-RHMBY-92BT4
vmware 9.0: 5U63Y-6QL1K-GZ7K0-ZV17M-3CMQ0
安装时有点需要注意,注意选择GUI版本,我就因为无脑next装成了Core版,没有桌面,悲剧的重装了。

本地hash抓取测试

为避免文章过长,这里就不贴出详细测试过程了。经过我的测试,发现本地用户hash抓取的方法中,以下几种方式是可行的:
注册表导出+cain
Pwdump7.exe
QuarksPwDump.exe
mimikatz.exe

这几种方式都可以抓到本地用户hash,其中mimikatz.exe只能抓到登陆过的账户的hash值,
已经抓取不到明文的密码了,但是,有一些有意思的东西,直接上图:

仔细看图,可以发现,wdigest的内容为n.a. ,也就是没有抓取到明文密码。看来微软还是有一点改进的,注入lsass.exe进程已经抓不到明文了。
但是,重点是!!!LM hash被抓出来了,而且完全是正确的!!!
当密码长度小于等于14位,只要有lm hash基本上都是秒破,我见过很多管理员的密码根本没有14位长。从vista开始就已经不保存lm hash了,但是没想到2012里还能抓到lm……

然后wce.exe gethashes.exe gsecdump.exe抓取本地用户hash都失败了,其中wce更让人无语
执行后会导致服务器直接重启

不过我倒是顺带发现psexec启用system权限的方法对于2012还是适用的


域用户hash抓取测试

在虚拟机中搭建好域,域控制器就是这台windows server 2012,另外再加入一台windows server 2003的成员机器作为测试。
域中添加AdminUser, User1用户,其中AdminUser是域管理员,再加上本地用户Administrator在安装域时会自动添加成域管理员,所以总共是3个有效用户,2个域管理员。

首先测试在2003的成员机器上登陆域用户时的情况,可以用mimikatz和各种工具直接抓取明文,这个和以前的情况一样,就不贴图了。

在windows server 2012上用mimikatz直接抓取域登陆用户hash,测试成功


接下来是重头戏,如何抓取所有域用户的hash
gethashes.exe 和gsecdump.exe都直接悲剧,这意味着想要轻量级的抓取所有域用户hash已经很难了。

在线抓取失败,没办法只能祭出终极武器:离线抓取!
第一种办法: vssown.vbs + libesedb + NtdsXtract
详细出处参考这里:http://pauldotcom.com/2011/11/safely-dumping-hashes-from-liv.html
  首先用vssown.vbs把域数据库ntds.dit和SYSTEM文件复制一份,然后把复制文件下载回本地,再利用libesedb分解ntds.dit文件,最后用NtdsXtract分析出用户hash信息,
这种方法除了能获取用户当前密码hash外,还能获取历史密码hash值,能给社工带来更多的帮助。除此之外还能获取很多其他的信息,比如所有计算机列表,操作系统等等保存在域数据库中的数据。
具体的操作过程就直接上图了,不懂得可以去看那篇英文的文章
不过有一点需要注意,那篇文章过后vssown.vbs有更新过,在创建shadow copy时需要指定盘符,不然会有个下标越界的错误,这是为了方便当域数据库保存在D盘时的情况。

然后把ntds.dit和SYSTEM这两个文件下载回本地,放到BT5里面提取hash:


可以看到成功的提取了域里面所有用户的密码hash
在实际渗透时需要注意的问题:
域的数据库根据域的规模大小不一,我见过最大的有5G,所以下载回本地时推荐压缩后再下载
提取hash时最好导出到文件中,直接在后面加 >filename.txt

第二种办法:ntdsutil.exe + QuarksPwDump.exe
  Ntdsutil.exe 是域控制器自带的域数据库管理工具。从windows server 2008 开始就有了。
这个方法在QuarksPwDump.exe程序的Readme.txt里面有详细的讲解(windows 2008那个,适用于windows server 2012)。按顺序运行下列命令,不用带#号
#ntdsutil
#snapshot
#activate instance ntds
#create
#mount {GUID}
#copy c:\MOUNT_POINT\WINDOWS\NTDS\NTDS.dit c:\NTDS_saved.dit
#unmount {GUID}
#quit
#quit
上图:

然后用QuarksPwDump.exe导出hash值,运行命令:
QuarksPwDump.exe --dump-hash-domain --ntds-file c:\ntds.dit


注意:我发现其实作者忘了一个步骤,是删除快照信息,如果域管理员是利用这个工具进行管理的话,会很容易发现有人创建过快照,所以在quit之前应该执行delete {GUID}命令
  
  以上就是两种比较重量级的抓取hash的方法了。第一种方法我经常用,从2003-2012通杀,有时候会遇到vssown.vbs出错,
一般是在windows 2008 R2上面出错比较多,这时候改用vssadmin.exe就OK的,vssadmin.exe的用法、功能和vssown.vbs差不多,vssadmin.exe在2008 R2中自带。
具体使用方法参考:http://technet.microsoft.com/en-us/library/cc754968%28v=ws.10%29.aspx
  第二种也可以通杀2003到2012,但是2003里面比较麻烦,需要在图形界面中手动备份数据库才行,2008 和 2012则可以在命令行下搞定。另外用vssown.vbs复制出来的ntds.dit数据库不能用QuarksPwDump抓取。

补充:cmd shell下的抓取方式
  前面讲了两种抓取所有域用户hash的方法,但是都是在交互的图形化界面中进行的。实际的渗透中,最好不要用mstsc登录域控制器,
     很可能上面装有监控远程桌面登录信息的各种工具。更实际的情况应该是我们从一台成员服务器上通过远程的cmd shell抓取域用户信息。
  我一般用psexec开启一个远程cmdshell,如果没有域管理员密码明文,就用wce进行hash注入,再用psexec就可以了。
  第一种方法主要是vssown.vbs的操作,没有任何交互式的命令需要执行,所以没有什么特别的,在psexec下面直接操作即可
  第二种方法中ntdsutil.exe的命令是交互式的,需要一步步输入,而psexec开启的shell是没办法这么做的,会直接卡死在那。
  于是我尝试了下把命令写在一起,就像用netsh配置网络信息时一样,发现是可以用的,只不过有空格的地方用引号就行了。
  所以ntdsutil的命令就可以写成
ntdsutil  snapshot  "activate  instance  ntds"  create  quit  quit
ntdsutil  snapshot  "mount {GUID}"  quit  quit
copy  MOUNT_POINT\windows\NTDS\ntds.dit  c:\ntds.dit
ntdsutil  snapshot  "unmount {GUID}"  quit  quit
ntdsutil  snapshot  "delete {GUID}"  quit  quit
接下来就是导出hash,执行: QuarksPwDump.exe --dump-hash-domain --ntds-file c:\ntds.dit
具体的过程如下:



总结:
  测试了这么多,最大的收获应该是mimikatz还能抓到lm hash。其实还是有很多工具可以抓到hash的,期待wce的更新,他的hash注入功能还是很实用的。
另外我发现有时候psexec在退出后,远程服务器的psexec的服务并没有被删除,这点相当危险,而且psexec会安装服务,很容易被管理员发现。
理论上psexec可以用wmi远程执行命令代替,但是一直没有去研究那个,如果哪位大牛了解,望不吝赐教。
  最后,吐槽下windows server 2012烂到掉渣的用户体验,用起来跟翔一样……

附件是一份详细测试的pdf,跟这里内容差不多,就多了点本地测试的图片,第一次发帖,技术含量不高,各位大牛贱笑了。。。


补充下各工具的下载地址:
http://code.google.com/p/quarkspwdump/
http://ptscripts.googlecode.com/svn/trunk/windows/vssown.vbs
http://sourceforge.net/projects/libesedb/
http://www.ntdsxtract.com/downloads/ntdsxtract/ntdsxtract_v1_0.zip

关于作者

评论69次

要评论?请先  登录  或  注册
  • 49楼
    2013-4-13 16:04

    图片上不了 没有本地图片上传 千真万确可以抓出来明文

  • 48楼
    2013-4-13 15:58

    windows server 2012 如果管理登陆过 服务器没重启的情况下 照样可以抓取明文密码的 今天我遇到棒子的一个 windows server 2012 的机器 进去抓到明文了 然后想起来楼主发过的这个技术文章 补充一下 上图看下

  • 47楼
    2013-1-31 14:46

    这个要顶起..相当全相当NB  谢谢了..正遇到个抓不了的..等下去试试

  • 46楼
    2012-12-27 13:08

    这文章果断要收藏

  • 45楼
    2012-12-25 14:38

    质量不错 认真学xi!

  • 44楼
    2012-12-25 11:35

    最近老遇到2012的 ,这回试试新方法。。。

  • 43楼
    2012-12-25 11:01

    有时间搭环境测试下

  • 42楼
    2012-12-22 15:48

    总结性的东西加实践 谢谢分享

  • 41楼
    2012-12-16 18:26

    这个太牛逼啦~

  • 40楼
    2012-12-13 23:21

    就是为了这篇文章申请的帐号。

  • 39楼
    2012-12-10 10:49

    注册表导出的HASH是否已经不适用2012?

  • 38楼
    2012-12-9 21:20

    这个真不错,受教了, 以前只是用其中几个 没涉及这么深。

  • 37楼
    2012-11-29 15:53

    感谢LZ信息的测试 , 我测试的结果 mimikatz.exe 在2012 Datacenter 可显明文。 wce 1.3 x86在 WIN2K3 X86上运行 密码含有% 可正常显示 , wce.exe x64 在 WIN2K3 X64上运行后没反应。 主机名: WIN-RJBTJ5NI5A7 OS 名称: Microsoft Windows Server 2012 Datacenter OS 版本: 6.2.9200 暂缺 Build 9200 OS 制造商: Microsoft Corporation OS 配置: 独立服务器 OS 构件类型: Multiprocessor Free 注册的所有人: Windows 用户 注册的组织: 产品 ID: 00184-90000-00001-AA620 初始安装日期: 2012/11/29, 14:40:34 xi统启动时间: 2012/11/29, 15:47:35 xi统制造商: VMware, Inc. xi统型号: VMware Virtual Platform xi统类型: x64-based PC ----------------------------------------------- C:\XXX>mimikatz.exe mimikatz 1.0 x64 (beta) /* Traitement du Kiwi (Jul 14 2012 15:19:47) */ // http://blog.gentilkiwi.com/mimikatz mimikatz # privilege::debug Demande d'ACTIVATION du privilège : SeDebugPrivilege : OK mimikatz # inject::process lsass.exe c:\xxx\sekurlsa.dll PROCESSENTRY32(lsass.exe).th32ProcessID = 536 Attente de connexion du client... Serveur connecté à un client ! Message du processus : Bienvenue dans un processus distant Gentil Kiwi SekurLSA : librairie de manipulation des données de sécurités dans LSASS mimikatz # @getLogonPasswords Authentification Id : 0;190380 Package d'authentification : NTLM Utilisateur principal : Missll Domaine d'authentification : WIN-RJBTJ5NI5A7 msv1_0 : lm{ af01df70036ebacff82e44ec0938f4f4 }, ntlm{ db1d3b8e9a 069f5890339a33328e42a2 } wdigest : abc123!@# tspkg : abc123!@# kerberos : abc123!@# ----------------------------------------- 主机名: MICROSOFC059AC OS 名称: Microsoft(R) Windows(R) Server 2003, Enterprise Edition OS 版本: 5.2.3790 Service Pack 2 Build 3790 OS 制造商: Microsoft Corporation OS 配置: 独立服务器 OS 构件类型: Multiprocessor Free 注册的所有人: Microsoft 注册的组织: 产品 ID: 69813-651-5190184-45685 初始安装日期: 2011-3-18, 0:35:06 xi统启动时间: 0 天 0 小时 3 分 46 秒 xi统制造商: VMware, Inc. xi统型号: VMware Virtual Platform xi统类型: X86-based PC C:\>wce.exe -w WCE v1.3beta (Windows Credentials Editor) - (c) 2010,2011,2012 Amplia Security - by Hernan Ochoa ([email protected]) Use -h for help. MICROSOFC059AC$\WORKGROUP: Administrator\MICROSOFC059AC:abc123%%%

  • 36楼
    2012-11-26 15:27

    很厉害啊,,,

  • 35楼
    2012-11-26 09:02

    感谢楼主 分享!!!!

  • 34楼
    2012-11-26 08:42

    很好。。学xi了。

  • 33楼
    2012-11-24 21:17

    我记得之前在网上有伙计说的是国外的一款新工具,可以抓到明文密码,不知能否运用在2012上

  • 32楼
    2012-11-24 19:25

    先收藏在研究

  • 31楼
    2012-11-24 14:24

    本地的话有效的,这个跟注册表导出是一样的

  • 30楼
    2012-11-24 07:50

    分析的太具体了。受教了。