| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> NTLM网络认证协议分析及Net-NTLMhash的获取 -> 正文阅读 |
|
[系统运维]NTLM网络认证协议分析及Net-NTLMhash的获取 |
目录 wireshark对NTLM协议抓取并获取Net-NTLMhash 前言Windows认证分为本地认证和网络认证,传送门——>?Windows认证原理,计算机开机时用户输入账户密码,这一行为要经过windows的本地认证。而比如当我们访问同一局域网的一台主机上的SMB共享时提供凭证通过验证才能成功进行访问,这就涉及到windows的网络认证。 一、NTLM协议NTLM是一种网络认证协议,它是基于挑战(Chalenge)/响应(Response)认证机制的一种认证模式。这个协议只支持Windows 它主要分为协商、质询和验证三个步骤
协商时会确定传输协议的版本,这里版本分为v1和v2,NTLMv1与NTLM v2最显著的区别就是Challenge与加密算法不同,共同点就是加密的原料都是NTLM Hash,NTLM v1的Challenge有8位,NTLM v2的Challenge为16位;NTLM v1的主要加密算法是DES,NTLM v2的主要加密算法是HMAC-MD5。 质询的完整过程 比如,局域网的两台主机A和主机B,暂且将主机A称为client,主机B称为server
?? wireshark对NTLM协议抓取并获取Net-NTLMhash实验环境
1. 访问共享 主机A访问主机B的共享 2. 数据抓取 抓到的数据包,这里也可以看到,访问共享是基于SMB协议的。Negotiate Protocol Response,是进行协商 ?下面这条数据包,服务器向客户端返回16位长的challenge 接着下一条数据,客户端将发送的用户名所对应的NTLM hash对Chalenge进行加密得到Response,即这里的 “ntlmv2_response” 的值。 ?获取了这些信息后,就可以使用Hashcat对其进行破解 3.?Net-NTLMhash格式介绍及拼接 NTLMv2的格式为:username::domain:challenge:HMAC-MD5:blob username就是你发送过去账号名,如administrator。domain即host name,如下为WIN2012 HMAC-MD5对应数据包中的NTProofStr,blob ?blob对应数据包中Response去掉NTProofStr的后半部分,如下 所以完整的NTLMv2数据为如下,此数据为Net-NTLMhash。即?Net NTLM Hash =?NTLM Hash(Challenge)
然后使用hashcat即可破解 hashcat使用kali中自带该工具 1. 使用hashcat破解Net-NTLMhash hashcat? [option]
执行如下破解
打开result.txt,在原来5个字段的密文中新添加了一个明文,即为密码 当然在实际的测试环境中,我们不可能使用这样的方法去获取,可以使用中间人攻击的方式来获取Net-NTLMhash,常用的两个工具是Responder和Inveigh 二、Responder下载:https://github.com/lgandx/Responder Windows系统名称解析顺序先补充一个前置知识,比如当我们访问一个共享时 net use \123423refd,其寻找这个主机名称会遵循以下的步骤
如果在缓存中没有找到名称,DNS名称服务器又请求失败时,Windows系统就 会通过链路本地多播名称解析(LLMNR)和Net-BIOS名称服务(NBT-NS)在本地进行名称解析。这时,客户端就会将未经认证的UDP广播到网络中,询问它是否为本地系统的名称,由于该过程未被认证,并且广播到整个网络,从而允许网络 上的任何机器响应并声称是目标机器。当用户输入不存在、包含错误或者DNS中 没有的主机名时,通过工具(responder)监听LLMNR和NetBIOS广播,攻击者可以 伪装成受害者要访问的目标机器,并从而让受害者交出相应的登陆凭证。核心过 程与arp欺骗类似,我们可以让攻击者作中间人,截获到客户端的Net-NTLM Hash。 获取Net-NTLMhash1. kali开启Responder 工作组环境,主机(win 2012,win7,kali)处于同一网段NAT 进入Responder-master,执行如下命令
?2. win2012触发无效名称解析 如下,随便访问一个不存在共享 本地和缓存查询不到该访问名称sfs,win2012就会将未经认证的UDP广播到网络中,询问谁是这个名称,由于该过程未被认证,并且广播到整个网络,从而允许网络 上的任何机器响应并声称是目标机器。此时kali伪装成win2012要访问的目标机器,接着进行ntlm认证。从而让受害者交出相应的登陆凭证(net-ntlm hash)。此时kali已经获取到了Net-NTLMhash ?hashcat破解,确实是win2012的密码。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 3:26:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |