Pages

9 lip 2019

Tajemnicze zadanie rekrutacyjne na stronie CBA #3 - ROZWIĄZANE


W dniu 09.07.2019 r., na stronie Biuletynu Informacji Publicznej Centralnego Biura Antykorupcyjnego pojawiło się kolejne tajemnicze zadanie (zadania) rekrutacyjne do Biura Teleinformatyki CBA.
 
Prawidłowe rozwiązanie zadania umożliwia wzięcie udziału w procesie rekrutacji na stanowisko teleinformatyka do tej jednej z pięciu polskich służb specjalnych.

Aby spróbować swoich sił w rozwiązaniu tego zadania należy wejść na stronę BIP CBA (LINK) a następnie pobrać pliki MasterDarlingzip.001, MasterDarlingzip.002, MasterDarlingzip.003, screen:
W archiwum umieszczono plik Master_Darling.jpg, który został zabezpieczony hasłem.



Według informacji z CBA, poprzednie zadanie rekrutacyjne zostało rozwiązane przez 3 osoby.

20 komentarzy:

  1. @mk86
    Podaj wskazówkę do rozszyfrowania hasła do drugiego zadania.

    Odczytałem informację z pierwszego zdjęcia oraz podpowiedzi do zadania drugiego ale nadal nie wiem/nie widzę co mogłoby być uznane za hasło/kolejną podpowiedź.

    Dostrzegam analogię do jednego z zadań z poprzedniej edycji ale raczej nie tędy droga. Trzeba do tego podejść w podobny sposób jak do Montana Highway czy zupełnie inaczej ?

    OdpowiedzUsuń
  2. To że Base64 to wiem ...
    Zatrzymałem się na postaci z google maps ...

    Próbowałem różnych kombinacji (małe|wielkie litery, cyfry, itp.) i dalej bez skutku. Dlatego zapytałem czy to podobne podejście jak w przypadku MT 77.

    Podaj wskazówkę co z tym "naczelnikiem" zrobić...

    OdpowiedzUsuń
  3. Przepisać (uwzględniając wielkie litery) :) (doszły mnie słuchy, że na starych wersjach 7zipa/zipa/rara nie pasuje)

    OdpowiedzUsuń
  4. Faktycznie trzeba było uaktualnić soft i poszło...

    Odnośnie zadania nr 3:
    1. Jak interpretować wskazówkę odnośnie klucza ? Ma być ze spacjami/myślnikami czy same liczby i wszystko zapisane łącznie ?
    2. Trzeba kod źródłowy uczynić możliwym do skompilowania i uruchomienia (uzupełnić o treść oznaczoną jako hidden ) ?

    OdpowiedzUsuń
  5. Ad.1. No właśnie w pliku tym jest (może celowo) niejasność. Klucz należy interpretowac tak: uuuussssxuuuussssxuuuussssx..., gdzie: uuuu-r.urodzenia, ssss-r.smierci, x - znak specjalny (w tym przypadku będzie to znak, którego binarna reprezentacja wynosi 00001010).
    Ad.2.Trzeba "odwrócić" algorytm i potraktować dane z pliku tablica_wynikowa.txt jako dane wejściowe, czyli jednym słowem - zdekodować.

    OdpowiedzUsuń
  6. Na tym etapie zadanie robi się dla mnie zbyt zagmatwane.

    1. W jaki sposób wpadłeś na to, że klucz należy interpretować w taki a nie inny sposób (chodzi mi głównie o ten znak specjalny oraz o częstość jego występowania w kluczu) ? Można to wywnioskować z analizy kodu źródłowego i/lub analizy zawartości pliku tablica_wynikowa.txt ?

    2. Czy znakiem którego binarna reprezentacja wynosi 00001010 jest znak LF (Line Feed, 0x0A, \n), czyli koniec bieżącej linii ciągu i rozpoczęcie nowej linii ?

    3. Co rozumiesz pod pojęciem "odwrócenie" algorytmu ?

    4. Czy dane z pliku tablica_wynikowa.txt nie są jak sama nazwa sugeruje, danymi WYJŚCIOWYMI ? Piszesz z kolei, że należy je traktować jako dane WEJŚCIOWE. Jest to kolejna (celowa) niejasność czy błędne rozumowanie/interpretacja z mojej strony ?

    5. Czy dysponując poprawnie skonstruowanym kluczem oraz zawartością pliku tablica_wynikowa.txt, powinniśmy być w stanie zdekodować/rozwiązać zadanie ?

    OdpowiedzUsuń
  7. Ad.1. Na początku trochę błądziłem po omacku, ale zauważyłem, że ilość znaków w ciągu uuuussssx pomnożona przez 13 (wzkazówka z pliku) daje dokładnie 117 (tyle samo ile jest "oktetów" binarnych w pliku tablica_wynikowa.txt).
    Ad.2. Tak, jest to znak LF, ale nie jest potrzebna taka informacja (do rozkodowania potrzebujemy tylko reprezentacji binarnej; to, że to akurat ten znak doszedłem już po rozwiązaniu zadania; na początku zamiast tego znaku wstawiałem spację (00100000), ale niektóre litery się nie zgadzały więc wyszedłem od liter "prawidłowych" i mając dane wejściowe łatwo było już znaleźć jaki to znak)
    Ad.3. Algorytm robi "coś" z danymi wejściowymi. Otrzymany wynik to dane "wyjściowe". Sęk w tym, jak na podstawie danych wyjściowych znaleźć dane wejściowe.
    Ad.4. Dokładnie tak jest, nazwa pliku wskazuje na to, że są to dane wyjściowe, czyli przy "normalnym" zachowaniu algorytmu powstałe one w wyniku przetworzenia danych wejściowych. Jeśli natomiast "odwrócimy" działanie algorytmu, to aby otrzymać dane, nazwijmy to, "początkowe/właściwe", należy dane z pliku 'tablica_wynikowa' potraktować jako dane wejściowe dla algorytmu "odwróconego".
    Ad.5. Tak, mając klucz i zdekodowane za pomocą algorytmu "odwróconego" dane jesteśmy w stanie rozwiązać zadanie.

    OdpowiedzUsuń
  8. 1. Interpretacja zawartości pliku klucz.txt sugeruje raczej aby dokonać trzynastokrotnego powtórzenia ciągu [uuuussss] (8 znaków) lub ciągu [uuuu ssss] (9 znaków). Znak specjalny powinien znajdować się pomiędzy datami czy powinien pojawić się po wystąpieniu każdej pary uuuussss ?

    2. Czy poprawnie skonstruowany klucz prezentuje się następująco:
    a. uuuussss00001010uuuussss00001010uuuussss00001010 itd, aż do momentu gdy liczba powtórzeń będzie równa 13 ?
    b. uuuu00001010ssssuuuu00001010ssssuuuu00001010ssss itd, aż do momentu gdy liczba powtórzeń będzie równa 13 ?

    3. Mając podany kod źródłowy algorytmu szyfrującego, należy napisać kod implementujący algorytym "odwrócony" ? Jest podana funkcja Encode, na jej podstawie należy napisać funkcję Decode ?

    4. Wyjaśnienie zrozumiałe.

    5. Zawartość pliku tablica_wynikowa.txt dekodujemy za pomocą algortymu "odwróconego" i dopiero potem tak zdekodowane dane "łączymy" z kluczem aby otrzymać ostateczne rozwiązanie ?

    OdpowiedzUsuń
  9. Ad.1. Na początku też sugerowałem się "sztywno" określonym ustawieniem klucza ze wskazówki, czyli uuuu ssss (spacja pomiędzy), jednak poprawnym okazał się uuuussssx powtórzony 13 razy, gdzie x oznacza znak specjalny.
    Ad.2. a
    Ad.3. Dokładnie tak trzeba zrobić.
    Ad.5. Zgadza się.

    OdpowiedzUsuń
  10. Czy pierwszym krokiem jest odczytane informacji ze zdjęcia to jest Morskiego Oka ?

    OdpowiedzUsuń
  11. W jaki sposób "połączyć" zdekodowaną tablicę wynikową z kluczem ?

    OdpowiedzUsuń
  12. Dzień dobry wszystkim.
    Minął już ponad miesiąc od opublikowania trzeciej zagadki.

    @mk86
    1. Mógłbyś wrzucić (github/pastebin/gdziekolwiek) implementację wraz z krótkim opisem jak rozkodowałeś tą tablicę wynikową z danymi binarnymi oraz następnie połączyłeś ją z kluczem ?
    Mnie przez ostanie tygodnie już nic sensownego nie udało się wypracować w tym temacie... a chętnie zapoznałbym się z rozwiązaniem (pewnie nie tylko ja + ciekawe ile osób poza tobą rozwiązało ten temat).

    2. A teraz z zupełnie innej beczki...
    Jest taka książka: Ghost in the Wires (może miałeś okazję przeczytać ?). W każdym z jej rozdziałów jest szyfr/kod do złamania.
    Jeden z nich przedstawia się następująco: KGQMICEWDNFMASTCEFKXLKQSHGRFSSPOTXUESQVCOHXTTPCUVHNXAWYPUWZDT
    Skoro tak sprawnie rozwiązujesz questy CBA to może w wolnej chwili zerkniesz też i na to (zachęcam również inne osoby czytające ten post) ? Rozwiązania w internetach nie znalazłem a na podstawie lektury książki oraz innych szyfrów również nie byłem w stanie tego rozkodować.
    Dla mnie wygląda to na wariant Vigenere/Playfair/Bifid/RunningKey/Quagmire... ale to tylko hipoteza. W każdym razie przyda się czyjeś inne/świeże spojrzenie na ten ciąg znaków... tak przy okazji zadań od CBA.

    Pozdrawiam serdecznie.

    OdpowiedzUsuń
  13. Zachęcam do rozwiązania niewielkiego CTF na arkoz.pl

    OdpowiedzUsuń
  14. @Arkoz
    Czy wysłanie maila na xxx@arkoz.pl kończy zadanie ?

    OdpowiedzUsuń
  15. Nie :) Rozpoczyna.
    Wymagana możliwość odbioru e-maila zwrotnego (załącznik).
    Proszę o nie umieszczanie gotowych rozwiązań czy milowych podpowiedzi. Pozdrawiam. Arek.

    OdpowiedzUsuń
  16. Czy rozwiązanie 3ciego zadania to koniec?

    OdpowiedzUsuń
  17. Czy ktoś, kto ukończył zadanie 3 mógłby podzielić się jego rozwiązaniem/implementacją/write-up'em ?

    OdpowiedzUsuń
  18. https://bip.cba.gov.pl/bip/nabor-do-sluzby/profile-kandydatow/teleinformatycy/613,Zadanie-dla-kandydatow-do-Biura-Teleinformatyki-CBA.html

    OdpowiedzUsuń
  19. Rozwiązywał ktoś najnowsze zadanie?

    OdpowiedzUsuń