近期发现多家安全媒体发布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可以假冒域管理员的角色,而不需要破解密码。

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

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

最新文章

  1. 学习笔记 :DrawText
  2. java父类与接口有相同的方法
  3. 基于类型系统的面向对象编程语言Go
  4. mysql linux终端登陆
  5. .NET 面试题(1)
  6. BZOJ 1726: [Usaco2006 Nov]Roadblocks第二短路( 最短路 )
  7. android开发中防止刚进入activity时edittext获取焦点,自动弹出软键盘
  8. HDU 1882 Strange Billboard(状态压缩+转置优化)
  9. Design Patterns笔记
  10. 使用Java API连接和操作HBase数据库
  11. SmartSql 常见问题
  12. SpringBoot从零到上线
  13. Linux(Ubuntu)使用日记------markdown文档转化为word文档
  14. [爬虫进阶]使用Jsoup取代你的一切网络请求方法(java,post,get,代理IP)
  15. [20180914]oracle 12c 表 full_hash_value如何计算.txt
  16. 关于 pip安装的可能错误的排除
  17. Javascript中与Scroll有关的方法
  18. 解决table td里面长串数字或字母不换行的问题
  19. Redis keys命令
  20. error: 'release' is unavailable: not available in automatic reference counting,该怎么解决

热门文章

  1. visual studio 2013 生成依赖项关系图出错
  2. Linux学习--第六天--软件包
  3. 20190614笔记(颜色透明度,css,filter,滤镜,计算属性,json和formData转换)
  4. 理解长短期记忆网络(LSTM NetWorks)
  5. DDD领域驱动设计初探(四):WCF搭建
  6. php实现图片相似搜索
  7. TodoList案例
  8. linux C++ 通讯架构(一)nginx安装、目录、进程模型
  9. Serverless Kubernetes入门:对kubernetes做减法
  10. java如何实现多继承