mirror of
https://github.com/its-a-feature/Mythic
synced 2026-06-08 14:55:38 +00:00
bump v3.0.1-rc12
deleted payloads don't generate callbacks and attempted fix at rpc timeout issues
This commit is contained in:
@@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [3.0.1-rc12] - 2023-05-24
|
||||
|
||||
### Changed
|
||||
|
||||
- Added a check when getting a new callback to see if the payload is deleted, if so then no new callback is created and an alert is thrown to the operator
|
||||
- Reduced the popup display for some toast notifications when generating tasks
|
||||
- Attempt to locate and mitigate potential RPC timeout errors
|
||||
|
||||
## [3.0.1-rc11] - 2023-05-23
|
||||
|
||||
### Changed
|
||||
|
||||
@@ -150,7 +150,7 @@ export const CallbacksTabsTaskingPanel = ({tabInfo, index, value, onCloseTab, pa
|
||||
if(data.createTask.status === "error"){
|
||||
snackActions.error(data.createTask.error);
|
||||
}else{
|
||||
snackActions.success("Task created", {autoClose: 1000});
|
||||
//snackActions.success("Task created", {autoClose: 1000});
|
||||
}
|
||||
},
|
||||
onError: data => {
|
||||
|
||||
@@ -126,7 +126,7 @@ export function TaskParametersDialogRow(props){
|
||||
if(props.dynamic_query_function !== ""){
|
||||
if(ChoiceOptions.length === 0){
|
||||
setBackdropOpen(true);
|
||||
snackActions.info("Querying payload type container for options...");
|
||||
snackActions.info("Querying payload type container for options...", {autoClose: 1000});
|
||||
getDynamicParams({variables:{
|
||||
callback: props.callback_id,
|
||||
parameter_name: props.name,
|
||||
|
||||
@@ -16,8 +16,8 @@ import MessageTypes from 'subscriptions-transport-ws/dist/message-types';
|
||||
import jwt_decode from 'jwt-decode';
|
||||
import {meState} from './cache';
|
||||
|
||||
export const mythicVersion = "3.0.1-rc11";
|
||||
export const mythicUIVersion = "0.1.15-rc07";
|
||||
export const mythicVersion = "3.0.1-rc12";
|
||||
export const mythicUIVersion = "0.1.15-rc08";
|
||||
|
||||
let fetchingNewToken = false;
|
||||
|
||||
|
||||
@@ -588,6 +588,7 @@ func LookupEncryptionData(c2profile string, messageUUID string) (*cachedUUIDInfo
|
||||
newCache.OperationID = callback.OperationID
|
||||
} else if err := database.DB.Get(&payload, `SELECT
|
||||
payload.id, payload.operation_id,
|
||||
payload.deleted, payload.description, payload.uuid,
|
||||
payloadtype.id "payloadtype.id",
|
||||
payloadtype.name "payloadtype.name",
|
||||
payloadtype.mythic_encrypts "payloadtype.mythic_encrypts",
|
||||
@@ -596,6 +597,11 @@ func LookupEncryptionData(c2profile string, messageUUID string) (*cachedUUIDInfo
|
||||
JOIN payloadtype on payload.payload_type_id = payloadtype.id
|
||||
WHERE payload.uuid=$1`, messageUUID); err == nil {
|
||||
// we're looking at a payload message
|
||||
if payload.Deleted {
|
||||
err = errors.New(fmt.Sprintf("Payload %s, %s, is deleted, but trying to make a new callback. Attempt is blocked until you mark the payload as no longer deleted.", payload.UuID, payload.Description))
|
||||
logging.LogError(err, "rejecting new callback")
|
||||
return &newCache, err
|
||||
}
|
||||
newCache.UUID = messageUUID
|
||||
newCache.UUIDType = UUIDTYPEPAYLOAD
|
||||
newCache.PayloadID = payload.ID
|
||||
|
||||
@@ -205,7 +205,6 @@ func (r *rabbitMQConnection) SendMessage(exchange string, queue string, correlat
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
}
|
||||
func (r *rabbitMQConnection) SendRPCMessage(exchange string, queue string, body []byte, exclusiveQueue bool) ([]byte, error) {
|
||||
if conn, err := r.GetConnection(); err != nil {
|
||||
@@ -270,7 +269,7 @@ func (r *rabbitMQConnection) SendRPCMessage(exchange string, queue string, body
|
||||
logging.LogError(err, "failed to deliver message to exchange/queue, NotifyReturn", "errorCode", ret.ReplyCode, "errorText", ret.ReplyText)
|
||||
return nil, err
|
||||
case <-time.After(RPC_TIMEOUT):
|
||||
err := errors.New("Message delivery confirmation timed out")
|
||||
err := errors.New("message delivery confirmation timed out in SendRPCMessage")
|
||||
logging.LogError(err, "message delivery confirmation to exchange/queue timed out")
|
||||
return nil, err
|
||||
}
|
||||
@@ -351,7 +350,7 @@ func (r *rabbitMQConnection) ReceiveFromMythicDirectExchange(exchange string, qu
|
||||
} else if msgs, err := ch.Consume(
|
||||
q.Name, // queue name
|
||||
"", // consumer
|
||||
true, // auto-ack
|
||||
false, // auto-ack
|
||||
false, // exclusive
|
||||
false, // no local
|
||||
false, // no wait
|
||||
@@ -364,6 +363,9 @@ func (r *rabbitMQConnection) ReceiveFromMythicDirectExchange(exchange string, qu
|
||||
go func() {
|
||||
for d := range msgs {
|
||||
go handler(d)
|
||||
if err = ch.Ack(d.DeliveryTag, false); err != nil {
|
||||
logging.LogError(err, "Failed to Ack message")
|
||||
}
|
||||
}
|
||||
forever <- true
|
||||
}()
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"files": {
|
||||
"main.css": "/new/static/css/main.4722e92b.css",
|
||||
"main.js": "/new/static/js/main.33270c41.js",
|
||||
"main.js": "/new/static/js/main.63f4bb1b.js",
|
||||
"static/media/mythic.svg": "/new/static/media/mythic.7189479fdfbd51ae729872ce2cb98784.svg",
|
||||
"static/media/mythic_red_small.svg": "/new/static/media/mythic_red_small.793b41cc7135cdede246661ec232976b.svg",
|
||||
"index.html": "/new/index.html",
|
||||
"main.4722e92b.css.map": "/new/static/css/main.4722e92b.css.map",
|
||||
"main.33270c41.js.map": "/new/static/js/main.33270c41.js.map"
|
||||
"main.63f4bb1b.js.map": "/new/static/js/main.63f4bb1b.js.map"
|
||||
},
|
||||
"entrypoints": [
|
||||
"static/css/main.4722e92b.css",
|
||||
"static/js/main.33270c41.js"
|
||||
"static/js/main.63f4bb1b.js"
|
||||
]
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/new/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><link rel="apple-touch-icon" href="/new/logo192.png"/><link rel="manifest" href="/new/manifest.json"/><title>Mythic</title><script defer="defer" src="/new/static/js/main.33270c41.js"></script><link href="/new/static/css/main.4722e92b.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/new/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><link rel="apple-touch-icon" href="/new/logo192.png"/><link rel="manifest" href="/new/manifest.json"/><title>Mythic</title><script defer="defer" src="/new/static/js/main.63f4bb1b.js"></script><link href="/new/static/css/main.4722e92b.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|
||||
+3
-3
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
||||
mqtt.allow_anonymous = false
|
||||
log.file = false
|
||||
log.default.level = critical
|
||||
log.default.level = error
|
||||
log.exchange = false
|
||||
log.connection.level = error
|
||||
log.channel.level = critical
|
||||
|
||||
Reference in New Issue
Block a user