【问题标题】:Create NTLM Challenge_Message - How to get AV_PAIR values?创建 NTLM Challenge_Message - 如何获取 AV_PAIR 值?
【发布时间】:2014-03-27 14:50:50
【问题描述】:

我目前正在尝试编写一个函数来在 python3 中创建一个 NTLM 挑战消息。

是否有任何模块/函数可以帮助我获取创建 AV_PAIR 的值?我不太确定何时使用哪些函数来获取正确的值,我也想避免通过输入字符串参数选择。

 - 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 身份验证。

【问题讨论】:

    标签: python python-3.x flask ntlm ntlmv2


    【解决方案1】:

    我不知道有任何实现 NTLM 的 Python 模块。

    但我认为这种类型的经过身份验证的交易比您在这里关注的要复杂得多。如果您将起点从AV_PAIRS 结构更改为Introduction,则您引用的链接实际上包含更多详细信息:http://msdn.microsoft.com/en-us/library/cc236622.aspx

    也就是说,为了正确解决这个问题,您必须首先了解 struct 模块,因为您需要使用它来创建 NTLM 消息标头。同时,还要了解位移位和网络字节顺序/主机字节顺序,因为您也将需要它。

    一个简单的练习协议是 ICMP。首先使用struct 和我提到的其他方法来学习如何读取和写入该标题。当您感觉更舒服时,请尝试处理创建和阅读 NTLM 消息。

    希望这会有所帮助。

    【讨论】:

    • 我知道 struct.pack('', value)、字节顺序等。这已经很好了;)(即使在客户端创建协商消息时也是如此)
    • 知道了。对我的误解深表歉意。假设这只是 Windows,您是否尝试过 Python Extensions for Windows 包中的 win32security 和 win32api 模块?这些以及 LDAP 可用于检索 NB/DNS 字段。
    猜你喜欢
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2021-02-11
    • 2023-03-05
    • 2017-11-29
    • 2015-12-22
    • 2021-04-21
    • 2011-11-07
    相关资源
    最近更新 更多