recog 2.1.20 → 2.1.21
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.
- checksums.yaml +4 -4
- data/lib/recog/version.rb +1 -1
- data/remap.json +131 -0
- data/spec/lib/fingerprint_self_test_spec.rb +16 -1
- data/update_cpes.py +202 -0
- data/xml/apache_os.xml +29 -5
- data/xml/architecture.xml +3 -3
- data/xml/dns_versionbind.xml +56 -10
- data/xml/ftp_banners.xml +56 -12
- data/xml/h323_callresp.xml +4 -4
- data/xml/hp_pjl_id.xml +8 -8
- data/xml/http_cookies.xml +20 -8
- data/xml/http_servers.xml +122 -8
- data/xml/http_wwwauth.xml +13 -3
- data/xml/imap_banners.xml +19 -1
- data/xml/ldap_searchresult.xml +44 -68
- data/xml/mdns_device-info_txt.xml +18 -7
- data/xml/mdns_workstation_txt.xml +7 -7
- data/xml/mysql_banners.xml +159 -13
- data/xml/mysql_error.xml +124 -21
- data/xml/nntp_banners.xml +10 -4
- data/xml/ntp_banners.xml +144 -84
- data/xml/operating_system.xml +39 -10
- data/xml/pop_banners.xml +32 -12
- data/xml/rsh_resp.xml +8 -3
- data/xml/sip_banners.xml +4 -3
- data/xml/sip_user_agents.xml +4 -3
- data/xml/smb_native_lm.xml +9 -4
- data/xml/smb_native_os.xml +50 -25
- data/xml/smtp_banners.xml +108 -33
- data/xml/smtp_debug.xml +11 -8
- data/xml/smtp_ehlo.xml +14 -11
- data/xml/smtp_expn.xml +17 -11
- data/xml/smtp_help.xml +17 -11
- data/xml/smtp_mailfrom.xml +4 -3
- data/xml/smtp_noop.xml +13 -8
- data/xml/smtp_quit.xml +10 -8
- data/xml/smtp_rcptto.xml +1 -3
- data/xml/smtp_rset.xml +10 -8
- data/xml/smtp_turn.xml +10 -8
- data/xml/smtp_vrfy.xml +18 -11
- data/xml/snmp_sysdescr.xml +157 -451
- data/xml/snmp_sysobjid.xml +57 -4
- data/xml/ssh_banners.xml +104 -5
- data/xml/upnp_banners.xml +16 -1
- data/xml/x11_banners.xml +34 -9
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a132548a0e8437e0013aec6a0ff43b35b3ff3c8
|
4
|
+
data.tar.gz: 589523b4c9e9c365805f60174ac374c0b58d0424
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7896a020384f6261c7fe99f1c896798784e58395c79a07bfc8c920d52117bbf627ba309c097054809025f1300664cec581de851a8bd0c8f4413d5039a6288cd4
|
7
|
+
data.tar.gz: e95bef58ff9749118e016f85da5967230d352ff62a950863571a96d9cd74cda212ba0da89489574dd9cd2af46d1e9495ac1862381d2cdd9e688a166e851f4eac
|
data/lib/recog/version.rb
CHANGED
data/remap.json
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
{"remappings": [
|
2
|
+
{"r7_vendor": "apache", "cpe_vendor": "apache", "products":
|
3
|
+
{
|
4
|
+
"httpd": "http_server"
|
5
|
+
}
|
6
|
+
},
|
7
|
+
{"r7_vendor": "alt-n", "cpe_vendor": "altn"},
|
8
|
+
{"r7_vendor": "bea", "cpe_vendor": "bea", "products":
|
9
|
+
{
|
10
|
+
"weblogic": "weblogic_server"
|
11
|
+
}
|
12
|
+
},
|
13
|
+
{"r7_vendor": "centos", "cpe_vendor": "centos", "products":
|
14
|
+
{
|
15
|
+
"linux": "centos"
|
16
|
+
}
|
17
|
+
},
|
18
|
+
{"r7_vendor": "check_point", "cpe_vendor": "checkpoint"},
|
19
|
+
{"r7_vendor": "cisco", "cpe_vendor": "cisco", "products":
|
20
|
+
{
|
21
|
+
"adaptive_security_appliance": "adaptive_security_appliance_software",
|
22
|
+
"pix": "pix_firewall_software",
|
23
|
+
"telepresence": "telepresence_video_communication_server_software"
|
24
|
+
}
|
25
|
+
},
|
26
|
+
{"r7_vendor": "debian", "cpe_vendor": "debian", "products":
|
27
|
+
{
|
28
|
+
"linux": "debian_linux"
|
29
|
+
}
|
30
|
+
},
|
31
|
+
{"r7_vendor": "f5", "cpe_vendor": "f5", "products":
|
32
|
+
{
|
33
|
+
"big-ip": "big-ip_local_traffic_manager",
|
34
|
+
"big-ip_ltm": "big-ip_local_traffic_manager"
|
35
|
+
}
|
36
|
+
},
|
37
|
+
{"r7_vendor": "hp", "cpe_vendor": "hp", "products":
|
38
|
+
{
|
39
|
+
"ilo": "integrated_lights_out",
|
40
|
+
"lotus_domino": "lotus_domino_server",
|
41
|
+
"tru64_unix": "tru64"
|
42
|
+
}
|
43
|
+
},
|
44
|
+
{"r7_vendor": "ibm", "cpe_vendor": "ibm", "products":
|
45
|
+
{
|
46
|
+
"lotus_domino": "lotus_domino_server"
|
47
|
+
}
|
48
|
+
},
|
49
|
+
{"r7_vendor": "juniper", "cpe_vendor": "juniper", "products":
|
50
|
+
{
|
51
|
+
"junos_os": "junos"
|
52
|
+
}
|
53
|
+
},
|
54
|
+
{"r7_vendor": "linux", "cpe_vendor": "linux", "products":
|
55
|
+
{
|
56
|
+
"linux": "linux_kernel"
|
57
|
+
}
|
58
|
+
},
|
59
|
+
{"r7_vendor": "microsoft", "cpe_vendor": "microsoft", "products":
|
60
|
+
{
|
61
|
+
"active_directory_controller": "active_directory",
|
62
|
+
"exchange_server_5.5": "exchange_server",
|
63
|
+
"exchange_2000_server": "exchange_server",
|
64
|
+
"exchange_2003_server": "exchange_server",
|
65
|
+
"exchange_2007_server": "exchange_server",
|
66
|
+
"lightweight_directory_server": "active_directory_lightweight_directory_service",
|
67
|
+
"windows_server_2003_datacenter_edition": "windows_server_2003",
|
68
|
+
"windows_server_2003_r2": "windows_server_2003",
|
69
|
+
"windows_2008_r2": "windows_server_2008",
|
70
|
+
"windows_server_2008_datacenter_edition": "windows_server_2008",
|
71
|
+
"windows_server_2008_r2": "windows_server_2008",
|
72
|
+
"windows_server_2008_r2_datacenter_edition": "windows_server_2008",
|
73
|
+
"windows_server_2012_r2": "windows_server_2012",
|
74
|
+
"nt": "windows_nt",
|
75
|
+
"windows_nt_desktop": "windows_nt",
|
76
|
+
"windows_nt_server": "windows_nt",
|
77
|
+
"windows_server_2000": "windows_2000",
|
78
|
+
"windows_2000_server": "windows_2000",
|
79
|
+
"windows_2000_datacenter_server": "windows_2000",
|
80
|
+
"pws": "personal_web_server"
|
81
|
+
}
|
82
|
+
},
|
83
|
+
{"r7_vendor": "mort_bay", "cpe_vendor": "mortbay"},
|
84
|
+
{"r7_vendor": "net-snmp", "cpe_vendor": "net-snmp", "products":
|
85
|
+
{
|
86
|
+
"snmp_agent": "net-snmp"
|
87
|
+
}
|
88
|
+
},
|
89
|
+
{"r7_vendor": "palo_alto_networks", "cpe_vendor": "paloaltonetworks", "products":
|
90
|
+
{
|
91
|
+
"pa_firewall": "pan-os"
|
92
|
+
}
|
93
|
+
},
|
94
|
+
{"r7_vendor": "proftpd_project", "cpe_vendor": "proftpd"},
|
95
|
+
{"r7_vendor": "red_hat", "cpe_vendor": "redhat", "products":
|
96
|
+
{
|
97
|
+
"cygwin_x_server_project": "cygwin",
|
98
|
+
"fedora_core_linux": "fedora_core",
|
99
|
+
"jboss_as": "jboss_wildfly_application_server",
|
100
|
+
"jboss_eap": "jboss_enterprise_application_platform",
|
101
|
+
"jbossweb": "jboss_web_framework_kit",
|
102
|
+
"red_hat_directory_server": "directory_server"
|
103
|
+
}
|
104
|
+
},
|
105
|
+
{"r7_vendor": "sun", "cpe_vendor": "sun", "products":
|
106
|
+
{
|
107
|
+
"solaris": "sunos"
|
108
|
+
}
|
109
|
+
},
|
110
|
+
{"r7_vendor": "ubuntu", "cpe_vendor": "canonical", "products":
|
111
|
+
{
|
112
|
+
"linux": "ubuntu_linux"
|
113
|
+
}
|
114
|
+
},
|
115
|
+
{"r7_vendor": "vandyke_software", "cpe_vendor": "vandyke"},
|
116
|
+
{"r7_vendor": "vmware", "cpe_vendor": "vmware", "products":
|
117
|
+
{
|
118
|
+
"photon_linux": "photon_os",
|
119
|
+
"zimbra": "zimbra_desktop",
|
120
|
+
"vmware_esx_server": "esx",
|
121
|
+
"vmware_esxi_server": "esxi"
|
122
|
+
}
|
123
|
+
},
|
124
|
+
{"r7_vendor": "wind_river", "cpe_vendor": "windriver"},
|
125
|
+
{"r7_vendor": "x.org", "cpe_vendor": "x.org", "products":
|
126
|
+
{
|
127
|
+
"x.org_x11": "x11"
|
128
|
+
}
|
129
|
+
}
|
130
|
+
]
|
131
|
+
}
|
@@ -32,8 +32,15 @@ describe Recog::DB do
|
|
32
32
|
fp = db.fingerprints[i]
|
33
33
|
|
34
34
|
context "#{fp.name}" do
|
35
|
+
param_names = []
|
35
36
|
fp.params.each do |param_name, pos_value|
|
36
37
|
pos, value = pos_value
|
38
|
+
it "has valid looking fingerprint parameter names" do
|
39
|
+
unless param_name =~ /^(?:cookie|[^\.]+\..*)$/
|
40
|
+
fail "'#{param_name}' is invalid"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
37
44
|
it "doesn't have param values for capture params" do
|
38
45
|
if pos > 0 && !value.to_s.empty?
|
39
46
|
fail "'#{fp.name}'s #{param_name} is a non-zero pos but specifies a value of '#{value}'"
|
@@ -45,12 +52,20 @@ describe Recog::DB do
|
|
45
52
|
fail "'#{fp.name}'s #{param_name} is not a capture (pos=0) but doesn't specify a value"
|
46
53
|
end
|
47
54
|
end
|
55
|
+
|
56
|
+
it "doesn't have duplicate params" do
|
57
|
+
if param_names.include?(param_name)
|
58
|
+
fail "'#{fp.name}'s has duplicate #{param_name}"
|
59
|
+
else
|
60
|
+
param_names << param_name
|
61
|
+
end
|
62
|
+
end
|
48
63
|
end
|
49
64
|
end
|
50
65
|
|
51
66
|
context "#{fp.regex}" do
|
52
67
|
|
53
|
-
it "has a name" do
|
68
|
+
it "has a valid looking name" do
|
54
69
|
expect(fp.name).not_to be_nil
|
55
70
|
expect(fp.name).not_to be_empty
|
56
71
|
end
|
data/update_cpes.py
ADDED
@@ -0,0 +1,202 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
|
3
|
+
import json
|
4
|
+
import logging
|
5
|
+
import re
|
6
|
+
import sys
|
7
|
+
|
8
|
+
from lxml import etree
|
9
|
+
|
10
|
+
def parse_r7_remapping(file):
|
11
|
+
remap = {} # r7_vendor => { 'cpe_vendor' => <cpe_vendor>, 'products': { r7_product1 => cpe_product1 }}
|
12
|
+
remappings = None
|
13
|
+
with open(file) as remap_file:
|
14
|
+
remappings = json.load(remap_file)["remappings"]
|
15
|
+
|
16
|
+
for remap_json in remappings:
|
17
|
+
r7_vendor = remap_json['r7_vendor']
|
18
|
+
cpe_vendor = remap_json['cpe_vendor']
|
19
|
+
if r7_vendor in remap:
|
20
|
+
raise ValueError("R7 vendor {} duplicated in {}".format(r7_vendor, file))
|
21
|
+
|
22
|
+
product_map = {}
|
23
|
+
if 'products' in remap_json:
|
24
|
+
product_map = remap_json['products']
|
25
|
+
remap[r7_vendor] = {'cpe_vendor': cpe_vendor, 'products': product_map}
|
26
|
+
|
27
|
+
return remap
|
28
|
+
|
29
|
+
|
30
|
+
def parse_cpe_vp_map(file):
|
31
|
+
vp_map = {} # cpe_type -> vendor -> products
|
32
|
+
parser = etree.XMLParser(remove_comments=False)
|
33
|
+
doc = etree.parse(file, parser)
|
34
|
+
namespaces = {'ns': 'http://cpe.mitre.org/dictionary/2.0', 'meta': 'http://scap.nist.gov/schema/cpe-dictionary-metadata/0.2'}
|
35
|
+
for cpe_name in doc.xpath("//ns:cpe-list/ns:cpe-item/@name", namespaces=namespaces):
|
36
|
+
cpe_match = re.match('^cpe:/([aho]):([^:]+):([^:]+)', cpe_name)
|
37
|
+
if cpe_match:
|
38
|
+
cpe_type, vendor, product = cpe_match.group(1, 2, 3)
|
39
|
+
if not cpe_type in vp_map:
|
40
|
+
vp_map[cpe_type] = {}
|
41
|
+
if not vendor in vp_map[cpe_type]:
|
42
|
+
vp_map[cpe_type][vendor] = set()
|
43
|
+
vp_map[cpe_type][vendor].add(product)
|
44
|
+
else:
|
45
|
+
logging.error("Unexpected CPE %s", cpe_name)
|
46
|
+
|
47
|
+
return vp_map
|
48
|
+
|
49
|
+
def main():
|
50
|
+
if len(sys.argv) != 4:
|
51
|
+
logging.critical("Expecting exactly 3 arguments; recog XML file, CPE 2.3 XML dictionary, JSON remapping, got %s", (len(sys.argv) - 1))
|
52
|
+
exit(1)
|
53
|
+
|
54
|
+
cpe_vp_map = parse_cpe_vp_map(sys.argv[2])
|
55
|
+
if not cpe_vp_map:
|
56
|
+
logging.critical("No CPE vendor => product mappings read from CPE 2.3 XML dictionary %s", sys.argv[2])
|
57
|
+
exit(1)
|
58
|
+
|
59
|
+
r7_vp_map = parse_r7_remapping(sys.argv[3])
|
60
|
+
if not r7_vp_map:
|
61
|
+
logging.warning("No Rapid7 vendor/product => CPE mapping read from %s", sys.argv[3])
|
62
|
+
|
63
|
+
update_cpes(sys.argv[1], cpe_vp_map, r7_vp_map)
|
64
|
+
|
65
|
+
def update_cpes(xml_file, cpe_vp_map, r7_vp_map):
|
66
|
+
parser = etree.XMLParser(remove_comments=False)
|
67
|
+
doc = etree.parse(xml_file, parser)
|
68
|
+
|
69
|
+
for fingerprint in doc.xpath('//fingerprint'):
|
70
|
+
|
71
|
+
# collect all the params, grouping by os and service params that could be used to compute a CPE
|
72
|
+
params = {}
|
73
|
+
for param in fingerprint.xpath('./param'):
|
74
|
+
name = param.attrib['name']
|
75
|
+
# remove any existing CPE params
|
76
|
+
if re.match(r'^.*\.cpe\d{0,2}$', name):
|
77
|
+
param.getparent().remove(param)
|
78
|
+
continue
|
79
|
+
|
80
|
+
match = re.search(r'^(?P<fp_type>hw|os|service(?:\.component)?)\.', name)
|
81
|
+
if match:
|
82
|
+
fp_type = match.group('fp_type')
|
83
|
+
if not fp_type in params:
|
84
|
+
params[fp_type] = {}
|
85
|
+
if name in params[fp_type]:
|
86
|
+
raise ValueError('Duplicated fingerprint named {} in {}'.format(name, fingerprint.attrib['pattern']))
|
87
|
+
params[fp_type][name] = param
|
88
|
+
|
89
|
+
|
90
|
+
# for each of the applicable os/service param groups, build a CPE
|
91
|
+
for fp_type in params:
|
92
|
+
if fp_type == 'os':
|
93
|
+
cpe_type = 'o'
|
94
|
+
elif fp_type.startswith('service'):
|
95
|
+
cpe_type = 'a'
|
96
|
+
elif fp_type == 'hw':
|
97
|
+
cpe_type = 'h'
|
98
|
+
else:
|
99
|
+
raise ValueError('Unhandled param type {}'.format(fp_type))
|
100
|
+
|
101
|
+
# extract the vendor/product/version values from each os/service group,
|
102
|
+
# using the static value ('Apache', for example) when pos is 0, and
|
103
|
+
# otherwise use a value that contains interpolation markers such that
|
104
|
+
# products/projects that use recog content can insert the value
|
105
|
+
# extracted from the banner/other data via regex capturing groups
|
106
|
+
fp_data = {
|
107
|
+
'vendor': None,
|
108
|
+
'product': None,
|
109
|
+
'version': '-',
|
110
|
+
}
|
111
|
+
for fp_datum in fp_data:
|
112
|
+
fp_datum_param_name = "{}.{}".format(fp_type, fp_datum)
|
113
|
+
if fp_datum_param_name in params[fp_type]:
|
114
|
+
fp_datum_e = params[fp_type][fp_datum_param_name]
|
115
|
+
if fp_datum_e.attrib['pos'] == '0':
|
116
|
+
fp_data[fp_datum] = fp_datum_e.attrib['value']
|
117
|
+
else:
|
118
|
+
fp_data[fp_datum] = "{{{}}}".format(fp_datum_e.attrib['name'])
|
119
|
+
|
120
|
+
vendor = fp_data['vendor']
|
121
|
+
product = fp_data['product']
|
122
|
+
version = fp_data['version']
|
123
|
+
|
124
|
+
# build a reasonable looking CPE value from the vendor/product/version,
|
125
|
+
# lowercasing, replacing whitespace with _, and more
|
126
|
+
if vendor and product:
|
127
|
+
if not cpe_type in cpe_vp_map:
|
128
|
+
logging.error("Didn't find CPE type '%s' for '%s' '%s'", cpe_type, vendor, product)
|
129
|
+
continue
|
130
|
+
|
131
|
+
vendor = vendor.lower().replace(' ', '_').replace(',', '')
|
132
|
+
product = product.lower().replace(' ', '_').replace(',', '')
|
133
|
+
if 'unknown' in [vendor, product]:
|
134
|
+
continue
|
135
|
+
|
136
|
+
if (vendor.startswith('{') and vendor.endswith('}')) or (product.startswith('{') and product.endswith('}')):
|
137
|
+
continue
|
138
|
+
|
139
|
+
remapped_vendor = False
|
140
|
+
og_vendor = vendor
|
141
|
+
if not vendor in cpe_vp_map[cpe_type]:
|
142
|
+
if vendor in r7_vp_map:
|
143
|
+
vendor = r7_vp_map[vendor]['cpe_vendor']
|
144
|
+
remapped_vendor = True
|
145
|
+
if not vendor in cpe_vp_map[cpe_type]:
|
146
|
+
logging.error("Remapped vendor %s (remapped from %s) invalid for CPE %s (product %s)", vendor, og_vendor, cpe_type, product)
|
147
|
+
continue
|
148
|
+
else:
|
149
|
+
logging.error("Vendor %s invalid for CPE %s and no remapping (product %s)", vendor, cpe_type, product)
|
150
|
+
continue
|
151
|
+
|
152
|
+
|
153
|
+
# if the product as specified is not found in the CPE dictionary for this vendor
|
154
|
+
if not product in cpe_vp_map[cpe_type][vendor]:
|
155
|
+
# if this vendor has a remapping from R7
|
156
|
+
if og_vendor in r7_vp_map:
|
157
|
+
# if this product has a remapping for this vendor from R7
|
158
|
+
if product in r7_vp_map[og_vendor]['products']:
|
159
|
+
og_product = product
|
160
|
+
product = r7_vp_map[og_vendor]['products'][product]
|
161
|
+
# ensure that the remapped product is valid for the given vendor in CPE
|
162
|
+
if not product in cpe_vp_map[cpe_type][vendor]:
|
163
|
+
logging.error("Remapped product %s (remapped from %s) from vendor %s invalid for CPE %s", product, og_product, vendor, cpe_type)
|
164
|
+
continue
|
165
|
+
else:
|
166
|
+
if remapped_vendor:
|
167
|
+
logging.error("Product %s from vendor %s (remapped from %s) invalid for CPE %s and no mapping", product, vendor, og_vendor, cpe_type)
|
168
|
+
else:
|
169
|
+
logging.error("Product %s from vendor %s invalid for CPE %s and no mapping", product, vendor, cpe_type)
|
170
|
+
continue
|
171
|
+
else:
|
172
|
+
if remapped_vendor:
|
173
|
+
logging.error("Vendor %s (remapped from %s) is valid for CPE %s but product %s not valid and no mapping", vendor, og_vendor, cpe_type, product)
|
174
|
+
else:
|
175
|
+
logging.error("Vendor %s is valid for CPE %s but product %s not valid and no mapping", vendor, cpe_type, product)
|
176
|
+
continue
|
177
|
+
|
178
|
+
# building the CPE string
|
179
|
+
cpe_value = 'cpe:/{}:{}:{}'.format(cpe_type, vendor, product)
|
180
|
+
|
181
|
+
if version:
|
182
|
+
cpe_value += ":{}".format(version)
|
183
|
+
|
184
|
+
cpe_param = etree.Element('param')
|
185
|
+
cpe_param.attrib['pos'] = '0'
|
186
|
+
cpe_param.attrib['name'] = '{}.cpe23'.format(fp_type)
|
187
|
+
cpe_param.attrib['value'] = cpe_value
|
188
|
+
|
189
|
+
for param_name in params[fp_type]:
|
190
|
+
param = params[fp_type][param_name]
|
191
|
+
parent = param.getparent()
|
192
|
+
index = parent.index(param) + 1
|
193
|
+
parent.insert(index, cpe_param)
|
194
|
+
|
195
|
+
root = doc.getroot()
|
196
|
+
|
197
|
+
with open(xml_file, 'wb') as xml_out:
|
198
|
+
xml_out.write(etree.tostring(root, pretty_print=True, xml_declaration=True, encoding=doc.docinfo.encoding))
|
199
|
+
|
200
|
+
if __name__ == '__main__':
|
201
|
+
try: exit(main())
|
202
|
+
except KeyboardInterrupt: pass
|
data/xml/apache_os.xml
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<!--
|
3
|
-
When an HTTP server is fingerprinted as Apache, a 2nd analysis pass is done
|
4
|
-
on the server headers HTTPProtocolHelper.SERVER_HEADERS: they are matched
|
5
|
-
against the following patterns to extract OS information.
|
6
|
-
-->
|
7
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
8
|
<fingerprint pattern=".*\(iSeries\).*">
|
9
9
|
<description>IBM i5/OS iSeries (OS/400)</description>
|
10
10
|
<param pos="0" name="os.vendor" value="IBM"/>
|
@@ -20,6 +20,7 @@ against the following patterns to extract OS information.
|
|
20
20
|
<param pos="0" name="os.family" value="Linux"/>
|
21
21
|
<param pos="0" name="os.product" value="Linux"/>
|
22
22
|
<param pos="0" name="os.version" value="9.2"/>
|
23
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:mandriva:linux:9.2"/>
|
23
24
|
</fingerprint>
|
24
25
|
<fingerprint pattern=".*\(Mandrake Linux/\d+\.\d+\.100mdk\).*">
|
25
26
|
<description>Mandriva (formerly Mandrake) Linux 10.0</description>
|
@@ -29,6 +30,7 @@ against the following patterns to extract OS information.
|
|
29
30
|
<param pos="0" name="os.family" value="Linux"/>
|
30
31
|
<param pos="0" name="os.product" value="Linux"/>
|
31
32
|
<param pos="0" name="os.version" value="10.0"/>
|
33
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:mandriva:linux:10.0"/>
|
32
34
|
</fingerprint>
|
33
35
|
<fingerprint pattern=".*\((?:Mandrake|Mandriva) Linux/.*">
|
34
36
|
<description>Mandriva (formerly Mandrake) Linux unknown version</description>
|
@@ -36,6 +38,7 @@ against the following patterns to extract OS information.
|
|
36
38
|
<param pos="0" name="os.device" value="General"/>
|
37
39
|
<param pos="0" name="os.family" value="Linux"/>
|
38
40
|
<param pos="0" name="os.product" value="Linux"/>
|
41
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:mandriva:linux:-"/>
|
39
42
|
</fingerprint>
|
40
43
|
<fingerprint pattern=".*\(Mandrakelinux/.*">
|
41
44
|
<description>Mandriva (formerly Mandrake) Linux unknown version</description>
|
@@ -43,6 +46,7 @@ against the following patterns to extract OS information.
|
|
43
46
|
<param pos="0" name="os.device" value="General"/>
|
44
47
|
<param pos="0" name="os.family" value="Linux"/>
|
45
48
|
<param pos="0" name="os.product" value="Linux"/>
|
49
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:mandriva:linux:-"/>
|
46
50
|
</fingerprint>
|
47
51
|
<fingerprint pattern=".*\(PalmOS\).*">
|
48
52
|
<description>PalmOS</description>
|
@@ -58,6 +62,7 @@ against the following patterns to extract OS information.
|
|
58
62
|
<param pos="0" name="os.device" value="General"/>
|
59
63
|
<param pos="0" name="os.family" value="Windows"/>
|
60
64
|
<param pos="0" name="os.product" value="Windows"/>
|
65
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:microsoft:windows:-"/>
|
61
66
|
</fingerprint>
|
62
67
|
<fingerprint pattern=".*\(Darwin\).*">
|
63
68
|
<description>Apple Mac OS X</description>
|
@@ -65,6 +70,7 @@ against the following patterns to extract OS information.
|
|
65
70
|
<param pos="0" name="os.device" value="General"/>
|
66
71
|
<param pos="0" name="os.family" value="Mac OS X"/>
|
67
72
|
<param pos="0" name="os.product" value="Mac OS X"/>
|
73
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
|
68
74
|
</fingerprint>
|
69
75
|
<fingerprint pattern=".*\(Ubuntu\).*">
|
70
76
|
<description>Ubuntu</description>
|
@@ -72,6 +78,7 @@ against the following patterns to extract OS information.
|
|
72
78
|
<param pos="0" name="os.device" value="General"/>
|
73
79
|
<param pos="0" name="os.family" value="Linux"/>
|
74
80
|
<param pos="0" name="os.product" value="Linux"/>
|
81
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:canonical:ubuntu_linux:-"/>
|
75
82
|
</fingerprint>
|
76
83
|
<fingerprint pattern=".*(?:Sun )?Cobalt \(Unix\)?.*">
|
77
84
|
<description>Sun Cobalt RaQ (Red Hat based Linux)</description>
|
@@ -94,6 +101,7 @@ against the following patterns to extract OS information.
|
|
94
101
|
<param pos="0" name="os.family" value="Linux"/>
|
95
102
|
<param pos="0" name="os.product" value="Fedora Core Linux"/>
|
96
103
|
<param pos="0" name="os.version" value="11"/>
|
104
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:11"/>
|
97
105
|
</fingerprint>
|
98
106
|
<fingerprint pattern="^Apache\/2\.2\.15.*\(Fedora\).*">
|
99
107
|
<description>Red Hat Fedora 13</description>
|
@@ -102,6 +110,7 @@ against the following patterns to extract OS information.
|
|
102
110
|
<param pos="0" name="os.family" value="Linux"/>
|
103
111
|
<param pos="0" name="os.product" value="Fedora Core Linux"/>
|
104
112
|
<param pos="0" name="os.version" value="13"/>
|
113
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:13"/>
|
105
114
|
</fingerprint>
|
106
115
|
<fingerprint pattern="^Apache\/2\.2\.16.*\(Fedora\).*">
|
107
116
|
<description>Red Hat Fedora 14</description>
|
@@ -110,6 +119,7 @@ against the following patterns to extract OS information.
|
|
110
119
|
<param pos="0" name="os.family" value="Linux"/>
|
111
120
|
<param pos="0" name="os.product" value="Fedora Core Linux"/>
|
112
121
|
<param pos="0" name="os.version" value="14"/>
|
122
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:14"/>
|
113
123
|
</fingerprint>
|
114
124
|
<fingerprint pattern="^Apache\/2\.2\.23.*\(Fedora\).*">
|
115
125
|
<description>Red Hat Fedora 17</description>
|
@@ -118,6 +128,7 @@ against the following patterns to extract OS information.
|
|
118
128
|
<param pos="0" name="os.family" value="Linux"/>
|
119
129
|
<param pos="0" name="os.product" value="Fedora Core Linux"/>
|
120
130
|
<param pos="0" name="os.version" value="17"/>
|
131
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:17"/>
|
121
132
|
</fingerprint>
|
122
133
|
<fingerprint pattern="^Apache\/2\.4\.3.*\(Fedora\).*">
|
123
134
|
<description>Red Hat Fedora 18</description>
|
@@ -126,6 +137,7 @@ against the following patterns to extract OS information.
|
|
126
137
|
<param pos="0" name="os.family" value="Linux"/>
|
127
138
|
<param pos="0" name="os.product" value="Fedora Core Linux"/>
|
128
139
|
<param pos="0" name="os.version" value="18"/>
|
140
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:18"/>
|
129
141
|
</fingerprint>
|
130
142
|
<fingerprint pattern=".*\(Fedora\).*">
|
131
143
|
<description>Red Hat Fedora</description>
|
@@ -133,6 +145,7 @@ against the following patterns to extract OS information.
|
|
133
145
|
<param pos="0" name="os.device" value="General"/>
|
134
146
|
<param pos="0" name="os.family" value="Linux"/>
|
135
147
|
<param pos="0" name="os.product" value="Fedora Core Linux"/>
|
148
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:-"/>
|
136
149
|
</fingerprint>
|
137
150
|
<fingerprint pattern=".*\(RHEL\).*">
|
138
151
|
<description>Red Hat Fedora</description>
|
@@ -140,6 +153,7 @@ against the following patterns to extract OS information.
|
|
140
153
|
<param pos="0" name="os.device" value="General"/>
|
141
154
|
<param pos="0" name="os.family" value="Linux"/>
|
142
155
|
<param pos="0" name="os.product" value="Enterprise Linux"/>
|
156
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:redhat:enterprise_linux:-"/>
|
143
157
|
</fingerprint>
|
144
158
|
<fingerprint pattern=".*\(Red[ -]Hat(?:[/ ]Linux)?\).*">
|
145
159
|
<description>Red Hat Linux</description>
|
@@ -147,6 +161,7 @@ against the following patterns to extract OS information.
|
|
147
161
|
<param pos="0" name="os.device" value="General"/>
|
148
162
|
<param pos="0" name="os.family" value="Linux"/>
|
149
163
|
<param pos="0" name="os.product" value="Linux"/>
|
164
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:redhat:linux:-"/>
|
150
165
|
</fingerprint>
|
151
166
|
<fingerprint pattern=".*Debian(?:[/ ]GNU)?(?:/Linux)?.*">
|
152
167
|
<description>Debian Linux</description>
|
@@ -154,6 +169,7 @@ against the following patterns to extract OS information.
|
|
154
169
|
<param pos="0" name="os.device" value="General"/>
|
155
170
|
<param pos="0" name="os.family" value="Linux"/>
|
156
171
|
<param pos="0" name="os.product" value="Linux"/>
|
172
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:debian:debian_linux:-"/>
|
157
173
|
</fingerprint>
|
158
174
|
<fingerprint pattern=".*\((?:Linux/)?S[uU]SE(?:/Linux)?\).*">
|
159
175
|
<description>Novell SuSE Linux</description>
|
@@ -161,6 +177,7 @@ against the following patterns to extract OS information.
|
|
161
177
|
<param pos="0" name="os.device" value="General"/>
|
162
178
|
<param pos="0" name="os.family" value="Linux"/>
|
163
179
|
<param pos="0" name="os.product" value="Linux"/>
|
180
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:suse:linux:-"/>
|
164
181
|
</fingerprint>
|
165
182
|
<fingerprint pattern=".*\(NETWARE\).*">
|
166
183
|
<description>Novell NetWare</description>
|
@@ -168,6 +185,7 @@ against the following patterns to extract OS information.
|
|
168
185
|
<param pos="0" name="os.device" value="General"/>
|
169
186
|
<param pos="0" name="os.family" value="NetWare"/>
|
170
187
|
<param pos="0" name="os.product" value="NetWare"/>
|
188
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:novell:netware:-"/>
|
171
189
|
</fingerprint>
|
172
190
|
<fingerprint pattern=".*HP-UX_Apache-based_Web_Server.*">
|
173
191
|
<description>HP HP-UX</description>
|
@@ -175,6 +193,7 @@ against the following patterns to extract OS information.
|
|
175
193
|
<param pos="0" name="os.device" value="General"/>
|
176
194
|
<param pos="0" name="os.family" value="HP-UX"/>
|
177
195
|
<param pos="0" name="os.product" value="HP-UX"/>
|
196
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:hp:hp-ux:-"/>
|
178
197
|
</fingerprint>
|
179
198
|
<fingerprint pattern=".*\(CentOS\).*">
|
180
199
|
<description>CentOS Linux</description>
|
@@ -182,6 +201,7 @@ against the following patterns to extract OS information.
|
|
182
201
|
<param pos="0" name="os.device" value="General"/>
|
183
202
|
<param pos="0" name="os.family" value="Linux"/>
|
184
203
|
<param pos="0" name="os.product" value="Linux"/>
|
204
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:centos:centos:-"/>
|
185
205
|
</fingerprint>
|
186
206
|
<fingerprint pattern=".*\(Turbolinux\).*">
|
187
207
|
<description>Turbolinux</description>
|
@@ -196,6 +216,7 @@ against the following patterns to extract OS information.
|
|
196
216
|
<param pos="0" name="os.device" value="General"/>
|
197
217
|
<param pos="0" name="os.family" value="FreeBSD"/>
|
198
218
|
<param pos="0" name="os.product" value="FreeBSD"/>
|
219
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:freebsd:freebsd:-"/>
|
199
220
|
</fingerprint>
|
200
221
|
<fingerprint pattern=".*\(Asianux\).*">
|
201
222
|
<description>Asianux Linux</description>
|
@@ -210,6 +231,7 @@ against the following patterns to extract OS information.
|
|
210
231
|
<param pos="0" name="os.device" value="General"/>
|
211
232
|
<param pos="0" name="os.family" value="Linux"/>
|
212
233
|
<param pos="0" name="os.product" value="Linux"/>
|
234
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:gentoo:linux:-"/>
|
213
235
|
</fingerprint>
|
214
236
|
<fingerprint pattern=".*\(Conectiva(?:/Linux)?\).*">
|
215
237
|
<description>CentOS Linux</description>
|
@@ -217,6 +239,7 @@ against the following patterns to extract OS information.
|
|
217
239
|
<param pos="0" name="os.device" value="General"/>
|
218
240
|
<param pos="0" name="os.family" value="Linux"/>
|
219
241
|
<param pos="0" name="os.product" value="Linux"/>
|
242
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:conectiva:linux:-"/>
|
220
243
|
</fingerprint>
|
221
244
|
<fingerprint pattern=".*\(Trustix Secure Linux(?:/Linux)?\).*">
|
222
245
|
<description>CentOS Linux</description>
|
@@ -224,6 +247,7 @@ against the following patterns to extract OS information.
|
|
224
247
|
<param pos="0" name="os.device" value="General"/>
|
225
248
|
<param pos="0" name="os.family" value="Linux"/>
|
226
249
|
<param pos="0" name="os.product" value="Secure Linux"/>
|
250
|
+
<param pos="0" name="os.cpe23" value="cpe:/o:trustix:secure_linux:-"/>
|
227
251
|
</fingerprint>
|
228
252
|
<fingerprint pattern=".*\(White Box\).*">
|
229
253
|
<description>White Box Enterprise Linux</description>
|