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