Moja historia – część 1 – hakowanie / matura

Udostępnij

Tym wpisem rozpoczynam serię, którą nazwałem #mojaHistoria. Będę w niej opisywał właśnie swoją historię – jak to się stało, że robię to co robię i jestem tu gdzie jestem. Tym razem wyjątkowo rozpoczynam wpis pisząc wstęp – więc sam jestem ciekawy co przyniosą palce w kolejnych akapitach ]:->


Inne części:

  1. Moja historia – część 1 – hakowanie / matura

  2. Moja historia – część 2 – “życie studenckie” i programowanie

Pierwszy “poważny” kontakt z IT w gimnazjum

Cudzysłów na słowie poważny nie jest przypadkowy. Kontakt z IT mam na myśli coś co ma jakikolwiek zalążek lub coś wspólnego z tym czym zajmują się profesjonaliści. Nie wliczam w to granie w gry, które zaczęło dużo wcześniej. Muszę też przyznać, że nigdy nie byłem jakimś zagorzałym fanem gier – zdarzało mi się “przejść” jakąś grę, ale raczej do nałogu grania lub pasji do gier było mi daleko. Wracając do głównego wątku, nielimitowany dostęp do internetu miałem dość późno – około 2004 roku. Zanim jeszcze ja miałem internet – miał go jeden znajomy, który miał starszego brata. Byli w jednej sieci wraz z sąsiadami (kable były prowadzone przez okna, na zewnątrz bloku przytrzymywane przez parapety 😀 ). Na tamtą chwilę straszy brat kolegi był dla mnie bezapelacyjnym królem obsługi komputera. Mój kolega (młodszy brat “mistrza”) opowiadał mi co wyczynia jego brat – potrafił rozsyłać trojany po sieci LAN, podglądać pulpity zainfekowanych, wyłączać im monitory, wysuwać CD-ROM, wysyłać komunikaty na pulpit. To brzmiało dla mnie jak S-F, nie wierzyłem w te opowieści, myślałem, że takie rzeczy są możliwe tylko w filmach. Pewnego dnia zostałem zaproszony do domu kolegi i jego starszy brat pokazał mi “demo” swoich umiejętności. Było to dla mnie coś niesamowitego, pamiętam, że bardzo chciałem dysponować podobnymi umiejętnościami. Problem polegał na tym, że było to przed 2004 i nie miałem internetu (hehe). Czas mijał, w końcu zostałem podłączony do internetu, po pierwszym zachwycie, instalacji GG przypomniałem sobie o całej historii z hakowaniem po sieci LAN. Pamiętam, że przyjrzałem się bliżej wirusowi, który nazywał się Prosiak lub Prosiaczek. Nie rozumiałem wtedy jak działają wirusy/trojany – ale bardzo mnie to ciekawiło. Zdobyłem wtedy dużo wiedzy “ogólnej” dotyczącej komputerów. Próbowałem otwierać pliki *.exe w notatniku i coś wyczytać z kodu – zauważałem części wspólne pomiędzy plikami. Jednak nie miałem wystarczająco dużo wiedzy by mi to coś mówiło – podobnych eksperymentów i prób miałem bardzo dużo.

W gimnazjum miałem dobrego nauczyciela informatyki, koleś miał pasję. Przeplatał nam pewne elementy programowania i algorytmiki – bardzo lubiłem te tematy. Pamiętam, że projektowaliśmy algorytmy w takim programie jak Eli 2.0. Wyglądało to tak jak na poniższym ekranie.

Eli 2.0
Eli 2.0

Wydaje mi się, że to dokładnie ta sama wersja – jednak nie jestem pewien. Oprócz tego mieliśmy trochę ćwiczeń – którym patrząc z perspektywy czasu blisko do układania wyrażeń regularnych. Lubiłem to i czułem się w tym dobrze.


Hej ho, hej ho do technikum informatycznego by się szło

Po gimnazjum poszedłem do technikum informatycznego (dalej TI). Właściwie to nie pamiętam dlaczego – chyba dlatego, że rodzice mi doradzili i “lubiłem komputery”. W TI miałem pierwszy kontakt z językiem programowania Pascal. Pamiętam pierwsze zajęcia z programowania, w którym prowadząca rozpoczęła polecenie słowami: “Napisz program, który….”. Było to dla mnie przerażające – mimo, że ten program prawdopodobnie miał dodać do siebie dwie cyfry. Byłem zdziwiony, że za pomocą kilku linijek kodu można stworzyć aplikację konsolową. Na początku z programowania byłem przeciętny – nie wyróżniałem się ani w jedną, ani drugą stronę. Uczyłem się, zaliczałem i szedłem dalej.


