Project

General

Profile

Feature #7260 » Sigdatabase.txt

Current Database May 28 2023 - Jonathan Lee, 05/29/2023 06:52 AM

 
1
;
2
; p0f - fingerprint database
3
; --------------------------
4
;
5
; See section 5 in the README for a detailed discussion of the format used here.
6
;
7
; Copyright (C) 2012 by Michal Zalewski <lcamtuf@coredump.cx>
8
;
9
; Distributed under the terms and conditions of GNU LGPL.
10
;
11

    
12
classes = win,unix,other
13

    
14
; ==============
15
; MTU signatures
16
; ==============
17

    
18
[mtu]
19

    
20
; The most common values, used by Ethernet-homed systems, PPP over POTS, PPPoA
21
; DSL, etc:
22

    
23
label = Ethernet or modem
24
sig   = 576
25
sig   = 1500
26

    
27
; Common DSL-specific values (1492 is canonical for PPPoE, but ISPs tend to
28
; horse around a bit):
29

    
30
label = DSL
31
sig   = 1452
32
sig   = 1454
33
sig   = 1492
34

    
35
; Miscellanous tunnels (including VPNs, IPv6 tunneling, etc):
36

    
37
label = GIF
38
sig   = 1240
39
sig   = 1280
40

    
41
label = generic tunnel or VPN
42
sig   = 1300
43
sig   = 1400
44
sig   = 1420
45
sig   = 1440
46
sig   = 1450
47
sig   = 1460
48

    
49
label = IPSec or GRE
50
sig   = 1476
51

    
52
label = IPIP or SIT
53
sig   = 1480
54

    
55
label = PPTP
56
sig   = 1490
57

    
58
; Really exotic stuff:
59

    
60
label = AX.25 radio modem
61
sig   = 256
62

    
63
label = SLIP
64
sig   = 552
65

    
66
label = Google
67
sig   = 1470
68

    
69
label = VLAN
70
sig   = 1496
71

    
72
label = Ericsson HIS modem
73
sig   = 1656
74

    
75
label = jumbo Ethernet
76
sig   = 9000
77

    
78
; Loopback interfaces on Linux and other systems:
79

    
80
label = loopback
81
sig   = 3924
82
sig   = 16384
83
sig   = 16436
84

    
85
; ==================
86
; TCP SYN signatures
87
; ==================
88

    
89
[tcp:request]
90

    
91
; -----
92
; Linux
93
; -----
94

    
95
label = s:unix:Linux:3.11 and newer
96
sig   = *:64:0:*:mss*20,10:mss,sok,ts,nop,ws:df,id+:0
97
sig   = *:64:0:*:mss*20,7:mss,sok,ts,nop,ws:df,id+:0
98

    
99
label = s:unix:Linux:3.1-3.10
100
sig   = *:64:0:*:mss*10,4:mss,sok,ts,nop,ws:df,id+:0
101
sig   = *:64:0:*:mss*10,5:mss,sok,ts,nop,ws:df,id+:0
102
sig   = *:64:0:*:mss*10,6:mss,sok,ts,nop,ws:df,id+:0
103
sig   = *:64:0:*:mss*10,7:mss,sok,ts,nop,ws:df,id+:0
104

    
105
; Fun fact: 2.6 with ws=7 seems to be really common for Amazon EC2, while 8 is
106
; common for Yahoo and Twitter. There seem to be some other (rare) uses, though,
107
; so not I'm not flagging these signatures in a special way.
108

    
109
label = s:unix:Linux:2.6.x
110
sig   = *:64:0:*:mss*4,6:mss,sok,ts,nop,ws:df,id+:0
111
sig   = *:64:0:*:mss*4,7:mss,sok,ts,nop,ws:df,id+:0
112
sig   = *:64:0:*:mss*4,8:mss,sok,ts,nop,ws:df,id+:0
113

    
114
label = s:unix:Linux:2.4.x
115
sig   = *:64:0:*:mss*4,0:mss,sok,ts,nop,ws:df,id+:0
116
sig   = *:64:0:*:mss*4,1:mss,sok,ts,nop,ws:df,id+:0
117
sig   = *:64:0:*:mss*4,2:mss,sok,ts,nop,ws:df,id+:0
118

    
119
; No real traffic seen for 2.2 & 2.0, signatures extrapolated from p0f2 data:
120

    
121
label = s:unix:Linux:2.2.x
122
sig   = *:64:0:*:mss*11,0:mss,sok,ts,nop,ws:df,id+:0
123
sig   = *:64:0:*:mss*20,0:mss,sok,ts,nop,ws:df,id+:0
124
sig   = *:64:0:*:mss*22,0:mss,sok,ts,nop,ws:df,id+:0
125

    
126
label = s:unix:Linux:2.0
127
sig   = *:64:0:*:mss*12,0:mss::0
128
sig   = *:64:0:*:16384,0:mss::0
129

    
130
; Just to keep people testing locally happy (IPv4 & IPv6):
131

    
132
label = s:unix:Linux:3.x (loopback)
133
sig   = *:64:0:16396:mss*2,4:mss,sok,ts,nop,ws:df,id+:0
134
sig   = *:64:0:16376:mss*2,4:mss,sok,ts,nop,ws:df,id+:0
135

    
136
label = s:unix:Linux:2.6.x (loopback)
137
sig   = *:64:0:16396:mss*2,2:mss,sok,ts,nop,ws:df,id+:0
138
sig   = *:64:0:16376:mss*2,2:mss,sok,ts,nop,ws:df,id+:0
139

    
140
label = s:unix:Linux:2.4.x (loopback)
141
sig   = *:64:0:16396:mss*2,0:mss,sok,ts,nop,ws:df,id+:0
142

    
143
label = s:unix:Linux:2.2.x (loopback)
144
sig   = *:64:0:3884:mss*8,0:mss,sok,ts,nop,ws:df,id+:0
145

    
146
; Various distinctive flavors of Linux:
147

    
148
label = s:unix:Linux:2.6.x (Google crawler)
149
sig   = 4:64:0:1430:mss*4,6:mss,sok,ts,nop,ws::0
150

    
151
label = s:unix:Linux:(Android)
152
sig   = *:64:0:*:mss*44,1:mss,sok,ts,nop,ws:df,id+:0
153
sig   = *:64:0:*:mss*44,3:mss,sok,ts,nop,ws:df,id+:0
154

    
155
; Catch-all rules:
156

    
157
label = g:unix:Linux:3.x
158
sig   = *:64:0:*:mss*10,*:mss,sok,ts,nop,ws:df,id+:0
159

    
160
label = g:unix:Linux:2.4.x-2.6.x
161
sig   = *:64:0:*:mss*4,*:mss,sok,ts,nop,ws:df,id+:0
162

    
163
label = g:unix:Linux:2.2.x-3.x
164
sig   = *:64:0:*:*,*:mss,sok,ts,nop,ws:df,id+:0
165

    
166
label = g:unix:Linux:2.2.x-3.x (no timestamps)
167
sig   = *:64:0:*:*,*:mss,nop,nop,sok,nop,ws:df,id+:0
168

    
169
label = g:unix:Linux:2.2.x-3.x (barebone)
170
sig   = *:64:0:*:*,0:mss:df,id+:0
171

    
172
; -------
173
; Windows
174
; -------
175

    
176
label = s:win:Windows:XP
177
sig   = *:128:0:*:16384,0:mss,nop,nop,sok:df,id+:0
178
sig   = *:128:0:*:65535,0:mss,nop,nop,sok:df,id+:0
179
sig   = *:128:0:*:65535,0:mss,nop,ws,nop,nop,sok:df,id+:0
180
sig   = *:128:0:*:65535,1:mss,nop,ws,nop,nop,sok:df,id+:0
181
sig   = *:128:0:*:65535,2:mss,nop,ws,nop,nop,sok:df,id+:0
182

    
183
label = s:win:Windows:7 or 8
184
sig   = *:128:0:*:8192,0:mss,nop,nop,sok:df,id+:0
185
sig   = *:128:0:*:8192,2:mss,nop,ws,nop,nop,sok:df,id+:0
186
sig   = *:128:0:*:8192,8:mss,nop,ws,nop,nop,sok:df,id+:0
187
sig   = *:128:0:*:8192,2:mss,nop,ws,sok,ts:df,id+:0
188

    
189
; Robots with distinctive fingerprints:
190

    
191
label = s:win:Windows:7 (Websense crawler)
192
sig   = *:64:0:1380:mss*4,6:mss,nop,nop,ts,nop,ws:df,id+:0
193
sig   = *:64:0:1380:mss*4,7:mss,nop,nop,ts,nop,ws:df,id+:0
194

    
195
; Catch-all:
196

    
197
label = g:win:Windows:NT kernel 5.x
198
sig   = *:128:0:*:16384,*:mss,nop,nop,sok:df,id+:0
199
sig   = *:128:0:*:65535,*:mss,nop,nop,sok:df,id+:0
200
sig   = *:128:0:*:16384,*:mss,nop,ws,nop,nop,sok:df,id+:0
201
sig   = *:128:0:*:65535,*:mss,nop,ws,nop,nop,sok:df,id+:0
202

    
203
label = g:win:Windows:NT kernel 6.x
204
sig   = *:128:0:*:8192,*:mss,nop,nop,sok:df,id+:0
205
sig   = *:128:0:*:8192,*:mss,nop,ws,nop,nop,sok:df,id+:0
206

    
207
label = g:win:Windows:NT kernel
208
sig   = *:128:0:*:*,*:mss,nop,nop,sok:df,id+:0
209
sig   = *:128:0:*:*,*:mss,nop,ws,nop,nop,sok:df,id+:0
210

    
211
; ------
212
; Mac OS
213
; ------
214

    
215
label = s:unix:Mac OS X:10.x
216
sig   = *:64:0:*:65535,1:mss,nop,ws,nop,nop,ts,sok,eol+1:df,id+:0
217
sig   = *:64:0:*:65535,3:mss,nop,ws,nop,nop,ts,sok,eol+1:df,id+:0
218

    
219
label = s:unix:MacOS X:10.9 or newer (sometimes iPhone or iPad)
220
sig   = *:64:0:*:65535,4:mss,nop,ws,nop,nop,ts,sok,eol+1:df,id+:0
221

    
222
label = s:unix:iOS:iPhone or iPad
223
sig   = *:64:0:*:65535,2:mss,nop,ws,nop,nop,ts,sok,eol+1:df,id+:0
224

    
225
; Catch-all rules:
226

    
227
label = g:unix:Mac OS X:
228
sig   = *:64:0:*:65535,*:mss,nop,ws,nop,nop,ts,sok,eol+1:df,id+:0
229

    
230
; -------
231
; FreeBSD
232
; -------
233

    
234
label = s:unix:FreeBSD:9.x or newer
235
sig   = *:64:0:*:65535,6:mss,nop,ws,sok,ts:df,id+:0
236

    
237
label = s:unix:FreeBSD:8.x
238
sig   = *:64:0:*:65535,3:mss,nop,ws,sok,ts:df,id+:0
239

    
240
; Catch-all rules:
241

    
242
label = g:unix:FreeBSD:
243
sig   = *:64:0:*:65535,*:mss,nop,ws,sok,ts:df,id+:0
244

    
245
; -------
246
; OpenBSD
247
; -------
248

    
249
label = s:unix:OpenBSD:3.x
250
sig   = *:64:0:*:16384,0:mss,nop,nop,sok,nop,ws,nop,nop,ts:df,id+:0
251

    
252
label = s:unix:OpenBSD:4.x-5.x
253
sig   = *:64:0:*:16384,3:mss,nop,nop,sok,nop,ws,nop,nop,ts:df,id+:0
254

    
255
; -------
256
; Solaris
257
; -------
258

    
259
label = s:unix:Solaris:8
260
sig   = *:64:0:*:32850,1:nop,ws,nop,nop,ts,nop,nop,sok,mss:df,id+:0
261

    
262
label = s:unix:Solaris:10
263
sig   = *:64:0:*:mss*34,0:mss,nop,ws,nop,nop,sok:df,id+:0
264

    
265
; -------
266
; OpenVMS
267
; -------
268

    
269
label = s:unix:OpenVMS:8.x
270
sig   = 4:128:0:1460:mtu*2,0:mss,nop,ws::0
271

    
272
label = s:unix:OpenVMS:7.x
273
sig   = 4:64:0:1460:61440,0:mss,nop,ws::0
274

    
275
; --------
276
; NeXTSTEP
277
; --------
278

    
279
label = s:other:NeXTSTEP:
280
sig   = 4:64:0:1024:mss*4,0:mss::0
281

    
282
; -----
283
; Tru64
284
; -----
285

    
286
label = s:unix:Tru64:4.x
287
sig   = 4:64:0:1460:32768,0:mss,nop,ws:df,id+:0
288

    
289
; ----
290
; NMap
291
; ----
292

    
293
label = s:!:NMap:SYN scan
294
sys   = @unix,@win
295
sig   = *:64-:0:1460:1024,0:mss::0
296
sig   = *:64-:0:1460:2048,0:mss::0
297
sig   = *:64-:0:1460:3072,0:mss::0
298
sig   = *:64-:0:1460:4096,0:mss::0
299

    
300
label = s:!:NMap:OS detection
301
sys   = @unix,@win
302
sig   = *:64-:0:265:512,0:mss,sok,ts:ack+:0
303
sig   = *:64-:0:0:4,10:sok,ts,ws,eol+0:ack+:0
304
sig   = *:64-:0:1460:1,10:ws,nop,mss,ts,sok:ack+:0
305
sig   = *:64-:0:536:16,10:mss,sok,ts,ws,eol+0:ack+:0
306
sig   = *:64-:0:640:4,5:ts,nop,nop,ws,nop,mss:ack+:0
307
sig   = *:64-:0:1400:63,0:mss,ws,sok,ts,eol+0:ack+:0
308
sig   = *:64-:0:265:31337,10:ws,nop,mss,ts,sok:ack+:0
309
sig   = *:64-:0:1460:3,10:ws,nop,mss,sok,nop,nop:ecn,uptr+:0
310

    
311
; -----------
312
; p0f-sendsyn
313
; -----------
314

    
315
; These are intentionally goofy, to avoid colliding with any sensible real-world
316
; stacks. Do not tag these signatures as userspace, unless you want p0f to hide
317
; the responses!
318

    
319
label = s:unix:p0f:sendsyn utility
320
sig   = *:192:0:1331:1337,0:mss,nop,eol+18::0
321
sig   = *:192:0:1331:1337,0:mss,ts,nop,eol+8::0
322
sig   = *:192:0:1331:1337,5:mss,ws,nop,eol+15::0
323
sig   = *:192:0:1331:1337,0:mss,sok,nop,eol+16::0
324
sig   = *:192:0:1331:1337,5:mss,ws,ts,nop,eol+5::0
325
sig   = *:192:0:1331:1337,0:mss,sok,ts,nop,eol+6::0
326
sig   = *:192:0:1331:1337,5:mss,ws,sok,nop,eol+13::0
327
sig   = *:192:0:1331:1337,5:mss,ws,sok,ts,nop,eol+3::0
328

    
329
; -------------
330
; Odds and ends
331
; -------------
332

    
333
label = s:other:Blackberry:
334
sig   = *:128:0:1452:65535,0:mss,nop,nop,sok,nop,nop,ts::0
335

    
336
label = s:other:Nintendo:3DS
337
sig   = *:64:0:1360:32768,0:mss,nop,nop,sok:df,id+:0
338

    
339
label = s:other:Nintendo:Wii
340
sig   = 4:64:0:1460:32768,0:mss,nop,nop,sok:df,id+:0
341

    
342
label = s:unix:BaiduSpider:
343
sig   = *:64:0:1460:mss*4,7:mss,sok,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,ws:df,id+:0
344
sig   = *:64:0:1460:mss*4,2:mss,sok,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,nop,ws:df,id+:0
345

    
346
; ======================
347
; TCP SYN+ACK signatures
348
; ======================
349

    
350
[tcp:response]
351

    
352
; -----
353
; Linux
354
; -----
355

    
356
; The variation here is due to ws, sok, or ts being adaptively removed if the
357
; client initiating the connection doesn't support them. Use tools/p0f-sendsyn
358
; to get a full set of up to 8 signatures.
359

    
360

    
361
label = s:unix:Linux:3.x
362
sig   = *:64:0:*:mss*10,0:mss:df:0
363
sig   = *:64:0:*:mss*10,0:mss,sok,ts:df:0
364
sig   = *:64:0:*:mss*10,0:mss,nop,nop,ts:df:0
365
sig   = *:64:0:*:mss*10,0:mss,nop,nop,sok:df:0
366
sig   = *:64:0:*:mss*10,*:mss,nop,ws:df:0
367
sig   = *:64:0:*:mss*10,*:mss,sok,ts,nop,ws:df:0
368
sig   = *:64:0:*:mss*10,*:mss,nop,nop,ts,nop,ws:df:0
369
sig   = *:64:0:*:mss*10,*:mss,nop,nop,sok,nop,ws:df:0
370

    
371
label = s:unix:Linux:2.4-2.6
372
sig   = *:64:0:*:mss*4,0:mss:df:0
373
sig   = *:64:0:*:mss*4,0:mss,sok,ts:df:0
374
sig   = *:64:0:*:mss*4,0:mss,nop,nop,ts:df:0
375
sig   = *:64:0:*:mss*4,0:mss,nop,nop,sok:df:0
376

    
377
label = s:unix:Linux:2.4.x
378
sig   = *:64:0:*:mss*4,0:mss,nop,ws:df:0
379
sig   = *:64:0:*:mss*4,0:mss,sok,ts,nop,ws:df:0
380
sig   = *:64:0:*:mss*4,0:mss,nop,nop,ts,nop,ws:df:0
381
sig   = *:64:0:*:mss*4,0:mss,nop,nop,sok,nop,ws:df:0
382

    
383
label = s:unix:Linux:2.6.x
384
sig   = *:64:0:*:mss*4,*:mss,nop,ws:df:0
385
sig   = *:64:0:*:mss*4,*:mss,sok,ts,nop,ws:df:0
386
sig   = *:64:0:*:mss*4,*:mss,nop,nop,ts,nop,ws:df:0
387
sig   = *:64:0:*:mss*4,*:mss,nop,nop,sok,nop,ws:df:0
388

    
389
; -------
390
; Windows
391
; -------
392

    
393
label = s:win:Windows:XP
394
sig   = *:128:0:*:65535,0:mss:df,id+:0
395
sig   = *:128:0:*:65535,0:mss,nop,ws:df,id+:0
396
sig   = *:128:0:*:65535,0:mss,nop,nop,sok:df,id+:0
397
sig   = *:128:0:*:65535,0:mss,nop,nop,ts:df,id+,ts1-:0
398
sig   = *:128:0:*:65535,0:mss,nop,ws,nop,nop,sok:df,id+:0
399
sig   = *:128:0:*:65535,0:mss,nop,ws,nop,nop,ts:df,id+,ts1-:0
400
sig   = *:128:0:*:65535,0:mss,nop,nop,ts,nop,nop,sok:df,id+,ts1-:0
401
sig   = *:128:0:*:65535,0:mss,nop,ws,nop,nop,ts,nop,nop,sok:df,id+,ts1-:0
402

    
403
sig   = *:128:0:*:16384,0:mss:df,id+:0
404
sig   = *:128:0:*:16384,0:mss,nop,ws:df,id+:0
405
sig   = *:128:0:*:16384,0:mss,nop,nop,sok:df,id+:0
406
sig   = *:128:0:*:16384,0:mss,nop,nop,ts:df,id+,ts1-:0
407
sig   = *:128:0:*:16384,0:mss,nop,ws,nop,nop,sok:df,id+:0
408
sig   = *:128:0:*:16384,0:mss,nop,ws,nop,nop,ts:df,id+,ts1-:0
409
sig   = *:128:0:*:16384,0:mss,nop,nop,ts,nop,nop,sok:df,id+,ts1-:0
410
sig   = *:128:0:*:16384,0:mss,nop,ws,nop,nop,ts,nop,nop,sok:df,id+,ts1-:0
411

    
412
label = s:win:Windows:7 or 8
413
sig   = *:128:0:*:8192,0:mss:df,id+:0
414
sig   = *:128:0:*:8192,0:mss,sok,ts:df,id+:0
415
sig   = *:128:0:*:8192,8:mss,nop,ws:df,id+:0
416
sig   = *:128:0:*:8192,0:mss,nop,nop,ts:df,id+:0
417
sig   = *:128:0:*:8192,0:mss,nop,nop,sok:df,id+:0
418
sig   = *:128:0:*:8192,8:mss,nop,ws,sok,ts:df,id+:0
419
sig   = *:128:0:*:8192,8:mss,nop,ws,nop,nop,ts:df,id+:0
420
sig   = *:128:0:*:8192,8:mss,nop,ws,nop,nop,sok:df,id+:0
421

    
422
; -------
423
; FreeBSD
424
; -------
425

    
426
label = s:unix:FreeBSD:9.x
427
sig   = *:64:0:*:65535,6:mss,nop,ws:df,id+:0
428
sig   = *:64:0:*:65535,6:mss,nop,ws,sok,ts:df,id+:0
429
sig   = *:64:0:*:65535,6:mss,nop,ws,sok,eol+1:df,id+:0
430
sig   = *:64:0:*:65535,6:mss,nop,ws,nop,nop,ts:df,id+:0
431

    
432
label = s:unix:FreeBSD:8.x
433
sig   = *:64:0:*:65535,3:mss,nop,ws:df,id+:0
434
sig   = *:64:0:*:65535,3:mss,nop,ws,sok,ts:df,id+:0
435
sig   = *:64:0:*:65535,3:mss,nop,ws,sok,eol+1:df,id+:0
436
sig   = *:64:0:*:65535,3:mss,nop,ws,nop,nop,ts:df,id+:0
437

    
438
label = s:unix:FreeBSD:8.x-9.x
439
sig   = *:64:0:*:65535,0:mss,sok,ts:df,id+:0
440
sig   = *:64:0:*:65535,0:mss,sok,eol+1:df,id+:0
441
sig   = *:64:0:*:65535,0:mss,nop,nop,ts:df,id+:0
442

    
443
; -------
444
; OpenBSD
445
; -------
446

    
447
label = s:unix:OpenBSD:5.x
448
sig   = *:64:0:1460:16384,0:mss,nop,nop,sok:df,id+:0
449
sig   = *:64:0:1460:16384,3:mss,nop,ws:df,id+:0
450
sig   = *:64:0:1460:16384,3:mss,nop,nop,sok,nop,ws:df,id+:0
451
sig   = *:64:0:1460:16384,0:mss,nop,nop,ts:df,id+:0
452
sig   = *:64:0:1460:16384,0:mss,nop,nop,sok,nop,nop,ts:df,id+:0
453
sig   = *:64:0:1460:16384,3:mss,nop,ws,nop,nop,ts:df,id+:0
454
sig   = *:64:0:1460:16384,3:mss,nop,nop,sok,nop,ws,nop,nop,ts:df,id+:0
455

    
456
; This one resembles Windows, but almost nobody will be seeing it:
457
; sig   = *:64:0:1460:16384,0:mss:df,id+:0
458

    
459
; --------
460
; Mac OS X
461
; --------
462

    
463
label = s:unix:Mac OS X:10.x
464
sig   = *:64:0:*:65535,0:mss,nop,ws:df,id+:0
465
sig   = *:64:0:*:65535,0:mss,sok,eol+1:df,id+:0
466
sig   = *:64:0:*:65535,0:mss,nop,nop,ts:df,id+:0
467
sig   = *:64:0:*:65535,0:mss,nop,ws,sok,eol+1:df,id+:0
468
sig   = *:64:0:*:65535,0:mss,nop,ws,nop,nop,ts:df,id+:0
469
sig   = *:64:0:*:65535,0:mss,nop,nop,ts,sok,eol+1:df,id+:0
470
sig   = *:64:0:*:65535,0:mss,nop,ws,nop,nop,ts,sok,eol+1:df,id+:0
471

    
472
; Ditto:
473
; sig   = *:64:0:*:65535,0:mss:df,id+:0
474

    
475
; -------
476
; Solaris
477
; -------
478

    
479
label = s:unix:Solaris:6
480
sig   = 4:255:0:*:mss*7,0:mss:df,id+:0
481
sig   = 4:255:0:*:mss*7,0:nop,ws,mss:df,id+:0
482
sig   = 4:255:0:*:mss*7,0:nop,nop,ts,mss:df,id+:0
483
sig   = 4:255:0:*:mss*7,0:nop,nop,ts,nop,ws,mss:df,id+:0
484

    
485
label = s:unix:Solaris:8
486
sig   = *:64:0:*:mss*19,0:mss:df,id+:0
487
sig   = *:64:0:*:mss*19,0:nop,ws,mss:df,id+:0
488
sig   = *:64:0:*:mss*19,0:nop,nop,ts,mss:df,id+:0
489
sig   = *:64:0:*:mss*19,0:nop,nop,sok,mss:df,id+:0
490
sig   = *:64:0:*:mss*19,0:nop,nop,ts,nop,ws,mss:df,id+:0
491
sig   = *:64:0:*:mss*19,0:nop,ws,nop,nop,sok,mss:df,id+:0
492
sig   = *:64:0:*:mss*19,0:nop,nop,ts,nop,nop,sok,mss:df,id+:0
493
sig   = *:64:0:*:mss*19,0:nop,nop,ts,nop,ws,nop,nop,sok,mss:df,id+:0
494

    
495
label = s:unix:Solaris:10
496
sig   = *:64:0:*:mss*37,0:mss:df,id+:0
497
sig   = *:64:0:*:mss*37,0:mss,nop,ws:df,id+:0
498
sig   = *:64:0:*:mss*37,0:nop,nop,ts,mss:df,id+:0
499
sig   = *:64:0:*:mss*37,0:mss,nop,nop,sok:df,id+:0
500
sig   = *:64:0:*:mss*37,0:nop,nop,ts,mss,nop,ws:df,id+:0
501
sig   = *:64:0:*:mss*37,0:mss,nop,ws,nop,nop,sok:df,id+:0
502
sig   = *:64:0:*:mss*37,0:nop,nop,ts,mss,nop,nop,sok:df,id+:0
503
sig   = *:64:0:*:mss*37,0:nop,nop,ts,mss,nop,ws,nop,nop,sok:df,id+:0
504

    
505
; -----
506
; HP-UX
507
; -----
508

    
509
label = s:unix:HP-UX:11.x
510
sig   = *:64:0:*:32768,0:mss:df,id+:0
511
sig   = *:64:0:*:32768,0:mss,ws,nop:df,id+:0
512
sig   = *:64:0:*:32768,0:mss,nop,nop,ts:df,id+:0
513
sig   = *:64:0:*:32768,0:mss,nop,nop,sok:df,id+:0
514
sig   = *:64:0:*:32768,0:mss,ws,nop,nop,nop,ts:df,id+:0
515
sig   = *:64:0:*:32768,0:mss,nop,nop,sok,ws,nop:df,id+:0
516
sig   = *:64:0:*:32768,0:mss,nop,nop,sok,nop,nop,ts:df,id+:0
517
sig   = *:64:0:*:32768,0:mss,nop,nop,sok,ws,nop,nop,nop,ts:df,id+:0
518

    
519
; -------
520
; OpenVMS
521
; -------
522

    
523
label = s:other:OpenVMS:7.x
524
sig   = 4:64:0:1460:3993,0:mss::0
525
sig   = 4:64:0:1460:3993,0:mss,nop,ws::0
526

    
527
; -----
528
; Tru64
529
; -----
530

    
531
label = s:unix:Tru64:4.x
532
sig   = 4:64:0:1460:mss*25,0:mss,nop,ws:df,id+:0
533
sig   = 4:64:0:1460:mss*25,0:mss:df,id+:0
534

    
535
; ======================
536
; HTTP client signatures
537
; ======================
538

    
539
; Safari and Firefox are frequently seen using HTTP/1.0 when going through
540
; proxies; this is far less common for MSIE, Chrome, etc. I wildcarded some of
541
; the signatures accordingly.
542
;
543
; Also note that there are several proxies that mess with HTTP headers for no
544
; reason. For example, BlueCoat proxy appears to change 'keep-alive' to
545
; 'Keep-Alive' for a tiny percentage of users (why?!).
546

    
547
[http:request]
548

    
549
ua_os = Linux,Windows,iOS=[iPad],iOS=[iPhone],Mac OS X,FreeBSD,OpenBSD,NetBSD,Solaris=[SunOS]
550

    
551
; -------
552
; Firefox
553
; -------
554

    
555
label = s:!:Firefox:2.x
556
sys   = Windows,@unix
557
sig   = *:Host,User-Agent,Accept=[,*/*;q=],?Accept-Language,Accept-Encoding=[gzip,deflate],Accept-Charset=[utf-8;q=0.7,*;q=0.7],Keep-Alive=[300],Connection=[keep-alive]::Firefox/
558

    
559
label = s:!:Firefox:3.x
560
sys   = Windows,@unix
561
sig   = *:Host,User-Agent,Accept=[,*/*;q=],?Accept-Language,Accept-Encoding=[gzip,deflate],Accept-Charset=[utf-8;q=0.7,*;q=0.7],Keep-Alive=[115],Connection=[keep-alive],?Referer::Firefox/
562

    
563
label = s:!:Firefox:4.x
564
sys   = Windows,@unix
565
sig   = *:Host,User-Agent,Accept=[,*/*;q=],?Accept-Language,Accept-Encoding=[gzip, deflate],Accept-Charset=[utf-8;q=0.7,*;q=0.7],Keep-Alive=[115],Connection=[keep-alive],?Referer::Firefox/
566

    
567
; I have no idea where this 'UTF-8' variant comes from, but it happens on *BSD.
568
; Likewise, no clue why Referer is in a different place for some users.
569

    
570
label = s:!:Firefox:5.x-9.x
571
sys   = Windows,@unix
572
sig   = *:Host,User-Agent,Accept=[,*/*;q=],?Accept-Language,Accept-Encoding=[gzip, deflate],Accept-Charset=[utf-8;q=0.7,*;q=0.7],?DNT=[1],Connection=[keep-alive],?Referer:Keep-Alive:Firefox/
573
sig   = *:Host,User-Agent,Accept=[,*/*;q=],?Accept-Language,Accept-Encoding=[gzip, deflate],Accept-Charset=[UTF-8,*],?DNT=[1],Connection=[keep-alive],?Referer:Keep-Alive:Firefox/
574
sig   = *:Host,User-Agent,Accept=[,*/*;q=],?Accept-Language,Accept-Encoding=[gzip, deflate],Accept-Charset=[UTF-8,*],?DNT=[1],?Referer,Connection=[keep-alive]:Keep-Alive:Firefox/
575
sig   = *:Host,User-Agent,Accept=[,*/*;q=],?Accept-Language,Accept-Encoding=[gzip, deflate],Accept-Charset=[utf-8;q=0.7,*;q=0.7],?DNT=[1],?Referer,Connection=[keep-alive]:Keep-Alive:Firefox/
576
sig   = *:Host,User-Agent,Accept=[,*/*;q=],?Accept-Language,Accept-Encoding=[gzip, deflate],Accept-Charset=[utf-8;q=0.7,*;q=0.7],?Referer,?DNT=[1],Connection=[keep-alive]:Keep-Alive:Firefox/
577

    
578
label = s:!:Firefox:10.x or newer
579
sys   = Windows,@unix
580
sig   = *:Host,User-Agent,Accept=[,*/*;q=],?Accept-Language=[;q=],Accept-Encoding=[gzip, deflate],?DNT=[1],Connection=[keep-alive],?Referer:Accept-Charset,Keep-Alive:Firefox/
581
sig   = *:Host,User-Agent,Accept=[,*/*;q=],?Accept-Language=[;q=],Accept-Encoding=[gzip, deflate],?DNT=[1],?Referer,Connection=[keep-alive]:Accept-Charset,Keep-Alive:Firefox/
582

    
583
; There is this one weird case where Firefox 10.x is indistinguishable
584
; from Safari 5.1:
585

    
586
label = s:!:Firefox:10.x or Safari 5.x
587
sys   = Windows,@unix
588
sig   = *:Host,User-Agent,Accept=[xml;q=0.9,*/*;q=0.8],Accept-Language,Accept-Encoding=[gzip, deflate],Connection=[keep-alive]:Keep-Alive,Accept-Charset,DNT,Referer:Gecko
589

    
590
; ----
591
; MSIE
592
; ----
593

    
594
; MSIE 11 no longer sends the 'MSIE' part in U-A, but we don't consider
595
; U-A to be a robust signal for fingerprinting, so no dice.
596

    
597
label = s:!:MSIE:8 or newer
598
sys   = Windows
599
sig   = 1:Accept=[*/*],?Referer,?Accept-Language,User-Agent,Accept-Encoding=[gzip, deflate],Host,Connection=[Keep-Alive]:Keep-Alive,Accept-Charset,UA-CPU:Trident/
600
sig   = 1:Accept=[*/*],?Referer,?Accept-Language,Accept-Encoding=[gzip, deflate],User-Agent,Host,Connection=[Keep-Alive]:Keep-Alive,Accept-Charset:(compatible; MSIE
601

    
602
label = s:!:MSIE:7
603
sys   = Windows
604
sig   = 1:Accept=[*/*],?Referer,?Accept-Language,UA-CPU,User-Agent,Accept-Encoding=[gzip, deflate],Host,Connection=[Keep-Alive]:Keep-Alive,Accept-Charset:(compatible; MSIE
605

    
606
; TODO: Check if this one ever uses Accept-Language, etc. Also try to find MSIE 5.
607

    
608
label = s:!:MSIE:6
609
sys   = Windows
610
sig   = 0:Accept=[*/*],?Referer,User-Agent,Host:Keep-Alive,Connection,Accept-Encoding,Accept-Language,Accept-Charset:(compatible; MSIE
611
sig   = 1:Accept=[*/*],Connection=[Keep-Alive],Host,?Pragma=[no-cache],?Range,?Referer,User-Agent:Keep-Alive,Accept-Encoding,Accept-Language,Accept-Charset:(compatible; MSIE
612

    
613
; ------
614
; Chrome
615
; ------
616

    
617
label = s:!:Chrome:11.x to 26.x
618
sys   = Windows,@unix
619
sig   = 1:Host,Connection=[keep-alive],User-Agent,Accept=[*/*],?Referer,Accept-Encoding=[gzip,deflate,sdch],Accept-Language,Accept-Charset=[utf-8;q=0.7,*;q=0.3]:: Chrom
620
sig   = 1:Host,Connection=[keep-alive],User-Agent,Accept=[*/*],?Referer,Accept-Encoding=[gzip,deflate,sdch],Accept-Language,Accept-Charset=[UTF-8,*;q=0.5]:: Chrom
621
sig   = 1:Host,User-Agent,Accept=[*/*],?Referer,Accept-Encoding=[gzip,deflate,sdch],Accept-Language,Accept-Charset=[utf-8;q=0.7,*;q=0.3],Connection=[keep-alive]::Chrom
622

    
623
label = s:!:Chrome:27.x to 42.x
624
sys   = Windows,@unix
625
sig   = 1:Host,Connection=[keep-alive],Accept=[*/*],User-Agent,?Referer,Accept-Encoding=[gzip,deflate,sdch],Accept-Language:Accept-Charset,Keep-Alive: Chrom
626

    
627
label = s:!:Chrome:43.x or 50.x
628
sys   = Windows,@unix
629
sig   = 1:Host,Connection=[keep-alive],Accept=[*/*],User-Agent,?Referer,Accept-Encoding=[gzip, deflate, sdch],Accept-Language:Accept-Charset,Keep-Alive: Chrom
630

    
631
label = s:!:Chrome:51.x or newer
632
sys   = Windows,@unix
633
sig   = 1:Host,Connection=[keep-alive],Upgrade-Insecure-Requests=[1],User-Agent,Accept=[*/*],Accept-Encoding=[gzip, deflate, sdch],Accept-Language:Accept-Charset,Keep-Alive: Chrom
634

    
635
; -----
636
; Opera
637
; -----
638

    
639
label = s:!:Opera:19.x or newer
640
sys   = Windows,@unix
641
sig   = 1:Host,Connection=[keep-alive],Accept=[*/*;q=0.8],User-Agent,Accept-Encoding=[gzip,deflate,lzma,sdch],Accept-Language=[;q=0.]:Accept-Charset,Keep-Alive:OPR/
642

    
643
label = s:!:Opera:15.x-18.x
644
sys   = Windows,@unix
645
sig   = 1:Host,Connection=[keep-alive],Accept=[*/*;q=0.8],User-Agent,Accept-Encoding=[gzip, deflate],Accept-Language=[;q=0.]:Accept-Charset,Keep-Alive:OPR/
646

    
647
label = s:!:Opera:11.x-14.x
648
sys   = Windows,@unix
649
sig   = 1:User-Agent,Host,Accept=[*/*;q=0.1],?Accept-Language=[;q=0.],Accept-Encoding=[gzip, deflate],Connection=[Keep-Alive]:Accept-Charset,X-OperaMini-Phone-UA:) Presto/
650

    
651
label = s:!:Opera:10.x
652
sys   = Windows,@unix
653
sig   = 1:User-Agent,Host,Accept=[*/*;q=0.1],Accept-Language=[;q=0.],Accept-Charset=[utf-8, utf-16, *;q=0.1],Accept-Encoding=[deflate, gzip, x-gzip, identity, *;q=0],Connection=[Keep-Alive]::Presto/
654
sig   = 1:User-Agent,Host,Accept=[*/*;q=0.1],Accept-Language=[en],Accept-Encoding=[gzip, deflate],Connection=[Keep-Alive]:Accept-Charset:Opera/
655

    
656
label = s:!:Opera:Mini
657
sys   = Linux
658
sig   = 1:User-Agent,Host,Accept=[*/*;q=0.1],Accept-Language=[;q=0.],Accept-Encoding=[gzip, deflate],Connection=[Keep-Alive],X-OperaMini-Phone-UA,X-OperaMini-Features,X-OperaMini-Phone,x-forwarded-for:Accept-Charset:Opera Mini/
659

    
660
label = s:!:Opera:on Nintendo Wii
661
sys   = Nintendo
662
sig   = 1:User-Agent,Host,Accept=[*/*;q=0.1],Accept-Language=[en],Accept-Charset=[iso-8859-1, utf-8, utf-16, *;q=0.1],Accept-Encoding=[deflate, gzip, x-gzip, identity, *;q=0],Connection=[Keep-Alive]::Nintendo
663

    
664
; ---------------
665
; Android browser
666
; ---------------
667

    
668
label = s:!:Android:2.x
669
sys   = Linux
670
sig   = 1:Host,Accept-Encoding=[gzip],Accept-Language,User-Agent,Accept=[,*/*;q=0.5],Accept-Charset=[utf-16, *;q=0.7]:Connection:Android
671
sig   = 1:Host,Connection=[keep-alive],Accept-Encoding=[gzip],Accept-Language,User-Agent,Accept=[,*/*;q=0.5],Accept-Charset=[utf-16, *;q=0.7]::Android
672
sig   = 1:Host,Accept-Encoding=[gzip],Accept-Language=[en-US],Accept=[*/*;q=0.5],User-Agent,Accept-Charset=[utf-16, *;q=0.7]:Connection:Android
673

    
674
label = s:!:Android:4.x
675
sys   = Linux
676
sig   = 1:Host,Connection=[keep-alive],Accept=[,*/*;q=0.8],User-Agent,Accept-Encoding=[gzip,deflate],Accept-Language,Accept-Charset=[utf-16, *;q=0.7]::Android
677

    
678
; ------
679
; Safari
680
; ------
681

    
682
label = s:!:Safari:7 or newer
683
sys   = @unix
684
sig   = *:Host,Accept-Encoding=[gzip, deflate],Connection=[keep-alive],Accept=[*/*],User-Agent,Accept-Language,?Referer,?DNT:Accept-Charset,Keep-Alive:KHTML, like Gecko)
685

    
686
label = s:!:Safari:5.1-6
687
sys   = Windows,@unix
688
sig   = *:Host,User-Agent,Accept=[*/*],?Referer,Accept-Language,Accept-Encoding=[gzip, deflate],Connection=[keep-alive]:Accept-Charset:KHTML, like Gecko)
689
sig   = *:Host,User-Agent,Accept=[*/*],?Referer,Accept-Encoding=[gzip, deflate],Accept-Language,Connection=[keep-alive]:Accept-Charset:KHTML, like Gecko)
690

    
691
label = s:!:Safari:5.0 or earlier
692
sys   = Mac OS X
693
sig   = 0:Host,User-Agent,Connection=[close]:Accept,Accept-Encoding,Accept-Language,Accept-Charset:CFNetwork/
694

    
695
; ---------
696
; Konqueror
697
; ---------
698

    
699
label = s:!:Konqueror:4.6 or earlier
700
sys   = Linux,FreeBSD,OpenBSD
701
sig   = 1:Host,Connection=[Keep-Alive],User-Agent,?Pragma,?Cache-control,Accept=[*/*],Accept-Encoding=[x-gzip, x-deflate, gzip, deflate],Accept-Charset=[;q=0.5, *;q=0.5],Accept-Language::Konqueror/
702

    
703
label = s:!:Konqueror:4.7 or newer
704
sys   = Linux,FreeBSD,OpenBSD
705
sig   = 1:Host,Connection=[keep-alive],User-Agent,Accept=[*/*],Accept-Encoding=[gzip, deflate, x-gzip, x-deflate],Accept-Charset=[,*;q=0.5],Accept-Language::Konqueror/
706

    
707
; -------------------
708
; Major search robots
709
; -------------------
710

    
711
label = s:!:BaiduSpider:
712
sys   = BaiduSpider
713
sig   = 1:Host,Connection=[close],User-Agent,Accept=[*/*]:Accept-Encoding,Accept-Language,Accept-Charset:Baiduspider-image
714
sig   = 1:Host,Accept-Language=[zh-cn],Connection=[close],User-Agent:Accept,Accept-Encoding,Accept-Charset:Baiduspider
715
sig   = 1:Host,Connection=[close],User-Agent,Accept-Language=[zh-cn,zh-tw],Accept-Encoding=[gzip],Accept=[*/*]:Accept-Charset:Baiduspider
716
sig   = 1:Host,Connection=[close],User-Agent,Accept-Language=[tr-TR],Accept-Encoding=[gzip],Accept=[*/*]:Accept-Charset:Baiduspider
717
sig   = 1:Host,Connection=[close],User-Agent,Accept-Encoding=[gzip],?Accept-Language=[zh-cn,zh-tw],Accept=[*/*]:Accept-Charset:Baiduspider
718
sig   = 1:Host,Connection=[close],User-Agent,Accept-Encoding=[gzip],Accept-Language=[tr-TR],Accept=[*/*]:Accept-Charset:Baiduspider
719

    
720
label = s:!:Googlebot:
721
sys   = Linux
722
sig   = 1:Host,Connection=[Keep-alive],Accept=[*/*],From=[googlebot(at)googlebot.com],User-Agent,Accept-Encoding=[gzip,deflate],?If-Modified-Since:Accept-Language,Accept-Charset:Googlebot
723
sig   = 1:Host,Connection=[Keep-alive],Accept=[text/plain],Accept=[text/html],From=[googlebot(at)googlebot.com],User-Agent,Accept-Encoding=[gzip,deflate]:Accept-Language,Accept-Charset:Googlebot
724

    
725
label = s:!:Googlebot:feed fetcher
726
sys   = Linux
727
sig   = 1:Host,Connection=[Keep-alive],Accept=[*/*],User-Agent,Accept-Encoding=[gzip,deflate],?If-Modified-Since:Accept-Language,Accept-Charset:-Google
728
sig   = 1:User-Agent,?X-shindig-dos=[on],Cache-Control,Host,?X-Forwarded-For,Accept-Encoding=[gzip],?Accept-Language:Connection,Accept,Accept-Charset:Feedfetcher-Google
729

    
730
label = s:!:Bingbot:
731
sys   = Windows
732
sig   = 1:Cache-Control,Connection=[Keep-Alive],Pragma=[no-cache],Accept=[*/*],Accept-Encoding,Host,User-Agent:Accept-Language,Accept-Charset:bingbot/
733

    
734
; MSNbot has a really silly Accept header, only a tiny part of which is preserved here:
735

    
736
label = s:!:MSNbot:
737
sys   = Windows
738
sig   = 1:Connection=[Close],Accept,Accept-Encoding=[gzip, deflate],From=[msnbot(at)microsoft.com],Host,User-Agent:Accept-Language,Accept-Charset:msnbot
739

    
740
label = s:!:Yandex:crawler
741
sys   = FreeBSD
742
sig   = 1:Host,Connection=[Keep-Alive],Accept=[*/*],Accept-Encoding=[gzip,deflate],Accept-Language=[en-us, en;q=0.7, *;q=0.01],User-Agent,From=[support@search.yandex.ru]:Accept-Charset:YandexBot/
743
sig   = 1:Host,Connection=[Keep-Alive],Accept=[image/jpeg, image/pjpeg, image/png, image/gif],User-Agent,From=[support@search.yandex.ru]:Accept-Encoding,Accept-Language,Accept-Charset:YandexImages/
744
sig   = 1:Host,Connection=[Keep-Alive],User-Agent,From=[support@search.yandex.ru]:Accept,Accept-Encoding,Accept-Language,Accept-Charset:YandexBot/
745

    
746
label = s:!:Yahoo:crawler
747
sys   = Linux
748
sig   = 0:Host,User-Agent,Accept=[,image/png,*/*;q=0.5],Accept-Language=[en-us,en;q=0.5],Accept-Encoding=[gzip],Accept-Charset=[,utf-8;q=0.7,*;q=0.7]:Connection:Slurp
749

    
750
; -----------------
751
; Misc other robots
752
; -----------------
753

    
754
label = s:!:Flipboard:crawler
755
sys   = Linux
756
sig   = 1:User-Agent,Accept-Language=[en-us,en;q=0.5],Accept-Charset=[;q=0.7,*;q=0.5],Accept-Encoding=[gzip],Host,Accept=[*; q=.2, */*; q=.2],Connection=[keep-alive]::FlipboardProxy
757
sig   = 1:Accept-language=[en-us,en;q=0.5],Accept-encoding=[gzip],Accept=[;q=0.9,*/*;q=0.8],User-agent,Host:User-Agent,Connection,Accept-Encoding,Accept-Language,Accept-Charset:FlipboardProxy
758

    
759
label = s:!:Spinn3r:crawler
760
sys   = Linux
761
sig   = 1:User-Agent,Accept-Encoding=[gzip],Host,Accept=[*; q=.2, */*; q=.2],Connection=[close]:Accept-Language,Accept-Charset:Spinn3r
762

    
763
label = s:!:Facebook:crawler
764
sys   = Linux
765
sig   = 1:User-Agent,Host,Accept=[*/*],Accept-Encoding=[deflate, gzip],Connection=[close]:Accept-Language,Accept-Charset:facebookexternalhit/
766
sig   = 1:User-Agent,Host,Accept=[*/*],Connection=[close]:Accept-Encoding,Accept-Language,Accept-Charset:facebookexternalhit/
767

    
768
label = s:!:paper.li:crawler
769
sys   = Linux
770
sig   = 1:Accept-Language=[en-us,en;q=0.5],Accept=[*/*],User-Agent,Connection=[close],Accept-Encoding=[gzip,identity],?Referer,Host,Accept-Charset=[ISO-8859-1,utf-8;q=0.7,*;q=0.7]::PaperLiBot/
771

    
772
label = s:!:Twitter:crawler
773
sys   = Linux
774
sig   = 1:User-Agent=[Twitterbot/],Host,Accept=[*; q=.2, */*; q=.2],Cache-Control,Connection=[keep-alive]:Accept-Encoding,Accept-Language,Accept-Charset:Twitterbot/
775

    
776
label = s:!:linkdex:crawler
777
sys   = Linux
778
sig   = 0:Host,Connection=[Keep-Alive],User-Agent,Accept-Encoding=[gzip,deflate]:Accept,Accept-Language,Accept-Charset:linkdex.com/
779

    
780
label = s:!:Yodaobot:
781
sys   = Linux
782
sig   = 1:Accept-Encoding=[identity;q=0.5, *;q=0.1],User-Agent,Host:Connection,Accept,Accept-Language,Accept-Charset:YodaoBot/
783

    
784
label = s:!:Tweetmeme:crawler
785
sys   = Linux
786
sig   = 1:Host,User-Agent,Accept=[,image/png,*/*;q=0.5],Accept-Language=[en-gb,en;q=0.5],Accept-Charset=[ISO-8859-1,utf-8;q=0.7,*;q=0.7]:Connection,Accept-Encoding:TweetmemeBot/
787

    
788
label = s:!:Archive.org:crawler
789
sys   = Linux
790
sig   = 0:User-Agent,Connection=[close],Accept=[application/xml;q=0.9,*/*;q=0.8],Host:Accept-Encoding,Accept-Language,Accept-Charset:archive.org
791

    
792
label = s:!:Yahoo Pipes:
793
sys   = Linux
794
sig   = 0:Client-IP,X-Forwarded-For,X-YQL-Depth,User-Agent,Host,Connection=[keep-alive],Via:Accept,Accept-Encoding,Accept-Language,Accept-Charset:Yahoo Pipes
795
sig   = 1:Client-IP,X-Forwarded-For,X-YQL-Depth,User-Agent,Host,Via:Connection,Accept,Accept-Encoding,Accept-Language,Accept-Charset:Yahoo Pipes
796

    
797
label = s:!:Google Web Preview:
798
sys   = Linux
799
sig   = 1:Referer,User-Agent,Accept-Encoding=[gzip,deflate],Host,X-Forwarded-For:Connection,Accept,Accept-Language,Accept-Charset:Web Preview
800

    
801
; --------------------------------
802
; Command-line tools and libraries
803
; --------------------------------
804

    
805
label = s:!:wget:
806
sys   = @unix,Windows
807
sig   = *:User-Agent,Accept=[*/*],Host,Connection=[Keep-Alive]:Accept-Encoding,Accept-Language,Accept-Charset:Wget/
808

    
809
label = s:!:Lynx:
810
sys   = @unix,Windows
811
sig   = 0:Host,Accept=[text/sgml, */*;q=0.01],Accept-Encoding=[gzip, compress],Accept-Language,User-Agent:Connection,Accept-Charset:Lynx/
812

    
813
label = s:!:curl:
814
sys   = @unix,Windows
815
sig   = 1:User-Agent,Host,Accept=[*/*]:Connection,Accept-Encoding,Accept-Language,Accept-Charset:curl/
816

    
817
label = s:!:links:
818
sys   = @unix,Windows
819
sig   = 1:Host,User-Agent,Accept=[*/*],Accept-Encoding=[gzip, deflate, bzip2],Accept-Charset=[us-ascii],Accept-Language=[;q=0.1],Connection=[Keep-Alive]::Links
820
sig   = 1:Host,User-Agent,Accept=[*/*],Accept-Encoding=[gzip,deflate,bzip2],Accept-Charset=[us-ascii],Accept-Language=[;q=0.1],Connection=[keep-alive]::Links
821

    
822
label = s:!:elinks:
823
sys   = @unix,Windows
824
sig   = 1:Host,User-Agent,Accept=[*/*],Accept-Encoding=[bzip2, deflate, gzip],Accept-Language:Connection,Accept-Charset:ELinks/
825

    
826
label = s:!:Java:JRE
827
sys   = @unix,@win
828
sig   = 1:User-Agent,Host,Accept=[*; q=.2, */*; q=.2],Connection=[keep-alive]:Accept-Encoding,Accept-Language,Accept-Charset:Java/
829

    
830
label = s:!:Python:urllib
831
sys   = @unix,Windows
832
sig   = 1:Accept-Encoding=[identity],Host,Connection=[close],User-Agent:Accept,Accept-Language,Accept-Charset:Python-urllib/
833

    
834
label = s:!:w3m:
835
sys   = @unix,Windows
836
sig   = 0:User-Agent,Accept=[image/*],Accept-Encoding=[gzip, compress, bzip, bzip2, deflate],Accept-Language=[;q=1.0],Host:Connection,Accept-Charset:w3m/
837

    
838
label = s:!:libfetch:
839
sys   = @unix
840
sig   = 1:Host,User-Agent,Connection=[close]:Accept,Accept-Encoding,Accept-Language,Accept-Charset:libfetch/
841

    
842
; -------------
843
; Odds and ends
844
; -------------
845

    
846
label = s:!:Google AppEngine:
847
sys   = Linux
848
sig   = 1:User-Agent,Host,Accept-Encoding=[gzip]:Connection,Accept,Accept-Language,Accept-Charset:AppEngine-Google
849

    
850
label = s:!:WebOS:
851
sys   = Linux
852
sig   = 1:Host,Accept-Encoding=[gzip, deflate],User-Agent,Accept=[,*/*;q=0.5],Accept-Language,Accept-Charset=[utf-8;q=0.7,*;q=0.3]:Connection:wOSBrowser
853

    
854
label = s:!:xxxterm:
855
sys   = @unix
856
sig   = 1:Host,User-Agent,Accept=[*/*],Accept-Encoding=[gzip]:Connection,Accept-Language,Accept-Charset:xxxterm
857

    
858
label = s:!:Google Desktop:
859
sys   = Windows
860
sig   = 1:Accept=[*/*],Accept-Encoding=[gzip],User-Agent,Host,Connection=[Keep-Alive]:Accept-Language,Accept-Charset:Google Desktop/
861

    
862
label = s:!:luakit:
863
sys   = @unix
864
sig   = 1:Host,User-Agent,Accept=[*/*],Accept-Encoding=[gzip],Connection=[Keep-Alive]:Accept-Language,Accept-Charset:luakit
865

    
866
label = s:!:Epiphany:
867
sys   = @unix
868
sig   = 1:Host,User-Agent,Accept=[*/*],Accept-Encoding=[gzip],Accept-Language:Connection,Accept-Charset,Keep-Alive:Epiphany/
869

    
870
; ======================
871
; HTTP server signatures
872
; ======================
873

    
874
[http:response]
875

    
876
; ------
877
; Apache
878
; ------
879

    
880
label = s:!:Apache:2.x
881
sys   = @unix,Windows
882
sig   = 1:Date,Server,?Last-Modified,?Accept-Ranges=[bytes],?Content-Length,?Content-Range,Keep-Alive=[timeout],Connection=[Keep-Alive],?Transfer-Encoding=[chunked],Content-Type::Apache
883
sig   = 1:Date,Server,?Last-Modified,?Accept-Ranges=[bytes],?Content-Length,?Connection=[close],?Transfer-Encoding=[chunked],Content-Type:Keep-Alive:Apache
884
sig   = 1:Date,Server,Connection=[Keep-Alive],Keep-Alive=[timeout]:Content-Type,Accept-Ranges:Apache
885
sig   = 1:Date,Server,?Last-Modified,?Accept-Ranges=[bytes],?Content-Length,Content-Type,Keep-Alive=[timeout],Connection=[Keep-Alive]::Apache
886

    
887
label = s:!:Apache:1.x
888
sys   = @unix,Windows
889
sig   = 1:Server,Content-Type,?Content-Length,Date,Connection=[keep-alive]:Keep-Alive,Accept-Ranges:Apache
890
sig   = 1:Server,Content-Type,?Content-Length,Date,Connection=[close]:Keep-Alive,Accept-Ranges:Apache
891

    
892
; ---
893
; IIS
894
; ---
895

    
896
label = s:!:IIS:7.x
897
sys   = Windows
898
sig   = 1:?Content-Length,Content-Type,?Etag,Server,Date:Connection,Keep-Alive,Accept-Ranges:Microsoft-IIS/
899
sig   = 1:?Content-Length,Content-Type,?Etag,Server,Date,Connection=[close]:Keep-Alive,Accept-Ranges:Microsoft-IIS/
900

    
901
; --------
902
; lighttpd
903
; --------
904

    
905
label = s:!:lighttpd:2.x
906
sys   = @unix
907
sig   = 1:?ETag,?Last-Modified,Accept-Ranges=[bytes],Content-Type,?Vary,?Content-Length,Date,Server:Connection,Keep-Alive:lighttpd/
908
sig   = 1:?ETag,?Last-Modified,Transfer-Encoding=[chunked],Content-Type,?Vary,?Content-Length,Date,Server:Connection,Keep-Alive:lighttpd/
909

    
910
label = s:!:lighttpd:1.x
911
sys   = @unix
912
sig   = 1:Content-Type,Accept-Ranges=[bytes],?ETag,?Last-Modified,Date,Server:Connection,Keep-Alive:lighttpd/
913
sig   = 1:Content-Type,Transfer-Encoding=[chunked],?ETag,?Last-Modified,Date,Server:Connection,Keep-Alive:lighttpd/
914
sig   = 0:Content-Type,Content-Length,Connection=[close],Date,Server:Keep-Alive,Accept-Ranges:lighttpd/
915

    
916
; -----
917
; nginx
918
; -----
919

    
920
label = s:!:nginx:1.x
921
sys   = @unix
922
sig   = 1:Server,Date,Content-Type,?Content-Length,?Last-Modified,Connection=[keep-alive],Keep-Alive=[timeout],Accept-Ranges=[bytes]::nginx/
923
sig   = 1:Server,Date,Content-Type,?Content-Length,?Last-Modified,Connection=[close]:Keep-Alive,Accept-Ranges:nginx/
924

    
925
label = s:!:nginx:0.x
926
sys   = @unix
927
sig   = 1:Server,Date,Content-Type,?Content-Length,Connection=[keep-alive],?Last-Modified:Keep-Alive,Accept-Ranges:nginx/
928
sig   = 1:Server,Date,Content-Type,?Content-Length,Connection=[close],?Last-Modified:Keep-Alive,Accept-Ranges:nginx/
929

    
930
; -------------
931
; Odds and ends
932
; -------------
933

    
934
label = s:!:Google Web Server:
935
sys   = Linux
936
sig   = *:Content-Type,X-Content-Type-Options=[nosniff],Date,Server=[sffe]:Connection,Accept-Ranges,Keep-Alive,Connection:
937
sig   = *:Date,Content-Type,Server=[gws]:Connection,Accept-Ranges,Keep-Alive:
938
sig   = *:Content-Type,X-Content-Type-Options=[nosniff],Server=[GSE]:Connection,Accept-Ranges,Keep-Alive:
939

    
940
|
941

(1-1/2)