Ponieważ luki w bezpieczeństwie systemów operacyjnych mocno zależą od wersji tych systemów, to dla intruza istotne jest uzyskanie informacji, jaki system operacyjny jest uruchomiony na badanym hoście.
Do najprostszych technik należy tzw. Banner grabbing, czyli po prostu zbieranie banerów, które większość usług, po połączeniu się z nim, wyświetla. Zawierają one często pełną informację o wersji zainstalowanego systemu i wersji demona obsługującego daną usługę. Najprostszym narzędziem służącym do tego celu jest zwykły telnet. Obecnie większość administratorów starannie usuwa tego typu banery lub zmienia je na fałszywe - stąd niska skuteczność tej metody.
Do bardziej skutecznych należy analiza stosu TCP/IP badanej maszyny. To jedna z wiarygodniejszych metod określania typu systemu operacyjnego - każda implementacja stosu TCP/IP jest inna, reagowanie systemu na pewne błędne stany jest różne, szczególnie w przypadku sytuacji nieokreślonych dokumentami RFC.
Analiza stosu może przebiegać w sposób aktywny i pasywny. Aktywny, gdy wysyłany jest jeden lub wiele specjalnie spreparowanych pakietów, po czym obserwuje się zachowanie systemu. Pasywny, gdy obserwuje się normalną aktywność systemu operacyjnego. Na kompleksową analizę składa się od kilku do kilkunastu charakterystycznych testów.
Spora część testów jest już znana jako technika skanowania portów - np. Testy FIN - pakiet z flagą FIN (lub dowolny bez flagi SYN czy ACK) jest wysyłany na otwarty port. Według RFC793 prawidłowe zachowanie to brak odpowiedzi. Jednak niektóre błędne implementacje reagują, odpowiadając pakietem RESET. Do tych implementacji należą: Windows, BSDI, Cisco, HP-UX, MVS i IRIX.
Nieco bardziej zaawansowaną techniką są testy z fałszywą flagą - Bogus Flag Probe test. Polega ona na wysłaniu pakietu TCP z ustawioną nieprawidłową, nieistniejącą flagą - najczęściej jest to wartość 64 lub 128 w nagłówku pakietu TCP w pakiecie SYN. Niektóre systemy po odebraniu pakietu SYN+BOGUS wysyłają RESET. Umożliwia to wstępne sklasyfikowanie grupy systemów.
ISN Sampling. Inną metodą na określenie systemu operacyjnego jest znalezienie pewnych zależności w generowaniu numerów sekwencyjnych, które są różne w zależności od implementacji.
Algorytmy generowania numerów sekwencyjnych można podzielić na cztery grupy:
Kolejna technika opiera się na obecności bitu „Nie fragmentuj” w odbieranym pakiecie. Niektóre systemy wysyłają pakiety z ustawionym bitem DF w celu zwiększenia wydajności i dobrania parametrów połączenia. Badając obecność tej flagi, można uzyskać pewne informacje na temat systemu operacyjnego.
Jedna z metod pasywnego rozpoznawania systemu opiera się na testowaniu inicjującego rozmiaru okna TCP. Ta prosta technika sprawdza wielkość inicjowanego rozmiaru okna w odebranym pakiecie, która dla wielu systemów operacyjnych jest inna.
Kolejna metoda określenia systemu operacyjnego jest oparta na testowaniu wartości pakietu ACK. Wiele systemów przejawia nietypowe zachowanie w tego typu sytuacjach - np. Po wysłaniu pakietu z flagami FIN, PSH i URG na zamknięty port TCP niektóre implementacje odsyłają ACK z identycznym numerem sekwencyjnym, a niektóre drukarki sieciowe odsyłają ACK ze zwiększonym numerem sekwencyjnym o jeden. Windows zachowuje się w tym przypadku w sposób nieprzewidywalny i czasami odsyła identyczny numer sekwencyjny, czasami zwiększa go o jeden, a niekiedy wysyła zupełnie losową wartość.
Natomiast technika Fragmentation handling wykorzystuje fakt, iż różne implementacje w różny sposób składają gęsto zdefragmentowane pakiety (chociaż jest to standard, to w dobie ataków DoS, opartych na fragmentacji, niektóre systemy mają ograniczenia co do wielkości fragmentów, czasu ich odbioru, liczby itp.).