Windows server 2012 用户hash抓取方法研究(本地+域)
在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次
图片上不了 没有本地图片上传
千真万确可以抓出来明文
windows server 2012 如果管理登陆过 服务器没重启的情况下 照样可以抓取明文密码的 今天我遇到棒子的一个 windows server 2012 的机器 进去抓到明文了 然后想起来楼主发过的这个技术文章 补充一下 上图看下
这个要顶起..相当全相当NB 谢谢了..正遇到个抓不了的..等下去试试
这文章果断要收藏
质量不错 认真学xi!
最近老遇到2012的 ,这回试试新方法。。。
有时间搭环境测试下
总结性的东西加实践 谢谢分享
这个太牛逼啦~
就是为了这篇文章申请的帐号。
注册表导出的HASH是否已经不适用2012?
这个真不错,受教了, 以前只是用其中几个 没涉及这么深。
感谢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%%%
很厉害啊,,,
感谢楼主 分享!!!!
很好。。学xi了。
我记得之前在网上有伙计说的是国外的一款新工具,可以抓到明文密码,不知能否运用在2012上
先收藏在研究
本地的话有效的,这个跟注册表导出是一样的
分析的太具体了。受教了。![](images/smilies/default/bq59.gif)