recog 2.0.13 → 2.0.14

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +19 -6
  3. data/features/{xml → data}/failing_banners_fingerprints.xml +0 -0
  4. data/features/{xml → data}/matching_banners_fingerprints.xml +0 -0
  5. data/features/{xml → data}/no_tests.xml +0 -0
  6. data/features/{xml/banners.xml → data/sample_banner.txt} +0 -0
  7. data/features/{xml → data}/successful_tests.xml +0 -0
  8. data/features/{xml → data}/tests_with_failures.xml +0 -0
  9. data/features/{xml → data}/tests_with_warnings.xml +0 -0
  10. data/features/match.feature +2 -2
  11. data/features/support/env.rb +1 -1
  12. data/lib/recog/version.rb +1 -1
  13. data/misc/order.xsl +17 -0
  14. data/spec/lib/fingerprint_self_test_spec.rb +8 -0
  15. data/xml/apache_os.xml +270 -334
  16. data/xml/architecture.xml +28 -41
  17. data/xml/fingerprints.xsd +37 -0
  18. data/xml/ftp_banners.xml +52 -58
  19. data/xml/h323_callresp.xml +597 -695
  20. data/xml/hp_pjl_id.xml +370 -409
  21. data/xml/http_cookies.xml +304 -348
  22. data/xml/http_servers.xml +3202 -3483
  23. data/xml/http_wwwauth.xml +342 -409
  24. data/xml/imap_banners.xml +149 -190
  25. data/xml/mdns_device-info_txt.xml +97 -111
  26. data/xml/mdns_workstation_txt.xml +6 -6
  27. data/xml/mysql_banners.xml +99 -198
  28. data/xml/mysql_error.xml +4 -11
  29. data/xml/nntp_banners.xml +42 -45
  30. data/xml/ntp_banners.xml +2 -3
  31. data/xml/pop_banners.xml +214 -247
  32. data/xml/rsh_resp.xml +68 -76
  33. data/xml/sip_banners.xml +19 -19
  34. data/xml/sip_user_agents.xml +63 -74
  35. data/xml/smb_native_os.xml +387 -433
  36. data/xml/smtp_banners.xml +1318 -1460
  37. data/xml/smtp_debug.xml +24 -27
  38. data/xml/smtp_ehlo.xml +19 -22
  39. data/xml/smtp_expn.xml +61 -70
  40. data/xml/smtp_help.xml +139 -160
  41. data/xml/smtp_mailfrom.xml +14 -16
  42. data/xml/smtp_noop.xml +28 -31
  43. data/xml/smtp_quit.xml +16 -18
  44. data/xml/smtp_rcptto.xml +8 -10
  45. data/xml/smtp_rset.xml +12 -13
  46. data/xml/smtp_turn.xml +12 -13
  47. data/xml/smtp_vrfy.xml +66 -76
  48. data/xml/snmp_sysdescr.xml +7257 -8016
  49. data/xml/snmp_sysobjid.xml +392 -434
  50. data/xml/ssh_banners.xml +783 -867
  51. data/xml/upnp_banners.xml +594 -628
  52. metadata +11 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 550cc41ba69213d60ced6ead986dc8c38d3129da
4
- data.tar.gz: 317c61c92e185f982f0066ddafcd811a0b644224
3
+ metadata.gz: 2d08dc173999e1694bdc5f102a28be119f4e8866
4
+ data.tar.gz: 46283f711629cc12bb944b02cfe6ce1bbfc1f5d5
5
5
  SHA512:
6
- metadata.gz: a6c71d5f88b88e952613346681a0f5834d0a47469df0e53420a114102626c52edb5eeb392a4fa8fb866b3c63de7f361a680e4e9a521e257948bb500f7a8f81af
7
- data.tar.gz: 5db712820756886fd6bc2c1d550d5a82672d2291ae4237e3985a104b363c552d7d59fdf96028a11bc179a45ff0ad734cc64ec5b4058939cd0c12b0cc14707169
6
+ metadata.gz: 44b5b348c47caefd5998d36fa2439e64b05ae679daba22a58014d484b1a55baa0348b301ecbe3ccfeea337ca5fd2afb35b94580ebefa0f2161284f69d22c4c76
7
+ data.tar.gz: ab0237e095304a36ae8b72f1afbbb9abb6e2fd4423af1d8e071546c178eb3e547355c70b8f9ea4ec78a1e38738fe4b582b9e36a1ebf0ea0bbf9e8d3e3a63c060
@@ -35,10 +35,23 @@ Generally, this should only need to be done once, or if you need to start over.
35
35
  2. Clone ```git@github.com:<your-github-username>/recog.git```, replacing
36
36
  ```<your-github-username>``` with, you guessed it, your Github username.
37
37
  3. Add the master Recog repository as your upstream:
38
- ```
39
- git remote add upstream git://github.com/rapid7/recog.git
40
- git fetch --all
41
- ```
38
+
39
+ ```
40
+ git remote add upstream git://github.com/rapid7/recog.git
41
+ ```
42
+ 4. Update your `.git/config` to ensure that the `remote ["upstream"]` section is configured to pull both branches and PRs from upstream. It should look something like the following, in particular the second `fetch` option:
43
+
44
+ ```
45
+ [remote "upstream"]
46
+ url = git@github.com:rapid7/recog.git
47
+ fetch = +refs/heads/*:refs/remotes/upstream/*
48
+ fetch = +refs/pull/*/head:refs/remotes/upstream/pr/*
49
+ ```
50
+ 5. Fetch the latest revisions, including PRs:
51
+
52
+ ```
53
+ git fetch --all
54
+ ```
42
55
 
43
56
  ### Branch and Improve
44
57
 
@@ -80,7 +93,7 @@ PRs](https://github.com/rapid7/metasploit-framework/wiki/Landing-Pull-Requests).
80
93
  In short:
81
94
 
82
95
  1. Follow the "Fork and Clone" steps from above
83
- 2. Update your `.git/config` to ensure that the `remote ["upstream"]` section is configure to pull both branches and PRs from upstream. It should look something like the following, in particular the second `fetch` option:
96
+ 2. Update your `.git/config` to ensure that the `remote ["upstream"]` section is configured to pull both branches and PRs from upstream. It should look something like the following, in particular the second `fetch` option:
84
97
 
85
98
  ```
86
99
  [remote "upstream"]
@@ -117,7 +130,7 @@ When Recog's critical parts are modified, for example its fingerprints or underl
117
130
  When a new version of Recog is to be released, you _must_ follow the instructions below.
118
131
 
119
132
  1. If are not already a Recog project contributor for the Recog gem (you'd be listed [here under OWNERS](https://rubygems.org/gems/recog)), become one:
120
- 1. 1. Get an account on [Rubygems](https://rubygems.org)
133
+ 1. Get an account on [Rubygems](https://rubygems.org)
121
134
  2. Contact one of the Recog project contributors (listed [here under OWNERS](https://rubygems.org/gems/recog) and have them add you to the Recog gem. They'll need to run:
122
135
  ```
123
136
  gem owner recog -a EMAIL
File without changes
@@ -1,6 +1,6 @@
1
1
  Feature: Match
2
2
  Scenario: Finds matches
3
- When I run `recog_match matching_banners_fingerprints.xml banners.xml`
3
+ When I run `recog_match matching_banners_fingerprints.xml sample_banner.txt`
4
4
  Then it should pass with:
5
5
  """
6
6
  MATCH: {"matched"=>"Pure-FTPd Config data can be zero or more of: [privsep] [TLS]", "pureftpd.config"=>"[privsep] [TLS] ", "service.family"=>"Pure-FTPd", "service.product"=>"Pure-FTPd", "data"=>"---------- Welcome to Pure-FTPd [privsep] [TLS] ----------"}
@@ -8,7 +8,7 @@ Feature: Match
8
8
  """
9
9
 
10
10
  Scenario: Fails at finding matches
11
- When I run `recog_match failing_banners_fingerprints.xml banners.xml`
11
+ When I run `recog_match failing_banners_fingerprints.xml sample_banner.txt`
12
12
  Then it should pass with:
13
13
  """
14
14
  FAIL: ---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
@@ -1,6 +1,6 @@
1
1
  require 'aruba/cucumber'
2
2
 
3
3
  Before do
4
- @dirs = ["features/xml"]
4
+ @dirs = ["features/data"]
5
5
  @aruba_timeout_seconds = 30
6
6
  end
@@ -1,3 +1,3 @@
1
1
  module Recog
2
- VERSION = '2.0.13'
2
+ VERSION = '2.0.14'
3
3
  end
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0"?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+ <xsl:output encoding="UTF-8" indent="yes" method="xml"/>
4
+ <xsl:template match="@*|node()">
5
+ <xsl:copy>
6
+ <xsl:apply-templates select="@*|node()"/>
7
+ </xsl:copy>
8
+ </xsl:template>
9
+ <xsl:template match="fingerprints/fingerprint">
10
+ <xsl:copy>
11
+ <xsl:copy-of select="@*"/>
12
+ <xsl:apply-templates select="description"/>
13
+ <xsl:apply-templates select="example"/>
14
+ <xsl:apply-templates select="param"/>
15
+ </xsl:copy>
16
+ </xsl:template>
17
+ </xsl:stylesheet>
@@ -1,11 +1,19 @@
1
1
  require 'recog/db'
2
2
  require 'regexp_parser'
3
+ require 'nokogiri'
3
4
 
4
5
  describe Recog::DB do
6
+ let(:schema) { Nokogiri::XML::Schema(open(File.expand_path(File.join(%w(xml fingerprints.xsd))))) }
5
7
  Dir[File.expand_path File.join('xml', '*.xml')].each do |xml_file_name|
6
8
 
7
9
  describe "##{File.basename(xml_file_name)}" do
8
10
 
11
+ it "is valid XML" do
12
+ doc = Nokogiri::XML(open(xml_file_name))
13
+ errors = schema.validate(doc)
14
+ expect(errors).to be_empty, "#{xml_file_name} is invalid recog XML -- #{errors.inspect}"
15
+ end
16
+
9
17
  db = Recog::DB.new(xml_file_name)
10
18
 
11
19
  it "has a match key" do
@@ -1,341 +1,277 @@
1
- <?xml version="1.0"?>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
2
  <!--
3
3
  When an HTTP server is fingerprinted as Apache, a 2nd analysis pass is done
4
4
  on the server headers HTTPProtocolHelper.SERVER_HEADERS: they are matched
5
5
  against the following patterns to extract OS information.
6
6
  -->
7
-
8
7
  <fingerprints matches="apache_os">
9
- <fingerprint pattern=".*\(iSeries\).*">
10
- <description>IBM i5/OS iSeries (OS/400)</description>
11
- <param pos="0" name="os.vendor" value="IBM"/>
12
- <param pos="0" name="os.device" value="General"/>
13
- <param pos="0" name="os.family" value="OS/400"/>
14
- <param pos="0" name="os.product" value="OS/400"/>
15
- </fingerprint>
16
-
17
- <fingerprint pattern=".*\(Mandrake Linux/\d+\.\d+\.92mdk\).*">
18
- <!-- (Mandrake Linux/6.12.92mdk) -->
19
- <description>Mandriva (formerly Mandrake) Linux 9.2</description>
20
- <param pos="0" name="os.certainty" value="0.9"/>
21
- <param pos="0" name="os.vendor" value="Mandriva"/>
22
- <param pos="0" name="os.device" value="General"/>
23
- <param pos="0" name="os.family" value="Linux"/>
24
- <param pos="0" name="os.product" value="Linux"/>
25
- <param pos="0" name="os.version" value="9.2"/>
26
- </fingerprint>
27
-
28
- <fingerprint pattern=".*\(Mandrake Linux/\d+\.\d+\.100mdk\).*">
29
- <!-- (Mandrake Linux/6.8.100mdk) -->
30
- <description>Mandriva (formerly Mandrake) Linux 10.0</description>
31
- <param pos="0" name="os.certainty" value="0.9"/>
32
- <param pos="0" name="os.vendor" value="Mandriva"/>
33
- <param pos="0" name="os.device" value="General"/>
34
- <param pos="0" name="os.family" value="Linux"/>
35
- <param pos="0" name="os.product" value="Linux"/>
36
- <param pos="0" name="os.version" value="10.0"/>
37
- </fingerprint>
38
-
39
- <fingerprint pattern=".*\((?:Mandrake|Mandriva) Linux/.*">
40
- <!-- (Mandrake Linux/11mdk)
41
- (Mandriva Linux/PREFORK-13.3.20060mdk)
42
- (Mandriva Linux/PREFORK-13mdk)
43
- (Mandriva Linux/PREFORK-1.1mdv2007.0)
44
- -->
45
- <description>Mandriva (formerly Mandrake) Linux unknown version</description>
46
- <param pos="0" name="os.vendor" value="Mandriva"/>
47
- <param pos="0" name="os.device" value="General"/>
48
- <param pos="0" name="os.family" value="Linux"/>
49
- <param pos="0" name="os.product" value="Linux"/>
50
- </fingerprint>
51
-
52
- <fingerprint pattern=".*\(Mandrakelinux/.*">
53
- <!-- (Mandrakelinux/PREFORK-9mdk) -->
54
- <description>Mandriva (formerly Mandrake) Linux unknown version</description>
55
- <param pos="0" name="os.vendor" value="Mandriva"/>
56
- <param pos="0" name="os.device" value="General"/>
57
- <param pos="0" name="os.family" value="Linux"/>
58
- <param pos="0" name="os.product" value="Linux"/>
59
- </fingerprint>
60
-
61
- <fingerprint pattern=".*\(PalmOS\).*">
62
- <description>PalmOS</description>
63
- <param pos="0" name="os.vendor" value="Palm"/>
64
- <param pos="0" name="os.device" value="General"/>
65
- <param pos="0" name="os.family" value="PalmOS"/>
66
- <param pos="0" name="os.product" value="PalmOS"/>
67
- </fingerprint>
68
-
69
- <fingerprint pattern=".*\(Win32\).*">
70
- <description>Microsoft Windows</description>
71
- <param pos="0" name="os.certainty" value="0.75"/>
72
- <param pos="0" name="os.vendor" value="Microsoft"/>
73
- <param pos="0" name="os.device" value="General"/>
74
- <param pos="0" name="os.family" value="Windows"/>
75
- <param pos="0" name="os.product" value="Windows"/>
76
- </fingerprint>
77
-
78
- <fingerprint pattern=".*\(Darwin\).*">
79
- <description>Apple Mac OS X</description>
80
- <param pos="0" name="os.vendor" value="Apple"/>
81
- <param pos="0" name="os.device" value="General"/>
82
- <param pos="0" name="os.family" value="Mac OS X"/>
83
- <param pos="0" name="os.product" value="Mac OS X"/>
84
- </fingerprint>
85
-
86
- <fingerprint pattern=".*\(Ubuntu\).*">
87
- <description>Ubuntu</description>
88
- <param pos="0" name="os.vendor" value="Ubuntu"/>
89
- <param pos="0" name="os.device" value="General"/>
90
- <param pos="0" name="os.family" value="Linux"/>
91
- <param pos="0" name="os.product" value="Linux"/>
92
- </fingerprint>
93
-
94
- <fingerprint pattern=".*(?:Sun )?Cobalt \(Unix\)?.*">
95
- <!-- Sun Cobalt (Unix)
96
- Cobalt (Unix)
97
- Cobalt (Unix) (Red Hat/Linux)
98
- -->
99
- <description>Sun Cobalt RaQ (Red Hat based Linux)</description>
100
- <param pos="0" name="os.vendor" value="Sun"/>
101
- <param pos="0" name="os.device" value="General"/>
102
- <param pos="0" name="os.family" value="Linux"/>
103
- <param pos="0" name="os.product" value="Cobalt RaQ"/>
104
- </fingerprint>
105
-
106
- <fingerprint pattern=".*\(BlueQuartz\).*">
107
- <description>Blue Quartz is created by a Cobalt RaQ UG</description>
108
- <param pos="0" name="os.vendor" value="Sun"/>
109
- <param pos="0" name="os.device" value="General"/>
110
- <param pos="0" name="os.family" value="Linux"/>
111
- <param pos="0" name="os.product" value="Cobalt RaQ"/>
112
- </fingerprint>
113
-
114
- <fingerprint pattern="^Apache\/2\.2\.11.*\(Fedora\).*">
115
- <description>Red Hat Fedora 11</description>
116
- <param pos="0" name="os.vendor" value="Red Hat"/>
117
- <param pos="0" name="os.device" value="General"/>
118
- <param pos="0" name="os.family" value="Linux"/>
119
- <param pos="0" name="os.product" value="Fedora Core Linux"/>
120
- <param pos="0" name="os.version" value="11"/>
121
- </fingerprint>
122
-
123
- <fingerprint pattern="^Apache\/2\.2\.15.*\(Fedora\).*">
124
- <description>Red Hat Fedora 13</description>
125
- <param pos="0" name="os.vendor" value="Red Hat"/>
126
- <param pos="0" name="os.device" value="General"/>
127
- <param pos="0" name="os.family" value="Linux"/>
128
- <param pos="0" name="os.product" value="Fedora Core Linux"/>
129
- <param pos="0" name="os.version" value="13"/>
130
- </fingerprint>
131
-
132
- <fingerprint pattern="^Apache\/2\.2\.16.*\(Fedora\).*">
133
- <description>Red Hat Fedora 14</description>
134
- <param pos="0" name="os.vendor" value="Red Hat"/>
135
- <param pos="0" name="os.device" value="General"/>
136
- <param pos="0" name="os.family" value="Linux"/>
137
- <param pos="0" name="os.product" value="Fedora Core Linux"/>
138
- <param pos="0" name="os.version" value="14"/>
139
- </fingerprint>
140
-
141
- <fingerprint pattern="^Apache\/2\.2\.23.*\(Fedora\).*">
142
- <description>Red Hat Fedora 17</description>
143
- <param pos="0" name="os.vendor" value="Red Hat"/>
144
- <param pos="0" name="os.device" value="General"/>
145
- <param pos="0" name="os.family" value="Linux"/>
146
- <param pos="0" name="os.product" value="Fedora Core Linux"/>
147
- <param pos="0" name="os.version" value="17"/>
148
- </fingerprint>
149
-
150
- <fingerprint pattern="^Apache\/2\.4\.3.*\(Fedora\).*">
151
- <description>Red Hat Fedora 18</description>
152
- <param pos="0" name="os.vendor" value="Red Hat"/>
153
- <param pos="0" name="os.device" value="General"/>
154
- <param pos="0" name="os.family" value="Linux"/>
155
- <param pos="0" name="os.product" value="Fedora Core Linux"/>
156
- <param pos="0" name="os.version" value="18"/>
157
- </fingerprint>
158
-
159
- <fingerprint pattern=".*\(Fedora\).*">
160
- <description>Red Hat Fedora</description>
161
- <param pos="0" name="os.vendor" value="Red Hat"/>
162
- <param pos="0" name="os.device" value="General"/>
163
- <param pos="0" name="os.family" value="Linux"/>
164
- <param pos="0" name="os.product" value="Fedora Core Linux"/>
165
- </fingerprint>
166
-
167
- <fingerprint pattern=".*\(RHEL\).*">
168
- <description>Red Hat Fedora</description>
169
- <param pos="0" name="os.vendor" value="Red Hat"/>
170
- <param pos="0" name="os.device" value="General"/>
171
- <param pos="0" name="os.family" value="Linux"/>
172
- <param pos="0" name="os.product" value="Enterprise Linux"/>
173
- </fingerprint>
174
-
175
- <fingerprint pattern=".*\(Red[ -]Hat(?:[/ ]Linux)?\).*">
176
- <!-- (Red Hat/Linux)
177
- (Red-Hat/Linux)
178
- (Red Hat Linux)
179
- (Red Hat)
180
- -->
181
- <description>Red Hat Linux</description>
182
- <param pos="0" name="os.vendor" value="Red Hat"/>
183
- <param pos="0" name="os.device" value="General"/>
184
- <param pos="0" name="os.family" value="Linux"/>
185
- <param pos="0" name="os.product" value="Linux"/>
186
- </fingerprint>
187
-
188
- <fingerprint pattern=".*Debian(?:[/ ]GNU)?(?:/Linux)?.*">
189
- <!-- (Debian)
190
- (Debian GNU/Linux)
191
- (Unix) Debian GNU/Linux
192
- (Unix) Debian/GNU
193
- -->
194
- <description>Debian Linux</description>
195
- <param pos="0" name="os.vendor" value="Debian"/>
196
- <param pos="0" name="os.device" value="General"/>
197
- <param pos="0" name="os.family" value="Linux"/>
198
- <param pos="0" name="os.product" value="Linux"/>
199
- </fingerprint>
200
-
201
- <fingerprint pattern=".*\((?:Linux/)?S[uU]SE(?:/Linux)?\).*">
202
- <!-- (SuSE)
203
- (SuSE/Linux)
204
- (Linux/SuSE)
205
- (Linux/SUSE)
206
- -->
207
- <description>Novell SuSE Linux</description>
208
- <param pos="0" name="os.vendor" value="SuSE"/>
209
- <param pos="0" name="os.device" value="General"/>
210
- <param pos="0" name="os.family" value="Linux"/>
211
- <param pos="0" name="os.product" value="Linux"/>
212
- </fingerprint>
213
-
214
- <fingerprint pattern=".*\(NETWARE\).*">
215
- <description>Novell NetWare</description>
216
- <param pos="0" name="os.vendor" value="Novell"/>
217
- <param pos="0" name="os.device" value="General"/>
218
- <param pos="0" name="os.family" value="NetWare"/>
219
- <param pos="0" name="os.product" value="NetWare"/>
220
- </fingerprint>
221
-
222
- <fingerprint pattern=".*HP-UX_Apache-based_Web_Server.*">
223
- <description>HP HP-UX</description>
224
- <param pos="0" name="os.vendor" value="HP"/>
225
- <param pos="0" name="os.device" value="General"/>
226
- <param pos="0" name="os.family" value="HP-UX"/>
227
- <param pos="0" name="os.product" value="HP-UX"/>
228
- </fingerprint>
229
-
230
- <fingerprint pattern=".*\(CentOS\).*">
231
- <description>CentOS Linux</description>
232
- <param pos="0" name="os.vendor" value="CentOS"/>
233
- <param pos="0" name="os.device" value="General"/>
234
- <param pos="0" name="os.family" value="Linux"/>
235
- <param pos="0" name="os.product" value="Linux"/>
236
- </fingerprint>
237
-
238
- <fingerprint pattern=".*\(Turbolinux\).*">
239
- <description>Turbolinux</description>
240
- <param pos="0" name="os.vendor" value="Turbolinux"/>
241
- <param pos="0" name="os.device" value="General"/>
242
- <param pos="0" name="os.family" value="Linux"/>
243
- <param pos="0" name="os.product" value="Linux"/>
244
- </fingerprint>
245
-
246
- <fingerprint pattern=".*\(FreeBSD\).*">
247
- <description>FreeBSD</description>
248
- <param pos="0" name="os.vendor" value="FreeBSD"/>
249
- <param pos="0" name="os.device" value="General"/>
250
- <param pos="0" name="os.family" value="FreeBSD"/>
251
- <param pos="0" name="os.product" value="FreeBSD"/>
252
- </fingerprint>
253
-
254
- <fingerprint pattern=".*\(Asianux\).*">
255
- <description>Asianux Linux</description>
256
- <param pos="0" name="os.vendor" value="Asianux"/>
257
- <param pos="0" name="os.device" value="General"/>
258
- <param pos="0" name="os.family" value="Linux"/>
259
- <param pos="0" name="os.product" value="Linux"/>
260
- </fingerprint>
261
-
262
- <fingerprint pattern=".*\(Gentoo(?:/Linux)?\).*">
263
- <description>Gentoo Linux</description>
264
- <param pos="0" name="os.vendor" value="Gentoo"/>
265
- <param pos="0" name="os.device" value="General"/>
266
- <param pos="0" name="os.family" value="Linux"/>
267
- <param pos="0" name="os.product" value="Linux"/>
268
- </fingerprint>
269
-
270
- <fingerprint pattern=".*\(Conectiva(?:/Linux)?\).*">
271
- <description>CentOS Linux</description>
272
- <param pos="0" name="os.vendor" value="Conectiva"/>
273
- <param pos="0" name="os.device" value="General"/>
274
- <param pos="0" name="os.family" value="Linux"/>
275
- <param pos="0" name="os.product" value="Linux"/>
276
- </fingerprint>
277
-
278
- <fingerprint pattern=".*\(Trustix Secure Linux(?:/Linux)?\).*">
279
- <description>CentOS Linux</description>
280
- <param pos="0" name="os.vendor" value="Trustix"/>
281
- <param pos="0" name="os.device" value="General"/>
282
- <param pos="0" name="os.family" value="Linux"/>
283
- <param pos="0" name="os.product" value="Secure Linux"/>
284
- </fingerprint>
285
-
286
- <fingerprint pattern=".*\(White Box\).*">
287
- <description>White Box Enterprise Linux</description>
288
- <param pos="0" name="os.vendor" value="White Box"/>
289
- <param pos="0" name="os.device" value="General"/>
290
- <param pos="0" name="os.family" value="Linux"/>
291
- <param pos="0" name="os.product" value="Enterprise Linux"/>
292
- </fingerprint>
293
-
294
- <fingerprint pattern=".*\(UnitedLinux\).*">
295
- <description>UnitedLinux</description>
296
- <param pos="0" name="os.vendor" value="UnitedLinux"/>
297
- <param pos="0" name="os.device" value="General"/>
298
- <param pos="0" name="os.family" value="Linux"/>
299
- <param pos="0" name="os.product" value="Linux"/>
300
- </fingerprint>
301
-
302
- <fingerprint pattern=".*\(PLD/Linux\).*">
303
- <description>PLD Linux</description>
304
- <param pos="0" name="os.vendor" value="PLD"/>
305
- <param pos="0" name="os.device" value="General"/>
306
- <param pos="0" name="os.family" value="Linux"/>
307
- <param pos="0" name="os.product" value="Linux"/>
308
- </fingerprint>
309
-
310
- <fingerprint pattern=".*\(Vine/Linux\).*">
311
- <description>Vine Linux</description>
312
- <param pos="0" name="os.vendor" value="Vine"/>
313
- <param pos="0" name="os.device" value="General"/>
314
- <param pos="0" name="os.family" value="Linux"/>
315
- <param pos="0" name="os.product" value="Linux"/>
316
- </fingerprint>
317
-
318
- <fingerprint pattern=".*\(rPath\).*">
319
- <description>rPath Linux</description>
320
- <param pos="0" name="os.vendor" value="rPath"/>
321
- <param pos="0" name="os.device" value="General"/>
322
- <param pos="0" name="os.family" value="Linux"/>
323
- <param pos="0" name="os.product" value="Linux"/>
324
- </fingerprint>
325
-
326
- <fingerprint pattern=".*\(StartCom Linux\).*">
327
- <description>StartCom Linux</description>
328
- <param pos="0" name="os.vendor" value="StartCom"/>
329
- <param pos="0" name="os.device" value="General"/>
330
- <param pos="0" name="os.family" value="Linux"/>
331
- <param pos="0" name="os.product" value="Linux"/>
332
- </fingerprint>
333
-
334
- <fingerprint pattern=".*Linux.*">
335
- <description>Generic Linux fallback</description>
336
- <param pos="0" name="os.certainty" value="0.75"/>
337
- <param pos="0" name="os.device" value="General"/>
338
- <param pos="0" name="os.family" value="Linux"/>
339
- <param pos="0" name="os.product" value="Linux"/>
340
- </fingerprint>
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.device" value="General"/>
12
+ <param pos="0" name="os.family" value="OS/400"/>
13
+ <param pos="0" name="os.product" value="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.device" value="General"/>
20
+ <param pos="0" name="os.family" value="Linux"/>
21
+ <param pos="0" name="os.product" value="Linux"/>
22
+ <param pos="0" name="os.version" value="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.device" value="General"/>
29
+ <param pos="0" name="os.family" value="Linux"/>
30
+ <param pos="0" name="os.product" value="Linux"/>
31
+ <param pos="0" name="os.version" value="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.device" value="General"/>
37
+ <param pos="0" name="os.family" value="Linux"/>
38
+ <param pos="0" name="os.product" value="Linux"/>
39
+ </fingerprint>
40
+ <fingerprint pattern=".*\(Mandrakelinux/.*">
41
+ <description>Mandriva (formerly Mandrake) Linux unknown version</description>
42
+ <param pos="0" name="os.vendor" value="Mandriva"/>
43
+ <param pos="0" name="os.device" value="General"/>
44
+ <param pos="0" name="os.family" value="Linux"/>
45
+ <param pos="0" name="os.product" value="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.device" value="General"/>
51
+ <param pos="0" name="os.family" value="PalmOS"/>
52
+ <param pos="0" name="os.product" value="PalmOS"/>
53
+ </fingerprint>
54
+ <fingerprint pattern=".*\(Win32\).*">
55
+ <description>Microsoft Windows</description>
56
+ <param pos="0" name="os.certainty" value="0.75"/>
57
+ <param pos="0" name="os.vendor" value="Microsoft"/>
58
+ <param pos="0" name="os.device" value="General"/>
59
+ <param pos="0" name="os.family" value="Windows"/>
60
+ <param pos="0" name="os.product" value="Windows"/>
61
+ </fingerprint>
62
+ <fingerprint pattern=".*\(Darwin\).*">
63
+ <description>Apple Mac OS X</description>
64
+ <param pos="0" name="os.vendor" value="Apple"/>
65
+ <param pos="0" name="os.device" value="General"/>
66
+ <param pos="0" name="os.family" value="Mac OS X"/>
67
+ <param pos="0" name="os.product" value="Mac OS X"/>
68
+ </fingerprint>
69
+ <fingerprint pattern=".*\(Ubuntu\).*">
70
+ <description>Ubuntu</description>
71
+ <param pos="0" name="os.vendor" value="Ubuntu"/>
72
+ <param pos="0" name="os.device" value="General"/>
73
+ <param pos="0" name="os.family" value="Linux"/>
74
+ <param pos="0" name="os.product" value="Linux"/>
75
+ </fingerprint>
76
+ <fingerprint pattern=".*(?:Sun )?Cobalt \(Unix\)?.*">
77
+ <description>Sun Cobalt RaQ (Red Hat based Linux)</description>
78
+ <param pos="0" name="os.vendor" value="Sun"/>
79
+ <param pos="0" name="os.device" value="General"/>
80
+ <param pos="0" name="os.family" value="Linux"/>
81
+ <param pos="0" name="os.product" value="Cobalt RaQ"/>
82
+ </fingerprint>
83
+ <fingerprint pattern=".*\(BlueQuartz\).*">
84
+ <description>Blue Quartz is created by a Cobalt RaQ UG</description>
85
+ <param pos="0" name="os.vendor" value="Sun"/>
86
+ <param pos="0" name="os.device" value="General"/>
87
+ <param pos="0" name="os.family" value="Linux"/>
88
+ <param pos="0" name="os.product" value="Cobalt RaQ"/>
89
+ </fingerprint>
90
+ <fingerprint pattern="^Apache\/2\.2\.11.*\(Fedora\).*">
91
+ <description>Red Hat Fedora 11</description>
92
+ <param pos="0" name="os.vendor" value="Red Hat"/>
93
+ <param pos="0" name="os.device" value="General"/>
94
+ <param pos="0" name="os.family" value="Linux"/>
95
+ <param pos="0" name="os.product" value="Fedora Core Linux"/>
96
+ <param pos="0" name="os.version" value="11"/>
97
+ </fingerprint>
98
+ <fingerprint pattern="^Apache\/2\.2\.15.*\(Fedora\).*">
99
+ <description>Red Hat Fedora 13</description>
100
+ <param pos="0" name="os.vendor" value="Red Hat"/>
101
+ <param pos="0" name="os.device" value="General"/>
102
+ <param pos="0" name="os.family" value="Linux"/>
103
+ <param pos="0" name="os.product" value="Fedora Core Linux"/>
104
+ <param pos="0" name="os.version" value="13"/>
105
+ </fingerprint>
106
+ <fingerprint pattern="^Apache\/2\.2\.16.*\(Fedora\).*">
107
+ <description>Red Hat Fedora 14</description>
108
+ <param pos="0" name="os.vendor" value="Red Hat"/>
109
+ <param pos="0" name="os.device" value="General"/>
110
+ <param pos="0" name="os.family" value="Linux"/>
111
+ <param pos="0" name="os.product" value="Fedora Core Linux"/>
112
+ <param pos="0" name="os.version" value="14"/>
113
+ </fingerprint>
114
+ <fingerprint pattern="^Apache\/2\.2\.23.*\(Fedora\).*">
115
+ <description>Red Hat Fedora 17</description>
116
+ <param pos="0" name="os.vendor" value="Red Hat"/>
117
+ <param pos="0" name="os.device" value="General"/>
118
+ <param pos="0" name="os.family" value="Linux"/>
119
+ <param pos="0" name="os.product" value="Fedora Core Linux"/>
120
+ <param pos="0" name="os.version" value="17"/>
121
+ </fingerprint>
122
+ <fingerprint pattern="^Apache\/2\.4\.3.*\(Fedora\).*">
123
+ <description>Red Hat Fedora 18</description>
124
+ <param pos="0" name="os.vendor" value="Red Hat"/>
125
+ <param pos="0" name="os.device" value="General"/>
126
+ <param pos="0" name="os.family" value="Linux"/>
127
+ <param pos="0" name="os.product" value="Fedora Core Linux"/>
128
+ <param pos="0" name="os.version" value="18"/>
129
+ </fingerprint>
130
+ <fingerprint pattern=".*\(Fedora\).*">
131
+ <description>Red Hat Fedora</description>
132
+ <param pos="0" name="os.vendor" value="Red Hat"/>
133
+ <param pos="0" name="os.device" value="General"/>
134
+ <param pos="0" name="os.family" value="Linux"/>
135
+ <param pos="0" name="os.product" value="Fedora Core Linux"/>
136
+ </fingerprint>
137
+ <fingerprint pattern=".*\(RHEL\).*">
138
+ <description>Red Hat Fedora</description>
139
+ <param pos="0" name="os.vendor" value="Red Hat"/>
140
+ <param pos="0" name="os.device" value="General"/>
141
+ <param pos="0" name="os.family" value="Linux"/>
142
+ <param pos="0" name="os.product" value="Enterprise Linux"/>
143
+ </fingerprint>
144
+ <fingerprint pattern=".*\(Red[ -]Hat(?:[/ ]Linux)?\).*">
145
+ <description>Red Hat Linux</description>
146
+ <param pos="0" name="os.vendor" value="Red Hat"/>
147
+ <param pos="0" name="os.device" value="General"/>
148
+ <param pos="0" name="os.family" value="Linux"/>
149
+ <param pos="0" name="os.product" value="Linux"/>
150
+ </fingerprint>
151
+ <fingerprint pattern=".*Debian(?:[/ ]GNU)?(?:/Linux)?.*">
152
+ <description>Debian Linux</description>
153
+ <param pos="0" name="os.vendor" value="Debian"/>
154
+ <param pos="0" name="os.device" value="General"/>
155
+ <param pos="0" name="os.family" value="Linux"/>
156
+ <param pos="0" name="os.product" value="Linux"/>
157
+ </fingerprint>
158
+ <fingerprint pattern=".*\((?:Linux/)?S[uU]SE(?:/Linux)?\).*">
159
+ <description>Novell SuSE Linux</description>
160
+ <param pos="0" name="os.vendor" value="SuSE"/>
161
+ <param pos="0" name="os.device" value="General"/>
162
+ <param pos="0" name="os.family" value="Linux"/>
163
+ <param pos="0" name="os.product" value="Linux"/>
164
+ </fingerprint>
165
+ <fingerprint pattern=".*\(NETWARE\).*">
166
+ <description>Novell NetWare</description>
167
+ <param pos="0" name="os.vendor" value="Novell"/>
168
+ <param pos="0" name="os.device" value="General"/>
169
+ <param pos="0" name="os.family" value="NetWare"/>
170
+ <param pos="0" name="os.product" value="NetWare"/>
171
+ </fingerprint>
172
+ <fingerprint pattern=".*HP-UX_Apache-based_Web_Server.*">
173
+ <description>HP HP-UX</description>
174
+ <param pos="0" name="os.vendor" value="HP"/>
175
+ <param pos="0" name="os.device" value="General"/>
176
+ <param pos="0" name="os.family" value="HP-UX"/>
177
+ <param pos="0" name="os.product" value="HP-UX"/>
178
+ </fingerprint>
179
+ <fingerprint pattern=".*\(CentOS\).*">
180
+ <description>CentOS Linux</description>
181
+ <param pos="0" name="os.vendor" value="CentOS"/>
182
+ <param pos="0" name="os.device" value="General"/>
183
+ <param pos="0" name="os.family" value="Linux"/>
184
+ <param pos="0" name="os.product" value="Linux"/>
185
+ </fingerprint>
186
+ <fingerprint pattern=".*\(Turbolinux\).*">
187
+ <description>Turbolinux</description>
188
+ <param pos="0" name="os.vendor" value="Turbolinux"/>
189
+ <param pos="0" name="os.device" value="General"/>
190
+ <param pos="0" name="os.family" value="Linux"/>
191
+ <param pos="0" name="os.product" value="Linux"/>
192
+ </fingerprint>
193
+ <fingerprint pattern=".*\(FreeBSD\).*">
194
+ <description>FreeBSD</description>
195
+ <param pos="0" name="os.vendor" value="FreeBSD"/>
196
+ <param pos="0" name="os.device" value="General"/>
197
+ <param pos="0" name="os.family" value="FreeBSD"/>
198
+ <param pos="0" name="os.product" value="FreeBSD"/>
199
+ </fingerprint>
200
+ <fingerprint pattern=".*\(Asianux\).*">
201
+ <description>Asianux Linux</description>
202
+ <param pos="0" name="os.vendor" value="Asianux"/>
203
+ <param pos="0" name="os.device" value="General"/>
204
+ <param pos="0" name="os.family" value="Linux"/>
205
+ <param pos="0" name="os.product" value="Linux"/>
206
+ </fingerprint>
207
+ <fingerprint pattern=".*\(Gentoo(?:/Linux)?\).*">
208
+ <description>Gentoo Linux</description>
209
+ <param pos="0" name="os.vendor" value="Gentoo"/>
210
+ <param pos="0" name="os.device" value="General"/>
211
+ <param pos="0" name="os.family" value="Linux"/>
212
+ <param pos="0" name="os.product" value="Linux"/>
213
+ </fingerprint>
214
+ <fingerprint pattern=".*\(Conectiva(?:/Linux)?\).*">
215
+ <description>CentOS Linux</description>
216
+ <param pos="0" name="os.vendor" value="Conectiva"/>
217
+ <param pos="0" name="os.device" value="General"/>
218
+ <param pos="0" name="os.family" value="Linux"/>
219
+ <param pos="0" name="os.product" value="Linux"/>
220
+ </fingerprint>
221
+ <fingerprint pattern=".*\(Trustix Secure Linux(?:/Linux)?\).*">
222
+ <description>CentOS Linux</description>
223
+ <param pos="0" name="os.vendor" value="Trustix"/>
224
+ <param pos="0" name="os.device" value="General"/>
225
+ <param pos="0" name="os.family" value="Linux"/>
226
+ <param pos="0" name="os.product" value="Secure Linux"/>
227
+ </fingerprint>
228
+ <fingerprint pattern=".*\(White Box\).*">
229
+ <description>White Box Enterprise Linux</description>
230
+ <param pos="0" name="os.vendor" value="White Box"/>
231
+ <param pos="0" name="os.device" value="General"/>
232
+ <param pos="0" name="os.family" value="Linux"/>
233
+ <param pos="0" name="os.product" value="Enterprise Linux"/>
234
+ </fingerprint>
235
+ <fingerprint pattern=".*\(UnitedLinux\).*">
236
+ <description>UnitedLinux</description>
237
+ <param pos="0" name="os.vendor" value="UnitedLinux"/>
238
+ <param pos="0" name="os.device" value="General"/>
239
+ <param pos="0" name="os.family" value="Linux"/>
240
+ <param pos="0" name="os.product" value="Linux"/>
241
+ </fingerprint>
242
+ <fingerprint pattern=".*\(PLD/Linux\).*">
243
+ <description>PLD Linux</description>
244
+ <param pos="0" name="os.vendor" value="PLD"/>
245
+ <param pos="0" name="os.device" value="General"/>
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.device" value="General"/>
253
+ <param pos="0" name="os.family" value="Linux"/>
254
+ <param pos="0" name="os.product" value="Linux"/>
255
+ </fingerprint>
256
+ <fingerprint pattern=".*\(rPath\).*">
257
+ <description>rPath Linux</description>
258
+ <param pos="0" name="os.vendor" value="rPath"/>
259
+ <param pos="0" name="os.device" value="General"/>
260
+ <param pos="0" name="os.family" value="Linux"/>
261
+ <param pos="0" name="os.product" value="Linux"/>
262
+ </fingerprint>
263
+ <fingerprint pattern=".*\(StartCom Linux\).*">
264
+ <description>StartCom Linux</description>
265
+ <param pos="0" name="os.vendor" value="StartCom"/>
266
+ <param pos="0" name="os.device" value="General"/>
267
+ <param pos="0" name="os.family" value="Linux"/>
268
+ <param pos="0" name="os.product" value="Linux"/>
269
+ </fingerprint>
270
+ <fingerprint pattern=".*Linux.*">
271
+ <description>Generic Linux fallback</description>
272
+ <param pos="0" name="os.certainty" value="0.75"/>
273
+ <param pos="0" name="os.device" value="General"/>
274
+ <param pos="0" name="os.family" value="Linux"/>
275
+ <param pos="0" name="os.product" value="Linux"/>
276
+ </fingerprint>
341
277
  </fingerprints>