From 10eee0ed28ecf5f22967a935e3596000e75cd63e Mon Sep 17 00:00:00 2001 From: Bryan McNulty Date: Mon, 28 Apr 2025 02:08:24 -0500 Subject: Fix SMB dialect negotiation (#13) * Negotiate (not force) highest SMB dialect * Fixed some issues with SMB client --- pkg/goexec/smb/client.go | 2 +- pkg/goexec/smb/options.go | 20 ++++++++------------ 2 files changed, 9 insertions(+), 13 deletions(-) (limited to 'pkg') diff --git a/pkg/goexec/smb/client.go b/pkg/goexec/smb/client.go index d95481c..a9e0e11 100644 --- a/pkg/goexec/smb/client.go +++ b/pkg/goexec/smb/client.go @@ -58,7 +58,7 @@ func (c *Client) Connect(ctx context.Context) (err error) { } // Establish TCP connection - c.conn, err = c.netDialer.Dial("tcp", net.JoinHostPort(c.Host, fmt.Sprintf("%d", c.Port))) + c.conn, err = c.netDialer.Dial("tcp", net.JoinHostPort(c.Host, "445")) if err != nil { return err diff --git a/pkg/goexec/smb/options.go b/pkg/goexec/smb/options.go index 4112abf..413129f 100644 --- a/pkg/goexec/smb/options.go +++ b/pkg/goexec/smb/options.go @@ -47,23 +47,19 @@ func (c *Client) Parse(ctx context.Context) (err error) { var do []msrpcSMB2.DialerOption - if c.Port == 0 { - c.Port = DefaultPort - } - if c.Dialect == 0 { - c.Dialect = DefaultDialect - } + if c.Dialect != 0 { // Use specific dialect - // Validate SMB dialect/version - if d, ok := supportedDialects[c.Dialect]; ok { - do = append(do, msrpcSMB2.WithDialect(d)) + // Validate SMB dialect/version + if d, ok := supportedDialects[c.Dialect]; ok { + do = append(do, msrpcSMB2.WithDialect(d)) - } else { - return errors.New("unsupported SMB version") + } else { + return errors.New("unsupported SMB version") + } } if c.Proxy == "" { - c.netDialer = &net.Dialer{} // FUTURE: additional dial c + c.netDialer = &net.Dialer{} } else { // Parse proxy URL -- cgit v1.2.3