- Changed order of calls for C2 Syncing so that RabbitMQ listeners are started before syncing over data
- Added mutex around starting/stopping the internal server
- Updated many C2 RPC functions to allow them to ask for the internal server to restart
- Added explicit update function for c2 internal server status
- Added username/password options when starting socks proxy
- Added 'remove' option in hosting files via c2
- Fixed a typo in the JSON tag for the MythicRPCCallbackTokenCreate RPC call
- Updated Eventing-based functions to auto-set the eventstepinstance_id field on the response
- ContainerVersion v1.3.3
- Added support for PayloadUUID and StagingUUID to be used in MythicRPCCallbackEncryptBytes and MythicRPCCallbackDecryptBytes
- A new field,
C2Profile
must be provided with these so that the appropriate keys can be looked up
- A new field,
- Fixed awaited functions in eventing containers
- Added in container ReSync message acknowledgement for consuming containers to indicate uptime
- Added the option for
limit_credentials_by_type
for CredentialJson command parameters to limit the options in the UI dropdown to certain types
- Updated the processing of commands to not check command class module's parent path name, too error prone
- Updated payload type definition to support using legacy "note" field or updated "description" field
- Updated typed array parsing to fix bugs
- fixed typo when building payload
- fixed typo when building payload
- This is updated to work with Mythic 3.3+ and will cause some issues with Mythic 3.2 and below
- New Auth
- New Eventing
- New Build/C2/Command parameter options of ChooseOneCustom and FileMultiple
- New Logging options
- Added MythicRPCAPITokenCreate
- Added MythicRPCCallbackNextCheckinRange
- Added MythicRPCFilebrowserParsePath
- Updated PayloadTypes to store lowercase names locally and check against module names lower case
- This fixes an issue where a Capital payload type name and a lowercase module name won't sync together
- Fixed a typo in the SendMythicRPCFileBrowserCreate
- Added CallbackDisplayID, PayloadType, IsInteractiveTask, and InteractiveTaskType to task search and task log data
- Added InteractiveTaskType dictionary lookup in MythicCommandBase based on InteractiveTaskType
- Updated the processing of payload type commands to be based on root module name
- Added
Number
parameter type to build parameters to match C2 Profile Parameters - Updated package dependencies
- Added OperatorUsername and OperationName to PTTaskMessageCallbackData fields with Mythic 3.2.19
- Added
agent_type
attribute for Payload Types
- Added access to "Secrets" in tasking, dynamic queries, new callbacks, and payload builds
- Added
message_format
attribute for Payload Types for use later
- Fixed a bug where in some situations old style tasking would get improperly formatted typedarray args
- Fixed a breaking bug in parsing tasking for old create_tasking style when checking for typedArray functions
- Fixed a path that was too long on windows
- Updated the c2 profile sub-process code to not cause deadlocks and only keep the latest 100 messages from debug output
- Updated the typedarray_parse_function to be called after parse_dictionary or parse_arguments is called
- Parsing dictionary and arguments should simply make sure that there's data in the typed array parameter
- The
typedarray_parse_function
will be called if the value after parse_dictionary or parse_arguments is[ ["", "string"], ["", "value" ]]
or[ "value", "value" ]
formats.- The first format with the empty first value is how Mythic's UI parsing will interpret the arrays
- Updated the DynamicFunctionQuery attributes to be optional and not required
- Removed the FileRegister MythicRPC Call
- Updated the FileCreate MythicRPC Call to allow TaskID, PayloadUUID, or AgentCallbackID to be supplied
- This makes it possible to register new files with Mythic during payload build, translation containers, etc
- Updated the DynamicQuery Parameters to now also have PayloadOS, PayloadUUID, CallbackDisplayID, and AgentCallbackID
- This should make it easier to use MythicRPC functionality to make more informed decisions
- Updated container version to v1.1.4, Needs Mythic v3.2.13+
- Added a new optional
on_new_callback
function to the PayloadType class- This allows you to take additional actions on a new callback based on your payload type
- Added new MythicRPC* functions for searching edges associated with a callback and for creating new tasks for a callback
- Needs Mythic v3.2.12+ to leverage new functionality
- Fixed an issue with async timeout in rabbitmq from issue #10
- Fixed the MythicRPCEncryptBytes and MythicRPCDecryptBytes functions to base64 decode the responses back from Mythic
- Added support for 'Number' parameter types for C2 Profiles
- Added support for 'File' parameter types for C2 Profiles
- Added gRPC classes for Push C2
- Added C2 RPC calls for hosting files
- Added PayloadType RPC calls for parsing TypedArray values
- Added TypedArray values for Build, Command, and C2 parameters
- Updated ProxyStart/ProxyStop commands to take an optional local_port of 0 and have it dynamically chosen
- Updated the processing of commands to only parse arguments in OPSECPre and CreateTasking
- Updated the processing of commands to add unknown args for other stages of tasking in case CreateTasking manipulates the total arguments
- Updated the MythicRPCTaskCreateSubtaskGroupMessageResponse response to take back a group of IDs rather than a single ID
- Updated to add
wrapped_payload_uuid
field for wrapper payloads to access UUID of wrapped payload during build - Updated token handling to always default to
None
if token id is None or 0
- Updated the logging/webhook listeners to use unique names so we don't round robin messages
- Updated the type validation keys from a typo for CredentialJson parameter types
- Decoded response searches back to string instead of leaving as bytes
- Fixed some bugs with how translation services handle timeouts and reconnects
- Updated the final JSON string from tasking to not include Null values
- Updated the create tasking's Stdout to include information about which arguments aren't getting used and why