W branży bezpieczeństwa, pentest (test penetracyjny) to kontrolowany atak na system informatyczny.
Dlatego dalej będę pisał o testach penetracyjnych, pentesterach a nie o hakowaniu 🙂
Co możesz robić? (ścieżki, kierunki)
Pentester od (web)aplikacji
Śwetne dla programistów, którzy już mają dosyć 'brzydkiego’ kod.
Analiza Malware
Polega na analizie oprogramowania, by określić czy dany program jest faktycznie niebezpieczny, a jeśli tak to co robi.
Sieciowiec
Analiza infrastruktury, identyfikacja urządzeń/aplikacji w danej sieci, wykrywanie/wykorzystywanie błędów konfiguracji lub „zbyt wolnych” aktualizacji
Świetne dla np. byłych Devops’ów czy byłych pracowników dużego providera
Red Teaming
To symulacja realnego ataku na firmę.
Często można stosować nawet socjotechnikę, ponieważ ważniejsze jest osiągnięcie celu niż wykrycie podatności.
Jeśli znaz historę jednego z bardziej znanych hakerów: Kevin Mitnick’a to z pewnością zauważyłeś, że często najsłabszym (najbardziej podatnym) elementem zabezpieczeń są ludzie!
Koledzy czasem wchodzą do jakiegoś biura trzymajac duży karton.
Ochroniaż nieraz sam wpuszcza przez barierki bezpieczeństwa (bez karty).
Później wpinaja się do sieci wewnętrznej, zabierają laptopa i gdzieś na parkingu robią fotkę, że się udało wynieść laptopa i to odblokowanego 😀
Czasem skacze się przez płot (i oby nie wypadł ci laptop klienta :D)
Jak widzisz potrzebne są inne umiejetności.
Świetne dla osób które mają gadane.
Security Operations Center (SOC)
W większych firmach loguje się dane z całej infrastruktury w jednym miejscu.
Podejrzane działanie (trwający atak) może generować alerty, które trzeba obsłużyć zgodnie z procedurami 🙂
Threat Hunting
To rozszerzona wersja SOC, która bardziej skupia się na zapobieganiu.
Dla przykłady zaawansowane zagrożenia mogą starać się przemycić dane tak by nikt ich nie zauważł. Atakujacy może np. szyfrować dane i dodatkowo np. tunelować je przez DNS (dane są kodowane w zapytaniach i odpowiedziach DNS). Takie dane mogą wyglądać niemal jak zwykle. Jednak specjalista polujący na zagrożenia może zauważyć pewne anomalie (np. wielkość zapytań/odpowiedzi DNS, ilość ruchu z danej domeny/IP).
Informatyka śledcza
Jak nazwa wzkazuje polega na szukaniu śladów np. co się zdarzyło, do jakich danych ktoś mógł mieć dostęp, jakie odwiedzono strony, co zostału usunięte.
Czyli ogólnie żmudne badanie okruszków (metadane, pliki tymczasowe,…)
Zobacz koniecznie
Temat jak zacząć poruszyło wiele osób.
Zeknij np.
Artykuł/Blog/Kanał YT Kacpra Szurka
Zobacz stronę Kacpra:
Jak zostać pentesterem/jak zacząć naukę bezpieczeństwa?
Naprawdę dobrze to opisał!!!
Kacper na co dzień zajmuje się malwarem, jednak hobbistycznie jest pentesterem.
Kacper stronę (security.szurek.pl) i kanał na YouTube, gdzie tłumaczy w prosty sposób zagadnienia związane z bezpieczenstwem!
Artykuł Dawid Bałut
Jak zostać Pentesterem i Specjalistą Bezpieczeństwa
Jak zacząć? Co mówią specjaliści?
Dla kogo?
By być dobrym pentesterem musisz być:
- dociekliwy,
- głodny wiedzy (szbko i dużo się uczyć, umieć szukać),
- kreatywny,
- łączyć pewne fakty,
- być wytrwałym.
W skrócie, najlepiej gdy to cię kręci, fascnuje, jesteś pasjonatem.
Jak się uczyć?
Najważniejsza jest praktyka!
Na stażu z pewnością nauczysz się najszybciej (jeśli jakaś firma zdecyduje się w ciebie zinwestować).
Czytaj i testuj.
Gdzie szukać wiedzy jak „hakować”?
Książki
- Bezpieczny system w praktyce. Wyższa szkoła hackingu i testy penetracyjne
- Black Hat Python. Język Python dla hakerów i pentesterów
- Kryptografia i bezpieczeństwo sieci komputerowych. Matematyka szyfrów i techniki kryptologii
- Splątana sieć. Przewodnik po bezpieczeństwie nowoczesnych aplikacji WWW
- Podstawy kryptografii. Wydanie III
- Cisza w sieci
Książki malware
Malware Reverse Engineering Handbook (pdf)
Strony
- https://pentester.land/
- https://www.reddit.com/r/netsec/
- https://portswigger.net/
- https://github.com/Simpsonpt/AppSecEzine
- https://twitter.com/hashtag/BugBountytips
- https://ctftime.org/writeups
- https://hackerone.com/hacktivity
Kursy
- Cybrary
- Udemy
- Coursera
- FutureLearn
- SANS Cyber Aces
Najlepiej uczyć się programowania ćwicząc – rozwiązując różne problemy. Czasem, przygotowanie środowiska pracy, by napiać pierwszą linijkę 'kodu’, może trwać godziny / dni (gdy dopiero zaczynasz). Na początek dobrym pomysłem są języki skryptowe i wszelkie interaktywne kursy (CodecAdemy, CodeWars, CheckIO, CodeFights, …).
Gdzie trenować? (pentester web aplikacji)
Nigdy nie testuj/hakuj aplikacji bez zgody!
Wirtualne maszyny
Metasploitable3 is a free virtual machine that allows you to simulate attacks largely using Metasploit. It has been used by people in the security industry for a variety of reasons: such as training for network exploitation, exploit development, software testing, technical job interviews, sales demonstrations, or CTF junkies who are looking for kicks, etc 🙂
https://blog.rapid7.com/2016/11/15/test-your-might-with-the-shiny-new-metasploitable3/
Podatne aplikacje
- BWA (Kolekcja podatnych aplikacji, OWASP)
- Bricks (PHP/MySQL, Podatna aplikacja, OWASP)
- bWAPP (PHP/MySQL, Podatna aplikacja)
- DVWA (PHP/MySQL, Podatna aplikacja)
- Hackazon (PHP/MySQL, Podatna aplikacja)
- Mutillidae II (PHP/MySQL, Podatna aplikacja, OWASP)
- XVWA (PHP/MySQL, Podatna aplikacja)
- Hackademic (realistyczne aplikacje, OWASP)
- Juice Shop (Node.js, Podatna aplikacja, OWASP)
- NodeGoat (Node.js, Podatna aplikacja, OWASP)
- VulnHub (Wirtualki z podatnymi aplikacjami)
- Web Security Dojo (Środowisko szkoleniowe, maven security)
- WebGoat (Java, Podatna aplikacja, OWASP)
- WebGoat.NET (ASP.NET, Podatna aplikacja, OWASP)
Learn the hack – Stop the attack
https://owasp.org/www-project-webgoat/
WebGoat is a deliberately insecure application that allows interested developers just like you to test vulnerabilities commonly found in Java-based applications that use common and popular open source components.
https://www.hack-hub.com/vulnerable-machines
Wyzwania
- Hacking-Lab (Lab)
- HackTheBox (Lab)
- HackThisSite
- Holiday Hack (Coroczne wyzwanie hakerskie SANS, dostępne przez cały rok)
- IO Netgarage
- OverTheWire
- KoreLogic CMIYC (Konkurs: łamanie haseł, dostępne materiały ze wcześniejszych konkursów)
- picoCTF (zawody dla gimnazjalistów i licealistów, dostępne cały rok)
- Pwnable.kr
- Pwnable.tw (binarna gra wojenna)
- RunCode (kodowanie, bezpieczeństwo)
- TryHackMe (Wielofunkcyjna platforma szkoleniowa z zakresu cyberbezpieczeństwa z laboratoriami)
Strony o bezpieczeństwie (newsy)
Konkursy CTF (capture the flag)
Konkursy dla uczniów?
Obserwuj strony np. zaufanatrzeciastrona.pl (tag: ctf), sekurak.pl (tag: ctf) itp. Informacje w szkołach (od nauczycieli)
Dla przykładu w 2019 odbył się CTF: 153plus1.pl dla uczniowów publicznych i niepublicznych szkół ponadpodstawowych.
W 2020, planowany jest konkurs, finał 4-5 grudnia (tym razem na kraje V4: Polski, Czech, Słowacji i Węgier).
Jeszcze nie wiadomo pod jaką domeną.
rozwal.to (Polskie, Sekurak, teoria, filmy (np: podatności XXE), podpowiedzi i rozwiązania, dostęp w ramach szkoleń).
Uwaga, wiele CTFów organizowanych jest np. raz w roku.
Programy bug bounty
metody modelowania zagrożeń (threat modeling)
Nie wszystko jest „CRITICAL”
Praktyka i doświadczenie, checklisty
https://pentester.land/
https://www.reddit.com/r/netsec/
https://portswigger.net/
https://github.com/Simpsonpt/AppSecEzine
https://twitter.com/hashtag/BugBountytips
https://ctftime.org/writeups
https://hackerone.com/hacktivity
Baza podatności
Dla przykładu jestem fanem Pythona i Django.
Django ma bardzo dobre praktyki związane z bepieczeństwem. Jednak mimo dbania o bezpieczeństwo średnio co 2 miesiące ktoś znajduje problem bezpieczeństwa.
To znaczy, z pewnością istnieje wiele aplikacji w starszych podatnych wersjach.
Istnieją nawet specjalne wyszukiwarki urządzeń / aplikacji / usług.
Jedną z takich popularnch wyszukiwarek jest shodan.io.
Pamiętaj, nigdy nie próbuj 'hakować’ bez zgody właściciela!