recog-intrigue 2.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>