创建 NTLM 挑战消息 - 如何获取 AV_PAIR 值?

0 投票
1 回答
571 浏览
提问于 2025-04-18 00:10

我现在正在尝试用python3写一个函数,来创建一个NTLM挑战消息。

有没有什么模块或函数可以帮助我获取创建AV_PAIRs所需的值?我不太确定该用哪个函数来获取正确的值,而且我也想避免通过输入字符串参数的方式。

 - MsvAvNbComputerName  (socket.gethostname())
 - MsvAvNbDomainName    
 - MsvAvDnsComputerName (socket.getfqdn())
 - MsvAvDnsDomainName
 - MsvAvDnsTreeName  
 - MsvAvFlags  
 - MsvAvTimestamp  
 - MsAvRestrictions 

NTLM AV_PAIR的定义: http://msdn.microsoft.com/en-us/library/cc236646.aspx

背景:我想在Windows ActiveDirectory环境下为Flask编写NTLM认证。

1 个回答

0

我不知道有没有Python模块可以实现NTLM。

不过,我觉得这种认证交易比你现在关注的内容要复杂得多。如果你把关注点从AV_PAIRS结构改成Introduction,你会发现你提到的链接里有更多的细节:http://msdn.microsoft.com/en-us/library/cc236622.aspx

也就是说,要正确处理这个问题,你首先得了解struct模块,因为你需要用它来创建NTLM消息头。同时,你还得学习位移和网络字节序/主机字节序,因为这些知识也会用到。

一个简单的协议可以用来练习的是ICMP。先学会如何读取和写入这个头部,使用struct和我提到的其他内容。当你更熟练后,再尝试创建和读取NTLM消息。

希望这对你有帮助。

撰写回答