recog 0.02 → 1.0.0
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/.gitignore +6 -0
- data/.rspec +2 -1
- data/.travis.yml +5 -0
- data/.yardopts +1 -0
- data/Gemfile +3 -1
- data/README.md +12 -12
- data/Rakefile +22 -0
- data/bin/recog_verify.rb +1 -1
- data/features/match.feature +2 -2
- data/features/verify.feature +10 -7
- data/features/xml/no_tests.xml +0 -50
- data/features/xml/successful_tests.xml +7 -22
- data/features/xml/tests_with_failures.xml +10 -0
- data/features/xml/tests_with_warnings.xml +7 -0
- data/lib/recog/db.rb +26 -10
- data/lib/recog/db_manager.rb +1 -1
- data/lib/recog/fingerprint.rb +118 -34
- data/lib/recog/fingerprint/regexp_factory.rb +39 -0
- data/lib/recog/fingerprint/test.rb +13 -0
- data/lib/recog/matcher.rb +3 -3
- data/lib/recog/nizer.rb +16 -23
- data/lib/recog/verifier.rb +10 -25
- data/lib/recog/verifier_factory.rb +1 -1
- data/lib/recog/verify_reporter.rb +1 -1
- data/lib/recog/version.rb +1 -1
- data/recog.gemspec +12 -3
- data/spec/data/test_fingerprints.xml +12 -0
- data/spec/lib/fingerprint_self_test_spec.rb +8 -4
- data/spec/lib/{db_spec.rb → recog/db_spec.rb} +19 -7
- data/spec/lib/recog/fingerprint/regexp_factory.rb +61 -0
- data/spec/lib/recog/fingerprint_spec.rb +5 -0
- data/spec/lib/{formatter_spec.rb → recog/formatter_spec.rb} +1 -1
- data/spec/lib/{match_reporter_spec.rb → recog/match_reporter_spec.rb} +10 -9
- data/spec/lib/{nizer_spec.rb → recog/nizer_spec.rb} +5 -5
- data/spec/lib/{verify_reporter_spec.rb → recog/verify_reporter_spec.rb} +8 -7
- data/spec/spec_helper.rb +82 -0
- data/xml/apache_os.xml +48 -2
- data/xml/http_servers.xml +38 -6
- data/xml/ntp_banners.xml +4 -3
- data/xml/smb_native_os.xml +32 -32
- data/xml/smtp_expn.xml +1 -0
- data/xml/smtp_help.xml +2 -1
- data/xml/snmp_sysdescr.xml +164 -24
- data/xml/ssh_banners.xml +7 -3
- metadata +56 -8
- data/Gemfile.lock +0 -42
@@ -1,11 +1,11 @@
|
|
1
|
-
|
1
|
+
require 'recog/match_reporter'
|
2
2
|
|
3
3
|
describe Recog::MatchReporter do
|
4
4
|
let(:options) { double(detail: false) }
|
5
5
|
let(:formatter) { double('formatter').as_null_object }
|
6
6
|
subject { Recog::MatchReporter.new(options, formatter) }
|
7
7
|
|
8
|
-
def run_report
|
8
|
+
def run_report
|
9
9
|
subject.report do
|
10
10
|
subject.increment_line_count
|
11
11
|
subject.match 'a match'
|
@@ -23,7 +23,7 @@ describe Recog::MatchReporter do
|
|
23
23
|
expect(formatter).to receive(:failure_message).with('a failure')
|
24
24
|
run_report
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
context "with detail" do
|
28
28
|
subject { Recog::MatchReporter.new(double(detail: true), formatter) }
|
29
29
|
|
@@ -35,7 +35,7 @@ describe Recog::MatchReporter do
|
|
35
35
|
it "prints summary" do
|
36
36
|
expect(formatter).to receive(:failure_message).with("SUMMARY: 1 matches and 1 failures")
|
37
37
|
run_report
|
38
|
-
end
|
38
|
+
end
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
@@ -63,27 +63,28 @@ describe Recog::MatchReporter do
|
|
63
63
|
|
64
64
|
describe "#stop?" do
|
65
65
|
context "with a failure limit" do
|
66
|
+
|
67
|
+
let(:options) { double(fail_fast: true, stop_after: 3, detail: false) }
|
66
68
|
before do
|
67
|
-
options.stub(fail_fast: true, stop_after: 3)
|
68
69
|
subject.failure 'first'
|
69
70
|
subject.failure 'second'
|
70
71
|
end
|
71
72
|
|
72
73
|
it "returns true when the limit is reached " do
|
73
74
|
subject.failure 'third'
|
74
|
-
expect(subject.stop?).to
|
75
|
+
expect(subject.stop?).to be true
|
75
76
|
end
|
76
77
|
|
77
78
|
it "returns false when under the limit" do
|
78
|
-
expect(subject.stop?).to
|
79
|
+
expect(subject.stop?).to be false
|
79
80
|
end
|
80
81
|
end
|
81
82
|
|
82
83
|
context "with no failure limit" do
|
83
|
-
|
84
|
+
let(:options) { double(fail_fast: false, detail: false) }
|
84
85
|
|
85
86
|
it "return false" do
|
86
|
-
expect(subject.stop?).to
|
87
|
+
expect(subject.stop?).to be false
|
87
88
|
end
|
88
89
|
end
|
89
90
|
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
|
1
|
+
require 'recog'
|
2
2
|
require 'yaml'
|
3
3
|
|
4
4
|
describe Recog::Nizer do
|
5
|
-
subject {
|
5
|
+
subject { described_class }
|
6
6
|
|
7
|
-
describe "
|
7
|
+
describe ".match" do
|
8
8
|
File.readlines(File.expand_path(File.join('spec', 'data', 'smb_native_os.txt'))).each do |line|
|
9
9
|
data = line.strip
|
10
10
|
context "with smb_native_os:#{data}" do
|
@@ -32,7 +32,7 @@ describe Recog::Nizer do
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
describe "
|
35
|
+
describe ".best_os_match" do
|
36
36
|
|
37
37
|
# Demonstrates how this method picks up additional attributes from other members of the winning
|
38
38
|
# os.product match group and applies them to the result.
|
@@ -90,7 +90,7 @@ describe Recog::Nizer do
|
|
90
90
|
|
91
91
|
end
|
92
92
|
|
93
|
-
describe "
|
93
|
+
describe ".best_service_match" do
|
94
94
|
|
95
95
|
# Demonstrates how this method picks up additional attributes from other members of the winning
|
96
96
|
# service.product match group and applies them to the result.
|
@@ -1,15 +1,16 @@
|
|
1
|
-
|
1
|
+
require 'recog/verify_reporter'
|
2
2
|
|
3
3
|
describe Recog::VerifyReporter do
|
4
4
|
let(:formatter) { double('formatter').as_null_object }
|
5
|
-
let(:fingerprint) { double(name: 'a name', tests:
|
5
|
+
let(:fingerprint) { double(name: 'a name', tests: tests) }
|
6
|
+
let(:tests) { [double, double, double] }
|
6
7
|
let(:summary_line) do
|
7
8
|
"SUMMARY: Test completed with 1 successful, 1 warnings, and 1 failures"
|
8
9
|
end
|
9
10
|
|
10
11
|
subject { Recog::VerifyReporter.new(double(detail: false), formatter) }
|
11
12
|
|
12
|
-
def run_report
|
13
|
+
def run_report
|
13
14
|
subject.report(1) do
|
14
15
|
subject.print_name fingerprint
|
15
16
|
subject.success 'passed'
|
@@ -32,8 +33,8 @@ describe Recog::VerifyReporter do
|
|
32
33
|
it "prints summary" do
|
33
34
|
expect(formatter).to receive(:failure_message).with(summary_line)
|
34
35
|
run_report
|
35
|
-
end
|
36
|
-
|
36
|
+
end
|
37
|
+
|
37
38
|
context "with detail" do
|
38
39
|
subject { Recog::VerifyReporter.new(double(detail: true), formatter) }
|
39
40
|
|
@@ -65,10 +66,10 @@ describe Recog::VerifyReporter do
|
|
65
66
|
it "prints summary" do
|
66
67
|
expect(formatter).to receive(:failure_message).with(summary_line)
|
67
68
|
run_report
|
68
|
-
end
|
69
|
+
end
|
69
70
|
|
70
71
|
context "with no fingerprint tests" do
|
71
|
-
|
72
|
+
let(:tests) { [] }
|
72
73
|
|
73
74
|
it "does not print the name" do
|
74
75
|
expect(formatter).not_to receive(:status_message).with("\na name")
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
SimpleCov.start
|
3
|
+
|
4
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
5
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
6
|
+
# The generated `.rspec` file contains `--require spec_helper` which will cause this
|
7
|
+
# file to always be loaded, without a need to explicitly require it in any files.
|
8
|
+
#
|
9
|
+
# Given that it is always loaded, you are encouraged to keep this file as
|
10
|
+
# light-weight as possible. Requiring heavyweight dependencies from this file
|
11
|
+
# will add to the boot time of your test suite on EVERY test run, even for an
|
12
|
+
# individual file that may not need all of that loaded. Instead, make a
|
13
|
+
# separate helper file that requires this one and then use it only in the specs
|
14
|
+
# that actually need it.
|
15
|
+
#
|
16
|
+
# The `.rspec` file also contains a few flags that are not defaults but that
|
17
|
+
# users commonly want.
|
18
|
+
#
|
19
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
20
|
+
RSpec.configure do |config|
|
21
|
+
|
22
|
+
# Run specs in random order to surface order dependencies. If you find an
|
23
|
+
# order dependency and want to debug it, you can fix the order by providing
|
24
|
+
# the seed, which is printed after each run.
|
25
|
+
# --seed 1234
|
26
|
+
config.order = :random
|
27
|
+
|
28
|
+
# Seed global randomization in this process using the `--seed` CLI option.
|
29
|
+
# Setting this allows you to use `--seed` to deterministically reproduce
|
30
|
+
# test failures related to randomization by passing the same `--seed` value
|
31
|
+
# as the one that triggered the failure.
|
32
|
+
Kernel.srand config.seed
|
33
|
+
|
34
|
+
# Many RSpec users commonly either run the entire suite or an individual
|
35
|
+
# file, and it's useful to allow more verbose output when running an
|
36
|
+
# individual spec file.
|
37
|
+
if config.files_to_run.one?
|
38
|
+
# Use the documentation formatter for detailed output,
|
39
|
+
# unless a formatter has already been configured
|
40
|
+
# (e.g. via a command-line flag).
|
41
|
+
config.default_formatter = 'doc'
|
42
|
+
end
|
43
|
+
|
44
|
+
# The settings below are suggested to provide a good initial experience
|
45
|
+
# with RSpec, but feel free to customize to your heart's content.
|
46
|
+
=begin
|
47
|
+
# These two settings work together to allow you to limit a spec run
|
48
|
+
# to individual examples or groups you care about by tagging them with
|
49
|
+
# `:focus` metadata. When nothing is tagged with `:focus`, all examples
|
50
|
+
# get run.
|
51
|
+
config.filter_run :focus
|
52
|
+
config.run_all_when_everything_filtered = true
|
53
|
+
|
54
|
+
# Print the 10 slowest examples and example groups at the
|
55
|
+
# end of the spec run, to help surface which specs are running
|
56
|
+
# particularly slow.
|
57
|
+
config.profile_examples = 10
|
58
|
+
|
59
|
+
# rspec-expectations config goes here. You can use an alternate
|
60
|
+
# assertion/expectation library such as wrong or the stdlib/minitest
|
61
|
+
# assertions if you prefer.
|
62
|
+
config.expect_with :rspec do |expectations|
|
63
|
+
# Enable only the newer, non-monkey-patching expect syntax.
|
64
|
+
# For more details, see:
|
65
|
+
# - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
|
66
|
+
expectations.syntax = :expect
|
67
|
+
end
|
68
|
+
|
69
|
+
# rspec-mocks config goes here. You can use an alternate test double
|
70
|
+
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
71
|
+
config.mock_with :rspec do |mocks|
|
72
|
+
# Enable only the newer, non-monkey-patching expect syntax.
|
73
|
+
# For more details, see:
|
74
|
+
# - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
75
|
+
mocks.syntax = :expect
|
76
|
+
|
77
|
+
# Prevents you from mocking or stubbing a method that does not exist on
|
78
|
+
# a real object. This is generally recommended.
|
79
|
+
mocks.verify_partial_doubles = true
|
80
|
+
end
|
81
|
+
=end
|
82
|
+
end
|
data/xml/apache_os.xml
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
<?xml version="1.0"?>
|
2
2
|
<!--
|
3
|
-
When an HTTP server is fingerprinted as Apache, a
|
4
|
-
on the server headers
|
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.
|
5
6
|
-->
|
6
7
|
|
7
8
|
<fingerprints matches="apache_os">
|
@@ -110,6 +111,51 @@ on the server headers to extract OS information.
|
|
110
111
|
<param pos="0" name="os.product" value="Cobalt RaQ"/>
|
111
112
|
</fingerprint>
|
112
113
|
|
114
|
+
<fingerprint pattern="^Apache\/2\.2\.11.*\(Fedora\).*">
|
115
|
+
<description>Red Hat Fedora 11</description>
|
116
|
+
<param pos="0" name="os.vendor" value="Red Hat"/>
|
117
|
+
<param pos="0" name="os.device" value="General"/>
|
118
|
+
<param pos="0" name="os.family" value="Linux"/>
|
119
|
+
<param pos="0" name="os.product" value="Fedora Core Linux"/>
|
120
|
+
<param pos="0" name="os.version" value="11"/>
|
121
|
+
</fingerprint>
|
122
|
+
|
123
|
+
<fingerprint pattern="^Apache\/2\.2\.15.*\(Fedora\).*">
|
124
|
+
<description>Red Hat Fedora 13</description>
|
125
|
+
<param pos="0" name="os.vendor" value="Red Hat"/>
|
126
|
+
<param pos="0" name="os.device" value="General"/>
|
127
|
+
<param pos="0" name="os.family" value="Linux"/>
|
128
|
+
<param pos="0" name="os.product" value="Fedora Core Linux"/>
|
129
|
+
<param pos="0" name="os.version" value="13"/>
|
130
|
+
</fingerprint>
|
131
|
+
|
132
|
+
<fingerprint pattern="^Apache\/2\.2\.16.*\(Fedora\).*">
|
133
|
+
<description>Red Hat Fedora 14</description>
|
134
|
+
<param pos="0" name="os.vendor" value="Red Hat"/>
|
135
|
+
<param pos="0" name="os.device" value="General"/>
|
136
|
+
<param pos="0" name="os.family" value="Linux"/>
|
137
|
+
<param pos="0" name="os.product" value="Fedora Core Linux"/>
|
138
|
+
<param pos="0" name="os.version" value="14"/>
|
139
|
+
</fingerprint>
|
140
|
+
|
141
|
+
<fingerprint pattern="^Apache\/2\.2\.23.*\(Fedora\).*">
|
142
|
+
<description>Red Hat Fedora 17</description>
|
143
|
+
<param pos="0" name="os.vendor" value="Red Hat"/>
|
144
|
+
<param pos="0" name="os.device" value="General"/>
|
145
|
+
<param pos="0" name="os.family" value="Linux"/>
|
146
|
+
<param pos="0" name="os.product" value="Fedora Core Linux"/>
|
147
|
+
<param pos="0" name="os.version" value="17"/>
|
148
|
+
</fingerprint>
|
149
|
+
|
150
|
+
<fingerprint pattern="^Apache\/2\.4\.3.*\(Fedora\).*">
|
151
|
+
<description>Red Hat Fedora 18</description>
|
152
|
+
<param pos="0" name="os.vendor" value="Red Hat"/>
|
153
|
+
<param pos="0" name="os.device" value="General"/>
|
154
|
+
<param pos="0" name="os.family" value="Linux"/>
|
155
|
+
<param pos="0" name="os.product" value="Fedora Core Linux"/>
|
156
|
+
<param pos="0" name="os.version" value="18"/>
|
157
|
+
</fingerprint>
|
158
|
+
|
113
159
|
<fingerprint pattern=".*\(Fedora\).*">
|
114
160
|
<description>Red Hat Fedora</description>
|
115
161
|
<param pos="0" name="os.vendor" value="Red Hat"/>
|
data/xml/http_servers.xml
CHANGED
@@ -1588,6 +1588,15 @@
|
|
1588
1588
|
<param pos="0" name="os.device" value="General"/>
|
1589
1589
|
<param pos="0" name="os.family" value="Windows"/>
|
1590
1590
|
<param pos="0" name="os.product" value="Windows Server 2012 R2"/>
|
1591
|
+
</fingerprint>
|
1592
|
+
|
1593
|
+
<fingerprint pattern="^Microsoft-IIS/([\d\.]+)$">
|
1594
|
+
<example>Microsoft-IIS/9.0</example>
|
1595
|
+
<description>Microsoft IIS new, unknown version</description>
|
1596
|
+
<param pos="0" name="service.vendor" value="Microsoft"/>
|
1597
|
+
<param pos="0" name="service.product" value="IIS"/>
|
1598
|
+
<param pos="0" name="service.family" value="IIS"/>
|
1599
|
+
<param pos="1" name="service.version"/>
|
1591
1600
|
</fingerprint>
|
1592
1601
|
|
1593
1602
|
<fingerprint pattern="^Microsoft-IIS$">
|
@@ -1868,6 +1877,7 @@
|
|
1868
1877
|
</fingerprint>
|
1869
1878
|
|
1870
1879
|
<fingerprint pattern = "^com.hp.openview.Coda (\d\.\d.\d)$">
|
1880
|
+
<description>HP Openview Coda</description>
|
1871
1881
|
<example>com.hp.openview.Coda 0.0.1</example>
|
1872
1882
|
<param pos="0" name="service.vendor" value="HP"/>
|
1873
1883
|
<param pos="0" name="service.family" value="OpenView"/>
|
@@ -1876,6 +1886,7 @@
|
|
1876
1886
|
</fingerprint>
|
1877
1887
|
|
1878
1888
|
<fingerprint pattern = "^com.hp.openview.bbc.LLBServer (\d\.\d.\d\.\d)$">
|
1889
|
+
<description>HP Openview LLBServer</description>
|
1879
1890
|
<example>com.hp.openview.bbc.LLBServer 2.6.8.1</example>
|
1880
1891
|
<param pos="0" name="service.vendor" value="HP"/>
|
1881
1892
|
<param pos="0" name="service.family" value="OpenView"/>
|
@@ -2183,6 +2194,23 @@
|
|
2183
2194
|
<param pos="0" name="service.family" value="Integrated Lights Out Manager"/>
|
2184
2195
|
<param pos="0" name="hw.vendor" value="Sun"/>
|
2185
2196
|
<param pos="0" name="hw.family" value="Sun Fire"/>
|
2197
|
+
</fingerprint>
|
2198
|
+
|
2199
|
+
<fingerprint pattern="^HP-iLO-Server/(?:[\S]+)">
|
2200
|
+
<example>HP-iLO-Server/1.30</example>
|
2201
|
+
<description>
|
2202
|
+
HP Integrated Lights Out Manager (iLO). The version in the Server
|
2203
|
+
header is the firmware version and is not currently used. Furthermore,
|
2204
|
+
this header value only seems to be present in iLO 4
|
2205
|
+
</description>
|
2206
|
+
<param pos="0" name="service.vendor" value="HP"/>
|
2207
|
+
<param pos="0" name="service.product" value="iLO"/>
|
2208
|
+
<param pos="0" name="service.family" value="iLO"/>
|
2209
|
+
<param pos="0" name="hw.vendor" value="HP"/>
|
2210
|
+
<param pos="0" name="os.vendor" value="HP"/>
|
2211
|
+
<param pos="0" name="os.product" value="iLO"/>
|
2212
|
+
<param pos="0" name="os.family" value="iLO"/>
|
2213
|
+
<param pos="0" name="os.device" value="Lights Out Management"/>
|
2186
2214
|
</fingerprint>
|
2187
2215
|
|
2188
2216
|
<!--
|
@@ -2192,6 +2220,7 @@
|
|
2192
2220
|
-->
|
2193
2221
|
|
2194
2222
|
<fingerprint pattern="^Jetty/(\d+\.[\d.]+)(?: \((.*)\))?$">
|
2223
|
+
<description>Jetty</description>
|
2195
2224
|
<example>Jetty/4.0.1 (SunOS 5.8 sparc)</example>
|
2196
2225
|
<example>Jetty/4.2.23 (SunOS/5.9 sparc java/1.4.2_04)</example>
|
2197
2226
|
<example>Jetty/5.1.10 (Linux/2.6.12 i386 java/1.5.0_05)</example>
|
@@ -2203,8 +2232,9 @@
|
|
2203
2232
|
<param pos="2" name="jetty.info"/>
|
2204
2233
|
</fingerprint>
|
2205
2234
|
|
2206
|
-
<!-- Catch-all for Jetty
|
2235
|
+
<!-- Catch-all for Jetty versions using the Jetty/version format. -->
|
2207
2236
|
<fingerprint pattern="^Jetty/(\S+) \(.*$">
|
2237
|
+
<description>Jetty</description>
|
2208
2238
|
<example>Jetty/4.2.x (VxWorks/WIND version 2.9 ppc java/1.1-rr-std-b12)</example>
|
2209
2239
|
<param pos="0" name="service.vendor" value="Mort Bay"/>
|
2210
2240
|
<param pos="0" name="service.product" value="Jetty"/>
|
@@ -2269,6 +2299,7 @@
|
|
2269
2299
|
<example>nginx/0.8.53</example>
|
2270
2300
|
<param pos="0" name="service.product" value="nginx"/>
|
2271
2301
|
<param pos="0" name="service.family" value="nginx"/>
|
2302
|
+
<param pos="0" name="service.vendor" value="nginx"/>
|
2272
2303
|
<param pos="1" name="service.version"/>
|
2273
2304
|
</fingerprint>
|
2274
2305
|
|
@@ -2277,6 +2308,7 @@
|
|
2277
2308
|
<example>nginx</example>
|
2278
2309
|
<param pos="0" name="service.product" value="nginx"/>
|
2279
2310
|
<param pos="0" name="service.family" value="nginx"/>
|
2311
|
+
<param pos="0" name="service.vendor" value="nginx"/>
|
2280
2312
|
</fingerprint>
|
2281
2313
|
|
2282
2314
|
<fingerprint pattern="^Lotus(?:-Domino)?(?:/|/0|/Release)?$">
|
@@ -3231,7 +3263,7 @@
|
|
3231
3263
|
<param pos="0" name="service.product" value="Cross Web Server"/>
|
3232
3264
|
<param pos="0" name="os.vendor" value="HiSilicon"/>
|
3233
3265
|
<param pos="0" name="os.device" value="DVR"/>
|
3234
|
-
</fingerprint>
|
3266
|
+
</fingerprint>
|
3235
3267
|
|
3236
3268
|
<!-- Hikvision is OEMd by a number of DVR manufacturers -->
|
3237
3269
|
<fingerprint pattern="^(Hikvision|DVRDVS)-Webs$">
|
@@ -3242,7 +3274,7 @@
|
|
3242
3274
|
<param pos="0" name="service.product" value="Hikvision Web Server"/>
|
3243
3275
|
<param pos="0" name="os.vendor" value="Hikvision"/>
|
3244
3276
|
<param pos="0" name="os.device" value="DVR"/>
|
3245
|
-
</fingerprint>
|
3277
|
+
</fingerprint>
|
3246
3278
|
|
3247
3279
|
<fingerprint pattern="^NET-DK[/ ](\d+\.\d+)$">
|
3248
3280
|
<description>Web server found on ARRIS cable modems</description>
|
@@ -3252,7 +3284,7 @@
|
|
3252
3284
|
<param pos="0" name="service.product" value="Net-DK Web Server"/>
|
3253
3285
|
<param pos="0" name="os.vendor" value="ARRIS"/>
|
3254
3286
|
<param pos="0" name="os.device" value="Cable Modem"/>
|
3255
|
-
</fingerprint>
|
3287
|
+
</fingerprint>
|
3256
3288
|
|
3257
3289
|
|
3258
3290
|
<!-- junit says,
|
@@ -3286,7 +3318,7 @@
|
|
3286
3318
|
<param pos="0" name="service.vendor" value="Akamai"/>
|
3287
3319
|
<param pos="0" name="service.product" value="GHost"/>
|
3288
3320
|
<param pos="0" name="os.vendor" value="Akamai"/>
|
3289
|
-
<param pos="0" name="os.device" value="Web proxy"/>
|
3321
|
+
<param pos="0" name="os.device" value="Web proxy"/>
|
3290
3322
|
</fingerprint>
|
3291
3323
|
|
3292
3324
|
<fingerprint pattern="^gws$">
|
@@ -3294,7 +3326,7 @@
|
|
3294
3326
|
<description>Google Web Services</description>
|
3295
3327
|
<param pos="0" name="service.vendor" value="Google"/>
|
3296
3328
|
<param pos="0" name="service.product" value="Google Web Services"/>
|
3297
|
-
<param pos="0" name="service.family" value="Google Web Server"/>
|
3329
|
+
<param pos="0" name="service.family" value="Google Web Server"/>
|
3298
3330
|
</fingerprint>
|
3299
3331
|
|
3300
3332
|
<fingerprint pattern="^GFE/((?:\d+\.)+\d+)$">
|
data/xml/ntp_banners.xml
CHANGED
@@ -198,8 +198,8 @@ NTP "banners", taken from a readvar response
|
|
198
198
|
processor="i386", system="JUNOS9.3R4.4", leap=11, stratum=16,
|
199
199
|
</example>
|
200
200
|
<param pos="0" name="os.vendor" value="Juniper"/>
|
201
|
-
<param pos="0" name="os.family" value="
|
202
|
-
<param pos="0" name="os.product" value="
|
201
|
+
<param pos="0" name="os.family" value="Junos"/>
|
202
|
+
<param pos="0" name="os.product" value="Junos OS"/>
|
203
203
|
<param pos="0" name="service.family" value="NTP"/>
|
204
204
|
<param pos="0" name="service.product" value="NTP"/>
|
205
205
|
<param pos="1" name="service.version"/>
|
@@ -352,13 +352,14 @@ NTP "banners", taken from a readvar response
|
|
352
352
|
<param pos="0" name="os.family" value="HP-UX"/>
|
353
353
|
<param pos="0" name="os.product" value="HP-UX"/>
|
354
354
|
</fingerprint>
|
355
|
-
<fingerprint pattern="system="UNIX"" flags="REG_ICASE"
|
355
|
+
<fingerprint pattern="system="UNIX"" flags="REG_ICASE">
|
356
356
|
<description>Generic UNIX</description>
|
357
357
|
<example>
|
358
358
|
version="4", processor="unknown", system="UNIX", leap=0, stratum=2,
|
359
359
|
</example>
|
360
360
|
<param pos="0" name="os.family" value="UNIX"/>
|
361
361
|
<param pos="0" name="os.product" value="UNIX"/>
|
362
|
+
<param pos="0" name="os.certainty" value="0.5"/>
|
362
363
|
</fingerprint>
|
363
364
|
<fingerprint pattern="system="VxWorks"" flags="REG_ICASE">
|
364
365
|
<description>Generic VxWorks</description>
|