- Reverted some rabbitmq changes
- Updated the ordering for syncing classes so that translation containers happen before payload types
- Fixed a bug with instantiating classes
- Updated CommandBase to have more explicit attributes instead of abstract properties
- Adding Python pieces for CallbackUpdate time and c2 profile components via MythicRPC
- Updated the MythicRPCCallbackSearch to allow specifying Payload Type names
- Updated the MythicRPCCallbackAddCommand and MythicRPCCallbackRemoveCommand functions to allow specifying list of callback IDs
- Updated the SendMythicRPCSyncPayloadType functionality to force Mythic to NOT re-call the on_start functionality
- This needs Mythic v3.3.1-rc31+
- Added ReprocessAtNewCommandPayloadType option for create_go_tasking response
- Added AgentCallbackID and PayloadType to MythicRPCCallbackAddCommand and MythicRPCCallbackRemoveCommand messages
- Added more checks when syncing commands to make sure that duplicates aren't processed
- Added new SendMythicRPCSync* functions in the base classes for the following classes
- PayloadBuilder
- This one in particular has you specify a set of additional commands (potentially dynamically created) to sync with Mythic
- WebhookBase
- AuthBase
- EventingBase
- LoggingBase
- This will allow you to make changes to your class definitions as needed and re-sync the updates to Mythic when you want
- PayloadBuilder
- Merged Evan McBroom's PR to fix missing imports in the MythicGoRPC Folder
- Added Evan McBroom's PR for multi-level inheritance (#12)
- Added support for specifying username/password for proxy stop
- Added support for specifying in the agent definition if original or display parameters should be used in the cli history
- This is an effort to reduce the amount of JSON users might see if they up/down arrow on the command line
- This defaults to false, but if you set it to true then you should make sure that your
response.DisplayParams
are a valid format for tasking
- 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