Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

CTF 12.2017 sekcji projektowanie i tworzenie - black box.

And! 06 Gru 2017 02:02 1365 29
  • #1 06 Gru 2017 02:02
    And!
    Admin grupy Projektowanie

    CTF 12.2017 sekcji projektowanie i tworzenie - black box.
    Z poprzednim CTF 11.2017 uporaliście się bardzo szybko, przed Wami CTF 12.2017 - black box przygotowany wspólnie z moderatorami sekcji projektowanie i tworzenie. CTF dla odmiany utrzymany jest w kategorii hackme/crackme/crypto. Tematyka bardziej specjalistyczna związana z mikrokontrolerami, oraz CTF moim zdaniem trudniejszy ale pewnie szybko wyprowadzicie mnie z błędu :) Czas zabawy do 06.01.2018 i jeżeli nie pojawi się odpowiedź to umieszczę rozwiązanie. Możliwe że będą pojawiać się jakieś podpowiedzi gdy będzie to potrzebne. Jeżeli będziecie potrzebowali konkretnych podpowiedzi napiszcie o tym w temacie.

    Tym razem mam do rozdania 1000pkt, ukryta jest jedna flaga i pierwsza osoba która umieści w temacie post z prawidłową flagą otrzyma 1000pkt, oraz niespodzianka od gulson związana z tematyką CTF czyli moduł ESP8266 lub Arduino UNO lub mikroprocesorowy tester elementów elektronicznych do wyboru. Zabawa może być też szansą na zdobycie wspomnianego testera z gadżetów elektrody: https://www.elektroda.pl/rtvforum/shop.php dla osoby nie mającej odpowiedniej ilości punktów.

    Ponieważ nagroda jest jedna i będzie jeden wygrany liczy się szybkość i warto umieścić post w temacie z odkrytą flagą jak najszybciej,
    liczy się data umieszczenia postu, edytowane posty będą traktowane jako umieszczone z datą ostatniej edycji.

    Zależy mi aby osoba która umieści flagę, później na spokojnie w kolejnym poście opisała jak udało się dotrzeć do ukrytej flagi,
    jakie były trudności, co było ciekawe co można ulepszyć. W materiale poza opisem można umieścić zrzuty ekranu lub nawet film/screan cast.

    Jeżeli macie ogólne spostrzeżenia, uwagi dot. zabawy CTF zapraszam do dyskusji, napiszcie jakie macie doświadczenia i pomysły z różnymi CTF.

    Tym razem flaga jest ciągiem znaków w formacie: CTF_FLAG_{tutajTrescFlagi}_ czyli przykładowa flaga mogłaby wyglądać tak:
    CTF_FLAG_{elektroda.pl}_

    W wielu zabawach CTF można wprowadzić flagę do formularza online i sprawdzić czy jest prawidłowa,
    w naszym CTF gdy znajdziecie flagę należy napisać post w tym temacie z treścią flagi oraz w kolejnym poście na spokojnie opisać jak flaga została zdobyta,
    odpowiem i potwierdzę czy zgłoszona flaga jest prawidłowa czy też nie.

    Zgłaszając flagę koniecznie zachowajcie wielkość liter.
    Gdy będziecie umieszczać post z flagą warto dodać @And! w treści postu, dostanę wtedy powiadomienie abym nie przegapił zgłoszenia i odpowiem czy flaga jest prawidłowa.

    Zapraszam do zabawy, poniżej plik w którym schowała się flaga, czy uda Ci się ją odnaleźć?

    1 29
  • #3 07 Gru 2017 11:10
    atom1477
    Poziom 43  

    No niestety muszę Ci powiedzieć że za daleko nie jesteś :D
    Przecież to jest po prostu wprost napisane w pliku.

    Ja wczoraj w ciągu kilku godzin robiłem różne sztuczki z tym kodem i doszedłem do etapu trzeciego. Ale niestety program się wtedy zatrzymuje.
    No ale szedłem nietypową ścieżką i pojawiły się problemy etyczne :D
    No bo nigdy nie brałem udziału w takim konkursie i nie znam zasad.
    Ale zgodnie z nazwą hackme/crackme zastosowałem hakowanie i crackowanie programu.
    A później doszedłem do wniosku że to może za prosta metoda. I poszukałem w internecie innych tego typu konkursów. I tu zaskoczenie: konkursy hackme/crackme zabraniają hakowania czy crackowania (patchowania) kodu.
    Więc proponuję żeby And! sprecyzował jakie tutaj panują zasady.
    1. Czy celem jest odkrycie flagi, dowolnymi metodami (omijając hasła po drodze).
    2. Czy też celem jest to co jest celem w klasycznych chyba konkursach hackme/crackme, czyli uzyskanie wszystkich haseł bez stosowania sztuczek. A odkrycie flagi na koniec ma być tylko potwierdzeniem że uzyskane hasła są poprawne. Ale ta flaga nie jest celem samym w sobie.

    2
  • #4 07 Gru 2017 18:07
    oloam
    Poziom 18  

    @robert9531 to co podales, to raczej jest wskazowka, tak samo jak pierwsze haslo (dioda) raczej sluzy temu, zeby potwierdzic, ze program dziala.
    @atom1477 celem jest podanie flagi ,nie wazne jakim sposobem - mozesz nawet zgadywac :P.

    atom1477 napisał:
    I tu zaskoczenie: konkursy hackme/crackme zabraniają hakowania czy crackowania (patchowania) kodu.

    Troche dziwne, sama nazwa mowi crackme. I jak na pierwszych prostych programach wystarczylo sledzic kod i wiadomo co bylo zabezpieczeniem , tak w miare lepszych zabezpieczen wrecz musi byc ingerencja w kod , np patchery to byly programiki , ktore zmieniaja kod asm ale i trzeba bylo wstrzykiwac wlasny kod w crackowany program (np. loadery)

    0
  • #5 07 Gru 2017 18:21
    atom1477
    Poziom 43  

    Opieram się na kilku konkursach znalezionych na pierwszej stronie google:

    Cytat:
    Nie zgaduj hasel, zerkaj do kodu! Badz uczciwy i nie zmieniaj kodu

    Czy zgadywanie też odpada co Cię pewnie zdziwi :D

    Cytat:
    W tej grze jest wielka zmiana: wszystkie chwyty dozwolone!
    [masz ochote to oszukuj - o ile dasz rade... hehehe...]

    Uwaga:
    Nie przechodz gry metoda bruteforce, nie zgaduj hasel, zerkaj do kodu i rusz glowa!

    Tylko nie bardzo rozumiem jak "wszystkie chwyty dozwolone" można połączyć z tymi zakazami z uwag :D

    Inna sprawa że takie reguły może wynikają ze stopnia trudności kodu.
    Nigdy nie bawiłem się w takie coś więc nie wiem jaki jest stopień trudności kodu z tego tematu.
    Dlatego myślę że tylko And! może nam powiedzieć jakie zasady powinny panować w tym przypadku.

    0
  • #7 07 Gru 2017 18:29
    atom1477
    Poziom 43  

    No to nikt nie wygra jak będziecie tu podawali cząstkowe hasła.

    0
  • #8 07 Gru 2017 18:29
    And!
    Admin grupy Projektowanie

    Chodzi tu o dobrą zabawę, szansę nauczenia się czegoś nowego, sposób zdobycia flagi nie ma dla mnie znaczenia. Dodatkowo gdy ktoś znajdzie flagę to tak jak w poprzednim CTF podejrzewam będzie na 99% pewiem że moja odpowiedź będzie potwierdzająca.

    CTF został przygotowany tak aby dało się go rozwiązać, czyli np. są ukryte pewne podpowiedzi, wykorzystane są pewne standardy, aby uzyskać rozwiązanie nie trzeba mieć dostępu do superkomputera lub godzinami coś obliczać itp. Bardziej chodzi o analizę, główkowanie oraz wykorzystanie odpowiednich metod.

    Czy ktoś uruchomił już kod na 'prawdziwym' hardware?

    Jak będą potrzebne podpowiedzi to piszcie śmiało.

    0
  • #10 07 Gru 2017 18:45
    atom1477
    Poziom 43  

    Ja uruchomiłem na hardware bo nie miałem żadnego symulatora kodu AVR.
    Może to trochę na wyrost ale nie wiedziałem jaki będzie stopień trudności a spodziewałem się że raczej wysoki. Więc uznałem że na hardware było prościej.

    0
  • #11 07 Gru 2017 19:00
    And!
    Admin grupy Projektowanie

    Myślę że zarówno wykorzystanie hardware jak i emulacja / analiza kodu ma swoje wady i zalety. Dobre pytanie czy jest jakiś darmowy emulator avr który przyspieszyłby analizę?

    Komu w poprzednim CTF udało się zobaczyć obraz 3D?
    Dla mnie nauczenie się tej sztuki było trudne.

    0
  • #12 07 Gru 2017 19:10
    atom1477
    Poziom 43  

    Ale oczywiście też analizowałem kod. Hardware był tylko dodatkiem.
    Emulatora nie znam. Mam za to pytanie czy ktoś zna jakiś dekompilator do AVR?
    Bo jestem ciekaw jak koledzy z postów powyżej określili te 2 hasła.

    0
  • #13 07 Gru 2017 20:30
    sobieh
    Poziom 2  

    Stage1: dioda
    Stage2: toroid (md5)
    Stage3: 011235813 (sha1)

    Flaga: CTF_FLAG_{TOjestTO}_

    1
  • #15 08 Gru 2017 19:23
    And!
    Admin grupy Projektowanie

    @sobieh brawo! flaga prawidłowa, 1000pkt dla Ciebie!
    Masz dobrze wpisaną specjalizację w profilu ;)
    Opisz proszę w jaki sposób dotarłeś do flagi, jakich narzędzi i w jaki sposób użyłeś. Można użyć opisu tekstowego + np. zrzuty ekranu czy nawet film/screan cast. Czy użyłeś mikrokontrolera ATMEGA8 czy wyłącznie oprogramowanie?

    Jaki gadżet wybierasz: moduł ESP8266 czy Arduino UNO czy mikroprocesorowy tester elementów elektronicznych?
    Skontaktuj się z gulson celem odebrania wybranego gadżetu.

    Spodziewałem się że CTF dość szybko zostanie pokonany mimo że trudność została zwiększona :) mam nadzieję że znajdziecie tutaj coś nowego ciekawego dla siebie, chociażby obsługę narzędzi takich jak john, hashcat czy ogólną wiedzę o funkcjach skrótu.

    Jak Wam się podobał ten CTF? Dla mnie ciekawe było to że tak to ujmę dane potrzebne do wyświetlenia flagi nie występowały w kodzie, dopiero wpisanie odpowiednich haseł w kolejnych etapach dawało 20 bajtowy ciąg który po XOR z 20 bajtowym ciągiem zaszytym w kodzie dawał wynik w postaci flagi. Do póki nie pojawiły się te dane, 20 bajtowy ciąg danych (ze względu na operację XOR na każdym bajcie z osobna) mógł być dosłownie czymkolwiek.

    Mam zaplanowany jeszcze trzecie ostatnie wydanie tego testowego cyklu, tym razem CTF będzie bardziej ogólny i planuję jego wypuszczenie na 06.01.2018r. Zobaczymy może znów uda się przydzielić do zabawy jakieś gadżety rzeczowe.

    0
  • #16 09 Gru 2017 23:38
    sobieh
    Poziom 2  

    Hej @And!

    Do uruchomienia użyłem prawdziwej żywej atmegi8 podpiętej do "portu szeregowego" po USB z FTDI (chiński klon chyba arduino nano).
    Chciałem być fair i nie zaglądać do środka jako że to miał być BlackBox ;)

    Co do mojej specjalizacji :D
    Wszystkie 3 etapy dało się przejść bez jakiejś szczególnej wiedzy na temat elektroniki, assemblera i budowy AVR'ów. Wystarczyło podpiąć kabel USB do płytki z atmegą i komputera, uruchomić terminal i trochę pomyśleć (co za chwilę udowodnię). Nie darował bym sobie nie zaglądać do kodu więc do analizy używałem IDAPro, objdump, objcopy i kilku narzędzi własnej produkcji ... ale robiłem to tylko z ciekawości co jest w środku (nadal w tym grzebię) i nie było to potrzebne do rozwiązania zadania.

    Stage 1 dało się rozwiązać po prostu zgadując hasło nawet wpisując kolejne znaki z klawiatury lub używając prostego ataku bruteforce. Program wypisywał który znak jest niepoprawny co bardzo ułatwiało zadanie. Ja postawiłem na prosty bruteforce wysyłający kolejne znaki przez UART jeśli program wypisywał że dany znak nie jest poprawny "wrong first character", "wrong second character" ...
    Złamanie hasła zajęło około 20 sekund (prawdopodobnie przez opóźnienia w komunikacji).
    Pierwsze hasło to "dioda".

    Stage 2 Pierwsze co mi nie pasowało to krzaki na konsoli ale szybko doszedłem że zmienił się BaudRate (pomysłowe). Ten etap podobnie jak pierwszy wypisywał że podane hasło nie jest poprawne ALE tym razem tylko że nie jest powiązane z ciągiem "FE4EA353987E3D843DE13FABB0DF4460". Zboczenie zawodowe kazało mi pomyśleć ... 16 bajtów ... 128 bitów ... czy to jakiś HASH ? Zwykle mówiąc HASH wielu osobom przyjdzie na myśl (lub przeczyta na wiki) że bardzo popularne skróty(hashe) to CRC32, MD5, SHA1, SHA256 itd. Program wypisał jeszcze jedną podpowiedź w postaci daty "April 1992" co jest datą publikacji MD5 (wiki) ... mamy więc datę, 128 bitów jako HEX i hasło do odgadnięcia. Załóżmy zatem że ten wypisany ciąg znaków to ciąg skrótu MD5. Z pomocą przychodzą tutaj RainbowTables dla MD5:
    https://md5.gromweb.com/?md5=FE4EA353987E3D843DE13FABB0DF4460
    Jak się okazało jedną z kolizji skrótu było słowo "toroid" i program je zaakceptował ... yey!

    Stage 3 był (zbyt) bardzo podobny do 2 ponieważ zmienił się tylko algorytm skrótu z MD5 na SHA1 (oraz BaudRate) i znów pomocna data "April 1995" czyli publikacja SHA1. Hash SHA1 "699E3962763A029DA1719EF1210872694D4EFB8E" też udało się znaleźć za pomocą magicznych tablic:
    https://sha1.gromweb.com/?hash=699E3962763A029DA1719EF1210872694D4EFB8E
    Kodem PIN okazał sie ciąg "011235813".

    Jak się okazało później przy oglądaniu kodu programu dobrym rozwiązaniem było użycie haseł jako klucza do zdekodowania flagi leżącej w pamięci programu co uniemożliwiło odczytanie jej z kodu bez przejścia wszystkich etapów CTFa. Nie do końca dobrym pomysłem było jednak tak wiele dość oczywistych podpowiedzi które kierowały bezpośrednio do danych zagadnień jak MD5 czy SHA1. Jeśli ostatni etap wypisywał by tylko że "kod PIN nie jest poprawny" nie podając żadnego ciągu (hasha) to zmusił byś mnie do analizy kodu i sprawdzenia w jaki sposób to hasło / pin jest sprawdzane ;) Zakładam też że hashe były łatwe do znalezienia celowo aby zbytnio nie utrudniać zabawy.

    Ciekawi mnie jeszcze czy te Timery w kodzie są użyte w jakimś celu czy tylko dla zmyły :]
    Obecnie nadal się bawię z analizą i pewnie napiszę jeszcze 1 czy 2 posty na ten temat.

    Liczę na kolejne CTFy i oby więcej takich akcji na elektrodzie ;)
    Nagrody fajna sprawa ale brałem udział głównie dla zabawy, a dowiedziałem się o akcji z facebooka.

    Pozdrawiam.

    1
  • #17 09 Gru 2017 23:57
    And!
    Admin grupy Projektowanie

    Bardzo fajna analiza,
    timery sterowały m.in stanami na portach oraz wypełnieniem PWM,
    z jednej strony to zmyłka, z drugiej strony stan LED zależny był od etapu oraz tego czy wprowadzane są dane taki trochę dodatkowy gadżet.

    Hasze celowo zostały tak dobrane aby dało się je znaleźć lub szybko złamać atakiem BF,
    założeniem było też danie szansy osobom które skupią się tylko na analizie zaprogramowanego mikroprocesora (dlatego hasze były widoczne).
    Podczas tworzenia CTF zawsze jest ten problem z ustaleniem granicy aby nie było zbyt proste ale też zbyt trudne i zniechęcające.

    CTF na styczeń jest już w przygotowaniu, tym razem będzie bardziej ogólny i mam nadzieję ciekawy.

    Głównym założeniem tej trzy częściowej serii było udostępnienie możliwości rywalizacji, zabawy, oraz szansy na nauczenie się czegoś.

    Ja np. nauczyłem się widzieć obrazy 3D w autostereogramach z CTF11.2017 :)

    @sobieh który gadżet wybrałeś? prośba o kontakt z gulson celem wysyłki.

    0
  • #19 10 Gru 2017 00:06
    And!
    Admin grupy Projektowanie

    Czyli przez przypadek powstało "zabezpieczenie" przed emulowaniem :)

    Może nie ostatni zupełnie, ale tyle jest przygotowanych tematów a nie chcę aby się powtarzały,
    ta seria 3 CTF to także próba aby sprawdzić czy jest to dla Was interesujące, zebranie sugestii, pomysłów,
    a co będzie dalej to się zobaczy...

    P.S. przygotowanie zajmuje więcej czasu niż rozwiązanie ;)

    0
  • #20 10 Gru 2017 10:47
    atom1477
    Poziom 43  

    sobieh: jeszcze wyjaśnij skąd wyciągnąłeś flagę.

    0
  • #21 10 Gru 2017 14:51
    And!
    Admin grupy Projektowanie

    Właściwie to film albo screencast pewnie najszybciej wyjaśniłby wszystkie kwestie.

    Zapisałem aby kolejne etapy CTF01.2018, opierały się o różną "mechanikę" tak jak w CTF 11.2017 każda z flag była schowana w inny sposób, np. w CTF12.2017 etap drugi i trzeci opierał się o odwrócenie funkcji skrótu (wprawdzie różnych funkcji dla różnego rodzaju haseł ale mechanizm pozostał podobny).

    Jeżeli w przyszłości miałoby pojawić się coś opierającego się o mikrokontroler to jaki model proponujecie?
    Do CTF12.2017 wybrany został AVR Atmega8 gdyż jest bardzo popularny, a nawet użytkownicy Arduino mogli wykorzystać starszą płytkę Uno.

    0
  • #22 10 Gru 2017 18:33
    sobieh
    Poziom 2  

    @atom1477
    Ten program wypisuje flagę przez usart na sam koniec po podaniu pinu.
    Nie trzeba jej wyciągać.

    @And!
    Może coś z rodziny stm32 ? też są dość popularne (np. płytka bluepill za 30zł).
    Jednak to już 32bit ARM i można trochę bardziej poszaleć.

    Co do screencastu to nie wiem czy jest sens bo to nie jest jakiś rocket science.
    Wystarczy wgrać 1 plik np. na arduino, podłączyć kabel USB i wpisać 3 słowa w terminal (nawet w ten z IDE arduino).
    Na YT jest pełno tutoriali jak to robić ;)

    0
  • #23 12 Gru 2017 18:44
    And!
    Admin grupy Projektowanie

    Jeszcze zapytam o jedną rzecz,
    AVR ATMEGA8 uznałem (być może nie słusznie) za coś bardzo popularnego, taniego i z niskim punktem wejścia (programator+środowisko),
    jakie odpowiedniki takie "ATMEGA8" można wskazać w grupie PIC (teraz już ten sam producent), STM itp. ?

    0
  • #24 12 Gru 2017 18:56
    atom1477
    Poziom 43  

    Teraz za każdym razem jak się użyje ATMegi8 w jakimś opublikowanym na elektrodzie projekcie to się słyszy że to jest starocie.
    Więc chyba nie jest już taka popularna.
    Myślę że odpowiednikiem ATMegi8 z STMów był by STM32F103.

    0
  • #25 12 Gru 2017 19:05
    And!
    Admin grupy Projektowanie

    Tak, można uznać że ATMega8 to staroć, Arduino przedłuża nieco popularność ATMEGA328, natomiast kolejne wersje płytek Arduino to już często ARM Cortex w różnych wydaniach. STM32F103 to ciekawa propozycja Cortex-M3 sporo RAM i flash, timery, ADC, i inne peryferia i interfejsy I2C, SPI, I2S, USB.

    0
  • #26 12 Gru 2017 19:24
    atom1477
    Poziom 43  

    STM32F103 to cała rodzina. Nie każdy z niej chyba ma USB.
    W każdym razie STM32F103 to też już staroć :D

    0
  • #28 13 Gru 2017 19:37
    And!
    Admin grupy Projektowanie

    8051 występował w wersji 33Mhz (bodajże Dallas albo Maxim), a także jako ipcory https://www.dcd.pl/ipcore/197/dq8051/

    No dobrze a jak myślicie jaki "hex" będzie miał szansę na największą liczbę "wgrań" w ramach CTF:
    -8051
    -Z80
    -STM32F103
    -MICROCHIP AVR ATMEGA
    -MICROCHIP PIC ?xxx
    -ESP8266
    -ESP32
    a może jeszcze coś innego?

    Myślałem też o CTF sieciowym gdzie mamy określony IP / port ale nie mam na to na razie zasobów.

    0
  • #30 13 Gru 2017 21:20
    And!
    Admin grupy Projektowanie

    Binarka to coś typowego dla CTF, miałem plan aby elektrodowe CTF dość mocno wiązały się z tematyką działu elektroniką i wnosiły coś nowego.
    Tworzy się 3 CTF myślę że może być dość trudny ale mam nadzieję że ciekawy i co ważne zastosowane mechanizmy są inne niż w edycji 1 i 2.

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo