ntlm身份验证

During an offensive security engagement it may not be a major vulnerability that leads to your end-goal, but a combination of lower severity findings compounded to make a larger impact. This post discusses information disclosure through NTLM authentication, which is one of those smaller vulnerabilities that can lead to greater attacks under the right circumstances. Additionally, we will demonstrate methods for invoking an NTLM challenge response, even when no login page is present, to coerce this information.

在进行进攻性安全工作期间,它可能不是导致最终目标的主要漏洞,但严重程度较低的发现加在一起会产生更大的影响。 这篇文章讨论了通过NTLM身份验证进行的信息泄漏,这是在适当情况下可能导致更大攻击的较小漏洞之一。 此外,即使没有登录页面,我们也将演示用于调用NTLM质询响应的方法来强制此信息。

总览 (Overview)

NTLM is a challenge/response authentication protocol utilized by Windows systems in which the user’s actual password is never sent over the wire. Instead, the requesting client receives a challenge response from the server and must perform a calculation that proves their identity. I am far over simplifying this process, but the diagram below is a good example of how this authentication scheme works in a Windows AD environment.

NTLM是Windows系统使用的质询/响应身份验证协议,其中用户的实际密码永远不会通过网络发送。 相反,发出请求的客户端从服务器接收质询响应,并且必须执行证明其身份的计算。 我简化这个过程远远不止于此,但是下图是该身份验证方案在Windows AD环境中如何工作的一个很好的例子。

Now, how does this help in getting sensitive internal information? Once a target is identified as using NTLM authentication, we can initiate a connection and send anonymous (null) credentials, or the magic string “TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”, that will prompt the server to respond with an NTLM Type 2 challenge response. This response message can be decoded to reveal information about the server, such as: NetBIOS, DNS, and OS build version information:

现在,这如何帮助获取敏感的内部信息? 一旦目标被识别为使用NTLM身份验证,我们就可以启动连接并发送匿名(空)凭据或魔术字符串“ TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA =”,这将提示服务器以NTLM Type 2质询响应进行响应。 可以对该响应消息进行解码以显示有关服务器的信息,例如:NetBIOS,DNS和操作系统内部版本信息:

Target_Name: DEMO NetBIOS_Domain_Name: DEMO NetBIOS_Computer_Name: SRV01 DNS_Domain_Name: demo.local DNS_Computer_Name: srv01.demo.local DNS_Tree_Name: demo.local Product_Version: 6.3.9600

影响力 (Impact)

During a penetration test this can be used to identify internal naming conventions, determine end-of-life operating systems, and discover internal DNS names. To describe one potential use-case for this data, the domain suffix, found in the decoded response, is often required for password spraying attacks against Outlook web applications. Targeting OWA is a common technique used by hackers to identify valid domain credentials, and made possible through this exposure.

在渗透测试期间,这可以用于标识内部命名约定,确定寿命终止的操作系统以及发现内部DNS名称。 为了描述此数据的一种潜在用例,对Outlook Web应用程序进行密码喷雾攻击时,通常需要在解码后的响应中找到域后缀。 定向OWA是黑客用来识别有效域凭据的一种常用技术,并且通过这种暴露成为可能。

Although not the most prestigious vulnerability, if found against a bug bounty target, you may be able to leverage this internal disclosure for a few quick points:

尽管不是最负盛名的漏洞,但如果针对漏洞赏金目标发现了此漏洞,则您可以在以下几点上利用这一内部披露:

开发 (Exploitation)

Typically, when visiting a website or directory requiring privileged access, the server will initiate a login prompt. This allows the client to send blank username and password values to check for NTLM authentication and receive the encoded response. However, if the target server is configured to allow windowsAuthentication, it may be possible to invoke this response without a login prompt. This can be done by adding “Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=” to the request headers.

通常,当访问需要特权访问的网站或目录时,服务器将启动登录提示。 这允许客户端发送空白的用户名和密码值,以检查NTLM身份验证并接收编码的响应。 但是,如果将目标服务器配置为允许Windows身份验证,则可以在没有登录提示的情况下调用此响应。 这可以通过在请求标头中添加“授权:NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAAAAA =”来完成。

Once an NTLM challenge is returned in the “WWW-Authenticate” value of the response headers, it can be decoded to capture internal information. I personally use Burp’s NTLM Challenge Decoder, but multiple other scripts have been written that can perform these actions.

在响应头的“ WWW-Authenticate”值中返回NTLM质询后,就可以对其进行解码以捕获内部信息。 我个人使用的是Burp的NTLM挑战解码器,但是已经编写了可以执行这些操作的多个其他脚本。

奖金回合 (Bonus Round)

Few may know the trick of adding the “Authorization” header to prompt a response from the server, but I recently discovered NTLM in other protocols that can be exploited using a similar approach. Through Telnet we can interact with other services, outside of the browser, to force an NTLM challenge response and decode this value to attain the same information.

很少有人知道添加“ Authorization”标头来提示服务器响应的技巧,但是我最近发现了其他协议中的NTLM,可以使用类似的方法加以利用。 通过Telnet,我们可以与浏览器之外的其他服务进行交互,以强制执行NTLM质询响应并对该值进行解码以获取相同的信息。

SMTP (SMTP)

root@kali: telnet example.com 587 220 example.com SMTP Server Banner >> HELO 250 example.com Hello [x.x.x.x] >> AUTH NTLM 334 NTLM supported >> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA= 334 TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA

IMAP (IMAP)

root@kali: telnet example.com 143 * OK The Microsoft Exchange IMAP4 service is ready. >> a1 AUTHENTICATE NTLM + >> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA= + TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA

& 更多… (& more…)

If you’ve spent any time around Windows you may have guessed this was possible, as NTLM authentication can be found in any number of places. Protocols such as: HTTP, SMTP, IMAP, POP3, RDP, MS-SQL, NNTP, TELNET, and more may also be susceptible to this type of disclosure. While exploiting this in other protocols requires more than just a Telnet session, we can easily automate the search using NMAP’s NSE scripts:

如果您在Windows上花了很多时间,您可能会猜想这是有可能的,因为可以在任何地方找到NTLM身份验证。 诸如:HTTP,SMTP,IMAP,POP3,RDP,MS-SQL,NNTP,TELNET等协议也可能易受此类公开的影响。 尽管在其他协议中利用此功能不仅需要Telnet会话,但我们可以使用NMAP的NSE脚本轻松地自动执行搜索:

root@kali: nmap -sS -v --script=*-ntlm-info --script-timeout=60s example.com Nmap scan report for x.x.x.x Host is up (0.0063s latency). Not shown: 998 filtered ports PORT STATE SERVICE 80/tcp open http | http-ntlm-info: | Target_Name: IIS01 | NetBIOS_Domain_Name: IIS01 | NetBIOS_Computer_Name: IIS01 | DNS_Domain_Name: IIS01 | DNS_Computer_Name: IIS01 |_ Product_Version: 6.3.9600

This command will run NMAP against the target and execute the scripts listed below, given the proper ports are identified. By default, “http-ntlm-info.nse” will attempt an authentication request by adding the “Authorization” header against the server’s root page. This can be modified by adding “ — script-args http-ntlm-info.root=/EWS” to the command line arguments and adjusting the page value as needed.

给定正确的端口,此命令将对目标运行NMAP并执行下面列出的脚本。 默认情况下,“ http-ntlm-info.nse”将通过在服务器的根页面上添加“ Authorization”标头来尝试进行身份验证请求。 可以通过在命令行参数中添加“-脚本参数http-ntlm-info.root = / EWS”并根据需要调整页面值来进行修改。

结论 (Conclusion)

I have used some of these techniques during penetration tests to capture sensitive information, which ultimately led to greater attacks down the road. So next time your stuck on an engagement, or bug hunt, test out these methods for a quick win!

我在渗透测试期间使用了其中一些技术来捕获敏感信息,最终导致了更大的攻击。 因此,下一次您陷入订婚或寻宝活动时,请测试这些方法以快速获胜!

参考资料和其他资源: (References and Additional Resources:)

http://davenport.sourceforge.net/ntlm.htmlhttps://docs.microsoft.com/en-us/windows/win32/secauthn/microsoft-ntlmhttps://blog.gdssecurity.com/labs/2014/2/12/http-ntlm-information-disclosure.html

http://davenport.sourceforge.net/ntlm.html https://docs.microsoft.com/en-us/windows/win32/secauthn/microsoft-ntlm https://blog.gdssecurity.com/labs/2014/ 2/12 / http-ntlm-information-disclosure.html

Originally published at https://m8r0wn.com.

最初发布在 https://m8r0wn.com

翻译自: https://medium.com/@m8r0wn/internal-information-disclosure-using-hidden-ntlm-authentication-18de17675666

ntlm身份验证


http://www.taodudu.cc/news/show-2091430.html

相关文章:

  • 辐射避难所ol服务器维护,《辐射:避难所Online》1月16日停服维护公告
  • 恐怖黎明 联网显示无法连接服务器,豪横的刷刷刷 2021年最值得体验的暗黑类游戏...
  • 服务器更新维护尚未全部完成,【已开服】11月21日全部服务器更新维护公告
  • 有效训练你的认知
  • JavaScript数据结构与算法基础学习笔记03----链表与双向链表
  • GMV远超预期背后,快手电商做对了什么?
  • 重走百年晋商之路-走西口
  • 华软计算机网络课程设计任务,计算机网络网络课程设计任务.doc
  • 暑期读书月开幕式暨天一寻宝活动
  • 网络寻宝 v2.2 官网
  • 67个团建游戏
  • 定向寻宝亲子活动设计思路和实操(附2019最新教程)
  • 寻宝游戏设计攻略
  • 活动喵怎么用?定向寻宝活动设计思路和实操(附2019最新教程)
  • JAVA EE常见英文单词(一)
  • java web(java ee)实现wordle猜单词游戏
  • c语言倒序输出单词_英语句子按单词倒序输出C语言版
  • 常见英文单词
  • 英语单词背诵表
  • java读取字符串分离单词_从Java中的字符串中提取第一个单词的最佳方法是什么?...
  • 编程英文单词的标准缩写
  • 单词发音规律
  • Java EE 导图
  • java 友好变量单词_“友好”的英语单词是什么?
  • 1一10到时的英文单词_1到10的英语单词
  • 252个常见英语单词词根
  • 从文本中提取单词生成单词本
  • mysql必须记住的单词_如何真正记住英语单词?
  • Java 编程语言单词汇总
  • python编程单词排序_Python:对输入的单词进行字典序排序输出

