Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SMB Negoatiation times out using MS-WSP #318

Open
rtpt-romankarwacik opened this issue Jan 14, 2025 · 0 comments
Open

SMB Negoatiation times out using MS-WSP #318

rtpt-romankarwacik opened this issue Jan 14, 2025 · 0 comments

Comments

@rtpt-romankarwacik
Copy link

rtpt-romankarwacik commented Jan 14, 2025

Hi, I tried to use the WSP implementation, but before I can use it the SMB Negotiation already fails.
I use the following code:

//

var connectionInfo = new Microsoft.Protocols.TestManager.WSPServerPlugin.DetectionInfo();
connectionInfo.ServerComputerName = "192.168.56.113";
connectionInfo.UserName = "vagrant";
connectionInfo.Password = "vagrant";
connectionInfo.DomainName = "";

var logger = new Microsoft.Protocols.TestManager.Detector.DetectLogger();
var wspDetector = new Microsoft.Protocols.TestManager.WSPServerPlugin.WspDetector(logger, connectionInfo);
wspDetector.DetectServerConnection(ref connectionInfo);
wspDetector.CheckUserLogon(connectionInfo);
wspDetector.CheckWspService(ref connectionInfo);

And it fails with:

$ dotnet run
Unhandled exception. System.TimeoutException: The operation has timed out.
   at Microsoft.Protocols.TestTools.StackSdk.FileAccessService.Smb2.ReceivedPackets.WaitPacket(UInt64 messageId) in /home/romkar/repos/WindowsProtocolTestSuites/ProtoSDK/MS-SMB2/Client/Smb2Client.cs:line 114
   at Microsoft.Protocols.TestTools.StackSdk.FileAccessService.Smb2.Smb2Client.ExpectPacket[T](UInt64 messageId) in /home/romkar/repos/WindowsProtocolTestSuites/ProtoSDK/MS-SMB2/Client/Smb2Client.cs:line 685
   at Microsoft.Protocols.TestTools.StackSdk.FileAccessService.Smb2.Smb2Client.SendPacketAndExpectResponse[T](Smb2Packet packet) in /home/romkar/repos/WindowsProtocolTestSuites/ProtoSDK/MS-SMB2/Client/Smb2Client.cs:line 625
   at Microsoft.Protocols.TestTools.StackSdk.FileAccessService.Smb2.Smb2Client.Negotiate(UInt16 creditCharge, UInt16 creditRequest, Packet_Header_Flags_Values flags, UInt64 messageId, DialectRevision[] dialects, SecurityMode_Values securityMode, Capabilities_Values capabilities, Guid clientGuid, DialectRevision& selectedDialect, Byte[]& gssToken, Smb2NegotiateRequestPacket& request, Smb2NegotiateResponsePacket& response, UInt16 channelSequence, PreauthIntegrityHashID[] preauthHashAlgs, EncryptionAlgorithm[] encryptionAlgs, CompressionAlgorithm[] compressionAlgorithms, Smb2RDMATransformId[] rdmaTransformIds, SMB2_COMPRESSION_CAPABILITIES_Flags compressionFlags, SMB2_NETNAME_NEGOTIATE_CONTEXT_ID netNameContext, Boolean addDefaultEncryption, SigningAlgorithm[] signingAlgorithms, Boolean addTransportCapabilities) in /home/romkar/repos/WindowsProtocolTestSuites/ProtoSDK/MS-SMB2/Client/Smb2Client.cs:line 1253
   at Microsoft.Protocols.TestTools.StackSdk.FileAccessService.Smb2.Smb2Client.Negotiate(UInt16 creditCharge, UInt16 creditRequest, Packet_Header_Flags_Values flags, UInt64 messageId, DialectRevision[] dialects, SecurityMode_Values securityMode, Capabilities_Values capabilities, Guid clientGuid, DialectRevision& selectedDialect, Byte[]& gssToken, Packet_Header& responseHeader, NEGOTIATE_Response& responsePayload, UInt16 channelSequence, PreauthIntegrityHashID[] preauthHashAlgs, EncryptionAlgorithm[] encryptionAlgs, CompressionAlgorithm[] compressionAlgorithms, Smb2RDMATransformId[] rdmaTransformIds, SMB2_COMPRESSION_CAPABILITIES_Flags compressionFlags, SMB2_NETNAME_NEGOTIATE_CONTEXT_ID netNameContext, Boolean addDefaultEncryption, SigningAlgorithm[] signingAlgorithms, Boolean addTransportCapabilities) in /home/romkar/repos/WindowsProtocolTestSuites/ProtoSDK/MS-SMB2/Client/Smb2Client.cs:line 1328
   at Microsoft.Protocols.TestManager.WSPServerPlugin.WspDetector.UserLogon(DetectionInfo info, Smb2Client client, UInt64& messageId, UInt64& sessionId, Packet_Header_Flags_Values& defaultFlags, NEGOTIATE_Response& negotiateResp, Boolean& treeConnectSigningRequired) in /home/romkar/repos/WindowsProtocolTestSuites/TestSuites/MS-WSP/src/Plugin/WSPServerPlugin/WspDetector.cs:line 209
   at Microsoft.Protocols.TestManager.WSPServerPlugin.WspDetector.CheckUserLogon(DetectionInfo info) in /home/romkar/repos/WindowsProtocolTestSuites/TestSuites/MS-WSP/src/Plugin/WSPServerPlugin/WspDetector.cs:line 129
   at Program.<Main>$(String[] args) in /home/romkar/repos/WSPAuth/Program.cs:line 13

After the negotiation the connection is closed by the dotnet application, even though it reports that the operation has timed out:

Image

How do I properly use the assembly, login using credentials and make an example GetCPMCreateQuery request (e.g. like in CheckWspService)

I use Fedora 41 with dotnet 8.0.111, and the Server is Windows 10.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant