recog 0.01

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. data/.gitignore +3 -0
  2. data/.rspec +2 -0
  3. data/Gemfile +9 -0
  4. data/Gemfile.lock +42 -0
  5. data/LICENSE +23 -0
  6. data/README.md +63 -0
  7. data/bin/recog_export.rb +81 -0
  8. data/bin/recog_match.rb +51 -0
  9. data/bin/recog_verify.rb +45 -0
  10. data/features/match.feature +16 -0
  11. data/features/support/env.rb +5 -0
  12. data/features/verify.feature +31 -0
  13. data/features/xml/banners.xml +2 -0
  14. data/features/xml/failing_banners_fingerprints.xml +20 -0
  15. data/features/xml/matching_banners_fingerprints.xml +22 -0
  16. data/features/xml/no_tests.xml +53 -0
  17. data/features/xml/successful_tests.xml +33 -0
  18. data/features/xml/tests_with_failures.xml +10 -0
  19. data/features/xml/tests_with_warnings.xml +10 -0
  20. data/lib/recog.rb +3 -0
  21. data/lib/recog/db.rb +38 -0
  22. data/lib/recog/db_manager.rb +27 -0
  23. data/lib/recog/fingerprint.rb +60 -0
  24. data/lib/recog/formatter.rb +51 -0
  25. data/lib/recog/match_reporter.rb +77 -0
  26. data/lib/recog/matcher.rb +60 -0
  27. data/lib/recog/matcher_factory.rb +14 -0
  28. data/lib/recog/nizer.rb +263 -0
  29. data/lib/recog/verifier.rb +46 -0
  30. data/lib/recog/verifier_factory.rb +13 -0
  31. data/lib/recog/verify_reporter.rb +85 -0
  32. data/lib/recog/version.rb +3 -0
  33. data/recog.gemspec +34 -0
  34. data/spec/data/best_os_match_1.yml +17 -0
  35. data/spec/data/best_os_match_2.yml +17 -0
  36. data/spec/data/best_service_match_1.yml +17 -0
  37. data/spec/data/smb_native_os.txt +31 -0
  38. data/spec/data/test_fingerprints.xml +24 -0
  39. data/spec/lib/db_spec.rb +89 -0
  40. data/spec/lib/formatter_spec.rb +69 -0
  41. data/spec/lib/match_reporter_spec.rb +90 -0
  42. data/spec/lib/nizer_spec.rb +124 -0
  43. data/spec/lib/verify_reporter_spec.rb +112 -0
  44. data/xml/apache_os.xml +295 -0
  45. data/xml/architecture.xml +45 -0
  46. data/xml/ftp_banners.xml +808 -0
  47. data/xml/h323_callresp.xml +701 -0
  48. data/xml/hp_pjl_id.xml +435 -0
  49. data/xml/http_cookies.xml +379 -0
  50. data/xml/http_servers.xml +3326 -0
  51. data/xml/http_wwwauth.xml +412 -0
  52. data/xml/imap_banners.xml +267 -0
  53. data/xml/nntp_banners.xml +51 -0
  54. data/xml/ntp_banners.xml +538 -0
  55. data/xml/pop_banners.xml +452 -0
  56. data/xml/rsh_resp.xml +90 -0
  57. data/xml/sip_banners.xml +14 -0
  58. data/xml/smb_native_os.xml +385 -0
  59. data/xml/smtp_banners.xml +1738 -0
  60. data/xml/smtp_debug.xml +45 -0
  61. data/xml/smtp_ehlo.xml +53 -0
  62. data/xml/smtp_expn.xml +95 -0
  63. data/xml/smtp_help.xml +212 -0
  64. data/xml/smtp_mailfrom.xml +24 -0
  65. data/xml/smtp_noop.xml +45 -0
  66. data/xml/smtp_quit.xml +31 -0
  67. data/xml/smtp_rcptto.xml +33 -0
  68. data/xml/smtp_rset.xml +23 -0
  69. data/xml/smtp_turn.xml +23 -0
  70. data/xml/smtp_vrfy.xml +109 -0
  71. data/xml/snmp_sysdescr.xml +8008 -0
  72. data/xml/snmp_sysobjid.xml +284 -0
  73. data/xml/ssh_banners.xml +790 -0
  74. data/xml/upnp_banners.xml +590 -0
  75. metadata +190 -0
@@ -0,0 +1,435 @@
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ For printers running the PJL protocol (usually on 9100/tcp), their type can be requested
4
+ by the INFO ID command. The printer types (strings surrounded by double quotes) are
5
+ matched against these patterns to fingerprint the printer.
6
+ -->
7
+
8
+ <fingerprints>
9
+ <!--
10
+ LaserJet and Designjet are registered trademarks of HP. Therefore matching for the keywords
11
+ is sufficient for asserting all relevant information
12
+ -->
13
+ <fingerprint pattern="laserjet (.*)(?: series)?" flags="REG_ICASE">
14
+ <description>HP JetDirect Printer</description>
15
+ <example>HP LaserJet 4100 Series</example>
16
+ <example>HP LaserJet 2200</example>
17
+ <example>LASERJET 4050</example>
18
+ <example>LASERJET 4 PLUS</example>
19
+ <example>hp LaserJet 1320 series</example>
20
+ <example>hp color LaserJet 4600</example>
21
+ <example>HP Color LaserJet 3600</example>
22
+ <example>HP LASERJET 4ML</example>
23
+ <example>hp LaserJet 4345 mfp</example>
24
+ <example>HP Color LaserJet CM2320nf MFP</example>
25
+ <example>HP LaserJet 600 M602</example>
26
+ <example>HP LaserJet 1022n</example>
27
+ <example>HP LaserJet M1120n MFP</example>
28
+ <example>HP LaserJet P1505n</example>
29
+ <example>HP LaserJet P2014n</example>
30
+ <example>HP LaserJet P2035n</example>
31
+ <example>HP LaserJet P2055 Series</example>
32
+ <example>HP LaserJet Professional M1212nf MFP</example>
33
+ <example>HP LaserJet Professional P1606dn</example>
34
+ <example>20080613_1836 HP LaserJet P2055 Series</example>
35
+ <example>20080718_1441 HP LaserJet P2055 Series</example>
36
+ <example>20081103_1652 HP LaserJet P2055 Series</example>
37
+ <example>20081124_1804 HP LaserJet P2055 Series</example>
38
+ <example>20081124_1858 HP LaserJet P2055 Series</example>
39
+ <param pos="0" name="service.vendor" value="HP"/>
40
+ <param pos="0" name="service.product" value="JetDirect"/>
41
+ <param pos="0" name="service.family" value="JetDirect"/>
42
+ <param pos="0" name="os.vendor" value="HP"/>
43
+ <param pos="0" name="os.device" value="Printer"/>
44
+ <param pos="0" name="os.family" value="LaserJet"/>
45
+ <param pos="1" name="os.product"/>
46
+ </fingerprint>
47
+
48
+ <fingerprint pattern="(designjet \S+)" flags="REG_ICASE">
49
+ <description>HP Designjet printer</description>
50
+ <example>hp designjet 110plus</example>
51
+ <example>DESIGNJET 1050C</example>
52
+ <example>DESIGNJET 1055CM</example>
53
+ <example>DESIGNJET 700</example>
54
+ <param pos="0" name="service.vendor" value="HP"/>
55
+ <param pos="0" name="service.product" value="JetDirect"/>
56
+ <param pos="0" name="service.family" value="JetDirect"/>
57
+ <param pos="0" name="os.vendor" value="HP"/>
58
+ <param pos="0" name="os.family" value="DesignJet"/>
59
+ <param pos="0" name="os.device" value="Printer"/>
60
+ <param pos="1" name="os.product"/>
61
+ </fingerprint>
62
+
63
+ <fingerprint pattern="^Xerox ColorQube (\S+)$">
64
+ <description>Xerox ColorQube Multifunction Printer</description>
65
+ <example>Xerox ColorQube 8570DN</example>
66
+ <example>Xerox ColorQube 8570DT</example>
67
+ <example>Xerox ColorQube 8570N</example>
68
+ <param pos="0" name="os.vendor" value="Xerox"/>
69
+ <param pos="0" name="os.family" value="ColorQube"/>
70
+ <param pos="1" name="os.product"/>
71
+ <param pos="0" name="os.device" value="Multifunction Device"/>
72
+ </fingerprint>
73
+
74
+ <fingerprint pattern="^Brother (.+)$">
75
+ <description>Brother Printer</description>
76
+ <example>Brother HL-1660e</example>
77
+ <param pos="0" name="os.vendor" value="Brother"/>
78
+ <param pos="0" name="os.device" value="Printer"/>
79
+ <param pos="1" name="os.product"/>
80
+ </fingerprint>
81
+
82
+ <!-- Assert the product range as a product fingerprint. -->
83
+ <fingerprint pattern="^(iR ?\S+)">
84
+ <description>Canon iR multifunction device</description>
85
+ <example>iR 3180C EUR</example>
86
+ <example>iR C4080/C4580</example>
87
+ <example>iR1020/1024/1025</example>
88
+ <param pos="0" name="os.vendor" value="Canon"/>
89
+ <param pos="0" name="os.family" value="iR Series"/>
90
+ <param pos="0" name="os.device" value="Multifunction Device"/>
91
+ <param pos="1" name="os.product"/>
92
+ </fingerprint>
93
+
94
+ <fingerprint pattern="^(?:Dell (?:Color Laser |Laser Printer )?|(?:Color Laser |Laser Printer ))(\d+(?:n|cn|dn|cdn))(?: Color Laser| Laser Printer)?$"> -->
95
+ <description>Dell Laser Printer</description>
96
+ <example>Dell Laser Printer 1710n</example>
97
+ <example>Dell Color Laser 3110cn</example>
98
+ <example>Laser Printer 5100cn</example>
99
+ <example>Dell 2130cn Color Laser</example>
100
+ <example>Dell 2330dn Laser Printer</example>
101
+ <example>Dell 2350dn Laser Printer</example>
102
+ <example>Dell 3130cn Color Laser</example>
103
+ <example>Dell 5130cdn Color Laser</example>
104
+ <example>Dell 5230n Laser Printer</example>
105
+ <example>Dell 2145cn</example>
106
+ <param pos="0" name="os.vendor" value="Dell"/>
107
+ <param pos="0" name="os.family" value="Laser Printer"/>
108
+ <param pos="0" name="os.device" value="Printer"/>
109
+ <param pos="1" name="os.product"/>
110
+ </fingerprint>
111
+
112
+ <fingerprint pattern="^Dell (\d+(?:n|cn|dn|cdn)) MFP$">
113
+ <description>Dell Laser multifunction device</description>
114
+ <example>Dell 2135cn MFP</example>
115
+ <example>Dell 2335dn MFP</example>
116
+ <param pos="0" name="os.vendor" value="Dell"/>
117
+ <param pos="0" name="os.family" value="Laser Printer"/>
118
+ <param pos="0" name="os.device" value="Multifunction Device"/>
119
+ <param pos="1" name="os.product"/>
120
+ </fingerprint>
121
+
122
+ <fingerprint pattern="^HP (\S+ Digital Sender)$">
123
+ <description>HP Digital Sender scanner</description>
124
+ <example>HP 9250C Digital Sender</example>
125
+ <param pos="0" name="os.vendor" value="HP"/>
126
+ <param pos="0" name="os.device" value="Scanner"/>
127
+ <param pos="0" name="os.family" value="Digital Sender"/>
128
+ <param pos="1" name="os.product"/>
129
+ </fingerprint>
130
+
131
+ <fingerprint pattern="^(?:IBM )?Infoprint(?: Color)? (\S+)$">
132
+ <description>IBM Infoprint Printer</description>
133
+ <param pos="0" name="os.vendor" value="IBM"/>
134
+ <param pos="0" name="os.family" value="Infoprint"/>
135
+ <param pos="0" name="os.device" value="Printer"/>
136
+ <param pos="1" name="os.product"/>
137
+ </fingerprint>
138
+
139
+ <fingerprint pattern="^KM-(.*)$">
140
+ <description>Konica Minolta printer</description>
141
+ <example>KM-5050</example>
142
+ <param pos="0" name="os.vendor" value="Lexmark"/>
143
+ <param pos="0" name="os.device" value="Printer"/>
144
+ <param pos="1" name="os.product"/>
145
+ </fingerprint>
146
+
147
+ <fingerprint pattern="^(FS-\S+MFP\S*)$">
148
+ <description>Kyocera Mita Multifunction device</description>
149
+ <example>FS-C2126MFP</example>
150
+ <example>FS-C2126MFP+</example>
151
+ <example>FS-1035MFP/DP</example>
152
+ <param pos="0" name="os.vendor" value="Kyocera Mita"/>
153
+ <param pos="0" name="os.device" value="Multifunction Device"/>
154
+ <param pos="0" name="os.family" value="FS"/>
155
+ <param pos="1" name="os.product"/>
156
+ </fingerprint>
157
+
158
+ <fingerprint pattern="^(FS-(?:C)?\d+(?:D|DN))$">
159
+ <description>Kyocera Mita Printer</description>
160
+ <example>FS-C8500DN</example>
161
+ <example>FS-4100DN</example>
162
+ <example>FS-2020D</example>
163
+ <param pos="0" name="os.vendor" value="Kyocera Mita"/>
164
+ <param pos="0" name="os.device" value="Printer"/>
165
+ <param pos="0" name="os.family" value="FS"/>
166
+ <param pos="1" name="os.product"/>
167
+ </fingerprint>
168
+
169
+ <fingerprint pattern="^(TASKalfa \S+)$">
170
+ <description>Kyocera Mita TASKalfa multifunction device</description>
171
+ <example>TASKalfa 300ci</example>
172
+ <example>TASKalfa 520i</example>
173
+ <example>TASKalfa 250ci</example>
174
+ <param pos="0" name="os.vendor" value="Kyocera Mita"/>
175
+ <param pos="0" name="os.device" value="Multifunction Device"/>
176
+ <param pos="0" name="os.family" value="TASKalfa"/>
177
+ <param pos="1" name="os.product"/>
178
+ </fingerprint>
179
+
180
+ <fingerprint pattern="^Lexmark (.*)$">
181
+ <description>Lexmark JetDirect printer</description>
182
+ <example>Lexmark C910</example>
183
+ <example>Lexmark Optra LaserPrinter</example>
184
+ <example>Lexmark Optra S 1250</example>
185
+ <param pos="0" name="os.vendor" value="Lexmark"/>
186
+ <param pos="0" name="os.device" value="Printer"/>
187
+ <param pos="1" name="os.product"/>
188
+ </fingerprint>
189
+
190
+ <fingerprint pattern="^Oce (fx[^(?:\s|:)]+):.*$" flags="REG_ICASE">
191
+ <description>Oce FX series multifunction device</description>
192
+ <example os.product="fx3000">Oce fx3000:8C5-B29:Ver.D:U0707161719:B0601271355</example>
193
+ <param pos="0" name="os.vendor" value="Oce"/>
194
+ <param pos="0" name="os.family" value="FX Series"/>
195
+ <param pos="0" name="os.device" value="Multifunction Device"/>
196
+ <param pos="1" name="os.product"/>
197
+ </fingerprint>
198
+
199
+ <fingerprint pattern="^Oce (VL\S+):.*$" flags="REG_ICASE">
200
+ <description>Oce VarioLink multifunction device</description>
201
+ <example>Oce VL3200:8C5-D92:Ver.B</example>
202
+ <param pos="0" name="os.vendor" value="Oce"/>
203
+ <param pos="0" name="os.family" value="VarioLink"/>
204
+ <param pos="0" name="os.device" value="Multifunction Device"/>
205
+ <param pos="1" name="os.product"/>
206
+ </fingerprint>
207
+
208
+ <!-- IGI is Imagistics International, which was acquired by Oce.
209
+ I can't find MX-MBX3 or any variant online. -->
210
+ <fingerprint pattern="^OceIGI MX-\S+" flags="REG_ICASE">
211
+ <description>Oce-acquired IGI printer</description>
212
+ <example>OceIGI MX-NBX3 02-Jul-07 14:47</example>
213
+ <param pos="0" name="os.vendor" value="Oce"/>
214
+ <param pos="0" name="os.device" value="Printer"/>
215
+ </fingerprint>
216
+
217
+ <!-- im3510/4510 is actually a range of model numbers, but asserting a range
218
+ of models as a product is preferableto asserting nothing. -->
219
+ <fingerprint pattern="^Imagistics (im\S+) (.+)" flags="REG_ICASE">
220
+ <description>Oce IM series multifunction device</description>
221
+ <example>Imagistics im3510/4510 02-Aug-04 10:56</example>
222
+ <param pos="0" name="os.vendor" value="Oce"/>
223
+ <param pos="0" name="os.family" value="IM Series"/>
224
+ <param pos="0" name="os.device" value="Multifunction Device"/>
225
+ <param pos="0" name="system.time.format" value="dd-MMM-yy HH:mm"/>
226
+ <param pos="1" name="os.product"/>
227
+ <param pos="2" name="system.time"/>
228
+ </fingerprint>
229
+
230
+ <!-- C610 is a series; there are several models with suffixes n, dn, dtn, cdn -->
231
+ <fingerprint pattern="^OKI (C\d+)\S*$">
232
+ <description>Okidata color printer</description>
233
+ <example>OKI C610</example>
234
+ <example>OKI C710</example>
235
+ <!-- Conjectured -->
236
+ <example>OKI C710dn</example>
237
+ <param pos="0" name="os.vendor" value="Okidata"/>
238
+ <param pos="0" name="os.device" value="Printer"/>
239
+ <param pos="1" name="os.product"/>
240
+ </fingerprint>
241
+
242
+ <fingerprint pattern="^OKI (MC\d+)\S*$">
243
+ <description>Okidata multifunction device</description>
244
+ <example>OKI MC860</example>
245
+ <param pos="0" name="os.vendor" value="Okidata"/>
246
+ <param pos="0" name="os.device" value="Multifunction Device"/>
247
+ <param pos="1" name="os.product"/>
248
+ </fingerprint>
249
+
250
+ <fingerprint pattern="^RICOH ((?:Aficio|MP|SP) .*)$" flags="REG_ICASE">
251
+ <description>Ricoh Aficio Printer</description>
252
+ <example>RICOH Aficio 2075</example>
253
+ <example>RICOH Aficio AP610N</example>
254
+ <example>RICOH Aficio SP 8100DN</example>
255
+ <example>RICOH MP C1500/615C</example>
256
+ <param pos="0" name="os.vendor" value="Ricoh"/>
257
+ <param pos="0" name="os.family" value="Aficio"/>
258
+ <param pos="1" name="os.product"/>
259
+ <param pos="0" name="os.device" value="Printer"/>
260
+ </fingerprint>
261
+
262
+ <!-- NRG was acquired by Ricoh; classify NRG printers as such.
263
+ Be consistent with snmp_sysdescr.xml. -->
264
+ <fingerprint pattern="^NRG ([MS]P \S+)$" flags="REG_ICASE">
265
+ <description>Ricoh NRG printer</description>
266
+ <example>NRG MP 171</example>
267
+ <example>NRG MP 3350</example>
268
+ <example>NRG MP C2550</example>
269
+ <example>NRG MP C2800</example>
270
+ <example>NRG MP C3500</example>
271
+ <example>NRG MP C4000</example>
272
+ <example>NRG MP C4500</example>
273
+ <example>NRG SP C231SF</example>
274
+ <param pos="0" name="os.vendor" value="Ricoh"/>
275
+ <param pos="0" name="os.device" value="Printer"/>
276
+ <param pos="1" name="os.product"/>
277
+ </fingerprint>
278
+
279
+ <!-- Gestetner == NRG, and was acquired by Ricoh.
280
+ Assert the range of products as os.product. -->
281
+ <fingerprint pattern="^Gestetner (MP\S+/DSc\S+)$" flags="REG_ICASE">
282
+ <description>Ricoh Gestetner multifunction device</description>
283
+ <example>Gestetner MPC2500/DSc525</example>
284
+ <param pos="0" name="os.vendor" value="Ricoh"/>
285
+ <param pos="0" name="os.device" value="Multifunction Device"/>
286
+ <param pos="1" name="os.product"/>
287
+ </fingerprint>
288
+
289
+ <fingerprint pattern="^HYDRA$" flags="REG_ICASE">
290
+ <description>RSI Hydra printer</description>
291
+ <example>HYDRA</example>
292
+ <param pos="0" name="os.vendor" value="RSI"/>
293
+ <param pos="0" name="os.device" value="Printer"/>
294
+ <param pos="0" name="os.product" value="Hydra"/>
295
+ </fingerprint>
296
+
297
+ <fingerprint pattern="^Savin (\S+)$" flags="REG_ICASE">
298
+ <description>Savin Printer</description>
299
+ <example>SAVIN 4075</example>
300
+ <param pos="0" name="os.vendor" value="Savin"/>
301
+ <param pos="0" name="os.device" value="Printer"/>
302
+ <param pos="1" name="os.product"/>
303
+ </fingerprint>
304
+
305
+ <fingerprint pattern="^Samsung ((?:SCX|CLX)-\S+) Series$" flags="REG_ICASE">
306
+ <description>Samsung multifunction device</description>
307
+ <example>Samsung SCX-5835_5935 Series</example>
308
+ <!-- Conjectured -->
309
+ <example>Samsung CLX-4195 Series</example>
310
+ <param pos="0" name="os.vendor" value="Samsung"/>
311
+ <param pos="0" name="os.device" value="Multifunction Device"/>
312
+ <param pos="1" name="os.product"/>
313
+ </fingerprint>
314
+
315
+ <fingerprint pattern="^Samsung ((?:ML|CLP)-\S+) Series$" flags="REG_ICASE">
316
+ <description>Samsung printer</description>
317
+ <example>Samsung CLP-680 Series</example>
318
+ <example>Samsung ML-5012_5512 Series</example>
319
+ <param pos="0" name="os.vendor" value="Samsung"/>
320
+ <param pos="0" name="os.device" value="Printer"/>
321
+ <param pos="1" name="os.product"/>
322
+ </fingerprint>
323
+
324
+ <fingerprint pattern="^SHARP (\S+-\S+) .*$" flags="REG_ICASE">
325
+ <description>Sharp Printer</description>
326
+ <example>Sharp MX-NBX3 18-Mar-08 10:22</example>
327
+ <example>Sharp AR-P17 24-Mar-04 19:55</example>
328
+ <param pos="0" name="os.vendor" value="Sharp"/>
329
+ <param pos="0" name="os.device" value="Printer"/>
330
+ <param pos="1" name="os.product"/>
331
+ </fingerprint>
332
+
333
+ <fingerprint pattern="^Source Technologies (\S+)$" flags="REG_ICASE">
334
+ <description>Source Technologies Printer</description>
335
+ <example>Source Technologies ST-9620</example>
336
+ <param pos="0" name="os.vendor" value="Source Technologies"/>
337
+ <param pos="0" name="os.device" value="Printer"/>
338
+ <param pos="1" name="os.product"/>
339
+ </fingerprint>
340
+
341
+ <!-- Consistent with snmp_sysdescr.xml -->
342
+ <fingerprint pattern="^TOSHIBA (e-STUDIO\S+)(?:\s+.*)?" certainty="0.9">
343
+ <description>Toshiba e-STUDIO multifunction device</description>
344
+ <example>TOSHIBA e-STUDIO350 V468Z 20061013</example>
345
+ <example>TOSHIBA e-STUDIO350-450 V444Z 20041104</example>
346
+ <example>TOSHIBA e-STUDIO450 V468Z 20061013</example>
347
+ <example>TOSHIBA e-STUDIO500S</example>
348
+ <param pos="0" name="os.vendor" value="Toshiba"/>
349
+ <param pos="0" name="os.family" value="e-STUDIO"/>
350
+ <param pos="0" name="os.device" value="Multifunction Device"/>
351
+ <param pos="1" name="os.product"/>
352
+ </fingerprint>
353
+
354
+ <!-- TODO:
355
+ Xerox AccXES devices are documented to return:
356
+
357
+ "<printer name> <release #>"
358
+ <FF>
359
+
360
+ In the above, <printer name> is the official product name of the
361
+ AccXES printer, and <release #> corresponds to a software release
362
+ number.
363
+ -->
364
+
365
+ <fingerprint pattern="^(?:ID=)?Xerox (Phaser \S+)$" certainty="0.9">
366
+ <description>Xerox Phaser Printer</description>
367
+ <example>Xerox Phaser 6180MFP-D</example>
368
+ <example>ID=Xerox Phaser 5400</example>
369
+ <example>Xerox Phaser 4400DT</example>
370
+ <example>Xerox Phaser 4400N</example>
371
+ <example>Xerox Phaser 4500DT</example>
372
+ <example>Xerox Phaser 4500N</example>
373
+ <example>Xerox Phaser 4510DT</example>
374
+ <example>Xerox Phaser 4510N</example>
375
+ <example>Xerox Phaser 5500DN</example>
376
+ <example>Xerox Phaser 5550DN</example>
377
+ <example>Xerox Phaser 5550DT</example>
378
+ <example>Xerox Phaser 6300DN</example>
379
+ <example>Xerox Phaser 6360DN</example>
380
+ <example>Xerox Phaser 6360DT</example>
381
+ <example>Xerox Phaser 7750DN</example>
382
+ <example>Xerox Phaser 7750GX</example>
383
+ <example>Xerox Phaser 7760DN</example>
384
+ <example>Xerox Phaser 7760GX</example>
385
+ <example>Xerox Phaser 8400N</example>
386
+ <example>Xerox Phaser 8550DP</example>
387
+ <example>Xerox Phaser 8560</example>
388
+ <example>Xerox Phaser 8560DN</example>
389
+ <example>Xerox Phaser 8560N</example>
390
+ <example>Xerox Phaser 8860MFP</example>
391
+ <param pos="0" name="os.vendor" value="Xerox"/>
392
+ <param pos="0" name="os.family" value="Phaser"/>
393
+ <param pos="0" name="os.device" value="Printer"/>
394
+ <param pos="1" name="os.product"/>
395
+ </fingerprint>
396
+
397
+ <fingerprint pattern="^Xerox (WorkCentre .*)$" certainty="0.9">
398
+ <description>Xerox Workcentre Printer</description>
399
+ <example>Xerox WorkCentre 7425</example>
400
+ <example>Xerox WorkCentre Pro 245</example>
401
+ <example>Xerox WorkCentre Pro 55, v1 Multifunction System</example>
402
+ <param pos="0" name="os.vendor" value="Xerox"/>
403
+ <param pos="0" name="os.family" value="WorkCentre"/>
404
+ <param pos="1" name="os.product"/>
405
+ <param pos="0" name="os.device" value="Printer"/>
406
+ </fingerprint>
407
+
408
+ <fingerprint pattern="^(XC\S+)$" certainty="0.9">
409
+ <description>Xerox XC Printer</description>
410
+ <example>XC560</example>
411
+ <param pos="0" name="os.vendor" value="Xerox"/>
412
+ <param pos="0" name="os.family" value="XC"/>
413
+ <param pos="0" name="os.device" value="Printer"/>
414
+ <param pos="1" name="os.product"/>
415
+ </fingerprint>
416
+
417
+ <fingerprint pattern="^(DC\S+)$" certainty="0.9">
418
+ <description>Xerox DocuColor Printer</description>
419
+ <example>DC250</example>
420
+ <param pos="0" name="os.vendor" value="Xerox"/>
421
+ <param pos="0" name="os.family" value="DocuColor"/>
422
+ <param pos="0" name="os.device" value="Printer"/>
423
+ <param pos="1" name="os.product"/>
424
+ </fingerprint>
425
+
426
+ <fingerprint pattern="^(EX\d+-\d+)$" certainty="0.9">
427
+ <description>Xerox EX Print Server, powered by EFI Fiery</description>
428
+ <example>EX4112-4127</example>
429
+ <param pos="0" name="os.vendor" value="Xerox"/>
430
+ <param pos="0" name="os.family" value="EX"/>
431
+ <param pos="0" name="os.device" value="Print server"/>
432
+ <param pos="1" name="os.product"/>
433
+ </fingerprint>
434
+
435
+ </fingerprints>
@@ -0,0 +1,379 @@
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ Set-Cookie HTTP header values are matched against these patterns to fingerprint HTTP
4
+ servers.
5
+ -->
6
+
7
+ <fingerprints matches="http_header.cookie">
8
+ <fingerprint pattern="^(CFCLIENT_[^=]+|CFGLOBALS|CFID|CFTOKEN)=.*">
9
+ <description>
10
+ Adobe (Macromedia) ColdFusion uses various cookies.
11
+ See http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_17915&amp;sliceId=1
12
+ and http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_17919&amp;sliceId=2
13
+ </description>
14
+ <param pos="1" name="cookie"/>
15
+ <param pos="0" name="service.vendor" value="Adobe"/>
16
+ <param pos="0" name="service.family" value="ColdFusion"/>
17
+ <param pos="0" name="service.product" value="ColdFusion"/>
18
+ </fingerprint>
19
+
20
+ <fingerprint pattern="^(Apache)=[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.([0-9]+);.*">
21
+ <description>Apache</description>
22
+ <param pos="1" name="cookie"/>
23
+ <param pos="2" name="system.time.micros"/>
24
+ <param pos="0" name="service.vendor" value="Apache"/>
25
+ <param pos="0" name="service.family" value="Apache"/>
26
+ <param pos="0" name="service.product" value="HTTPD"/>
27
+ </fingerprint>
28
+
29
+ <fingerprint pattern="^(JServSessionIdroot)=.*">
30
+ <description>Apache JServ</description>
31
+ <param pos="1" name="cookie"/>
32
+ <param pos="0" name="service.vendor" value="Apache"/>
33
+ <param pos="0" name="service.family" value="JServ"/>
34
+ <param pos="0" name="service.product" value="JServ"/>
35
+ </fingerprint>
36
+
37
+ <fingerprint pattern="^(ATG_SESSION_ID|DYN_USER_CONFIRM|DYN_USER_ID)=.*">
38
+ <description>ATG Dynamo</description>
39
+ <param pos="1" name="cookie"/>
40
+ <param pos="0" name="service.vendor" value="ATG"/>
41
+ <param pos="0" name="service.family" value="Dynamo"/>
42
+ <param pos="0" name="service.product" value="Dynamo"/>
43
+ </fingerprint>
44
+
45
+ <fingerprint pattern="^(WebLogicSession)=[^!]+![^!]+!([0-9]+);.*">
46
+ <description>BEA WebLogic (with timestamp)</description>
47
+ <param pos="1" name="cookie"/>
48
+ <param pos="2" name="system.time.millis"/>
49
+ <param pos="0" name="service.vendor" value="BEA"/>
50
+ <param pos="0" name="service.family" value="WebLogic"/>
51
+ <param pos="0" name="service.product" value="WebLogic"/>
52
+ </fingerprint>
53
+
54
+ <fingerprint pattern="^(WebLogicSession)=.*">
55
+ <description>BEA WebLogic (no timestamp)</description>
56
+ <param pos="1" name="cookie"/>
57
+ <param pos="0" name="service.vendor" value="BEA"/>
58
+ <param pos="0" name="service.family" value="WebLogic"/>
59
+ <param pos="0" name="service.product" value="WebLogic"/>
60
+ </fingerprint>
61
+
62
+ <fingerprint pattern="^(BCSI-CSC[0-9A-Za-z]+)=.*">
63
+ <description>BlueCoat Proxy</description>
64
+ <param pos="1" name="cookie"/>
65
+ <param pos="0" name="service.vendor" value="Blue Coat"/>
66
+ <param pos="0" name="service.family" value="Proxy"/>
67
+ <param pos="0" name="service.product" value="Proxy"/>
68
+ </fingerprint>
69
+
70
+ <fingerprint pattern="^(CAKEPHP)=.*">
71
+ <description>CakePHP http://www.cakephp.org/</description>
72
+ <param pos="1" name="cookie"/>
73
+ <param pos="0" name="service.family" value="PHP"/>
74
+ <param pos="0" name="service.product" value="CakePHP"/>
75
+ </fingerprint>
76
+
77
+ <fingerprint pattern="^(ARPT)=([A-Z]+)([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})([A-Z]+).*">
78
+ <description>Cisco 11000 Series Content Service Switch (CSS)
79
+ http://www.cisco.com/warp/public/117/AP_cookies.html
80
+
81
+ The cookie value breaks down to [box-id][service-id][timeout-value]
82
+ unfortunately, there's no separator so it's hard to tell what the
83
+ actual break is between the pieces of data.
84
+ </description>
85
+ <param pos="1" name="cookie"/>
86
+ <param pos="2" name="host.id"/>
87
+ <param pos="3" name="host.ip"/>
88
+ <param pos="4" name="timeout"/>
89
+ <param pos="0" name="service.vendor" value="Cisco"/>
90
+ <param pos="0" name="service.family" value="Content Service Switch"/>
91
+ <param pos="0" name="service.product" value="11000 Series Content Service Switch"/>
92
+ </fingerprint>
93
+
94
+ <fingerprint pattern="^(ARPT)=.*">
95
+ <description>Cisco 11000 Series Content Service Switch (CSS)
96
+ http://www.cisco.com/warp/public/117/AP_cookies.html
97
+
98
+ The cookie value breaks down to [box-id][service-id][timeout-value]
99
+ unfortunately, there's no separator so it's hard to tell what the
100
+ actual break is between the pieces of data.
101
+ </description>
102
+ <param pos="1" name="cookie"/>
103
+ <param pos="0" name="service.vendor" value="Cisco"/>
104
+ <param pos="0" name="service.family" value="Content Service Switch"/>
105
+ <param pos="0" name="service.product" value="11000 Series Content Service Switch"/>
106
+ </fingerprint>
107
+
108
+ <fingerprint pattern="^(st8id)=.*">
109
+ <description>Citrix Application Protection System, Enterprise
110
+ http://support.citrix.com/article/CTX109330
111
+ </description>
112
+ <param pos="1" name="cookie"/>
113
+ <param pos="0" name="service.vendor" value="Citrix"/>
114
+ <param pos="0" name="service.family" value="Application Protection System"/>
115
+ <param pos="0" name="service.product" value="Application Protection System, Enterprise"/>
116
+ </fingerprint>
117
+
118
+ <fingerprint pattern="^(EktGUID|ecm)=.*">
119
+ <description>Ektron CMS400.net
120
+ http://www.ektron.com/developers/cms400kb.cfm?id=2174
121
+ </description>
122
+ <param pos="1" name="cookie"/>
123
+ <param pos="0" name="service.vendor" value="Ektron"/>
124
+ <param pos="0" name="service.family" value="CMS400.NET"/>
125
+ <param pos="0" name="service.product" value="CMS400.NET"/>
126
+ </fingerprint>
127
+
128
+ <fingerprint pattern="^(BIGipServer([^=]+))=.*">
129
+ <description>F5 BIG-IP LTM
130
+ http://www.f5.com/solutions/deployment/pdfs/peoplesoft-ltm-dg.pdf
131
+ http://www.f5.com/solutions/deployment/pdfs/SAP_v94_dg.pdf
132
+ </description>
133
+ <param pos="1" name="cookie"/>
134
+ <param pos="2" name="loadbalancer.poolname"/>
135
+ <param pos="0" name="service.vendor" value="F5 Labs"/>
136
+ <param pos="0" name="service.family" value="BIG-IP"/>
137
+ <param pos="0" name="service.product" value="BIG-IP LTM"/>
138
+ </fingerprint>
139
+
140
+ <fingerprint pattern="^(BigIPCookie)=.*">
141
+ <description>F5 BIG-IP LTM
142
+ http://www.f5.com/solutions/deployment/pdfs/peoplesoft-ltm-dg.pdf
143
+ http://www.f5.com/solutions/deployment/pdfs/SAP_v94_dg.pdf
144
+ </description>
145
+ <param pos="1" name="cookie"/>
146
+ <param pos="0" name="service.vendor" value="F5 Labs"/>
147
+ <param pos="0" name="service.family" value="BIG-IP"/>
148
+ <param pos="0" name="service.product" value="BIG-IP LTM"/>
149
+ </fingerprint>
150
+
151
+ <fingerprint pattern="^(SERVERID)=([A-Za-z0-9\-_]+)">
152
+ <description>HAProxy
153
+ http://haproxy.1wt.eu/download/1.2/doc/architecture.txt
154
+ </description>
155
+ <param pos="1" name="cookie"/>
156
+ <param pos="2" name="host.name"/>
157
+ <param pos="0" name="service.family" value="HAProxy"/>
158
+ <param pos="0" name="service.product" value="HAProxy"/>
159
+ </fingerprint>
160
+
161
+ <fingerprint pattern="^(AMWEBJCT!([^!]+)!([^=]+))=.*">
162
+ <description>IBM Tivoli Access Manager for e-business WebSEAL
163
+ http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=/com.ibm.itame.doc/am60_webseal_admin180.htm
164
+ </description>
165
+ <param pos="1" name="cookie"/>
166
+ <param pos="2" name="junction.name"/>
167
+ <param pos="3" name="junction.cookie"/>
168
+ <param pos="0" name="service.vendor" value="IBM"/>
169
+ <param pos="0" name="service.family" value="Tivoli"/>
170
+ <param pos="0" name="service.product" value="Tivoli Access Manager for e-business WebSEAL"/>
171
+ </fingerprint>
172
+
173
+ <fingerprint pattern="^(PD-S-SESSION-ID|PD-H-SESSION-ID|PD_STATEFUL_[^=]+)=.*">
174
+ <description>IBM Tivoli Access Manager for e-business WebSeal
175
+ http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=/com.ibm.itame.doc/am60_webseal_admin117.htm
176
+ </description>
177
+ <param pos="1" name="cookie"/>
178
+ <param pos="0" name="service.vendor" value="IBM"/>
179
+ <param pos="0" name="service.family" value="Tivoli"/>
180
+ <param pos="0" name="service.product" value="Tivoli Access Manager for e-business WebSEAL"/>
181
+ </fingerprint>
182
+
183
+ <fingerprint pattern="^(IBMCBR)=.*">
184
+ <description>IBM WebSphere Load Balancer
185
+ http://www-306.ibm.com/software/webservers/appserv/doc/v51/ec/infocenter/edge/LBguide.htm
186
+ </description>
187
+ <param pos="1" name="cookie"/>
188
+ <param pos="0" name="service.vendor" value="IBM"/>
189
+ <param pos="0" name="service.family" value="WebSphere"/>
190
+ <param pos="0" name="service.product" value="WebSphere Load Balancer"/>
191
+ </fingerprint>
192
+
193
+ <fingerprint pattern="^(mbfcookie(\[lang\])?)=.*">
194
+ <description>Joom!Fish http://www.joomfish.net/
195
+ </description>
196
+ <param pos="1" name="cookie"/>
197
+ <param pos="0" name="service.family" value="Joom!Fish"/>
198
+ <param pos="0" name="service.product" value="Joom!Fish"/>
199
+ </fingerprint>
200
+
201
+ <fingerprint pattern="^(MSCSAuth|MSCSProfile)=.*">
202
+ <description>Microsoft Commerce Server
203
+ http://msdn2.microsoft.com/en-us/library/ms953828.aspx
204
+ </description>
205
+ <param pos="1" name="cookie"/>
206
+ <param pos="0" name="service.vendor" value="Microsoft"/>
207
+ <param pos="0" name="service.family" value="Commerce Server"/>
208
+ <param pos="0" name="service.product" value="Commerce Server"/>
209
+ </fingerprint>
210
+
211
+ <fingerprint pattern="^(ASPSESSIONID[A-Z]+|ASP\.NET_SessionId|\.ASPXANONYMOUS)=.*">
212
+ <description>Microsoft IIS (ASP.NET)
213
+ http://msdn2.microsoft.com/en-us/library/ms953828.aspx
214
+ http://support.microsoft.com/kb/899918
215
+ http://msdn2.microsoft.com/en-us/library/91ka2e6a.aspx
216
+ </description>
217
+ <param pos="1" name="cookie"/>
218
+ <param pos="0" name="service.vendor" value="Microsoft"/>
219
+ <param pos="0" name="service.family" value="IIS"/>
220
+ <param pos="0" name="service.product" value="IIS"/>
221
+ <param pos="0" name="service.component.vendor" value="Microsoft"/>
222
+ <param pos="0" name="service.component.family" value="ASP.NET"/>
223
+ <param pos="0" name="service.component.product" value="ASP.NET"/>
224
+ </fingerprint>
225
+
226
+ <fingerprint pattern="^(AlteonP)=.*">
227
+ <description>Nortel Alteon Web Switch</description>
228
+ <param pos="1" name="cookie"/>
229
+ <param pos="0" name="service.vendor" value="Nortel"/>
230
+ <param pos="0" name="service.family" value="Alteon"/>
231
+ <param pos="0" name="service.product" value="Alteon Web Switch"/>
232
+ </fingerprint>
233
+
234
+ <fingerprint pattern="^((SS_X_)?CSINTERSESSIONID)=.*">
235
+ <description>OpenMarket/FatWire Content Server (www.fatwire.com)</description>
236
+ <param pos="1" name="cookie"/>
237
+ <param pos="0" name="service.vendor" value="FatWire"/>
238
+ <param pos="0" name="service.family" value="Content Server"/>
239
+ <param pos="0" name="service.product" value="Content Server"/>
240
+ </fingerprint>
241
+
242
+ <fingerprint pattern="^(parkinglot)=.*">
243
+ <description>Oversee Webserver</description>
244
+ <param pos="1" name="cookie"/>
245
+ <param pos="0" name="service.vendor" value="Oversee"/>
246
+ <param pos="0" name="service.family" value="Webserver"/>
247
+ <param pos="0" name="service.product" value="Webserver"/>
248
+ </fingerprint>
249
+
250
+ <fingerprint pattern="^(PHPSESSID|PHPSESSION)=.*">
251
+ <description>PHP http://www.php.net/ref.session</description>
252
+ <param pos="1" name="cookie"/>
253
+ <param pos="0" name="service.vendor" value="PHP"/>
254
+ <param pos="0" name="service.family" value="PHP"/>
255
+ <param pos="0" name="service.product" value="PHP"/>
256
+ </fingerprint>
257
+
258
+ <fingerprint pattern="^(RMID)=.*">
259
+ <description>RealMedia OpenAdStream</description>
260
+ <param pos="1" name="cookie"/>
261
+ <param pos="0" name="service.vendor" value="RealMedia"/>
262
+ <param pos="0" name="service.family" value="OpenAdStream"/>
263
+ <param pos="0" name="service.product" value="OpenAdStream"/>
264
+ </fingerprint>
265
+
266
+ <fingerprint pattern="^(RoxenUserID)=.*">
267
+ <description>Roxen WebServer</description>
268
+ <param pos="1" name="cookie"/>
269
+ <param pos="0" name="service.vendor" value="Roxen"/>
270
+ <param pos="0" name="service.family" value="WebServer"/>
271
+ <param pos="0" name="service.product" value="WebServer"/>
272
+ </fingerprint>
273
+
274
+ <fingerprint pattern="^(_sn)=.*">
275
+ <description>Siebel CRM</description>
276
+ <param pos="1" name="cookie"/>
277
+ <param pos="0" name="service.vendor" value="Siebel"/>
278
+ <param pos="0" name="service.family" value="CRM"/>
279
+ <param pos="0" name="service.product" value="CRM"/>
280
+ </fingerprint>
281
+
282
+ <!-- This fingerprint is not specific enough. Multiple products are sold under
283
+ the brand iPlanet/Sun ONE/Sun Java.
284
+ <fingerprint pattern="^(iPlanetUserId)=.*">
285
+ <description>Sun iPlanet</description>
286
+ <param pos="1" name="cookie"/>
287
+ <param pos="0" name="service.vendor" value="Sun"/>
288
+ <param pos="0" name="service.family" value="???"/>
289
+ <param pos="0" name="service.product" value="???"/>
290
+ </fingerprint>
291
+ -->
292
+
293
+ <fingerprint pattern="^(NSES40Session)=.*">
294
+ <description>Netscape Enterprise Server (subsequently iPlanet Web Server,
295
+ Sun ONE Web Server, presently Sun Java System Web Server)</description>
296
+ <param pos="1" name="cookie"/>
297
+ <param pos="0" name="service.vendor" value="Sun"/>
298
+ <param pos="0" name="service.family" value="Java System Web Server"/>
299
+ <param pos="0" name="service.product" value="Java System Web Server"/>
300
+ <param pos="0" name="service.version" value="4.0"/>
301
+ </fingerprint>
302
+
303
+ <fingerprint pattern="^(gx_session_id|JROUTE)=.*">
304
+ <description>Sun Java System Application Server (formerly iPlanet Application Server,
305
+ Sun ONE Application Server)</description>
306
+ <param pos="1" name="cookie"/>
307
+ <param pos="0" name="service.vendor" value="Sun"/>
308
+ <param pos="0" name="service.family" value="Java System Application Server"/>
309
+ <param pos="0" name="service.product" value="Java System Application Server"/>
310
+ </fingerprint>
311
+
312
+ <fingerprint pattern="^(fe_typo_user)=.*">
313
+ <description>TYPO3 CMS - http://typo3.com/</description>
314
+ <param pos="1" name="cookie"/>
315
+ <param pos="0" name="service.vendor" value="TYPO3"/>
316
+ <param pos="0" name="service.family" value="CMS"/>
317
+ <param pos="0" name="service.product" value="CMS"/>
318
+ </fingerprint>
319
+
320
+ <fingerprint pattern="^(SaneID)=.*">
321
+ <description>Unica NetTracker - http://netinsight.unica.com/Products/NetTracker.cfm</description>
322
+ <param pos="1" name="cookie"/>
323
+ <param pos="0" name="service.vendor" value="Unica"/>
324
+ <param pos="0" name="service.family" value="NetTracker"/>
325
+ <param pos="0" name="service.product" value="NetTracker"/>
326
+ </fingerprint>
327
+
328
+ <fingerprint pattern="^(__utm[a-z])=.*">
329
+ <description>Urchin Tracking Module
330
+ http://www.google.com/support/urchin45/bin/answer.py?answer=28307&amp;topic=7425
331
+ </description>
332
+ <param pos="1" name="cookie"/>
333
+ <param pos="0" name="service.vendor" value="Google"/>
334
+ <param pos="0" name="service.family" value="Urchin"/>
335
+ <param pos="0" name="service.product" value="Urchin Tracking Module"/>
336
+ </fingerprint>
337
+
338
+ <fingerprint pattern="^(vgncontext|vgnvisitor|ssuid)=.*">
339
+ <description>Vignette</description>
340
+ <param pos="1" name="cookie"/>
341
+ <param pos="0" name="service.vendor" value="Vignette"/>
342
+ <param pos="0" name="service.family" value="Vignette"/>
343
+ <param pos="0" name="service.product" value="Vignette"/>
344
+ </fingerprint>
345
+
346
+ <fingerprint pattern="^(wgSession)=.*">
347
+ <description>Plain Black WebGUI - http://www.plainblack.com/webgui</description>
348
+ <param pos="1" name="cookie"/>
349
+ <param pos="0" name="service.vendor" value="Plain Black"/>
350
+ <param pos="0" name="service.family" value="WebGUI"/>
351
+ <param pos="0" name="service.product" value="WebGUI"/>
352
+ </fingerprint>
353
+
354
+ <fingerprint pattern="^(WEBTRENDSID|WEBTRENDS_ID)=.*">
355
+ <description>WebTrends</description>
356
+ <param pos="1" name="cookie"/>
357
+ <param pos="0" name="service.vendor" value="WebTrends"/>
358
+ <param pos="0" name="service.family" value="WebTrends"/>
359
+ <param pos="0" name="service.product" value="WebTrends"/>
360
+ </fingerprint>
361
+
362
+ <fingerprint pattern="^(_ZopeId)=.*">
363
+ <description>Zope</description>
364
+ <param pos="1" name="cookie"/>
365
+ <param pos="0" name="service.family" value="Zope"/>
366
+ <param pos="0" name="service.product" value="Zope"/>
367
+ </fingerprint>
368
+
369
+ <fingerprint pattern="^(portal)=([0-9]+\.[0-9]+\.[0-9]+).*">
370
+ <description>This is the default OracleAS Portal cookie name
371
+ http://download.oracle.com/docs/cd/B14099_19/portal.1014/b19305/cg_app_f.htm
372
+ </description>
373
+ <param pos="1" name="cookie"/>
374
+ <param pos="2" name="service.version"/>
375
+ <param pos="0" name="service.vendor" value="Oracle"/>
376
+ <param pos="0" name="service.family" value="OracleAS"/>
377
+ <param pos="0" name="service.product" value="OracleAS Portal"/>
378
+ </fingerprint>
379
+ </fingerprints>