recog 2.3.5 → 2.3.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +17 -5
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +7 -4
  6. data/CONTRIBUTING.md +136 -37
  7. data/Gemfile +2 -5
  8. data/README.md +34 -29
  9. data/bin/recog_cleanup +16 -0
  10. data/bin/recog_standardize +142 -0
  11. data/cpe-remap.yaml +21 -0
  12. data/features/data/successful_tests.xml +1 -1
  13. data/features/data/tests_with_warnings.xml +1 -1
  14. data/features/match.feature +4 -0
  15. data/features/support/aruba.rb +3 -0
  16. data/features/verify.feature +8 -4
  17. data/identifiers/README.md +56 -0
  18. data/identifiers/hw_device.txt +77 -0
  19. data/identifiers/hw_family.txt +96 -0
  20. data/identifiers/hw_product.txt +328 -0
  21. data/identifiers/os_architecture.txt +20 -0
  22. data/identifiers/os_device.txt +94 -0
  23. data/identifiers/os_family.txt +325 -0
  24. data/identifiers/os_product.txt +420 -0
  25. data/identifiers/service_family.txt +272 -0
  26. data/identifiers/service_product.txt +556 -0
  27. data/identifiers/software_class.txt +26 -0
  28. data/identifiers/software_family.txt +91 -0
  29. data/identifiers/software_product.txt +333 -0
  30. data/identifiers/vendor.txt +890 -0
  31. data/lib/recog/fingerprint.rb +46 -0
  32. data/lib/recog/version.rb +1 -1
  33. data/requirements.txt +1 -1
  34. data/spec/data/verification_fingerprints.xml +86 -0
  35. data/spec/lib/fingerprint_self_test_spec.rb +1 -1
  36. data/spec/lib/recog/fingerprint/regexp_factory_spec.rb +1 -1
  37. data/spec/lib/recog/fingerprint_spec.rb +89 -0
  38. data/update_cpes.py +1 -1
  39. data/xml/apache_modules.xml +292 -5
  40. data/xml/apache_os.xml +50 -2
  41. data/xml/architecture.xml +19 -7
  42. data/xml/dns_versionbind.xml +113 -11
  43. data/xml/favicons.xml +1700 -0
  44. data/xml/ftp_banners.xml +287 -15
  45. data/xml/h323_callresp.xml +112 -12
  46. data/xml/hp_pjl_id.xml +47 -5
  47. data/xml/html_title.xml +2371 -17
  48. data/xml/http_cookies.xml +82 -7
  49. data/xml/http_servers.xml +839 -41
  50. data/xml/http_wwwauth.xml +154 -27
  51. data/xml/imap_banners.xml +19 -13
  52. data/xml/ldap_searchresult.xml +81 -9
  53. data/xml/mdns_device-info_txt.xml +194 -17
  54. data/xml/mdns_workstation_txt.xml +4 -2
  55. data/xml/mysql_banners.xml +554 -45
  56. data/xml/mysql_error.xml +113 -6
  57. data/xml/nntp_banners.xml +10 -2
  58. data/xml/ntp_banners.xml +95 -11
  59. data/xml/operating_system.xml +90 -3
  60. data/xml/pop_banners.xml +30 -31
  61. data/xml/rsh_resp.xml +11 -2
  62. data/xml/rtsp_servers.xml +96 -0
  63. data/xml/sip_banners.xml +192 -17
  64. data/xml/sip_user_agents.xml +69 -3
  65. data/xml/smb_native_lm.xml +10 -2
  66. data/xml/smb_native_os.xml +80 -2
  67. data/xml/smtp_banners.xml +166 -9
  68. data/xml/smtp_debug.xml +6 -4
  69. data/xml/smtp_ehlo.xml +7 -5
  70. data/xml/smtp_expn.xml +13 -4
  71. data/xml/smtp_help.xml +23 -4
  72. data/xml/smtp_mailfrom.xml +5 -2
  73. data/xml/smtp_noop.xml +6 -5
  74. data/xml/smtp_quit.xml +5 -4
  75. data/xml/smtp_rcptto.xml +5 -2
  76. data/xml/smtp_rset.xml +4 -4
  77. data/xml/smtp_turn.xml +4 -4
  78. data/xml/smtp_vrfy.xml +14 -4
  79. data/xml/snmp_sysdescr.xml +862 -122
  80. data/xml/snmp_sysobjid.xml +47 -2
  81. data/xml/ssh_banners.xml +1153 -192
  82. data/xml/telnet_banners.xml +419 -14
  83. data/xml/x11_banners.xml +27 -4
  84. data/xml/x509_issuers.xml +39 -15
  85. data/xml/x509_subjects.xml +545 -64
  86. metadata +32 -6
@@ -1,16 +1,19 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
2
  <fingerprints matches="apache_os" database_type="util.os" preference="0.10">
3
3
  <!--
4
4
  When an HTTP server is fingerprinted as Apache, a 2nd analysis pass is done
5
5
  on the server headers HTTPProtocolHelper.SERVER_HEADERS: they are matched
6
6
  against the following patterns to extract OS information.
7
7
  -->
8
+
8
9
  <fingerprint pattern=".*\(iSeries\).*">
9
10
  <description>IBM i5/OS iSeries (OS/400)</description>
10
11
  <param pos="0" name="os.vendor" value="IBM"/>
11
12
  <param pos="0" name="os.family" value="OS/400"/>
12
13
  <param pos="0" name="os.product" value="OS/400"/>
14
+ <param pos="0" name="os.cpe23" value="cpe:/o:ibm:os_400:-"/>
13
15
  </fingerprint>
16
+
14
17
  <fingerprint pattern=".*\(Mandrake Linux/\d+\.\d+\.92mdk\).*">
15
18
  <description>Mandriva (formerly Mandrake) Linux 9.2</description>
16
19
  <param pos="0" name="os.certainty" value="0.9"/>
@@ -20,6 +23,7 @@
20
23
  <param pos="0" name="os.version" value="9.2"/>
21
24
  <param pos="0" name="os.cpe23" value="cpe:/o:mandriva:linux:9.2"/>
22
25
  </fingerprint>
26
+
23
27
  <fingerprint pattern=".*\(Mandrake Linux/\d+\.\d+\.100mdk\).*">
24
28
  <description>Mandriva (formerly Mandrake) Linux 10.0</description>
25
29
  <param pos="0" name="os.certainty" value="0.9"/>
@@ -29,6 +33,7 @@
29
33
  <param pos="0" name="os.version" value="10.0"/>
30
34
  <param pos="0" name="os.cpe23" value="cpe:/o:mandriva:linux:10.0"/>
31
35
  </fingerprint>
36
+
32
37
  <fingerprint pattern=".*\((?:Mandrake|Mandriva) Linux/.*">
33
38
  <description>Mandriva (formerly Mandrake) Linux unknown version</description>
34
39
  <param pos="0" name="os.vendor" value="Mandriva"/>
@@ -36,6 +41,7 @@
36
41
  <param pos="0" name="os.product" value="Linux"/>
37
42
  <param pos="0" name="os.cpe23" value="cpe:/o:mandriva:linux:-"/>
38
43
  </fingerprint>
44
+
39
45
  <fingerprint pattern=".*\(Mandrakelinux/.*">
40
46
  <description>Mandriva (formerly Mandrake) Linux unknown version - variant 2</description>
41
47
  <param pos="0" name="os.vendor" value="Mandriva"/>
@@ -43,12 +49,14 @@
43
49
  <param pos="0" name="os.product" value="Linux"/>
44
50
  <param pos="0" name="os.cpe23" value="cpe:/o:mandriva:linux:-"/>
45
51
  </fingerprint>
52
+
46
53
  <fingerprint pattern=".*\(PalmOS\).*">
47
54
  <description>PalmOS</description>
48
55
  <param pos="0" name="os.vendor" value="Palm"/>
49
56
  <param pos="0" name="os.family" value="PalmOS"/>
