介绍

在这个系类的第一部分中,我们揭示了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,下载链接http://pogostick.net/~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,由这里获得http://foofus.net/goons/fizzgig/fgdump/

你在目标主机下载了fgdump之后你可以直接简单的不带参数的运行它会导出一个本地机器的SAM文件

(2)正确配置fgdump运行

运行之后这个程序会在痛目录下面创建一个txt文件,其中包含了一个所有用户的账户和他们LM hash和MTLMv2hash

(3)文件被fgdump导出了

从互联网进入

最后,如果你没有任何和机器互动的权限,但是你又想要得到它的hash,你可以在你想要获取hash的网段中嗅探,它们会在验证时传送hash。当然,只有在客户端发送验证到域控服务器时或者进入其他客户端时才可以,这时候运气比你全副武装要有用的多了.

如果你和要截取密码的客户机在同一个网段,当两台计算机在传输密钥密文时你可以使用cain截取密码hash。cain可以从这里下载http://www.oxid.it/cain.html 你可以使用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:::

选择文件,选择它,点击下一步导入hashes,你可以使用暴力破解,右键点选你想破解的账户的LM hases,暴力破解方法是穷举可能的密码密文和hash对比直到找出符合的为止,你可以自定义破解字符/最小/最大字符长度,因为LM会自动把所有字符转换成大写,所以你不必输入小写字母,而且最大长度是7位。

在我们的测试场景中我们的密码是password123我们可以立即看到后半部分密码是“Plaintext of 664345140A852F61 is D123”在一台现代计算机中,一个LM密码破解最多不会超过三个小时。

(5)成功破解LM密码hash

使用Johe the ripper破解密码

cain对破解LM密码非常好用,不过对于破解NTLMv2密码非常慢,如果你不排斥使用命令行界面的话,那么这款John the Ripper工具是破解NTLMv2密文最快的工具了。

你可以从这里下载John the Ripper

http://www.openwall.com/john/

当你提取了压缩文件时,你会发现一个可执行文件386.exe在目录里,jone可以进入几个不同的模式,不过你只要在命令行中使用默认模式,提供包含hash的文件给它作为参数

(6)jone the ripper尝试破解一个密码

破解完成后,jone the ripper会显示cracked passwords并且把结果储存在john.pot文件中,一般我们使用默认模式就可以了,不过我们也可以选择以下几种模式:

  • Single Crack Mode – Uses variations of the account name

  • Wordlist Mode – Relies on a dictionary for password guesses

  • Incremental Mode – Relies on a brute-force style attack

  • External Mode – Relies on another (user supplied) application for password guessing
    john每个模式都很有用,这款软件是我最常用的破解hash软件。

    使用彩虹表破解密码

    当你破解一个非常复杂的NTLMv2密码需要花费大量的时间时,最合理的办法应该是使用彩虹表。彩虹表是事先把所有可能的密码生成好,然后直接对比加密密文,所以彩虹表非常占硬盘空间。在以前,低配的处理器和硬盘无法储存彩虹表,不过在现代计算机的帮助下,正规渗透测试师和恶意的入侵者可以把彩虹表放在外接的硬盘上。

    找到一个有储存彩虹表的地方下载你只需要google就可以了,不过对一般的密码,你可以使用在线web破解。

    预防密码被破解

    人们总是想创建一个没有人能破解的加密方式,不过其实这个想法是有点问题的。这个想法是建立在电脑生成随机数然后加密,但是实话来说电脑并不能做到真正的“随机”,所谓的随机建立在程序逻辑上,所以它只能做到使其被破解的时间延长,换句话来说就是,当破解它的成本比它本身的成本高时就可以了。

    使用复杂密码并且经常更换
    最有效的放置别人破解密码的方法是把自己的密码弄得非常复杂,如果你的密码包含大小写,数字,特殊符号,并且长度很大,它一时间就不能被破解。再加一层保险就是你经常改你的密码,当攻击者破解了你的密码时,你的密码早就改了。没有比这个更好的办法了。

    关闭LM加密

    到现在你应该了解到了LM算法的弱点了,不过应该庆幸的是我们已经不用这个算法了,现代计算机可以简单的配置注册表来使用NTLMv2来加密。
    你在注册表中打开HKLM\System\CurrentControlSet\Control\LSA关闭LM加密。并且创建一个DWORD命名为NoLMHash并且赋值为1
    另外的一个步骤就是关闭网络传输中的LM认证,再次打开HKLM\System\CurrentControlSet\Control\LSA将CompatibiltyLevel设置为3那么他就只会传输NTLMv2hash到域控机器了,如果说你设置为5那个么机器会只接受NTLMv2的认证请求,这个适合服务器。
    不过这个唯一的缺点就是会对网络里的Windows NT4计算机造成麻烦,不过如果你还是使用这种老版本的系统,我唯一能给你的安全建议就是把它们扔了!

    使用syskey

    syskey是windows的一个对SAM文件进行128位的加密,syskey使用用户创建的key对SAM文件进行加密,一旦开启它就不能结束。

    我们应该了解到的是,SYSKEY只加密SAM文件本身,目的是为了防止SAM文件被复制。不过SKSKEY不能防止从内存中提取SAM文件的软件,例如cain和fgdump
    你可以从微软官方文档中找到对SYSKEY的解释ttp://support.microsoft.com/kb/143475.

    结论

    破解密码对入侵者来说是一项有用的技能,不过对系统管理员来说,windows如何创建/储存密钥,并且他们会被如何偷取,破解也是很有必要的,当有潜在的入侵者多数对LM加密的密码和见到那的密码流口水。记住,打仗不能对战况一知半解,如果说你对这篇文章一知半解,那我无能为力了。你应该使用这些技巧去对付想破解你的系统密码的入侵者。

