bump v3.0.1-rc12

deleted payloads don't generate callbacks and attempted fix at rpc timeout issues
This commit is contained in:
its-a-feature
2023-05-24 12:17:16 -05:00
parent 995b1e3998
commit 2c38fca30a
13 changed files with 33 additions and 17 deletions
+8
View File
@@ -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,
+2 -2
View File
@@ -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;
+1 -1
View File
@@ -1 +1 @@
3.0.1-rc11
3.0.1-rc12
@@ -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
+5 -3
View File
@@ -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
View File
@@ -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>
+1 -1
View File
@@ -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