50
57
  <param pos="0" name="os.product" value="PalmOS"/>
51
58
  </fingerprint>
59
+
52
60
  <fingerprint pattern=".*\(Win32\).*">
53
61
  <description>Microsoft Windows</description>
54
62
  <param pos="0" name="os.certainty" value="0.75"/>
@@ -57,6 +65,7 @@
57
65
  <param pos="0" name="os.product" value="Windows"/>
58
66
  <param pos="0" name="os.cpe23" value="cpe:/o:microsoft:windows:-"/>
59
67
  </fingerprint>
68
+
60
69
  <fingerprint pattern=".*\(Darwin\).*">
61
70
  <description>Apple Mac OS X</description>
62
71
  <param pos="0" name="os.vendor" value="Apple"/>
@@ -64,6 +73,7 @@
64
73
  <param pos="0" name="os.product" value="Mac OS X"/>
65
74
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
66
75
  </fingerprint>
76
+
67
77
  <fingerprint pattern=".*\(Ubuntu\).*">
68
78
  <description>Ubuntu</description>
69
79
  <param pos="0" name="os.vendor" value="Ubuntu"/>
@@ -71,18 +81,21 @@
71
81
  <param pos="0" name="os.product" value="Linux"/>
72
82
  <param pos="0" name="os.cpe23" value="cpe:/o:canonical:ubuntu_linux:-"/>
73
83
  </fingerprint>
84
+
74
85
  <fingerprint pattern=".*(?:Sun )?Cobalt \(Unix\)?.*">
75
86
  <description>Sun Cobalt RaQ (Red Hat based Linux)</description>
76
87
  <param pos="0" name="os.vendor" value="Sun"/>
77
88
  <param pos="0" name="os.family" value="Linux"/>
78
89
  <param pos="0" name="os.product" value="Cobalt RaQ"/>
79
90
  </fingerprint>
91
+
80
92
  <fingerprint pattern=".*\(BlueQuartz\).*">
81
93
  <description>Blue Quartz is created by a Cobalt RaQ UG</description>
82
94
  <param pos="0" name="os.vendor" value="Sun"/>
83
95
  <param pos="0" name="os.family" value="Linux"/>
84
96
  <param pos="0" name="os.product" value="Cobalt RaQ"/>
85
97
  </fingerprint>
98
+
86
99
  <fingerprint pattern="^Apache\/2\.2\.11.*\(Fedora\).*">
87
100
  <description>Red Hat Fedora 11</description>
88
101
  <param pos="0" name="os.vendor" value="Red Hat"/>
@@ -91,6 +104,7 @@
91
104
  <param pos="0" name="os.version" value="11"/>
92
105
  <param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:11"/>
93
106
  </fingerprint>
107
+
94
108
  <fingerprint pattern="^Apache\/2\.2\.15.*\(Fedora\).*">
95
109
  <description>Red Hat Fedora 13</description>
96
110
  <param pos="0" name="os.vendor" value="Red Hat"/>
@@ -99,6 +113,7 @@
99
113
  <param pos="0" name="os.version" value="13"/>
100
114
  <param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:13"/>
101
115
  </fingerprint>
116
+
102
117
  <fingerprint pattern="^Apache\/2\.2\.16.*\(Fedora\).*">
103
118
  <description>Red Hat Fedora 14</description>
104
119
  <param pos="0" name="os.vendor" value="Red Hat"/>
@@ -107,6 +122,7 @@
107
122
  <param pos="0" name="os.version" value="14"/>
108
123
  <param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:14"/>
109
124
  </fingerprint>
125
+
110
126
  <fingerprint pattern="^Apache\/2\.2\.23.*\(Fedora\).*">
111
127
  <description>Red Hat Fedora 17</description>
112
128
  <param pos="0" name="os.vendor" value="Red Hat"/>
@@ -115,6 +131,7 @@
115
131
  <param pos="0" name="os.version" value="17"/>
116
132
  <param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:17"/>
117
133
  </fingerprint>
134
+
118
135
  <fingerprint pattern="^Apache\/2\.4\.3.*\(Fedora\).*">
119
136
  <description>Red Hat Fedora 18</description>
120
137
  <param pos="0" name="os.vendor" value="Red Hat"/>
@@ -123,6 +140,7 @@
123
140
  <param pos="0" name="os.version" value="18"/>
124
141
  <param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:18"/>
125
142
  </fingerprint>
143
+
126
144
  <fingerprint pattern=".*\(Fedora\).*">
127
145
  <description>Red Hat Fedora</description>
128
146
  <param pos="0" name="os.vendor" value="Red Hat"/>
@@ -130,6 +148,7 @@
130
148
  <param pos="0" name="os.product" value="Fedora Core Linux"/>
131
149
  <param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:-"/>
132
150
  </fingerprint>
151
+
133
152
  <fingerprint pattern=".*\(RHEL\).*">
134
153
  <description>Red Hat Enterprise Linux</description>
135
154
  <param pos="0" name="os.vendor" value="Red Hat"/>
@@ -137,6 +156,7 @@
137
156
  <param pos="0" name="os.product" value="Enterprise Linux"/>
138
157
  <param pos="0" name="os.cpe23" value="cpe:/o:redhat:enterprise_linux:-"/>
139
158
  </fingerprint>
159
+
140
160
  <fingerprint pattern=".*\(Red[ -]Hat(?:[/ ]Linux)?\).*">
141
161
  <description>Red Hat Linux</description>
142
162
  <param pos="0" name="os.vendor" value="Red Hat"/>
@@ -144,6 +164,16 @@
144
164
  <param pos="0" name="os.product" value="Linux"/>
145
165
  <param pos="0" name="os.cpe23" value="cpe:/o:redhat:linux:-"/>
146
166
  </fingerprint>
167
+
168
+ <fingerprint pattern=".*\(Red Hat Enterprise (?:Linux)?\).*">
169
+ <description>Apache OS: Red Hat Enterprise Linux</description>
170
+ <example os.vendor="Red Hat">Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.2k-fips</example>
171
+ <param pos="0" name="os.vendor" value="Red Hat"/>
172
+ <param pos="0" name="os.family" value="Linux"/>
173
+ <param pos="0" name="os.product" value="Enterprise Linux"/>
174
+ <param pos="0" name="os.cpe23" value="cpe:/o:redhat:enterprise_linux:-"/>
175
+ </fingerprint>
176
+
147
177
  <fingerprint pattern=".*Debian(?:[/ ]GNU)?(?:/Linux)?.*">
148
178
  <description>Debian Linux</description>
149
179
  <param pos="0" name="os.vendor" value="Debian"/>
@@ -151,6 +181,7 @@
151
181
  <param pos="0" name="os.product" value="Linux"/>
152
182
  <param pos="0" name="os.cpe23" value="cpe:/o:debian:debian_linux:-"/>
153
183
  </fingerprint>
184
+
154
185
  <fingerprint pattern=".*\((?:Linux/)?S[uU]SE(?:/Linux)?\).*">
155
186
  <description>Novell SuSE Linux</description>
156
187
  <param pos="0" name="os.vendor" value="SuSE"/>
@@ -158,6 +189,7 @@
158
189
  <param pos="0" name="os.product" value="Linux"/>
159
190
  <param pos="0" name="os.cpe23" value="cpe:/o:suse:linux:-"/>
160
191
  </fingerprint>
192
+
161
193
  <fingerprint pattern=".*\(NETWARE\).*">
162
194
  <description>Novell NetWare</description>
163
195
  <param pos="0" name="os.vendor" value="Novell"/>
@@ -165,6 +197,7 @@
165
197
  <param pos="0" name="os.product" value="NetWare"/>
166
198
  <param pos="0" name="os.cpe23" value="cpe:/o:novell:netware:-"/>
167
199
  </fingerprint>
200
+
168
201
  <fingerprint pattern=".*HP-UX_Apache-based_Web_Server.*">
169
202
  <description>HP HP-UX</description>
170
203
  <param pos="0" name="os.vendor" value="HP"/>
