From ed64f2e0d22fb1e1c8aa9e3e548e3f99caed9d44 Mon Sep 17 00:00:00 2001 From: c2biz Date: Wed, 15 Jan 2025 08:40:45 -0500 Subject: [PATCH 1/2] fix bug ignoring supplied name for generate functions --- client/command/generate/generate-beacon.go | 2 +- client/command/generate/generate.go | 5 +++-- client/command/generate/profiles-generate.go | 2 +- server/rpc/rpc-generate.go | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/client/command/generate/generate-beacon.go b/client/command/generate/generate-beacon.go index 14e34e3ff2..f4cae120f2 100644 --- a/client/command/generate/generate-beacon.go +++ b/client/command/generate/generate-beacon.go @@ -32,7 +32,7 @@ func GenerateBeaconCmd(cmd *cobra.Command, con *console.SliverClient, args []str save, _ = os.Getwd() } if external, _ := cmd.Flags().GetBool("external-builder"); !external { - compile(config, save, con) + compile(name, config, save, con) } else { externalBuild(name, config, save, con) } diff --git a/client/command/generate/generate.go b/client/command/generate/generate.go index f296023c0e..4b99f78315 100644 --- a/client/command/generate/generate.go +++ b/client/command/generate/generate.go @@ -98,7 +98,7 @@ func GenerateCmd(cmd *cobra.Command, con *console.SliverClient, args []string) { save, _ = os.Getwd() } if external, _ := cmd.Flags().GetBool("external-builder"); !external { - compile(config, save, con) + compile(name, config, save, con) } else { _, err := externalBuild(name, config, save, con) if err != nil { @@ -905,7 +905,7 @@ func externalBuild(name string, config *clientpb.ImplantConfig, save string, con return nil, nil } -func compile(config *clientpb.ImplantConfig, save string, con *console.SliverClient) (*commonpb.File, error) { +func compile(name string, config *clientpb.ImplantConfig, save string, con *console.SliverClient) (*commonpb.File, error) { if config.IsBeacon { interval := time.Duration(config.BeaconInterval) con.PrintInfof("Generating new %s/%s beacon implant binary (%v)\n", config.GOOS, config.GOARCH, interval) @@ -923,6 +923,7 @@ func compile(config *clientpb.ImplantConfig, save string, con *console.SliverCli con.SpinUntil("Compiling, please wait ...", ctrl) generated, err := con.Rpc.Generate(context.Background(), &clientpb.GenerateReq{ + Name: name, Config: config, }) ctrl <- true diff --git a/client/command/generate/profiles-generate.go b/client/command/generate/profiles-generate.go index f7f1562062..89ea76d754 100644 --- a/client/command/generate/profiles-generate.go +++ b/client/command/generate/profiles-generate.go @@ -46,7 +46,7 @@ func ProfilesGenerateCmd(cmd *cobra.Command, con *console.SliverClient, args []s if SGNDisabled, _ := cmd.Flags().GetBool("disable-sgn"); SGNDisabled { profile.Config.SGNEnabled = !SGNDisabled } - _, err := compile(profile.Config, save, con) + _, err := compile(name, profile.Config, save, con) if err != nil { return } diff --git a/server/rpc/rpc-generate.go b/server/rpc/rpc-generate.go index 54a610c45a..e7ce371b43 100644 --- a/server/rpc/rpc-generate.go +++ b/server/rpc/rpc-generate.go @@ -68,7 +68,7 @@ func (rpc *Server) Generate(ctx context.Context, req *clientpb.GenerateReq) (*cl if err != nil { return nil, err } - } else if err := util.AllowedName(name); err != nil { + } else if err := util.AllowedName(req.Name); err != nil { return nil, err } else { name = req.Name From c9a624831aff0ab19e1a715773882fe6902bf5c9 Mon Sep 17 00:00:00 2001 From: c2biz Date: Wed, 15 Jan 2025 09:23:02 -0500 Subject: [PATCH 2/2] fix input bug to AllowedName in GenerateExternal() --- server/rpc/rpc-generate.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/rpc/rpc-generate.go b/server/rpc/rpc-generate.go index e7ce371b43..24c2f23d3c 100644 --- a/server/rpc/rpc-generate.go +++ b/server/rpc/rpc-generate.go @@ -340,7 +340,7 @@ func (rpc *Server) GenerateExternal(ctx context.Context, req *clientpb.ExternalG if err != nil { return nil, err } - } else if err := util.AllowedName(name); err != nil { + } else if err := util.AllowedName(req.Name); err != nil { return nil, err } else { name = req.Name