OS fingerprinting polega na określeniu zdalnego systemu operacyjnego po analizie odpowiedzi na wysłane (przechwycone) pakiety TCP/IP. Możliwe jest to poprzez różnice w implementacji stosu TCP/IP w różnych systemach operacyjnych.
Czymś mogą się różnić wychodzące pakiety TCP/IP
- początkowym TTLem
- wielkością okna
- bitem DF (Don’t Fragment)
- polem MSS (Maksimum segment size)
- opcją SackOK (selective acknowledgement)
- opcją NOP (No Operation)
- polem ID w nagłówku IP
Typy fingerprintingu:
- aktywny
- pasywny
- pasywny w warstwie aplikacji (np. pine wysyła nawet informacje o tym czy lokalny system używa Shadow Password).
Narzędzia:
- p0f (autor: Michał Zalewski),
- Siphon
- nmap (z opcją -O)
W Internecie:
- http://www.crimelabs.net/docs/passive.html