European Cybersecurity Challenge (ECSC 2024)

Day 1:

9.30pm (SGT):
Our meeting at the airport was definitely a first for me, it was my first time travelling outside of Asia and my first time meeting my travel companions for the trip at the airport. I didn’t have much of an idea of most of the people were like before the trip and nobody having an actual profile picture of themselves certainly did not help. I didn’t even know some of their names yet because their telegram usernames were straight up nicknames like ‘N00bCak’.

The plane ride there was pretty rough, from trying to solve CS2040S Kattis problems on the flight to binging on Culinary Class Wars which resulted in me getting close to no sleep on a 12 hour flight. I wouldn’t say I regret that decision but it did lead to me crashing out on the first day as soon as we reached the hotel.

1pm (Local Time):
After about 16 hours of straight travelling, we finally reached the hotel and managed to put down our bags and luggage. Before we knew it, we were on a train to Milan in search of the all but mysterious pot of gold at the end of the rainbow called “Fettucine Alfredo”.



3.30pm:
As we exited the train station in Milan, we were greeted by some of the most beautiful architecture I’ve ever seen and some conspicuous men who were trying to give us breadcrumbs to feed the pigeons around us. We were definitely awestruck by the amazing architecture as some of us joked it was “x64” while Singapore was living in “x86” architecture. Guess that makes Yishun MIPS.



5.30pm:
After getting our gelato fix, next on our list was a pasta place that was recommended to me by a friend (thanks Aidan) who had visited Milan before. Via Pasteria had by far the best pasta I have ever eaten before, even beating out Fico who I had just ate a week earlier. The pasta was perfectly al-dente where the carbonara had a rich creaminess and cheesiness that tasted perfect together. The peppered guanciale paired with the maccheroni which cost me 16€ (S$23) had a saltiness that tasted a bit overpowering but somehow made the dish more delicious at the same time. Needless to say it was delicious where I finished everything except a few bits of guanciale that were just too salty for me at the end.
I would like to say that I am typically not a tiramisu person because I dislike the taste of coffee but when in Italy, do as the Italians do. The tiramisu 8€ (S$12) was expensive but definitely worth it as the mascarpone custard was perfectly made and tasted superb together with the coffee-soaked ladyfingers. I thoroughly enjoyed the dessert because the coffee-taste was not overpowering while the custard satisfied my sweet tooth.

7.00pm:
We spent the rest of the time before our train back just walking through the crowded streets of Milan and just looking for stores that might interest us. Unfortunately we were all broke university students and were not interested by any of the designer stores that stretched for miles to go. We eventually decided to have a second dinner at a pizza place that was well-rated on Google Maps and ordered a Magherita and the Chef’s Special which was a pizza served with capers and ricotta cheese. The pizza was really good and only cost us about 8€ (S$12) per pizza which is kind of comparable to Domino’s 2 for S$22 in Singapore.
10.30pm:
We had finally reached our hotel, Hotel Gran Torino and I was fully ready to crash out in the bed. After taking a long and deep shower, it was time for us to finally hit the hay and rest up before our first day tomorrow. As tired as I was from travelling the entire day, the trip to Milan was definitely worth it and we managed to eat out first but not soon to be last, pizzas, pastas and gelatos on the trip.
Day 2:


9.30am:
Breakfast was pretty good at the hotel, they offered a variety of foods like scrambled eggs, sausages, yoghurt, cereal and desserts like cake. For some reason the breakfast offered a lot of sweet stuff and also TIL that Nutella was invented in Italy. Most of the time I just had a chocolate cake with a tea and some yoghurt. Thankfully we didn’t have much to do today so after breakfast, I went back and took a nap until 11.45 until we had to prepare to leave at 12.


12.30pm:
Our trip to the venue wasn’t particularly long, as our hotel was recommended by ECSC so we were about a 20 minute tram ride to the venue everyday. As soon as we arrived at the venue, we head to registration and began setting up for the Demo Challenges to prepare us for tomorrow. During the demo challenges, we realised that despite setting up the Wireguard to connect to their intranet, we were still unable to access the internal challenge servers through WiFi while the others who were connected using ethernet had no issues. So before the Opening Ceremony started, we setup Voi and were eScootering to the nearest tech store to get some USB to Ethernet adapters.



2pm:
Right across the venue was a restaurant called Four Soldi which was highly rated so we decided to try it out for lunch. The focaccia was “huge compared to Saizeriya” – (Aloysius Goo, 2024) and initially Aloysius ordered it for himself but we had to split it amongst a few of us it was a lot bigger than he thought it would be. The four-cheese pizza was another hit as the blue cheese felt strong yet tasty at the same time. The risotto, on the other hand, looked a bit unappetising, to say the least. I didn’t really enjoy the taste of it at first as it felt mushy and didn’t have a very coherent flavour but I guess I grew to like it eventually, finishing about 3/4 of it.

Of course, no Italian meal would be complete without a Tiramisu. Via Pasteria’s was a lot better but this still held it’s weight against Singaporean’s standards.