@@ -172,6 +205,7 @@
172
205
  <param pos="0" name="os.product" value="HP-UX"/>
173
206
  <param pos="0" name="os.cpe23" value="cpe:/o:hp:hp-ux:-"/>
174
207
  </fingerprint>
208
+
175
209
  <fingerprint pattern=".*\(CentOS\).*">
176
210
  <description>CentOS Linux</description>
177
211
  <param pos="0" name="os.vendor" value="CentOS"/>
@@ -179,12 +213,14 @@
179
213
  <param pos="0" name="os.product" value="Linux"/>
180
214
  <param pos="0" name="os.cpe23" value="cpe:/o:centos:centos:-"/>
181
215
  </fingerprint>
216
+
182
217
  <fingerprint pattern=".*\(Turbolinux\).*">
183
218
  <description>Turbolinux</description>
184
219
  <param pos="0" name="os.vendor" value="Turbolinux"/>
185
220
  <param pos="0" name="os.family" value="Linux"/>
186
221
  <param pos="0" name="os.product" value="Linux"/>
187
222
  </fingerprint>
223
+
188
224
  <fingerprint pattern=".*\(FreeBSD\).*">
189
225
  <description>FreeBSD</description>
190
226
  <param pos="0" name="os.vendor" value="FreeBSD"/>
@@ -192,12 +228,14 @@
192
228
  <param pos="0" name="os.product" value="FreeBSD"/>
193
229
  <param pos="0" name="os.cpe23" value="cpe:/o:freebsd:freebsd:-"/>
194
230
  </fingerprint>
231
+
195
232
  <fingerprint pattern=".*\(Asianux\).*">
196
233
  <description>Asianux Linux</description>
197
234
  <param pos="0" name="os.vendor" value="Asianux"/>
198
235
  <param pos="0" name="os.family" value="Linux"/>
199
236
  <param pos="0" name="os.product" value="Linux"/>
200
237
  </fingerprint>
238
+
201
239
  <fingerprint pattern=".*\(Gentoo(?:/Linux)?\).*">
202
240
  <description>Gentoo Linux</description>
203
241
  <param pos="0" name="os.vendor" value="Gentoo"/>
@@ -205,6 +243,7 @@
205
243
  <param pos="0" name="os.product" value="Linux"/>
206
244
  <param pos="0" name="os.cpe23" value="cpe:/o:gentoo:linux:-"/>
207
245
  </fingerprint>
246
+
208
247
  <fingerprint pattern=".*\(Conectiva(?:/Linux)?\).*">
209
248
  <description>Conectiva Linux</description>
210
249
  <param pos="0" name="os.vendor" value="Conectiva"/>
@@ -212,6 +251,7 @@
212
251
  <param pos="0" name="os.product" value="Linux"/>
213
252
  <param pos="0" name="os.cpe23" value="cpe:/o:conectiva:linux:-"/>
214
253
  </fingerprint>
254
+
215
255
  <fingerprint pattern=".*\(Trustix Secure Linux(?:/Linux)?\).*">
216
256
  <description>Trustix Linux</description>
217
257
  <param pos="0" name="os.vendor" value="Trustix"/>
@@ -219,46 +259,54 @@
219
259
  <param pos="0" name="os.product" value="Secure Linux"/>
220
260
  <param pos="0" name="os.cpe23" value="cpe:/o:trustix:secure_linux:-"/>
221
261
  </fingerprint>
262
+
222
263
  <fingerprint pattern=".*\(White Box\).*">
223
264
  <description>White Box Enterprise Linux</description>
224
265
  <param pos="0" name="os.vendor" value="White Box"/>
225
266
  <param pos="0" name="os.family" value="Linux"/>
226
267
  <param pos="0" name="os.product" value="Enterprise Linux"/>
227
268
  </fingerprint>
269
+
228
270
  <fingerprint pattern=".*\(UnitedLinux\).*">
229
271
  <description>UnitedLinux</description>
230
272
  <param pos="0" name="os.vendor" value="UnitedLinux"/>
231
273
  <param pos="0" name="os.family" value="Linux"/>
232
274
  <param pos="0" name="os.product" value="Linux"/>
233
275
  </fingerprint>
276
+
234
277
  <fingerprint pattern=".*\(PLD/Linux\).*">
235
278
  <description>PLD Linux</description>
236
279
  <param pos="0" name="os.vendor" value="PLD"/>
237
280
  <param pos="0" name="os.family" value="Linux"/>
238
281
  <param pos="0" name="os.product" value="Linux"/>
239
282
  </fingerprint>
283
+
240
284
  <fingerprint pattern=".*\(Vine/Linux\).*">
241
285
  <description>Vine Linux</description>
242
286
  <param pos="0" name="os.vendor" value="Vine"/>
243
287
  <param pos="0" name="os.family" value="Linux"/>
244
288
  <param pos="0" name="os.product" value="Linux"/>
245
289
  </fingerprint>
290
+
246
291
  <fingerprint pattern=".*\(rPath\).*">
247
292
  <description>rPath Linux</description>
248
293
  <param pos="0" name="os.vendor" value="rPath"/>
249
294
  <param pos="0" name="os.family" value="Linux"/>
250
295
  <param pos="0" name="os.product" value="Linux"/>
251
296
  </fingerprint>
297
+
252
298
  <fingerprint pattern=".*\(StartCom Linux\).*">
253
299
  <description>StartCom Linux</description>
254
300
  <param pos="0" name="os.vendor" value="StartCom"/>
255
301
  <param pos="0" name="os.family" value="Linux"/>
256
302
  <param pos="0" name="os.product" value="Linux"/>
257
303
  </fingerprint>
304
+
258
305
  <fingerprint pattern=".*Linux.*">
259
306
  <description>Generic Linux fallback</description>
260
307
  <param pos="0" name="os.certainty" value="0.75"/>
261
308
  <param pos="0" name="os.family" value="Linux"/>
262
309
  <param pos="0" name="os.product" value="Linux"/>
263
310
  </fingerprint>
264
- </fingerprints>
311
+
312
+ </fingerprints>
@@ -1,32 +1,44 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
2
  <fingerprints matches="architecture" database_type="util.os">
3
3
  <!--
4
4
  Generic rules for matching a machine architecture, platform, or chipset
5
5
  -->
6
+
6
7
  <fingerprint pattern="x64|amd64|x86_64" flags="REG_ICASE">
7
8
  <description>x64 (x86_x64)</description>
8
9
  <example>Linux claw 3.11.0-15-generic #23-Ubuntu SMP Mon Dec 9 18:17:04 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux</example>
9
- <param pos="0" name="os.arch" value="x64"/>
10
+ <param pos="0" name="os.arch" value="x86_64"/>
10
11
  </fingerprint>
12
+
11
13
  <fingerprint pattern="x86|i[3456]86" flags="REG_ICASE">
12
14
  <description>x86</description>
13
15
  <example>Linux bob 3.2.0-1-generic #3-Ubuntu SMP Wed Dec 11 19:12:55 UTC 2013 i686 i686 i686 GNU/Linux</example>
14
16
  <param pos="0" name="os.arch" value="x86"/>
15
17
  </fingerprint>
18
+
16
19
  <fingerprint pattern="PowerPC|PPC|POWER|ppc">
17
20
  <description>PowerPC</description>
18
- <param pos="0" name="os.arch" value="ppc"/>
21
+ <param pos="0" name="os.arch" value="PowerPC"/>
19
22
  </fingerprint>
23
+
20
24
  <fingerprint pattern="SPARC" flags="REG_ICASE">
21
25
  <description>SPARC</description>
22
- <param pos="0" name="os.arch" value="sparc"/>
26
+ <param pos="0" name="os.arch" value="Sparc"/>
23
27
  </fingerprint>
28
+
24
29
  <fingerprint pattern="mips" flags="REG_ICASE">
25
30
  <description>MIPS</description>
