From de355f93d830c99ee1390b9bd3b0ffd534f18e18 Mon Sep 17 00:00:00 2001 From: Tal Aloni Date: Mon, 25 Sep 2017 23:27:41 +0300 Subject: [PATCH] SMB1: Renamed NT_TRANSACT_SET_SECURITY_DESC request and added response implementation --- ...NTTransactSetSecurityDescriptorRequest.cs} | 9 +++--- ...NTTransactSetSecurityDescriptorResponse.cs | 30 +++++++++++++++++++ .../NTTransactSubcommand.cs | 2 +- SMBLibrary/SMBLibrary.csproj | 3 +- SMBLibrary/Server/SMB1/NTTransactHelper.cs | 2 +- 5 files changed, 38 insertions(+), 8 deletions(-) rename SMBLibrary/SMB1/NTTransactSubcommands/{NTTransactSetSecurityDescriptor.cs => NTTransactSetSecurityDescriptorRequest.cs} (82%) create mode 100644 SMBLibrary/SMB1/NTTransactSubcommands/NTTransactSetSecurityDescriptorResponse.cs diff --git a/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactSetSecurityDescriptor.cs b/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactSetSecurityDescriptorRequest.cs similarity index 82% rename from SMBLibrary/SMB1/NTTransactSubcommands/NTTransactSetSecurityDescriptor.cs rename to SMBLibrary/SMB1/NTTransactSubcommands/NTTransactSetSecurityDescriptorRequest.cs index 0cd9a2a..e486a47 100644 --- a/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactSetSecurityDescriptor.cs +++ b/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactSetSecurityDescriptorRequest.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2014 Tal Aloni . All rights reserved. +/* Copyright (C) 2014-2017 Tal Aloni . All rights reserved. * * You can redistribute this program and/or modify it under the terms of * the GNU Lesser Public License as published by the Free Software Foundation, @@ -6,7 +6,6 @@ */ using System; using System.Collections.Generic; -using System.Text; using Utilities; namespace SMBLibrary.SMB1 @@ -14,7 +13,7 @@ namespace SMBLibrary.SMB1 /// /// NT_TRANSACT_SET_SECURITY_DESC Request /// - public class NTTransactSetSecurityDescriptor : NTTransactSubcommand + public class NTTransactSetSecurityDescriptorRequest : NTTransactSubcommand { public const int ParametersLength = 8; // Parameters: @@ -24,11 +23,11 @@ namespace SMBLibrary.SMB1 // Data: public SecurityDescriptor SecurityDescriptor; - public NTTransactSetSecurityDescriptor() + public NTTransactSetSecurityDescriptorRequest() { } - public NTTransactSetSecurityDescriptor(byte[] parameters, byte[] data) + public NTTransactSetSecurityDescriptorRequest(byte[] parameters, byte[] data) { FID = LittleEndianConverter.ToUInt16(parameters, 0); Reserved = LittleEndianConverter.ToUInt16(parameters, 2); diff --git a/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactSetSecurityDescriptorResponse.cs b/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactSetSecurityDescriptorResponse.cs new file mode 100644 index 0000000..eeb0b90 --- /dev/null +++ b/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactSetSecurityDescriptorResponse.cs @@ -0,0 +1,30 @@ +/* Copyright (C) 2014-2017 Tal Aloni . All rights reserved. + * + * You can redistribute this program and/or modify it under the terms of + * the GNU Lesser Public License as published by the Free Software Foundation, + * either version 3 of the License, or (at your option) any later version. + */ +using System; +using System.Collections.Generic; +using Utilities; + +namespace SMBLibrary.SMB1 +{ + /// + /// NT_TRANSACT_SET_SECURITY_DESC Response + /// + public class NTTransactSetSecurityDescriptorResponse : NTTransactSubcommand + { + public NTTransactSetSecurityDescriptorResponse() + { + } + + public override NTTransactSubcommandName SubcommandName + { + get + { + return NTTransactSubcommandName.NT_TRANSACT_SET_SECURITY_DESC; + } + } + } +} diff --git a/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactSubcommand.cs b/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactSubcommand.cs index 56b67fe..21b8411 100644 --- a/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactSubcommand.cs +++ b/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactSubcommand.cs @@ -46,7 +46,7 @@ namespace SMBLibrary.SMB1 case NTTransactSubcommandName.NT_TRANSACT_IOCTL: return new NTTransactIOCTLRequest(setup, data); case NTTransactSubcommandName.NT_TRANSACT_SET_SECURITY_DESC: - return new NTTransactSetSecurityDescriptor(parameters, data); + return new NTTransactSetSecurityDescriptorRequest(parameters, data); case NTTransactSubcommandName.NT_TRANSACT_NOTIFY_CHANGE: return new NTTransactNotifyChangeRequest(setup); case NTTransactSubcommandName.NT_TRANSACT_QUERY_SECURITY_DESC: diff --git a/SMBLibrary/SMBLibrary.csproj b/SMBLibrary/SMBLibrary.csproj index cab7d42..701e1f7 100644 --- a/SMBLibrary/SMBLibrary.csproj +++ b/SMBLibrary/SMBLibrary.csproj @@ -414,7 +414,8 @@ - + + diff --git a/SMBLibrary/Server/SMB1/NTTransactHelper.cs b/SMBLibrary/Server/SMB1/NTTransactHelper.cs index 243c3b1..99d0a1a 100644 --- a/SMBLibrary/Server/SMB1/NTTransactHelper.cs +++ b/SMBLibrary/Server/SMB1/NTTransactHelper.cs @@ -96,7 +96,7 @@ namespace SMBLibrary.Server.SMB1 { subcommandResponse = GetSubcommandResponse(header, maxDataCount, (NTTransactIOCTLRequest)subcommand, share, state); } - else if (subcommand is NTTransactSetSecurityDescriptor) + else if (subcommand is NTTransactSetSecurityDescriptorRequest) { header.Status = NTStatus.STATUS_NOT_IMPLEMENTED; }