近期发现多家安全媒体发布NTLM协议漏洞的文章。他们越说越术语,越说越官方,如此这般下去,他们写出来到底给谁看?大雅就是俗,让我来一篇俗文。啥是NTLM呢?微软windows系统的用户账号存储密码哈希值的方式。一般有LM,NTML,NTLMv2.(NT LAN Manager)windows系统的局域网管理,管理账号密码存储方式的协议。有这个认知就行了。

比如你设置密码为password123456,那么NTML的存储方式就是把它转换成了哈希值存储。第一次听说哈希?比如把1,变成哈希可能会是flkadjl2135等乱码。MD5就是最常见的哈希函数之一,用来把1,输出成为乱码。还有更多的哈希函数,特征就是输出结果不一样。

哈希有一个特征,那就是把明文(比如1)输出为乱码(密文,比如abcd),我们可以把1-1000一个个的用哈希函数输出结果,手里就有1-1000对应的哈希值,这个输出结果被称为彩虹表。破解密码就是根据生成的密文,看对应的明文是多少。其实就是在表中搜索,abdc对应的是不是1。

要防止密码被破解的可能,就是把密码设置得更长更复杂,比如设置为:password123456/-*ABCD&*==***¥¥,即使用彩虹表或超级计算机群也无法在可接受的时间内对其进行枚举的生成密文,再去搜索密文对应的明文是什么。

要拿到windows系统中的账号密码,我们需要权限(SYSTEM权限)才能获取到,安全账号管理器(SAM)数据库中存储的windows用户和密码。有工具可以拿到这些,比如大名鼎鼎的meterpreter。

就算拿到账号密码又有什么用呢,我们破解不了密码的哈希值。不需要破解,直接拿它去登陆。这样,我们就拥有了该系统的高权限账号。

还有一种身份认证环节,是kerverso令牌,如果你用meterpreter成功入侵系统,而域管理员用户登陆过这台机器,一个kerbreos令牌就会发送到服务器上并将在随后的一段时间之内有效。我们可以使用这个活动令牌来入侵系统,通过meterpreter可以假冒域管理员的角色,而不需要破解密码。

扯了这么多协议,从来没看见有人指一指在哪,我来指。如图,大概所有的其他类似安全认证协议都差不多就集中在这里。

不同的系统,显示出不一样的选项。多个系统观察就知道了。

聊聊NTLM认证协议的更多相关文章

  1. NTLM认证协议及SSPI的NTLM实现

    没错,NTLM就是你听说过的那个NTLM.是微软应用最广泛的认证协议之一. NTLM是NT LAN Manager的缩写,这也说明了协议的来源.NTLM 是 Windows NT 早期版本的标准安全协 ...

  2. 域渗透基础之NTLM认证协议

    域渗透基础的两个认证协议ntlm和Kerberos协议是必须总结的~ 这篇简单总结下ntlm协议 晚上写下kerberos 0x01 NTLM简介 NTLM使用在Windows NT和Windows ...

  3. [转]关于NTLM认证的.NET,php,python登录

    本文转自:http://www.cnblogs.com/myx/archive/2013/03/25/php-ntlm-python-net.html 早期SMB协议在网络上传输明文口令.后来出现 L ...

  4. 域渗透基础之Kerberos认证协议

     本来昨晚就该总结整理,又拖到今天早上..6点起来赶可还行 0x01 Kerberos前言 Kerberos 是一种由 MIT(麻省理工大学)提出的一种网络身份验证协议.它旨在通过使用密钥加密技术为客 ...

  5. kerberos认证协议爱情故事

    0x01.kerberos简介 kerberos是一种域内认证协议,Kerberos的标志是三头狗,狗头分别代表以下角色: Client Server KDC(Key Distribution Cen ...

  6. iOS进行Basic认证与NTLM认证

    一.iOS进行Basic认证 只需要在NSMutableURLRequest的Header中添加认证所需的Username和password. NSMutableURLRequest *webReq ...

  7. [na]802.1x协议无线认证协议&dot1x有线认证实验

    以前搞无线时候,会涉及到无线client接入方式的认证协议. 认证方式+加密方式+有线的dot1x. 注:以前都是doc粘贴到博客的,加上没写博客的习惯,因此会比较乱. EAP(扩展认证协议)是什么? ...

  8. kerberos认证协议分析

    Kerberos认证协议分析 Kerberos认证协议流程 如上图: * 第一步:client和认证服务器(AS)通信完成认证过程,如果认证成功AS返回给client一个TGT(用来向TGS获取tic ...

  9. Radius 认证协议介绍-兼rfc导读

    老规矩, 先看维基: 远端用户拨入验证服务(RADIUS, Remote Authentication Dial In User Service)是一个AAA协议,意思就是同时兼顾验证(authent ...

随机推荐

  1. Spring基础03——Spring IOC和DI概述

    1.什么是IOC与DI IOC(Inversion of Control):其思想是反转资源获取方向,传统的资源查找方式要求组件想容器发起请求查找资源,作为回应,容器适时的返回资源,而应用了IOC之后 ...

  2. 使用Tensorflow搭建回归预测模型之二:数据准备与预处理

    前言: 在前一篇中,已经搭建好了Tensorflow环境,本文将介绍如何准备数据与预处理数据. 正文: 在机器学习中,数据是非常关键的一个环节,在模型训练前对数据进行准备也预处理是非常必要的. 一.数 ...

  3. 基于TCP/UDP协议的socket

    基于TCP协议的socket tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 server端 import socket sk = socket.socket() sk.bind( ...

  4. Django中利用type动态操作数据库表

    场景分析: 后台MySql数据库保存了一大批按股票代码命名的数据表,每张表保存的是每只股票的日线数据. stock_000002 stock_600030 stock_600020 ...一共3000 ...

  5. JVM 常量池、运行时常量池、字符串常量池

    常量池: 即class文件常量池,是class文件的一部分,用于保存编译时确定的数据. 保存的内容如下图: D:\java\test\out\production\test>javap -ver ...

  6. bzoj4764 弹飞大爷 LCT

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4764 题解 如果 \(a_i > 0\) 的话,那么就是 bzoj2002 的原题.直接 ...

  7. React 应用设计之道 - curry 化妙用

    使用 React 开发应用,给予了前端工程师无限"组合拼装"快感.但在此基础上,组件如何划分,数据如何流转等应用设计都决定了代码层面的美感和强健性. 同时,在 React 世界里提 ...

  8. Python---进阶---文件操作---搜索文件和保存搜索结果

    ### 编写一个程序,用户输入文件名以及开始搜索的路径,搜索该文件是否存在,如果遇到文件夹,则进入该文件夹继续搜索 - input 去接受用户输入的文件名和开始搜索的路径 - os.path.isdi ...

  9. toString和toLocalString

    toLocalString()是调用每个数组元素的 toLocaleString() 方法,然后使用地区特定的分隔符把生成的字符串连接起来,形成一个字符串. toString()方法获取的是Strin ...

  10. Oracle中的rowid rownum

    1. rowid和rownum都是虚列 2. rowid是物理地址,用于定位oracle中具体数据的物理存储位置 3. rownum则是sql的输出结果排序,从下面的例子可以看出其中的区别. rowi ...