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,412 @@
1
+ <?xml version="1.0"?>
2
+ <!-- HTTP WWW-Authenticate headers are matched against these patterns to fingerprint HTTP servers. -->
3
+
4
+ <fingerprints matches="http_header.wwwauth">
5
+ <fingerprint pattern="^(?:Basic|Digest) realm=.[iI]RMC(?:@(IRMC[0-9a-fA-F]{6}))?..*$">
6
+ <!-- Digest realm="iRMC@IRMCC36EAC", qop="auth", nonce="00129ced-00000003", opaque="3", stale="FALSE"
7
+ http://manuals.fujitsu-siemens.com/serverbooks/content/manuals/english/irmc-en.pdf
8
+ realm => iRMC@IRMCC36EAC => iRMC@IRMC-name (IRMC+last-3-bytes-of-mac)
9
+ default uid/pw is admin/admin
10
+ -->
11
+ <description>Fujitsu Siemens Primergy with BMC RemoteView on an iRMC card</description>
12
+ <param pos="0" name="service.vendor" value="Fujitsu Siemens"/>
13
+ <param pos="0" name="service.product" value="RemoteView"/>
14
+ <param pos="0" name="service.family" value="RemoteView"/>
15
+ <param pos="0" name="hw.vendor" value="Fujitsu Siemens"/>
16
+ <param pos="0" name="hw.device" value="General"/>
17
+ <param pos="0" name="hw.family" value="Primergy"/>
18
+ <param pos="0" name="hw.product" value="Primergy"/>
19
+ <param pos="1" name="host.name"/>
20
+ </fingerprint>
21
+
22
+ <fingerprint pattern="^(?:Basic|Digest) realm=.access.$">
23
+ <!-- Cisco IOS 11.x returns just access as the realm
24
+ Basic realm="access"
25
+ -->
26
+ <description>Cisco IOS 11.x</description>
27
+ <param pos="0" name="service.vendor" value="Cisco"/>
28
+ <param pos="0" name="service.product" value="IOS"/>
29
+ <param pos="0" name="service.family" value="IOS"/>
30
+ <param pos="0" name="service.version" value="11"/>
31
+ <param pos="0" name="os.vendor" value="Cisco"/>
32
+ <param pos="0" name="os.device" value="Router"/>
33
+ <param pos="0" name="os.family" value="IOS"/>
34
+ <param pos="0" name="os.product" value="IOS"/>
35
+ <param pos="0" name="os.version" value="11"/>
36
+ </fingerprint>
37
+
38
+ <fingerprint pattern="^(?:Basic|Digest) realm=.level[ _]15[ _]or[ _]view[ _]access.$">
39
+ <!-- Cisco IOS 12.3(7)T and 12.2(33)SRB add role based access (views)
40
+ http://www.cisco.com/univercd/cc/td/doc/product/software/ios123/123newft/123t/123t_7/gtclivws.pdf
41
+ Basic realm="level_15 or view_access"
42
+ Basic realm="level_15_or_view_access"
43
+ -->
44
+ <description>Cisco IOS 12.x</description>
45
+ <param pos="0" name="service.vendor" value="Cisco"/>
46
+ <param pos="0" name="service.product" value="IOS"/>
47
+ <param pos="0" name="service.family" value="IOS"/>
48
+ <param pos="0" name="service.version" value="12"/>
49
+ <param pos="0" name="os.vendor" value="Cisco"/>
50
+ <param pos="0" name="os.device" value="Router"/>
51
+ <param pos="0" name="os.family" value="IOS"/>
52
+ <param pos="0" name="os.product" value="IOS"/>
53
+ <param pos="0" name="os.version" value="12"/>
54
+ </fingerprint>
55
+
56
+ <fingerprint pattern="^(?:Basic|Digest) realm=.level[ _]\d\d?[ _]access.$">
57
+ <!-- Cisco IOS 12.x can be any of the following:
58
+ Basic realm="level 15 access"
59
+ Basic realm="level_15_access"
60
+ Basic realm="level_1_access"
61
+ -->
62
+ <description>Cisco IOS 12.x</description>
63
+ <param pos="0" name="service.vendor" value="Cisco"/>
64
+ <param pos="0" name="service.product" value="IOS"/>
65
+ <param pos="0" name="service.family" value="IOS"/>
66
+ <param pos="0" name="service.version" value="12"/>
67
+ <param pos="0" name="os.vendor" value="Cisco"/>
68
+ <param pos="0" name="os.device" value="Router"/>
69
+ <param pos="0" name="os.family" value="IOS"/>
70
+ <param pos="0" name="os.product" value="IOS"/>
71
+ <param pos="0" name="os.version" value="12"/>
72
+ </fingerprint>
73
+
74
+ <fingerprint pattern="^(?:Basic|Digest) realm=.FW-1. Reason: no user Server .$">
75
+ <!-- Basic realm="FW-1. Reason: no user Server " -->
76
+ <description>Check Point FireWall-1</description>
77
+ <param pos="0" name="service.vendor" value="Check Point"/>
78
+ <param pos="0" name="service.product" value="Firewall-1"/>
79
+ <param pos="0" name="service.family" value="Firewall-1"/>
80
+ <param pos="0" name="os.vendor" value="Check Point"/>
81
+ <param pos="0" name="os.device" value="Firewall"/>
82
+ <param pos="0" name="os.family" value="Firewall-1"/>
83
+ <param pos="0" name="os.product" value="Firewall-1"/>
84
+ </fingerprint>
85
+
86
+ <fingerprint pattern="^(?:Basic|Digest) realm=.APC Management Card.$">
87
+ <!-- Basic realm="APC Management Card" -->
88
+ <description>APC device</description>
89
+ <param pos="0" name="service.vendor" value="APC"/>
90
+ <param pos="0" name="service.product" value="HTTP"/>
91
+ <param pos="0" name="os.vendor" value="APC"/>
92
+ <param pos="0" name="os.product" value="Unknown"/>
93
+ <param pos="0" name="os.device" value="Power device"/>
94
+ </fingerprint>
95
+
96
+ <fingerprint pattern="^(?:Basic|Digest) realm=.SpeedTouch \(([0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2})\).$">
97
+ <!-- Basic realm="SpeedTouch (01-23-45-67-89-AB)" -->
98
+ <description>Thomson SpeedTouch xDSL routers</description>
99
+ <param pos="0" name="service.vendor" value="Thomson"/>
100
+ <param pos="0" name="service.product" value="SpeedTouch"/>
101
+ <param pos="0" name="service.family" value="SpeedTouch"/>
102
+ <param pos="0" name="os.vendor" value="Thomson"/>
103
+ <param pos="0" name="os.device" value="Broadband router"/>
104
+ <param pos="0" name="os.family" value="SpeedTouch"/>
105
+ <param pos="0" name="os.product" value="SpeedTouch"/>
106
+ <param pos="1" name="host.mac"/>
107
+ </fingerprint>
108
+
109
+ <fingerprint pattern="^(?:Basic|Digest) realm=.SpeedTouch., nonce=.[0-9A-Z]+:([0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}):\d+:\d+., qop=.auth.$">
110
+ <!-- Digest realm="SpeedTouch", nonce="1234ABCDE:01-23-45-67-89-AB:1234567:890123", qop="auth" -->
111
+ <description>Thomson SpeedTouch xDSL routers</description>
112
+ <param pos="0" name="service.vendor" value="Thomson"/>
113
+ <param pos="0" name="service.product" value="SpeedTouch"/>
114
+ <param pos="0" name="service.family" value="SpeedTouch"/>
115
+ <param pos="0" name="os.vendor" value="Thomson"/>
116
+ <param pos="0" name="os.device" value="Broadband router"/>
117
+ <param pos="0" name="os.family" value="SpeedTouch"/>
118
+ <param pos="0" name="os.product" value="SpeedTouch"/>
119
+ <param pos="1" name="host.mac"/>
120
+ </fingerprint>
121
+
122
+ <fingerprint pattern="^(?:Basic|Digest) realm=.ST (\d+) R 5.x Telecom Italia., nonce=.[0-9A-Z]+:([0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}):\d+:\d+., qop=.auth.$">
123
+ <!-- Digest realm="ST 605 R 5.x Telecom Italia", nonce="0618JT3JZ:00-14-7F-32-27-C6:1738017:895089", qop="auth" -->
124
+ <description>Thomson SpeedTouch xDSL routers</description>
125
+ <param pos="0" name="service.vendor" value="Thomson"/>
126
+ <param pos="0" name="service.product" value="SpeedTouch"/>
127
+ <param pos="0" name="service.family" value="SpeedTouch"/>
128
+ <param pos="0" name="os.vendor" value="Thomson"/>
129
+ <param pos="0" name="os.device" value="Broadband router"/>
130
+ <param pos="0" name="os.family" value="SpeedTouch"/>
131
+ <param pos="1" name="os.product"/>
132
+ <param pos="2" name="host.mac"/>
133
+ </fingerprint>
134
+
135
+ <fingerprint pattern="^(?:Basic|Digest) realm=.(?:SmartAX )?(MT\d+[^ ]*)(?: ADSL Router)?.$">
136
+ <!-- Basic realm="SmartAX MT880"
137
+ Basic Realm="MT800"
138
+ Basic realm="MT880r-T ADSL Router"
139
+ -->
140
+ <description>Huawei xDSL routers</description>
141
+ <param pos="0" name="service.vendor" value="Huawei"/>
142
+ <param pos="0" name="service.family" value="MT"/>
143
+ <param pos="1" name="service.product"/>
144
+ <param pos="0" name="os.vendor" value="Huawei"/>
145
+ <param pos="0" name="os.device" value="Broadband router"/>
146
+ <param pos="0" name="os.family" value="MT"/>
147
+ <param pos="1" name="os.product"/>
148
+ </fingerprint>
149
+
150
+ <fingerprint pattern="^(?:Basic|Digest) realm=.WRT54G.$">
151
+ <!--
152
+ Basic realm="WRT54G"
153
+ -->
154
+ <description>Linksys WRT54G wireless access point
155
+ (dozen of variants of the product)</description>
156
+ <param pos="0" name="os.vendor" value="Linksys"/>
157
+ <param pos="0" name="os.device" value="WAP"/>
158
+ <param pos="0" name="os.product" value="WRT54G"/>
159
+ </fingerprint>
160
+
161
+ <fingerprint pattern="^(?:Basic|Digest) realm=.(TD-[VW8][A-Z0-9]+)(?:| \d+\.\d+).$">
162
+ <description>TP-LINK SoHo Router</description>
163
+ <example>Basic realm="TD-W8901G"</example>
164
+ <example>Basic realm="TD-8817"</example>
165
+ <example>Basic realm="TD-8840T"</example>
166
+ <example>Basic realm="TD-W8101G"</example>
167
+ <example>Basic realm="TD-W8961ND"</example>
168
+ <example>Basic realm="TD-W8951ND"</example>
169
+ <example>Basic realm="TD-8816"</example>
170
+ <example>Basic realm="TD-8840T 2.0"</example>
171
+ <example>Basic realm="TD-W8151N"</example>
172
+ <example>Basic realm="TD-8817 2.0"</example>
173
+ <example>Basic realm="TD-W8901GB"</example>
174
+ <example>Basic realm="TD-W8901G 3.0"</example>
175
+ <example>Basic realm="TD-8820"</example>
176
+ <example>Basic realm="TD-W8961NB"</example>
177
+ <example>Basic realm="TD-8811"</example>
178
+ <example>Basic realm="TD-8816 1.0"</example>
179
+ <example>Basic realm="TD-W8951NB"</example>
180
+ <example>Basic realm="TD-W8901N"</example>
181
+ <example>Basic realm="TD-8816 2.0"</example>
182
+ <example>Basic realm="TD-8840TB"</example>
183
+ <example>Basic realm="TD-8817 1.0"</example>
184
+ <example>Basic realm="TD-8816B"</example>
185
+ <example>Basic realm="TD-8817B"</example>
186
+ <example>Basic realm="TD-8820 1.0"</example>
187
+ <example>Basic realm="TD-8616"</example>
188
+ <param pos="0" name="os.vendor" value="TP-LINK"/>
189
+ <param pos="0" name="os.device" value="Router"/>
190
+ <param pos="1" name="os.product"/>
191
+ </fingerprint>
192
+
193
+ <fingerprint pattern="^(?:Basic|Digest) realm=.(TD8[A-Z0-9]+).$">
194
+ <description>TP-LINK SoHo Router</description>
195
+ <example>Basic realm="TD854W"</example>
196
+ <example>Basic realm="TD811"</example>
197
+ <example>Basic realm="TD821"</example>
198
+ <example>Basic realm="TD841"</example>
199
+ <param pos="0" name="os.vendor" value="TP-LINK"/>
200
+ <param pos="0" name="os.device" value="Router"/>
201
+ <param pos="1" name="os.product"/>
202
+ </fingerprint>
203
+
204
+ <fingerprint pattern="^(?:Basic|Digest) realm=.TP-LINK.*Router ([A-Z0-9\-\+]+).*$">
205
+ <description>TP-LINK SoHo Router</description>
206
+ <example>Basic realm="TP-LINK Wireless N Router WR841N"</example>
207
+ <example>Basic realm="TP-LINK Wireless Lite N Router WR740N"</example>
208
+ <example>Basic realm="TP-LINK Wireless N Router WR740N"</example>
209
+ <example>Basic realm="TP-LINK Wireless Router WR543G"</example>
210
+ <example>Basic realm="TP-LINK Wireless G Router WR340G"</example>
211
+ <example>Basic realm="TP-LINK Wireless Lite N Router WR741ND"</example>
212
+ <example>Basic realm="TP-LINK Wireless N Router WR847N"</example>
213
+ <example>Basic realm="TP-LINK Wireless N Gigabit Router WR1043ND"</example>
214
+ <example>Basic realm="TP-LINK Wireless N Router WR745N"</example>
215
+ <example>Basic realm="TP-LINK SOHO Router R406"</example>
216
+ <example>Basic realm="TP-LINK ADSL2+ Modem Router TD-8840T"</example>
217
+ <example>Basic realm="TP-LINK Wireless N Router WR840N"</example>
218
+ <example>Basic realm="TP-LINK Wireless N Router WR845N"</example>
219
+ <example>Basic realm="TP-LINK SOHO Router R402M"</example>
220
+ <example>Basic realm="TP-LINK 300Mbps Wireless N USB ADSL2+ Modem Router TD-W8968"</example>
221
+ <example>Basic realm="TP-LINK Wireless N Router WR941ND"</example>
222
+ <example>Basic realm="TP-LINK Wireless Dual Band Gigabit Router WDR4300"</example>
223
+ <example>Basic realm="TP-LINK 300Mbps Wireless N Gigabit ADSL2+ Modem Router TD-W8970"</example>
224
+ <example>Basic realm="TP-LINK Wireless Router WR541G/542G"</example>
225
+ <example>Basic realm="TP-LINK Gigabit Broadband VPN Router R600VPN"</example>
226
+ <example>Basic realm="TP-LINK Wireless Router WR340G"</example>
227
+ <example>Basic realm="TP-LINK Wireless N 3G/4G Router MR3420"</example>
228
+ <example>Basic realm="TP-LINK Router R478"</example>
229
+ <example>Basic realm="TP-LINK Wireless N Router WR842N"</example>
230
+ <example>Basic realm="TP-LINK Multi-Function Wireless N Router WR842ND"</example>
231
+ <example>Basic realm="TP-LINK Wireless Router WR340G+"</example>
232
+ <example>Basic realm="TP-LINK Wireless N Router WR941N"</example>
233
+ <example>Basic realm="TP-LINK Router R4148"</example>
234
+ <example>Basic realm="TP-LINK Wireless Dual Band Gigabit Router WDR3600"</example>
235
+ <example>Basic realm="TP-LINK Router R860"</example>
236
+ <example>Basic realm="TP-LINK Wireless N Gigabit Router WR1042ND"</example>
237
+ <example>Basic realm="TP-LINK Router R480T+"</example>
238
+ <example>Basic realm="TP-LINK Wireless Router WR641G/642G"</example>
239
+ <example>Basic realm="TP-LINK Wireless Lite N 3G/4G Router MR3220"</example>
240
+ <example>Basic realm="TP-LINK Router R478+"</example>
241
+ <example>Basic realm="TP-LINK N600 Wireless Dual Band Gigabit ADSL2+ Modem Router TD-W8980"</example>
242
+ <example>Basic realm="TP-LINK Wireless N Router WR742N"</example>
243
+ <example>Basic realm="TP-LINK Router R470T+"</example>
244
+ <example>Basic realm="TP-LINK Wireless Dual Band Router WDR3500"</example>
245
+ <example>Basic realm="TP-LINK Wireless N Router WR2041N"</example>
246
+ <example>Basic realm="TP-LINK Wireless N Gigabit Router WR2543ND"</example>
247
+ <example>Basic realm="TP-LINK 300Mbps Wireless N VoIP ADSL2+ Modem Router TD-VG3631"</example>
248
+ <example>Basic realm="TP-LINK ADSL2+ Router TD-W89841N"</example>
249
+ <example>Basic realm="TP-LINK Router R460"</example>
250
+ <example>Basic realm="TP-LINK ADSL2+ Router TD-W89741N"</example>
251
+ <example>Basic realm="TP-LINK Wireless Lite N Router WR741N"</example>
252
+ <example>Basic realm="TP-LINK Portable Wireless N 3G/4G Router MR3020"</example>
253
+ <example>Basic realm="TP-LINK Router R480T"</example>
254
+ <example>Basic realm="TP-LINK Wireless Lite N Router WR743ND"</example>
255
+ <example>Basic realm="TP-LINK Router R4299G"</example>
256
+ <example>Basic realm="TP-LINK Wireless Dual Band Gigabit Router WDR4900"</example>
257
+ <example>Basic realm="TP-LINK Router R488T"</example>
258
+ <example>Basic realm="TP-LINK Router R473"</example>
259
+ <example>Basic realm="TP-LINK Router R410"</example>
260
+ <example>Basic realm="TP-LINK Router R4238"</example>
261
+ <example>Basic realm="TP-LINK Wireless N Router WR846N"</example>
262
+ <example>Basic realm="TP-LINK Router R4149"</example>
263
+ <example>Basic realm="TP-LINK Wireless N Nano Router WR702N"</example>
264
+ <example>Basic realm="TP-LINK Router R483"</example>
265
+ <example>Basic realm="TP-LINK Wireless N Router WR843ND"</example>
266
+ <example>Basic realm="TP-LINK Wireless Dual Band Gigabit Router Archer C7"</example>
267
+ <example>Basic realm="TP-LINK Wireless N Router WR842ND"</example>
268
+ <example>Basic realm="TP-LINK Router R4419"</example>
269
+ <example>Basic realm="TP-LINK Wireless N 3G Router MR3420"</example>
270
+ <example>Basic realm="TP-LINK Wireless Dual Band Gigabit Router WDR4310/WDR4320"</example>
271
+ <example>Basic realm="TP-LINK Router R4239"</example>
272
+ <example>Basic realm="TP-LINK Router R4199G"</example>
273
+ <example>Basic realm="TP-LINK Wireless Dual Band Router WDR3320"</example>
274
+ <example>Basic realm="TP-LINK Wireless N Router WR741N/742N"</example>
275
+ <example>Basic realm="TP-LINK Wireless N 3G Router WR843N"</example>
276
+ <example>Basic realm="TP-LINK VPN Router R400VPN"</example>
277
+ <example>Basic realm="TP-LINK Wireless N Router WR746N"</example>
278
+ <example>Basic realm="TP-LINK Router R488"</example>
279
+ <param pos="0" name="os.vendor" value="TP-LINK"/>
280
+ <param pos="0" name="os.device" value="Router"/>
281
+ <param pos="1" name="os.product"/>
282
+ </fingerprint>
283
+
284
+ <fingerprint pattern="^(?:Basic|Digest) realm=.TP-LINK.*(?:Access Point|Extender|AP) ([A-Z0-9\-\+]+).*$">
285
+ <description>TP-LINK SoHo Router</description>
286
+ <example>Basic realm="TP-LINK Wireless N Access Point WA801N"</example>
287
+ <example>Basic realm="TP-LINK Wireless Range Extender WA830RE"</example>
288
+ <example>Basic realm="TP-LINK Wireless Range Extender WA850RE"</example>
289
+ <example>Basic realm="TP-LINK Wireless AP WA501G"</example>
290
+ <example>Basic realm="TP-LINK Wireless N Access Point WA701ND"</example>
291
+ <example>Basic realm="TP-LINK Wireless N Access Point WA901ND"</example>
292
+ <example>Basic realm="TP-LINK Wireless AP WA601G"</example>
293
+ <example>Basic realm="TP-LINK Wireless AP WR710N"</example>
294
+ <example>Basic realm="TP-LINK Wireless AP WR700N"</example>
295
+ <example>Basic realm="TP-LINK Wireless Range Extender WA750RE"</example>
296
+ <example>Basic realm="TP-LINK Wireless AP WR702N"</example>
297
+ <example>Basic realm="TP-LINK Wireless AP WR800N"</example>
298
+ <example>Basic realm="TP-LINK Wireless Range Extender WA730RE"</example>
299
+ <example>Basic realm="TP-LINK Wireless N Access Point WA805N"</example>
300
+ <example>Basic realm="TP-LINK Wireless N Access Point WA701N"</example>
301
+ <example>Basic realm="TP-LINK Wireless AP WR706N"</example>
302
+ <param pos="0" name="os.vendor" value="TP-LINK"/>
303
+ <param pos="0" name="os.device" value="WAP"/>
304
+ <param pos="1" name="os.product"/>
305
+ </fingerprint>
306
+
307
+ <!--
308
+ Temporarily disable this version-less fingerprint because it overrode the
309
+ one in http_servers.xml (see NEX-1255).
310
+
311
+ <fingerprint pattern="^(?:Basic|Digest) realm=.Lyris ListManager: enter email address and password.$">
312
+ <description>Lyris ListManager</description>
313
+ <example>Basic realm="Lyris ListManager: enter email address and password"</example>
314
+ <param pos="0" name="service.vendor" value="Lyris"/>
315
+ <param pos="0" name="service.product" value="ListManager"/>
316
+ </fingerprint>
317
+ -->
318
+
319
+ <!--
320
+ Basic realm= StarVoice
321
+ Basic realm="802.11g Remote-Motion CCD Network Camera"
322
+ Basic realm="Access to Workgroup Switch FX5124"
323
+ Basic realm="ADSL Modem"
324
+ Basic realm="ADSL Modem/Router"
325
+ Basic realm="ADSL Router"
326
+ Basic realm="ADSL2+ Router"
327
+ // Nomadix Access Gateway (AG)
328
+ Basic realm="AG "
329
+ Basic realm="AG"
330
+ Basic realm="Broad Net Mux Corp."
331
+ Basic realm="Cayman-3000"
332
+ Basic realm="Cayman3000 "
333
+ Basic realm="Cayman3000"
334
+ Basic realm="ClubInternet"
335
+ Basic realm="Comcast Home Networking"
336
+ // MegaBit Gear TE xxxx
337
+ Basic realm="Config"
338
+ Basic realm="configuration"
339
+ Basic realm="Connecting to router"
340
+ Basic realm="DB102 ADSL 2/2+ Modem"
341
+ Basic realm="Default: admin/1234"
342
+ Basic realm="device"
343
+ Basic realm="DFL Admin Interface"
344
+ Basic realm="DI-804HV"
345
+ Basic realm="dreambox"
346
+ Basic Realm="DSL-500G Admin Login"
347
+ Basic Realm="DSL-500G"
348
+ Basic Realm="DSL-504G"
349
+ Basic realm="DSL Router"
350
+ Basic realm="DSL WLAN Modem 200"
351
+ Basic realm="Ecco Chimbote"
352
+ Basic realm="Efficient Networks Web User Interface"
353
+ Basic realm="General User"
354
+ Basic realm="geschuetzter Bereich"
355
+ Basic realm="Home Gateway"
356
+ Basic realm="iBoot"
357
+ Basic realm="IES-1000/SAM1008"
358
+ Basic realm="Instant Internet"
359
+ Basic realm="IR IP Camera"
360
+ Basic realm="Linksys BEFSR41/BEFSR11/BEFSRU31"
361
+ Basic realm="Login to the Router Web Configurator"
362
+ Basic realm="Login to Vigor 3300"
363
+ Basic realm="Login"
364
+ Basic realm="MR314"
365
+ Basic realm="NetComm NB1300"
366
+ Basic realm="NETGEAR DG834 "
367
+ Basic realm="NetLinx"
368
+ Basic realm="Netopia-2000"
369
+ Basic realm="Netopia-3000"
370
+ Basic realm="NXU-2"
371
+ Basic realm="OCR-812"
372
+ Basic realm="P653HWI-13"
373
+ Basic realm="Please enter your user name and password on DSL-502T"
374
+ Basic realm="pmdf1"
375
+ Basic realm="Prestige 643"
376
+ Basic realm="Prestige 650H-17"
377
+ Basic realm="Prestige 650H-E1"
378
+ Basic realm="Prestige 792H"
379
+ Basic realm="Private zone"
380
+ Basic realm="privileged access"
381
+ Basic realm="quenta"
382
+ Basic realm="Radware"
383
+ Basic realm="READONLY"
384
+ Basic realm="Roadside"
385
+ Basic realm="Siemens ADSL SL2-141-I"
386
+ Basic realm="Siemens Web User Interface"
387
+ Basic realm="System Configuration"
388
+ Basic realm="TrendChip ADSL Router"
389
+ Basic realm="USR ADSL Gateway"
390
+ Basic realm="Viking"
391
+ basic realm="Vina Technologies T1 Integrator"
392
+ Basic realm="WA3002-g1"
393
+ Basic realm="Web Management"
394
+ Basic realm="Web Manager"
395
+ Basic realm="WebAdmin"
396
+ Basic realm="Webr@cer 8001"
397
+ Basic realm="Wireless Access Point"
398
+ Basic realm="WL-5460AP v2"
399
+ Basic realm="WL500g.Premium"
400
+ Basic realm="WL500W"
401
+ Basic realm="XG6545p2 VoIP Gateway"
402
+ Digest realm="HiPER", domain="222.66.99.209", qop="auth", nonce="aa81b6584c4716f22f1d20e1747c5841", opaque="5ccc069c403ebaf9f0171e9517f40e41", algorithm="MD5", stale="FALSE"
403
+ Digest realm="i3micro VRG", nonce="1186428394", qop="auth", algorithm=MD5
404
+ Digest realm="WatchGuard SOHO Configuration",qop="auth",nonce="7c8e98007db668881687bd538e6e8581"
405
+ -->
406
+
407
+ <!-- This is in various PHP coding examples, but is not a reliable FP source:
408
+ Basic realm="User Login"
409
+ -->
410
+
411
+ </fingerprints>
412
+
@@ -0,0 +1,267 @@
1
+ <?xml version="1.0"?>
2
+ <!-- IMAP banners are matched against these patterns to fingerprint IMAP servers. -->
3
+
4
+ <fingerprints matches="imap4.banner">
5
+
6
+ <fingerprint pattern="^Microsoft Exchange IMAP4rev1 server version (5\.5\.\d{4}\.\d+) \((.*)\) ready$">
7
+ <!-- Microsoft Exchange IMAP4rev1 server version 5.5.2654.50 (xxx) ready
8
+ -->
9
+ <description>Microsoft Exchange Server 5.5</description>
10
+ <param pos="0" name="service.vendor" value="Microsoft"/>
11
+ <param pos="0" name="service.family" value="Exchange Server"/>
12
+ <param pos="0" name="service.product" value="Exchange Server 5.5"/>
13
+ <param pos="1" name="service.version"/>
14
+ <param pos="0" name="os.vendor" value="Microsoft"/>
15
+ <param pos="0" name="os.device" value="General"/>
16
+ <param pos="0" name="os.family" value="Windows"/>
17
+ <param pos="0" name="os.product" value="Windows"/>
18
+ <param pos="2" name="host.name"/>
19
+ </fingerprint>
20
+
21
+ <fingerprint pattern="^Microsoft Exchange 2000 IMAP4rev1 server version (6\.0\.\d{4}\.\d+) \((.*)\) ready\.$">
22
+ <!-- Microsoft Exchange 2000 IMAP4rev1 server version 6.0.6249.0 (xxx) ready.
23
+ -->
24
+ <description>Microsoft Exchange Server 2000</description>
25
+ <param pos="0" name="service.vendor" value="Microsoft"/>
26
+ <param pos="0" name="service.family" value="Exchange Server"/>
27
+ <param pos="0" name="service.product" value="Exchange 2000 Server"/>
28
+ <param pos="1" name="service.version"/>
29
+ <param pos="0" name="os.vendor" value="Microsoft"/>
30
+ <param pos="0" name="os.device" value="General"/>
31
+ <param pos="0" name="os.family" value="Windows"/>
32
+ <param pos="0" name="os.product" value="Windows"/>
33
+ <param pos="2" name="host.name"/>
34
+ </fingerprint>
35
+
36
+ <fingerprint pattern="^Microsoft Exchange Server 2003 IMAP4rev1 server version (6\.5\.\d{4}\.\d+) \((.*)\) ready\.$">
37
+ <!-- Microsoft Exchange Server 2003 IMAP4rev1 server version 6.5.7638.1 (xxx) ready.
38
+ -->
39
+ <description>Microsoft Exchange Server 2003</description>
40
+ <param pos="0" name="service.vendor" value="Microsoft"/>
41
+ <param pos="0" name="service.family" value="Exchange Server"/>
42
+ <param pos="0" name="service.product" value="Exchange 2003 Server"/>
43
+ <param pos="1" name="service.version"/>
44
+ <param pos="0" name="os.vendor" value="Microsoft"/>
45
+ <param pos="0" name="os.device" value="General"/>
46
+ <param pos="0" name="os.family" value="Windows"/>
47
+ <param pos="0" name="os.product" value="Windows"/>
48
+ <param pos="2" name="host.name"/>
49
+ </fingerprint>
50
+
51
+ <fingerprint pattern="^Der Microsoft Exchange Server 2003 IMAP4rev1-Server, Version (6\.5\.\d{4}\.\d+) \((.*)\),.*$">
52
+ <!-- Der Microsoft Exchange Server 2003 IMAP4rev1-Server, Version 6.5.7638.1 (xxx), steht zur Verf\u00FCgung.
53
+ -->
54
+ <description>Microsoft Exchange Server 2003, German</description>
55
+ <param pos="0" name="service.vendor" value="Microsoft"/>
56
+ <param pos="0" name="service.family" value="Exchange Server"/>
57
+ <param pos="0" name="service.product" value="Exchange 2003 Server"/>
58
+ <param pos="1" name="service.version"/>
59
+ <param pos="0" name="os.vendor" value="Microsoft"/>
60
+ <param pos="0" name="os.device" value="General"/>
61
+ <param pos="0" name="os.family" value="Windows"/>
62
+ <param pos="0" name="os.product" value="Windows"/>
63
+ <param pos="2" name="host.name"/>
64
+ </fingerprint>
65
+
66
+ <fingerprint pattern="^Microsoft Exchange Server 2007 IMAP4 service ready$">
67
+ <!-- Microsoft Exchange Server 2007 IMAP4 service ready
68
+ -->
69
+ <description>Microsoft Exchange Server 2007</description>
70
+ <param pos="0" name="service.vendor" value="Microsoft"/>
71
+ <param pos="0" name="service.family" value="Exchange Server"/>
72
+ <param pos="0" name="service.product" value="Exchange 2007 Server"/>
73
+ <param pos="0" name="os.vendor" value="Microsoft"/>
74
+ <param pos="0" name="os.device" value="General"/>
75
+ <param pos="0" name="os.family" value="Windows"/>
76
+ <param pos="0" name="os.product" value="Windows"/>
77
+ </fingerprint>
78
+
79
+ <fingerprint pattern="^The Microsoft Exchange IMAP4 service is ready\.?$">
80
+ <example>The Microsoft Exchange IMAP4 service is ready.</example>
81
+ <description>Microsoft Exchange Server</description>
82
+ <param pos="0" name="service.vendor" value="Microsoft"/>
83
+ <param pos="0" name="service.family" value="Exchange Server"/>
84
+ <param pos="0" name="service.product" value="Exchange Server"/>
85
+ <param pos="0" name="os.vendor" value="Microsoft"/>
86
+ <param pos="0" name="os.device" value="General"/>
87
+ <param pos="0" name="os.family" value="Windows"/>
88
+ <param pos="0" name="os.product" value="Windows"/>
89
+ </fingerprint>
90
+
91
+ <fingerprint pattern="^Domino IMAP4 Server Release (\d+\.\d+.*) ready (.+)$">
92
+ <!-- Domino IMAP4 Server Release 7.0.2FP2 ready Sat, 21 Jul 2007 13:06:10 -0400
93
+ Domino IMAP4 Server Release 7.0.2 ready Fri, 23 Feb 2007 13:48:15 +0530
94
+ Domino IMAP4 Server Release 6.5.5 ready Fri, 20 Jul 2007 19:50:59 -0400
95
+ Domino IMAP4 Server Release 6.0.1 ready Wed, 26 Mar 2003 17:57:26 -0800
96
+ Domino IMAP4 Server Release 5.0.9 ready Sun, 30 Jun 2002 23:54:41 +0100
97
+ -->
98
+ <description>IBM Lotus Notes/Domino</description>
99
+ <param pos="0" name="service.vendor" value="IBM"/>
100
+ <param pos="0" name="service.family" value="Lotus Domino"/>
101
+ <param pos="0" name="service.product" value="Lotus Domino"/>
102
+ <param pos="1" name="service.version"/>
103
+ <param pos="2" name="host.time"/>
104
+ </fingerprint>
105
+
106
+ <fingerprint pattern="^Domino IMAP4 Server V\.?(\d+\.\d+.*) ready (.+)$">
107
+ <!-- Domino IMAP4 Server V.5.0 ready Mon, 10 May 1999 17:57:13 -0500
108
+ Domino IMAP4 Server V4.6 ready Mon, 12 May 1997 17:57:13 -0500
109
+ -->
110
+ <description>IBM Lotus Notes/Domino</description>
111
+ <param pos="0" name="service.vendor" value="IBM"/>
112
+ <param pos="0" name="service.family" value="Lotus Domino"/>
113
+ <param pos="0" name="service.product" value="Lotus Domino"/>
114
+ <param pos="1" name="service.version"/>
115
+ <param pos="2" name="host.time"/>
116
+ </fingerprint>
117
+
118
+ <fingerprint pattern="^[dD]ovecot (?:DA )?ready\.$">
119
+ <!-- Dovecot DA ready.
120
+ dovecot ready.
121
+ Dovecot ready.
122
+ -->
123
+ <description>Dovecot Secure IMAP Server</description>
124
+ <param pos="0" name="service.family" value="Dovecot"/>
125
+ <param pos="0" name="service.product" value="Dovecot"/>
126
+ </fingerprint>
127
+
128
+ <fingerprint pattern="^Courier-IMAP ready. Copyright \d+-\d+">
129
+ <example>Courier-IMAP ready. Copyright 1998-2002 Double Precision, Inc. See COPYING for distribution information.</example>
130
+ <description>Courier IMAP</description>
131
+ <param pos="0" name="service.vendor" value="Double Precision"/>
132
+ <param pos="0" name="service.family" value="Courier"/>
133
+ <param pos="0" name="service.product" value="Courier IMAP"/>
134
+ </fingerprint>
135
+
136
+ <fingerprint pattern="^(\S+) CallPilot IMAP4rev1 v(\S+) server ready\.?$">
137
+ <example>nottest.localdomain CallPilot IMAP4rev1 v42.02.05.22 server ready.</example>
138
+ <example>test.localdomain CallPilot IMAP4rev1 v43.03.19.22 server ready.</example>
139
+ <description>Nortel CallPilot</description>
140
+ <param pos="0" name="service.vendor" value="Nortel"/>
141
+ <param pos="0" name="service.product" value="CallPilot"/>
142
+ <param pos="2" name="service.version"/>
143
+ <param pos="1" name="host.name"/>
144
+ </fingerprint>
145
+
146
+ <fingerprint pattern="^(\S+) Zimbra IMAP4rev1 server ready\.?$">
147
+ <example>catfood.zimbra.com Zimbra IMAP4rev1 server ready</example>
148
+ <example>dogfood.zimbra.com Zimbra IMAP4rev1 server ready</example>
149
+ <description>VMware Zimbra IMAP</description>
150
+ <param pos="0" name="service.vendor" value="VMware"/>
151
+ <param pos="0" name="service.product" value="Zimbra"/>
152
+ <param pos="1" name="host.name"/>
153
+ </fingerprint>
154
+
155
+ <fingerprint pattern="^(\S+) Zimbra (\S+) IMAP4rev1 server ready\.?$">
156
+ <example>example.com Zimbra 7.0.0_GA_3079 IMAP4rev1 server ready</example>
157
+ <description>VMware Zimbra IMAP</description>
158
+ <param pos="0" name="service.vendor" value="VMware"/>
159
+ <param pos="0" name="service.product" value="Zimbra"/>
160
+ <param pos="2" name="service.version"/>
161
+ <param pos="1" name="host.name"/>
162
+ </fingerprint>
163
+
164
+ <fingerprint pattern="^(.+) Cyrus IMAP4 v(\d+\.\d+.*)-OS X(?: Server)? ([\d\.]+).* server ready$">
165
+ <description>CMU Cyrus IMAP on Mac OS X</description>
166
+ <example>host Cyrus IMAP4 v2.2.12-OS X 10.4.0 server ready</example>
167
+ <example>host Cyrus IMAP4 v2.3.8-OS X Server 10.5: 9A562 server ready</example>
168
+ <param pos="0" name="service.family" value="Cyrus"/>
169
+ <param pos="0" name="service.product" value="Cyrus"/>
170
+ <param pos="2" name="service.version"/>
171
+ <param pos="0" name="os.vendor" value="Apple"/>
172
+ <param pos="0" name="os.device" value="General"/>
173
+ <param pos="0" name="os.family" value="Mac OS X"/>
174
+ <param pos="0" name="os.product" value="Mac OS X"/>
175
+ <param pos="3" name="os.version"/>
176
+ <param pos="1" name="host.name"/>
177
+ </fingerprint>
178
+
179
+ <fingerprint pattern="^(.+) Cyrus IMAP4? (?:\S+ )?v(\d+\.\d+.*) server ready$">
180
+ <example>example.com Cyrus IMAP4 v2.3.7 server ready</example>
181
+ <example>binibik Cyrus IMAP v2.3.14 server ready</example>
182
+ <example>example.com Cyrus IMAP Murder v2.4.8-Invoca-RPM-2.4.8-1 server ready</example>
183
+ <description>CMU Cyrus IMAP</description>
184
+ <param pos="0" name="service.family" value="Cyrus"/>
185
+ <param pos="0" name="service.product" value="Cyrus"/>
186
+ <param pos="2" name="service.version"/>
187
+ <param pos="1" name="host.name"/>
188
+ </fingerprint>
189
+
190
+ <!--
191
+
192
+ // Washington University imapd
193
+ IMAP_FP_PARSERS[0] = new PatternParser(
194
+ "^IMAP4rev1 v(.*) server ready$");
195
+ IMAP_FP_PARSERS[0].addConstantParam("product", "wu-imapd");
196
+ IMAP_FP_PARSERS[0].addParamSpec(1, "version");
197
+
198
+ // Washington University imapd (newer versions)
199
+ IMAP_FP_PARSERS[1] = new PatternParser(
200
+ "^IMAP4rev1 (.*) at (.*)$");
201
+ IMAP_FP_PARSERS[1].addConstantParam("product", "wu-imapd");
202
+ IMAP_FP_PARSERS[1].addParamSpec(1, "version");
203
+ IMAP_FP_PARSERS[1].addParamSpec(2, "server-time");
204
+
205
+ // University of Washington IMAP (imap-uw)
206
+ * OK <host> IMAP4rev1 2001.315 at Fri, 20 Jul 2007 21:51:34 -0700 (PDT)
207
+ * OK <host> IMAP4rev1 2001.315rh at Mon, 23 Jul 2007 07:56:09 -0500 (CDT)
208
+ * OK <host> IMAP4rev1 2004.357-p2k server ready at Mon, 23 Jul 2007 01:56:26 -0400 (EDT)
209
+ * OK <host> IMAP4rev1 2004.357s at Mon, 23 Jul 2007 15:17:56 +0000 (GMT)
210
+ * OK <host> IMAP4rev1 2004.357w at Tue, 24 Jul 2007 19:36:11 -0600 (MDT)
211
+
212
+ // cPanel Hosting Automation
213
+ // 10.8.0 (build 89) - BETA Tree - Change the imap version from 2003.339-cpanel to 2003.339p-cpanel to indicate the security patch has been applied.
214
+ // The patch has still be applied to 1.8.0 build 60+, we just show this now to avoid confusion.
215
+ * OK <host> IMAP4rev1 2003.339-cpanel at Sun, 22 Jul 2007 07:35:36 -0500 (CDT)
216
+ * OK <host> IMAP4rev1 2003.339p-cpanel at Sun, 22 Jul 2007 13:09:04 -0500 (CDT)
217
+
218
+ // PMDF IMAP
219
+ // * OK <system> PMDF IMAP4rev1 V6.1 (Message store V6.1)
220
+ // * OK xxx PMDF IMAP4rev1 V6.0-24 (Message store V6.0-24)
221
+ // * OK xxx PMDF IMAP4rev1 V6.0-9
222
+ IMAP_FP_PARSERS[5] = new PatternParser(
223
+ "^([^\\s]+) PMDF IMAP4rev1 V([^\\s]+).*$");
224
+ IMAP_FP_PARSERS[5].addConstantParam("product", "PMDF");
225
+ IMAP_FP_PARSERS[5].addParamSpec(1, "hostname");
226
+ IMAP_FP_PARSERS[5].addParamSpec(2, "version");
227
+
228
+ // PMDF IMAP (for VMS v7.1-2!)
229
+ IMAP_FP_PARSERS[6] = new PatternParser(
230
+ "^IMAP4 Server PMDF(.*) at (.*)$");
231
+ IMAP_FP_PARSERS[6].addConstantParam("product", "PMDF");
232
+ IMAP_FP_PARSERS[6].addParamSpec(1, "version");
233
+ IMAP_FP_PARSERS[6].addParamSpec(2, "server-time");
234
+
235
+ // Eudora Internet Mail Server
236
+ IMAP_FP_PARSERS[7] = new PatternParser(
237
+ "^Eudora Internet Mail Server (.*) .*$");
238
+ IMAP_FP_PARSERS[7].addConstantParam("product", "eudoraims");
239
+ IMAP_FP_PARSERS[7].addParamSpec(1, "version");
240
+
241
+ // Eudora Qualcomm WorldMail
242
+ // * OK WorldMail IMAP4 Server 6.1.19.0 ready
243
+ IMAP_FP_PARSERS[8] = new PatternParser(
244
+ "^WorldMail IMAP4 Server ([^\\s]+) ready$");
245
+ IMAP_FP_PARSERS[8].addConstantParam("product", "worldmail");
246
+ IMAP_FP_PARSERS[8].addParamSpec(1, "version");
247
+
248
+ // GNU Mailutils. Note that there is no version information
249
+ IMAP_FP_PARSERS[9] = new PatternParser("^IMAP4rev1$");
250
+ IMAP_FP_PARSERS[9].addConstantParam("product", "GNU Mailutils");
251
+
252
+ * OK <host> IMAP4rev1 MDaemon 8.1.4 ready
253
+ * OK <host> /bin/sh IMAP server ready
254
+ * OK IMAP/POP ready.
255
+ * OK IMAP4 Server (IMail 6.04)
256
+ * OK IMAP4rev1 server
257
+ * OK IMAP4rev1 SmarterMail
258
+ * OK IMAP4rev1 SmartMax IMAPMax 5 Ready
259
+ * OK imapfront ready. + stunnel
260
+ * OK <host> mailserver ready.
261
+ * OK Merak 8.0.3 IMAP4rev1 Mon, 23 Jul 2007 18:22:49 +0100
262
+ * OK <host> Sendmail Advanced Message Server IMAP4rev1 (1.3.2/390)
263
+ * OK Welcome IMAP Server
264
+
265
+ -->
266
+
267
+ </fingerprints>