Source code pulled from OpenBSD for OpenNTPD. The place to contribute to this code is via the OpenBSD CVS tree.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

642 lines
26 KiB

20 years ago
21 years ago
21 years ago
20 years ago
21 years ago
  1. # $OpenBSD: pf.os,v 1.17 2004/04/28 01:01:27 deraadt Exp $
  2. # passive OS fingerprinting
  3. # -------------------------
  4. #
  5. # SYN signatures. Those signatures work for SYN packets only (duh!).
  6. #
  7. # (C) Copyright 2000-2003 by Michal Zalewski <lcamtuf@coredump.cx>
  8. # (C) Copyright 2003 by Mike Frantzen <frantzen@w4g.org>
  9. #
  10. # Permission to use, copy, modify, and distribute this software for any
  11. # purpose with or without fee is hereby granted, provided that the above
  12. # copyright notice and this permission notice appear in all copies.
  13. #
  14. # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  15. # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  16. # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  17. # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  18. # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  19. # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  20. # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  21. #
  22. #
  23. # This fingerprint database is adapted from Michal Zalewski's p0f passive
  24. # operating system package. The last database sync was from a Nov 3 2003
  25. # p0f.fp.
  26. #
  27. #
  28. # Each line in this file specifies a single fingerprint. Please read the
  29. # information below carefully before attempting to append any signatures
  30. # reported as UNKNOWN to this file to avoid mistakes.
  31. #
  32. # We use the following set metrics for fingerprinting:
  33. #
  34. # - Window size (WSS) - a highly OS dependent setting used for TCP/IP
  35. # performance control (max. amount of data to be sent without ACK).
  36. # Some systems use a fixed value for initial packets. On other
  37. # systems, it is a multiple of MSS or MTU (MSS+40). In some rare
  38. # cases, the value is just arbitrary.
  39. #
  40. # NEW SIGNATURE: if p0f reported a special value of 'Snn', the number
  41. # appears to be a multiple of MSS (MSS*nn); a special value of 'Tnn'
  42. # means it is a multiple of MTU ((MSS+40)*nn). Unless you notice the
  43. # value of nn is not fixed (unlikely), just copy the Snn or Tnn token
  44. # literally. If you know this device has a simple stack and a fixed
  45. # MTU, you can however multiply S value by MSS, or T value by MSS+40,
  46. # and put it instead of Snn or Tnn.
  47. #
  48. # If WSS otherwise looks like a fixed value (for example a multiple
  49. # of two), or if you can confirm the value is fixed, please quote
  50. # it literally. If there's no apparent pattern in WSS chosen, you
  51. # should consider wildcarding this value.
  52. #
  53. # - Overall packet size - a function of all IP and TCP options and bugs.
  54. #
  55. # NEW SIGNATURE: Copy this value literally.
  56. #
  57. # - Initial TTL - We check the actual TTL of a received packet. It can't
  58. # be higher than the initial TTL, and also shouldn't be dramatically
  59. # lower (maximum distance is defined as 40 hops).
  60. #
  61. # NEW SIGNATURE: *Never* copy TTL from a p0f-reported signature literally.
  62. # You need to determine the initial TTL. The best way to do it is to
  63. # check the documentation for a remote system, or check its settings.
  64. # A fairly good method is to simply round the observed TTL up to
  65. # 32, 64, 128, or 255, but it should be noted that some obscure devices
  66. # might not use round TTLs (in particular, some shoddy appliances use
  67. # "original" initial TTL settings). If not sure, you can see how many
  68. # hops you're away from the remote party with traceroute or mtr.
  69. #
  70. # - Don't fragment flag (DF) - some modern OSes set this to implement PMTU
  71. # discovery. Others do not bother.
  72. #
  73. # NEW SIGNATURE: Copy this value literally.
  74. #
  75. # - Maximum segment size (MSS) - this setting is usually link-dependent. P0f
  76. # uses it to determine link type of the remote host.
  77. #
  78. # NEW SIGNATURE: Always wildcard this value, except for rare cases when
  79. # you have an appliance with a fixed value, know the system supports only
  80. # a very limited number of network interface types, or know the system
  81. # is using a value it pulled out of nowhere. Specific unique MSS
  82. # can be used to tell Google crawlbots from the rest of the population.
  83. #
  84. # - Window scaling (WSCALE) - this feature is used to scale WSS.
  85. # It extends the size of a TCP/IP window to 32 bits. Some modern
  86. # systems implement this feature.
  87. #
  88. # NEW SIGNATURE: Observe several signatures. Initial WSCALE is often set
  89. # to zero or other low value. There's usually no need to wildcard this
  90. # parameter.
  91. #
  92. # - Timestamp - some systems that implement timestamps set them to
  93. # zero in the initial SYN. This case is detected and handled appropriately.
  94. #
  95. # - Selective ACK permitted - a flag set by systems that implement
  96. # selective ACK functionality.
  97. #
  98. # - The sequence of TCP all options (MSS, window scaling, selective ACK
  99. # permitted, timestamp, NOP). Other than the options previously
  100. # discussed, p0f also checks for timestamp option (a silly
  101. # extension to broadcast your uptime ;-), NOP options (used for
  102. # header padding) and sackOK option (selective ACK feature).
  103. #
  104. # NEW SIGNATURE: Copy the sequence literally.
  105. #
  106. # To wildcard any value (except for initial TTL or TCP options), replace
  107. # it with '*'. You can also use a modulo operator to match any values
  108. # that divide by nnn - '%nnn'.
  109. #
  110. # Fingerprint entry format:
  111. #
  112. # wwww:ttt:D:ss:OOO...:OS:Version:Subtype:Details
  113. #
  114. # wwww - window size (can be *, %nnn, Snn or Tnn). The special values
  115. # "S" and "T" which are a multiple of MSS or a multiple of MTU
  116. # respectively.
  117. # ttt - initial TTL
  118. # D - don't fragment bit (0 - not set, 1 - set)
  119. # ss - overall SYN packet size
  120. # OOO - option value and order specification (see below)
  121. # OS - OS genre (Linux, Solaris, Windows)
  122. # Version - OS Version (2.0.27 on x86, etc)
  123. # Subtype - OS subtype or patchlevel (SP3, lo0)
  124. # details - Generic OS details
  125. #
  126. # If OS genre starts with '*', p0f will not show distance, link type
  127. # and timestamp data. It is useful for userland TCP/IP stacks of
  128. # network scanners and so on, where many settings are randomized or
  129. # bogus.
  130. #
  131. # If OS genre starts with @, it denotes an approximate hit for a group
  132. # of operating systems (signature reporting still enabled in this case).
  133. # Use this feature at the end of this file to catch cases for which
  134. # you don't have a precise match, but can tell it's Windows or FreeBSD
  135. # or whatnot by looking at, say, flag layout alone.
  136. #
  137. # Option block description is a list of comma or space separated
  138. # options in the order they appear in the packet:
  139. #
  140. # N - NOP option
  141. # Wnnn - window scaling option, value nnn (or * or %nnn)
  142. # Mnnn - maximum segment size option, value nnn (or * or %nnn)
  143. # S - selective ACK OK
  144. # T - timestamp
  145. # T0 - timestamp with a zero value
  146. #
  147. # To denote no TCP options, use a single '.'.
  148. #
  149. # Please report any additions to this file, or any inaccuracies or
  150. # problems spotted, to the maintainers: lcamtuf@coredump.cx,
  151. # frantzen@openbsd.org and bugs@openbsd.org with a tcpdump packet
  152. # capture of the relevant SYN packet(s)
  153. #
  154. # A test and submission page is available at
  155. # http://lcamtuf.coredump.cx/p0f-help/
  156. #
  157. #
  158. # WARNING WARNING WARNING
  159. # -----------------------
  160. #
  161. # Do not add a system X as OS Y just because NMAP says so. It is often
  162. # the case that X is a NAT firewall. While nmap is talking to the
  163. # device itself, p0f is fingerprinting the guy behind the firewall
  164. # instead.
  165. #
  166. # When in doubt, use common sense, don't add something that looks like
  167. # a completely different system as Linux or FreeBSD or LinkSys router.
  168. # Check DNS name, establish a connection to the remote host and look
  169. # at SYN+ACK - does it look similar?
  170. #
  171. # Some users tweak their TCP/IP settings - enable or disable RFC1323
  172. # functionality, enable or disable timestamps or selective ACK,
  173. # disable PMTU discovery, change MTU and so on. Always compare a new rule
  174. # to other fingerprints for this system, and verify the system isn't
  175. # "customized" before adding it. It is OK to add signature variants
  176. # caused by a commonly used software (personal firewalls, security
  177. # packages, etc), but it makes no sense to try to add every single
  178. # possible /proc/sys/net/ipv4 tweak on Linux or so.
  179. #
  180. # KEEP IN MIND: Some packet firewalls configured to normalize outgoing
  181. # traffic (OpenBSD pf with "scrub" enabled, for example) will, well,
  182. # normalize packets. Signatures will not correspond to the originating
  183. # system (and probably not quite to the firewall either).
  184. #
  185. # NOTE: Try to keep this file in some reasonable order, from most to
  186. # least likely systems. This will speed up operation. Also keep most
  187. # generic and broad rules near the end.
  188. #
  189. ##########################
  190. # Standard OS signatures #
  191. ##########################
  192. # ----------------- AIX ---------------------
  193. # AIX is first because its signatures are close to NetBSD, MacOS X and
  194. # Linux 2.0, but it uses a fairly rare MSSes, at least sometimes...
  195. # This is a shoddy hack, though.
  196. 45046:64:0:44:M*: AIX:4.3::AIX 4.3
  197. 16384:64:0:44:M512: AIX:4.3:2-3:AIX 4.3.2 and earlier
  198. 16384:64:0:60:M512,N,W%2,N,N,T: AIX:4.3:3:AIX 4.3.3-5.2
  199. 16384:64:0:60:M512,N,W%2,N,N,T: AIX:5.1-5.2::AIX 4.3.3-5.2
  200. 32768:64:0:60:M512,N,W%2,N,N,T: AIX:4.3:3:AIX 4.3.3-5.2
  201. 32768:64:0:60:M512,N,W%2,N,N,T: AIX:5.1-5.2::AIX 4.3.3-5.2
  202. 65535:64:0:60:M512,N,W%2,N,N,T: AIX:4.3:3:AIX 4.3.3-5.2
  203. 65535:64:0:60:M512,N,W%2,N,N,T: AIX:5.1-5.2::AIX 4.3.3-5.2
  204. 65535:64:0:64:M*,N,W1,N,N,T,N,N,S: AIX:5.3:ML1:AIX 5.3 ML1
  205. # ----------------- Linux -------------------
  206. # S1:64:0:44:M*:A: Linux:1.2::Linux 1.2.x (XXX quirks support)
  207. 512:64:0:44:M*: Linux:2.0:3x:Linux 2.0.3x
  208. 16384:64:0:44:M*: Linux:2.0:3x:Linux 2.0.3x
  209. # Endian snafu! Nelson says "ha-ha":
  210. 2:64:0:44:M*: Linux:2.0:3x:Linux 2.0.3x (MkLinux) on Mac
  211. 64:64:0:44:M*: Linux:2.0:3x:Linux 2.0.3x (MkLinux) on Mac
  212. S4:64:1:60:M1360,S,T,N,W0: Linux:google::Linux (Google crawlbot)
  213. S2:64:1:60:M*,S,T,N,W0: Linux:2.4::Linux 2.4 (big boy)
  214. S3:64:1:60:M*,S,T,N,W0: Linux:2.4:18-21:Linux 2.4.18 and newer
  215. S4:64:1:60:M*,S,T,N,W0: Linux:2.4::Linux 2.4/2.6
  216. S4:64:1:60:M*,S,T,N,W0: Linux:2.6::Linux 2.4/2.6
  217. S3:64:1:60:M*,S,T,N,W1: Linux:2.5::Linux 2.5 (sometimes 2.4)
  218. S4:64:1:60:M*,S,T,N,W1: Linux:2.5-2.6::Linux 2.5/2.6
  219. S3:64:1:60:M*,S,T,N,W2: Linux:2.5::Linux 2.5 (sometimes 2.4)
  220. S4:64:1:60:M*,S,T,N,W2: Linux:2.5::Linux 2.5 (sometimes 2.4)
  221. S20:64:1:60:M*,S,T,N,W0: Linux:2.2:20-25:Linux 2.2.20 and newer
  222. S22:64:1:60:M*,S,T,N,W0: Linux:2.2::Linux 2.2
  223. S11:64:1:60:M*,S,T,N,W0: Linux:2.2::Linux 2.2
  224. # Popular cluster config scripts disable timestamps and
  225. # selective ACK:
  226. S4:64:1:48:M1460,N,W0: Linux:2.4:cluster:Linux 2.4 in cluster
  227. # This needs to be investigated. On some systems, WSS
  228. # is selected as a multiple of MTU instead of MSS. I got
  229. # many submissions for this for many late versions of 2.4:
  230. T4:64:1:60:M1412,S,T,N,W0: Linux:2.4::Linux 2.4 (late, uncommon)
  231. # This happens only over loopback, but let's make folks happy:
  232. 32767:64:1:60:M16396,S,T,N,W0: Linux:2.4:lo0:Linux 2.4 (local)
  233. S8:64:1:60:M3884,S,T,N,W0: Linux:2.2:lo0:Linux 2.2 (local)
  234. # Opera visitors:
  235. 16384:64:1:60:M*,S,T,N,W0: Linux:2.2:Opera:Linux 2.2 (Opera?)
  236. 32767:64:1:60:M*,S,T,N,W0: Linux:2.4:Opera:Linux 2.4 (Opera?)
  237. # Some fairly common mods:
  238. S4:64:1:52:M*,N,N,S,N,W0: Linux:2.4:ts:Linux 2.4 w/o timestamps
  239. S22:64:1:52:M*,N,N,S,N,W0: Linux:2.2:ts:Linux 2.2 w/o timestamps
  240. # ----------------- FreeBSD -----------------
  241. 16384:64:1:44:M*: FreeBSD:2.0-2.2::FreeBSD 2.0-4.1
  242. 16384:64:1:44:M*: FreeBSD:3.0-3.5::FreeBSD 2.0-4.1
  243. 16384:64:1:44:M*: FreeBSD:4.0-4.1::FreeBSD 2.0-4.1
  244. 16384:64:1:60:M*,N,W0,N,N,T: FreeBSD:4.4::FreeBSD 4.4
  245. 1024:64:1:60:M*,N,W0,N,N,T: FreeBSD:4.4::FreeBSD 4.4
  246. 57344:64:1:44:M*: FreeBSD:4.6-4.8:noRFC1323:FreeBSD 4.6-4.8 (no RFC1323)
  247. 57344:64:1:60:M*,N,W0,N,N,T: FreeBSD:4.6-4.8::FreeBSD 4.6-4.8
  248. 32768:64:1:60:M*,N,W0,N,N,T: FreeBSD:4.8-4.9::FreeBSD 4.8-5.1 (or MacOS X)
  249. 32768:64:1:60:M*,N,W0,N,N,T: FreeBSD:5.0-5.1::FreeBSD 4.8-5.1 (or MacOS X)
  250. 65535:64:1:60:M*,N,W0,N,N,T: FreeBSD:4.8-4.9::FreeBSD 4.8-5.1 (or MacOS X)
  251. 65535:64:1:60:M*,N,W0,N,N,T: FreeBSD:5.0-5.1::FreeBSD 4.8-5.1 (or MacOS X)
  252. 65535:64:1:60:M*,N,W1,N,N,T: FreeBSD:4.7-4.9::FreeBSD 4.7-5.1
  253. 65535:64:1:60:M*,N,W1,N,N,T: FreeBSD:5.0-5.1::FreeBSD 4.7-5.1
  254. # XXX need quirks support
  255. # 65535:64:1:60:M*,N,W0,N,N,T:Z:FreeBSD:5.1-current (1)
  256. # 65535:64:1:60:M*,N,W1,N,N,T:Z:FreeBSD:5.1-current (2)
  257. # 65535:64:1:60:M*,N,W2,N,N,T:Z:FreeBSD:5.1-current (3)
  258. # 16384:64:1:60:M*,N,N,N,N,N,N,T:FreeBSD:4.4:noTS:FreeBSD 4.4 (w/o timestamps)
  259. # ----------------- NetBSD ------------------
  260. 16384:64:0:60:M*,N,W0,N,N,T: NetBSD:1.3::NetBSD 1.3
  261. 65535:64:0:60:M*,N,W0,N,N,T0: NetBSD:1.6:opera:NetBSD 1.6 (Opera)
  262. 16384:64:0:60:M*,N,W0,N,N,T0: NetBSD:1.6::NetBSD 1.6
  263. 16384:64:1:60:M*,N,W0,N,N,T0: NetBSD:1.6:df:NetBSD 1.6 (DF)
  264. 65535:64:1:60:M*,N,W1,N,N,T0: NetBSD:1.6::NetBSD 1.6W-current (DF)
  265. 65535:64:1:60:M*,N,W0,N,N,T0: NetBSD:1.6::NetBSD 1.6X (DF)
  266. 32768:64:1:60:M*,N,W0,N,N,T0: NetBSD:1.6:randomization:NetBSD 1.6ZH-current (w/ ip_id randomization)
  267. # ----------------- OpenBSD -----------------
  268. 16384:64:0:60:M*,N,W0,N,N,T: OpenBSD:2.6::NetBSD 1.3 (or OpenBSD 2.6)
  269. 16384:64:1:64:M*,N,N,S,N,W0,N,N,T: OpenBSD:3.0-3.5::OpenBSD 3.0-3.5
  270. 16384:64:0:64:M*,N,N,S,N,W0,N,N,T: OpenBSD:3.0-3.5:no-df:OpenBSD 3.0-3.5 (scrub no-df)
  271. 57344:64:1:64:M*,N,N,S,N,W0,N,N,T: OpenBSD:3.3-3.5::OpenBSD 3.3-3.5
  272. 57344:64:0:64:M*,N,N,S,N,W0,N,N,T: OpenBSD:3.3-3.5:no-df:OpenBSD 3.3-3.5 (scrub no-df)
  273. 65535:64:1:64:M*,N,N,S,N,W0,N,N,T: OpenBSD:3.0-3.5:opera:OpenBSD 3.0-3.5 (Opera)
  274. # ----------------- Solaris -----------------
  275. S17:64:1:64:N,W3,N,N,T0,N,N,S,M*: Solaris:8:RFC1323:Solaris 8 RFC1323
  276. S17:64:1:48:N,N,S,M*: Solaris:8::Solaris 8
  277. S17:255:1:44:M*: Solaris:2.5-2.7::Solaris 2.5 to 7
  278. S6:255:1:44:M*: Solaris:2.6-2.7::Solaris 2.6 to 7
  279. S23:255:1:44:M*: Solaris:2.5:1:Solaris 2.5.1
  280. S34:64:1:48:M*,N,N,S: Solaris:2.9::Solaris 9
  281. S44:255:1:44:M*: Solaris:2.7::Solaris 7
  282. 4096:64:0:44:M1460: SunOS:4.1::SunOS 4.1.x
  283. S34:64:1:52:M*,N,W0,N,N,S: Solaris:10::Solaris 10 (beta)
  284. # ----------------- IRIX --------------------
  285. 49152:64:0:44:M*: IRIX:6.4::IRIX 6.4
  286. 61440:64:0:44:M*: IRIX:6.2-6.5::IRIX 6.2-6.5
  287. 49152:64:0:52:M*,N,W2,N,N,S: IRIX:6.5:RFC1323:IRIX 6.5 (RFC1323)
  288. 49152:64:0:52:M*,N,W3,N,N,S: IRIX:6.5:RFC1323:IRIX 6.5 (RFC1323)
  289. 61440:64:0:48:M*,N,N,S: IRIX:6.5:12-21:IRIX 6.5.12 - 6.5.21
  290. 49152:64:0:48:M*,N,N,S: IRIX:6.5:15-21:IRIX 6.5.15 - 6.5.21
  291. # ----------------- Tru64 -------------------
  292. 32768:64:1:48:M*,N,W0: Tru64:4.0::Tru64 4.0 (or OS/2 Warp 4)
  293. 32768:64:0:48:M*,N,W0: Tru64:5.0::Tru64 5.0
  294. 8192:64:0:44:M1460: Tru64:5.1:noRFC1323:Tru64 6.1 (no RFC1323) (or QNX 6)
  295. 61440:64:0:48:M*,N,W0: Tru64:5.1a:JP4:Tru64 v5.1a JP4 (or OpenVMS 7.x on Compaq 5.x stack)
  296. # ----------------- OpenVMS -----------------
  297. 6144:64:1:60:M*,N,W0,N,N,T: OpenVMS:7.2::OpenVMS 7.2 (Multinet 4.4 stack)
  298. # ----------------- MacOS -------------------
  299. # XXX Need EOL tcp opt support
  300. # S2:255:1:48:M*,W0,E:.:MacOS:8.6 classic
  301. # XXX some of these use EOL too
  302. 16616:255:1:48:M*,W0: MacOS:7.3-7.6:OTTCP:MacOS 7.3-8.6 (OTTCP)
  303. 16616:255:1:48:M*,W0: MacOS:8.0-8.6:OTTCP:MacOS 7.3-8.6 (OTTCP)
  304. 16616:255:1:48:M*,N,N,N: MacOS:8.1-8.6:OTTCP:MacOS 8.1-8.6 (OTTCP)
  305. 32768:255:1:48:M*,W0,N: MacOS:9.0-9.2::MacOS 9.0-9.2
  306. 65535:255:1:48:M*,N,N,N,N: MacOS:9.1::MacOS 9.1 (OT 2.7.4)
  307. # ----------------- Windows -----------------
  308. # Windows TCP/IP stack is a mess. For most recent XP, 2000 and
  309. # even 98, the pathlevel, not the actual OS version, is more
  310. # relevant to the signature. They share the same code, so it would
  311. # seem. Luckily for us, almost all Windows 9x boxes have an
  312. # awkward MSS of 536, which I use to tell one from another
  313. # in most difficult cases.
  314. 8192:32:1:44:M*: Windows:3.11::Windows 3.11 (Tucows)
  315. S44:64:1:64:M*,N,W0,N,N,T0,N,N,S: Windows:95::Windows 95
  316. 8192:128:1:64:M*,N,W0,N,N,T0,N,N,S: Windows:95:b:Windows 95b
  317. # There were so many tweaking tools and so many stack versions for
  318. # Windows 98 it is no longer possible to tell them from each other
  319. # without some very serious research. Until then, there's an insane
  320. # number of signatures, for your amusement:
  321. S44:32:1:48:M*,N,N,S: Windows:98:lowTTL:Windows 98 (low TTL)
  322. 8192:32:1:48:M*,N,N,S: Windows:98:lowTTL:Windows 98 (low TTL)
  323. %8192:64:1:48:M536,N,N,S: Windows:98::Windows 98
  324. %8192:128:1:48:M536,N,N,S: Windows:98::Windows 98
  325. S4:64:1:48:M*,N,N,S: Windows:98::Windows 98
  326. S6:64:1:48:M*,N,N,S: Windows:98::Windows 98
  327. S12:64:1:48:M*,N,N,S: Windows:98::Windows 98
  328. T30:64:1:64:M1460,N,W0,N,N,T0,N,N,S: Windows:98::Windows 98
  329. 32767:64:1:48:M*,N,N,S: Windows:98::Windows 98
  330. 37300:64:1:48:M*,N,N,S: Windows:98::Windows 98
  331. 46080:64:1:52:M*,N,W3,N,N,S: Windows:98:RFC1323:Windows 98 (RFC1323)
  332. 65535:64:1:44:M*: Windows:98:noSack:Windows 98 (no sack)
  333. S16:128:1:48:M*,N,N,S: Windows:98::Windows 98
  334. S16:128:1:64:M*,N,W0,N,N,T0,N,N,S: Windows:98::Windows 98
  335. S26:128:1:48:M*,N,N,S: Windows:98::Windows 98
  336. T30:128:1:48:M*,N,N,S: Windows:98::Windows 98
  337. 32767:128:1:52:M*,N,W0,N,N,S: Windows:98::Windows 98
  338. 60352:128:1:48:M*,N,N,S: Windows:98::Windows 98
  339. 60352:128:1:64:M*,N,W2,N,N,T0,N,N,S: Windows:98::Windows 98
  340. # What's with 1414 on NT?
  341. T31:128:1:44:M1414: Windows:NT:4.0:Windows NT 4.0 SP6a
  342. 64512:128:1:44:M1414: Windows:NT:4.0:Windows NT 4.0 SP6a
  343. 8192:128:1:44:M*: Windows:NT:4.0:Windows NT 4.0 (older)
  344. # Windows XP and 2000. Most of the signatures that were
  345. # either dubious or non-specific (no service pack data)
  346. # were deleted and replaced with generics at the end.
  347. 65535:128:1:48:M*,N,N,S: Windows:2000:SP4:Windows 2000 SP4, XP SP1
  348. 65535:128:1:48:M*,N,N,S: Windows:XP:SP1:Windows 2000 SP4, XP SP1
  349. %8192:128:1:48:M*,N,N,S: Windows:2000:SP2+:Windows 2000 SP2, XP SP1 (seldom 98 4.10.2222)
  350. %8192:128:1:48:M*,N,N,S: Windows:XP:SP1:Windows 2000 SP2, XP SP1 (seldom 98 4.10.2222)
  351. S20:128:1:48:M*,N,N,S: Windows:2000::Windows 2000/XP SP3
  352. S20:128:1:48:M*,N,N,S: Windows:XP:SP3:Windows 2000/XP SP3
  353. S45:128:1:48:M*,N,N,S: Windows:2000:SP4:Windows 2000 SP4, XP SP 1
  354. S45:128:1:48:M*,N,N,S: Windows:XP:SP1:Windows 2000 SP4, XP SP 1
  355. 40320:128:1:48:M*,N,N,S: Windows:2000:SP4:Windows 2000 SP4
  356. S6:128:1:48:M*,N,N,S: Windows:2000:SP2:Windows XP, 2000 SP2+
  357. S6:128:1:48:M*,N,N,S: Windows:XP::Windows XP, 2000 SP2+
  358. S12:128:1:48:M*,N,N,S: Windows:XP:SP1:Windows XP SP1
  359. S44:128:1:48:M*,N,N,S: Windows:2000:SP3:Windows Pro SP1, 2000 SP3
  360. S44:128:1:48:M*,N,N,S: Windows:XP:SP1:Windows Pro SP1, 2000 SP3
  361. 64512:128:1:48:M*,N,N,S: Windows:2000:SP3:Windows SP1, 2000 SP3
  362. 64512:128:1:48:M*,N,N,S: Windows:XP:SP1:Windows SP1, 2000 SP3
  363. 32767:128:1:48:M*,N,N,S: Windows:2000:SP4:Windows SP1, 2000 SP4
  364. 32767:128:1:48:M*,N,N,S: Windows:XP:SP1:Windows SP1, 2000 SP4
  365. # Odds, ends, mods:
  366. S52:128:1:48:M1260,N,N,S: Windows:2000:cisco:Windows XP/2000 via Cisco
  367. S52:128:1:48:M1260,N,N,S: Windows:XP:cisco:Windows XP/2000 via Cisco
  368. 65520:128:1:48:M*,N,N,S: Windows:XP::Windows XP bare-bone
  369. 16384:128:1:52:M536,N,W0,N,N,S: Windows:2000:ZoneAlarm:Windows 2000 w/ZoneAlarm?
  370. 2048:255:0:40:.: Windows:.NET::Windows .NET Enterprise Server
  371. # No need to be more specific, it passes:
  372. # *:128:1:48:M*,N,N,S:U:-Windows:XP/2000 while downloading (leak!) XXX quirk
  373. # there is an equiv similar generic sig w/o the quirk
  374. # ----------------- HP/UX -------------------
  375. 32768:64:1:44:M*: HP-UX:B.10.20::HP-UX B.10.20
  376. 32768:64:0:48:M*,W0,N: HP-UX:11.0::HP-UX 11.0
  377. 32768:64:1:48:M*,W0,N: HP-UX:11.10::HP-UX 11.0 or 11.11
  378. 32768:64:1:48:M*,W0,N: HP-UX:11.11::HP-UX 11.0 or 11.11
  379. # Whoa. Hardcore WSS.
  380. 0:64:0:48:M*,W0,N: HP-UX:B.11.00:A:HP-UX B.11.00 A (RFC1323)
  381. # ----------------- RiscOS ------------------
  382. # We don't yet support the ?12 TCP option
  383. #16384:64:1:68:M1460,N,W0,N,N,T,N,N,?12: RISCOS:3.70-4.36::RISC OS 3.70-4.36
  384. 12288:32:0:44:M536: RISC OS:3.70:4.10:RISC OS 3.70 inet 4.10
  385. # XXX quirk
  386. # 4096:64:1:56:M1460,N,N,T:T: RISC OS:3.70:freenet:RISC OS 3.70 freenet 2.00
  387. # ----------------- BSD/OS ------------------
  388. # Once again, power of two WSS is also shared by MacOS X with DF set
  389. 8192: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)
  390. 8192: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)
  391. # ---------------- NewtonOS -----------------
  392. 4096:64:0:44:M1420: NewtonOS:2.1::NewtonOS 2.1
  393. # ---------------- NeXTSTEP -----------------
  394. S8:64:0:44:M512: NeXTSTEP:3.3::NeXTSTEP 3.3
  395. # ------------------ BeOS -------------------
  396. 1024:255:0:48:M*,N,W0: BeOS:5.0-5.1::BeOS 5.0-5.1
  397. 12288:255:0:44:M1402: BeOS:5.0::BeOS 5.0.x
  398. # ------------------ OS/400 -----------------
  399. 8192:64:1:60:M1440,N,W0,N,N,T: OS/400:VR4::OS/400 VR4/R5
  400. 8192:64:1:60:M1440,N,W0,N,N,T: OS/400:VR5::OS/400 VR4/R5
  401. 4096:64:1:60:M1440,N,W0,N,N,T: OS/400:V4R5:CF67032:OS/400 V4R5 + CF67032
  402. # XXX quirk
  403. # 28672:64:0:44:M1460:A:OS/390:?
  404. # ------------------ ULTRIX -----------------
  405. 16384:64:0:40:.: ULTRIX:4.5::ULTRIX 4.5
  406. # ------------------- QNX -------------------
  407. S16:64:0:44:M512: QNX:::QNX demodisk
  408. # ------------------ Novell -----------------
  409. 16384:128:1:44:M1460: Novell:NetWare:5.0:Novel Netware 5.0
  410. 6144:128:1:44:M1460: Novell:IntranetWare:4.11:Novell IntranetWare 4.11
  411. 6144:128:1:44:M1368: Novell:BorderManager::Novell BorderManager ?
  412. 6144:128:1:52:M*,W0,N,S,N,N: Novell:Netware:6:Novell Netware 6 SP3
  413. # ----------------- SCO ------------------
  414. S3:64:1:60:M1460,N,W0,N,N,T: SCO:UnixWare:7.1:SCO UnixWare 7.1
  415. S23:64:1:44:M1380: SCO:OpenServer:5.0:SCO OpenServer 5.0
  416. # ------------------- DOS -------------------
  417. 2048:255:0:44:M536: DOS:WATTCP:1.05:DOS Arachne via WATTCP/1.05
  418. # ------------------ OS/2 -------------------
  419. S56:64:0:44:M512: OS/2:4::OS/2 4
  420. # ----------------- TOPS-20 -----------------
  421. # Another hardcore MSS, one of the ACK leakers hunted down.
  422. # XXX QUIRK 0:64:0:44:M1460:A:TOPS-20:version 7
  423. 0:64:0:44:M1460: TOPS-20:7::TOPS-20 version 7
  424. # ------------------ AMIGA ------------------
  425. # XXX TCP option 12
  426. # S32:64:1:56:M*,N,N,S,N,N,?12:.:AMIGA:3.9 BB2 with Miami stack
  427. # ------------------ Plan9 ------------------
  428. 65535:255:0:48:M1460,W0,N: Plan9:4::Plan9 edition 4
  429. # ----------------- AMIGAOS -----------------
  430. 16384:64:1:48:M1560,N,N,S: AMIGAOS:3.9::AMIGAOS 3.9 BB2 MiamiDX
  431. ###########################################
  432. # Appliance / embedded / other signatures #
  433. ###########################################
  434. # ---------- Firewalls / routers ------------
  435. S12:64:1:44:M1460: @Checkpoint:::Checkpoint (unknown 1)
  436. S12:64:1:48:N,N,S,M1460: @Checkpoint:::Checkpoint (unknown 2)
  437. 4096:32:0:44:M1460: ExtremeWare:4.x::ExtremeWare 4.x
  438. 60352:64:0:52:M1460,N,W2,N,N,S: Clavister:7::Clavister firewall 7.x
  439. # XXX TCP option 12
  440. # S32:64:0:68:M512,N,W0,N,N,T,N,N,?12:.:Nokia:IPSO w/Checkpoint NG FP3
  441. # S16:64:0:68:M1024,N,W0,N,N,T,N,N,?12:.:Nokia:IPSO 3.7 build 026
  442. S4:64:1:60:W0,N,S,T,M1460: FortiNet:FortiGate:50:FortiNet FortiGate 50
  443. 8192:64:1:44:M1460: Eagle:::Eagle Secure Gateway
  444. # ------- Switches and other stuff ----------
  445. 4128:255:0:44:M*: Cisco:::Cisco Catalyst 3500, 7500 etc
  446. S8:255:0:44:M*: Cisco:12008::Cisco 12008
  447. 60352:128:1:64:M1460,N,W2,N,N,T,N,N,S: Alteon:ACEswitch::Alteon ACEswitch
  448. 64512:128:1:44:M1370: Nortel:Contivity Client::Nortel Conectivity Client
  449. # ---------- Caches and whatnots ------------
  450. S4:64:1:52:M1460,N,N,S,N,W0: AOL:web cache::AOL web cache
  451. 32850:64:1:64:N,W1,N,N,T,N,N,S,M*: NetApp:5.x::NetApp Data OnTap 5.x
  452. 16384:64:1:64:M1460,N,N,S,N,W0,N: NetApp:5.3:1:NetApp 5.3.1
  453. 65535:64:0:64:M1460,N,N,S,N,W*,N,N,T: NetApp:5.3-5.5::NetApp 5.3-5.5
  454. 65535:64:0:60:M1460,N,W0,N,N,T: NetApp:CacheFlow::NetApp CacheFlow
  455. 8192:64:1:64:M1460,N,N,S,N,W0,N,N,T: NetApp:5.2:1:NetApp NetCache 5.2.1
  456. 20480:64:1:64:M1460,N,N,S,N,W0,N,N,T: NetApp:4.1::NetApp NetCache4.1
  457. 65535:64:0:60:M1460,N,W0,N,N,T: CacheFlow:4.1::CacheFlow CacheOS 4.1
  458. 8192:64:0:60:M1380,N,N,N,N,N,N,T: CacheFlow:1.1::CacheFlow CacheOS 1.1
  459. S4:64:0:48:M1460,N,N,S: Cisco:Content Engine::Cisco Content Engine
  460. 27085:128:0:40:.: Dell:PowerApp cache::Dell PowerApp (Linux-based)
  461. 65535:255:1:48:N,W1,M1460: Inktomi:crawler::Inktomi crawler
  462. S1:255:1:60:M1460,S,T,N,W0: LookSmart:ZyBorg::LookSmart ZyBorg
  463. 16384:255:0:40:.: Proxyblocker:::Proxyblocker (what's this?)
  464. # ----------- Embedded systems --------------
  465. S9:255:0:44:M536: PalmOS:Tungsten:C:PalmOS Tungsten C
  466. S5:255:0:44:M536: PalmOS:3::PalmOS 3/4
  467. S5:255:0:44:M536: PalmOS:4::PalmOS 3/4
  468. S4:255:0:44:M536: PalmOS:3:5:PalmOS 3.5
  469. 2948:255:0:44:M536: PalmOS:3:5:PalmOS 3.5.3 (Handera)
  470. S29:255:0:44:M536: PalmOS:5::PalmOS 5.0
  471. S23:64:1:64:N,W1,N,N,T,N,N,S,M1460: SymbianOS:7::SymbianOS 7
  472. 8192:255:0:44:M1460: SymbianOS:6048::SymbianOS 6048 (on Nokia 7650?)
  473. 8192:255:0:44:M536: SymbianOS:::SymbianOS (on Nokia 9210?)
  474. # Perhaps S4?
  475. 5840:64:1:60:M1452,S,T,N,W1: Zaurus:3.10::Zaurus 3.10
  476. 32768:128:1:64:M1460,N,W0,N,N,T0,N,N,S: PocketPC:2002::PocketPC 2002
  477. S1:255:0:44:M346: Contiki:1.1:rc0:Contiki 1.1-rc0
  478. 4096:128:0:44:M1460: Sega:Dreamcast:3.0:Sega Dreamcast Dreamkey 3.0
  479. T5:64:0:44:M536: Sega:Dreamcast:HKT-3020:Sega Dreamcast HKT-3020 (browser disc 51027)
  480. S22:64:1:44:M1460: Sony:PS2::Sony Playstation 2 (SOCOM?)
  481. S12:64:0:44:M1452: AXIS:5600:v5.64:AXIS Printer Server 5600 v5.64
  482. ####################
  483. # Fancy signatures #
  484. ####################
  485. 1024:64:0:40:.: *NMAP:syn scan:1:NMAP syn scan (1)
  486. 2048:64:0:40:.: *NMAP:syn scan:2:NMAP syn scan (2)
  487. 3072:64:0:40:.: *NMAP:syn scan:3:NMAP syn scan (3)
  488. 4096:64:0:40:.: *NMAP:syn scan:4:NMAP syn scan (4)
  489. 1024:64:0:60:W10,N,M265,T: *NMAP:OS:1:NMAP OS detection probe (1)
  490. 2048:64:0:60:W10,N,M265,T: *NMAP:OS:2:NMAP OS detection probe (2)
  491. 3072:64:0:60:W10,N,M265,T: *NMAP:OS:3:NMAP OS detection probe (3)
  492. 4096:64:0:60:W10,N,M265,T: *NMAP:OS:4:NMAP OS detection probe (4)
  493. #####################################
  494. # Generic signatures - just in case #
  495. #####################################
  496. #*:64:1:60:M*,N,W*,N,N,T: @FreeBSD:4.0-4.9::FreeBSD 4.x/5.x
  497. #*:64:1:60:M*,N,W*,N,N,T: @FreeBSD:5.0-5.1::FreeBSD 4.x/5.x
  498. *:128:1:52:M*,N,W0,N,N,S: @Windows:XP:RFC1323:Windows XP/2000 (RFC1323 no tstamp)
  499. *:128:1:52:M*,N,W0,N,N,S: @Windows:2000:RFC1323:Windows XP/2000 (RFC1323 no tstamp)
  500. *:128:1:64:M*,N,W0,N,N,T0,N,N,S: @Windows:XP:RFC1323:Windows XP/2000 (RFC1323)
  501. *:128:1:64:M*,N,W0,N,N,T0,N,N,S: @Windows:2000:RFC1323:Windows XP/2000 (RFC1323)
  502. *:128:1:64:M*,N,W*,N,N,T0,N,N,S: @Windows:XP:RFC1323:Windows XP (RFC1323, w+)
  503. *:128:1:48:M536,N,N,S: @Windows:98::Windows 98
  504. *:128:1:48:M*,N,N,S: @Windows:XP::Windows XP/2000
  505. *:128:1:48:M*,N,N,S: @Windows:2000::Windows XP/2000