Skip to content

Commit cca463b

Browse files
committed
v2.0.25
static build option and ls quote fixes
1 parent 5a0d30b commit cca463b

File tree

5 files changed

+37
-16
lines changed

5 files changed

+37
-16
lines changed

Payload_Type/poseidon/go.sum

-8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
github.com/MythicMeta/MythicContainer v1.3.6 h1:RbA98y/hB/qzZga6vT/d+o/23x8BAfok1+y8MRoXsi8=
2-
github.com/MythicMeta/MythicContainer v1.3.6/go.mod h1:EZqZAa+ZdZhhfLICL4RhnlBydMxZC4wi5vr95WRgdbY=
31
github.com/MythicMeta/MythicContainer v1.3.7 h1:n5uIgSJKjEWvrvSzM7ab3CzCfFp7ovzGgr5Yf8p7ch4=
42
github.com/MythicMeta/MythicContainer v1.3.7/go.mod h1:EZqZAa+ZdZhhfLICL4RhnlBydMxZC4wi5vr95WRgdbY=
53
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
@@ -76,8 +74,6 @@ go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
7674
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
7775
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
7876
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
79-
golang.org/x/exp v0.0.0-20240213143201-ec583247a57a h1:HinSgX1tJRX3KsL//Gxynpw5CTOAIPhgL4W8PNiIpVE=
80-
golang.org/x/exp v0.0.0-20240213143201-ec583247a57a/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc=
8177
golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ=
8278
golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc=
8379
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
@@ -90,12 +86,8 @@ golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
9086
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
9187
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
9288
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
93-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9 h1:hZB7eLIaYlW9qXRfCq/qDaPdbeY3757uARz5Vvfv+cY=
94-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:YUWgXUFRPfoYK1IHMuxH5K6nPEXSCzIMljnQ59lLRCk=
9589
google.golang.org/genproto/googleapis/rpc v0.0.0-20240228224816-df926f6c8641 h1:DKU1r6Tj5s1vlU/moGhuGz7E3xRfwjdAfDzbsaQJtEY=
9690
google.golang.org/genproto/googleapis/rpc v0.0.0-20240228224816-df926f6c8641/go.mod h1:UCOku4NytXMJuLQE5VuqA5lX3PcHCBo8pxNyvkf4xBs=
97-
google.golang.org/grpc v1.61.0 h1:TOvOcuXn30kRao+gfcvsebNEa5iZIiLkisYEkf7R7o0=
98-
google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs=
9991
google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk=
10092
google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE=
10193
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=

Payload_Type/poseidon/poseidon/agent_code/CHANGELOG.MD

+7
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
55
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
66

7+
## 2.0.25 - 2024-03-06
8+
9+
### Changed
10+
11+
- Fixed the `ls` command to handle surrounding quotes
12+
- Added `static` option to statically compile poseidon
13+
714
## 2.0.24 - 2024-02-29
815

916
### Changed

Payload_Type/poseidon/poseidon/agentfunctions/builder.go

+23-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
"strings"
1616
)
1717

18-
const version = "2.0.24"
18+
const version = "2.0.25"
1919

2020
var payloadDefinition = agentstructs.PayloadType{
2121
Name: "poseidon",
@@ -88,6 +88,13 @@ var payloadDefinition = agentstructs.PayloadType{
8888
ParameterType: agentstructs.BUILD_PARAMETER_TYPE_NUMBER,
8989
DefaultValue: 10,
9090
},
91+
{
92+
Name: "static",
93+
Description: "Statically compile the payload",
94+
Required: false,
95+
ParameterType: agentstructs.BUILD_PARAMETER_TYPE_BOOLEAN,
96+
DefaultValue: false,
97+
},
9198
},
9299
BuildSteps: []agentstructs.BuildStep{
93100
{
@@ -141,6 +148,12 @@ func build(payloadBuildMsg agentstructs.PayloadBuildMessage) agentstructs.Payloa
141148
payloadBuildResponse.BuildStdErr = err.Error()
142149
return payloadBuildResponse
143150
}
151+
static, err := payloadBuildMsg.BuildParameters.GetBooleanArg("static")
152+
if err != nil {
153+
payloadBuildResponse.Success = false
154+
payloadBuildResponse.BuildStdErr = err.Error()
155+
return payloadBuildResponse
156+
}
144157
failedConnectionCountThresholdString, err := payloadBuildMsg.BuildParameters.GetNumberArg("failover_threshold")
145158
if err != nil {
146159
payloadBuildResponse.Success = false
@@ -154,7 +167,12 @@ func build(payloadBuildMsg agentstructs.PayloadBuildMessage) agentstructs.Payloa
154167

155168
// Build Go link flags that are passed in at compile time through the "-ldflags=" argument
156169
// https://golang.org/cmd/link/
157-
ldflags := fmt.Sprintf("-s -w -X '%s.UUID=%s'", poseidon_repo_profile, payloadBuildMsg.PayloadUUID)
170+
ldflags := ""
171+
if static {
172+
ldflags += fmt.Sprintf("-extldflags=-static -s -w -X '%s.UUID=%s'", poseidon_repo_profile, payloadBuildMsg.PayloadUUID)
173+
} else {
174+
ldflags += fmt.Sprintf("-s -w -X '%s.UUID=%s'", poseidon_repo_profile, payloadBuildMsg.PayloadUUID)
175+
}
158176
ldflags += fmt.Sprintf(" -X '%s.debugString=%v'", poseidon_repo_utils, debug)
159177
ldflags += fmt.Sprintf(" -X '%s.egress_failover=%s'", poseidon_repo_profile, egress_failover)
160178
ldflags += fmt.Sprintf(" -X '%s.failedConnectionCountThresholdString=%v'", poseidon_repo_profile, failedConnectionCountThresholdString)
@@ -259,6 +277,9 @@ func build(payloadBuildMsg agentstructs.PayloadBuildMessage) agentstructs.Payloa
259277
goarch = "arm64"
260278
}
261279
tags := []string{}
280+
if static {
281+
tags = []string{"osusergo", "netgo"}
282+
}
262283
for index, _ := range payloadBuildMsg.C2Profiles {
263284
tags = append(tags, payloadBuildMsg.C2Profiles[index].Name)
264285
}

Payload_Type/poseidon/poseidon/agentfunctions/ls.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"github.com/MythicMeta/MythicContainer/logging"
66
"github.com/mitchellh/mapstructure"
77
"path/filepath"
8+
"strings"
89
)
910

1011
func init() {
@@ -24,14 +25,14 @@ func init() {
2425
Success: true,
2526
TaskID: taskData.Task.ID,
2627
}
27-
if path, err := taskData.Args.GetStringArg("path"); err != nil {
28+
path, err := taskData.Args.GetStringArg("path")
29+
if err != nil {
2830
logging.LogError(err, "Failed to get string arg for path")
2931
response.Error = err.Error()
3032
response.Success = false
3133
return response
32-
} else {
33-
response.DisplayParams = &path
3434
}
35+
response.DisplayParams = &path
3536
return response
3637
},
3738
TaskFunctionParseArgDictionary: func(args *agentstructs.PTTaskMessageArgsData, input map[string]interface{}) error {
@@ -50,7 +51,7 @@ func init() {
5051
args.AddArg(agentstructs.CommandParameter{
5152
Name: "path",
5253
ParameterType: agentstructs.COMMAND_PARAMETER_TYPE_STRING,
53-
DefaultValue: fileBrowserData.FullPath,
54+
DefaultValue: strings.Trim(fileBrowserData.FullPath, "\""),
5455
})
5556
return nil
5657
}
@@ -67,7 +68,7 @@ func init() {
6768
args.AddArg(agentstructs.CommandParameter{
6869
Name: "path",
6970
ParameterType: agentstructs.COMMAND_PARAMETER_TYPE_STRING,
70-
DefaultValue: input,
71+
DefaultValue: strings.Trim(input, "\""),
7172
})
7273
}
7374
args.AddArg(agentstructs.CommandParameter{

agent_capabilities.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@
1010
"architectures": ["x86_64", "arm_64"],
1111
"c2": ["http", "websocket", "dynamichttp", "poseidon_tcp"],
1212
"mythic_version": "3.2",
13-
"agent_version": "2.0.24",
13+
"agent_version": "2.0.25",
1414
"supported_wrappers": []
1515
}

0 commit comments

Comments
 (0)