recog 2.3.22 → 3.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +2 -0
- data/LICENSE +1 -1
- data/README.md +25 -16
- data/Rakefile +2 -9
- data/lib/recog/db_manager.rb +1 -1
- data/lib/recog/fingerprint.rb +21 -7
- data/lib/recog/fingerprint_parse_error.rb +10 -0
- data/lib/recog/match_reporter.rb +37 -3
- data/lib/recog/matcher.rb +5 -10
- data/lib/recog/verifier.rb +4 -4
- data/lib/recog/verify_reporter.rb +7 -6
- data/lib/recog/version.rb +1 -1
- data/{bin → recog/bin}/recog_match +20 -7
- data/{xml → recog/xml}/apache_modules.xml +0 -0
- data/{xml → recog/xml}/apache_os.xml +61 -19
- data/{xml → recog/xml}/architecture.xml +15 -1
- data/{xml → recog/xml}/dhcp_vendor_class.xml +10 -10
- data/{xml → recog/xml}/dns_versionbind.xml +16 -13
- data/{xml → recog/xml}/favicons.xml +167 -9
- data/{xml → recog/xml}/fingerprints.xsd +9 -1
- data/{xml → recog/xml}/ftp_banners.xml +131 -141
- data/{xml → recog/xml}/h323_callresp.xml +2 -2
- data/{xml → recog/xml}/hp_pjl_id.xml +81 -81
- data/{xml → recog/xml}/html_title.xml +250 -9
- data/{xml → recog/xml}/http_cookies.xml +111 -34
- data/{xml → recog/xml}/http_servers.xml +483 -270
- data/{xml → recog/xml}/http_wwwauth.xml +83 -37
- data/{xml → recog/xml}/imap_banners.xml +10 -10
- 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 +8 -5
- data/{xml → recog/xml}/ntp_banners.xml +33 -33
- data/{xml → recog/xml}/operating_system.xml +92 -77
- data/{xml → recog/xml}/pop_banners.xml +25 -25
- 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 +16 -5
- data/{xml → recog/xml}/sip_user_agents.xml +122 -27
- data/{xml → recog/xml}/smb_native_lm.xml +5 -5
- data/{xml → recog/xml}/smb_native_os.xml +25 -25
- data/{xml → recog/xml}/smtp_banners.xml +132 -131
- 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 +1 -1
- 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 +1248 -1233
- data/{xml → recog/xml}/snmp_sysobjid.xml +13 -2
- data/{xml → recog/xml}/ssh_banners.xml +9 -5
- data/{xml → recog/xml}/telnet_banners.xml +83 -1
- data/{xml → recog/xml}/tls_jarm.xml +30 -2
- data/{xml → recog/xml}/x11_banners.xml +3 -3
- data/{xml → recog/xml}/x509_issuers.xml +24 -4
- data/{xml → recog/xml}/x509_subjects.xml +32 -3
- data/recog.gemspec +9 -5
- data/spec/data/external_example_fingerprint/hp_printer_ex_01.txt +1 -0
- data/spec/data/external_example_fingerprint/hp_printer_ex_02.txt +1 -0
- data/spec/data/external_example_fingerprint.xml +8 -0
- data/spec/data/external_example_illegal_path_fingerprint.xml +7 -0
- data/spec/lib/recog/db_spec.rb +84 -61
- data/spec/lib/recog/fingerprint_spec.rb +4 -4
- data/spec/lib/recog/match_reporter_spec.rb +22 -8
- data/spec/lib/recog/verify_reporter_spec.rb +8 -8
- data/spec/spec_helper.rb +4 -0
- data.tar.gz.sig +0 -0
- metadata +154 -142
- metadata.gz.sig +0 -0
- 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/CONTRIBUTING.md +0 -276
- data/bin/recog_cleanup +0 -16
- data/bin/recog_export +0 -81
- data/bin/recog_standardize +0 -163
- data/bin/recog_verify +0 -63
- data/cpe-remap.yaml +0 -356
- 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/successful_tests.xml +0 -18
- data/features/data/tests_with_failures.xml +0 -20
- 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/verify.feature +0 -48
- data/identifiers/README.md +0 -70
- data/identifiers/fields.txt +0 -105
- data/identifiers/hw_device.txt +0 -84
- data/identifiers/hw_family.txt +0 -121
- data/identifiers/hw_product.txt +0 -461
- data/identifiers/os_architecture.txt +0 -10
- data/identifiers/os_device.txt +0 -75
- data/identifiers/os_family.txt +0 -234
- data/identifiers/os_product.txt +0 -350
- data/identifiers/service_family.txt +0 -249
- data/identifiers/service_product.txt +0 -764
- data/identifiers/vendor.txt +0 -847
- data/lib/recog/verifier_factory.rb +0 -13
- 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 -250
@@ -75,7 +75,7 @@ describe Recog::Fingerprint do
|
|
75
75
|
let(:entry) { described_class.new(doc.xpath("//fingerprints/fingerprint")[6]) }
|
76
76
|
|
77
77
|
it "identifies when a parameter defined by a capture group is not included in one example" do
|
78
|
-
expect { |unused| entry.verify_tests_have_capture_groups(&unused) }.to yield_successive_args([:
|
78
|
+
expect { |unused| entry.verify_tests_have_capture_groups(&unused) }.to yield_successive_args([:fail, String])
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
@@ -83,7 +83,7 @@ describe Recog::Fingerprint do
|
|
83
83
|
let(:entry) { described_class.new(doc.xpath("//fingerprints/fingerprint")[7]) }
|
84
84
|
|
85
85
|
it "identifies when two parameters defined by a capture groups are not included in one example" do
|
86
|
-
expect { |unused| entry.verify_tests_have_capture_groups(&unused) }.to yield_successive_args([:
|
86
|
+
expect { |unused| entry.verify_tests_have_capture_groups(&unused) }.to yield_successive_args([:fail, String], [:fail, String])
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
@@ -92,7 +92,7 @@ describe Recog::Fingerprint do
|
|
92
92
|
let(:entry) { described_class.new(doc.xpath("//fingerprints/fingerprint")[8]) }
|
93
93
|
|
94
94
|
it "identifies when a parameter defined by a capture group is not included in one example" do
|
95
|
-
expect { |unused| entry.verify_tests_have_capture_groups(&unused) }.to yield_successive_args([:
|
95
|
+
expect { |unused| entry.verify_tests_have_capture_groups(&unused) }.to yield_successive_args([:fail, String])
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
@@ -100,7 +100,7 @@ describe Recog::Fingerprint do
|
|
100
100
|
let(:entry) { described_class.new(doc.xpath("//fingerprints/fingerprint")[9]) }
|
101
101
|
|
102
102
|
it "identifies when two parameters defined by a capture groups are not included in one example" do
|
103
|
-
expect { |unused| entry.verify_tests_have_capture_groups(&unused) }.to yield_successive_args([:
|
103
|
+
expect { |unused| entry.verify_tests_have_capture_groups(&unused) }.to yield_successive_args([:fail, String], [:fail, String])
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
@@ -1,31 +1,31 @@
|
|
1
1
|
require 'recog/match_reporter'
|
2
2
|
|
3
3
|
describe Recog::MatchReporter do
|
4
|
-
let(:options) { double(detail: false, quiet: false)
|
4
|
+
let(:options) { double(detail: false, json_format: false, quiet: false, multi_match: false) }
|
5
5
|
let(:formatter) { double('formatter').as_null_object }
|
6
6
|
subject { Recog::MatchReporter.new(options, formatter) }
|
7
7
|
|
8
8
|
def run_report
|
9
9
|
subject.report do
|
10
10
|
subject.increment_line_count
|
11
|
-
subject.match 'a match'
|
11
|
+
subject.match [{'data' => 'a match'}]
|
12
12
|
subject.failure 'a failure'
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
16
|
describe "#report" do
|
17
17
|
it "prints matches" do
|
18
|
-
expect(formatter).to receive(:success_message).with('a match')
|
18
|
+
expect(formatter).to receive(:success_message).with('MATCH: {"data"=>"a match"}')
|
19
19
|
run_report
|
20
20
|
end
|
21
21
|
|
22
22
|
it "prints failures" do
|
23
|
-
expect(formatter).to receive(:failure_message).with('a failure')
|
23
|
+
expect(formatter).to receive(:failure_message).with('FAIL: a failure')
|
24
24
|
run_report
|
25
25
|
end
|
26
26
|
|
27
27
|
context "with detail" do
|
28
|
-
subject { Recog::MatchReporter.new(double(detail: true, quiet: false), formatter) }
|
28
|
+
subject { Recog::MatchReporter.new(double(detail: true, json_format: false, quiet: false, multi_match: false), formatter) }
|
29
29
|
|
30
30
|
it "prints the lines processed" do
|
31
31
|
expect(formatter).to receive(:status_message).with("\nProcessed 1 lines")
|
@@ -37,11 +37,25 @@ describe Recog::MatchReporter do
|
|
37
37
|
run_report
|
38
38
|
end
|
39
39
|
end
|
40
|
+
|
41
|
+
context "with JSON" do
|
42
|
+
subject { Recog::MatchReporter.new(double(detail: false, json_format: true, quiet: false, multi_match: false), formatter) }
|
43
|
+
|
44
|
+
it "prints matches" do
|
45
|
+
expect(formatter).to receive(:success_message).with('{"data":"a match","match":{}}')
|
46
|
+
run_report
|
47
|
+
end
|
48
|
+
|
49
|
+
it "prints failures" do
|
50
|
+
expect(formatter).to receive(:failure_message).with('{"data":"a failure","match_failure":true,"match":null}')
|
51
|
+
run_report
|
52
|
+
end
|
53
|
+
end
|
40
54
|
end
|
41
55
|
|
42
56
|
describe "#print_summary" do
|
43
57
|
context "with all matches" do
|
44
|
-
before { subject.match 'match' }
|
58
|
+
before { subject.match ['match'] }
|
45
59
|
|
46
60
|
it "prints a successful summary" do
|
47
61
|
msg = "SUMMARY: 1 matches and 0 failures"
|
@@ -64,7 +78,7 @@ describe Recog::MatchReporter do
|
|
64
78
|
describe "#stop?" do
|
65
79
|
context "with a failure limit" do
|
66
80
|
|
67
|
-
let(:options) { double(fail_fast: true, stop_after: 3, detail: false) }
|
81
|
+
let(:options) { double(fail_fast: true, stop_after: 3, detail: false, json_format: false, multi_match: false) }
|
68
82
|
before do
|
69
83
|
subject.failure 'first'
|
70
84
|
subject.failure 'second'
|
@@ -81,7 +95,7 @@ describe Recog::MatchReporter do
|
|
81
95
|
end
|
82
96
|
|
83
97
|
context "with no failure limit" do
|
84
|
-
let(:options) { double(fail_fast: false, detail: false) }
|
98
|
+
let(:options) { double(fail_fast: false, detail: false, json_format: false, multi_match: false) }
|
85
99
|
|
86
100
|
it "return false" do
|
87
101
|
expect(subject.stop?).to be false
|
@@ -22,12 +22,12 @@ describe Recog::VerifyReporter do
|
|
22
22
|
|
23
23
|
describe "#report" do
|
24
24
|
it "prints warnings" do
|
25
|
-
expect(formatter).to receive(:warning_message).with('a warning')
|
25
|
+
expect(formatter).to receive(:warning_message).with('WARN: a warning')
|
26
26
|
run_report
|
27
27
|
end
|
28
28
|
|
29
29
|
it "prints failures" do
|
30
|
-
expect(formatter).to receive(:failure_message).with('a failure')
|
30
|
+
expect(formatter).to receive(:failure_message).with('FAIL: a failure')
|
31
31
|
run_report
|
32
32
|
end
|
33
33
|
|
@@ -50,12 +50,12 @@ describe Recog::VerifyReporter do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
it "prints warnings" do
|
53
|
-
expect(formatter).to receive(:warning_message).with(' a warning')
|
53
|
+
expect(formatter).to receive(:warning_message).with(' WARN: a warning')
|
54
54
|
run_report
|
55
55
|
end
|
56
56
|
|
57
57
|
it "prints failures" do
|
58
|
-
expect(formatter).to receive(:failure_message).with(' a failure')
|
58
|
+
expect(formatter).to receive(:failure_message).with(' FAIL: a failure')
|
59
59
|
run_report
|
60
60
|
end
|
61
61
|
|
@@ -84,12 +84,12 @@ describe Recog::VerifyReporter do
|
|
84
84
|
subject { Recog::VerifyReporter.new(double(detail: false, quiet: false, warnings: true), formatter, path) }
|
85
85
|
|
86
86
|
it "prints warnings" do
|
87
|
-
expect(formatter).to receive(:warning_message).with("#{path}: a warning")
|
87
|
+
expect(formatter).to receive(:warning_message).with("#{path}: WARN: a warning")
|
88
88
|
run_report
|
89
89
|
end
|
90
90
|
|
91
91
|
it "prints failures" do
|
92
|
-
expect(formatter).to receive(:failure_message).with("#{path}: a failure")
|
92
|
+
expect(formatter).to receive(:failure_message).with("#{path}: FAIL: a failure")
|
93
93
|
run_report
|
94
94
|
end
|
95
95
|
|
@@ -118,12 +118,12 @@ describe Recog::VerifyReporter do
|
|
118
118
|
end
|
119
119
|
|
120
120
|
it "prints warnings" do
|
121
|
-
expect(formatter).to receive(:warning_message).with(' a warning')
|
121
|
+
expect(formatter).to receive(:warning_message).with(' WARN: a warning')
|
122
122
|
run_report
|
123
123
|
end
|
124
124
|
|
125
125
|
it "prints failures" do
|
126
|
-
expect(formatter).to receive(:failure_message).with(' a failure')
|
126
|
+
expect(formatter).to receive(:failure_message).with(' FAIL: a failure')
|
127
127
|
run_report
|
128
128
|
end
|
129
129
|
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
+
FINGERPRINT_DIR = File.expand_path(File.join('..', 'recog', 'xml'), __dir__)
|
2
|
+
|
3
|
+
# setup code coverage
|
1
4
|
require 'simplecov'
|
2
5
|
SimpleCov.start
|
3
6
|
|
7
|
+
require 'rspec'
|
4
8
|
# This file was generated by the `rspec --init` command. Conventionally, all
|
5
9
|
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
6
10
|
# The generated `.rspec` file contains `--require spec_helper` which will cause this
|
data.tar.gz.sig
ADDED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: recog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rapid7 Research
|
8
|
-
autorequire:
|
9
|
-
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
|
8
|
+
autorequire:
|
9
|
+
bindir: recog/bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
|
14
|
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
15
|
+
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
|
16
|
+
b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
|
17
|
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
|
18
|
+
cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
|
19
|
+
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
|
20
|
+
JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
|
21
|
+
mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
|
22
|
+
wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
|
23
|
+
VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
|
24
|
+
AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
|
25
|
+
AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
|
26
|
+
BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
|
27
|
+
pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
|
28
|
+
dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
|
29
|
+
fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
|
30
|
+
NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
|
31
|
+
H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
|
32
|
+
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
|
33
|
+
-----END CERTIFICATE-----
|
34
|
+
- |
|
35
|
+
-----BEGIN CERTIFICATE-----
|
36
|
+
MIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBl
|
37
|
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
38
|
+
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
|
39
|
+
b3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQG
|
40
|
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
|
41
|
+
cnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBT
|
42
|
+
aWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8O
|
43
|
+
Ea9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq
|
44
|
+
8JyGpdglrA55KDp+6dFn08b7KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRp
|
45
|
+
wsJS8hRniolF1C2ho+mILCCVrhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/p
|
46
|
+
fMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3
|
47
|
+
jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczye
|
48
|
+
n6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV
|
49
|
+
HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBr
|
50
|
+
MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH
|
51
|
+
MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ
|
52
|
+
RFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2lj
|
53
|
+
ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6
|
54
|
+
Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmww
|
55
|
+
TwYDVR0gBEgwRjA4BgpghkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
|
56
|
+
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsq
|
57
|
+
CqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgP
|
58
|
+
MA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHX
|
59
|
+
fgtg/cM9D8Svi/3vKt8gVTew4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddf
|
60
|
+
RHnzNhQGivecRk5c/5CxGwcOkRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8Al
|
61
|
+
EeKcFEehemhor5unXCBc2XGxDI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+
|
62
|
+
L3J+HNdJRZboWR3p+nRka7LrZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8
|
63
|
+
B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhsRDKyZqHnGKSaZFHv
|
64
|
+
-----END CERTIFICATE-----
|
65
|
+
- |
|
66
|
+
-----BEGIN CERTIFICATE-----
|
67
|
+
MIIFIzCCBAugAwIBAgIQCMePMbkSxvnPeJhYXIfaxzANBgkqhkiG9w0BAQsFADBy
|
68
|
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
69
|
+
d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQg
|
70
|
+
SUQgQ29kZSBTaWduaW5nIENBMB4XDTIwMTAwNzAwMDAwMFoXDTIzMTEwNjEyMDAw
|
71
|
+
MFowYDELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDU1hc3NhY2h1c2V0dHMxDzANBgNV
|
72
|
+
BAcTBkJvc3RvbjETMBEGA1UEChMKUmFwaWQ3IExMQzETMBEGA1UEAxMKUmFwaWQ3
|
73
|
+
IExMQzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNTz4zvAy7h/vQp
|
74
|
+
4dr1txXHlABAagkwYYwTMCtHs5PXsJITx/5SAjx5swuaLfze5kPBNF2YImvFlOXY
|
75
|
+
WaB+0PsOnXnaARsDZU683xFlj8izU6IN6VrAHzDLKFBzruJENrOJD/ikbEtbjO/q
|
76
|
+
gFbmS9J9v5ohG/pcRSS0t4ZPAwymf8eCp6QsvOKK/Aymp1RhlRaP8N6N5CIpkhz1
|
77
|
+
9p968iCE+DjOXVYxcWE+jE/7uB1dbgrXykNBujMSS3GULOvVEY28n6NCmrPlo23g
|
78
|
+
yRjYVJ2Vy14nBqnxDZ/yRIfWRVjWoT9TsAEbe9gY29oDpSCSs4wSmLQd5zGCpZ9h
|
79
|
+
r0HDFB8CAwEAAaOCAcUwggHBMB8GA1UdIwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZl
|
80
|
+
dQ5YMB0GA1UdDgQWBBTLBL7DTwumVEKtdCdpHVYMXOFeDzAOBgNVHQ8BAf8EBAMC
|
81
|
+
B4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYDVR0fBHAwbjA1oDOgMYYvaHR0cDov
|
82
|
+
L2NybDMuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC1jcy1nMS5jcmwwNaAzoDGG
|
83
|
+
L2h0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3Js
|
84
|
+
MEwGA1UdIARFMEMwNwYJYIZIAYb9bAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
|
85
|
+
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQQBMIGEBggrBgEFBQcBAQR4MHYw
|
86
|
+
JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcw
|
87
|
+
AoZCaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3Vy
|
88
|
+
ZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEL
|
89
|
+
BQADggEBAN+GL5/myPWg7oH4mVrG7/OhXF1MoYQF0ddaNiqaweEHMuKJBQCVZRbL
|
90
|
+
37HojoKXXv2yyRJBCeTB+ojrxX+5PdLVZa0ss7toWzJ2A1poPXZ1eZvm5xeFD32z
|
91
|
+
YQaTmmNWNI3PCDTyJ2PXUc+bDiNNwcZ7yc5o78UNRvp9Jxghya17Q76c9Ov9wvnv
|
92
|
+
dxxQKWGOQy0m4fBrkyjAyH9Djjn81RbQrqYgPuhd5nD0HjN3VUQLhQbIJrk9TVs0
|
93
|
+
EknWpNgVhohbot1lfVAMmIhdtOVaRVcQQixWPwprDj/ydB8ryDMDosIMcw+fkoXU
|
94
|
+
9GJsSaSRRYQ9UUkVL27b64okU8D48m8=
|
95
|
+
-----END CERTIFICATE-----
|
96
|
+
date: 2022-08-24 00:00:00.000000000 Z
|
12
97
|
dependencies:
|
13
98
|
- !ruby/object:Gem::Dependency
|
14
99
|
name: rspec
|
@@ -52,20 +137,6 @@ dependencies:
|
|
52
137
|
- - ">="
|
53
138
|
- !ruby/object:Gem::Version
|
54
139
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: cucumber
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
140
|
- !ruby/object:Gem::Dependency
|
70
141
|
name: aruba
|
71
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,92 +186,94 @@ description: Recog is a framework for identifying products, services, operating
|
|
115
186
|
email:
|
116
187
|
- research@rapid7.com
|
117
188
|
executables:
|
118
|
-
- recog_cleanup
|
119
|
-
- recog_export
|
120
189
|
- recog_match
|
121
|
-
- recog_standardize
|
122
|
-
- recog_verify
|
123
190
|
extensions: []
|
124
191
|
extra_rdoc_files: []
|
125
192
|
files:
|
126
|
-
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
127
|
-
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
128
|
-
- ".github/ISSUE_TEMPLATE/fingerprint_request.md"
|
129
|
-
- ".github/PULL_REQUEST_TEMPLATE"
|
130
|
-
- ".github/SECURITY.md"
|
131
|
-
- ".github/dependabot.yml"
|
132
|
-
- ".github/workflows/ci.yml"
|
133
|
-
- ".github/workflows/verify.yml"
|
134
|
-
- ".gitignore"
|
135
|
-
- ".rspec"
|
136
|
-
- ".ruby-gemset"
|
137
|
-
- ".ruby-version"
|
138
|
-
- ".snyk"
|
139
|
-
- ".travis.yml"
|
140
193
|
- ".yardopts"
|
141
|
-
- CONTRIBUTING.md
|
142
194
|
- COPYING
|
143
195
|
- Gemfile
|
144
196
|
- LICENSE
|
145
197
|
- README.md
|
146
198
|
- Rakefile
|
147
|
-
- bin/recog_cleanup
|
148
|
-
- bin/recog_export
|
149
|
-
- bin/recog_match
|
150
|
-
- bin/recog_standardize
|
151
|
-
- bin/recog_verify
|
152
|
-
- cpe-remap.yaml
|
153
|
-
- features/data/failing_banners_fingerprints.xml
|
154
|
-
- features/data/matching_banners_fingerprints.xml
|
155
|
-
- features/data/multiple_banners_fingerprints.xml
|
156
|
-
- features/data/no_tests.xml
|
157
|
-
- features/data/sample_banner.txt
|
158
|
-
- features/data/successful_tests.xml
|
159
|
-
- features/data/tests_with_failures.xml
|
160
|
-
- features/data/tests_with_warnings.xml
|
161
|
-
- features/match.feature
|
162
|
-
- features/support/aruba.rb
|
163
|
-
- features/support/env.rb
|
164
|
-
- features/verify.feature
|
165
|
-
- identifiers/README.md
|
166
|
-
- identifiers/fields.txt
|
167
|
-
- identifiers/hw_device.txt
|
168
|
-
- identifiers/hw_family.txt
|
169
|
-
- identifiers/hw_product.txt
|
170
|
-
- identifiers/os_architecture.txt
|
171
|
-
- identifiers/os_device.txt
|
172
|
-
- identifiers/os_family.txt
|
173
|
-
- identifiers/os_product.txt
|
174
|
-
- identifiers/service_family.txt
|
175
|
-
- identifiers/service_product.txt
|
176
|
-
- identifiers/vendor.txt
|
177
199
|
- lib/recog.rb
|
178
200
|
- lib/recog/db.rb
|
179
201
|
- lib/recog/db_manager.rb
|
180
202
|
- lib/recog/fingerprint.rb
|
181
203
|
- lib/recog/fingerprint/regexp_factory.rb
|
182
204
|
- lib/recog/fingerprint/test.rb
|
205
|
+
- lib/recog/fingerprint_parse_error.rb
|
183
206
|
- lib/recog/formatter.rb
|
184
207
|
- lib/recog/match_reporter.rb
|
185
208
|
- lib/recog/matcher.rb
|
186
209
|
- lib/recog/matcher_factory.rb
|
187
210
|
- lib/recog/nizer.rb
|
188
211
|
- lib/recog/verifier.rb
|
189
|
-
- lib/recog/verifier_factory.rb
|
190
212
|
- lib/recog/verify_reporter.rb
|
191
213
|
- lib/recog/version.rb
|
192
|
-
- misc/convert_mysql_err
|
193
|
-
- misc/order.xsl
|
194
214
|
- recog.gemspec
|
195
|
-
-
|
215
|
+
- recog/bin/recog_match
|
216
|
+
- recog/xml/apache_modules.xml
|
217
|
+
- recog/xml/apache_os.xml
|
218
|
+
- recog/xml/architecture.xml
|
219
|
+
- recog/xml/dhcp_vendor_class.xml
|
220
|
+
- recog/xml/dns_versionbind.xml
|
221
|
+
- recog/xml/favicons.xml
|
222
|
+
- recog/xml/fingerprints.xsd
|
223
|
+
- recog/xml/ftp_banners.xml
|
224
|
+
- recog/xml/h323_callresp.xml
|
225
|
+
- recog/xml/hp_pjl_id.xml
|
226
|
+
- recog/xml/html_title.xml
|
227
|
+
- recog/xml/http_cookies.xml
|
228
|
+
- recog/xml/http_servers.xml
|
229
|
+
- recog/xml/http_wwwauth.xml
|
230
|
+
- recog/xml/imap_banners.xml
|
231
|
+
- recog/xml/ldap_searchresult.xml
|
232
|
+
- recog/xml/mdns_device-info_txt.xml
|
233
|
+
- recog/xml/mdns_workstation_txt.xml
|
234
|
+
- recog/xml/mysql_banners.xml
|
235
|
+
- recog/xml/mysql_error.xml
|
236
|
+
- recog/xml/nntp_banners.xml
|
237
|
+
- recog/xml/ntp_banners.xml
|
238
|
+
- recog/xml/operating_system.xml
|
239
|
+
- recog/xml/pop_banners.xml
|
240
|
+
- recog/xml/rsh_resp.xml
|
241
|
+
- recog/xml/rtsp_servers.xml
|
242
|
+
- recog/xml/sip_banners.xml
|
243
|
+
- recog/xml/sip_user_agents.xml
|
244
|
+
- recog/xml/smb_native_lm.xml
|
245
|
+
- recog/xml/smb_native_os.xml
|
246
|
+
- recog/xml/smtp_banners.xml
|
247
|
+
- recog/xml/smtp_debug.xml
|
248
|
+
- recog/xml/smtp_ehlo.xml
|
249
|
+
- recog/xml/smtp_expn.xml
|
250
|
+
- recog/xml/smtp_help.xml
|
251
|
+
- recog/xml/smtp_mailfrom.xml
|
252
|
+
- recog/xml/smtp_noop.xml
|
253
|
+
- recog/xml/smtp_quit.xml
|
254
|
+
- recog/xml/smtp_rcptto.xml
|
255
|
+
- recog/xml/smtp_rset.xml
|
256
|
+
- recog/xml/smtp_turn.xml
|
257
|
+
- recog/xml/smtp_vrfy.xml
|
258
|
+
- recog/xml/snmp_sysdescr.xml
|
259
|
+
- recog/xml/snmp_sysobjid.xml
|
260
|
+
- recog/xml/ssh_banners.xml
|
261
|
+
- recog/xml/telnet_banners.xml
|
262
|
+
- recog/xml/tls_jarm.xml
|
263
|
+
- recog/xml/x11_banners.xml
|
264
|
+
- recog/xml/x509_issuers.xml
|
265
|
+
- recog/xml/x509_subjects.xml
|
196
266
|
- spec/data/best_os_match_1.yml
|
197
267
|
- spec/data/best_os_match_2.yml
|
198
268
|
- spec/data/best_service_match_1.yml
|
269
|
+
- spec/data/external_example_fingerprint.xml
|
270
|
+
- spec/data/external_example_fingerprint/hp_printer_ex_01.txt
|
271
|
+
- spec/data/external_example_fingerprint/hp_printer_ex_02.txt
|
272
|
+
- spec/data/external_example_illegal_path_fingerprint.xml
|
199
273
|
- spec/data/smb_native_os.txt
|
200
274
|
- spec/data/test_fingerprints.xml
|
201
275
|
- spec/data/verification_fingerprints.xml
|
202
276
|
- spec/data/whitespaced_fingerprint.xml
|
203
|
-
- spec/lib/fingerprint_self_test_spec.rb
|
204
277
|
- spec/lib/recog/db_spec.rb
|
205
278
|
- spec/lib/recog/fingerprint/regexp_factory_spec.rb
|
206
279
|
- spec/lib/recog/fingerprint_spec.rb
|
@@ -209,62 +282,10 @@ files:
|
|
209
282
|
- spec/lib/recog/nizer_spec.rb
|
210
283
|
- spec/lib/recog/verify_reporter_spec.rb
|
211
284
|
- spec/spec_helper.rb
|
212
|
-
|
213
|
-
- update_cpes.py
|
214
|
-
- xml/apache_modules.xml
|
215
|
-
- xml/apache_os.xml
|
216
|
-
- xml/architecture.xml
|
217
|
-
- xml/dhcp_vendor_class.xml
|
218
|
-
- xml/dns_versionbind.xml
|
219
|
-
- xml/favicons.xml
|
220
|
-
- xml/fingerprints.xsd
|
221
|
-
- xml/ftp_banners.xml
|
222
|
-
- xml/h323_callresp.xml
|
223
|
-
- xml/hp_pjl_id.xml
|
224
|
-
- xml/html_title.xml
|
225
|
-
- xml/http_cookies.xml
|
226
|
-
- xml/http_servers.xml
|
227
|
-
- xml/http_wwwauth.xml
|
228
|
-
- xml/imap_banners.xml
|
229
|
-
- xml/ldap_searchresult.xml
|
230
|
-
- xml/mdns_device-info_txt.xml
|
231
|
-
- xml/mdns_workstation_txt.xml
|
232
|
-
- xml/mysql_banners.xml
|
233
|
-
- xml/mysql_error.xml
|
234
|
-
- xml/nntp_banners.xml
|
235
|
-
- xml/ntp_banners.xml
|
236
|
-
- xml/operating_system.xml
|
237
|
-
- xml/pop_banners.xml
|
238
|
-
- xml/rsh_resp.xml
|
239
|
-
- xml/rtsp_servers.xml
|
240
|
-
- xml/sip_banners.xml
|
241
|
-
- xml/sip_user_agents.xml
|
242
|
-
- xml/smb_native_lm.xml
|
243
|
-
- xml/smb_native_os.xml
|
244
|
-
- xml/smtp_banners.xml
|
245
|
-
- xml/smtp_debug.xml
|
246
|
-
- xml/smtp_ehlo.xml
|
247
|
-
- xml/smtp_expn.xml
|
248
|
-
- xml/smtp_help.xml
|
249
|
-
- xml/smtp_mailfrom.xml
|
250
|
-
- xml/smtp_noop.xml
|
251
|
-
- xml/smtp_quit.xml
|
252
|
-
- xml/smtp_rcptto.xml
|
253
|
-
- xml/smtp_rset.xml
|
254
|
-
- xml/smtp_turn.xml
|
255
|
-
- xml/smtp_vrfy.xml
|
256
|
-
- xml/snmp_sysdescr.xml
|
257
|
-
- xml/snmp_sysobjid.xml
|
258
|
-
- xml/ssh_banners.xml
|
259
|
-
- xml/telnet_banners.xml
|
260
|
-
- xml/tls_jarm.xml
|
261
|
-
- xml/x11_banners.xml
|
262
|
-
- xml/x509_issuers.xml
|
263
|
-
- xml/x509_subjects.xml
|
264
|
-
homepage: https://www.github.com/rapid7/recog
|
285
|
+
homepage: https://www.github.com/rapid7/recog-ruby
|
265
286
|
licenses: []
|
266
287
|
metadata: {}
|
267
|
-
post_install_message:
|
288
|
+
post_install_message:
|
268
289
|
rdoc_options: []
|
269
290
|
require_paths:
|
270
291
|
- lib
|
@@ -279,31 +300,22 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
279
300
|
- !ruby/object:Gem::Version
|
280
301
|
version: '0'
|
281
302
|
requirements: []
|
282
|
-
rubygems_version: 3.
|
283
|
-
signing_key:
|
303
|
+
rubygems_version: 3.1.6
|
304
|
+
signing_key:
|
284
305
|
specification_version: 4
|
285
306
|
summary: Network service fingerprint database, classes, and utilities
|
286
307
|
test_files:
|
287
|
-
- features/data/failing_banners_fingerprints.xml
|
288
|
-
- features/data/matching_banners_fingerprints.xml
|
289
|
-
- features/data/multiple_banners_fingerprints.xml
|
290
|
-
- features/data/no_tests.xml
|
291
|
-
- features/data/sample_banner.txt
|
292
|
-
- features/data/successful_tests.xml
|
293
|
-
- features/data/tests_with_failures.xml
|
294
|
-
- features/data/tests_with_warnings.xml
|
295
|
-
- features/match.feature
|
296
|
-
- features/support/aruba.rb
|
297
|
-
- features/support/env.rb
|
298
|
-
- features/verify.feature
|
299
308
|
- spec/data/best_os_match_1.yml
|
300
309
|
- spec/data/best_os_match_2.yml
|
301
310
|
- spec/data/best_service_match_1.yml
|
311
|
+
- spec/data/external_example_fingerprint.xml
|
312
|
+
- spec/data/external_example_fingerprint/hp_printer_ex_01.txt
|
313
|
+
- spec/data/external_example_fingerprint/hp_printer_ex_02.txt
|
314
|
+
- spec/data/external_example_illegal_path_fingerprint.xml
|
302
315
|
- spec/data/smb_native_os.txt
|
303
316
|
- spec/data/test_fingerprints.xml
|
304
317
|
- spec/data/verification_fingerprints.xml
|
305
318
|
- spec/data/whitespaced_fingerprint.xml
|
306
|
-
- spec/lib/fingerprint_self_test_spec.rb
|
307
319
|
- spec/lib/recog/db_spec.rb
|
308
320
|
- spec/lib/recog/fingerprint/regexp_factory_spec.rb
|
309
321
|
- spec/lib/recog/fingerprint_spec.rb
|
metadata.gz.sig
ADDED
Binary file
|
@@ -1,37 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: Bug report
|
3
|
-
about: Create a report to help us improve
|
4
|
-
|
5
|
-
---
|
6
|
-
|
7
|
-
**Describe the bug**
|
8
|
-
A clear and concise description of what the bug is.
|
9
|
-
|
10
|
-
**To Reproduce**
|
11
|
-
Steps to reproduce the behavior:
|
12
|
-
|
13
|
-
1. Do this...
|
14
|
-
2. Do that...
|
15
|
-
3. Then something happens...
|
16
|
-
|
17
|
-
Code that reproduces the behavior: <!-- This is optional -->
|
18
|
-
```ruby
|
19
|
-
# paste code here, or create a gist, or link to public code snippet
|
20
|
-
```
|
21
|
-
|
22
|
-
Matcher that reproduces the behavior: <!-- This is optional -->
|
23
|
-
```xml
|
24
|
-
<!-- paste matcher xml here, or create a gist, or link to public code snippet -->
|
25
|
-
```
|
26
|
-
|
27
|
-
**Expected behavior**
|
28
|
-
A clear and concise description of what you expected to happen.
|
29
|
-
|
30
|
-
|
31
|
-
**Environment (please complete the following information):**
|
32
|
-
- Operating System:
|
33
|
-
- Ruby Version:
|
34
|
-
- Recog Version:
|
35
|
-
|
36
|
-
**Additional context**
|
37
|
-
Add any other context about the problem here.
|
@@ -1,17 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: Feature request
|
3
|
-
about: Suggest an idea for this project
|
4
|
-
|
5
|
-
---
|
6
|
-
|
7
|
-
**Is your feature request related to a problem? Please describe.**
|
8
|
-
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
9
|
-
|
10
|
-
**Describe the solution you'd like**
|
11
|
-
A clear and concise description of what you want to happen.
|
12
|
-
|
13
|
-
**Describe alternatives you've considered**
|
14
|
-
A clear and concise description of any alternative solutions or features you've considered.
|
15
|
-
|
16
|
-
**Additional context**
|
17
|
-
Add any other context or screenshots about the feature request here.
|
@@ -1,27 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: Fingerprint request
|
3
|
-
about: Request new fingerprint coverage
|
4
|
-
|
5
|
-
---
|
6
|
-
|
7
|
-
**Request for new fingerprint(s) for a product**
|
8
|
-
Briefly describe the product to be fingerprinted, including vendor and version information.
|
9
|
-
<!-- Include links to relevant public documentation from the vendor or other sources, if available -->
|
10
|
-
|
11
|
-
**Provide details about the product**
|
12
|
-
What protocol(s) can be used to retrieve identifiable information about the product?
|
13
|
-
<!-- Examples: Telnet, SSH, SNMP, SMTP, HTTP(S), Vendor Proprietary Protocol -->
|
14
|
-
|
15
|
-
What information can be collected on each protocol?
|
16
|
-
<!-- Example: HTTP Server banner: nginx/0.8.53 -->
|
17
|
-
|
18
|
-
What request, command, and/or payload can be used to retrieve information on each protocol?
|
19
|
-
<!-- Use code fences like the below example to preserve formatting -->
|
20
|
-
```
|
21
|
-
HTTP HEAD /
|
22
|
-
|
23
|
-
HTTP GET /info.php
|
24
|
-
```
|
25
|
-
|
26
|
-
**Example banner(s) with specific version info**
|
27
|
-
<!-- Paste raw text here, using code fences to preserve formatting if needed-->
|
@@ -1,24 +0,0 @@
|
|
1
|
-
## Description
|
2
|
-
A detailed description of your changes.
|
3
|
-
|
4
|
-
|
5
|
-
## Motivation and Context
|
6
|
-
Explanation of why these changes are being proposed, including any links to other relevant issues or pull requests.
|
7
|
-
|
8
|
-
|
9
|
-
## How Has This Been Tested?
|
10
|
-
A clear and concise description of your changes were tested.
|
11
|
-
|
12
|
-
|
13
|
-
## Types of changes
|
14
|
-
<!--- What types of changes does your code introduce? Remove any that do not apply: -->
|
15
|
-
- Bug fix (non-breaking change which fixes an issue)
|
16
|
-
- New feature (non-breaking change which adds functionality)
|
17
|
-
- Breaking change (fix or feature that would cause existing functionality to change)
|
18
|
-
|
19
|
-
|
20
|
-
## Checklist:
|
21
|
-
<!--- After submitting the PR, check all of the boxes that apply. -->
|
22
|
-
- [ ] I have updated the documentation accordingly (or changes are not required).
|
23
|
-
- [ ] I have added tests to cover my changes (or new tests are not required).
|
24
|
-
- [ ] All new and existing tests passed.
|