recog 2.0.13 → 2.0.14

Sign up to get free protection for your applications and to get access to all the features.
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>