🎅 Christmas Hacking

🎄 Operacja: North Pole Security

Od setek lat Święty Mikołaj zarządzał swoim przedsiębiorstwem w sposób… tradycyjny. Listy na papierze, elfy przy taśmach produkcyjnych, renifery w arkuszach Excela. W końcu jednak nadszedł XXI wiek - Mikołaj rozpoczął pełną informatyzację swojej infrastruktury IT.

Serwery w chmurze, kontenery Dockera, panele administracyjne, systemy logistyczne do zarządzania prezentami, reniferami i elfami DevOps. Brzmiało pięknie… aż do momentu, gdy mroczne elfy-hakerzy zwietrzyły okazję. 🧝‍♂️💀

❄️ Atak na biegun północny

Niepoprawnie skonfigurowane usługi, zostawione hasła, otwarte porty, nieuważne elfy IT - infrastruktura Mikołaja wielokrotnie padała ofiarą ataków.

Twoim zadaniem jest: odnaleźć luki bezpieczeństwa, zrozumieć, jak doszło do włamania i udowodnić swoją wiedzę, zdobywając świąteczne flagi.

🎁 Flagi

Każda odkryta luka nagradzana jest flagą w postaci specjalnego znacznika, np.:

{{FLG:CHRISTMAS}}

Ważne: jeżeli uda Ci się odkryć lukę, a możliwe jest usunięcie flagi lub zmiana systemu - nie rób tego. Twoim celem jest odkrywanie, nie niszczenie infrastruktury Mikołaja.

🧠 Wskazówki od Elfa Naczelnego

Gdzieś w serwerowni czuwa Elf Naczelny. Masz prawo do jednej wskazówki na całą przygodę.

Wybierz mądrze moment, w którym o nią poprosisz - nie warto przepalić jej na zadanie, które da się rozwiązać chwilą analizy lub spokojnym rekonesansem.

🛷 Zasady świątecznej misji

🎅 Święty Mikołaj liczy na Ciebie. Jeśli zawiedziesz… renifery przechodzą na manualne sterowanie. ❄️💻

Powodzenia, Agencie Północy. 🎄🚀

🧦 Zadanie 1: Znikające uczynki - napad na bazę Elfów

🏁 Flagi: 1 ⏱️ Poziom: Easy
🎁 Motyw: glitch 🔒 Kategoria: Security / NoSQL

Historia:
Elfy wykupiły dostęp do tajemniczego strumienia danych na żywo - czegoś w rodzaju „ChildrenFeed”, który raportował dobre i złe uczynki dzieci z całego świata. Problem w tym, że dostawca feedu nie dał żadnej dokumentacji: brak schematów, brak opisów modeli, tylko surowe zdarzenia w JSON lecące jak lawina.

Jeden z elfów wpadł na pomysł: „Niech wszystko wpada do jednej bazy NoSQL, a potem to rozkminimy”. Elfy zbierały dane z wielu urządzeń, więc port bazy musiał być dostępny z sieci. Co ważne: silnik bazy działał na serwerze z Windows (to nie przypadek).

Pewnego dnia elf-analityk wchodzi do panelu… i widzi pustkę. Dane wyparowały. Zamiast kolekcji pełnych uczynków jest jedna nowa kolekcja, a w niej tylko wiadomość: „Jeżeli chcesz odzyskać swoje dane, wyślij 0,5 BTC…”. Wszystko wskazuje na to, że mroczne elfy znalazły drogę do środka.

Twoja misja: pomóż elfom zdiagnozować, gdzie został popełniony błąd i jak w ogóle mogło dojść do takiego „zniknięcia danych”. Udowodnij diagnozę, odnajdując flagę ukrytą w infrastrukturze zadania.

Co trzeba ustalić:

  • jakie ustawienie bezpieczeństwa najpewniej umożliwiło dostęp osobie z zewnątrz,
  • dlaczego środowisko Windows jest tu istotną wskazówką,

Adres serwera z bazą danych: nosql.edu.codli.com.pl

🧪 Zadanie 2: Świąteczny uniwersytet dla elfów - skradzione kolokwia

🏁 Flagi: 1 ⏱️ Poziom: Medium
🎁 Motyw: flakes 🔒 Kategoria: Web / Linux

Historia:
Część elfów postanowiła podnieść swoje kompetencje na świątecznym uniwersytecie dla elfów. W ramach zajęć otrzymały dostęp do uczelnianego serwera Reindeer - mogły łączyć się przez SSH i SFTP, wrzucać pliki i realizować zadania na poszczególnych przedmiotach.

Serwer był też wykorzystywany przez wykładowców do publikowania materiałów dla studentów, na przykład w formie prostych stron użytkowników:
https://reindeer.edu.codli.com.pl/~bartoszm/

Problem polegał na tym, że część wykładowców była… zbyt ufna. Trzymali pliki z kolokwiami na tym samym serwerze, licząc na to, że „skoro nie widać ich na stronie, to na pewno są bezpieczne”. Elfy aż klasnęły z radości.

I stało się: pewnego dnia elfy zdobyły dostęp do materiałów na kolokwium, wykrały je i na teście uzyskały wyniki tak wysokie, że wykładowca aż upuścił kubek z kakao. Rozpoczęło się śledztwo: jakim cudem materiały, które nie były publiczne, wyciekły?

Twoja misja: odtwórz sposób myślenia elfa i ustal, jak dało się dobrać do cudzych plików na wspólnym serwerze.

Co trzeba ustalić:

  • dlaczego serwer do zadań (SSH/SFTP) i publikacji materiałów (WWW) to ryzykowne połączenie,
  • w jaki sposób da się wydostać poza „swoją” przestrzeń i dotrzeć do cudzych plików.
