exit
- boolean True or False. This indicates to either Mythic or your Agent that the connection has been terminated from one end and should be closed on the other end (after sending data
). Because Mythic and 2 HTTP connections sit between the actual tool you’re trying to proxy and the agent that makes those requests on your tool’s behalf, we need this sort of flag to indicate that a TCP connection has closed on one side.
server_id
- uint32. This number is how Mythic and the agent can track individual connections. Every new connection from a proxied tool (like through proxychains) will generate a new server_id
that Mythic will send with data to the Agent.
data
- base64 string. This is the actual bytes that the proxied tool is trying to send.
exit
is True, then data
can be None
get_tasking
and post_response
messages via a (added if needed) socks
key:
post_response
messages:
get_tasking
request OR a post_response
request, you could get back socks
data. The same goes for rpfwd
, interactive
, and delegates
.server_id
, then we can forward the message off to the appropriate thread or channel to continue processing. If we’ve never seen the server_id before, then it’s likely a new connection that opened up from an operator starting a new tool through proxychains, so we need to handle that appropriately.
exit
is True or not. If exit
is True, then the agent should close its corresponding TCP connection and clean up those resources. If it’s not exit, then the agent should base64 decode the data
field and forward those bytes through the existing TCP connection.
get_tasking
and post_response
messages.