Set NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY if applicable and improve code readability

This commit is contained in:
Tal Aloni 2017-01-19 02:10:58 +02:00
parent 0ee31e432b
commit 29828befb4
2 changed files with 25 additions and 5 deletions

View file

@ -72,7 +72,15 @@ namespace SMBLibrary.Server.SMB1
private static NegotiateMessage CreateNegotiateMessage() private static NegotiateMessage CreateNegotiateMessage()
{ {
NegotiateMessage negotiateMessage = new NegotiateMessage(); NegotiateMessage negotiateMessage = new NegotiateMessage();
negotiateMessage.NegotiateFlags = NegotiateFlags.UnicodeEncoding | NegotiateFlags.OEMEncoding | NegotiateFlags.Sign | NegotiateFlags.LanManagerKey | NegotiateFlags.NTLMKey | NegotiateFlags.AlwaysSign | NegotiateFlags.Version | NegotiateFlags.Use128BitEncryption | NegotiateFlags.Use56BitEncryption; negotiateMessage.NegotiateFlags = NegotiateFlags.UnicodeEncoding |
NegotiateFlags.OEMEncoding |
NegotiateFlags.Sign |
NegotiateFlags.LanManagerKey |
NegotiateFlags.NTLMKey |
NegotiateFlags.AlwaysSign |
NegotiateFlags.Version |
NegotiateFlags.Use128BitEncryption |
NegotiateFlags.Use56BitEncryption;
negotiateMessage.Version = Authentication.Version.Server2003; negotiateMessage.Version = Authentication.Version.Server2003;
return negotiateMessage; return negotiateMessage;
} }

View file

@ -171,13 +171,25 @@ namespace SMBLibrary.Server.SMB1
return response; return response;
} }
private static AuthenticateMessage CreateAuthenticateMessage(string accountNameToAuth, byte[] lmResponse, byte[] ntlmResponse) private static AuthenticateMessage CreateAuthenticateMessage(string accountNameToAuth, byte[] lmChallengeResponse, byte[] ntChallengeResponse)
{ {
AuthenticateMessage authenticateMessage = new AuthenticateMessage(); AuthenticateMessage authenticateMessage = new AuthenticateMessage();
authenticateMessage.NegotiateFlags = NegotiateFlags.UnicodeEncoding | NegotiateFlags.OEMEncoding | NegotiateFlags.Sign | NegotiateFlags.LanManagerKey | NegotiateFlags.NTLMKey | NegotiateFlags.AlwaysSign | NegotiateFlags.Version | NegotiateFlags.Use128BitEncryption | NegotiateFlags.Use56BitEncryption; authenticateMessage.NegotiateFlags = NegotiateFlags.UnicodeEncoding |
NegotiateFlags.OEMEncoding |
NegotiateFlags.Sign |
NegotiateFlags.LanManagerKey |
NegotiateFlags.NTLMKey |
NegotiateFlags.AlwaysSign |
NegotiateFlags.Version |
NegotiateFlags.Use128BitEncryption |
NegotiateFlags.Use56BitEncryption;
if (ntChallengeResponse.Length >= 48)
{
authenticateMessage.NegotiateFlags |= NegotiateFlags.ExtendedSecurity;
}
authenticateMessage.UserName = accountNameToAuth; authenticateMessage.UserName = accountNameToAuth;
authenticateMessage.LmChallengeResponse = lmResponse; authenticateMessage.LmChallengeResponse = lmChallengeResponse;
authenticateMessage.NtChallengeResponse = ntlmResponse; authenticateMessage.NtChallengeResponse = ntChallengeResponse;
authenticateMessage.Version = Authentication.Version.Server2003; authenticateMessage.Version = Authentication.Version.Server2003;
return authenticateMessage; return authenticateMessage;
} }