diff --git a/SMBLibrary/Authentication/AuthenticateMessage/AuthenticateMessage.cs b/SMBLibrary/Authentication/AuthenticateMessage/AuthenticateMessage.cs
index a156453..354858e 100644
--- a/SMBLibrary/Authentication/AuthenticateMessage/AuthenticateMessage.cs
+++ b/SMBLibrary/Authentication/AuthenticateMessage/AuthenticateMessage.cs
@@ -27,7 +27,7 @@ namespace SMBLibrary.Authentication
public string WorkStation;
public byte[] EncryptedRandomSessionKey;
public NegotiateFlags NegotiateFlags;
- public Version Version;
+ public NTLMVersion Version;
// 16-byte MIC field is omitted for Windows NT / 2000 / XP / Server 2003
public AuthenticateMessage()
@@ -53,7 +53,7 @@ namespace SMBLibrary.Authentication
NegotiateFlags = (NegotiateFlags)LittleEndianConverter.ToUInt32(buffer, 60);
if ((NegotiateFlags & NegotiateFlags.Version) > 0)
{
- Version = new Version(buffer, 64);
+ Version = new NTLMVersion(buffer, 64);
}
}
diff --git a/SMBLibrary/Authentication/AuthenticateMessage/ChallengeMessage.cs b/SMBLibrary/Authentication/AuthenticateMessage/ChallengeMessage.cs
index d73ad7a..d9a6305 100644
--- a/SMBLibrary/Authentication/AuthenticateMessage/ChallengeMessage.cs
+++ b/SMBLibrary/Authentication/AuthenticateMessage/ChallengeMessage.cs
@@ -23,7 +23,7 @@ namespace SMBLibrary.Authentication
public byte[] ServerChallenge; // 8 bytes
// Reserved - 8 bytes
public byte[] TargetInfo; // sequence of AV_PAIR structures
- public Version Version;
+ public NTLMVersion Version;
public ChallengeMessage()
{
@@ -42,7 +42,7 @@ namespace SMBLibrary.Authentication
TargetInfo = AuthenticationMessageUtils.ReadBufferPointer(buffer, 40);
if ((NegotiateFlags & NegotiateFlags.Version) > 0)
{
- Version = new Version(buffer, 48);
+ Version = new NTLMVersion(buffer, 48);
}
}
diff --git a/SMBLibrary/Authentication/AuthenticateMessage/Version.cs b/SMBLibrary/Authentication/AuthenticateMessage/NTLMVersion.cs
similarity index 75%
rename from SMBLibrary/Authentication/AuthenticateMessage/Version.cs
rename to SMBLibrary/Authentication/AuthenticateMessage/NTLMVersion.cs
index c4e765e..49bc0e0 100644
--- a/SMBLibrary/Authentication/AuthenticateMessage/Version.cs
+++ b/SMBLibrary/Authentication/AuthenticateMessage/NTLMVersion.cs
@@ -11,7 +11,10 @@ using Utilities;
namespace SMBLibrary.Authentication
{
- public class Version
+ ///
+ /// [MS-NLMP] 2.2.2.10 - VERSION
+ ///
+ public class NTLMVersion
{
public const byte NTLMSSP_REVISION_W2K3 = 0x0F;
@@ -21,7 +24,7 @@ namespace SMBLibrary.Authentication
// Reserved - 3 bytes
public byte NTLMRevisionCurrent;
- public Version(byte majorVersion, byte minorVersion, ushort build, byte ntlmRevisionCurrent)
+ public NTLMVersion(byte majorVersion, byte minorVersion, ushort build, byte ntlmRevisionCurrent)
{
ProductMajorVersion = majorVersion;
ProductMinorVersion = minorVersion;
@@ -29,7 +32,7 @@ namespace SMBLibrary.Authentication
NTLMRevisionCurrent = ntlmRevisionCurrent;
}
- public Version(byte[] buffer, int offset)
+ public NTLMVersion(byte[] buffer, int offset)
{
ProductMajorVersion = ByteReader.ReadByte(buffer, offset + 0);
ProductMinorVersion = ByteReader.ReadByte(buffer, offset + 1);
@@ -45,19 +48,19 @@ namespace SMBLibrary.Authentication
ByteWriter.WriteByte(buffer, offset + 7, NTLMRevisionCurrent);
}
- public static Version WindowsXP
+ public static NTLMVersion WindowsXP
{
get
{
- return new Version(5, 1, 2600, NTLMSSP_REVISION_W2K3);
+ return new NTLMVersion(5, 1, 2600, NTLMSSP_REVISION_W2K3);
}
}
- public static Version Server2003
+ public static NTLMVersion Server2003
{
get
{
- return new Version(5, 2, 3790, NTLMSSP_REVISION_W2K3);
+ return new NTLMVersion(5, 2, 3790, NTLMSSP_REVISION_W2K3);
}
}
}
diff --git a/SMBLibrary/Authentication/AuthenticateMessage/NegotiateMessage.cs b/SMBLibrary/Authentication/AuthenticateMessage/NegotiateMessage.cs
index 5cd7b8e..d810ae1 100644
--- a/SMBLibrary/Authentication/AuthenticateMessage/NegotiateMessage.cs
+++ b/SMBLibrary/Authentication/AuthenticateMessage/NegotiateMessage.cs
@@ -21,7 +21,7 @@ namespace SMBLibrary.Authentication
public NegotiateFlags NegotiateFlags;
public string DomainName;
public string Workstation;
- public Version Version;
+ public NTLMVersion Version;
public NegotiateMessage()
{
@@ -40,7 +40,7 @@ namespace SMBLibrary.Authentication
Workstation = AuthenticationMessageUtils.ReadAnsiStringBufferPointer(buffer, 24);
if ((NegotiateFlags & NegotiateFlags.Version) > 0)
{
- Version = new Version(buffer, 32);
+ Version = new NTLMVersion(buffer, 32);
}
}
diff --git a/SMBLibrary/SMBLibrary.csproj b/SMBLibrary/SMBLibrary.csproj
index 622ac4c..cb007be 100644
--- a/SMBLibrary/SMBLibrary.csproj
+++ b/SMBLibrary/SMBLibrary.csproj
@@ -40,7 +40,7 @@
-
+
diff --git a/SMBLibrary/Server/IndependentUserCollection.cs b/SMBLibrary/Server/IndependentUserCollection.cs
index cd3b153..9d9a499 100644
--- a/SMBLibrary/Server/IndependentUserCollection.cs
+++ b/SMBLibrary/Server/IndependentUserCollection.cs
@@ -147,7 +147,7 @@ namespace SMBLibrary.Server
message.TargetName = Environment.MachineName;
message.ServerChallenge = serverChallenge;
message.TargetInfo = AVPairUtils.GetAVPairSequence(Environment.MachineName, Environment.MachineName);
- message.Version = Authentication.Version.Server2003;
+ message.Version = NTLMVersion.Server2003;
return message;
}
diff --git a/SMBLibrary/Server/SMB1/NegotiateHelper.cs b/SMBLibrary/Server/SMB1/NegotiateHelper.cs
index d52290b..f2a1e62 100644
--- a/SMBLibrary/Server/SMB1/NegotiateHelper.cs
+++ b/SMBLibrary/Server/SMB1/NegotiateHelper.cs
@@ -81,7 +81,7 @@ namespace SMBLibrary.Server.SMB1
NegotiateFlags.Version |
NegotiateFlags.Use128BitEncryption |
NegotiateFlags.Use56BitEncryption;
- negotiateMessage.Version = Authentication.Version.Server2003;
+ negotiateMessage.Version = NTLMVersion.Server2003;
return negotiateMessage;
}
}
diff --git a/SMBLibrary/Server/SMB1/SessionSetupHelper.cs b/SMBLibrary/Server/SMB1/SessionSetupHelper.cs
index b359c56..6819b9b 100644
--- a/SMBLibrary/Server/SMB1/SessionSetupHelper.cs
+++ b/SMBLibrary/Server/SMB1/SessionSetupHelper.cs
@@ -191,7 +191,7 @@ namespace SMBLibrary.Server.SMB1
authenticateMessage.UserName = accountNameToAuth;
authenticateMessage.LmChallengeResponse = lmChallengeResponse;
authenticateMessage.NtChallengeResponse = ntChallengeResponse;
- authenticateMessage.Version = Authentication.Version.Server2003;
+ authenticateMessage.Version = NTLMVersion.Server2003;
return authenticateMessage;
}
}
diff --git a/SMBLibrary/Tests/AuthenticationTests.cs b/SMBLibrary/Tests/AuthenticationTests.cs
index bb627af..164a6dd 100644
--- a/SMBLibrary/Tests/AuthenticationTests.cs
+++ b/SMBLibrary/Tests/AuthenticationTests.cs
@@ -96,7 +96,7 @@ namespace SMBLibrary
byte[] serverChallenge = new byte[] { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef };
ChallengeMessage message = new ChallengeMessage();
message.ServerChallenge = serverChallenge;
- message.Version = new Authentication.Version(6, 0, 6000, 15);
+ message.Version = new NTLMVersion(6, 0, 6000, 15);
message.NegotiateFlags = NegotiateFlags.UnicodeEncoding | NegotiateFlags.OEMEncoding | NegotiateFlags.Sign | NegotiateFlags.Seal | NegotiateFlags.NTLMKey | NegotiateFlags.AlwaysSign | NegotiateFlags.TargetTypeServer | NegotiateFlags.ExtendedSecurity | NegotiateFlags.TargetInfo | NegotiateFlags.Version | NegotiateFlags.Use128BitEncryption | NegotiateFlags.KeyExchange | NegotiateFlags.Use56BitEncryption;
message.TargetName = "Server";
byte[] serverAVPair = AVPairUtils.GetAVPairSequence("Domain", "Server");
@@ -138,7 +138,7 @@ namespace SMBLibrary
AuthenticateMessage message = new AuthenticateMessage();
message.EncryptedRandomSessionKey = sessionKey;
- message.Version = new Authentication.Version(5, 1, 2600, Authentication.Version.NTLMSSP_REVISION_W2K3);
+ message.Version = new NTLMVersion(5, 1, 2600, Authentication.NTLMVersion.NTLMSSP_REVISION_W2K3);
message.NegotiateFlags = NegotiateFlags.UnicodeEncoding | NegotiateFlags.TargetNameSupplied | NegotiateFlags.Sign | NegotiateFlags.Seal | NegotiateFlags.NTLMKey | NegotiateFlags.AlwaysSign | NegotiateFlags.ExtendedSecurity | NegotiateFlags.TargetInfo | NegotiateFlags.Version | NegotiateFlags.Use128BitEncryption | NegotiateFlags.KeyExchange | NegotiateFlags.Use56BitEncryption;
message.DomainName = "Domain";
message.WorkStation = "COMPUTER";