ntlm身份验证_使用隐藏的ntlm身份验证进行内部信息公开相关推荐

  1. java程序license验证_基于TrueLicense实现产品License验证功能

    受朋友所托,需要给产品加上License验证功能,进行试用期授权,在试用期过后,产品不再可用. 通过研究调查,可以利用Truelicense开源框架实现,下面分享一下如何利用Truelicense实现 ...

  2. firebase登录验证_使用Firebase进行电话号码身份验证

    firebase登录验证 介绍 (Introduction) Ever since Firebase was introduced, I thought it would have a signifi ...

  3. laravel身份证验证_简单的Laravel登录身份验证

    laravel身份证验证 This article has been upgraded to work with Laravel 4.1.26 本文已升级为可与Laravel 4.1.26一起使用 T ...

  4. 什么学习软件需要身份证验证_什么是两层身份验证,为什么我需要它?

    什么学习软件需要身份证验证 More and more banks, credit card companies, and even social media networks and gaming ...

  5. flask身份验证_使用Flask登录进行身份验证和授权

    flask身份验证 Allowing users to login to your app is one of the most common features you'll add to a web ...

  6. 概念验证_设置成功的UX概念验证

    概念验证 用户体验/概念证明/第1部分 (USER EXPERIENCE / PROOF OF CONCEPT / PART 1) This is the first article of a fou ...

  7. 创建steam账户反复人机验证_您必须先通过人机验证才能创建steam帐户怎么办

    展开全部 在注册steam帐户遇到提示必须通过人机验证才能创建62616964757a686964616fe4b893e5b19e31333433643062提示时,勾选注册页面中的进行人机验证.在人 ...

  8. 5折交叉验证_[Machine Learning] 模型评估——交叉验证/K折交叉验证

    首先区分两个概念:'模型评估' 与 '模型性能度量' 模型评估:这里强调的是如何划分和利用数据,对模型学习能力的评估,重点在数据的划分方法. Keywords: 划分.利用数据 模型性能度量:是在研究 ...

  9. python 登陆网站图片验证_登陆需要密码以及图片验证的网站 如知乎

    [实例简介] 登陆知乎 这样需要输入密码以及验证图片的网站 [实例截图] 无.. [核心代码] def land_zhihu(url, id, password): opener = makeMyOp ...

  10. v-if 表单验证_避免许多if块进行验证检查

    v-if 表单验证 在某些情况下,我们需要先验证输入数据,然后再将其发送到业务逻辑层进行处理,计算等.这种验证在大多数情况下是孤立进行的,或者可能包括与外部数据或其他输入的一些交叉检查. 看下面的示例 ...

最新文章

  1. poj3254 Corn Fields 状压DP入门
  2. 前端学习(1776):前端调试之indexDB原理和查看
  3. [NOIP2012提高组] CODEVS 1200 同余方程(扩展欧几里德算法)
  4. 如何weak link一个framework (高版本兼容低版本)
  5. 视觉SLAM十四讲_4-相机模型和非线性优化
  6. 单变量微积分笔记—— 积分方法之换元法总结(简单换元和三角换元)
  7. 超高精度UWB其实并不贵——UWB定位基站成本详解
  8. HTML+CSS三栏式布局(7种)
  9. 2021最新Java面试笔试,Java篇
  10. 《计算机体系结构量化研究方法》1.8 性能的测量、报告和汇总
  11. 量化投资学习——orderbook数据分析
  12. soul网关mysql8_深度解析 Soul 网关——数据同步
  13. 制作自己的openwrt刷机包_手机刷机包如何制作?自己如何制作刷机包?
  14. 从COMPUTEX 2017看工业4.0与企业数码化
  15. 多边形快速凸包算法(Melkman‘s Algorithm)
  16. PyQt5 QTreeView
  17. centos安装aria2c_CentOS下搭建Aria2远程下载环境
  18. JAVA报表之JasperReport+iReport5.6 开发工具详解(一)
  19. Linux多线程编程---线程间同步(互斥锁、条件变量、信号量和读写锁)
  20. PHP字符串分割相关函数

热门文章

  1. 大牛讲堂 | 深度学习Sequence Learning技术分享
  2. 【深度干货】强化学习应用简述
  3. List集合排序的几种方式
  4. 数据挖掘第三版课后习题
  5. u盘计算机软件,USBoot(U盘启动盘制作工具)
  6. STM32串口通信简介
  7. Springboot的Mybatis拦截器实现
  8. 操作系统形式化验证实践教程(1) - 证明第一个定理
  9. 字幕 Subtitle
  10. Octotree Chrome插件离线安装 树形展示插件