recog-intrigue 2.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +37 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
- data/.github/ISSUE_TEMPLATE/fingerprint_request.md +27 -0
- data/.github/PULL_REQUEST_TEMPLATE +24 -0
- data/.gitignore +14 -0
- data/.rbenv-gemset +1 -0
- data/.rspec +3 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +25 -0
- data/.yardopts +1 -0
- data/CONTRIBUTING.md +171 -0
- data/COPYING +23 -0
- data/Gemfile +10 -0
- data/LICENSE +7 -0
- data/README.md +85 -0
- data/Rakefile +22 -0
- data/bin/recog_export +81 -0
- data/bin/recog_match +55 -0
- data/bin/recog_standardize +118 -0
- data/bin/recog_verify +64 -0
- data/cpe-remap.yaml +134 -0
- data/features/data/failing_banners_fingerprints.xml +20 -0
- data/features/data/matching_banners_fingerprints.xml +23 -0
- data/features/data/multiple_banners_fingerprints.xml +32 -0
- data/features/data/no_tests.xml +3 -0
- data/features/data/sample_banner.txt +2 -0
- data/features/data/successful_tests.xml +18 -0
- data/features/data/tests_with_failures.xml +20 -0
- data/features/data/tests_with_warnings.xml +17 -0
- data/features/match.feature +36 -0
- data/features/support/aruba.rb +3 -0
- data/features/support/env.rb +6 -0
- data/features/verify.feature +48 -0
- data/identifiers/README.md +47 -0
- data/identifiers/os_architecture.txt +20 -0
- data/identifiers/os_device.txt +52 -0
- data/identifiers/os_family.txt +160 -0
- data/identifiers/os_product.txt +199 -0
- data/identifiers/service_family.txt +185 -0
- data/identifiers/service_product.txt +255 -0
- data/identifiers/software_class.txt +26 -0
- data/identifiers/software_family.txt +91 -0
- data/identifiers/software_product.txt +333 -0
- data/identifiers/vendor.txt +405 -0
- data/lib/recog.rb +4 -0
- data/lib/recog/db.rb +78 -0
- data/lib/recog/db_manager.rb +31 -0
- data/lib/recog/fingerprint.rb +280 -0
- data/lib/recog/fingerprint/regexp_factory.rb +56 -0
- data/lib/recog/fingerprint/test.rb +18 -0
- data/lib/recog/formatter.rb +51 -0
- data/lib/recog/match_reporter.rb +77 -0
- data/lib/recog/matcher.rb +94 -0
- data/lib/recog/matcher_factory.rb +14 -0
- data/lib/recog/nizer.rb +347 -0
- data/lib/recog/verifier.rb +39 -0
- data/lib/recog/verifier_factory.rb +13 -0
- data/lib/recog/verify_reporter.rb +86 -0
- data/lib/recog/version.rb +3 -0
- data/misc/convert_mysql_err +61 -0
- data/misc/order.xsl +17 -0
- data/recog-intrigue.gemspec +45 -0
- data/requirements.txt +2 -0
- data/spec/data/best_os_match_1.yml +17 -0
- data/spec/data/best_os_match_2.yml +17 -0
- data/spec/data/best_service_match_1.yml +17 -0
- data/spec/data/smb_native_os.txt +25 -0
- data/spec/data/test_fingerprints.xml +36 -0
- data/spec/data/verification_fingerprints.xml +86 -0
- data/spec/data/whitespaced_fingerprint.xml +5 -0
- data/spec/lib/fingerprint_self_test_spec.rb +174 -0
- data/spec/lib/recog/db_spec.rb +98 -0
- data/spec/lib/recog/fingerprint/regexp_factory_spec.rb +73 -0
- data/spec/lib/recog/fingerprint_spec.rb +112 -0
- data/spec/lib/recog/formatter_spec.rb +69 -0
- data/spec/lib/recog/match_reporter_spec.rb +91 -0
- data/spec/lib/recog/nizer_spec.rb +330 -0
- data/spec/lib/recog/verify_reporter_spec.rb +113 -0
- data/spec/spec_helper.rb +82 -0
- data/update_cpes.py +186 -0
- data/xml/apache_modules.xml +1911 -0
- data/xml/apache_os.xml +273 -0
- data/xml/architecture.xml +36 -0
- data/xml/dns_versionbind.xml +761 -0
- data/xml/fingerprints.xsd +128 -0
- data/xml/ftp_banners.xml +1553 -0
- data/xml/h323_callresp.xml +603 -0
- data/xml/hp_pjl_id.xml +358 -0
- data/xml/html_title.xml +1630 -0
- data/xml/http_cookies.xml +411 -0
- data/xml/http_servers.xml +3195 -0
- data/xml/http_wwwauth.xml +595 -0
- data/xml/imap_banners.xml +245 -0
- data/xml/ldap_searchresult.xml +711 -0
- data/xml/mdns_device-info_txt.xml +1796 -0
- data/xml/mdns_workstation_txt.xml +15 -0
- data/xml/mysql_banners.xml +1649 -0
- data/xml/mysql_error.xml +871 -0
- data/xml/nntp_banners.xml +82 -0
- data/xml/ntp_banners.xml +1223 -0
- data/xml/operating_system.xml +629 -0
- data/xml/pop_banners.xml +499 -0
- data/xml/rsh_resp.xml +76 -0
- data/xml/rtsp_servers.xml +76 -0
- data/xml/sip_banners.xml +359 -0
- data/xml/sip_user_agents.xml +221 -0
- data/xml/smb_native_lm.xml +62 -0
- data/xml/smb_native_os.xml +662 -0
- data/xml/smtp_banners.xml +1690 -0
- data/xml/smtp_debug.xml +39 -0
- data/xml/smtp_ehlo.xml +49 -0
- data/xml/smtp_expn.xml +82 -0
- data/xml/smtp_help.xml +157 -0
- data/xml/smtp_mailfrom.xml +20 -0
- data/xml/smtp_noop.xml +44 -0
- data/xml/smtp_quit.xml +29 -0
- data/xml/smtp_rcptto.xml +25 -0
- data/xml/smtp_rset.xml +26 -0
- data/xml/smtp_turn.xml +26 -0
- data/xml/smtp_vrfy.xml +89 -0
- data/xml/snmp_sysdescr.xml +6507 -0
- data/xml/snmp_sysobjid.xml +430 -0
- data/xml/ssh_banners.xml +1968 -0
- data/xml/telnet_banners.xml +1595 -0
- data/xml/x11_banners.xml +232 -0
- data/xml/x509_issuers.xml +134 -0
- data/xml/x509_subjects.xml +1268 -0
- metadata +304 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module Recog
|
|
2
|
+
class Verifier
|
|
3
|
+
attr_reader :fingerprints, :reporter
|
|
4
|
+
|
|
5
|
+
def initialize(fingerprints, reporter)
|
|
6
|
+
@fingerprints = fingerprints
|
|
7
|
+
@reporter = reporter
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def verify
|
|
11
|
+
reporter.report(fingerprints.count) do
|
|
12
|
+
fingerprints.each do |fp|
|
|
13
|
+
reporter.print_name fp
|
|
14
|
+
|
|
15
|
+
fp.verify_params do |status, message|
|
|
16
|
+
case status
|
|
17
|
+
when :warn
|
|
18
|
+
reporter.warning "WARN: #{message}"
|
|
19
|
+
when :fail
|
|
20
|
+
reporter.failure "FAIL: #{message}"
|
|
21
|
+
when :success
|
|
22
|
+
reporter.success(message)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
fp.verify_tests do |status, message|
|
|
26
|
+
case status
|
|
27
|
+
when :warn
|
|
28
|
+
reporter.warning "WARN: #{message}"
|
|
29
|
+
when :fail
|
|
30
|
+
reporter.failure "FAIL: #{message}"
|
|
31
|
+
when :success
|
|
32
|
+
reporter.success(message)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require 'verifier'
|
|
2
|
+
require 'formatter'
|
|
3
|
+
require 'verify_reporter'
|
|
4
|
+
|
|
5
|
+
module Recog
|
|
6
|
+
module VerifierFactory
|
|
7
|
+
def self.build(options)
|
|
8
|
+
formatter = Formatter.new(options, $stdout)
|
|
9
|
+
reporter = VerifyReporter.new(options, formatter)
|
|
10
|
+
Verifier.new(options.fingerprints, reporter)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
module Recog
|
|
2
|
+
class VerifyReporter
|
|
3
|
+
attr_reader :formatter
|
|
4
|
+
attr_reader :success_count, :warning_count, :failure_count
|
|
5
|
+
|
|
6
|
+
def initialize(options, formatter)
|
|
7
|
+
@options = options
|
|
8
|
+
@formatter = formatter
|
|
9
|
+
reset_counts
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def report(fingerprint_count)
|
|
13
|
+
reset_counts
|
|
14
|
+
yield self
|
|
15
|
+
summarize(fingerprint_count) unless @options.quiet
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def success(text)
|
|
19
|
+
@success_count += 1
|
|
20
|
+
formatter.success_message("#{padding}#{text}") if detail?
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def warning(text)
|
|
24
|
+
return unless @options.warnings
|
|
25
|
+
@warning_count += 1
|
|
26
|
+
formatter.warning_message("#{padding}#{text}")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def failure(text)
|
|
30
|
+
@failure_count += 1
|
|
31
|
+
formatter.failure_message("#{padding}#{text}")
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def print_name(fingerprint)
|
|
35
|
+
if detail? && fingerprint.tests.any?
|
|
36
|
+
name = fingerprint.name.empty? ? '[unnamed]' : fingerprint.name
|
|
37
|
+
formatter.status_message("\n#{name}")
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def summarize(fingerprint_count)
|
|
42
|
+
print_fingerprint_count(fingerprint_count) if detail?
|
|
43
|
+
print_summary
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def print_fingerprint_count(count)
|
|
47
|
+
formatter.status_message("\nVerified #{count} fingerprints:")
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def print_summary
|
|
51
|
+
colorize_summary(summary_line)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
private
|
|
55
|
+
|
|
56
|
+
def reset_counts
|
|
57
|
+
@success_count = @failure_count = @warning_count = 0
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def detail?
|
|
61
|
+
@options.detail
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def padding
|
|
65
|
+
' ' if @options.detail
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def summary_line
|
|
69
|
+
summary = "SUMMARY: Test completed with "
|
|
70
|
+
summary << "#{@success_count} successful"
|
|
71
|
+
summary << ", #{@warning_count} warnings"
|
|
72
|
+
summary << ", and #{@failure_count} failures"
|
|
73
|
+
summary
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def colorize_summary(summary)
|
|
77
|
+
if @failure_count > 0
|
|
78
|
+
formatter.failure_message(summary)
|
|
79
|
+
elsif @warning_count > 0
|
|
80
|
+
formatter.warning_message(summary)
|
|
81
|
+
else
|
|
82
|
+
formatter.success_message(summary)
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
# Takes the MySQL error messages from sql/share/errmsg-utf8.txt, locates the
|
|
4
|
+
# provided error message type (for example, ER_HOST_NOT_PRIVILEGED), then
|
|
5
|
+
# creates XML snippets for each locale to be used in Recog. Note that this
|
|
6
|
+
# cannot be used as-is to generate mysql_errors.xml, or oftentimes even parts
|
|
7
|
+
# -- it merely spits out XML snippets that you can start with; many will still
|
|
8
|
+
# need to be modified by hand.
|
|
9
|
+
|
|
10
|
+
require 'builder'
|
|
11
|
+
require 'open-uri'
|
|
12
|
+
require 'securerandom'
|
|
13
|
+
|
|
14
|
+
def generate_recog(error_name, locale, error_message)
|
|
15
|
+
xml = Builder::XmlMarkup.new(target: STDOUT, indent: 2)
|
|
16
|
+
xml.fingerprint(pattern: error_message) do
|
|
17
|
+
xml.description "Oracle MySQL error #{error_name} (#{locale})"
|
|
18
|
+
xml.example(error_message)
|
|
19
|
+
xml.param(pos: 0, name: 'service.vendor', value: 'Oracle')
|
|
20
|
+
xml.param(pos: 0, name: 'service.family', value: 'MySQL')
|
|
21
|
+
xml.param(pos: 0, name: 'service.product', value: 'MySQL')
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
unless ARGV.size == 2
|
|
26
|
+
fail "Usage: #{$PROGRAM_NAME} <path/URI for errmsg-utf8.txt> <error name>"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
path = ARGV.first
|
|
30
|
+
error_name = ARGV.last
|
|
31
|
+
|
|
32
|
+
lines = IO.readlines(open(path))
|
|
33
|
+
|
|
34
|
+
fail "Nothing read from #{path}" if lines.empty?
|
|
35
|
+
|
|
36
|
+
unless (error_start = lines.find_index { |line| line.strip =~ /^#{error_name}(?:\s+\S+)?$/ })
|
|
37
|
+
fail "Unable to find #{error_name} in #{path}"
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
locale_map = {}
|
|
41
|
+
lines.slice(error_start + 1, lines.size).each do |line|
|
|
42
|
+
if /^\s+(?<locale>\S+)\s+"(?<error_message>.*)",?$/ =~ line
|
|
43
|
+
locale_map[locale] = error_message
|
|
44
|
+
else
|
|
45
|
+
break
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Many of the error messages contain format strings. This can be problematic
|
|
50
|
+
# in that they need to be removed or otherwise handled as part of the 'pattern'
|
|
51
|
+
# attribute and appropriately filled in in any example elements. So simply try
|
|
52
|
+
# a rough count of the possible format strings and warn the user so that they
|
|
53
|
+
# can deal with it.
|
|
54
|
+
format_count = locale_map.values.map { |error_message| error_message.scan(/%/).size }.inject(&:+)
|
|
55
|
+
unless format_count == 0
|
|
56
|
+
warn("#{format_count} possible format strings found -- you'll need to deal with this")
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
Hash[locale_map.sort].map do |locale, error_message|
|
|
60
|
+
generate_recog(error_name, locale, error_message)
|
|
61
|
+
end
|
data/misc/order.xsl
ADDED
|
@@ -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>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
$LOAD_PATH.push File.expand_path('../lib', __FILE__)
|
|
3
|
+
require 'recog/version'
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |s|
|
|
6
|
+
s.name = 'recog-intrigue'
|
|
7
|
+
s.version = Recog::VERSION
|
|
8
|
+
s.required_ruby_version = '>= 2.1'
|
|
9
|
+
s.authors = [
|
|
10
|
+
'Rapid7 Research',
|
|
11
|
+
'jcran'
|
|
12
|
+
]
|
|
13
|
+
s.email = [
|
|
14
|
+
'jcran@intrigue.io'
|
|
15
|
+
]
|
|
16
|
+
s.homepage = "https://www.github.com/rapid7/recog"
|
|
17
|
+
s.summary = %q{Network service fingerprint database, classes, and utilities}
|
|
18
|
+
s.description = %q{
|
|
19
|
+
Recog is a framework for identifying products, services, operating systems, and hardware by matching
|
|
20
|
+
fingerprints against data returned from various network probes. Recog makes it simply to extract useful
|
|
21
|
+
information from web server banners, snmp system description fields, and a whole lot more.
|
|
22
|
+
}.gsub(/\s+/, ' ').strip
|
|
23
|
+
|
|
24
|
+
s.files = `git ls-files`.split("\n")
|
|
25
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
26
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
27
|
+
s.require_paths = ['lib']
|
|
28
|
+
|
|
29
|
+
# ---- Dependencies ----
|
|
30
|
+
|
|
31
|
+
s.add_development_dependency 'rspec'
|
|
32
|
+
s.add_development_dependency 'yard'
|
|
33
|
+
if RUBY_PLATFORM =~ /java/
|
|
34
|
+
# markdown formatting for yard
|
|
35
|
+
s.add_development_dependency 'kramdown'
|
|
36
|
+
else
|
|
37
|
+
# markdown formatting for yard
|
|
38
|
+
s.add_development_dependency 'redcarpet'
|
|
39
|
+
end
|
|
40
|
+
s.add_development_dependency 'cucumber'
|
|
41
|
+
s.add_development_dependency 'aruba'
|
|
42
|
+
s.add_development_dependency 'simplecov'
|
|
43
|
+
|
|
44
|
+
s.add_runtime_dependency 'nokogiri'
|
|
45
|
+
end
|
data/requirements.txt
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
- os.product: Windows 2008
|
|
3
|
+
os.vendor: Microsoft
|
|
4
|
+
os.version: Service Pack 2
|
|
5
|
+
os.certainty: 0.5
|
|
6
|
+
- os.product: Windows 2008
|
|
7
|
+
os.vendor: Microsoft
|
|
8
|
+
os.version: Service Pack 1
|
|
9
|
+
os.certainty: 0.4
|
|
10
|
+
- os.product: Windows 2008
|
|
11
|
+
os.vendor: Microsoft
|
|
12
|
+
os.certainty: 0.3
|
|
13
|
+
os.language: English
|
|
14
|
+
- os.product: Windows 2012
|
|
15
|
+
os.vendor: Microsoft
|
|
16
|
+
os.certainty: 0.4
|
|
17
|
+
os.language: Arabic
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
- os.product: Windows 2008
|
|
3
|
+
os.vendor: Microsoft
|
|
4
|
+
os.version: Service Pack 2
|
|
5
|
+
os.certainty: 1.0
|
|
6
|
+
- os.product: Windows 2012
|
|
7
|
+
os.vendor: Microsoft
|
|
8
|
+
os.version: Service Pack 1
|
|
9
|
+
os.certainty: 0.7
|
|
10
|
+
- os.product: Windows 2008
|
|
11
|
+
os.vendor: Microsoft
|
|
12
|
+
os.certainty: 0.3
|
|
13
|
+
os.language: English
|
|
14
|
+
- os.product: Windows 2012
|
|
15
|
+
os.vendor: Microsoft
|
|
16
|
+
os.certainty: 0.8
|
|
17
|
+
os.language: Arabic
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
- service.product: IIS
|
|
3
|
+
service.vendor: Microsoft
|
|
4
|
+
service.version: 6.0
|
|
5
|
+
service.certainty: 1.0
|
|
6
|
+
- service.product: Apache
|
|
7
|
+
service.vendor: Linux
|
|
8
|
+
service.version: 2.2.4
|
|
9
|
+
service.certainty: 0.5
|
|
10
|
+
- service.product: IIS
|
|
11
|
+
service.vendor: Microsoft
|
|
12
|
+
service.certainty: 0.5
|
|
13
|
+
service.language: English
|
|
14
|
+
- service.product: IIS
|
|
15
|
+
service.vendor: Microsoft
|
|
16
|
+
service.certainty: 0.4
|
|
17
|
+
service.language: Arabic
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Windows Web Server 2008 R2 7601 Service Pack 1
|
|
2
|
+
Windows Vista (TM) Home Premium 6002 Service Pack 2
|
|
3
|
+
Windows Server (R) 2008 Standard 6002 Service Pack 2
|
|
4
|
+
Windows Server (R) 2008 Enterprise without Hyper-V 6001 Service Pack 1
|
|
5
|
+
Windows Server (R) 2008 Enterprise 6002 Service Pack 2
|
|
6
|
+
Windows Server (R) 2008 Enterprise 6001 Service Pack 1
|
|
7
|
+
Windows Server 2012 Standard 9200
|
|
8
|
+
Windows Server 2012 R2 Standard 9600
|
|
9
|
+
Windows Server 2008 R2 Standard 7601 Service Pack 1
|
|
10
|
+
Windows Server 2008 R2 Standard 7600
|
|
11
|
+
Windows Server 2008 R2 Enterprise 7601 Service Pack 1
|
|
12
|
+
Windows Server 2008 R2 Enterprise 7600
|
|
13
|
+
Windows Server 2008 HPC Edition 7600
|
|
14
|
+
Windows Server 2003 R2 3790 Service Pack 2
|
|
15
|
+
Windows Server 2003 3790 Service Pack 2
|
|
16
|
+
Windows (R) Web Server 2008 6002 Service Pack 2
|
|
17
|
+
Windows MultiPoint Server 2012 Premium 9200
|
|
18
|
+
Windows 8 Enterprise 9200
|
|
19
|
+
Windows 8.1 Enterprise 9600
|
|
20
|
+
Windows 7 Ultimate 7601 Service Pack 1
|
|
21
|
+
Windows 7 Ultimate 7600
|
|
22
|
+
Windows 7 Starter 7601 Service Pack 1
|
|
23
|
+
Windows 7 Home Premium 7600
|
|
24
|
+
Windows 7 Enterprise 7601 Service Pack 1
|
|
25
|
+
Windows 7 Enterprise 7600
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<fingerprints>
|
|
3
|
+
<fingerprint pattern=".*\(iSeries\).*">
|
|
4
|
+
</fingerprint>
|
|
5
|
+
|
|
6
|
+
<fingerprint pattern=".*\(PalmOS\).*">
|
|
7
|
+
<description>PalmOS</description>
|
|
8
|
+
<param pos="1" name="os.vendor" value="Palm"/>
|
|
9
|
+
<param pos="2" name="os.device" value="General"/>
|
|
10
|
+
</fingerprint>
|
|
11
|
+
|
|
12
|
+
<fingerprint pattern="(designjet \S+)" flags="REG_ICASE">
|
|
13
|
+
<description>HP Designjet printer</description>
|
|
14
|
+
<description>I should be ignored</description>
|
|
15
|
+
<param pos="0" name="service.vendor" value="HP"/>
|
|
16
|
+
</fingerprint>
|
|
17
|
+
|
|
18
|
+
<fingerprint pattern="laserjet (.*)(?: series)?" flags="REG_ICASE">
|
|
19
|
+
<description>HP JetDirect Printer</description>
|
|
20
|
+
<example>HP LaserJet 4100 Series</example>
|
|
21
|
+
<example>HP LaserJet 2200</example>
|
|
22
|
+
<param pos="0" name="service.vendor" value="HP"/>
|
|
23
|
+
</fingerprint>
|
|
24
|
+
|
|
25
|
+
<fingerprint pattern="^Windows XP (\d+) (Service Pack \d+)$">
|
|
26
|
+
<description>Windows XP</description>
|
|
27
|
+
<example os.build="2600" os.version="Service Pack 1"
|
|
28
|
+
>Windows XP 2600 Service Pack 1</example>
|
|
29
|
+
<param pos="0" name="os.certainty" value="1.0"/>
|
|
30
|
+
<param pos="0" name="os.vendor" value="Microsoft"/>
|
|
31
|
+
<param pos="0" name="os.product" value="Windows XP"/>
|
|
32
|
+
<param pos="1" name="os.build"/>
|
|
33
|
+
<param pos="2" name="os.version"/>
|
|
34
|
+
</fingerprint>
|
|
35
|
+
|
|
36
|
+
</fingerprints>
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
<fingerprints>
|
|
2
|
+
|
|
3
|
+
<fingerprint pattern="^[dD]ovecot (?:\((.*)\) )?(?:DA )?ready\.(?: <.+@(.+)>)?$">
|
|
4
|
+
<description>Dovecot Secure POP Server - no params</description>
|
|
5
|
+
<example>Dovecot ready.</example>
|
|
6
|
+
</fingerprint>
|
|
7
|
+
|
|
8
|
+
<fingerprint pattern="^[dD]ovecot (?:\((.*)\) )?(?:DA )?ready\.(?: <.+@(.+)>)?$">
|
|
9
|
+
<description>Dovecot Secure POP Server - no params defined by capture group</description>
|
|
10
|
+
<example>Dovecot ready.</example>
|
|
11
|
+
<param pos="0" name="service.family" value="Dovecot"/>
|
|
12
|
+
<param pos="0" name="service.product" value="Dovecot"/>
|
|
13
|
+
</fingerprint>
|
|
14
|
+
|
|
15
|
+
<fingerprint pattern="^[dD]ovecot (?:\((.*)\) )?(?:DA )?ready\.(?: <.+@(.+)>)?$">
|
|
16
|
+
<description>Dovecot Secure POP Server - no example</description>
|
|
17
|
+
<param pos="0" name="service.family" value="Dovecot"/>
|
|
18
|
+
<param pos="0" name="service.product" value="Dovecot"/>
|
|
19
|
+
</fingerprint>
|
|
20
|
+
|
|
21
|
+
<fingerprint pattern="^[dD]ovecot (?:\((.*)\) )?(?:DA )?ready\.(?: <.+@(.+)>)?$">
|
|
22
|
+
<description>Dovecot Secure POP Server - one parameter, one example</description>
|
|
23
|
+
<example host.name="domain">Dovecot ready. <abc11.1.1234abcd.abdcabcdabcd@domain></example>
|
|
24
|
+
<param pos="0" name="service.family" value="Dovecot"/>
|
|
25
|
+
<param pos="0" name="service.product" value="Dovecot"/>
|
|
26
|
+
<param pos="2" name="host.name"/>
|
|
27
|
+
</fingerprint>
|
|
28
|
+
|
|
29
|
+
<fingerprint pattern="^[dD]ovecot (?:\((.*)\) )?(?:DA )?ready\.(?: <.+@(.+)>)?$">
|
|
30
|
+
<description>Dovecot Secure POP Server - two paremeters, one example</description>
|
|
31
|
+
<example host.name="domain" os.vendor="Ubuntu">Dovecot (Ubuntu) ready. <abc11.1.1234abcd.abdcabcdabcd@domain></example>
|
|
32
|
+
<param pos="0" name="service.family" value="Dovecot"/>
|
|
33
|
+
<param pos="0" name="service.product" value="Dovecot"/>
|
|
34
|
+
<param pos="1" name="os.vendor"/>
|
|
35
|
+
<param pos="2" name="host.name"/>
|
|
36
|
+
</fingerprint>
|
|
37
|
+
|
|
38
|
+
<fingerprint pattern="^[dD]ovecot (?:\((.*)\) )?(?:DA )?ready\.(?: <.+@(.+)>)?$">
|
|
39
|
+
<description>Dovecot Secure POP Server - two parameters, two examples</description>
|
|
40
|
+
<example host.name="domain">Dovecot ready. <abc11.1.1234abcd.abdcabcdabcd@domain></example>
|
|
41
|
+
<example os.vendor="Ubuntu">Dovecot (Ubuntu) ready.</example>
|
|
42
|
+
<param pos="0" name="service.family" value="Dovecot"/>
|
|
43
|
+
<param pos="0" name="service.product" value="Dovecot"/>
|
|
44
|
+
<param pos="1" name="os.vendor"/>
|
|
45
|
+
<param pos="2" name="host.name"/>
|
|
46
|
+
</fingerprint>
|
|
47
|
+
|
|
48
|
+
<fingerprint pattern="^[dD]ovecot (?:\((.*)\) )?(?:DA )?ready\.(?: <.+@(.+)>)?$">
|
|
49
|
+
<description>Dovecot Secure POP Server - two parameters, one example, one missing param</description>
|
|
50
|
+
<example host.name="domain">Dovecot ready. <abc11.1.1234abcd.abdcabcdabcd@domain></example>
|
|
51
|
+
<param pos="0" name="service.family" value="Dovecot"/>
|
|
52
|
+
<param pos="0" name="service.product" value="Dovecot"/>
|
|
53
|
+
<param pos="1" name="os.vendor"/>
|
|
54
|
+
<param pos="2" name="host.name"/>
|
|
55
|
+
</fingerprint>
|
|
56
|
+
|
|
57
|
+
<fingerprint pattern="^[dD]ovecot (?:\((.*)\) )?(?:DA )?ready\.(?: <.+@(.+)>)?$">
|
|
58
|
+
<description>Dovecot Secure POP Server - two parameters, one example, two missing params</description>
|
|
59
|
+
<example>Dovecot ready. <abc11.1.1234abcd.abdcabcdabcd@domain></example>
|
|
60
|
+
<param pos="0" name="service.family" value="Dovecot"/>
|
|
61
|
+
<param pos="0" name="service.product" value="Dovecot"/>
|
|
62
|
+
<param pos="1" name="os.vendor"/>
|
|
63
|
+
<param pos="2" name="host.name"/>
|
|
64
|
+
</fingerprint>
|
|
65
|
+
|
|
66
|
+
<fingerprint pattern="^[dD]ovecot (?:\((.*)\) )?(?:DA )?ready\.(?: <.+@(.+)>)?$">
|
|
67
|
+
<description>Dovecot Secure POP Server - two parameters, two examples, one missing param</description>
|
|
68
|
+
<example host.name="domain">Dovecot ready. <abc11.1.1234abcd.abdcabcdabcd@domain></example>
|
|
69
|
+
<example>Dovecot (Ubuntu) ready.</example>
|
|
70
|
+
<param pos="0" name="service.family" value="Dovecot"/>
|
|
71
|
+
<param pos="0" name="service.product" value="Dovecot"/>
|
|
72
|
+
<param pos="1" name="os.vendor"/>
|
|
73
|
+
<param pos="2" name="host.name"/>
|
|
74
|
+
</fingerprint>
|
|
75
|
+
|
|
76
|
+
<fingerprint pattern="^[dD]ovecot (?:\((.*)\) )?(?:DA )?ready\.(?: <.+@(.+)>)?$">
|
|
77
|
+
<description>Dovecot Secure POP Server - two parameters, two examples, two missing params</description>
|
|
78
|
+
<example>Dovecot ready. <abc11.1.1234abcd.abdcabcdabcd@domain></example>
|
|
79
|
+
<example>Dovecot (Ubuntu) ready.</example>
|
|
80
|
+
<param pos="0" name="service.family" value="Dovecot"/>
|
|
81
|
+
<param pos="0" name="service.product" value="Dovecot"/>
|
|
82
|
+
<param pos="1" name="os.vendor"/>
|
|
83
|
+
<param pos="2" name="host.name"/>
|
|
84
|
+
</fingerprint>
|
|
85
|
+
|
|
86
|
+
</fingerprints>
|