NTLM Protocol - 1. NTLM 通讯的过程


NTLM 认证的过程, Client 需发送或接受三种讯息: Negotiation, Challenge, Authentication, 其过程如下:




1. Client 发送 Negotiation 给 Server, 告知 Server 通讯的信息, 内容含有 NTLM 的表头及 NTLM 标志位, 我们称为 Type 1 Message.

2. Server 在收到 Negotiation 后会随机产生一组长度为 8 bytes 的 NONCE, 并伴随者 Negotiation 所含内容及 Data Block 返回 Client, 这讯息称之为 Type 2 Message.

3. Client 在收到 Challenge 后会以 PASSWORD 当作 KEY 并对 NONCE 进行加密产生两组回应段 - LMRESP 及 NTRESP, 并伴随者 DOMAIN, USER 讯息, 当作身份认证讯息发送给 Server. 这个身份认证的讯息,我们称之为 Type 3 Message.

不管是 Type 1 或 Type 2 或是 Type 3 都是 "NTLM" + Base64 String, 所以如果要还原它们的话, 要先做解码的动作, 在 Perl 上很容易实现这个 Parsing 的动作, 以下为 Perl 的实现代码: decode.pl

#!/usr/bin/perl -w

use MIME::Base64;

$string = shift;
print decode_base64($string); 

在 Linux 终端下执行 decode.pl <input-string> | hexdump -C, <input-string> 是需要解析的 BASE64 字串.


接着我们实际来看看真实的 Type 1 Message 及其解析出来的内容:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值