aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan McNulty <bryan@falconops.com>2025-04-28 02:08:24 -0500
committerGitHub <noreply@github.com>2025-04-28 02:08:24 -0500
commit10eee0ed28ecf5f22967a935e3596000e75cd63e (patch)
tree6a20b4b2f103b2728bbd30b690c6227da664184d
parent5d0e12eaeacc8532cea2e4c595501388f1eb6739 (diff)
downloadgoexec-10eee0ed28ecf5f22967a935e3596000e75cd63e.tar.gz
goexec-10eee0ed28ecf5f22967a935e3596000e75cd63e.zip
Fix SMB dialect negotiation (#13)
* Negotiate (not force) highest SMB dialect * Fixed some issues with SMB client
-rw-r--r--pkg/goexec/smb/client.go2
-rw-r--r--pkg/goexec/smb/options.go20
2 files changed, 9 insertions, 13 deletions
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