pf.os revision 135183
1126756Smlaier# $FreeBSD: head/etc/pf.os 135183 2004-09-14 00:30:14Z mlaier $ 2135183Smlaier# $OpenBSD: pf.os,v 1.17 2004/04/28 01:01:27 deraadt 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 25135183Smlaier# operating system package. The last database sync was from a Nov 3 2003 26135183Smlaier# p0f.fp. 27126756Smlaier# 28126756Smlaier# 29126756Smlaier# Each line in this file specifies a single fingerprint. Please read the 30126756Smlaier# information below carefully before attempting to append any signatures 31126756Smlaier# reported as UNKNOWN to this file to avoid mistakes. 32126756Smlaier# 33126756Smlaier# We use the following set metrics for fingerprinting: 34126756Smlaier# 35126756Smlaier# - Window size (WSS) - a highly OS dependent setting used for TCP/IP 36126756Smlaier# performance control (max. amount of data to be sent without ACK). 37126756Smlaier# Some systems use a fixed value for initial packets. On other 38126756Smlaier# systems, it is a multiple of MSS or MTU (MSS+40). In some rare 39126756Smlaier# cases, the value is just arbitrary. 40126756Smlaier# 41126756Smlaier# NEW SIGNATURE: if p0f reported a special value of 'Snn', the number 42126756Smlaier# appears to be a multiple of MSS (MSS*nn); a special value of 'Tnn' 43126756Smlaier# means it is a multiple of MTU ((MSS+40)*nn). Unless you notice the 44126756Smlaier# value of nn is not fixed (unlikely), just copy the Snn or Tnn token 45126756Smlaier# literally. If you know this device has a simple stack and a fixed 46126756Smlaier# MTU, you can however multiply S value by MSS, or T value by MSS+40, 47126756Smlaier# and put it instead of Snn or Tnn. 48126756Smlaier# 49126756Smlaier# If WSS otherwise looks like a fixed value (for example a multiple 50126756Smlaier# of two), or if you can confirm the value is fixed, please quote 51126756Smlaier# it literally. If there's no apparent pattern in WSS chosen, you 52126756Smlaier# should consider wildcarding this value. 53126756Smlaier# 54126756Smlaier# - Overall packet size - a function of all IP and TCP options and bugs. 55126756Smlaier# 56126756Smlaier# NEW SIGNATURE: Copy this value literally. 57126756Smlaier# 58126756Smlaier# - Initial TTL - We check the actual TTL of a received packet. It can't 59126756Smlaier# be higher than the initial TTL, and also shouldn't be dramatically 60126756Smlaier# lower (maximum distance is defined as 40 hops). 61126756Smlaier# 62126756Smlaier# NEW SIGNATURE: *Never* copy TTL from a p0f-reported signature literally. 63126756Smlaier# You need to determine the initial TTL. The best way to do it is to 64126756Smlaier# check the documentation for a remote system, or check its settings. 65126756Smlaier# A fairly good method is to simply round the observed TTL up to 66126756Smlaier# 32, 64, 128, or 255, but it should be noted that some obscure devices 67126756Smlaier# might not use round TTLs (in particular, some shoddy appliances use 68126756Smlaier# "original" initial TTL settings). If not sure, you can see how many 69126756Smlaier# hops you're away from the remote party with traceroute or mtr. 70126756Smlaier# 71126756Smlaier# - Don't fragment flag (DF) - some modern OSes set this to implement PMTU 72126756Smlaier# discovery. Others do not bother. 73126756Smlaier# 74126756Smlaier# NEW SIGNATURE: Copy this value literally. 75126756Smlaier# 76126756Smlaier# - Maximum segment size (MSS) - this setting is usually link-dependent. P0f 77126756Smlaier# uses it to determine link type of the remote host. 78126756Smlaier# 79126756Smlaier# NEW SIGNATURE: Always wildcard this value, except for rare cases when 80126756Smlaier# you have an appliance with a fixed value, know the system supports only 81126756Smlaier# a very limited number of network interface types, or know the system 82126756Smlaier# is using a value it pulled out of nowhere. Specific unique MSS 83126756Smlaier# can be used to tell Google crawlbots from the rest of the population. 84126756Smlaier# 85126756Smlaier# - Window scaling (WSCALE) - this feature is used to scale WSS. 86126756Smlaier# It extends the size of a TCP/IP window to 32 bits. Some modern 87126756Smlaier# systems implement this feature. 88126756Smlaier# 89126756Smlaier# NEW SIGNATURE: Observe several signatures. Initial WSCALE is often set 90126756Smlaier# to zero or other low value. There's usually no need to wildcard this 91126756Smlaier# parameter. 92126756Smlaier# 93126756Smlaier# - Timestamp - some systems that implement timestamps set them to 94126756Smlaier# zero in the initial SYN. This case is detected and handled appropriately. 95126756Smlaier# 96126756Smlaier# - Selective ACK permitted - a flag set by systems that implement 97126756Smlaier# selective ACK functionality. 98126756Smlaier# 99126756Smlaier# - The sequence of TCP all options (MSS, window scaling, selective ACK 100126756Smlaier# permitted, timestamp, NOP). Other than the options previously 101126756Smlaier# discussed, p0f also checks for timestamp option (a silly 102126756Smlaier# extension to broadcast your uptime ;-), NOP options (used for 103126756Smlaier# header padding) and sackOK option (selective ACK feature). 104126756Smlaier# 105126756Smlaier# NEW SIGNATURE: Copy the sequence literally. 106126756Smlaier# 107126756Smlaier# To wildcard any value (except for initial TTL or TCP options), replace 108126756Smlaier# it with '*'. You can also use a modulo operator to match any values 109126756Smlaier# that divide by nnn - '%nnn'. 110126756Smlaier# 111126756Smlaier# Fingerprint entry format: 112126756Smlaier# 113126756Smlaier# wwww:ttt:D:ss:OOO...:OS:Version:Subtype:Details 114126756Smlaier# 115126756Smlaier# wwww - window size (can be *, %nnn, Snn or Tnn). The special values 116126756Smlaier# "S" and "T" which are a multiple of MSS or a multiple of MTU 117126756Smlaier# respectively. 118126756Smlaier# ttt - initial TTL 119126756Smlaier# D - don't fragment bit (0 - not set, 1 - set) 120126756Smlaier# ss - overall SYN packet size 121126756Smlaier# OOO - option value and order specification (see below) 122126756Smlaier# OS - OS genre (Linux, Solaris, Windows) 123126756Smlaier# Version - OS Version (2.0.27 on x86, etc) 124126756Smlaier# Subtype - OS subtype or patchlevel (SP3, lo0) 125126756Smlaier# details - Generic OS details 126126756Smlaier# 127126756Smlaier# If OS genre starts with '*', p0f will not show distance, link type 128126756Smlaier# and timestamp data. It is useful for userland TCP/IP stacks of 129126756Smlaier# network scanners and so on, where many settings are randomized or 130126756Smlaier# bogus. 131126756Smlaier# 132126756Smlaier# If OS genre starts with @, it denotes an approximate hit for a group 133126756Smlaier# of operating systems (signature reporting still enabled in this case). 134126756Smlaier# Use this feature at the end of this file to catch cases for which 135126756Smlaier# you don't have a precise match, but can tell it's Windows or FreeBSD 136126756Smlaier# or whatnot by looking at, say, flag layout alone. 137126756Smlaier# 138126756Smlaier# Option block description is a list of comma or space separated 139126756Smlaier# options in the order they appear in the packet: 140126756Smlaier# 141126756Smlaier# N - NOP option 142126756Smlaier# Wnnn - window scaling option, value nnn (or * or %nnn) 143126756Smlaier# Mnnn - maximum segment size option, value nnn (or * or %nnn) 144126756Smlaier# S - selective ACK OK 145135183Smlaier# T - timestamp 146135183Smlaier# T0 - timestamp with a zero value 147126756Smlaier# 148126756Smlaier# To denote no TCP options, use a single '.'. 149126756Smlaier# 150126756Smlaier# Please report any additions to this file, or any inaccuracies or 151126756Smlaier# problems spotted, to the maintainers: lcamtuf@coredump.cx, 152126756Smlaier# frantzen@openbsd.org and bugs@openbsd.org with a tcpdump packet 153126756Smlaier# capture of the relevant SYN packet(s) 154126756Smlaier# 155135183Smlaier# A test and submission page is available at 156135183Smlaier# http://lcamtuf.coredump.cx/p0f-help/ 157135183Smlaier# 158135183Smlaier# 159126756Smlaier# WARNING WARNING WARNING 160126756Smlaier# ----------------------- 161126756Smlaier# 162126756Smlaier# Do not add a system X as OS Y just because NMAP says so. It is often 163126756Smlaier# the case that X is a NAT firewall. While nmap is talking to the 164126756Smlaier# device itself, p0f is fingerprinting the guy behind the firewall 165126756Smlaier# instead. 166126756Smlaier# 167126756Smlaier# When in doubt, use common sense, don't add something that looks like 168126756Smlaier# a completely different system as Linux or FreeBSD or LinkSys router. 169126756Smlaier# Check DNS name, establish a connection to the remote host and look 170126756Smlaier# at SYN+ACK - does it look similar? 171126756Smlaier# 172126756Smlaier# Some users tweak their TCP/IP settings - enable or disable RFC1323 173126756Smlaier# functionality, enable or disable timestamps or selective ACK, 174126756Smlaier# disable PMTU discovery, change MTU and so on. Always compare a new rule 175126756Smlaier# to other fingerprints for this system, and verify the system isn't 176126756Smlaier# "customized" before adding it. It is OK to add signature variants 177126756Smlaier# caused by a commonly used software (personal firewalls, security 178126756Smlaier# packages, etc), but it makes no sense to try to add every single 179126756Smlaier# possible /proc/sys/net/ipv4 tweak on Linux or so. 180126756Smlaier# 181126756Smlaier# KEEP IN MIND: Some packet firewalls configured to normalize outgoing 182126756Smlaier# traffic (OpenBSD pf with "scrub" enabled, for example) will, well, 183126756Smlaier# normalize packets. Signatures will not correspond to the originating 184126756Smlaier# system (and probably not quite to the firewall either). 185126756Smlaier# 186126756Smlaier# NOTE: Try to keep this file in some reasonable order, from most to 187126756Smlaier# least likely systems. This will speed up operation. Also keep most 188126756Smlaier# generic and broad rules near the end. 189126756Smlaier# 190126756Smlaier 191126756Smlaier########################## 192126756Smlaier# Standard OS signatures # 193126756Smlaier########################## 194126756Smlaier 195126756Smlaier# ----------------- AIX --------------------- 196126756Smlaier 197126756Smlaier# AIX is first because its signatures are close to NetBSD, MacOS X and 198126756Smlaier# Linux 2.0, but it uses a fairly rare MSSes, at least sometimes... 199126756Smlaier# This is a shoddy hack, though. 200126756Smlaier 201135183Smlaier45046:64:0:44:M*: AIX:4.3::AIX 4.3 202126756Smlaier16384:64:0:44:M512: AIX:4.3:2-3:AIX 4.3.2 and earlier 203126756Smlaier 204126756Smlaier16384:64:0:60:M512,N,W%2,N,N,T: AIX:4.3:3:AIX 4.3.3-5.2 205126756Smlaier16384:64:0:60:M512,N,W%2,N,N,T: AIX:5.1-5.2::AIX 4.3.3-5.2 206126756Smlaier32768:64:0:60:M512,N,W%2,N,N,T: AIX:4.3:3:AIX 4.3.3-5.2 207126756Smlaier32768:64:0:60:M512,N,W%2,N,N,T: AIX:5.1-5.2::AIX 4.3.3-5.2 208126756Smlaier65535:64:0:60:M512,N,W%2,N,N,T: AIX:4.3:3:AIX 4.3.3-5.2 209126756Smlaier65535:64:0:60:M512,N,W%2,N,N,T: AIX:5.1-5.2::AIX 4.3.3-5.2 210126756Smlaier65535:64:0:64:M*,N,W1,N,N,T,N,N,S: AIX:5.3:ML1:AIX 5.3 ML1 211126756Smlaier 212126756Smlaier# ----------------- Linux ------------------- 213126756Smlaier 214135183Smlaier# S1:64:0:44:M*:A: Linux:1.2::Linux 1.2.x (XXX quirks support) 215126756Smlaier512:64:0:44:M*: Linux:2.0:3x:Linux 2.0.3x 216126756Smlaier16384:64:0:44:M*: Linux:2.0:3x:Linux 2.0.3x 217126756Smlaier 218126756Smlaier# Endian snafu! Nelson says "ha-ha": 219126756Smlaier2:64:0:44:M*: Linux:2.0:3x:Linux 2.0.3x (MkLinux) on Mac 220126756Smlaier64:64:0:44:M*: Linux:2.0:3x:Linux 2.0.3x (MkLinux) on Mac 221126756Smlaier 222126756Smlaier 223126756SmlaierS4:64:1:60:M1360,S,T,N,W0: Linux:google::Linux (Google crawlbot) 224126756Smlaier 225126756SmlaierS2:64:1:60:M*,S,T,N,W0: Linux:2.4::Linux 2.4 (big boy) 226126756SmlaierS3:64:1:60:M*,S,T,N,W0: Linux:2.4:18-21:Linux 2.4.18 and newer 227126756SmlaierS4:64:1:60:M*,S,T,N,W0: Linux:2.4::Linux 2.4/2.6 228126756SmlaierS4:64:1:60:M*,S,T,N,W0: Linux:2.6::Linux 2.4/2.6 229126756Smlaier 230135183SmlaierS3:64:1:60:M*,S,T,N,W1: Linux:2.5::Linux 2.5 (sometimes 2.4) 231126756SmlaierS4:64:1:60:M*,S,T,N,W1: Linux:2.5-2.6::Linux 2.5/2.6 232135183SmlaierS3:64:1:60:M*,S,T,N,W2: Linux:2.5::Linux 2.5 (sometimes 2.4) 233135183SmlaierS4:64:1:60:M*,S,T,N,W2: Linux:2.5::Linux 2.5 (sometimes 2.4) 234126756Smlaier 235126756SmlaierS20:64:1:60:M*,S,T,N,W0: Linux:2.2:20-25:Linux 2.2.20 and newer 236126756SmlaierS22:64:1:60:M*,S,T,N,W0: Linux:2.2::Linux 2.2 237126756SmlaierS11:64:1:60:M*,S,T,N,W0: Linux:2.2::Linux 2.2 238126756Smlaier 239126756Smlaier# Popular cluster config scripts disable timestamps and 240126756Smlaier# selective ACK: 241126756SmlaierS4:64:1:48:M1460,N,W0: Linux:2.4:cluster:Linux 2.4 in cluster 242126756Smlaier 243126756Smlaier# This needs to be investigated. On some systems, WSS 244126756Smlaier# is selected as a multiple of MTU instead of MSS. I got 245126756Smlaier# many submissions for this for many late versions of 2.4: 246126756SmlaierT4:64:1:60:M1412,S,T,N,W0: Linux:2.4::Linux 2.4 (late, uncommon) 247126756Smlaier 248126756Smlaier# This happens only over loopback, but let's make folks happy: 249126756Smlaier32767:64:1:60:M16396,S,T,N,W0: Linux:2.4:lo0:Linux 2.4 (local) 250126756SmlaierS8:64:1:60:M3884,S,T,N,W0: Linux:2.2:lo0:Linux 2.2 (local) 251126756Smlaier 252126756Smlaier# Opera visitors: 253126756Smlaier16384:64:1:60:M*,S,T,N,W0: Linux:2.2:Opera:Linux 2.2 (Opera?) 254126756Smlaier32767:64:1:60:M*,S,T,N,W0: Linux:2.4:Opera:Linux 2.4 (Opera?) 255126756Smlaier 256126756Smlaier# Some fairly common mods: 257126756SmlaierS4:64:1:52:M*,N,N,S,N,W0: Linux:2.4:ts:Linux 2.4 w/o timestamps 258126756SmlaierS22:64:1:52:M*,N,N,S,N,W0: Linux:2.2:ts:Linux 2.2 w/o timestamps 259126756Smlaier 260126756Smlaier 261126756Smlaier# ----------------- FreeBSD ----------------- 262126756Smlaier 263126756Smlaier16384:64:1:44:M*: FreeBSD:2.0-2.2::FreeBSD 2.0-4.1 264126756Smlaier16384:64:1:44:M*: FreeBSD:3.0-3.5::FreeBSD 2.0-4.1 265126756Smlaier16384:64:1:44:M*: FreeBSD:4.0-4.1::FreeBSD 2.0-4.1 266126756Smlaier16384:64:1:60:M*,N,W0,N,N,T: FreeBSD:4.4::FreeBSD 4.4 267126756Smlaier 268126756Smlaier1024:64:1:60:M*,N,W0,N,N,T: FreeBSD:4.4::FreeBSD 4.4 269126756Smlaier 270126756Smlaier57344:64:1:44:M*: FreeBSD:4.6-4.8:noRFC1323:FreeBSD 4.6-4.8 (no RFC1323) 271126756Smlaier57344:64:1:60:M*,N,W0,N,N,T: FreeBSD:4.6-4.8::FreeBSD 4.6-4.8 272126756Smlaier 273126756Smlaier32768:64:1:60:M*,N,W0,N,N,T: FreeBSD:4.8-4.9::FreeBSD 4.8-5.1 (or MacOS X) 274126756Smlaier32768:64:1:60:M*,N,W0,N,N,T: FreeBSD:5.0-5.1::FreeBSD 4.8-5.1 (or MacOS X) 275126756Smlaier65535:64:1:60:M*,N,W0,N,N,T: FreeBSD:4.8-4.9::FreeBSD 4.8-5.1 (or MacOS X) 276126756Smlaier65535:64:1:60:M*,N,W0,N,N,T: FreeBSD:5.0-5.1::FreeBSD 4.8-5.1 (or MacOS X) 277126756Smlaier65535:64:1:60:M*,N,W1,N,N,T: FreeBSD:4.7-4.9::FreeBSD 4.7-5.1 278126756Smlaier65535:64:1:60:M*,N,W1,N,N,T: FreeBSD:5.0-5.1::FreeBSD 4.7-5.1 279126756Smlaier 280135183Smlaier# XXX need quirks support 281135183Smlaier# 65535:64:1:60:M*,N,W0,N,N,T:Z:FreeBSD:5.1-current (1) 282135183Smlaier# 65535:64:1:60:M*,N,W1,N,N,T:Z:FreeBSD:5.1-current (2) 283135183Smlaier# 65535:64:1:60:M*,N,W2,N,N,T:Z:FreeBSD:5.1-current (3) 284135183Smlaier 285126756Smlaier# 16384:64:1:60:M*,N,N,N,N,N,N,T:FreeBSD:4.4:noTS:FreeBSD 4.4 (w/o timestamps) 286126756Smlaier 287126756Smlaier# ----------------- NetBSD ------------------ 288126756Smlaier 289135183Smlaier16384:64:0:60:M*,N,W0,N,N,T: NetBSD:1.3::NetBSD 1.3 290126756Smlaier65535:64:0:60:M*,N,W0,N,N,T0: NetBSD:1.6:opera:NetBSD 1.6 (Opera) 291126756Smlaier16384:64:0:60:M*,N,W0,N,N,T0: NetBSD:1.6::NetBSD 1.6 292126756Smlaier16384:64:1:60:M*,N,W0,N,N,T0: NetBSD:1.6:df:NetBSD 1.6 (DF) 293126756Smlaier65535:64:1:60:M*,N,W1,N,N,T0: NetBSD:1.6::NetBSD 1.6W-current (DF) 294135183Smlaier65535:64:1:60:M*,N,W0,N,N,T0: NetBSD:1.6::NetBSD 1.6X (DF) 295135183Smlaier32768:64:1:60:M*,N,W0,N,N,T0: NetBSD:1.6:randomization:NetBSD 1.6ZH-current (w/ ip_id randomization) 296126756Smlaier 297126756Smlaier# ----------------- OpenBSD ----------------- 298126756Smlaier 299126756Smlaier16384:64:0:60:M*,N,W0,N,N,T: OpenBSD:2.6::NetBSD 1.3 (or OpenBSD 2.6) 300135183Smlaier16384:64:1:64:M*,N,N,S,N,W0,N,N,T: OpenBSD:3.0-3.5::OpenBSD 3.0-3.5 301135183Smlaier16384: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) 302135183Smlaier57344:64:1:64:M*,N,N,S,N,W0,N,N,T: OpenBSD:3.3-3.5::OpenBSD 3.3-3.5 303135183Smlaier57344: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) 304126756Smlaier 305135183Smlaier65535:64:1:64:M*,N,N,S,N,W0,N,N,T: OpenBSD:3.0-3.5:opera:OpenBSD 3.0-3.5 (Opera) 306126756Smlaier 307126756Smlaier# ----------------- Solaris ----------------- 308126756Smlaier 309126756SmlaierS17:64:1:64:N,W3,N,N,T0,N,N,S,M*: Solaris:8:RFC1323:Solaris 8 RFC1323 310126756SmlaierS17:64:1:48:N,N,S,M*: Solaris:8::Solaris 8 311126756SmlaierS17:255:1:44:M*: Solaris:2.5-2.7::Solaris 2.5 to 7 312126756Smlaier 313126756SmlaierS6:255:1:44:M*: Solaris:2.6-2.7::Solaris 2.6 to 7 314126756SmlaierS23:255:1:44:M*: Solaris:2.5:1:Solaris 2.5.1 315126756SmlaierS34:64:1:48:M*,N,N,S: Solaris:2.9::Solaris 9 316126756SmlaierS44:255:1:44:M*: Solaris:2.7::Solaris 7 317126756Smlaier 318135183Smlaier4096:64:0:44:M1460: SunOS:4.1::SunOS 4.1.x 319135183Smlaier 320135183SmlaierS34:64:1:52:M*,N,W0,N,N,S: Solaris:10::Solaris 10 (beta) 321135183Smlaier 322126756Smlaier# ----------------- IRIX -------------------- 323126756Smlaier 324126756Smlaier49152:64:0:44:M*: IRIX:6.4::IRIX 6.4 325126756Smlaier61440:64:0:44:M*: IRIX:6.2-6.5::IRIX 6.2-6.5 326126756Smlaier49152:64:0:52:M*,N,W2,N,N,S: IRIX:6.5:RFC1323:IRIX 6.5 (RFC1323) 327126756Smlaier49152:64:0:52:M*,N,W3,N,N,S: IRIX:6.5:RFC1323:IRIX 6.5 (RFC1323) 328126756Smlaier 329126756Smlaier61440:64:0:48:M*,N,N,S: IRIX:6.5:12-21:IRIX 6.5.12 - 6.5.21 330126756Smlaier49152:64:0:48:M*,N,N,S: IRIX:6.5:15-21:IRIX 6.5.15 - 6.5.21 331126756Smlaier 332126756Smlaier# ----------------- Tru64 ------------------- 333126756Smlaier 334135183Smlaier32768:64:1:48:M*,N,W0: Tru64:4.0::Tru64 4.0 (or OS/2 Warp 4) 335126756Smlaier32768:64:0:48:M*,N,W0: Tru64:5.0::Tru64 5.0 336126756Smlaier8192:64:0:44:M1460: Tru64:5.1:noRFC1323:Tru64 6.1 (no RFC1323) (or QNX 6) 337126756Smlaier61440:64:0:48:M*,N,W0: Tru64:5.1a:JP4:Tru64 v5.1a JP4 (or OpenVMS 7.x on Compaq 5.x stack) 338126756Smlaier 339126756Smlaier# ----------------- OpenVMS ----------------- 340126756Smlaier 341126756Smlaier6144:64:1:60:M*,N,W0,N,N,T: OpenVMS:7.2::OpenVMS 7.2 (Multinet 4.4 stack) 342126756Smlaier 343126756Smlaier# ----------------- MacOS ------------------- 344126756Smlaier 345135183Smlaier# XXX Need EOL tcp opt support 346135183Smlaier# S2:255:1:48:M*,W0,E:.:MacOS:8.6 classic 347135183Smlaier 348135183Smlaier# XXX some of these use EOL too 349126756Smlaier16616:255:1:48:M*,W0: MacOS:7.3-7.6:OTTCP:MacOS 7.3-8.6 (OTTCP) 350126756Smlaier16616:255:1:48:M*,W0: MacOS:8.0-8.6:OTTCP:MacOS 7.3-8.6 (OTTCP) 351135183Smlaier16616:255:1:48:M*,N,N,N: MacOS:8.1-8.6:OTTCP:MacOS 8.1-8.6 (OTTCP) 352135183Smlaier32768:255:1:48:M*,W0,N: MacOS:9.0-9.2::MacOS 9.0-9.2 353135183Smlaier65535:255:1:48:M*,N,N,N,N: MacOS:9.1::MacOS 9.1 (OT 2.7.4) 354126756Smlaier 355135183Smlaier 356126756Smlaier# ----------------- Windows ----------------- 357126756Smlaier 358135183Smlaier# Windows TCP/IP stack is a mess. For most recent XP, 2000 and 359135183Smlaier# even 98, the pathlevel, not the actual OS version, is more 360135183Smlaier# relevant to the signature. They share the same code, so it would 361135183Smlaier# seem. Luckily for us, almost all Windows 9x boxes have an 362135183Smlaier# awkward MSS of 536, which I use to tell one from another 363135183Smlaier# in most difficult cases. 364126756Smlaier 365135183Smlaier8192:32:1:44:M*: Windows:3.11::Windows 3.11 (Tucows) 366135183SmlaierS44:64:1:64:M*,N,W0,N,N,T0,N,N,S: Windows:95::Windows 95 367135183Smlaier8192:128:1:64:M*,N,W0,N,N,T0,N,N,S: Windows:95:b:Windows 95b 368126756Smlaier 369135183Smlaier# There were so many tweaking tools and so many stack versions for 370135183Smlaier# Windows 98 it is no longer possible to tell them from each other 371135183Smlaier# without some very serious research. Until then, there's an insane 372135183Smlaier# number of signatures, for your amusement: 373126756Smlaier 374135183SmlaierS44:32:1:48:M*,N,N,S: Windows:98:lowTTL:Windows 98 (low TTL) 375135183Smlaier8192:32:1:48:M*,N,N,S: Windows:98:lowTTL:Windows 98 (low TTL) 376135183Smlaier%8192:64:1:48:M536,N,N,S: Windows:98::Windows 98 377135183Smlaier%8192:128:1:48:M536,N,N,S: Windows:98::Windows 98 378126756SmlaierS4:64:1:48:M*,N,N,S: Windows:98::Windows 98 379126756SmlaierS6:64:1:48:M*,N,N,S: Windows:98::Windows 98 380126756SmlaierS12:64:1:48:M*,N,N,S: Windows:98::Windows 98 381135183SmlaierT30:64:1:64:M1460,N,W0,N,N,T0,N,N,S: Windows:98::Windows 98 382126756Smlaier32767:64:1:48:M*,N,N,S: Windows:98::Windows 98 383126756Smlaier37300:64:1:48:M*,N,N,S: Windows:98::Windows 98 384126756Smlaier46080:64:1:52:M*,N,W3,N,N,S: Windows:98:RFC1323:Windows 98 (RFC1323) 385135183Smlaier65535:64:1:44:M*: Windows:98:noSack:Windows 98 (no sack) 386126756SmlaierS16:128:1:48:M*,N,N,S: Windows:98::Windows 98 387126756SmlaierS16:128:1:64:M*,N,W0,N,N,T0,N,N,S: Windows:98::Windows 98 388126756SmlaierS26:128:1:48:M*,N,N,S: Windows:98::Windows 98 389126756SmlaierT30:128:1:48:M*,N,N,S: Windows:98::Windows 98 390126756Smlaier32767:128:1:52:M*,N,W0,N,N,S: Windows:98::Windows 98 391126756Smlaier60352:128:1:48:M*,N,N,S: Windows:98::Windows 98 392126756Smlaier60352:128:1:64:M*,N,W2,N,N,T0,N,N,S: Windows:98::Windows 98 393126756Smlaier 394135183Smlaier# What's with 1414 on NT? 395135183SmlaierT31:128:1:44:M1414: Windows:NT:4.0:Windows NT 4.0 SP6a 396126756Smlaier64512:128:1:44:M1414: Windows:NT:4.0:Windows NT 4.0 SP6a 397126756Smlaier8192:128:1:44:M*: Windows:NT:4.0:Windows NT 4.0 (older) 398130151Sschweikh 399126756Smlaier# Windows XP and 2000. Most of the signatures that were 400126756Smlaier# either dubious or non-specific (no service pack data) 401126756Smlaier# were deleted and replaced with generics at the end. 402126756Smlaier 403126756Smlaier65535:128:1:48:M*,N,N,S: Windows:2000:SP4:Windows 2000 SP4, XP SP1 404126756Smlaier65535:128:1:48:M*,N,N,S: Windows:XP:SP1:Windows 2000 SP4, XP SP1 405135183Smlaier%8192:128:1:48:M*,N,N,S: Windows:2000:SP2+:Windows 2000 SP2, XP SP1 (seldom 98 4.10.2222) 406135183Smlaier%8192:128:1:48:M*,N,N,S: Windows:XP:SP1:Windows 2000 SP2, XP SP1 (seldom 98 4.10.2222) 407135183SmlaierS20:128:1:48:M*,N,N,S: Windows:2000::Windows 2000/XP SP3 408135183SmlaierS20:128:1:48:M*,N,N,S: Windows:XP:SP3:Windows 2000/XP SP3 409135183SmlaierS45:128:1:48:M*,N,N,S: Windows:2000:SP4:Windows 2000 SP4, XP SP 1 410135183SmlaierS45:128:1:48:M*,N,N,S: Windows:XP:SP1:Windows 2000 SP4, XP SP 1 411135183Smlaier40320:128:1:48:M*,N,N,S: Windows:2000:SP4:Windows 2000 SP4 412126756Smlaier 413135183SmlaierS6:128:1:48:M*,N,N,S: Windows:2000:SP2:Windows XP, 2000 SP2+ 414135183SmlaierS6:128:1:48:M*,N,N,S: Windows:XP::Windows XP, 2000 SP2+ 415135183SmlaierS12:128:1:48:M*,N,N,S: Windows:XP:SP1:Windows XP SP1 416135183SmlaierS44:128:1:48:M*,N,N,S: Windows:2000:SP3:Windows Pro SP1, 2000 SP3 417135183SmlaierS44:128:1:48:M*,N,N,S: Windows:XP:SP1:Windows Pro SP1, 2000 SP3 418135183Smlaier64512:128:1:48:M*,N,N,S: Windows:2000:SP3:Windows SP1, 2000 SP3 419135183Smlaier64512:128:1:48:M*,N,N,S: Windows:XP:SP1:Windows SP1, 2000 SP3 420135183Smlaier32767:128:1:48:M*,N,N,S: Windows:2000:SP4:Windows SP1, 2000 SP4 421135183Smlaier32767:128:1:48:M*,N,N,S: Windows:XP:SP1:Windows SP1, 2000 SP4 422135183Smlaier 423126756Smlaier# Odds, ends, mods: 424126756Smlaier 425135183SmlaierS52:128:1:48:M1260,N,N,S: Windows:2000:cisco:Windows XP/2000 via Cisco 426135183SmlaierS52:128:1:48:M1260,N,N,S: Windows:XP:cisco:Windows XP/2000 via Cisco 427135183Smlaier65520:128:1:48:M*,N,N,S: Windows:XP::Windows XP bare-bone 428135183Smlaier16384:128:1:52:M536,N,W0,N,N,S: Windows:2000:ZoneAlarm:Windows 2000 w/ZoneAlarm? 429135183Smlaier2048:255:0:40:.: Windows:.NET::Windows .NET Enterprise Server 430126756Smlaier 431135183Smlaier# No need to be more specific, it passes: 432135183Smlaier# *:128:1:48:M*,N,N,S:U:-Windows:XP/2000 while downloading (leak!) XXX quirk 433135183Smlaier# there is an equiv similar generic sig w/o the quirk 434126756Smlaier 435126756Smlaier# ----------------- HP/UX ------------------- 436126756Smlaier 437126756Smlaier32768:64:1:44:M*: HP-UX:B.10.20::HP-UX B.10.20 438126756Smlaier32768:64:0:48:M*,W0,N: HP-UX:11.0::HP-UX 11.0 439126756Smlaier32768:64:1:48:M*,W0,N: HP-UX:11.10::HP-UX 11.0 or 11.11 440126756Smlaier32768:64:1:48:M*,W0,N: HP-UX:11.11::HP-UX 11.0 or 11.11 441126756Smlaier 442126756Smlaier# Whoa. Hardcore WSS. 443126756Smlaier0:64:0:48:M*,W0,N: HP-UX:B.11.00:A:HP-UX B.11.00 A (RFC1323) 444126756Smlaier 445126756Smlaier 446126756Smlaier# ----------------- RiscOS ------------------ 447126756Smlaier 448126756Smlaier# We don't yet support the ?12 TCP option 449126756Smlaier#16384:64:1:68:M1460,N,W0,N,N,T,N,N,?12: RISCOS:3.70-4.36::RISC OS 3.70-4.36 450135183Smlaier12288:32:0:44:M536: RISC OS:3.70:4.10:RISC OS 3.70 inet 4.10 451126756Smlaier 452135183Smlaier# XXX quirk 453135183Smlaier# 4096:64:1:56:M1460,N,N,T:T: RISC OS:3.70:freenet:RISC OS 3.70 freenet 2.00 454135183Smlaier 455135183Smlaier 456126756Smlaier# ----------------- BSD/OS ------------------ 457126756Smlaier 458126756Smlaier# Once again, power of two WSS is also shared by MacOS X with DF set 459126756Smlaier8192: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) 460126756Smlaier8192: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) 461126756Smlaier 462126756Smlaier 463126756Smlaier# ---------------- NewtonOS ----------------- 464126756Smlaier 465126756Smlaier4096:64:0:44:M1420: NewtonOS:2.1::NewtonOS 2.1 466126756Smlaier 467126756Smlaier# ---------------- NeXTSTEP ----------------- 468126756Smlaier 469126756SmlaierS8:64:0:44:M512: NeXTSTEP:3.3::NeXTSTEP 3.3 470126756Smlaier 471126756Smlaier# ------------------ BeOS ------------------- 472126756Smlaier 473126756Smlaier1024:255:0:48:M*,N,W0: BeOS:5.0-5.1::BeOS 5.0-5.1 474126756Smlaier12288:255:0:44:M1402: BeOS:5.0::BeOS 5.0.x 475126756Smlaier 476126756Smlaier# ------------------ OS/400 ----------------- 477126756Smlaier 478126756Smlaier8192:64:1:60:M1440,N,W0,N,N,T: OS/400:VR4::OS/400 VR4/R5 479126756Smlaier8192:64:1:60:M1440,N,W0,N,N,T: OS/400:VR5::OS/400 VR4/R5 480126756Smlaier4096:64:1:60:M1440,N,W0,N,N,T: OS/400:V4R5:CF67032:OS/400 V4R5 + CF67032 481126756Smlaier 482135183Smlaier# XXX quirk 483135183Smlaier# 28672:64:0:44:M1460:A:OS/390:? 484126756Smlaier 485126756Smlaier# ------------------ ULTRIX ----------------- 486126756Smlaier 487126756Smlaier16384:64:0:40:.: ULTRIX:4.5::ULTRIX 4.5 488126756Smlaier 489126756Smlaier# ------------------- QNX ------------------- 490126756Smlaier 491126756SmlaierS16:64:0:44:M512: QNX:::QNX demodisk 492126756Smlaier 493126756Smlaier# ------------------ Novell ----------------- 494126756Smlaier 495126756Smlaier16384:128:1:44:M1460: Novell:NetWare:5.0:Novel Netware 5.0 496126756Smlaier6144:128:1:44:M1460: Novell:IntranetWare:4.11:Novell IntranetWare 4.11 497135183Smlaier6144:128:1:44:M1368: Novell:BorderManager::Novell BorderManager ? 498126756Smlaier 499135183Smlaier6144:128:1:52:M*,W0,N,S,N,N: Novell:Netware:6:Novell Netware 6 SP3 500135183Smlaier 501135183Smlaier 502126756Smlaier# ----------------- SCO ------------------ 503135183SmlaierS3:64:1:60:M1460,N,W0,N,N,T: SCO:UnixWare:7.1:SCO UnixWare 7.1 504135183SmlaierS23:64:1:44:M1380: SCO:OpenServer:5.0:SCO OpenServer 5.0 505126756Smlaier 506126756Smlaier# ------------------- DOS ------------------- 507126756Smlaier 508126756Smlaier2048:255:0:44:M536: DOS:WATTCP:1.05:DOS Arachne via WATTCP/1.05 509126756Smlaier 510135183Smlaier# ------------------ OS/2 ------------------- 511135183Smlaier 512135183SmlaierS56:64:0:44:M512: OS/2:4::OS/2 4 513135183Smlaier 514135183Smlaier# ----------------- TOPS-20 ----------------- 515135183Smlaier 516135183Smlaier# Another hardcore MSS, one of the ACK leakers hunted down. 517135183Smlaier# XXX QUIRK 0:64:0:44:M1460:A:TOPS-20:version 7 518135183Smlaier0:64:0:44:M1460: TOPS-20:7::TOPS-20 version 7 519135183Smlaier 520135183Smlaier# ------------------ AMIGA ------------------ 521135183Smlaier 522135183Smlaier# XXX TCP option 12 523135183Smlaier# S32:64:1:56:M*,N,N,S,N,N,?12:.:AMIGA:3.9 BB2 with Miami stack 524135183Smlaier 525135183Smlaier# ------------------ Plan9 ------------------ 526135183Smlaier 527135183Smlaier65535:255:0:48:M1460,W0,N: Plan9:4::Plan9 edition 4 528135183Smlaier 529135183Smlaier# ----------------- AMIGAOS ----------------- 530135183Smlaier 531135183Smlaier16384:64:1:48:M1560,N,N,S: AMIGAOS:3.9::AMIGAOS 3.9 BB2 MiamiDX 532135183Smlaier 533126756Smlaier########################################### 534126756Smlaier# Appliance / embedded / other signatures # 535126756Smlaier########################################### 536126756Smlaier 537126756Smlaier# ---------- Firewalls / routers ------------ 538126756Smlaier 539126756SmlaierS12:64:1:44:M1460: @Checkpoint:::Checkpoint (unknown 1) 540126756SmlaierS12:64:1:48:N,N,S,M1460: @Checkpoint:::Checkpoint (unknown 2) 541126756Smlaier4096:32:0:44:M1460: ExtremeWare:4.x::ExtremeWare 4.x 542126756Smlaier60352:64:0:52:M1460,N,W2,N,N,S: Clavister:7::Clavister firewall 7.x 543126756Smlaier 544135183Smlaier# XXX TCP option 12 545135183Smlaier# S32:64:0:68:M512,N,W0,N,N,T,N,N,?12:.:Nokia:IPSO w/Checkpoint NG FP3 546135183Smlaier# S16:64:0:68:M1024,N,W0,N,N,T,N,N,?12:.:Nokia:IPSO 3.7 build 026 547135183Smlaier 548135183SmlaierS4:64:1:60:W0,N,S,T,M1460: FortiNet:FortiGate:50:FortiNet FortiGate 50 549135183Smlaier 550135183Smlaier8192:64:1:44:M1460: Eagle:::Eagle Secure Gateway 551135183Smlaier 552135183Smlaier 553126756Smlaier# ------- Switches and other stuff ---------- 554126756Smlaier 555126756Smlaier4128:255:0:44:M*: Cisco:::Cisco Catalyst 3500, 7500 etc 556126756SmlaierS8:255:0:44:M*: Cisco:12008::Cisco 12008 557126756Smlaier60352:128:1:64:M1460,N,W2,N,N,T,N,N,S: Alteon:ACEswitch::Alteon ACEswitch 558126756Smlaier64512:128:1:44:M1370: Nortel:Contivity Client::Nortel Conectivity Client 559126756Smlaier 560126756Smlaier 561126756Smlaier# ---------- Caches and whatnots ------------ 562126756Smlaier 563126756SmlaierS4:64:1:52:M1460,N,N,S,N,W0: AOL:web cache::AOL web cache 564126756Smlaier 565126756Smlaier32850:64:1:64:N,W1,N,N,T,N,N,S,M*: NetApp:5.x::NetApp Data OnTap 5.x 566126756Smlaier16384:64:1:64:M1460,N,N,S,N,W0,N: NetApp:5.3:1:NetApp 5.3.1 567135183Smlaier65535:64:0:64:M1460,N,N,S,N,W*,N,N,T: NetApp:5.3-5.5::NetApp 5.3-5.5 568126756Smlaier65535:64:0:60:M1460,N,W0,N,N,T: NetApp:CacheFlow::NetApp CacheFlow 569126756Smlaier8192:64:1:64:M1460,N,N,S,N,W0,N,N,T: NetApp:5.2:1:NetApp NetCache 5.2.1 570135183Smlaier20480:64:1:64:M1460,N,N,S,N,W0,N,N,T: NetApp:4.1::NetApp NetCache4.1 571126756Smlaier 572135183Smlaier65535:64:0:60:M1460,N,W0,N,N,T: CacheFlow:4.1::CacheFlow CacheOS 4.1 573135183Smlaier8192:64:0:60:M1380,N,N,N,N,N,N,T: CacheFlow:1.1::CacheFlow CacheOS 1.1 574135183Smlaier 575126756SmlaierS4:64:0:48:M1460,N,N,S: Cisco:Content Engine::Cisco Content Engine 576126756Smlaier 577126756Smlaier27085:128:0:40:.: Dell:PowerApp cache::Dell PowerApp (Linux-based) 578126756Smlaier 579126756Smlaier65535:255:1:48:N,W1,M1460: Inktomi:crawler::Inktomi crawler 580126756SmlaierS1:255:1:60:M1460,S,T,N,W0: LookSmart:ZyBorg::LookSmart ZyBorg 581126756Smlaier 582126756Smlaier16384:255:0:40:.: Proxyblocker:::Proxyblocker (what's this?) 583126756Smlaier 584126756Smlaier# ----------- Embedded systems -------------- 585126756Smlaier 586126756SmlaierS9:255:0:44:M536: PalmOS:Tungsten:C:PalmOS Tungsten C 587126756SmlaierS5:255:0:44:M536: PalmOS:3::PalmOS 3/4 588126756SmlaierS5:255:0:44:M536: PalmOS:4::PalmOS 3/4 589126756SmlaierS4:255:0:44:M536: PalmOS:3:5:PalmOS 3.5 590126756Smlaier2948:255:0:44:M536: PalmOS:3:5:PalmOS 3.5.3 (Handera) 591135183SmlaierS29:255:0:44:M536: PalmOS:5::PalmOS 5.0 592126756Smlaier 593126756SmlaierS23:64:1:64:N,W1,N,N,T,N,N,S,M1460: SymbianOS:7::SymbianOS 7 594126756Smlaier8192:255:0:44:M1460: SymbianOS:6048::SymbianOS 6048 (on Nokia 7650?) 595126756Smlaier8192:255:0:44:M536: SymbianOS:::SymbianOS (on Nokia 9210?) 596126756Smlaier 597126756Smlaier 598126756Smlaier# Perhaps S4? 599126756Smlaier5840:64:1:60:M1452,S,T,N,W1: Zaurus:3.10::Zaurus 3.10 600126756Smlaier 601126756Smlaier32768:128:1:64:M1460,N,W0,N,N,T0,N,N,S: PocketPC:2002::PocketPC 2002 602126756Smlaier 603126756SmlaierS1:255:0:44:M346: Contiki:1.1:rc0:Contiki 1.1-rc0 604126756Smlaier 605126756Smlaier4096:128:0:44:M1460: Sega:Dreamcast:3.0:Sega Dreamcast Dreamkey 3.0 606135183SmlaierT5:64:0:44:M536: Sega:Dreamcast:HKT-3020:Sega Dreamcast HKT-3020 (browser disc 51027) 607135183SmlaierS22:64:1:44:M1460: Sony:PS2::Sony Playstation 2 (SOCOM?) 608126756Smlaier 609126756SmlaierS12:64:0:44:M1452: AXIS:5600:v5.64:AXIS Printer Server 5600 v5.64 610126756Smlaier 611126756Smlaier 612126756Smlaier 613126756Smlaier#################### 614126756Smlaier# Fancy signatures # 615126756Smlaier#################### 616126756Smlaier 617126756Smlaier1024:64:0:40:.: *NMAP:syn scan:1:NMAP syn scan (1) 618126756Smlaier2048:64:0:40:.: *NMAP:syn scan:2:NMAP syn scan (2) 619126756Smlaier3072:64:0:40:.: *NMAP:syn scan:3:NMAP syn scan (3) 620126756Smlaier4096:64:0:40:.: *NMAP:syn scan:4:NMAP syn scan (4) 621126756Smlaier 622126756Smlaier1024:64:0:60:W10,N,M265,T: *NMAP:OS:1:NMAP OS detection probe (1) 623126756Smlaier2048:64:0:60:W10,N,M265,T: *NMAP:OS:2:NMAP OS detection probe (2) 624126756Smlaier3072:64:0:60:W10,N,M265,T: *NMAP:OS:3:NMAP OS detection probe (3) 625126756Smlaier4096:64:0:60:W10,N,M265,T: *NMAP:OS:4:NMAP OS detection probe (4) 626126756Smlaier 627126756Smlaier##################################### 628126756Smlaier# Generic signatures - just in case # 629126756Smlaier##################################### 630126756Smlaier 631126756Smlaier#*:64:1:60:M*,N,W*,N,N,T: @FreeBSD:4.0-4.9::FreeBSD 4.x/5.x 632126756Smlaier#*:64:1:60:M*,N,W*,N,N,T: @FreeBSD:5.0-5.1::FreeBSD 4.x/5.x 633126756Smlaier 634126756Smlaier*:128:1:52:M*,N,W0,N,N,S: @Windows:XP:RFC1323:Windows XP/2000 (RFC1323 no tstamp) 635126756Smlaier*:128:1:52:M*,N,W0,N,N,S: @Windows:2000:RFC1323:Windows XP/2000 (RFC1323 no tstamp) 636126756Smlaier*:128:1:64:M*,N,W0,N,N,T0,N,N,S: @Windows:XP:RFC1323:Windows XP/2000 (RFC1323) 637126756Smlaier*:128:1:64:M*,N,W0,N,N,T0,N,N,S: @Windows:2000:RFC1323:Windows XP/2000 (RFC1323) 638126756Smlaier*:128:1:64:M*,N,W*,N,N,T0,N,N,S: @Windows:XP:RFC1323:Windows XP (RFC1323, w+) 639135183Smlaier*:128:1:48:M536,N,N,S: @Windows:98::Windows 98 640126756Smlaier*:128:1:48:M*,N,N,S: @Windows:XP::Windows XP/2000 641126756Smlaier*:128:1:48:M*,N,N,S: @Windows:2000::Windows XP/2000 642135183Smlaier 643135183Smlaier 644