3.30pm:
After lunch, we headed back to the venue to continue with testing the demo challenges and took a team photo at the venue. The demo challenges were pretty difficult and we later found out that they were part of the ECSC Open Challenges that the teams completed to qualify for the ECSC Main Event. This definitely made me worried about being skill-issued before our first day of jeopardy tomorrow.



8pm:
Dinner was catered buffet everyday, typically serving some sort of Italian food with there always being a different type of pasta and pizza each day. There were always new dishes to try such as this egg, cheese, nuts dish which tasted surprisingly good but sometimes they were a miss as well. The pork knuckle was really tender and was made really well so we were kind of happy with the quality of the catered food.

9.30pm:
After dinner, we decided to bring our inner YP to the streets of Turin and eScootered our way back to the hotel. The experience was fun and exhilarating which made me understand why YP culture loved eScooters and blasting music on JBL speakers. It was a great experience that we would no longer be able to do in Singapore. Once we reached our hotel, Yi Tian, Yu Zhang and I decided to test out the gym before calling it a night. Although the gym didn’t have a lot of options and equipment, we still managed to make do with what we could and got a decent workout in to offset some of that pizza and pasta.
Day 3 (9th October):






9.00am:
The Jeopardy CTF started at 10am, so we planned to reach the venue at roughly 9am to start preparing for the long eight hours ahead. For many of us, it was our first time participating in a CTF overseas and for me, I it was awhile since my last CTF as well. There were 6 categories in the CTF, crypto, hardware, misc, pwn, rev and web. The number of challenges solved really showed how hard this year’s ECSC really was. Many challenges had single digit solves compared to last year where multiple teams full solved a few categories. After talking to some of the other teams, everyone had the same consensus of getting reality checked on how hard the challenges were. I’ll let the pictures of Joshua below tell the story of how our Jeopardy day went.




I decided to focus on Web challenges as it was the category I felt most comfortable in. However, I was thoroughly skill issue’d by many of the challenges. Kai Xuan and I managed to complete KarmaVault together and were really close to solving SecretManager but could not pull through in the end. Somehow, we didn’t manage to figure out Ticket champions which was the most solved Web challenge but it didn’t matter as we were getting owned by USA, Canada and Australia anyway. Here’s a sublink to the small writeup I made for KarmaVault and how much we managed to progress for SecretManager.


7pm:
We tried our best in the competition, eventually ending at 31st for my first ever live international CTF. I wouldn’t say we were disappointed as we didn’t come in with very high expectations but at the end of the day we were truly against Europe’s bests’ and I am happy to have given it my all in this opportunity. Honestly, it inspired me a lot more to get better so that I would be able to better solve challenges in the future. The only thing we probably did well at was devouring all the ham at the buffet.
Day 4 (10th October):
10am:
Regretfully I didn’t take many photos of the Attack & Defence CTF because we got absolutely destroyed in this event as it was our first time participating in an AD CTF so we were severely underprepared. But to be honest, it was a really fun experience nevertheless and I might actually prefer AD over Jeopardy if I understood how to approach the format better. Using Tulip to see how different teams approached exploits on your machines and figuring out ways to replicate the exploits made the experience feel interactive and engaging and provided a bit of exhilaration in an already long event.
The process reminded me of approaching boxes on HTB because of the exploitation steps although the enumeration portion was mostly removed as you had a duplicate machine on your end so you already knew what was vulnerable about it.


Day 5 (11th October):
10am:
With the competition finally over, we decided to explore a bit more of Turin by visiting a nearby outlet mall and some of the city’s biggest attractions. In Italy, you’re never spoilt for choice with the number of dessert options, pastas and pizzas available.




1pm:
We did visit the heart of the city but didn’t have much time to do much exploring today as we had to rush off to the award and closing ceremony.


3pm:
The only significant achievement we managed to accomplish is using 587GB worth of traffic during our AD CTF.

7pm:
The gala dinner was quite a pleasant end to the event, serving good food and having great company to talk to made the closing of the event bittersweet.


Here are some photos from the afterparty




Day 6 (12th October):
10am:
Sadly, it was our last day in Italy. Yu Zhang and I woke up earlier to stop by an Italian supermarket where we picked up a bunch of pastas and cheeses before flying back to Singapore. We had a fantastic last meal in Turin, thanks to Georgia’s recommendation of her favourite restaurant.




Reflection:
ECSC 2024 will definitely be one of my favourite highlights during my university experiences as I got to finally travel out of Asia for the first time and I had what turned out to be great company to experience it with as well. One thing is for sure, it made me realize how much more I had to learn in terms of CTFs and how competitive the world truly is in this field.
I am extremely grateful for my fellow NUS Greyhats members who made the trip a lot more fun and were willing to do spontaneous things such as travelling to Milan on our first day even after being jetlagged and for giving it our all during the CTFs as well. I also would like to thank the SOC Takes on the World (STOW) award for sponsoring our accommodation and flight for the trip and the NUS Greyhats team for sending me on this trip.