Wakacje z Pascalem

Wiem jak to brzmi (hehe). Po pierwszym roku TI, zacząłem się coraz bardziej wkręcać w programowanie. Doszło do tego, że programowałem w wolnym czasie w wakacje. Pamiętam, że chciałem stworzyć organizer w aplikacji konsolowej w Pascalu. Na początku było logowanie, dalej jakaś książka z kontaktami z bazą danych w pliku txt. Finalnie nie udało mi się ukończyć tego projektu, zapał był, ale brakowało kompetencji. To były na pewno czasy, w których nie potrafiłem “biegle czytać” tekstów w języku angielskim, a po polsku, nie było zbyt wiele informacji. Nie pamiętam dlaczego nie używałem translatorów 🙂

Mniej lub więcej w tym samym czasie mój znajomy z klasy nauczył się HTML i stworzył stronę o skuterach dla biznesu, swojego taty. Było to dla mnie tak niesamowite – chciałoby się rzec “wąski, jak ty mnie zaimponowałeś w tej chwili”. Jestem taką osobą, która jak zobaczy coś nowego to chce to poznać – więc sam zacząłem uczyć się HTML. Wyglądało to tak, że ściągałem darmowe szablony HTML i przerabiałem je. Na początek zmieniałem tylko tekst, później całą strukturę. To były czasy, kiedy szablony HTML opierały się o tabelki, a nie o div i css. Ja robiłem style w atrybucie “style=”. Piękne czasy 🙂 Wtedy dowiedziałem się o sobie ważnej rzeczy – nie mam zmysłu designerskiego. Strony, które tworzyłem były brzydkie, nie potrafiłem ładnie dobrać kolorów, wielkości itp. Mimo to mi te strony się bardzo podobały 🙂

Tworzyłem setki (to nie jest przesadzone) – robiłem projekt za projektem. Strona dla chomików, strona dla skuterów, strona dla sklepu – wymyślałem to wszystko, a wykonany projekt usuwałem. Mam dla ciebie ciekawą wiadomość – jedną z tych stronek wrzuciłem w internet i jest do dzisiejszego dnia (sam jestem zaskoczony). Strona jest o zjawiskach paranormalnych – http://zjawiskap.prv.pl/. Niesamowite, że nikt jej nie zdjął po tylu latach. Jak sam widzisz – nie kłamałem pisząc, że nie miałem zmysłu designerskiego. Byłem na etapie, w którym “znałem” HTML – potrafiłem użyć prostych gotowych skryptów PHP, ale kompletnie nie rozumiałem ich.

Kilkaset projektów później, stworzyłem stronę o “hakowaniu”. Niestety nie ma jej online – to był projekt, nad którym pracowałem dość długo (kilka miesięcy go utrzymywałem i żył). Cała pasja do “bezpieczeństwa” wróciła – często wspominałem historię z bratem kolegi, którą opisałem wyżej.


Mój pierwszy startup

Była to chyba druga klasa TI. To były czasy, kiedy bardzo popularne były wyjazdy do pracy za granicę. Jeden ze kolegów z klasy wpadł na pomysł, żeby stworzyć stronę dla Polaków za granicą. Zostałem zaproszony do tego projektu, było w nim jeszcze kilka osób z klasy. Podział obowiązków był, koncepcja była – portal miał umożliwić komunikację za granicą, pomóc szukać pierwszej pracy. Przypominam, że to były czasy kiedy jeszcze nie było n-k.pl ani Facebooka, mieliśmy po 16-17 lat więc pomysł był całkiem sensowny jak na tamte czasy. Jedną przeszkodą był brak kompetencji w stworzeniu strony – pamiętam wtedy, że ja wraz z kolegą (tym od stron ze skuterami) byliśmy odpowiedzialni za warstwę techniczną. Wtedy właśnie dowiedzieliśmy się, że jest coś takiego jak baza danych MySQL, że można tam trzymać informacje – dla nas breaking news. Nie potrafiliśmy jednak użyć tego w żaden sposób, plan spalił na panewce, a szkoda 🙂 BTW, mieliśmy nawet nazwę dla startupu – mypolacy.eu 🙂


