UTCTF 2023
https://ctftime.org/event/1919
Challs
Category | Challenge |
---|---|
Forensics | “Easy” Volatility |
Networking | A Network Problem - Part 1 |
Networking | A Network Problem - Part 2 |
Reversing | Reading List |
“Easy” Volatility
Description
I’ve included the flag in as shell command. Can you retrieve it?
I recommend using the volatility3 software for this challenge.
Here is the memory dump: debian11.core.zst
This problem also comes with a free profile! debian11_5.10.0-21.json.zst
Both of these files are compressed using zstd.
This challenge’s flag looks like a UUID.
Note: the volatility challenges do not have a flag format to discourage grepping. They all should be possible without guessing. If you have trouble, remember that you can ask for help.
By Daniel Parks (@danielp on discord)
We need the symbol table for the corresponding kernel.
$ ls
debian11.core debian11.core.zst debian11_5.10.0-21.json debian11_5.10.0-21.json.zst
As the symbol table in the form of a JSON file is already provided in this challenge, we can simply move it to the directory /volatility3/symbols
.
$ mv debian11_5.10.0-21.json /home/nopedawn/.local/lib/python3.10/site-packages/volatility3/symbols
Then, we can continue recover the bash command history from memory.
$ vol -f debian11.core linux.bash
Volatility 3 Framework 2.4.1
Progress: 100.00 Stacking attempts finished
PID Process CommandTime Command
467 bash 2023-03-05 18:21:23.000000 # 08ffea76-b232-4768-a815-3cc1c467e813
Flag
08ffea76-b232-4768-a815-3cc1c467e813
A Network Problem - Part 1
Description
There are some interesting ports open on betta.utctf.live, particularly port 8080.
By Robert Hill (@Rob H on discord)betta.utctf.live:8080
We can establish a network connection by using netcat then sending data through that connection. In this context, the command will establish a connection to the host betta.utctf.live
on port 8080
, which is a server or service that can receive connections to perform certain network interactions.
$ nc betta.utctf.live 8080
Hi Wade! I am using socat to broadcast this message. Pretty nifty right? --jwalker utflag{meh-netcats-cooler}
After the connection is successfully established, we will receive response data from the host in the form of text and also a flag.
Flag
utflag{meh-netcats-cooler}
A Network Problem - Part 2
Description
betta.utctf.live has other interesting ports. Lets look at 445 this time.
By Robert Hill (@Rob H on discord)betta.utctf.live:445
We can use the command enum4linux -a betta.utctf.live
to run the enum4linux program in the terminal and perform enumeration on the host betta.utctf.live.
enum4linux
is a tool used to examine Windows and Samba systems in order to search for information about users, user lists, group information, security policy information, and information about running services. In this context, the command will attempt to perform enumeration on the betta.utctf.live
host with the -a
option that allows searching for more detailed information, such as searching for Samba shares, user information, and other information.
In general, the enum4linux program is used to scan and gather information on systems connected to a network in order to evaluate the security of those systems, including searching for potential vulnerabilities and security holes that attackers can exploit.
$ enum4linux -a betta.utctf.live
===============================( Share Enumeration on betta.utctf.live )===============================
Sharename Type Comment
--------- ---- -------
WorkShares Disk Sharing of work files
BackUps Disk File Backups.
IPC$ IPC IPC Service (Samba Server)
SMB1 disabled -- no workgroup available
[+] Attempting to map shares on betta.utctf.live
//betta.utctf.live/WorkShares Mapping: OK Listing: OK Writing: N/A
//betta.utctf.live/BackUps Mapping: DENIED Listing: N/A Writing: N/A
[E] Can't understand response:
NT_STATUS_CONNECTION_REFUSED listing \*
//betta.utctf.live/IPC$ Mapping: N/A Listing: N/A Writing: N/A
We have discovered SMB share WorkShares
. It will useful for us to find more files we can work with.
Let’s enumerate SMB using smbclient
tool. Upon password prompt hit Enter and we will be logged in WorkShares
smb share.
$ smbclient //betta.utctf.live/WorkShares
Password for [WORKGROUP\nopedawn]:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Thu Mar 9 02:45:05 2023
.. D 0 Thu Mar 9 02:45:05 2023
shares D 0 Thu Mar 9 02:45:05 2023
9974088 blocks of size 1024. 6101912 blocks available
smb: \> cd shares\
smb: \shares\> ls
. D 0 Thu Mar 9 02:45:05 2023
.. D 0 Thu Mar 9 02:45:05 2023
Advertising D 0 Thu Mar 9 02:45:05 2023
OfficeFun D 0 Thu Mar 9 02:45:05 2023
IT D 0 Thu Mar 9 02:45:05 2023
9974088 blocks of size 1024. 6101884 blocks available
smb: \shares\> cd IT\
smb: \shares\IT\> ls
. D 0 Thu Mar 9 02:45:05 2023
.. D 0 Thu Mar 9 02:45:05 2023
Itstuff D 0 Thu Mar 9 02:45:05 2023
9974088 blocks of size 1024. 6101660 blocks available
smb: \shares\IT\> cd Itstuff\
smb: \shares\IT\Itstuff\> ls
. D 0 Thu Mar 9 02:45:05 2023
.. D 0 Thu Mar 9 02:45:05 2023
notetoIT N 380 Thu Mar 9 02:45:05 2023
9974088 blocks of size 1024. 6101632 blocks available
smb: \shares\IT\Itstuff\>more notetoIT
I don't understand the fasination with the magic phrase "abracadabra", but too many people are using them as passwords. Crystal Ball, Wade Coldwater, Jay Walker, and Holly Wood all basically have the same password. Can you please reach out to them and get them to change thier passwords or at least get them append a special character?
-- Arty F.
utflag{out-of-c0ntrol-access}
Flag
utflag{out-of-c0ntrol-access}
Reading List
Description
I created this binary to keep track of some strings that I want to read. I thought I put a CTF flag in it so I’ll remember to make a problem for UTCTF, but I can’t seem to find it…
By Caleb (@eden.caleb.a#6541 on Discord)
The command strings readingList | grep "utflag"
is used to extract strings from the binary elf file readingList, then search for strings that contain the keyword "utflag"
in the resulting string output.
$ strings readingList | grep "utflag"
utflag{string_theory_is_a_cosmological_theory_based_on_the_existence_of_cosmic_strings}
strings
is a command used to extract and print sequences of characters that are readable as strings from a given file input. In this case, readingList
is the file from which the strings will be extracted.
Flag
utflag{string_theory_is_a_cosmological_theory_based_on_the_existence_of_cosmic_strings}