pf.os revision 130151
1126756Smlaier# $FreeBSD: head/etc/pf.os 130151 2004-06-06 11:46:29Z schweikh $
2126756Smlaier# $OpenBSD: pf.os,v 1.10 2003/09/06 01:37:07 frantzen Exp $
3126756Smlaier# passive OS fingerprinting
4126756Smlaier# -------------------------
5126756Smlaier#
6126756Smlaier# SYN signatures. Those signatures work for SYN packets only (duh!).
7126756Smlaier#
8126756Smlaier# (C) Copyright 2000-2003 by Michal Zalewski <lcamtuf@coredump.cx>
9126756Smlaier# (C) Copyright 2003 by Mike Frantzen <frantzen@w4g.org>
10126756Smlaier#
11126756Smlaier#  Permission to use, copy, modify, and distribute this software for any
12126756Smlaier#  purpose with or without fee is hereby granted, provided that the above
13126756Smlaier#  copyright notice and this permission notice appear in all copies.
14126756Smlaier#
15126756Smlaier#  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
16126756Smlaier#  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
17126756Smlaier#  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
18126756Smlaier#  ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
19126756Smlaier#  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
20126756Smlaier#  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
21126756Smlaier#  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
22126756Smlaier#
23126756Smlaier#
24126756Smlaier# This fingerprint database is adapted from Michal Zalewski's p0f passive
25126756Smlaier# operating system package.
26126756Smlaier#
27126756Smlaier#
28126756Smlaier# Each line in this file specifies a single fingerprint. Please read the
29126756Smlaier# information below carefully before attempting to append any signatures
30126756Smlaier# reported as UNKNOWN to this file to avoid mistakes.
31126756Smlaier#
32126756Smlaier# We use the following set metrics for fingerprinting:
33126756Smlaier#
34126756Smlaier# - Window size (WSS) - a highly OS dependent setting used for TCP/IP
35126756Smlaier#   performance control (max. amount of data to be sent without ACK).
36126756Smlaier#   Some systems use a fixed value for initial packets. On other
37126756Smlaier#   systems, it is a multiple of MSS or MTU (MSS+40). In some rare
38126756Smlaier#   cases, the value is just arbitrary.
39126756Smlaier#
40126756Smlaier#   NEW SIGNATURE: if p0f reported a special value of 'Snn', the number
41126756Smlaier#   appears to be a multiple of MSS (MSS*nn); a special value of 'Tnn'
42126756Smlaier#   means it is a multiple of MTU ((MSS+40)*nn). Unless you notice the
43126756Smlaier#   value of nn is not fixed (unlikely), just copy the Snn or Tnn token
44126756Smlaier#   literally. If you know this device has a simple stack and a fixed
45126756Smlaier#   MTU, you can however multiply S value by MSS, or T value by MSS+40,
46126756Smlaier#   and put it instead of Snn or Tnn.
47126756Smlaier#
48126756Smlaier#   If WSS otherwise looks like a fixed value (for example a multiple
49126756Smlaier#   of two), or if you can confirm the value is fixed, please quote
50126756Smlaier#   it literally. If there's no apparent pattern in WSS chosen, you
51126756Smlaier#   should consider wildcarding this value.
52126756Smlaier#
53126756Smlaier# - Overall packet size - a function of all IP and TCP options and bugs.
54126756Smlaier#
55126756Smlaier#   NEW SIGNATURE: Copy this value literally.
56126756Smlaier#
57126756Smlaier# - Initial TTL - We check the actual TTL of a received packet. It can't
58126756Smlaier#   be higher than the initial TTL, and also shouldn't be dramatically
59126756Smlaier#   lower (maximum distance is defined as 40 hops).
60126756Smlaier#
61126756Smlaier#   NEW SIGNATURE: *Never* copy TTL from a p0f-reported signature literally.
62126756Smlaier#   You need to determine the initial TTL. The best way to do it is to
63126756Smlaier#   check the documentation for a remote system, or check its settings.
64126756Smlaier#   A fairly good method is to simply round the observed TTL up to
65126756Smlaier#   32, 64, 128, or 255, but it should be noted that some obscure devices
66126756Smlaier#   might not use round TTLs (in particular, some shoddy appliances use
67126756Smlaier#   "original" initial TTL settings). If not sure, you can see how many
68126756Smlaier#   hops you're away from the remote party with traceroute or mtr.
69126756Smlaier#
70126756Smlaier# - Don't fragment flag (DF) - some modern OSes set this to implement PMTU
71126756Smlaier#   discovery. Others do not bother.
72126756Smlaier#
73126756Smlaier#   NEW SIGNATURE: Copy this value literally.
74126756Smlaier#
75126756Smlaier# - Maximum segment size (MSS) - this setting is usually link-dependent. P0f
76126756Smlaier#   uses it to determine link type of the remote host.
77126756Smlaier#
78126756Smlaier#   NEW SIGNATURE: Always wildcard this value, except for rare cases when
79126756Smlaier#   you have an appliance with a fixed value, know the system supports only
80126756Smlaier#   a very limited number of network interface types, or know the system
81126756Smlaier#   is using a value it pulled out of nowhere.  Specific unique MSS
82126756Smlaier#   can be used to tell Google crawlbots from the rest of the population.
83126756Smlaier#
84126756Smlaier# - Window scaling (WSCALE) - this feature is used to scale WSS.
85126756Smlaier#   It extends the size of a TCP/IP window to 32 bits. Some modern
86126756Smlaier#   systems implement this feature.
87126756Smlaier#
88126756Smlaier#   NEW SIGNATURE: Observe several signatures. Initial WSCALE is often set
89126756Smlaier#   to zero or other low value. There's usually no need to wildcard this
90126756Smlaier#   parameter.
91126756Smlaier#
92126756Smlaier# - Timestamp - some systems that implement timestamps set them to
93126756Smlaier#   zero in the initial SYN. This case is detected and handled appropriately.
94126756Smlaier#
95126756Smlaier# - Selective ACK permitted - a flag set by systems that implement
96126756Smlaier#   selective ACK functionality.
97126756Smlaier#
98126756Smlaier# - The sequence of TCP all options (MSS, window scaling, selective ACK
99126756Smlaier#   permitted, timestamp, NOP). Other than the options previously
100126756Smlaier#   discussed, p0f also checks for timestamp option (a silly
101126756Smlaier#   extension to broadcast your uptime ;-), NOP options (used for
102126756Smlaier#   header padding) and sackOK option (selective ACK feature).
103126756Smlaier#
104126756Smlaier#   NEW SIGNATURE: Copy the sequence literally.
105126756Smlaier#
106126756Smlaier# To wildcard any value (except for initial TTL or TCP options), replace
107126756Smlaier# it with '*'. You can also use a modulo operator to match any values
108126756Smlaier# that divide by nnn - '%nnn'.
109126756Smlaier#
110126756Smlaier# Fingerprint entry format:
111126756Smlaier#
112126756Smlaier# wwww:ttt:D:ss:OOO...:OS:Version:Subtype:Details
113126756Smlaier#
114126756Smlaier# wwww     - window size (can be *, %nnn, Snn or Tnn).  The special values
115126756Smlaier#            "S" and "T" which are a multiple of MSS or a multiple of MTU
116126756Smlaier#            respectively.
117126756Smlaier# ttt      - initial TTL
118126756Smlaier# D        - don't fragment bit (0 - not set, 1 - set)
119126756Smlaier# ss       - overall SYN packet size
120126756Smlaier# OOO      - option value and order specification (see below)
121126756Smlaier# OS       - OS genre (Linux, Solaris, Windows)
122126756Smlaier# Version  - OS Version (2.0.27 on x86, etc)
123126756Smlaier# Subtype  - OS subtype or patchlevel (SP3, lo0)
124126756Smlaier# details  - Generic OS details
125126756Smlaier#
126126756Smlaier# If OS genre starts with '*', p0f will not show distance, link type
127126756Smlaier# and timestamp data. It is useful for userland TCP/IP stacks of
128126756Smlaier# network scanners and so on, where many settings are randomized or
129126756Smlaier# bogus.
130126756Smlaier#
131126756Smlaier# If OS genre starts with @, it denotes an approximate hit for a group
132126756Smlaier# of operating systems (signature reporting still enabled in this case).
133126756Smlaier# Use this feature at the end of this file to catch cases for which
134126756Smlaier# you don't have a precise match, but can tell it's Windows or FreeBSD
135126756Smlaier# or whatnot by looking at, say, flag layout alone.
136126756Smlaier#
137126756Smlaier# Option block description is a list of comma or space separated
138126756Smlaier# options in the order they appear in the packet:
139126756Smlaier#
140126756Smlaier# N	   - NOP option
141126756Smlaier# Wnnn	   - window scaling option, value nnn (or * or %nnn)
142126756Smlaier# Mnnn	   - maximum segment size option, value nnn (or * or %nnn)
143126756Smlaier# S	   - selective ACK OK
144126756Smlaier# T 	   - timestamp
145126756Smlaier# T0 	   - timestamp with a zero value
146126756Smlaier#
147126756Smlaier# To denote no TCP options, use a single '.'.
148126756Smlaier#
149126756Smlaier# Please report any additions to this file, or any inaccuracies or
150126756Smlaier# problems spotted, to the maintainers: lcamtuf@coredump.cx,
151126756Smlaier# frantzen@openbsd.org and bugs@openbsd.org with a tcpdump packet
152126756Smlaier# capture of the relevant SYN packet(s)
153126756Smlaier#
154126756Smlaier# WARNING WARNING WARNING
155126756Smlaier# -----------------------
156126756Smlaier#
157126756Smlaier# Do not add a system X as OS Y just because NMAP says so. It is often
158126756Smlaier# the case that X is a NAT firewall. While nmap is talking to the
159126756Smlaier# device itself, p0f is fingerprinting the guy behind the firewall
160126756Smlaier# instead.
161126756Smlaier#
162126756Smlaier# When in doubt, use common sense, don't add something that looks like
163126756Smlaier# a completely different system as Linux or FreeBSD or LinkSys router.
164126756Smlaier# Check DNS name, establish a connection to the remote host and look
165126756Smlaier# at SYN+ACK - does it look similar?
166126756Smlaier#
167126756Smlaier# Some users tweak their TCP/IP settings - enable or disable RFC1323
168126756Smlaier# functionality, enable or disable timestamps or selective ACK,
169126756Smlaier# disable PMTU discovery, change MTU and so on. Always compare a new rule
170126756Smlaier# to other fingerprints for this system, and verify the system isn't
171126756Smlaier# "customized" before adding it. It is OK to add signature variants
172126756Smlaier# caused by a commonly used software (personal firewalls, security
173126756Smlaier# packages, etc), but it makes no sense to try to add every single
174126756Smlaier# possible /proc/sys/net/ipv4 tweak on Linux or so.
175126756Smlaier#
176126756Smlaier# KEEP IN MIND: Some packet firewalls configured to normalize outgoing
177126756Smlaier# traffic (OpenBSD pf with "scrub" enabled, for example) will, well,
178126756Smlaier# normalize packets. Signatures will not correspond to the originating
179126756Smlaier# system (and probably not quite to the firewall either).
180126756Smlaier#
181126756Smlaier# NOTE: Try to keep this file in some reasonable order, from most to
182126756Smlaier# least likely systems. This will speed up operation. Also keep most
183126756Smlaier# generic and broad rules near the end.
184126756Smlaier#
185126756Smlaier
186126756Smlaier##########################
187126756Smlaier# Standard OS signatures #
188126756Smlaier##########################
189126756Smlaier
190126756Smlaier# ----------------- AIX ---------------------
191126756Smlaier
192126756Smlaier# AIX is first because its signatures are close to NetBSD, MacOS X and
193126756Smlaier# Linux 2.0, but it uses a fairly rare MSSes, at least sometimes...
194126756Smlaier# This is a shoddy hack, though.
195126756Smlaier
196126756Smlaier16384:64:0:44:M512:		AIX:4.3:2-3:AIX 4.3.2 and earlier
197126756Smlaier
198126756Smlaier16384:64:0:60:M512,N,W%2,N,N,T:		AIX:4.3:3:AIX 4.3.3-5.2
199126756Smlaier16384:64:0:60:M512,N,W%2,N,N,T:		AIX:5.1-5.2::AIX 4.3.3-5.2
200126756Smlaier32768:64:0:60:M512,N,W%2,N,N,T:		AIX:4.3:3:AIX 4.3.3-5.2
201126756Smlaier32768:64:0:60:M512,N,W%2,N,N,T:		AIX:5.1-5.2::AIX 4.3.3-5.2
202126756Smlaier65535:64:0:60:M512,N,W%2,N,N,T:		AIX:4.3:3:AIX 4.3.3-5.2
203126756Smlaier65535:64:0:60:M512,N,W%2,N,N,T:		AIX:5.1-5.2::AIX 4.3.3-5.2
204126756Smlaier65535:64:0:64:M*,N,W1,N,N,T,N,N,S:	AIX:5.3:ML1:AIX 5.3 ML1
205126756Smlaier
206126756Smlaier# ----------------- Linux -------------------
207126756Smlaier
208126756Smlaier512:64:0:44:M*:			Linux:2.0:3x:Linux 2.0.3x
209126756Smlaier16384:64:0:44:M*:		Linux:2.0:3x:Linux 2.0.3x
210126756Smlaier
211126756Smlaier# Endian snafu! Nelson says "ha-ha":
212126756Smlaier2:64:0:44:M*:			Linux:2.0:3x:Linux 2.0.3x (MkLinux) on Mac
213126756Smlaier64:64:0:44:M*:			Linux:2.0:3x:Linux 2.0.3x (MkLinux) on Mac
214126756Smlaier
215126756Smlaier
216126756SmlaierS4:64:1:60:M1360,S,T,N,W0:	Linux:google::Linux (Google crawlbot)
217126756Smlaier
218126756SmlaierS2:64:1:60:M*,S,T,N,W0:		Linux:2.4::Linux 2.4 (big boy)
219126756SmlaierS3:64:1:60:M*,S,T,N,W0:		Linux:2.4:18-21:Linux 2.4.18 and newer
220126756SmlaierS4:64:1:60:M*,S,T,N,W0:		Linux:2.4::Linux 2.4/2.6
221126756SmlaierS4:64:1:60:M*,S,T,N,W0:		Linux:2.6::Linux 2.4/2.6
222126756Smlaier
223126756SmlaierS3:64:1:60:M*,S,T,N,W1:		Linux:2.5::Linux 2.5
224126756SmlaierS4:64:1:60:M*,S,T,N,W1:		Linux:2.5-2.6::Linux 2.5/2.6
225126756Smlaier
226126756SmlaierS20:64:1:60:M*,S,T,N,W0:	Linux:2.2:20-25:Linux 2.2.20 and newer
227126756SmlaierS22:64:1:60:M*,S,T,N,W0:	Linux:2.2::Linux 2.2
228126756SmlaierS11:64:1:60:M*,S,T,N,W0:	Linux:2.2::Linux 2.2
229126756Smlaier
230126756Smlaier# Popular cluster config scripts disable timestamps and
231126756Smlaier# selective ACK:
232126756SmlaierS4:64:1:48:M1460,N,W0:		Linux:2.4:cluster:Linux 2.4 in cluster
233126756Smlaier
234126756Smlaier# This needs to be investigated. On some systems, WSS
235126756Smlaier# is selected as a multiple of MTU instead of MSS. I got
236126756Smlaier# many submissions for this for many late versions of 2.4:
237126756SmlaierT4:64:1:60:M1412,S,T,N,W0:	Linux:2.4::Linux 2.4 (late, uncommon)
238126756Smlaier
239126756Smlaier# This happens only over loopback, but let's make folks happy:
240126756Smlaier32767:64:1:60:M16396,S,T,N,W0:	Linux:2.4:lo0:Linux 2.4 (local)
241126756SmlaierS8:64:1:60:M3884,S,T,N,W0:	Linux:2.2:lo0:Linux 2.2 (local)
242126756Smlaier
243126756Smlaier# Opera visitors:
244126756Smlaier16384:64:1:60:M*,S,T,N,W0:	Linux:2.2:Opera:Linux 2.2 (Opera?)
245126756Smlaier32767:64:1:60:M*,S,T,N,W0:	Linux:2.4:Opera:Linux 2.4 (Opera?)
246126756Smlaier
247126756Smlaier# Some fairly common mods:
248126756SmlaierS4:64:1:52:M*,N,N,S,N,W0:	Linux:2.4:ts:Linux 2.4 w/o timestamps
249126756SmlaierS22:64:1:52:M*,N,N,S,N,W0:	Linux:2.2:ts:Linux 2.2 w/o timestamps
250126756Smlaier
251126756Smlaier
252126756Smlaier# ----------------- FreeBSD -----------------
253126756Smlaier
254126756Smlaier16384:64:1:44:M*:		FreeBSD:2.0-2.2::FreeBSD 2.0-4.1
255126756Smlaier16384:64:1:44:M*:		FreeBSD:3.0-3.5::FreeBSD 2.0-4.1
256126756Smlaier16384:64:1:44:M*:		FreeBSD:4.0-4.1::FreeBSD 2.0-4.1
257126756Smlaier16384:64:1:60:M*,N,W0,N,N,T:	FreeBSD:4.4::FreeBSD 4.4
258126756Smlaier
259126756Smlaier1024:64:1:60:M*,N,W0,N,N,T:	FreeBSD:4.4::FreeBSD 4.4
260126756Smlaier
261126756Smlaier57344:64:1:44:M*:		FreeBSD:4.6-4.8:noRFC1323:FreeBSD 4.6-4.8 (no RFC1323)
262126756Smlaier57344:64:1:60:M*,N,W0,N,N,T:	FreeBSD:4.6-4.8::FreeBSD 4.6-4.8
263126756Smlaier
264126756Smlaier32768:64:1:60:M*,N,W0,N,N,T:	FreeBSD:4.8-4.9::FreeBSD 4.8-5.1 (or MacOS X)
265126756Smlaier32768:64:1:60:M*,N,W0,N,N,T:	FreeBSD:5.0-5.1::FreeBSD 4.8-5.1 (or MacOS X)
266126756Smlaier65535:64:1:60:M*,N,W0,N,N,T:	FreeBSD:4.8-4.9::FreeBSD 4.8-5.1 (or MacOS X)
267126756Smlaier65535:64:1:60:M*,N,W0,N,N,T:	FreeBSD:5.0-5.1::FreeBSD 4.8-5.1 (or MacOS X)
268126756Smlaier65535:64:1:60:M*,N,W1,N,N,T:	FreeBSD:4.7-4.9::FreeBSD 4.7-5.1
269126756Smlaier65535:64:1:60:M*,N,W1,N,N,T:	FreeBSD:5.0-5.1::FreeBSD 4.7-5.1
270126756Smlaier
271126756Smlaier# 16384:64:1:60:M*,N,N,N,N,N,N,T:FreeBSD:4.4:noTS:FreeBSD 4.4 (w/o timestamps)
272126756Smlaier
273126756Smlaier# ----------------- NetBSD ------------------
274126756Smlaier
275126756Smlaier65535:64:0:60:M*,N,W0,N,N,T0:	NetBSD:1.6:opera:NetBSD 1.6 (Opera)
276126756Smlaier16384:64:0:60:M*,N,W0,N,N,T0:	NetBSD:1.6::NetBSD 1.6
277126756Smlaier16384:64:1:60:M*,N,W0,N,N,T0:	NetBSD:1.6:df:NetBSD 1.6 (DF)
278126756Smlaier16384:64:0:60:M*,N,W0,N,N,T:	NetBSD:1.3::NetBSD 1.3
279126756Smlaier65535:64:1:60:M*,N,W1,N,N,T0:	NetBSD:1.6::NetBSD 1.6W-current (DF)
280126756Smlaier
281126756Smlaier# ----------------- OpenBSD -----------------
282126756Smlaier
283126756Smlaier16384:64:0:60:M*,N,W0,N,N,T:		OpenBSD:2.6::NetBSD 1.3 (or OpenBSD 2.6)
284126756Smlaier16384:64:1:64:M*,N,N,S,N,W0,N,N,T:	OpenBSD:3.0-3.4::OpenBSD 3.0-3.4
285126756Smlaier16384:64:0:64:M*,N,N,S,N,W0,N,N,T:	OpenBSD:3.0-3.4:no-df:OpenBSD 3.0-3.4 (scrub no-df)
286126756Smlaier57344:64:1:64:M*,N,N,S,N,W0,N,N,T:	OpenBSD:3.3-3.4::OpenBSD 3.3-3.4
287126756Smlaier57344:64:0:64:M*,N,N,S,N,W0,N,N,T:	OpenBSD:3.3-3.4:no-df:OpenBSD 3.3-3.4 (scrub no-df)
288126756Smlaier
289126756Smlaier65535:64:1:64:M*,N,N,S,N,W0,N,N,T:	OpenBSD:3.0-3.4:opera:OpenBSD 3.0-3.4 (Opera)
290126756Smlaier
291126756Smlaier# ----------------- Solaris -----------------
292126756Smlaier
293126756SmlaierS17:64:1:64:N,W3,N,N,T0,N,N,S,M*:	Solaris:8:RFC1323:Solaris 8 RFC1323
294126756SmlaierS17:64:1:48:N,N,S,M*:			Solaris:8::Solaris 8
295126756SmlaierS17:255:1:44:M*:			Solaris:2.5-2.7::Solaris 2.5 to 7
296126756Smlaier
297126756SmlaierS6:255:1:44:M*:				Solaris:2.6-2.7::Solaris 2.6 to 7
298126756SmlaierS23:255:1:44:M*:			Solaris:2.5:1:Solaris 2.5.1
299126756SmlaierS34:64:1:48:M*,N,N,S:			Solaris:2.9::Solaris 9
300126756SmlaierS44:255:1:44:M*:			Solaris:2.7::Solaris 7
301126756Smlaier
302126756Smlaier# ----------------- IRIX --------------------
303126756Smlaier
304126756Smlaier49152:64:0:44:M*:			IRIX:6.4::IRIX 6.4
305126756Smlaier61440:64:0:44:M*:			IRIX:6.2-6.5::IRIX 6.2-6.5
306126756Smlaier49152:64:0:52:M*,N,W2,N,N,S:		IRIX:6.5:RFC1323:IRIX 6.5 (RFC1323)
307126756Smlaier49152:64:0:52:M*,N,W3,N,N,S:		IRIX:6.5:RFC1323:IRIX 6.5 (RFC1323)
308126756Smlaier
309126756Smlaier61440:64:0:48:M*,N,N,S:			IRIX:6.5:12-21:IRIX 6.5.12 - 6.5.21
310126756Smlaier49152:64:0:48:M*,N,N,S:			IRIX:6.5:15-21:IRIX 6.5.15 - 6.5.21
311126756Smlaier
312126756Smlaier# ----------------- Tru64 -------------------
313126756Smlaier
314126756Smlaier32768:64:1:48:M*,N,W0:			Tru64:4.0::Tru64 4.0
315126756Smlaier32768:64:0:48:M*,N,W0:			Tru64:5.0::Tru64 5.0
316126756Smlaier8192:64:0:44:M1460:			Tru64:5.1:noRFC1323:Tru64 6.1 (no RFC1323) (or QNX 6)
317126756Smlaier
318126756Smlaier# This looks awfully Linuxish :/
319126756Smlaier# S22:64:0:60:M*,S,T,N,W0:		Tru64:5.0:a:Tru64 5.0a
320126756Smlaier
321126756Smlaier61440:64:0:48:M*,N,W0:			Tru64:5.1a:JP4:Tru64 v5.1a JP4 (or OpenVMS 7.x on Compaq 5.x stack)
322126756Smlaier
323126756Smlaier
324126756Smlaier# ----------------- OpenVMS -----------------
325126756Smlaier
326126756Smlaier6144:64:1:60:M*,N,W0,N,N,T:		OpenVMS:7.2::OpenVMS 7.2 (Multinet 4.4 stack)
327126756Smlaier
328126756Smlaier# ----------------- MacOS -------------------
329126756Smlaier
330126756Smlaier16616:255:1:48:M*,W0:			MacOS:7.3-7.6:OTTCP:MacOS 7.3-8.6 (OTTCP)
331126756Smlaier16616:255:1:48:M*,W0:			MacOS:8.0-8.6:OTTCP:MacOS 7.3-8.6 (OTTCP)
332126756Smlaier32768:255:1:48:M*,W0,N:			MacOS:9.1-9.2::MacOS 9.1/9.2
333126756Smlaier32768:64:0:60:M*,N,W0,N,N,T:		MacOS:X:10.2:MacOS X 10.2
334126756Smlaier
335126756Smlaier# ----------------- Windows -----------------
336126756Smlaier
337126756Smlaier# Windows 95 - need more:
338126756Smlaier
339126756Smlaier8192:32:1:44:M*:			Windows:95::Windows 95 (low TTL)
340126756Smlaier
341126756Smlaier# Windows 98 - plenty of silly signatures:
342126756SmlaierS44:32:1:48:M*,N,N,S:			Windows:98::Windows 98 (low TTL)
343126756Smlaier8192:32:1:48:M*,N,N,S:			Windows:98::Windows 98 (low TTL)
344126756Smlaier
345126756Smlaier%8192:64:1:48:M*,N,N,S:			Windows:98::Windows 98 (or newer XP/2000 with tweaked TTL)
346126756SmlaierS4:64:1:48:M*,N,N,S:			Windows:98::Windows 98
347126756SmlaierS6:64:1:48:M*,N,N,S:			Windows:98::Windows 98
348126756SmlaierS12:64:1:48:M*,N,N,S:			Windows:98::Windows 98
349126756Smlaier32767:64:1:48:M*,N,N,S:			Windows:98::Windows 98
350126756Smlaier37300:64:1:48:M*,N,N,S:			Windows:98::Windows 98
351126756Smlaier46080:64:1:52:M*,N,W3,N,N,S:		Windows:98:RFC1323:Windows 98 (RFC1323)
352126756Smlaier65535:64:1:44:M*:			Windows:98:noSACK:Windows 98 (no sack)
353126756Smlaier
354126756SmlaierS16:128:1:48:M*,N,N,S:			Windows:98::Windows 98
355126756SmlaierS16:128:1:64:M*,N,W0,N,N,T0,N,N,S:	Windows:98::Windows 98
356126756SmlaierS26:128:1:48:M*,N,N,S:			Windows:98::Windows 98
357126756SmlaierT30:128:1:48:M*,N,N,S:			Windows:98::Windows 98
358126756Smlaier32767:128:1:52:M*,N,W0,N,N,S:		Windows:98::Windows 98
359126756Smlaier60352:128:1:48:M*,N,N,S:		Windows:98::Windows 98
360126756Smlaier60352:128:1:64:M*,N,W2,N,N,T0,N,N,S:	Windows:98::Windows 98
361126756Smlaier
362126756Smlaier# Windows NT 4.0 - need more:
363126756Smlaier
364126756Smlaier64512:128:1:44:M1414:			Windows:NT:4.0:Windows NT 4.0 SP6a
365126756Smlaier8192:128:1:44:M*:			Windows:NT:4.0:Windows NT 4.0 (older)
366126756Smlaier6144:128:1:52:M*,W0,N,S,N,N:		Windows:NT:4.0:Windows NT 4.0 (RFC1323)
367130151Sschweikh
368126756Smlaier# Windows XP and 2000. Most of the signatures that were
369126756Smlaier# either dubious or non-specific (no service pack data)
370126756Smlaier# were deleted and replaced with generics at the end.
371126756Smlaier
372126756Smlaier65535:128:1:48:M*,N,N,S:		Windows:2000:SP4:Windows 2000 SP4, XP SP1
373126756Smlaier%8192:128:1:48:M*,N,N,S:		Windows:2000:SP4:Windows 2000 SP4, XP SP1
374126756SmlaierS45:128:1:48:M*,N,N,S:			Windows:2000:SP4:Windows 2000 SP4
375126756SmlaierS6:128:1:48:M*,N,N,S:			Windows:2000:SP4:Windows XP SP1, 2000 SP4
376126756SmlaierS44:128:1:48:M*,N,N,S:			Windows:2000:SP3:Windows XP Pro SP1, 2000 SP3
377126756Smlaier
378126756SmlaierS6:128:1:48:M*,N,N,S:			Windows:XP:SP1:Windows XP SP1, 2000 SP4
379126756SmlaierS44:128:1:48:M*,N,N,S:			Windows:XP:SP1:Windows XP Pro SP1, 2000 SP3
380126756Smlaier64512:128:1:48:M*,N,N,S:		Windows:XP:SP1:Windows XP SP1
381126756Smlaier32767:128:1:48:M1452,N,N,S:		Windows:XP:SP1:Windows XP SP1
382126756Smlaier65535:128:1:48:M*,N,N,S:		Windows:XP:SP1:Windows 2000 SP4, XP SP1
383126756Smlaier%8192:128:1:48:M*,N,N,S:		Windows:XP:SP1:Windows 2000 SP4, XP SP1
384126756Smlaier
385126756Smlaier# Odds, ends, mods:
386126756Smlaier
387126756SmlaierS52:128:1:48:M1260,N,N,S:		Windows:XP:Cisco:Windows XP/2000 via Cisco
388126756SmlaierS52:128:1:48:M1260,N,N,S:		Windows:2000:Cisco:Windows XP/2000 via Cisco
389126756Smlaier
390126756Smlaier# HUNT DOWN:
391126756Smlaier# *:128:1:48:M*,N,N,S:U:@Windows:XP (leak) (PLEASE REPORT)
392126756Smlaier
393126756Smlaier# ----------------- HP/UX -------------------
394126756Smlaier
395126756Smlaier32768:64:1:44:M*:			HP-UX:B.10.20::HP-UX B.10.20
396126756Smlaier32768:64:0:48:M*,W0,N:			HP-UX:11.0::HP-UX 11.0
397126756Smlaier32768:64:1:48:M*,W0,N:			HP-UX:11.10::HP-UX 11.0 or 11.11
398126756Smlaier32768:64:1:48:M*,W0,N:			HP-UX:11.11::HP-UX 11.0 or 11.11
399126756Smlaier
400126756Smlaier# Whoa. Hardcore WSS.
401126756Smlaier0:64:0:48:M*,W0,N:			HP-UX:B.11.00:A:HP-UX B.11.00 A (RFC1323)
402126756Smlaier
403126756Smlaier
404126756Smlaier# ----------------- RiscOS ------------------
405126756Smlaier
406126756Smlaier# We don't yet support the ?12 TCP option
407126756Smlaier#16384:64:1:68:M1460,N,W0,N,N,T,N,N,?12:	RISCOS:3.70-4.36::RISC OS 3.70-4.36
408126756Smlaier
409126756Smlaier# ----------------- BSD/OS ------------------
410126756Smlaier
411126756Smlaier# Once again, power of two WSS is also shared by MacOS X with DF set
412126756Smlaier8192:64:1:60:M1460,N,W0,N,N,T:		BSD/OS:3.1::BSD/OS 3.1-4.3 (or MacOS X 10.2 w/DF)
413126756Smlaier8192:64:1:60:M1460,N,W0,N,N,T:		BSD/OS:4.0-4.3::BSD/OS 3.1-4.3 (or MacOS X 10.2)
414126756Smlaier
415126756Smlaier
416126756Smlaier# ---------------- NewtonOS -----------------
417126756Smlaier
418126756Smlaier4096:64:0:44:M1420:		NewtonOS:2.1::NewtonOS 2.1
419126756Smlaier
420126756Smlaier# ---------------- NeXTSTEP -----------------
421126756Smlaier
422126756SmlaierS8:64:0:44:M512:		NeXTSTEP:3.3::NeXTSTEP 3.3
423126756Smlaier
424126756Smlaier# ------------------ BeOS -------------------
425126756Smlaier
426126756Smlaier1024:255:0:48:M*,N,W0:		BeOS:5.0-5.1::BeOS 5.0-5.1
427126756Smlaier12288:255:0:44:M1402:		BeOS:5.0::BeOS 5.0.x
428126756Smlaier
429126756Smlaier# ------------------ OS/400 -----------------
430126756Smlaier
431126756Smlaier8192:64:1:60:M1440,N,W0,N,N,T:	OS/400:VR4::OS/400 VR4/R5
432126756Smlaier8192:64:1:60:M1440,N,W0,N,N,T:	OS/400:VR5::OS/400 VR4/R5
433126756Smlaier4096:64:1:60:M1440,N,W0,N,N,T:	OS/400:V4R5:CF67032:OS/400 V4R5 + CF67032
434126756Smlaier
435126756Smlaier
436126756Smlaier# ------------------ ULTRIX -----------------
437126756Smlaier
438126756Smlaier16384:64:0:40:.:		ULTRIX:4.5::ULTRIX 4.5
439126756Smlaier
440126756Smlaier# ------------------- QNX -------------------
441126756Smlaier
442126756SmlaierS16:64:0:44:M512:		QNX:::QNX demodisk
443126756Smlaier
444126756Smlaier# ------------------ Novell -----------------
445126756Smlaier
446126756Smlaier16384:128:1:44:M1460:		Novell:NetWare:5.0:Novel Netware 5.0
447126756Smlaier6144:128:1:44:M1460:		Novell:IntranetWare:4.11:Novell IntranetWare 4.11
448126756Smlaier
449126756Smlaier# ----------------- SCO ------------------
450126756SmlaierS17:64:1:44:M1460:			SCO:Unixware:7.0:SCO Unixware 7.0.0 or OpenServer 5.0.4-5.06
451126756SmlaierS17:64:1:44:M1460:			SCO:OpenServer:5.0:SCO Unixware 7.0.0 or OpenServer 5.0.4-5.06
452126756SmlaierS3:64:1:60:M1460,N,W0,N,N,T:		SCO:UnixWare:7.1:SCO UnixWare 7.1
453126756Smlaier
454126756Smlaier# ------------------- DOS -------------------
455126756Smlaier
456126756Smlaier2048:255:0:44:M536:		DOS:WATTCP:1.05:DOS Arachne via WATTCP/1.05
457126756Smlaier
458126756Smlaier###########################################
459126756Smlaier# Appliance / embedded / other signatures #
460126756Smlaier###########################################
461126756Smlaier
462126756Smlaier# ---------- Firewalls / routers ------------
463126756Smlaier
464126756SmlaierS12:64:1:44:M1460:			@Checkpoint:::Checkpoint (unknown 1)
465126756SmlaierS12:64:1:48:N,N,S,M1460:		@Checkpoint:::Checkpoint (unknown 2)
466126756Smlaier4096:32:0:44:M1460:			ExtremeWare:4.x::ExtremeWare 4.x
467126756Smlaier60352:64:0:52:M1460,N,W2,N,N,S:		Clavister:7::Clavister firewall 7.x
468126756Smlaier
469126756Smlaier# ------- Switches and other stuff ----------
470126756Smlaier
471126756Smlaier4128:255:0:44:M*:			Cisco:::Cisco Catalyst 3500, 7500 etc
472126756SmlaierS8:255:0:44:M*:				Cisco:12008::Cisco 12008
473126756Smlaier60352:128:1:64:M1460,N,W2,N,N,T,N,N,S:	Alteon:ACEswitch::Alteon ACEswitch
474126756Smlaier64512:128:1:44:M1370:			Nortel:Contivity Client::Nortel Conectivity Client
475126756Smlaier
476126756Smlaier
477126756Smlaier# ---------- Caches and whatnots ------------
478126756Smlaier
479126756SmlaierS4:64:1:52:M1460,N,N,S,N,W0:		AOL:web cache::AOL web cache
480126756Smlaier
481126756Smlaier32850:64:1:64:N,W1,N,N,T,N,N,S,M*:	NetApp:5.x::NetApp Data OnTap 5.x
482126756Smlaier16384:64:1:64:M1460,N,N,S,N,W0,N:	NetApp:5.3:1:NetApp 5.3.1
483126756Smlaier65535:64:0:64:M1460,N,N,S,N,W3,N,N,T:	NetApp:5.3:1:NetApp 5.3.1
484126756Smlaier65535:64:0:60:M1460,N,W0,N,N,T:		NetApp:CacheFlow::NetApp CacheFlow
485126756Smlaier8192:64:1:64:M1460,N,N,S,N,W0,N,N,T:	NetApp:5.2:1:NetApp NetCache 5.2.1
486126756Smlaier
487126756SmlaierS4:64:0:48:M1460,N,N,S:			Cisco:Content Engine::Cisco Content Engine
488126756Smlaier
489126756Smlaier27085:128:0:40:.:			Dell:PowerApp cache::Dell PowerApp (Linux-based)
490126756Smlaier
491126756Smlaier65535:255:1:48:N,W1,M1460:		Inktomi:crawler::Inktomi crawler
492126756SmlaierS1:255:1:60:M1460,S,T,N,W0:		LookSmart:ZyBorg::LookSmart ZyBorg
493126756Smlaier
494126756Smlaier
495126756Smlaier16384:255:0:40:.:			Proxyblocker:::Proxyblocker (what's this?)
496126756Smlaier
497126756Smlaier# ----------- Embedded systems --------------
498126756Smlaier
499126756SmlaierS9:255:0:44:M536:			PalmOS:Tungsten:C:PalmOS Tungsten C
500126756SmlaierS5:255:0:44:M536:			PalmOS:3::PalmOS 3/4
501126756SmlaierS5:255:0:44:M536:			PalmOS:4::PalmOS 3/4
502126756SmlaierS4:255:0:44:M536:			PalmOS:3:5:PalmOS 3.5
503126756Smlaier2948:255:0:44:M536:			PalmOS:3:5:PalmOS 3.5.3 (Handera)
504126756Smlaier
505126756SmlaierS23:64:1:64:N,W1,N,N,T,N,N,S,M1460:	SymbianOS:7::SymbianOS 7
506126756Smlaier8192:255:0:44:M1460:			SymbianOS:6048::SymbianOS 6048 (on Nokia 7650?)
507126756Smlaier8192:255:0:44:M536:			SymbianOS:::SymbianOS (on Nokia 9210?)
508126756Smlaier
509126756Smlaier
510126756Smlaier# Perhaps S4?
511126756Smlaier5840:64:1:60:M1452,S,T,N,W1:		Zaurus:3.10::Zaurus 3.10
512126756Smlaier
513126756Smlaier32768:128:1:64:M1460,N,W0,N,N,T0,N,N,S:	PocketPC:2002::PocketPC 2002
514126756Smlaier
515126756SmlaierS1:255:0:44:M346:			Contiki:1.1:rc0:Contiki 1.1-rc0
516126756Smlaier
517126756Smlaier4096:128:0:44:M1460:			Sega:Dreamcast:3.0:Sega Dreamcast Dreamkey 3.0
518126756Smlaier
519126756SmlaierS12:64:0:44:M1452:			AXIS:5600:v5.64:AXIS Printer Server 5600 v5.64
520126756Smlaier
521126756Smlaier
522126756Smlaier
523126756Smlaier####################
524126756Smlaier# Fancy signatures #
525126756Smlaier####################
526126756Smlaier
527126756Smlaier1024:64:0:40:.:				*NMAP:syn scan:1:NMAP syn scan (1)
528126756Smlaier2048:64:0:40:.:				*NMAP:syn scan:2:NMAP syn scan (2)
529126756Smlaier3072:64:0:40:.:				*NMAP:syn scan:3:NMAP syn scan (3)
530126756Smlaier4096:64:0:40:.:				*NMAP:syn scan:4:NMAP syn scan (4)
531126756Smlaier
532126756Smlaier1024:64:0:60:W10,N,M265,T:		*NMAP:OS:1:NMAP OS detection probe (1)
533126756Smlaier2048:64:0:60:W10,N,M265,T:		*NMAP:OS:2:NMAP OS detection probe (2)
534126756Smlaier3072:64:0:60:W10,N,M265,T:		*NMAP:OS:3:NMAP OS detection probe (3)
535126756Smlaier4096:64:0:60:W10,N,M265,T:		*NMAP:OS:4:NMAP OS detection probe (4)
536126756Smlaier
537126756Smlaier#####################################
538126756Smlaier# Generic signatures - just in case #
539126756Smlaier#####################################
540126756Smlaier
541126756Smlaier#*:64:1:60:M*,N,W*,N,N,T:		@FreeBSD:4.0-4.9::FreeBSD 4.x/5.x
542126756Smlaier#*:64:1:60:M*,N,W*,N,N,T:		@FreeBSD:5.0-5.1::FreeBSD 4.x/5.x
543126756Smlaier
544126756Smlaier*:128:1:52:M*,N,W0,N,N,S:		@Windows:XP:RFC1323:Windows XP/2000 (RFC1323 no tstamp)
545126756Smlaier*:128:1:52:M*,N,W0,N,N,S:		@Windows:2000:RFC1323:Windows XP/2000 (RFC1323 no tstamp)
546126756Smlaier*:128:1:64:M*,N,W0,N,N,T0,N,N,S:	@Windows:XP:RFC1323:Windows XP/2000 (RFC1323)
547126756Smlaier*:128:1:64:M*,N,W0,N,N,T0,N,N,S:	@Windows:2000:RFC1323:Windows XP/2000 (RFC1323)
548126756Smlaier*:128:1:64:M*,N,W*,N,N,T0,N,N,S:	@Windows:XP:RFC1323:Windows XP (RFC1323, w+)
549126756Smlaier*:128:1:48:M*,N,N,S:			@Windows:XP::Windows XP/2000
550126756Smlaier*:128:1:48:M*,N,N,S:			@Windows:2000::Windows XP/2000
551