Pierwszy blog

Kolejne kilkaset projektów później. Mniej lub więcej trzecia klasa TI. Dla mnie przełomowy moment – zacząłem mieć pierwszy kontakt z PHP. Wiedziałem już, że jeśli coś ma się na stronie liczyć to musi się to wykonać po stronie serwera. Wiedziałem czym jest baza danych i znałem podstawy składni PHP. Bardzo chciałem zgłębić tą wiedzę, żeby móc zrobić np na stronie stronnicowanie (wcześniej robiłem odnośniki w HTML do konkretnej strony, na każdej podstronie inne (hehe)). Moim pierwszym skryptem w PHP był prosty switch, który na podstawie parametru GET podawał odpowiednie pliku w środek strony. Dzięki temu mogłem mieć adresy URL np ?page=about, ?page=news etc. Nie było to dla mnie łatwe, ale finalnie się udało.


IRC

Był to czas, w którym regularnie zacząłem siedzieć na IRC. Głównie na Quakenet, dużo czasu spędzałem na kanale #listekKlonu i #interkuza – god damn, fajne czasy. Na tych kanałach siedziało wiele osób, które miały nieporównywalnie większą wiedzę o programowaniu ode mnie. Wspólnym mianownikiem było to, że mnie jak i “ich” interesowało bezpieczeństwo. Mi zajawka z gimnazjum nadal nie przeszła. Bardzo dużo nauczyłem się od ludzi z IRC – zarówno z programowania, ale chyba głównie z tematu bezpieczeństwa stron WWW. Bardzo dużo czasu spędzałem na stronach typu “hackme” – z zadaniami, w których chodzi o przełamanie zabezpieczeń strony. Wtedy zacząłem też rozwiązywać pierwsze zadania kryptograficzne. Moje umiejętności w PHP również rosły – byłem w stanie pisać pierwsze skrypty “czytające captche”. Byłem członkiem kilku mniejszych i większych teamów związanych z bezpieczeństwem WWW.


C/C++

Na trzecim roku TI doszedł nam nowy język programowania – C/C++. W porównaniu z Pascalem było to dla mnie dużo milsze doświadczenie. Jednak moim językiem przewodnim nadal był PHP (którego niestety nie mogłem rozwijać na żadnym przedmiocie). C++ też mi się spodobał, moim większym projektem był “cracker haseł MD5”. Polegało to na tym, że miałem bazę najpopularniejszych haseł (baaaaardzo duża baza). Podając konkretny hash md5 – program tworzył hash z najpopularniejszych haseł i porównywał z tym, którego szukamy. Jeśli go znalazł to miałem “rozkodowane hasło”. Po pewnym czasie dowiedziałem się czym są ataki brute force. Wtedy też zaczęły mnie dotykać problemy związane z wydajnością – próbowałem to optymalizować, ale projekt finalnie upadł.


Pierwsze ataki WWW

O tym ataku pewnie dowiedziałem się, od któregoś z użytkowników IRC. Wtedy dowiedziałem się czym jest UNION SELECT – wykonywałem dużo hackme, w których trzeba było wykorzystać właśnie SQL Injection. Siłą rzeczy, nauczyłem się też trochę o zapytaniach SQL. Później nauczyłem się innych ataków i zacząłem interesować się dokładniej działaniem serwerów WWW i protokołem HTTP. Na swoim blogu napisałem wtedy artykuł o bezpieczeństwie konfiguracji PHP. Do dziś wisi – możecie go przeczytać – (nie) bezpieczeństwo konfiguracji PHP. Była to końcówka trzeciej klasy TI. Właśnie wtedy przeszedł mi przez myśl pomysł, żeby zajmować się tym zawodowo. To był pierwszy przebłysk tego, że to jest już coś więcej niż “zabijanie wolnego czasu”. Myślę, że w tym momencie stworzyła się moja pasja do IT. Moją mocną stroną było rozumienie działania różnych protokołów, serwerów na niższych warstwach. Wtedy było jeszcze za wcześnie by nazywać się programistą. Znałem jedynie z programowania tyle, by rozumieć ataki na strony WWW.


Narodziny pasji

Narodziny pasji – brzmi dumnie. Myślę, że to było mniej więcej na początku ostatniej (czwartej) klasy technikum informatycznego. To co robiłem po godzinach dla nauczycieli technikum było abstrakcją – nie był za bardzo w stanie kto mi podpowiedzieć rzeczy, których nie wiedziałem. Mimo, że miałem kilku naprawdę dobrych specjalistów jako nauczycieli – jednak nie interesowali się bezpieczeństwem. Koledzy z klasy też nie robili tyle “po godzinach” co ja – nie miałem za bardzo z kim wymieniać się wiedzą / doświadczeniami – więc dużo czasu spędzałem na IRC, ucząc się od lepszych ode mnie.


Matura

Na początku tego akapitu chcę powiedzieć, że nie byłem pilnym uczniem. Było mi daleko do czołówki pod względem średniej. Nie byłem też totalnie na końcu – byłem “przeciętniakiem”. Byłem bardzo dobry z przedmiotów informatycznych, natomiast kulały prawie wszystkie pozostałe. Prawie każdego semestru poprawiałem się z matematyki z 1+ na 2-. Miałem zagrożenia z geografii, nienawidziłem historii. Kompletnie mnie nie ciekawiło gdzie w Polsce jest największe wydobycie węgla brunatnego. Przez pierwsze lekcje omawiania lektury “Zbrodnia i kara” – myślałem, że to jest “Zbrodnia Ikara”. Masakra – wiem. Nie potrafiłem się uczyć czegoś, co uważałem za nieciekawe. Nie umiałem też wpasować się w klucz odpowiedzi – chciałem naprawdę zrozumieć zagadnienie, zamiast wpasować się w klucz dający punkty. Patrząc na moją średnią źle na tym wychodziłem. Zaczął się zbliżać czas matury – więc zaczęło robić się nieciekawie. Zastanawiałem się jak ja zdam maturę? Byłem pierwszym rocznikiem, który miał obowiązkową matematykę – moje 2= na semestr nie napawały mnie optymizmem. Już wtedy wiedziałem, że chce pracować w IT – chciałem pójść na studia informatyczne, ale bałem się, że historia, WOS i geografia mi mogą to uniemożliwić. Pomyślałem więc, że czas wziąć sprawy w swoje ręce.


Harmonogram nauki

To była pierwsza rzecz, do której podszedłem śmiertelnie poważnie. Zdecydowałem już z czego będę zdawał maturę – jednym z dodatkowych przedmiotów była informatyka (tego akurat się nie obawiałem). Bardziej bałem się obowiązkowych przedmiotów – język polski, matematyka. Miałem bardzo duże braki w lekturach i podstawowych działaniach matematycznych. Był gdzieś luty (matury są w maju). Opracowałem harmonogram nauki – uczyłem się prawie każdego dnia, przerabiając zakres, który będzie obowiązywał na maturze. Przeplatałem naukę – jeden dzień przedmiot ścisły, drugi humanistyczny. Byłem bardzo skrupulatny w dotrzymywaniu harmonogramu – wiedziałem, że jeśli pominę chociaż jeden dzień, nie zdążę z resztą. Musiałem nadrobić 4 lata w 3 miesiące. Nawet udało mi się odnaleźć ten harmonogram sporządzony w Excelu :). Przerobiłem w 3 miesiące cały podręcznik z matematyki, nadrobiłem całe gimnazjum, technikum – wyrobiłem się ze swoim planem. Kosztowało mnie to naprawdę dużo, pisząc maturę nie byłem pewien czy mój plan się uda…

…udał się, matematykę zdałem na 80% (tego najbardziej się obawiałem), informatyka poszła mi bardzo dobrze – byłem w czołówce województwa. Dowiedziałem się wtedy bardzo dużo o sobie. Wiedziałem, że jak chcę to potrafię oraz uwierzyłem w wielką siłę planowania.

Inne części:

  1. Moja historia – część 1 – hakowanie / matura

  2. Moja historia – część 2 – “życie studenckie” i programowanie


Jeśli wpis ci się spodobał, udostępnij go lub śledź mnie na facebooku, twitterze, LinkedIn lub subskrybuj mój kanał na YouTube – twoja interakcja motywuje do dalszego pisania! Jeśli interesują cię podobne treści, dopisz się do newslettera (na górze strony) :).


Udostępnij

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *