Google CTF beginners quest 2019

W tym roku zostałem zaskoczony informacją o odbywającym się Google CTF na urlopie. Link o tym, że się odbywa wpadł z Hacker News. Zdziwiłem się, że minął już rok od ostatniej edycji. Planowałem poklikać podobne rzeczy, więc choć miałem nieco inne plany to stwierdziłem, że mogą poczekać, bo w zeszłym roku zabawa przednia była.

Google CTF 2019 screenshot

W tym roku formuła Google CTF dla początkujących była nieco inna. Wiele ścieżek, różne przejścia między węzłami (czyli więcej, niż jedna flaga w zadaniu), różne zakończenia w zależności od poziomu trudności. Nieco mieszane uczucia mam w stosunku do tego podejścia, zwł. szkoda, że nie widać wszystkich przejść między zadaniami.

Ponieważ urlop, to było sporo innych, ciekawszych zajęć, więc dość szybko się zniechęciłem. W zasadzie od razu po dotarciu do najłatwiejszego końca. Zadania wydawały mi się trudniejsze, niż w zeszłym roku. Albo inaczej – wymagające użycia dedykowanych narzędzi. W zeszłym roku chyba było bardziej ogólnie, przynajmniej jeśli chodzi o narzędzia, w tym bez gdb i pwntools wydaje mi się, że nie było szansy, nawet na najprostszym poziomie.

Nadal można próbować sił, do czego zachęcam. I w sumie sam pewnie siądę do reszty zadań w chwili wolnej, o ile jeszcze Google CTF będzie aktywny…

Pierwszy mac

Drugi raz wpis o podobnym tytule. Poprzedni był primaaprilisowym żartem, ten jest jak najbardziej na serio. Przesiadka z Linuksa nie do końca z własnej woli. Ot, korporacyjne standardy, czyli jedzie walec i równa, ale mniejsza o powody. Ludzie z Linuksami na pokładzie otrzymali propozycję nie do odrzucenia zmiany systemu i/lub sprzętu na coś należycie korporacyjnego. Znaczy Windows lub macOS, co kto lubi. Oddając sprawiedliwość – firma poszła na rękę i zapewniła okres przejściowy i możliwość szybkiego pomacania nowego sprzętu. Przynajmniej w teorii, bo to grubsza zmiana, dostosowanie komputera trochę trwa, a na nadmiar czasu nikt nie narzeka.

Tak czy inaczej – stało się. Wybrałem macOS na laptopie 13″ (co to dokładnie – uzupełnię wkrótce, nie mam go chwilowo pod ręką) z amerykańską klawiaturą (szeroki Enter). Powodów kilka – większość ludzi z którymi mam styczność w firmie korzysta, od Linuksa do Uniksa niby niedaleko (choć już wcześniej wiedziałem, że niektóre specyficzne dla macOS problemy są z commandline’owymi narzędziami są bohatersko rozwiązywane), no i last but not least będzie okazja poznać coś nowego. Wcześniej upewniłem się tylko, że ludzie, którzy się przesiadają jakoś żyją (mapowanie klawiszy, konfiguracja przewijania, soft) i że mysz (zwykły bezprzewodowy Logitech) działa normalnie, bo fanem gładzików nie jestem, delikatnie rzecz ujmując, a brak przycisków myszy zwyczajnie mnie drażni. Tak, wiem, gładzik w macach jest lepszy. Przelotnie korzystałem i nadal nie jestem fanem, lubię pewność sterowania i kliknięć, jaką daje mysz.

Wybrałem słabszą wersję 13″ – niestety 15″, choć ma mocniejsze komponenty, jest dla mnie odrobinę za duży. Już jakiś czas temu stwierdziłem, że optymalny dla mnie rozmiar ekranu w lapku to 14″, jeśli mam korzystać mobilnie. Nie do końca rozumiem, czemu robią właśnie 13″ – porównywałem z Dellem 14″ i mac jest jedynie minimalnie mniejszy.

Trochę żałowałem wyboru jeszcze nim odebrałem sprzęt, bo wkrótce po nim okazało się, że Windows jeszcze mocniej integruje się z Linuksem (WSL2). Nie chciałem ryzykować WSL, z którego wcześniej nie korzystałem, tym bardziej, że znajomi generalnie są z maców zadowoleni. Znaczy z macOS, bo na wbudowane klawiatury klną wszyscy, posiłkując się dołączanymi bezprzewodowymi.

Na wstępie dostałem… przejściówkę z USB-C na USB-A, żebym mógł podłączyć czy to dysk, czy pendrive czy – w moim przypadku – mysz. Pierwsze wrażenie – mieszane. Sprzęt wygląda na bardzo delikatny, ale w dotyku jest solidny i… zaskakująco ciężki. Zdjęć z unboxingu nie mam, zresztą chyba nie podszedłem do niego z należytym szacunkiem. W stosunku do Della, którego miałem wcześniej – po obrysie jak pisałem podobny, różnicę widać gdy się je położy obok siebie, zamknie i spojrzy od frontu. Mac jest znacznie cieńszy, niemal o połowę, choć Dell również z tych cieńszych, z ruchomym elementem dla gniazda ethernet. Trochę sztuka dla sztuki jak dla mnie – pewnie utrudnia to upchanie gratów w środku, chłodzenie, odbija się na solidności itp., a korzyść dla mnie żadna.

