Hakerzy włamują się do systemów z wielu powodów, najczęściej w celu uzyskania poufnych danych, osiągnięcia uznania w kręgu własnej społeczności lub zakłócenia pracy serwera w sieci technikami DoS (Denial of Service). Przy próbie penetracji systemu haker działa w sposób systematyczny, zazwyczaj metodą kolejnych kroków.
Na kroki te składają się:
Techniki ataku można sklasyfikować w trzech kategoriach:
Ataki sieciowe dotyczą infrastruktury komunikacyjnej, a ich celem mogą być urządzenia sieciowe, takie jak rutery i przełączniki, a także protokoły poziomu sieci na serwerze (warstwa 3). Celem ataku sieciowego jest zazwyczaj uzyskanie uprawnień pozwalających na manipulowanie ustawieniami konfiguracyjnymi, mającymi wpływ na trasowanie ruchu komunikacyjnego. Ataki w warstwie 3 lub niższej – często są to ataki typu DoS – dotyczą modułów oprogramowania sieciowego na serwerze. W tym przypadku celem jest załamanie serwera lub co najmniej znaczne spowolnienie jego pracy. Nową odmianą DoS jest technika Distributed DoS (DDoS), w której szereg agentów rozproszonych w sieci przypuszcza atak DoS na wybrany serwer. Moduły agentów rozsyłane są przez hakera do opanowanych przez niego komputerów – najczęściej w Internecie – i uaktywniane w odpowiednim czasie dla wykonania skoordynowanego ataku na wybrany cel.
Ataki na system operacyjny wykorzystują cały szereg błędów i luk w powszechnie stosowanych systemach operacyjnych. Najczęściej wykorzystywana jest koncepcja superużytkownika (root w systemach Unix czy administrator w systemach Microsoft Windows). Taki uprzywilejowany użytkownik przechodzi bez przeszkód przez wszystkie środki ochrony wbudowane w system operacyjny – może więc mieć dostęp do wszystkich plików (łącznie z systemowymi) i urządzeń, tworzyć nowych użytkowników i nadawać im uprawnienia. Większość technik uzyskiwania uprawnień superużytkownika wykorzystuje tzw. Efekt przepełnienia bufora. Technika ta pozwala hakerowi na wprowadzenie swojego kodu do innego programu pracującego na komputerze i wykonaniu go w kontekście uprawnień przewidzianych dla tego programu. Zazwyczaj taki podrzucony kod zakłada konto nowego, uprzywilejowanego użytkownika. Umożliwia to hakerowi legalne wejście do systemu przez zalogowanie się jako ten nowy użytkownik.
Ataki aplikacyjne. Wraz z rozwojem Internetu pojawiły się powszechnie stosowane aplikacje, takie jak serwery webowe, serwery poczty elektronicznej czy serwery DNS. Takie aplikacje są idealnym celem, ponieważ – z definicji – nastawione są na ciągłe oczekiwanie na komunikację wchodzącą z Internetu, a użytkownicy zewnętrzni mogą uzyskiwać do nich dostęp bez pośrednictwa zapór ogniowych.
Na pierwszy ogień idą przeważnie serwery webowe. Do ataku na serwer webowy wykorzystywane są odpowiednio przygotowane zlecenia HTTP, uznawane za legalne z punktu widzenia zapory ogniowej, ale przygotowane do wykorzystania słabych punktów serwera i uzyskania dostępu do poufnych informacji zgromadzonych w bazach danych lub wykonania własnego programu na zaatakowanym serwerze webowym.
Inne sposoby ataków związane są z programami CGI (Common Gateway Interface). Programy te są podstawowym środkiem do implementacji aplikacji webowych. Serwer webowy po otrzymaniu zlecenia CGI wywołuje odpowiedni program CGI, przekazując do niego otrzymane parametry. Błędy projektowe, popełniane często na etapie tworzenia takich programów, zwłaszcza w zakresie kontroli zakresu danych, stwarzają okazję do ataków.
Innym przypadkiem są serwery DNS, po opanowaniu których można łatwo manipulować bazą adresową Internetu, kierując poufne informacje pod podmienione adresy fizyczne.