在这个系类的第一部分中,我们揭示了windows创建和储存密码的机制。我们也涉猎了一点两种加密方法的弱点和破解的方法。在这系列的第二篇也是最后一篇文章中,我会实战用网上免费的工具一步一步的来破解一次密码给你看。
注意!以下这些技术只为学习目的,请勿用于非法用途!
获取密码HASH
为了破解密码你应该先获取密码在windows中储存的位置,这些hash储存在windows在SAM文件中,这个文件在C:\Windows\System32\config不过在windows启动时这个文件是不能被读取的,这个文件同样也储存在HKEY_LOCAL_MACHINE\SAM中不过在windows启动时,这个文件也是不能读取的。
下面几种方法可以审计你的机器,用哪种方法取决于你对要审计的机器有多大的权限。
物理接触
如果你可以物理接触那台机器的话,最有效的办法就是在那台电脑上进入另一个系统,如果你习惯使用Linux系统的话,你可以引导一个linux系统,挂载上WINDOWS所在的盘,把SAM文件拷贝到别的地放
如果你用不惯这种方式,你可以用P. Nordahl著名的一款工具Offline NT Password Editor,下载链接~pnh/ntpasswd/ 这个linux系统设计出来的目的就是为了帮助忘了密码的人重置密码,这对我们很有用因为我们可以也用这个发行版简单的读取SAM文件并且得到hash数据。
为了完成这些,启动CD镜像系统,选择有SAM和注册表文件的系统分区。
选择
重置密码【1】
启动内置的注册表编辑器【9】
浏览SAM\Domain\Account\Users,浏览你想要进入的哪个账户,使用命令cat查阅文件中储存的hash值。文件以16进制输出,可以经过简单的转换它。
(1)用16进制输出的sam文件
在实际中使用Offline NT Password Editor去重置密码时。确保你不没有用文件加密系统{Encrypted File System (EFS)}或者在Windows XP/2003之后发布的版本。如果你坚持这样做,你的系统会丢失EFS keys,会导致比忘记密码更多的麻烦事。
从命令行进入
如果你想执行密码审计并且不能物理接触机器时,但是你有命令行或者VNC界面,你可以使用多功能的Fizzgig fgdump,由这里获得
你在目标主机下载了fgdump之后你可以直接简单的不带参数的运行它会导出一个本地机器的SAM文件
(2)正确配置fgdump运行
运行之后这个程序会在痛目录下面创建一个txt文件,其中包含了一个所有用户的账户和他们LM hash和MTLMv2hash
(3)文件被fgdump导出了
从互联网进入
最后,如果你没有任何和机器互动的权限,但是你又想要得到它的hash,你可以在你想要获取hash的网段中嗅探,它们会在验证时传送hash。当然,只有在客户端发送验证到域控服务器时或者进入其他客户端时才可以,这时候运气比你全副武装要有用的多了.
如果你和要截取密码的客户机在同一个网段,当两台计算机在传输密钥密文时你可以使用cain截取密码hash。cain可以从这里下载 你可以使用cain进行一种中间人攻击叫做ARP毒化,利用ARP协议的不足,使两台机器的流量通过你的电脑,当两台机器的流量通过你的电脑时,你可以使用cain内置的网络嗅探,截取NTLM hash。关于ARP毒化攻击的原理又是另外一门课,这里我们只涉及一点,如果你想学更多我接下来会介绍。
使用cain破解密码
现在我们已经有了hash了,接下来我们应该做的事情就是我们应该破解他们了,如果你已经下载安装了cain,纳尼已经可以用它破解简单的LM hash了。
如果你没有下载cain你应该去下一个,如果你安装cain你也应该安装一个Wincap,一款cain使用的流量捕捉软件驱动。你可以打开软件界面,界面顶端有一个cracker按钮,选择左边的LM&NTLM Hashes,右击中间的空白地方,选择Add to list.
cain不接受直接复制黏贴hash,你应该放在一个txt文件里,格式参照以下的文件,
如果你是使用fgdump到处的文件,那么那个文件可以直接使用。
(4)
如果你手动提取密码你需要为每个用户在txt文件中创建单独一行,每行应该包含username,RID,hashes。
格式如下:
Username:RID:LMHash:NTLMHash:::