26
- <param pos="0" name="os.arch" value="mips"/>
31
+ <param pos="0" name="os.arch" value="MIPS"/>
27
32
  </fingerprint>
33
+
34
+ <fingerprint pattern="arm64|aarch64" flags="REG_ICASE">
35
+ <description>ARM64 (aarch64)</description>
36
+ <param pos="0" name="os.arch" value="ARM64"/>
37
+ </fingerprint>
38
+
28
39
  <fingerprint pattern="arm" flags="REG_ICASE">
29
40
  <description>ARM</description>
30
- <param pos="0" name="os.arch" value="arm"/>
41
+ <param pos="0" name="os.arch" value="ARM"/>
31
42
  </fingerprint>
32
- </fingerprints>
43
+
44
+ </fingerprints>
@@ -1,22 +1,20 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
2
  <fingerprints matches="dns.versionbind" protocol="dns" database_type="service" preference="0.750">
3
3
  <!--
4
4
  This fingerprint file matches the text string response from a DNS
5
5
  version.bind request.
6
-
7
6
  For example, the string 'dnsmasq-2.76-1-ubnt2' emitted by the command below:
8
-
9
7
  $ nslookup -type=txt -class=chaos VERSION.BIND <dns_server> | grep VERSION.BIND | cut -d\" -f2
10
8
  dnsmasq-2.76-1-ubnt2
11
-
12
9
  -->
10
+
13
11
  <!-- Red Hat package naming:
14
12
  https://fedoraproject.org/wiki/Packaging:DistTag
15
13
  https://fedoraproject.org/wiki/Packaging:Versioning
16
-
17
14
  Enterprise linux release dates:
18
15
  https://access.redhat.com/articles/3078
19
16
  -->
17
+
20
18
  <fingerprint pattern="^(9.[^-]+(?:-rpz\d?[+.]rl[\d.]+)?(?:-[SP]\d)?)-RedHat-[\d.]+[-.][\w.]+el([\d]+)_?(\d*)(?:.[\w.]+)?$">
21
19
  <description>ISC BIND: Red Hat Enterprise Linux</description>
22
20
  <example service.version="9.8.2rc1" os.version="6" os.version.version="9">9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2</example>
@@ -38,10 +36,12 @@
38
36
  <param pos="3" name="os.version.version"/>
39
37
  <param pos="0" name="os.cpe23" value="cpe:/o:redhat:enterprise_linux:{os.version}"/>
40
38
  </fingerprint>
39
+
41
40
  <fingerprint pattern="^(9.[^-]+(?:-rl[.\d]+)?(?:-[SP]\d)?)-RedHat-[\d.]+-[\w.]+fc([\d]+)$">
42
41
  <description>ISC BIND: Fedora</description>
43
42
  <example service.version="9.10.4-P8">9.10.4-P8-RedHat-9.10.4-4.P8.fc25</example>
44
43
  <!-- The '-rl' in the example below indicates a rate limiting patch -->
44
+
45
45
  <example service.version="9.9.3-rl.13207.22-P2">9.9.3-rl.13207.22-P2-RedHat-9.9.3-5.P2.fc19</example>
46
46
  <example os.version="10">9.5.2-RedHat-9.5.2-1.fc10</example>
47
47
  <param pos="0" name="service.vendor" value="ISC"/>
@@ -55,6 +55,7 @@
55
55
  <param pos="2" name="os.version"/>
56
56
  <param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:{os.version}"/>
57
57
  </fingerprint>
58
+
58
59
  <fingerprint pattern="^(9.[^-]+(?:-[SP]\d)?)-RedHat-[\w.-]+amzn1$">
59
60
  <description>ISC BIND: Red Hat - Amazon hosted</description>
60
61
  <example service.version="9.8.2rc1">9.8.2rc1-RedHat-9.8.2-0.37.rc1.45.amzn1</example>
@@ -67,6 +68,7 @@
67
68
  <param pos="0" name="os.vendor" value="Red Hat"/>
68
69
  <param pos="0" name="os.family" value="Linux"/>
69
70
  </fingerprint>
71
+
70
72
  <fingerprint pattern="(9.[^-]+(?:-[SP]\d)?)-RedHat-[\w.-]+alios([\d\.]+)$">
71
73
  <description>ISC BIND: Red Hat - Alibaba Customized EL</description>
72
74
  <example service.version="9.9.9-P3" os.version="6">9.9.9-P3-RedHat-9.9.9-2.1.alios6</example>
@@ -82,6 +84,7 @@
82
84
  <param pos="2" name="os.version"/>
83
85
  <param pos="0" name="os.cpe23" value="cpe:/o:redhat:enterprise_linux:{os.version}"/>
84
86
  </fingerprint>
87
+
85
88
  <fingerprint pattern="^(9.[^-]+(?:rc\d)?(?:-[SP]\d)?)-RedHat-[\d.-]+(?:[-\.][SP]\d)?(?:rc[\d\.]+)?$">
86
89
  <description>ISC BIND: Red Hat nonspecific platform</description>
87
90
  <example service.version="9.9.10-P2">9.9.10-P2-RedHat-9.9.10-P2</example>
@@ -97,6 +100,7 @@
97
100
  <param pos="0" name="os.product" value="Linux"/>
98
101
  <param pos="0" name="os.cpe23" value="cpe:/o:redhat:linux:-"/>
99
102
  </fingerprint>
103
+
100
104
  <fingerprint pattern="^(9.[^-]+(?:-[SP]\d)?)-[\d.]+ubuntu[\d.]+-Ubuntu$">
101
105
  <description>ISC BIND: Ubuntu</description>
102
106
  <example service.version="9.9.5">9.9.5-11ubuntu1.1-Ubuntu</example>
@@ -111,6 +115,7 @@
111
115
  <param pos="0" name="os.product" value="Linux"/>
112
116
  <param pos="0" name="os.cpe23" value="cpe:/o:canonical:ubuntu_linux:-"/>
113
117
  </fingerprint>
118
+
114
119
  <fingerprint pattern="^(9.[^-]+-rpz\d?[+.]rl[\d.]+(?:-[SP]\d)?)-Ubuntu-[\d\.:]+[\w\.]+(?:-[SP]\d)?-\d?ubuntu[\d\.]+$">
115
120
  <description>ISC BIND: Ubuntu with Response Policy Zone and Request Limiting patches</description>
116
121
  <example service.version="9.9.3-rpz2+rl.13214.22-P2">9.9.3-rpz2+rl.13214.22-P2-Ubuntu-1:9.9.3.dfsg.P2-4ubuntu1.1</example>
@@ -124,6 +129,7 @@
124
129
  <param pos="0" name="os.product" value="Linux"/>
125
130
  <param pos="0" name="os.cpe23" value="cpe:/o:canonical:ubuntu_linux:-"/>
126
131
  </fingerprint>
132
+
127
133
  <fingerprint pattern="^(9.[^-]+(?:-[SP]\d)?)(?:-[\d\.]+)?-Ubuntu$">
128
134
  <description>ISC BIND: Ubuntu short</description>
129
135
  <example service.version="9.10.3-P4">9.10.3-P4-Ubuntu</example>
@@ -139,6 +145,7 @@
139
145
  <param pos="0" name="os.product" value="Linux"/>
140
146
  <param pos="0" name="os.cpe23" value="cpe:/o:canonical:ubuntu_linux:-"/>
141
147
  </fingerprint>
148
+
142
149
  <fingerprint pattern="^(9.[\d\.]+(?:[+-]rpz\d?[+.]rl[\d.]+)?(?:-[SP]\d)?).*[+-]zentyal\d*">
143
150
  <description>ISC BIND: Ubuntu Zentyal custom distribution</description>
144
151
  <example service.version="9.9.5">9.9.5-3+zentyal-Ubuntu</example>
@@ -153,8 +160,9 @@
153
160
  <param pos="0" name="os.family" value="Linux"/>
154
161
  <param pos="0" name="os.product" value="Zentyal"/>
155
162
  </fingerprint>
