recog 2.3.23 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +25 -16
- data/Rakefile +2 -9
- data/lib/recog/db_manager.rb +1 -1
- data/lib/recog/version.rb +1 -1
- data/{bin → recog/bin}/recog_match +0 -1
- data/{xml → recog/xml}/apache_modules.xml +0 -0
- data/{xml → recog/xml}/apache_os.xml +0 -0
- data/{xml → recog/xml}/architecture.xml +0 -0
- data/{xml → recog/xml}/dhcp_vendor_class.xml +9 -9
- data/{xml → recog/xml}/dns_versionbind.xml +0 -0
- data/{xml → recog/xml}/favicons.xml +63 -1
- data/{xml → recog/xml}/fingerprints.xsd +0 -0
- data/{xml → recog/xml}/ftp_banners.xml +0 -0
- data/{xml → recog/xml}/h323_callresp.xml +0 -0
- data/{xml → recog/xml}/hp_pjl_id.xml +0 -0
- data/{xml → recog/xml}/html_title.xml +47 -0
- data/{xml → recog/xml}/http_cookies.xml +19 -0
- data/{xml → recog/xml}/http_servers.xml +74 -1
- data/{xml → recog/xml}/http_wwwauth.xml +13 -0
- data/{xml → recog/xml}/imap_banners.xml +0 -0
- data/{xml → recog/xml}/ldap_searchresult.xml +0 -0
- data/{xml → recog/xml}/mdns_device-info_txt.xml +0 -0
- data/{xml → recog/xml}/mdns_workstation_txt.xml +0 -0
- data/{xml → recog/xml}/mysql_banners.xml +0 -0
- data/{xml → recog/xml}/mysql_error.xml +0 -0
- data/{xml → recog/xml}/nntp_banners.xml +0 -0
- data/{xml → recog/xml}/ntp_banners.xml +0 -0
- data/{xml → recog/xml}/operating_system.xml +0 -0
- data/{xml → recog/xml}/pop_banners.xml +0 -0
- data/{xml → recog/xml}/rsh_resp.xml +0 -0
- data/{xml → recog/xml}/rtsp_servers.xml +0 -0
- data/{xml → recog/xml}/sip_banners.xml +0 -0
- data/{xml → recog/xml}/sip_user_agents.xml +0 -0
- data/{xml → recog/xml}/smb_native_lm.xml +0 -0
- data/{xml → recog/xml}/smb_native_os.xml +0 -0
- data/{xml → recog/xml}/smtp_banners.xml +0 -0
- data/{xml → recog/xml}/smtp_debug.xml +0 -0
- data/{xml → recog/xml}/smtp_ehlo.xml +0 -0
- data/{xml → recog/xml}/smtp_expn.xml +0 -0
- data/{xml → recog/xml}/smtp_help.xml +0 -0
- data/{xml → recog/xml}/smtp_mailfrom.xml +0 -0
- data/{xml → recog/xml}/smtp_noop.xml +0 -0
- data/{xml → recog/xml}/smtp_quit.xml +0 -0
- data/{xml → recog/xml}/smtp_rcptto.xml +0 -0
- data/{xml → recog/xml}/smtp_rset.xml +0 -0
- data/{xml → recog/xml}/smtp_turn.xml +0 -0
- data/{xml → recog/xml}/smtp_vrfy.xml +0 -0
- data/{xml → recog/xml}/snmp_sysdescr.xml +21 -6
- data/{xml → recog/xml}/snmp_sysobjid.xml +11 -0
- data/{xml → recog/xml}/ssh_banners.xml +0 -0
- data/{xml → recog/xml}/telnet_banners.xml +34 -1
- data/{xml → recog/xml}/tls_jarm.xml +8 -0
- data/{xml → recog/xml}/x11_banners.xml +0 -0
- data/{xml → recog/xml}/x509_issuers.xml +13 -2
- data/{xml → recog/xml}/x509_subjects.xml +0 -0
- data/recog.gemspec +9 -5
- data/spec/spec_helper.rb +4 -0
- metadata +56 -145
- data/.github/ISSUE_TEMPLATE/bug_report.md +0 -37
- data/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
- data/.github/ISSUE_TEMPLATE/fingerprint_request.md +0 -27
- data/.github/PULL_REQUEST_TEMPLATE +0 -24
- data/.github/SECURITY.md +0 -35
- data/.github/dependabot.yml +0 -8
- data/.github/workflows/ci.yml +0 -26
- data/.github/workflows/verify.yml +0 -89
- data/.gitignore +0 -23
- data/.rspec +0 -3
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- data/.snyk +0 -10
- data/.travis.yml +0 -25
- data/.vscode/bin/monitor-recog-fingerprints.sh +0 -54
- data/.vscode/extensions.json +0 -5
- data/.vscode/settings.json +0 -8
- data/.vscode/tasks.json +0 -77
- data/CONTRIBUTING.md +0 -278
- data/bin/recog_cleanup +0 -16
- data/bin/recog_export +0 -81
- data/bin/recog_standardize +0 -163
- data/bin/recog_verify +0 -98
- data/cpe-remap.yaml +0 -374
- data/features/data/failing_banners_fingerprints.xml +0 -20
- data/features/data/matching_banners_fingerprints.xml +0 -23
- data/features/data/multiple_banners_fingerprints.xml +0 -32
- data/features/data/no_tests.xml +0 -3
- data/features/data/sample_banner.txt +0 -2
- data/features/data/schema_failure.xml +0 -4
- data/features/data/successful_tests.xml +0 -18
- data/features/data/tests_with_failures.xml +0 -26
- data/features/data/tests_with_warnings.xml +0 -17
- data/features/match.feature +0 -36
- data/features/support/aruba.rb +0 -3
- data/features/support/env.rb +0 -6
- data/features/support/hooks.rb +0 -9
- data/features/verify.feature +0 -112
- data/identifiers/README.md +0 -70
- data/identifiers/fields.txt +0 -105
- data/identifiers/hw_device.txt +0 -86
- data/identifiers/hw_family.txt +0 -121
- data/identifiers/hw_product.txt +0 -463
- data/identifiers/os_architecture.txt +0 -10
- data/identifiers/os_device.txt +0 -77
- data/identifiers/os_family.txt +0 -235
- data/identifiers/os_product.txt +0 -357
- data/identifiers/service_family.txt +0 -249
- data/identifiers/service_product.txt +0 -778
- data/identifiers/vendor.txt +0 -859
- data/misc/convert_mysql_err +0 -61
- data/misc/order.xsl +0 -17
- data/requirements.txt +0 -2
- data/spec/lib/fingerprint_self_test_spec.rb +0 -175
- data/tools/dev/hooks/pre-commit +0 -21
- data/update_cpes.py +0 -343
data/bin/recog_export
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
$:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
|
4
|
-
require 'optparse'
|
5
|
-
require 'ostruct'
|
6
|
-
require 'recog'
|
7
|
-
|
8
|
-
def squash_lines(str)
|
9
|
-
str.split(/\n/).join(' ').gsub(/\s+/, ' ')
|
10
|
-
end
|
11
|
-
|
12
|
-
def export_text(options)
|
13
|
-
end
|
14
|
-
|
15
|
-
def export_ruby(options)
|
16
|
-
$stdout.puts "# Recog fingerprint database export [ #{File.basename(options.xml_file)} ] on #{Time.now.to_s}"
|
17
|
-
$stdout.puts "fp_str = '' # Set this value to the match string"
|
18
|
-
$stdout.puts "fp_match = {} # Match results are stored here"
|
19
|
-
$stdout.puts ""
|
20
|
-
$stdout.puts "case fp_str"
|
21
|
-
options.db.fingerprints.each do |fp|
|
22
|
-
puts " # #{squash_lines fp.name}"
|
23
|
-
puts " when /#{fp.regex.to_s}/"
|
24
|
-
fp.tests.each do |test|
|
25
|
-
puts " # Example: #{squash_lines test}"
|
26
|
-
end
|
27
|
-
fp.params.each_pair do |k,v|
|
28
|
-
if v[0] == 0
|
29
|
-
puts " fp_match[#{k.inspect}] = #{v[1].inspect}"
|
30
|
-
else
|
31
|
-
puts " fp_match[#{k.inspect}] = $#{v[0].to_s}"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
puts ""
|
35
|
-
end
|
36
|
-
$stdout.puts "end"
|
37
|
-
end
|
38
|
-
|
39
|
-
|
40
|
-
options = OpenStruct.new(etype: :ruby)
|
41
|
-
|
42
|
-
option_parser = OptionParser.new do |opts|
|
43
|
-
opts.banner = "Usage: #{$0} [options] XML_FINGERPRINTS_FILE"
|
44
|
-
opts.separator "Exports an XML fingerprint database to another format."
|
45
|
-
opts.separator ""
|
46
|
-
opts.separator "Options"
|
47
|
-
|
48
|
-
opts.on("-t", "--type type",
|
49
|
-
"Choose a type of export.",
|
50
|
-
" [r]uby (default - export a ruby case statement with regular expressions)",
|
51
|
-
" [t]ext (export a text description of the fingerprints)") do |etype|
|
52
|
-
case etype.downcase
|
53
|
-
when /^r/
|
54
|
-
options.etype = :ruby
|
55
|
-
when /^t/
|
56
|
-
options.etype = :text
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
opts.on("-h", "--help", "Show this message.") do
|
61
|
-
puts opts
|
62
|
-
exit
|
63
|
-
end
|
64
|
-
end
|
65
|
-
option_parser.parse!(ARGV)
|
66
|
-
|
67
|
-
if ARGV.count != 1
|
68
|
-
puts option_parser
|
69
|
-
exit
|
70
|
-
end
|
71
|
-
|
72
|
-
options.xml_file = ARGV.shift
|
73
|
-
options.db = Recog::DB.new(options.xml_file)
|
74
|
-
|
75
|
-
case options.etype
|
76
|
-
when :ruby
|
77
|
-
export_ruby(options)
|
78
|
-
when :text
|
79
|
-
export_text(options)
|
80
|
-
end
|
81
|
-
|
data/bin/recog_standardize
DELETED
@@ -1,163 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
$:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
|
4
|
-
require 'optparse'
|
5
|
-
require 'ostruct'
|
6
|
-
require 'recog'
|
7
|
-
|
8
|
-
def load_identifiers(path)
|
9
|
-
res = {}
|
10
|
-
File.readlines(path).map{|line| line.strip}.each do |ident|
|
11
|
-
res[ident] = true
|
12
|
-
end
|
13
|
-
return res
|
14
|
-
end
|
15
|
-
|
16
|
-
def write_identifiers(vals, path)
|
17
|
-
res = []
|
18
|
-
vals.each_pair do |k,v|
|
19
|
-
res = res.push(k)
|
20
|
-
end
|
21
|
-
res = res.map{|x| x.strip}.select{|x| x.length > 0}.sort.uniq
|
22
|
-
File.write(path, res.join("\n") + "\n")
|
23
|
-
end
|
24
|
-
|
25
|
-
bdir = File.expand_path(File.join(File.dirname(__FILE__), "..", "identifiers"))
|
26
|
-
|
27
|
-
options = OpenStruct.new(write: false)
|
28
|
-
option_parser = OptionParser.new do |opts|
|
29
|
-
opts.banner = "Usage: #{$0} [options] XML_FINGERPRINT_FILE1 ..."
|
30
|
-
opts.separator "Verifies that each fingerprint asserts known identifiers."
|
31
|
-
opts.separator ""
|
32
|
-
opts.separator "Options"
|
33
|
-
|
34
|
-
opts.on("-w", "--write") do
|
35
|
-
options.write = true
|
36
|
-
end
|
37
|
-
|
38
|
-
opts.on("-h", "--help", "Show this message.") do
|
39
|
-
puts opts
|
40
|
-
exit
|
41
|
-
end
|
42
|
-
end
|
43
|
-
option_parser.parse!(ARGV)
|
44
|
-
|
45
|
-
if ARGV.empty?
|
46
|
-
$stderr.puts 'Missing XML fingerprint files'
|
47
|
-
puts option_parser
|
48
|
-
exit(1)
|
49
|
-
end
|
50
|
-
|
51
|
-
# Load the unique identifiers
|
52
|
-
vendors = load_identifiers(File.join(bdir, "vendor.txt"))
|
53
|
-
fields = load_identifiers(File.join(bdir, "fields.txt"))
|
54
|
-
os_arch = load_identifiers(File.join(bdir, "os_architecture.txt"))
|
55
|
-
os_prod = load_identifiers(File.join(bdir, "os_product.txt"))
|
56
|
-
os_family = load_identifiers(File.join(bdir, "os_family.txt"))
|
57
|
-
os_device = load_identifiers(File.join(bdir, "os_device.txt"))
|
58
|
-
hw_prod = load_identifiers(File.join(bdir, "hw_product.txt"))
|
59
|
-
hw_family = load_identifiers(File.join(bdir, "hw_family.txt"))
|
60
|
-
hw_device = load_identifiers(File.join(bdir, "hw_device.txt"))
|
61
|
-
svc_prod = load_identifiers(File.join(bdir, "service_product.txt"))
|
62
|
-
svc_family = load_identifiers(File.join(bdir, "service_family.txt"))
|
63
|
-
|
64
|
-
missing_count = 0
|
65
|
-
|
66
|
-
ARGV.each do |arg|
|
67
|
-
Dir.glob(arg).each do |file|
|
68
|
-
ndb = Recog::DB.new(file)
|
69
|
-
ndb.fingerprints.each do |f|
|
70
|
-
f.params.each do |k,v|
|
71
|
-
paramIndex, val = v
|
72
|
-
if ! fields[k]
|
73
|
-
puts "FIELD MISSING: #{k}"
|
74
|
-
missing_count += 1
|
75
|
-
fields[k] = true
|
76
|
-
end
|
77
|
-
next if paramIndex != 0
|
78
|
-
next if val.index("{") != nil
|
79
|
-
next if val.strip == ""
|
80
|
-
case k
|
81
|
-
when "os.vendor", "service.vendor", "service.component.vendor", "hw.vendor"
|
82
|
-
if ! vendors[val]
|
83
|
-
puts "VENDOR MISSING: #{val}"
|
84
|
-
missing_count += 1
|
85
|
-
vendors[val] = true
|
86
|
-
end
|
87
|
-
when "os.arch"
|
88
|
-
if ! os_arch[val]
|
89
|
-
puts "OS ARCH MISSING: #{val}"
|
90
|
-
missing_count += 1
|
91
|
-
os_arch[val] = true
|
92
|
-
end
|
93
|
-
when "os.product"
|
94
|
-
if ! os_prod[val]
|
95
|
-
puts "OS PRODUCT MISSING: #{val}"
|
96
|
-
missing_count += 1
|
97
|
-
os_prod[val] = true
|
98
|
-
end
|
99
|
-
when "os.family"
|
100
|
-
if ! os_family[val]
|
101
|
-
puts "OS FAMILY MISSING: #{val}"
|
102
|
-
missing_count += 1
|
103
|
-
os_family[val] = true
|
104
|
-
end
|
105
|
-
when "os.device"
|
106
|
-
if ! os_device[val]
|
107
|
-
puts "OS DEVICE MISSING: #{val}"
|
108
|
-
missing_count += 1
|
109
|
-
os_device[val] = true
|
110
|
-
end
|
111
|
-
when "hw.product"
|
112
|
-
if ! hw_prod[val]
|
113
|
-
puts "HW PRODUCT MISSING: #{val}"
|
114
|
-
missing_count += 1
|
115
|
-
hw_prod[val] = true
|
116
|
-
end
|
117
|
-
when "hw.family"
|
118
|
-
if ! hw_family[val]
|
119
|
-
puts "HW FAMILY MISSING: #{val}"
|
120
|
-
missing_count += 1
|
121
|
-
hw_family[val] = true
|
122
|
-
end
|
123
|
-
when "hw.device"
|
124
|
-
if ! hw_device[val]
|
125
|
-
puts "HW DEVICE MISSING: #{val}"
|
126
|
-
missing_count += 1
|
127
|
-
hw_device[val] = true
|
128
|
-
end
|
129
|
-
when "service.product", "service.component.product"
|
130
|
-
if ! svc_prod[val]
|
131
|
-
puts "SERVICE PRODUCT MISSING: #{val}"
|
132
|
-
missing_count += 1
|
133
|
-
svc_prod[val] = true
|
134
|
-
end
|
135
|
-
when "service.family"
|
136
|
-
if ! svc_family[val]
|
137
|
-
puts "SERVICE FAMILY MISSING: #{val}"
|
138
|
-
missing_count += 1
|
139
|
-
svc_family[val] = true
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end
|
143
|
-
end
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
if options.write
|
148
|
-
# Write back the unique identifiers
|
149
|
-
write_identifiers(vendors, File.join(bdir, "vendor.txt"))
|
150
|
-
write_identifiers(fields, File.join(bdir, "fields.txt"))
|
151
|
-
write_identifiers(os_arch, File.join(bdir, "os_architecture.txt"))
|
152
|
-
write_identifiers(os_prod, File.join(bdir, "os_product.txt"))
|
153
|
-
write_identifiers(os_family, File.join(bdir, "os_family.txt"))
|
154
|
-
write_identifiers(os_device, File.join(bdir, "os_device.txt"))
|
155
|
-
write_identifiers(hw_prod, File.join(bdir, "hw_product.txt"))
|
156
|
-
write_identifiers(hw_family, File.join(bdir, "hw_family.txt"))
|
157
|
-
write_identifiers(hw_device, File.join(bdir, "hw_device.txt"))
|
158
|
-
write_identifiers(svc_prod, File.join(bdir, "service_product.txt"))
|
159
|
-
write_identifiers(svc_family, File.join(bdir, "service_family.txt"))
|
160
|
-
end
|
161
|
-
|
162
|
-
exit_code = (missing_count > 0 ? 1 : 0)
|
163
|
-
exit(exit_code)
|
data/bin/recog_verify
DELETED
@@ -1,98 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
$:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
|
4
|
-
require 'nokogiri'
|
5
|
-
require 'optparse'
|
6
|
-
require 'ostruct'
|
7
|
-
require 'recog'
|
8
|
-
require 'recog/formatter'
|
9
|
-
require 'recog/verifier'
|
10
|
-
require 'recog/verify_reporter'
|
11
|
-
|
12
|
-
options = OpenStruct.new(color: false, detail: false, quiet: false, warnings: true, schema: nil)
|
13
|
-
|
14
|
-
option_parser = OptionParser.new do |opts|
|
15
|
-
opts.banner = "Usage: #{$0} [options] XML_FINGERPRINT_FILE1 ..."
|
16
|
-
opts.separator "Verifies that each fingerprint passes its internal tests."
|
17
|
-
opts.separator ""
|
18
|
-
opts.separator "Options"
|
19
|
-
|
20
|
-
opts.on("-f", "--format FORMATTER",
|
21
|
-
"Choose a formatter.",
|
22
|
-
" [s]ummary (default - failure/warning msgs and summary)",
|
23
|
-
" [q]uiet (configured failure/warning msgs only)",
|
24
|
-
" [d]etail (fingerprint name with tests and expanded summary)") do |format|
|
25
|
-
if format.start_with? 'd'
|
26
|
-
options.detail = true
|
27
|
-
end
|
28
|
-
if format.start_with? 'q'
|
29
|
-
options.quiet = true
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
opts.on("-c", "--color", "Enable color in the output.") do
|
34
|
-
options.color = true
|
35
|
-
end
|
36
|
-
|
37
|
-
opts.on("--[no-]warnings", "Track warnings") do |o|
|
38
|
-
options.warnings = o
|
39
|
-
end
|
40
|
-
|
41
|
-
opts.on("--schema-location SCHEMA_FILE", "Location of the Recog XSD file. If not specified, validation will not be run.") do |schema_file|
|
42
|
-
options.schema = Nokogiri::XML::Schema(File.read(schema_file))
|
43
|
-
end
|
44
|
-
|
45
|
-
opts.on("-h", "--help", "Show this message.") do
|
46
|
-
puts opts
|
47
|
-
exit
|
48
|
-
end
|
49
|
-
end
|
50
|
-
option_parser.parse!(ARGV)
|
51
|
-
|
52
|
-
if ARGV.empty?
|
53
|
-
$stderr.puts 'Missing XML fingerprint files'
|
54
|
-
puts option_parser
|
55
|
-
exit(1)
|
56
|
-
end
|
57
|
-
|
58
|
-
warnings = 0
|
59
|
-
failures = 0
|
60
|
-
formatter = Recog::Formatter.new(options, $stdout)
|
61
|
-
ARGV.each do |arg|
|
62
|
-
Dir.glob(arg).each do |file|
|
63
|
-
# Create a new reporter per XML file to hold context on success/warn/fails
|
64
|
-
reporter = Recog::VerifyReporter.new(options, formatter, file)
|
65
|
-
|
66
|
-
begin
|
67
|
-
# Validate the XML database against the recog schema first, if requested
|
68
|
-
if options.schema
|
69
|
-
errors = options.schema.validate(Nokogiri::XML(File.read(file)))
|
70
|
-
if errors.size > 0
|
71
|
-
reporter.report(0) do
|
72
|
-
errors.each do |error|
|
73
|
-
reporter.failure(error.message, error.line)
|
74
|
-
end
|
75
|
-
end
|
76
|
-
# Skip validation of individual fingerprints since the XML itself
|
77
|
-
# is likely malformed.
|
78
|
-
next
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
# Now read the XML file directly and validate the fingerprints
|
83
|
-
# themselves
|
84
|
-
db = Recog::DB.new(file)
|
85
|
-
verifier = Recog::Verifier.new(db, reporter)
|
86
|
-
verifier.verify
|
87
|
-
rescue Recog::FingerprintParseError => e
|
88
|
-
reporter.failure(e.message, e.line_number)
|
89
|
-
rescue => e
|
90
|
-
reporter.failure(e.message)
|
91
|
-
ensure
|
92
|
-
failures += reporter.failure_count
|
93
|
-
warnings += reporter.warning_count
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
exit failures + warnings
|
data/cpe-remap.yaml
DELETED
@@ -1,374 +0,0 @@
|
|
1
|
-
mappings:
|
2
|
-
# The following section contains CPE application or 'a' remappings. These will
|
3
|
-
# ONLY be used for mapping Recog 'service' attributes.
|
4
|
-
a:
|
5
|
-
akamai:
|
6
|
-
products:
|
7
|
-
ghost: akamaighost
|
8
|
-
amazon:
|
9
|
-
products:
|
10
|
-
s3: amazon_simple_storage_service
|
11
|
-
cloudfront_load_balancer: amazon_cloudfront
|
12
|
-
apache:
|
13
|
-
products:
|
14
|
-
httpd: http_server
|
15
|
-
aprelium_technologies:
|
16
|
-
vendor: aprelium
|
17
|
-
alt-n:
|
18
|
-
vendor: altn
|
19
|
-
aruba_networks:
|
20
|
-
vendor: arubanetworks
|
21
|
-
atlassian:
|
22
|
-
products:
|
23
|
-
confluence: confluence_server
|
24
|
-
bea:
|
25
|
-
products:
|
26
|
-
weblogic: weblogic_server
|
27
|
-
blue_coat:
|
28
|
-
vendor: bluecoat
|
29
|
-
carnegie_mellon_university:
|
30
|
-
vendor: cmu
|
31
|
-
products:
|
32
|
-
cyrus_imap: cyrus_imap_server
|
33
|
-
centos_webpanel:
|
34
|
-
vendor: centos-webpanel
|
35
|
-
check_point:
|
36
|
-
vendor: checkpoint
|
37
|
-
cherokee_project:
|
38
|
-
vendor: cherokee-project
|
39
|
-
cisco:
|
40
|
-
products:
|
41
|
-
apic: application_policy_infrastructure_controller
|
42
|
-
cloudflare:
|
43
|
-
products:
|
44
|
-
cloudflare_load_balancer: load_balancing
|
45
|
-
cpanel:
|
46
|
-
products:
|
47
|
-
cpanel_service_daemon: cpanel
|
48
|
-
crushftp:
|
49
|
-
products:
|
50
|
-
crushftp_web_interface: crushftp
|
51
|
-
cz.nic:
|
52
|
-
vendor: knot-dns
|
53
|
-
drupal:
|
54
|
-
products:
|
55
|
-
cms: drupal
|
56
|
-
embedthis:
|
57
|
-
products:
|
58
|
-
goahead_webserver: goahead
|
59
|
-
envoy_proxy:
|
60
|
-
vendor: envoyproxy
|
61
|
-
f5:
|
62
|
-
products:
|
63
|
-
big-ip: big-ip_local_traffic_manager
|
64
|
-
big-ip_ltm: big-ip_local_traffic_manager
|
65
|
-
fedora_project:
|
66
|
-
vendor: fedoraproject
|
67
|
-
google:
|
68
|
-
products:
|
69
|
-
google_web_services: web_server
|
70
|
-
ibm:
|
71
|
-
products:
|
72
|
-
lotus_domino: lotus_domino_server
|
73
|
-
ibm_domino: lotus_domino
|
74
|
-
ignite_realtime:
|
75
|
-
vendor: igniterealtime
|
76
|
-
intel:
|
77
|
-
products:
|
78
|
-
intel(r)_active_management_technology: active_management_technology
|
79
|
-
intel(r)_standard_manageability: standard_manageability
|
80
|
-
jamf:
|
81
|
-
products:
|
82
|
-
jamf_pro: jamf
|
83
|
-
kibana:
|
84
|
-
vendor: elasticsearch
|
85
|
-
kubernetes:
|
86
|
-
products:
|
87
|
-
nginx_ingress_controller: ingress-nginx
|
88
|
-
kodi:
|
89
|
-
products:
|
90
|
-
media_server: kodi
|
91
|
-
kong:
|
92
|
-
vendor: konghq
|
93
|
-
products:
|
94
|
-
gateway: kong_gateway
|
95
|
-
litespeed_technologies:
|
96
|
-
vendor: litespeedtech
|
97
|
-
lotus:
|
98
|
-
vendor: ibm
|
99
|
-
lynx_technology:
|
100
|
-
vendor: lynxtechnology
|
101
|
-
products:
|
102
|
-
twonky_media_server: twonky_server
|
103
|
-
mailenable:
|
104
|
-
products:
|
105
|
-
mail_server: mailenable
|
106
|
-
manageengine:
|
107
|
-
vendor: zohocorp
|
108
|
-
products:
|
109
|
-
adaudit_plus: manageengine_adaudit_plus
|
110
|
-
desktop_central: manageengine_desktop_central
|
111
|
-
opmanager: manageengine_opmanager
|
112
|
-
microsoft:
|
113
|
-
products:
|
114
|
-
active_directory_controller: active_directory
|
115
|
-
exchange_server_5.5: exchange_server
|
116
|
-
exchange_2000_server: exchange_server
|
117
|
-
exchange_2003_server: exchange_server
|
118
|
-
exchange_2007_server: exchange_server
|
119
|
-
lightweight_directory_server: active_directory_lightweight_directory_service
|
120
|
-
pws: personal_web_server
|
121
|
-
mod_ssl:
|
122
|
-
vendor: modssl
|
123
|
-
mod_wsgi:
|
124
|
-
vendor: modwsgi
|
125
|
-
# NIST took the vendor name from the website but apparently missed the `.in`
|
126
|
-
# in moinmo.in was part of the name
|
127
|
-
moinmoin:
|
128
|
-
vendor: moinmo
|
129
|
-
mort_bay:
|
130
|
-
vendor: mortbay
|
131
|
-
munin:
|
132
|
-
vendor: munin-monitoring
|
133
|
-
nginx:
|
134
|
-
vendor: f5
|
135
|
-
nlnet_labs:
|
136
|
-
vendor: nlnetlabs
|
137
|
-
products:
|
138
|
-
dnsd: name_server_daemon
|
139
|
-
net-snmp:
|
140
|
-
products:
|
141
|
-
snmp_agent: net-snmp
|
142
|
-
owncloud:
|
143
|
-
products:
|
144
|
-
owncloud_server: owncloud
|
145
|
-
parallels:
|
146
|
-
products:
|
147
|
-
plesk: parallels_plesk_panel
|
148
|
-
phoenix_contact:
|
149
|
-
vendor: phoenixcontact
|
150
|
-
plesk:
|
151
|
-
vendor: parallels
|
152
|
-
proftpd_project:
|
153
|
-
vendor: proftpd
|
154
|
-
progress:
|
155
|
-
products:
|
156
|
-
openedge_explorer: openedge
|
157
|
-
pulse_secure:
|
158
|
-
vendor: pulsesecure
|
159
|
-
realvnc_ltd.:
|
160
|
-
vendor: realvnc
|
161
|
-
red_hat:
|
162
|
-
vendor: redhat
|
163
|
-
products:
|
164
|
-
cygwin_x_server_project: cygwin
|
165
|
-
jboss_as: jboss_wildfly_application_server
|
166
|
-
jboss_eap: jboss_enterprise_application_platform
|
167
|
-
jbossweb: jboss_web_framework_kit
|
168
|
-
red_hat_directory_server: directory_server
|
169
|
-
rundeck:
|
170
|
-
vendor: pagerduty
|
171
|
-
serv-u:
|
172
|
-
vendor: solarwinds
|
173
|
-
squid_cache:
|
174
|
-
vendor: squid-cache
|
175
|
-
ssh_communications_security:
|
176
|
-
vendor: ssh
|
177
|
-
products:
|
178
|
-
ssh_tectia_server: tectia_server
|
179
|
-
standard_networks:
|
180
|
-
vendor: ipswitch
|
181
|
-
swagger:
|
182
|
-
vendor: smartbear
|
183
|
-
synology:
|
184
|
-
products:
|
185
|
-
dsm: diskstation_manager
|
186
|
-
tightvnc:
|
187
|
-
products:
|
188
|
-
desktop: tightvnc
|
189
|
-
tor_project:
|
190
|
-
vendor: torproject
|
191
|
-
traefik_labs:
|
192
|
-
vendor: traefik
|
193
|
-
products:
|
194
|
-
traefik_proxy: traefik
|
195
|
-
twistedmatrix:
|
196
|
-
products:
|
197
|
-
twisted_web: twistedweb
|
198
|
-
ubiquiti:
|
199
|
-
vendor: ui
|
200
|
-
vandyke_software:
|
201
|
-
vendor: vandyke
|
202
|
-
vmware:
|
203
|
-
products:
|
204
|
-
zimbra: zimbra_desktop
|
205
|
-
vcenter: vcenter_server
|
206
|
-
x.org:
|
207
|
-
products:
|
208
|
-
x.org_x11: x11
|
209
|
-
xiongmai_technology:
|
210
|
-
vendor: xiongmaitech
|
211
|
-
zaphoyd_studios:
|
212
|
-
vendor: zaphoyd
|
213
|
-
products:
|
214
|
-
websocket++: websocketpp
|
215
|
-
|
216
|
-
# The following section contains CPE operating system or 'o' remappings. These will
|
217
|
-
# ONLY be used for mapping Recog 'os' attributes.
|
218
|
-
o:
|
219
|
-
alpine:
|
220
|
-
vendor: alpinelinux
|
221
|
-
products:
|
222
|
-
linux: alpine_linux
|
223
|
-
apple:
|
224
|
-
products:
|
225
|
-
ios: iphone_os
|
226
|
-
mac_os: macos
|
227
|
-
brocade:
|
228
|
-
vendor: broadcom
|
229
|
-
products:
|
230
|
-
fabric_os: fabric_operating_system
|
231
|
-
centos:
|
232
|
-
products:
|
233
|
-
linux: centos
|
234
|
-
check_point:
|
235
|
-
vendor: checkpoint
|
236
|
-
cisco:
|
237
|
-
products:
|
238
|
-
adaptive_security_appliance: adaptive_security_appliance_software
|
239
|
-
mds_9000: mds_9000_san-os
|
240
|
-
nam: network_analysis_module_software
|
241
|
-
pix: pix_firewall_software
|
242
|
-
telepresence: telepresence_video_communication_server_software
|
243
|
-
vpn_3000_concentrator: vpn_3000_concentrator_series_software
|
244
|
-
wireless_lan_controller: wireless_lan_controller_software
|
245
|
-
citrix:
|
246
|
-
products:
|
247
|
-
netscaler: netscaler_firmware
|
248
|
-
netscaler_gateway: netscaler_gateway_firmware
|
249
|
-
cumulus:
|
250
|
-
vendor: cumulusnetworks
|
251
|
-
data_domain:
|
252
|
-
vendor: dell
|
253
|
-
products:
|
254
|
-
dd_os: emc_data_domain_os
|
255
|
-
debian:
|
256
|
-
products:
|
257
|
-
linux: debian_linux
|
258
|
-
eltex:
|
259
|
-
vendor: eltex-co
|
260
|
-
fedora_project:
|
261
|
-
vendor: fedoraproject
|
262
|
-
hp:
|
263
|
-
products:
|
264
|
-
ilo: integrated_lights-out_firmware
|
265
|
-
ilo_firmware: integrated_lights-out_firmware
|
266
|
-
ilo_2: integrated_lights-out_2_firmware
|
267
|
-
ilo_3: integrated_lights-out_3_firmware
|
268
|
-
ilo_4: integrated_lights-out_4_firmware
|
269
|
-
ilo_5: integrated_lights-out_5_firmware
|
270
|
-
tru64_unix: tru64
|
271
|
-
ibm:
|
272
|
-
products:
|
273
|
-
os/400: os_400
|
274
|
-
i5/os: i5os
|
275
|
-
juniper:
|
276
|
-
products:
|
277
|
-
junos_os: junos
|
278
|
-
linux:
|
279
|
-
products:
|
280
|
-
linux: linux_kernel
|
281
|
-
microsoft:
|
282
|
-
products:
|
283
|
-
windows_server_2003_datacenter_edition: windows_server_2003
|
284
|
-
windows_server_2003_r2: windows_server_2003
|
285
|
-
windows_2008_r2: windows_server_2008
|
286
|
-
windows_server_2008_datacenter_edition: windows_server_2008
|
287
|
-
windows_server_2008_r2: windows_server_2008
|
288
|
-
windows_server_2008_r2_datacenter_edition: windows_server_2008
|
289
|
-
windows_server_2012_r2: windows_server_2012
|
290
|
-
nt: windows_nt
|
291
|
-
windows_nt_desktop: windows_nt
|
292
|
-
windows_nt_server: windows_nt
|
293
|
-
windows_server_2000: windows_2000
|
294
|
-
windows_2000_server: windows_2000
|
295
|
-
windows_2000_datacenter_server: windows_2000
|
296
|
-
oracle:
|
297
|
-
products:
|
298
|
-
ilom: integrated_lights_out_manager_firmware
|
299
|
-
palo_alto_networks:
|
300
|
-
vendor: paloaltonetworks
|
301
|
-
phoenix_contact:
|
302
|
-
vendor: phoenixcontact
|
303
|
-
red_hat:
|
304
|
-
vendor: redhat
|
305
|
-
software_house:
|
306
|
-
vendor: swhouse
|
307
|
-
sun:
|
308
|
-
products:
|
309
|
-
solaris: sunos
|
310
|
-
ubiquiti:
|
311
|
-
vendor: ui
|
312
|
-
ubuntu:
|
313
|
-
vendor: canonical
|
314
|
-
products:
|
315
|
-
linux: ubuntu_linux
|
316
|
-
vmware:
|
317
|
-
products:
|
318
|
-
photon_linux: photon_os
|
319
|
-
vmware_esx_server: esx
|
320
|
-
vmware_esxi_server: esxi
|
321
|
-
wind_river:
|
322
|
-
vendor: windriver
|
323
|
-
xiongmai_technology:
|
324
|
-
vendor: xiongmaitech
|
325
|
-
|
326
|
-
# The following section contains CPE hardware or 'h' remappings. These will
|
327
|
-
# ONLY be used for mapping Recog 'hw' attributes.
|
328
|
-
h:
|
329
|
-
apple:
|
330
|
-
products:
|
331
|
-
imac_(retina_4k_21.5-inch_2019): imac
|
332
|
-
imac_(retina_5k_27-inch_2017): imac
|
333
|
-
imac_(retina_5k_27-inch_2019): imac
|
334
|
-
imac_(retina_5k_27-inch_2020): imac
|
335
|
-
macbook_air_(13-inch_2017): macbook_air
|
336
|
-
macbook_air_(m1_2020): macbook_air
|
337
|
-
macbook_air_(retina_13-inch_2018): macbook_air
|
338
|
-
macbook_air_(retina_13-inch_2019): macbook_air
|
339
|
-
macbook_air_(retina_13-inch_2020): macbook_air
|
340
|
-
macbook_pro_(13-inch_2018_four_thunderbolt_3_ports): macbook_pro
|
341
|
-
macbook_pro_(13-inch_2019_two_thunderbolt_3_ports): macbook_pro
|
342
|
-
macbook_pro_(13-inch_2020): macbook_pro
|
343
|
-
macbook_pro_(13-inch_m1_2020): macbook_pro
|
344
|
-
macbook_pro_(15-inch_2018): macbook_pro
|
345
|
-
macbook_pro_(15-inch_2019): macbook_pro
|
346
|
-
macbook_pro_(16-inch_2019): macbook_pro
|
347
|
-
macbook_pro_(retina_13-inch_early_2015): macbook_pro
|
348
|
-
macbook_pro_(retina_15-inch_mid_2015): macbook_pro
|
349
|
-
cisco:
|
350
|
-
products:
|
351
|
-
nam: network_analysis_module
|
352
|
-
citrix:
|
353
|
-
products:
|
354
|
-
netscaler_sdx_gateway: netscaler_sdx
|
355
|
-
eltex:
|
356
|
-
vendor: eltex-co
|
357
|
-
emc:
|
358
|
-
products:
|
359
|
-
celerra: celerra_network_attached_storage
|
360
|
-
hp:
|
361
|
-
products:
|
362
|
-
ilo: integrated_lights-out
|
363
|
-
kace:
|
364
|
-
vendor: dell
|
365
|
-
products:
|
366
|
-
k1000: kace_k1000_systems_management_appliance
|
367
|
-
phoenix_contact:
|
368
|
-
vendor: phoenixcontact
|
369
|
-
software_house:
|
370
|
-
vendor: swhouse
|
371
|
-
tandberg:
|
372
|
-
vendor: cisco
|
373
|
-
ubiquiti:
|
374
|
-
vendor: ui
|