Dostępy:
  • Adres serwera Reindeer: reindeer.edu.codli.com.pl
  • Port SSH i SFTP: 2222
  • Login i hasło: Takie samo jak do zadania z czatem i z bazą LINQ

Do serwera podłączysz się komendą: ssh -p 2222 [login]@reindeer.edu.codli.com.pl

🦌 Zadanie 3: Elves Panel - hasła, które „zniknęły”

🏁 Flagi: 1 ⏱️ Poziom: Easy
🎁 Motyw: candy 🔒 Kategoria: Web

Historia:
Elfy stworzyły aplikację do zarządzania reniferami Świętego Mikołaja. Panel administracyjny działa pod adresem:
https://elves-panel.edu.codli.com.pl

Aplikacja powstała w PHP, więc zespół uznał, że nie potrzebuje żadnych „kosmicznych” procesów CI/CD. Zamiast tego wystarczyło, że jeden z elfów logował się na serwer i po prostu ściągał najnowsze zmiany. Szybko, prosto, świątecznie… i trochę niebezpiecznie.

Niestety, elfy nie zawsze były ostrożne. Przez pewien czas niektóre hasła były zapisane bezpośrednio w kodzie aplikacji. Gdy kierownik zespołu to zauważył, natychmiast nakazał: „Wynosić hasła z kodu! Natychmiast!”. Zrobiono porządki, hasła „zniknęły” i wszyscy odetchnęli.
Do czasu...

Po kilku tygodniach wyszło na jaw, że ktoś włamał się do bazy danych elfów. A skoro hasła zostały rzekomo usunięte z kodu… to pytanie brzmi: jak atakujący mógł je poznać?

Twoja misja: ustal, jak doszło do wycieku i znajdź flagę będącą dowodem kompromitacji. Pamiętaj - czasem najgroźniejsze sekrety nie siedzą w „aktualnej wersji” aplikacji… tylko w tym, co aplikacja pamięta o swojej przeszłości.

Co trzeba ustalić:

  • jakie praktyki wdrożeniowe/utrzymaniowe mogły zostawić „ślad” na serwerze,
  • skąd atakujący mógł pozyskać dawne sekrety mimo „porządków” w kodzie,

🎓 Zadanie 4: Sesja zdalna u Elfa Grubiańskiego

🏁 Flagi: 1 ⏱️ Poziom: Medium
🎁 Motyw: glitch 🔒 Kategoria: Web / Security

Historia:
Na świątecznym uniwersytecie dla elfów zbliżała się sesja, lecz pech chciał, że zbiegła się ona z epidemią Północnego Pomoru Reniferów (PPR). Władze uczelni nie miały wyboru - zarządzono sesję zdalną.

Elfy z niższego roku zapisały stronę WWW z testem ze swojego przedmiotu i - w duchu koleżeńskiej solidarności - udostępniły ją kolegom z innych roczników, którzy mieli egzaminy u tego samego prowadzącego: Elfa Grubiańskiego.

Elf Grubiański, świadomy „kreatywności” elfich studentów, wdrożył zabezpieczenia. Najpierw kazał podpisać oświadczenie o nieściąganiu (co, jak wiadomo, skutecznie odstrasza hakerów). Następnie ustalił, że maksymalna możliwa ocena z testu to 3 - bo „i tak wszyscy będą ściągać”.

Stało się jednak coś niepokojącego. Elfy zdające przedmiot „Bezpieczeństwo Świątecznych Systemów IT” napisały test zaskakująco dobrze - mimo że nie znały wcześniej pytań. Wyniki były różne, niezbyt wysokie, idealnie w okolicach progu zdawalności… i co najbardziej podejrzane - wszyscy zdali.

Elf Grubiański nie potrafił znaleźć przyczyny, ale też nie miał podstaw, by unieważnić egzamin. Coś tu ewidentnie nie grało.

Twoja misja: podejdź do testu tak, jak zrobiły to „najsprytniejsze” elfy. Napisz egzamin na 100% i zdobądź flagę, udowadniając, że problemem nie byli studenci… tylko zabezpieczenia egzaminu.

Link do testu:
https://security-exam.edu.codli.com.pl/

Co trzeba ustalić:

  • dlaczego ograniczenia oceny i oświadczenia nie są realnym zabezpieczeniem,
  • jak możliwe było zdanie testu bez wcześniejszej znajomości pytań.

🧦 Zadanie 1: Tytuł do uzupełnienia

🏁 Flagi: 1 ⏱️ Poziom: Easy
🎁 Motyw: aurora 🔒 Kategoria: Web

Historia: Tutaj wklejasz swój pełny opis. Może być długi, wieloetapowy, z dialogami i “questami”.
Wskazówka: możesz użyć formatowania HTML: <b>, <ul>, <code> itd.

🍪 Zadanie 2: Tytuł do uzupełnienia

🏁 Flagi: 2 ⏱️ Poziom: Medium
🎁 Motyw: flakes 🔒 Kategoria: Git / DevOps

Historia: W noc wigilijną elf DevOps omyłkowo zostawił publiczny katalog… a renifery zaczęły “deployować” w złe miejsce. Twoim zadaniem jest… (tu Twoja fabuła).
Miejsce na instrukcję, komendy, checklistę i ostrzeżenia dla uczniów.

🧊 Zadanie 3: Tytuł do uzupełnienia

🏁 Flagi: 3 ⏱️ Poziom: Hard
🎁 Motyw: candy 🔒 Kategoria: Security

Historia: Święty Mikołaj dostał ticket: “sklep działa, ale coś śmierdzi”. W panelu admina pojawia się dziwna wiadomość… (tu Twoja świąteczna historia + instrukcje).
Tu możesz wkleić też {{FLG:...}} w odpowiednim miejscu (np. jako element gry).