163
+
156
164
  <fingerprint pattern="^(9.[^-]+(?:-[SP]\d)?)-9\+deb8u[\w~\.]+-Debian$">
157
- <description>ISC BIND: Debian Jessie</description>
165
+ <description>ISC BIND: Debian 8.0 (jessie)</description>
158
166
  <example service.version="9.9.5">9.9.5-9+deb8u11-Debian</example>
159
167
  <example service.version="9.9.5">9.9.5-9+deb8u6A~4.2.0.201702281603-Debian</example>
160
168
  <param pos="0" name="service.vendor" value="ISC"/>
@@ -168,8 +176,9 @@
168
176
  <param pos="0" name="os.version" value="8.0"/>
169
177
  <param pos="0" name="os.cpe23" value="cpe:/o:debian:debian_linux:8.0"/>
170
178
  </fingerprint>
179
+
171
180
  <fingerprint pattern="^(9.[^-]+(?:-[SP]\d)?)-9wheezy\w+-Debian$">
172
- <description>ISC BIND: Debian Wheezy</description>
181
+ <description>ISC BIND: Debian 7.0 (wheezy)</description>
173
182
  <example service.version="9.9.5">9.9.5-9wheezy1-Debian</example>
174
183
  <param pos="0" name="service.vendor" value="ISC"/>
175
184
  <param pos="0" name="service.family" value="BIND"/>
@@ -182,6 +191,7 @@
182
191
  <param pos="0" name="os.version" value="7.0"/>
183
192
  <param pos="0" name="os.cpe23" value="cpe:/o:debian:debian_linux:7.0"/>
184
193
  </fingerprint>
194
+
185
195
  <fingerprint pattern="^(9.[^-]+(?:-[SP]\d)?)-(?:[\d\.]+-)?Debian$">
186
196
  <description>ISC BIND: Debian no version simple</description>
187
197
  <example service.version="9.10.3-P4">9.10.3-P4-Debian</example>
@@ -197,6 +207,7 @@
197
207
  <param pos="0" name="os.product" value="Linux"/>
198
208
  <param pos="0" name="os.cpe23" value="cpe:/o:debian:debian_linux:-"/>
199
209
  </fingerprint>
210
+
200
211
  <fingerprint pattern="^(9\.\d{1,2}\.\d{1,2}-rpz\d?[+.]rl[\d.]+(?:-[SPW]\d+)?)$">
201
212
  <description>ISC BIND: Response Policy Zone and Request Limiting patches</description>
202
213
  <example service.version="9.8.4-rpz2+rl005.12-P1">9.8.4-rpz2+rl005.12-P1</example>
@@ -207,6 +218,7 @@
207
218
  <param pos="1" name="service.version"/>
208
219
  <param pos="0" name="service.cpe23" value="cpe:/a:isc:bind:{service.version}"/>
209
220
  </fingerprint>
221
+
210
222
  <fingerprint pattern="^DNS Server BIND (9\.\d{1,2}-ESV(?:-R\d+)?(?:-[SPW]\d+)?)$">
211
223
  <description>ISC BIND: ESV</description>
212
224
  <example service.version="9.6-ESV-R7-P2">DNS Server BIND 9.6-ESV-R7-P2</example>
@@ -216,10 +228,12 @@
216
228
  <param pos="1" name="service.version"/>
217
229
  <param pos="0" name="service.cpe23" value="cpe:/a:isc:bind:{service.version}"/>
218
230
  </fingerprint>
231
+
219
232
  <!--
220
233
  FP below might be overly specific, trying to avoid false positive when
221
234
  matching cross-service/protocol.
222
235
  -->
236
+
223
237
  <fingerprint pattern="^(?:BIND )?([89]\.[\d\.]+(?:[ab]\d+)?(?:-ESV(?:-R\d+)?)?(?:-[SPW][\d\.]+)?(?:-REL)?(?:-[W]\d+)?(?:rc\d)?)(?:-NOESW)?$">
224
238
  <description>ISC BIND: bare release number - ESV REL NOESW</description>
225
239
  <example service.version="9.7.0-P1">9.7.0-P1</example>
@@ -242,6 +256,7 @@
242
256
  <param pos="1" name="service.version"/>
243
257
  <param pos="0" name="service.cpe23" value="cpe:/a:isc:bind:{service.version}"/>
244
258
  </fingerprint>
259
+
245
260
  <fingerprint pattern="^dnsmasq-(\d.[\w\.]+)$">
246
261
  <description>dnsmasq: simple</description>
247
262
  <example service.version="2.40">dnsmasq-2.40</example>
@@ -254,6 +269,7 @@
254
269
  <param pos="1" name="service.version"/>
255
270
  <param pos="0" name="service.cpe23" value="cpe:/a:thekelleys:dnsmasq:{service.version}"/>
256
271
  </fingerprint>
272
+
257
273
  <fingerprint pattern="^dnsmasq-(\d.[\w]+-\d)-ubnt\d$">
258
274
  <description>dnsmasq: Ubiquiti</description>
259
275
  <example service.version="2.76-1">dnsmasq-2.76-1-ubnt2</example>
@@ -266,7 +282,9 @@
266
282
  <!-- Not including more info at this time as I'm not sure this doesn't
267
283
  run on products other than EdgeRouter.
268
284
  -->
285
+
269
286
  </fingerprint>
287
+
270
288
  <fingerprint pattern="^dnsmasq-(\d.[\w]+)-OpenDNS-\d$">
271
289
  <description>dnsmasq: OpenDNS variant</description>
272
290
  <example service.version="2.15">dnsmasq-2.15-OpenDNS-1</example>
@@ -278,7 +296,9 @@
278
296
  <!-- Seems to correlate with OpenWRT and Netgear but I haven't been able
279
297
  to verify that it isn't used elsewhere.
280
298
  -->
299
+
281
300
  </fingerprint>
301
+
282
302
  <fingerprint pattern="^dnsmasq-?(?:UNKNOWN)?$">
283
303
  <description>dnsmasq: no version</description>
284
304
  <example>dnsmasq-UNKNOWN</example>
@@ -289,6 +309,7 @@
289
309
  <param pos="0" name="service.product" value="Dnsmasq"/>
290
310
  <param pos="0" name="service.cpe23" value="cpe:/a:thekelleys:dnsmasq:-"/>
291
311
  </fingerprint>
312
+
292
313
  <fingerprint pattern="^PowerDNS Recursor (\d\.[\d.]+(?:-\w+)?) \(\w+@[\w.]+ built \d+ \w+@[\w.-]*\)$">
293
314
  <description>PowerDNS Recursor</description>
294
315
  <example service.version="3.6.2">PowerDNS Recursor 3.6.2 (jenkins@autotest.powerdns.com built 20141031140810 mockbuild@)</example>
@@ -299,6 +320,7 @@
299
320
  <param pos="1" name="service.version"/>
300
321
  <param pos="0" name="service.cpe23" value="cpe:/a:powerdns:recursor:{service.version}"/>
301
322
  </fingerprint>
323
+
302
324
  <fingerprint pattern="^PowerDNS Recursor (\d\.[\d.]+) \(built [\w\s:]+ by [\w]+\@[\w.-]*\)$">
303
325
  <description>PowerDNS Recursor: format 2</description>
304
326
  <example service.version="4.0.4">PowerDNS Recursor 4.0.4 (built Apr 13 2017 09:59:06 by root@oof-e.baz.foo.bar)</example>
@@ -308,6 +330,7 @@
308
330
  <param pos="1" name="service.version"/>
309
331
  <param pos="0" name="service.cpe23" value="cpe:/a:powerdns:recursor:{service.version}"/>
310
332
  </fingerprint>
333
+
311
334
  <fingerprint pattern="^PowerDNS Recursor (\d\.[\d.]+(?:-\w+)?)$">
312
335
  <description>PowerDNS Recursor: version only</description>
313
336
  <example service.version="4.0.4">PowerDNS Recursor 4.0.4</example>
@@ -318,6 +341,7 @@
318
341
  <param pos="1" name="service.version"/>
319
342
  <param pos="0" name="service.cpe23" value="cpe:/a:powerdns:recursor:{service.version}"/>
320
343
  </fingerprint>
344
+
321
345
  <fingerprint pattern="^PowerDNS Recursor (\d\.[\d.]+) \$Id[^$]*\$$">
322
346
  <description>PowerDNS Recursor: ID format</description>
323
347
  <example service.version="3.5.3">PowerDNS Recursor 3.5.3 $Id$</example>
@@ -328,6 +352,7 @@
328
352
  <param pos="1" name="service.version"/>
329
353
  <param pos="0" name="service.cpe23" value="cpe:/a:powerdns:recursor:{service.version}"/>
330
354
  </fingerprint>
355
+
331
356
  <fingerprint pattern="^PowerDNS Recursor$">
332
357
  <description>PowerDNS Recursor: no version</description>
333
358
  <example>PowerDNS Recursor</example>
@@ -336,6 +361,7 @@
336
361
  <param pos="0" name="service.product" value="Recursor"/>
337
362
  <param pos="0" name="service.cpe23" value="cpe:/a:powerdns:recursor:-"/>
338
363
  </fingerprint>
364
+
339
365
  <fingerprint pattern="^PowerDNS Authoritative Server (\d\.[\d.]+(?:-rc\d)?) \(\w+@[\w.]+ built [\d\s]+\w*@[\w.-]*\)$">
340
366
  <description>PowerDNS Authoritative Server</description>
341
367
  <example service.version="3.4.19">PowerDNS Authoritative Server 3.4.19 (jenkins@autotest.powerdns.com built 20160102220341 root@)</example>
@@ -349,6 +375,7 @@
349
375
  <param pos="1" name="service.version"/>
350
376
  <param pos="0" name="service.cpe23" value="cpe:/a:powerdns:authoritative_server:{service.version}"/>
351
377
  </fingerprint>
378
+
352
379
  <fingerprint pattern="^PowerDNS Authoritative Server (\d\.[\w.]+(?:-rc\d)?(?:-alpha\d)?(?:-beta\d)?) \(built [\w\s:]+ by [\w]+\@[\w.-:-]*\)$">
353
380
  <description>PowerDNS Authoritative Server: format 2</description>
354
381
  <example service.version="4.0.4">PowerDNS Authoritative Server 4.0.4 (built Jul 26 2017 15:04:27 by root@FreeBSD:11:amd64-default-job-03)</example>
@@ -362,6 +389,7 @@
362
389
  <param pos="1" name="service.version"/>
363
390
  <param pos="0" name="service.cpe23" value="cpe:/a:powerdns:authoritative_server:{service.version}"/>
364
391
  </fingerprint>
392
+
365
393
  <fingerprint pattern="^PowerDNS Authoritative Server (\d\.[\d.]+(?:-\w+)?)$">
366
394
  <description>PowerDNS Authoritative Server: version only</description>
367
395
  <example service.version="4.0.0">PowerDNS Authoritative Server 4.0.0</example>
@@ -372,12 +400,14 @@
372
400
  <param pos="1" name="service.version"/>
373
401
  <param pos="0" name="service.cpe23" value="cpe:/a:powerdns:authoritative_server:{service.version}"/>
374
402
  </fingerprint>
403
+
375
404
  <!-- PowerDNS returns 'Served by ...' when the 'version-string' configuration
376
405
  value / arguement is set to 'powerdns'. If this value is set to
377
406
  'anonymous' then PowerDNS will return a ServFail DNS response
378
407
  The matches below are *probably* Authoritative Server but we can't be
379
408
  sure.
380
409
  -->
410
+
381
411
  <fingerprint pattern="^Served by POWERDNS (\d\.[\d.]+) \$Id[^$]*\$$">
382
412
  <description>PowerDNS: Served by format with version</description>
383
413
  <example service.version="2.9.22">Served by POWERDNS 2.9.22 $Id: packethandler.cc 1321 2008-12-06 19:44:36Z ahu $</example>
@@ -385,6 +415,7 @@
385
415
  <param pos="0" name="service.family" value="PowerDNS"/>
386
416
  <param pos="1" name="service.version"/>
387
417
  </fingerprint>
418
+
388
419
  <fingerprint pattern="^Served by PowerDNS - https?:\/\/www.powerdns.com\/?$">
389
420
  <description>PowerDNS: Served by format without version</description>
390
421
  <example>Served by PowerDNS - https://www.powerdns.com/</example>
@@ -392,6 +423,7 @@
392
423
  <param pos="0" name="service.vendor" value="PowerDNS"/>
393
424
  <param pos="0" name="service.family" value="PowerDNS"/>
394
425
  </fingerprint>
426
+
395
427
  <fingerprint pattern="^Nominum Vantio(?: CacheServe)? ([\d.]+)$">
396
428
  <description>Nominum Vantio CacheServe</description>
397
429
  <example service.version="4.3.0.2">Nominum Vantio 4.3.0.2</example>
@@ -401,15 +433,17 @@
401
433
  <param pos="0" name="service.product" value="CacheServe"/>
402
434
  <param pos="1" name="service.version"/>
403
435
  </fingerprint>
436
+
404
437
  <fingerprint pattern="^Nominum Vantio ([\d.]+) \(build (\d+)\)$">
405
438
  <description>Nominum Vantio CacheServe, with build</description>
406
- <example service.version.version="114872">Nominum Vantio 5.4.5.1 (build 114872)</example>
439
+ <example service.version="5.4.5.1" service.version.version="114872">Nominum Vantio 5.4.5.1 (build 114872)</example>
407
440
  <param pos="0" name="service.vendor" value="Nominum"/>
408
441
  <param pos="0" name="service.family" value="Vantio"/>
409
442
  <param pos="0" name="service.product" value="CacheServe"/>
410
443
  <param pos="1" name="service.version"/>
411
444
  <param pos="2" name="service.version.version"/>
412
445
  </fingerprint>
446
+
413
447
  <fingerprint pattern="^Nominum ANS(?:Premier)? ([\d\.]+)$">
414
448
  <description>Nominum Vantio AuthServ</description>
415
449
  <example service.version="5.4.0.0">Nominum ANS 5.4.0.0</example>
@@ -419,6 +453,7 @@
419
453
  <param pos="0" name="service.product" value="AuthServ"/>
420
454
  <param pos="1" name="service.version"/>
421
455
  </fingerprint>
456
+
422
457
  <fingerprint pattern="^NSD ([\d.]*(?:b\d+)?)$">
423
458
  <description>NLnet Labs Name Server Daemon</description>
424
459
  <example service.version="3.2.18">NSD 3.2.18</example>
@@ -430,6 +465,7 @@
430
465
  <param pos="0" name="service.product" value="dnsd"/>
431
466
  <param pos="1" name="service.version"/>
432
467
  </fingerprint>
468
+
433
469
  <fingerprint pattern="^unbound ([\d.]+)$">
434
470
  <description>NLnet Labs Unbound</description>
435
471
  <example service.version="1.4.22">unbound 1.4.22</example>
@@ -438,6 +474,7 @@
438
474
  <param pos="0" name="service.product" value="unbound"/>
439
475
  <param pos="1" name="service.version"/>
440
476
  </fingerprint>
477
+
441
478
  <fingerprint pattern="^(?i:unbound)$">
442
479
  <description>NLnet Labs Unbound no version string</description>
443
480
  <example>unbound</example>
@@ -445,6 +482,7 @@
445
482
  <param pos="0" name="service.family" value="Unbound"/>
446
483
  <param pos="0" name="service.product" value="unbound"/>
447
484
  </fingerprint>
485
+
448
486
  <fingerprint pattern="^(?:BIND )?(9.[^-]+(?:-[SP]\d)?)-9\+deb8u\d+-Raspbian$">
449
487
  <description>ISC BIND: Raspbian based on Debian Jessie</description>
450
488
  <example service.version="9.9.5">9.9.5-9+deb8u7-Raspbian</example>
@@ -459,6 +497,7 @@
459
497
  <param pos="0" name="os.product" value="Linux"/>
460
498
  <param pos="0" name="os.version" value="8.0"/>
461
499
  </fingerprint>
500
+
462
501
  <fingerprint pattern="^(9.[^-]+(?:-[SP]\d)?)-(?:\d-)?Raspbian$">
463
502
  <description>ISC BIND: Raspbian based on Debian Jessie no version simple</description>
464
503
  <example service.version="9.10.3-P4">9.10.3-P4-Raspbian</example>
@@ -471,6 +510,7 @@
471
510
  <param pos="0" name="os.family" value="Linux"/>
472
511
  <param pos="0" name="os.product" value="Linux"/>
473
512
  </fingerprint>
513
+
474
514
  <fingerprint pattern="^Knot DNS ([\d.]+(?:-dev)?)$">
475
515
  <description>Knot DNS</description>
476
516
  <example service.version="1.6.0">Knot DNS 1.6.0</example>
@@ -480,6 +520,7 @@
480
520
  <param pos="0" name="service.product" value="DNS"/>
481
521
  <param pos="1" name="service.version"/>
482
522
  </fingerprint>
523
+
483
524
  <fingerprint pattern="^UltraDNS Resolver$">
484
525
  <description>Neustar UltraDNS Resolver</description>
485
526
  <example>UltraDNS Resolver</example>
@@ -487,6 +528,7 @@
487
528
  <param pos="0" name="service.family" value="UltraDNS"/>
488
529
  <param pos="0" name="service.product" value="Resolver"/>
489
530
  </fingerprint>
531
+
490
532
  <fingerprint pattern="^UltraDNS TLD Platform - www\.ultradns\.com$">
491
533
  <description>Neustar UltraDNS TLD Platform</description>
492
534
  <example>UltraDNS TLD Platform - www.ultradns.com</example>
@@ -494,24 +536,25 @@
494
536
  <param pos="0" name="service.family" value="UltraDNS"/>
495
537
  <param pos="0" name="service.product" value="Resolver"/>
496
538
  </fingerprint>
539
+
497
540
  <!-- For Microsoft OSes the build number applies to the family. For example,
498
541
  6.3.9600 is used by Windows 8.1 Update 1 as well as Windows 2012 R2. We
499
542
  are assuming that the server version of the OS is what we are
500
543
  fingerprinting since installation of the DNS service on the workstation
501
544
  class OS would be unlikely and difficult if possible at all.
502
-
503
545
  DNS version response is disabled by default on modern Windows versions
504
546
  and the detail in the response is controlled via the EnableVersionQuery
505
547
  setting.
506
-
507
548
  The to enable version response on modern versions is:
508
549
  dnscmd /config /EnableVersionQuery 1
509
550
  -->
551
+
510
552
  <fingerprint pattern="^Microsoft DNS (10.0.\d+)(?: \(\w+\))?$">
511
553
  <description>Microsoft DNS on Windows 2016: GA</description>
512
554
  <!-- Windows 10 / 2016 moved towards a rolling release so capturing build
513
555
  is required unlike other Windows versions where we use a fixed string.
514
556
  -->
557
+
515
558
  <example service.version="10.0.14393" os.build="10.0.14393">Microsoft DNS 10.0.14393 (383900CE)</example>
516
559
  <param pos="0" name="service.vendor" value="Microsoft"/>
517
560
  <param pos="0" name="service.family" value="DNS"/>
@@ -523,6 +566,7 @@
523
566
  <param pos="1" name="os.build"/>
524
567
  <param pos="0" name="os.cpe23" value="cpe:/o:microsoft:windows_server_2016:-"/>
525
568
  </fingerprint>
569
+
526
570
  <fingerprint pattern="^Microsoft DNS 6.3.9600(?: \(\w+\))?$">
527
571
  <description>Microsoft DNS on Windows 2012 R2</description>
528
572
  <example>Microsoft DNS 6.3.9600 (25804825)</example>
@@ -536,6 +580,7 @@
536
580
  <param pos="0" name="os.build" value="6.3.9600"/>
537
581
  <param pos="0" name="os.cpe23" value="cpe:/o:microsoft:windows_server_2012:-"/>
538
582
  </fingerprint>
583
+
539
584
  <fingerprint pattern="^Microsoft DNS 6.2.9200(?: \(\w+\))?$">
540
585
  <description>Microsoft DNS on Windows 2012</description>
541
586
  <example>Microsoft DNS 6.2.9200 (23F04000)</example>
@@ -549,6 +594,7 @@
549
594
  <param pos="0" name="os.build" value="6.2.9200"/>
550
595
  <param pos="0" name="os.cpe23" value="cpe:/o:microsoft:windows_server_2012:-"/>
551
596
  </fingerprint>
597
+
552
598
  <fingerprint pattern="^Microsoft DNS 6.1.7601(?: \(\w+\))?$">
553
599
  <description>Microsoft DNS on Windows 2008 R2 Service Pack 1</description>
554
600
  <example>Microsoft DNS 6.1.7601 (1DB15CD4)</example>
@@ -564,6 +610,7 @@
564
610
  <param pos="0" name="os.build" value="6.1.7601"/>
565
611
  <param pos="0" name="os.cpe23" value="cpe:/o:microsoft:windows_server_2008:Service Pack 1"/>
566
612
  </fingerprint>
613
+
567
614
  <fingerprint pattern="^Microsoft DNS 6.1.7600(?: \(\w+\))?$">
568
615
  <description>Microsoft DNS on Windows 2008 R2</description>
569
616
  <example>Microsoft DNS 6.1.7600 (1DB04228)</example>
@@ -577,6 +624,7 @@
577
624
  <param pos="0" name="os.build" value="6.1.7600"/>
578
625
  <param pos="0" name="os.cpe23" value="cpe:/o:microsoft:windows_server_2008:-"/>
579
626
  </fingerprint>
627
+
580
628
  <fingerprint pattern="^Microsoft DNS 6.0.6002(?: \(\w+\))?$">
581
629
  <description>Microsoft DNS on Windows 2008 Service Pack 2</description>
582
630
  <example>Microsoft DNS 6.0.6002 (17724D35)</example>
@@ -591,6 +639,7 @@
591
639
  <param pos="0" name="os.build" value="6.0.6002"/>
592
640
  <param pos="0" name="os.cpe23" value="cpe:/o:microsoft:windows_server_2008:Service Pack 2"/>
593
641
  </fingerprint>
642
+
594
643
  <fingerprint pattern="^Microsoft DNS 6.0.6001(?: \(\w+\))?$">
595
644
  <description>Microsoft DNS on Windows 2008 Service Pack 1</description>
596
645
  <example>Microsoft DNS 6.0.6001 (17714726)</example>
@@ -605,6 +654,7 @@
605
654
  <param pos="0" name="os.build" value="6.0.6001"/>
606
655
  <param pos="0" name="os.cpe23" value="cpe:/o:microsoft:windows_server_2008:Service Pack 1"/>
607
656
  </fingerprint>
657
+
608
658
  <fingerprint pattern="^DNSServer$">
609
659
  <description>Synology DNS service</description>
610
660
  <example>DNSServer</example>
@@ -618,6 +668,7 @@
618
668
  <param pos="0" name="hw.vendor" value="Synology"/>
619
669
  <param pos="0" name="hw.device" value="NAS"/>
620
670
  </fingerprint>
671
+
621
672
  <fingerprint pattern="^Incognito DNS Service ([\d\.]+) \(built">
622
673
  <description>Incognito DNS Service</description>
623
674
  <example service.version="6.4.4.2">Incognito DNS Service 6.4.4.2 (built Aug 10 2015) [up=15d30902s, ser=9876]</example>
@@ -626,6 +677,7 @@
626
677
  <param pos="0" name="service.product" value="DNS"/>
627
678
  <param pos="1" name="service.version"/>