我是如何破解你的WINDOWS密码的 ?(2)的更多相关文章

  1. 我是如何破解你的WINDOWS密码的 ?(1)

    我是如何破解你的WINDOWS密码的 ?(1) 密码可以看作我们主要,甚至某些情况下唯一可用于防范入侵的防线.就算入侵者无法在物理上接触到计算机,对于对外的Web应用,他们依然可以通过远程桌面协议或身 ...

  2. Kali Linux Web 渗透测试视频教—第二十课-利用kali linux光盘或者usb启动盘破解windows密码

    Kali Linux Web 渗透测试视频教—第二十课-利用kali linux光盘或者usb启动盘破解windows密码 文/玄魂 目录 Kali Linux Web 渗透测试视频教—第二十课-利用 ...

  3. [转帖]利用hydra(九头蛇)暴力破解内网windows登录密码

    利用hydra(九头蛇)暴力破解内网windows登录密码 https://blog.csdn.net/weixin_37361758/article/details/77939070 尝试了下 能够 ...

  4. Windows密码破解工具ophcrack

    Windows密码破解工具ophcrack   Windows用户密码都采用哈希算法加密进行保存.Kali Linux内置了专用破解工具ophcrack.该工具是一个图形化界面工具,支持Windows ...

  5. Windows密码获取和破解(初探)

    Windows密码获取和破解 本文只是简单的讲明密码获取和破解 具体的操作细节均以模糊或具体代码混淆等方式避开 如有兴趣请自行研究,本文不做细说~~~ 获取思路: Windows密码一般是以" ...

  6. 基于HOOK和MMF的Windows密码渗透技术

    随着计算机与网络的普及,信息安全越来越成为人们所普遍关心的大事.密码的渗透与反渗透在此领域表现的愈演愈烈.本文深入分析了各个版本Windows密码的特点,尤其是针对windws2K/XP安全性提高的情 ...

  7. 安天透过北美DDoS事件解读IoT设备安全——Mirai的主要感染对象是linux物联网设备,包括:路由器、网络摄像头、DVR设备,入侵主要通过telnet端口进行流行密码档暴力破解,或默认密码登陆,下载DDoS功能的bot,运行控制物联网设备

    安天透过北美DDoS事件解读IoT设备安全 安天安全研究与应急处理中心(安天CERT)在北京时间10月22日下午启动高等级分析流程,针对美国东海岸DNS服务商Dyn遭遇DDoS攻击事件进行了跟进分析. ...

  8. 教你破解隔壁妹子wifi密码,成功率高达90%

    破解wifi密码听起来很复杂,实际上也不是非常的复杂,今天教大家如何破解隔壁妹子的wifi密码. 首先声明:本教程只用于技术交流,请勿用于非法用途.请严格遵循相关法律法规.为了保护本例中被破解密码者信 ...

  9. 破解ZIP加密文件密码fcrackzip

    破解ZIP加密文件密码fcrackzip ZIP是最常见的文件压缩方式.由于其压缩算法开源,主流操作系统都支持这种压缩算法.ZIP压缩方式支持密码加密.加密的时候会在文件头部保存密钥相关信息.利用这个 ...

随机推荐

  1. centos7 重定向符号

    这篇只记录使用对应的使用方法,原理后期更新 >> 追加输出 <<追加输入 >输出 <输入 将正确和错误信息同事保留到一个文件 echo "this is ...

  2. Solon 开发,五、切面与环绕拦截

    Solon 开发 一.注入或手动获取配置 二.注入或手动获取Bean 三.构建一个Bean的三种方式 四.Bean 扫描的三种方式 五.切面与环绕拦截 六.提取Bean的函数进行定制开发 七.自定义注 ...

  3. Parallel.For实现

    static class MyParallel { //4.0及以上用Task, Task的背后的实现也是使用了线程池线程 //static List<Task> tasks = new ...

  4. JSP页面打印输出,两种方法。out、《%=

    使用out.println()输出: <%@ page contentType="text/html;charset=UTF-8"%> <html> < ...

  5. 5.13-jsp分页功能实现

    1.分页共能的实现 可以在dao层中创建方法 List<Member> pager(Long pageSize, Long pageNum);(方法灵活运用)其中传入的两个参数pageSi ...

  6. 记录未解决的问题:docker中无法启动mysqld

    首先在docker中安装mysql server的包: sudo yum install mysql sudo yum install mariadb-server mariadb /usr/libe ...

  7. VUE3 之 插槽的使用 - 这个系列的教程通俗易懂,适合新手

    1. 概述 非理性定律告诉我们: 人们总是习惯于以情感去判断眼前的事物,非理性的去做决定. 对于长远的利益,人们更愿意去选择短期的利益. 因此在做决定前要让自己冷静,理性的分析,让自己看的更远. 言归 ...

  8. Spring系列8:bean的作用域

    本文内容 bean定义信息的意义 介绍6种bean的作用域 bean定义信息的意义 Spring中区分下类.类定义信息,类实例对象的概念?不容易理解,以餐馆中点炒饭为例. 类: 相当于你看到菜单上炒饭 ...

  9. http中的8种请求介绍

    HTTP协议的8种请求类型介绍 HTTP协议中共定义了八种方法或者叫"动作"来表明对Request-URI指定的资源的不同操作方式,具体介绍如下: OPTIONS:返回服务器针对特 ...

  10. 《Spring Boot 实战纪实》之过滤器

    导航 什么是过滤器 Spring的过滤器 Filter定义 过滤的对象 典型应用 过滤器的使用 Filter生命周期 过滤器链 自定义敏感词过滤器 新增自定义过滤器 添加 @WebFilter注解 添 ...