recog 0.02 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|