628
679
  </fingerprint>
680
+
629
681
  <fingerprint pattern="^(?i:djbdns)[\s-](\d.\d+)$">
630
682
  <description>djbdns</description>
631
683
  <example service.version="1.05">djbdns 1.05</example>
@@ -636,6 +688,7 @@
636
688
  <param pos="0" name="service.product" value="djbdns"/>
637
689
  <param pos="1" name="service.version"/>
638
690
  </fingerprint>
691
+
639
692
  <fingerprint pattern="^(?i:djbdns)$">
640
693
  <description>djbdns: no version</description>
641
694
  <example>DJBDNS</example>
@@ -644,6 +697,7 @@
644
697
  <param pos="0" name="service.family" value="djbdns"/>
645
698
  <param pos="0" name="service.product" value="djbdns"/>
646
699
  </fingerprint>
700
+
647
701
  <fingerprint pattern="^rbldnsd (\d[\.\w\/-]+) \(\d\d \w\w\w \d\d\d\d\)$">
648
702
  <description>rbldnsd</description>
649
703
  <example service.version="0.997a">rbldnsd 0.997a (23 Jul 2013)</example>
@@ -654,6 +708,7 @@
654
708
  <param pos="0" name="service.product" value="rbldnsd"/>
655
709
  <param pos="1" name="service.version"/>
656
710
  </fingerprint>
711
+
657
712
  <fingerprint pattern="^ALU DNS ([\d\.]+) Build (\d+)$">
658
713
  <description>ALU (Alcatel Lucent?) DNS</description>
659
714
  <example service.version="6.2">ALU DNS 6.2 Build 22</example>
@@ -664,6 +719,7 @@
664
719
  <param pos="1" name="service.version"/>
665
720
  <param pos="2" name="service.version.version"/>
666
721
  </fingerprint>
722
+
667
723
  <fingerprint pattern="^DraytekDNS-v([\d\.]+)$">
668
724
  <description>DrayTek DNS</description>
669
725
  <example service.version="1.2.3006">DraytekDNS-v1.2.3006</example>
@@ -673,15 +729,18 @@
673
729
  <param pos="1" name="service.version"/>
674
730
  <param pos="0" name="hw.vendor" value="DrayTek"/>
675
731
  </fingerprint>
732
+
676
733
  <fingerprint pattern="^Atlas Anchor ([\d\.]+)$">
677
734
  <description>Ripe ATLAS Anchor</description>
678
735
  <!-- https://atlas.ripe.net/docs/anchors/ -->
736
+
679
737
  <example service.version="0.1">Atlas Anchor 0.1</example>
680
738
  <param pos="0" name="service.vendor" value="RIPE"/>
681
739
  <param pos="0" name="service.family" value="Atlas Anchor"/>
682
740
  <param pos="0" name="service.product" value="DNS"/>
683
741
  <param pos="1" name="service.version"/>
684
742
  </fingerprint>
743
+
685
744
  <fingerprint pattern="^ZyWALL DNS$">
686
745
  <description>ZyWALL DNS</description>
687
746
  <example>ZyWALL DNS</example>
@@ -690,6 +749,7 @@
690
749
  <param pos="0" name="service.product" value="DNS"/>
691
750
  <param pos="0" name="hw.vendor" value="Zyxel"/>
692
751
  </fingerprint>
752
+
693
753
  <fingerprint pattern="^Array SmartDNS$">
694
754
  <description>Array Networks SmartDNS</description>
695
755
  <example>Array SmartDNS</example>
@@ -697,6 +757,7 @@
697
757
  <param pos="0" name="service.family" value="APV"/>
698
758
  <param pos="0" name="service.product" value="SmartDNS"/>
699
759
  </fingerprint>
760
+
700
761
  <fingerprint pattern="^gdnsd$">
701
762
  <description>gdnsd</description>
702
763
  <example>gdnsd</example>
@@ -704,6 +765,7 @@
704
765
  <param pos="0" name="service.family" value="gdnsd"/>
705
766
  <param pos="0" name="service.product" value="gdnsd"/>
706
767
  </fingerprint>
768
+
707
769
  <fingerprint pattern="^Hi: [\w\.: =]+\d{4}$">
708
770
  <description>OzymanDNS DNS tunnel</description>
709
771
  <example>Hi: Thu Aug 17 23:29:10 2017</example>
@@ -712,6 +774,7 @@
712
774
  <param pos="0" name="service.family" value="OzymanDNS"/>
713
775
  <param pos="0" name="service.product" value="OzymanDNS"/>
714
776
  </fingerprint>
777
+
715
778
  <fingerprint pattern="^Meta IP[\s\/]DNS (?:V[\d\.]+ )?- BIND V([\d\.]+(?:-REL)?) \(Build (\d+)\s?\)$">
716
779
  <description>Check Point Meta IP</description>
717
780
  <example service.version="8.2.7-REL">Meta IP DNS - BIND V8.2.7-REL (Build 31)</example>
@@ -722,4 +785,43 @@
722
785
  <param pos="1" name="service.version"/>
723
786
  <param pos="2" name="service.version.version"/>
724
787
  </fingerprint>
725
- </fingerprints>
788
+
789
+ <fingerprint pattern="^CleanBrowsing v([^ ]+) - (.*)">
790
+ <description>CleanBrowsing DNS Server</description>
791
+ <example service.vendor="CleanBrowsing" service.family="CleanBrowsing" service.version="1.5a" service.node="dns-edge-usa-west-sunnyvale-p">CleanBrowsing v1.5a - dns-edge-usa-west-sunnyvale-p</example>
792
+ <example service.vendor="CleanBrowsing" service.family="CleanBrowsing" service.version="1.4a" service.node="dns-edge-usa-west-sunnyvale.cleanbrowsing.org">CleanBrowsing v1.4a - dns-edge-usa-west-sunnyvale.cleanbrowsing.org</example>
793
+ <param pos="0" name="service.vendor" value="CleanBrowsing"/>
794
+ <param pos="0" name="service.family" value="CleanBrowsing"/>
795
+ <param pos="0" name="service.product" value="DNS"/>
796
+ <param pos="1" name="service.version"/>
797
+ <param pos="2" name="service.node"/>
798
+ </fingerprint>
799
+
800
+ <fingerprint pattern="^dnsmasq-pi-hole-(.*)$">
801
+ <description>dnsmasq: pi-hole</description>
802
+ <example service.version="2.80">dnsmasq-pi-hole-2.80</example>
803
+ <param pos="0" name="service.vendor" value="Pi-hole"/>
804
+ <param pos="0" name="service.family" value="Pi-hole"/>
805
+ <param pos="0" name="service.product" value="Pi-hole"/>
806
+ <param pos="1" name="service.version"/>
807
+ <param pos="0" name="service.cpe23" value="cpe:/a:pi-hole:pi-hole:{service.version}"/>
808
+ </fingerprint>
809
+
810
+ <fingerprint pattern="^Q9-[^\-]-(.*)$">
811
+ <description>Quad9 Resolver</description>
812
+ <example service.vendor="IBM" service.family="Quad9" service.product="DNS" service.version="6.0">Q9-P-6.0</example>
813
+ <param pos="0" name="service.vendor" value="IBM"/>
814
+ <param pos="0" name="service.family" value="Quad9"/>
815
+ <param pos="0" name="service.product" value="DNS"/>
816
+ <param pos="1" name="service.version"/>
817
+ </fingerprint>
818
+
819
+ <fingerprint pattern="^keweonDNS v\.(.*)$">
820
+ <description>Keweon DNS</description>
821
+ <example service.vendor="Keweon" service.product="DNS" service.version="9.63.7201">keweonDNS v.9.63.7201</example>
822
+ <param pos="0" name="service.vendor" value="Keweon"/>
823
+ <param pos="0" name="service.product" value="DNS"/>
824
+ <param pos="1" name="service.version"/>
825
+ </fingerprint>
826
+
827
+ </fingerprints>