make sure to save server challenge bytes
This commit is contained in:
parent
d5082d0f01
commit
949b63ef3e
@ -67,7 +67,9 @@ func ParseChallengeMessage(body []byte) (*Challenge, error) {
|
||||
var err error
|
||||
|
||||
challenge.TargetName, err = ReadStringPayload(12, body)
|
||||
if err != nil { return nil, err }
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
challenge.NegotiateFlags = binary.LittleEndian.Uint32(body[20:24])
|
||||
|
||||
@ -76,7 +78,9 @@ func ParseChallengeMessage(body []byte) (*Challenge, error) {
|
||||
challenge.Reserved = body[32:40]
|
||||
|
||||
challenge.TargetInfoPayloadStruct, err = ReadBytePayload(40, body)
|
||||
if err != nil { return nil, err }
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
challenge.TargetInfo = ReadAvPairs(challenge.TargetInfoPayloadStruct.Payload)
|
||||
|
||||
@ -84,7 +88,9 @@ func ParseChallengeMessage(body []byte) (*Challenge, error) {
|
||||
|
||||
if NTLMSSP_NEGOTIATE_VERSION.IsSet(challenge.NegotiateFlags) {
|
||||
challenge.Version, err = ReadVersionStruct(body[offset : offset+8])
|
||||
if err != nil { return nil, err }
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
offset = offset + 8
|
||||
}
|
||||
|
||||
@ -116,7 +122,7 @@ func (c *Challenge) Bytes() []byte {
|
||||
buffer.Write(c.TargetInfoPayloadStruct.Bytes())
|
||||
payloadOffset += uint32(c.TargetInfoPayloadStruct.Len)
|
||||
|
||||
if(c.Version != nil) {
|
||||
if c.Version != nil {
|
||||
buffer.Write(c.Version.Bytes())
|
||||
} else {
|
||||
buffer.Write(make([]byte, 8))
|
||||
|
@ -89,7 +89,7 @@ func (n *V2ServerSession) GenerateChallengeMessage() (cm *messages.Challenge, er
|
||||
flags := uint32(0)
|
||||
flags = messages.NTLMSSP_NEGOTIATE_KEY_EXCH.Set(flags)
|
||||
// NOTE: Unsetting this in order for the signatures to work
|
||||
// flags = messages.NTLMSSP_NEGOTIATE_VERSION.Set(flags)
|
||||
flags = messages.NTLMSSP_NEGOTIATE_VERSION.Set(flags)
|
||||
flags = messages.NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY.Set(flags)
|
||||
flags = messages.NTLMSSP_NEGOTIATE_TARGET_INFO.Set(flags)
|
||||
flags = messages.NTLMSSP_NEGOTIATE_IDENTIFY.Set(flags)
|
||||
@ -101,7 +101,8 @@ func (n *V2ServerSession) GenerateChallengeMessage() (cm *messages.Challenge, er
|
||||
flags = messages.NTLMSSP_NEGOTIATE_UNICODE.Set(flags)
|
||||
cm.NegotiateFlags = flags
|
||||
|
||||
cm.ServerChallenge = randomBytes(8)
|
||||
n.serverChallenge = randomBytes(8)
|
||||
cm.ServerChallenge = n.serverChallenge
|
||||
cm.Reserved = make([]byte, 8)
|
||||
|
||||
// Create the AvPairs we need
|
||||
@ -115,7 +116,7 @@ func (n *V2ServerSession) GenerateChallengeMessage() (cm *messages.Challenge, er
|
||||
cm.TargetInfo = pairs
|
||||
cm.TargetInfoPayloadStruct, _ = messages.CreateBytePayload(pairs.Bytes())
|
||||
|
||||
cm.Version = &messages.VersionStruct{ProductMajorVersion: uint8(5), ProductMinorVersion: uint8(1), ProductBuild: uint16(2600), NTLMRevisionCurrent: uint8(10)}
|
||||
cm.Version = &messages.VersionStruct{ProductMajorVersion: uint8(6), ProductMinorVersion: uint8(0), ProductBuild: uint16(2600), NTLMRevisionCurrent: uint8(10)}
|
||||
return cm, nil
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user