Jak widać założyłem kategorię, więc planuję trochę wpisów w temacie, pewnie z czasem pojawi się trochę howto dla przesiadających się. Są pierwsze pozytywy z godzinnego obcowania i podstawowej konfiguracji – o dziwo mimo braku przemapowania klawiszy nie zauważyłem trudności z klawiaturą. Poza brakiem klawiszy funkcyjnych, PgUp/PgDn, backspace i fizycznego Esc, oczywiście. I dopóki nie zacząłem próbować pisać z pl-znakami. Aplikacje umiem instalować, choć o instalacji będzie następnym razem.

Taki nieco zaległy wpis, w zasadzie powinienem już pisać o instalacji, ale ponieważ to mój pierwszy mac…

Taskwarrior

Istnieją różne sposoby doprowadzania do realizacji celów/zadań i narzędzia wspomagające to zadanie. Jednym z takich narzędzi jest Taskwarrior. Nie fetyszyzuję realizacji zadań[1], nie przepadam za poradnikami i metodykami, chyba w życiu nie przeczytałem poradnika w formie książki. Bardziej jestem zwolennikiem zapoznania się jak ktoś coś robi i wyciągnięcia własnych wniosków, ew. przyjęcia fragmentów rozwiązań. Czyli luźna inspiracja.

Zdarzają się jednak sytuacje, kiedy na realizacji czegoś zależy mi trochę bardziej. Rzeczy ważne, ale nie pilne, albo zwyczajnie takie, które wylatują z głowy. Albo takie, które chciałbym zrealizować, jeśli akurat będę miał czas. Niezależnie od typu zadań i motywacji (prywatnie czy zawodowo), zawsze wysoko na liście narzędzi wspomagających była u mnie lista. Zwykła lista na kartce papieru, gdzie zadania są wykreślane/odptaszkowywane[2]. Bez większej filozofii, czy lista ma być numerowana, czy zadania sortowane wg priorytetu, a papier czysty czy w kratkę. Po prostu lista, idealnie jeśli mieści się na pojedynczej kartce – od razu widać co jest do zrobienia.

Taskwarrior - lista zadań
Taskwarrior lista zadań w wersji z priorytetami i datami; theme dark-16. Źródło: https://taskwarrior.org/docs/themes.html

Okazało się, że istnieje narzędzie open source Taskwarrior, które dobrze wpisuje się w takie podejście w wersji komputerowej. Działa także w konsoli. Opcji tak naprawdę jest znacznie więcej, jeśli ktoś potrzebuje, ale w najprostszej wersji jest to właśnie elektroniczny odpowiednik wykreślanej listy, równie prosty w użyciu. Taskwarrior nie jest związany z żadną konkretną metodyką realizacji projektów i… jeśli ktoś chce, to pozwala na trochę więcej, niż zwykła lista.

Z taskwarriora zacząłem korzystać ponad rok temu, używam go głównie do rzeczy nie posiadających własnej listy TODO[3], które łatwo zrealizować, jeśli się o nich akurat pamięta i ma chwilę czasu, a zapisanie zajmuje znacząco mniej czasu, niż realizacja. Ostatni warunek to mały prztyczek w nos dla różnych metod, które mają narzut porównywalny z zadaniami, których realizację „wspomagają”. Do narzutu zaliczam zapoznanie się z metodą i jej naukę. 😉

Z taskwarriora można korzystać w wersji standalone[4], można jednak mieć wspólne dane za pośrednictwem taskserver AKA taskd. Również jest open source, daje niezależność od zewnętrznych dostawców, więc chroni naszą prywatność – żadna duża firma nie ma wglądu, czym się zajmujemy i nie będzie nas profilować. Możemy uruchomić go na dowolnym serwerze w sieci, albo nawet z domu. Konfiguracja serwera jest nieco długa/skomplikowana, ale także tu pomaga dobra dokumentacja projektu. Istnieje appka dla Androida, ogłoszona w 2016.

Użycie taskwarriora w najprostszej postaci można sprowadzić do kilku oczywistych poleceń:

  • task add – dodanie zadania
  • task done – oznaczenie jako wykonane
  • task list – wyświetlenie listy zadań
  • task delete – usunięcie zadania z listy (bez realizacji)

Więcej ciekawych poleceń, zwł. dotyczących zestawień wykonanych zadań można obejrzeć na stronie projektu w dziale motywów kolorystycznych. Ładny dodatek, ale bez wpływu na podstawową funkcjonalność.

Jeśli ktoś nie zna, a lubi wspomagać się listą zadań, to polecam wypróbowanie tego oprogramowania. Bardzo niska bariera wejścia, open source. Jeśli ktoś potrzebuje więcej możliwości typu kolejność zadań, grupowanie w projekty, tagowanie, uwzględnienie dat czy zestawienia, to również są takie opcje.

[1] Wiadomo, że są zadania, które trzeba zrealizować, na dodatek w określonym terminie np. odnowienie ubezpieczenia samochodu. Część z nich jednak jest dyskusyjna, np. przetestowanie Cloudflare na blogu. Fajnie byłoby to zrobić, ale nie jest to niezbędne. Ogólnie wiele rzeczy nie jest niezbędne, czasem zwyczajnie warto odpuścić i poczytać książkę w tym czasie.
[2] Tak, dla ortodoksów to już pewnie dwa sposoby, tym bardziej, że wersję odptaszkowywaną stosuję w wersji z trzema wariantami: zrobione (v), częściowo/w trakcie (~) i nie wykonane/porzuć (-).
[3] Np. notatki dla bloga mają swoje TODO w postaci szkiców, więc na listę taskwarriora raczej nie trafią, chyba że jakieś wyjątkowo ważne, powiązane z zadaniem lub do zrobienia w określonym terminie.
[4] I właśnie z wersji standalone w konsoli korzystam. Konsolę mam zawsze pod ręką, jeśli jestem przy komputerze.