recog-intrigue 2.3.7

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