recog 2.1.0 → 2.1.1
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/lib/recog/fingerprint.rb +5 -2
- data/lib/recog/version.rb +1 -1
- data/spec/lib/fingerprint_self_test_spec.rb +17 -0
- data/xml/ftp_banners.xml +3 -4
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3dae72d67109cf15c20e6558c44ad5f738c87804
|
4
|
+
data.tar.gz: 8cc293a78015095182401d7683cb6af9e6ebdb9e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cedc1ee373b890001b36169dad53ecd92566c2ee307e66d28d46c094ece296e73527a7b6d464182ad4ecdb665d35c55b7d5a129646c4d3eedaeeafdc44892f1b
|
7
|
+
data.tar.gz: 58f1a2f88709b31d1edc8c028f6848ac581f4c597c11d137eff2538b4d43ee65189c5c36ffdc7848077e2f32662618384d7b172195f8a9e34fd846de541c4bce
|
data/lib/recog/fingerprint.rb
CHANGED
@@ -108,8 +108,11 @@ class Fingerprint
|
|
108
108
|
return if params.empty?
|
109
109
|
params.each do |param_name, pos_value|
|
110
110
|
pos, value = pos_value
|
111
|
-
|
112
|
-
|
111
|
+
if pos > 0 && !value.to_s.empty?
|
112
|
+
yield :fail, "'#{@name}'s #{param_name} is a non-zero pos but specifies a value of '#{value}'"
|
113
|
+
elsif pos == 0 && value.to_s.empty?
|
114
|
+
yield :fail, "'#{@name}'s #{param_name} is not a capture (pos=0) but doesn't specify a value"
|
115
|
+
end
|
113
116
|
end
|
114
117
|
end
|
115
118
|
|
data/lib/recog/version.rb
CHANGED
@@ -31,6 +31,23 @@ describe Recog::DB do
|
|
31
31
|
db.fingerprints.each_index do |i|
|
32
32
|
fp = db.fingerprints[i]
|
33
33
|
|
34
|
+
context "#{fp.name}" do
|
35
|
+
fp.params.each do |param_name, pos_value|
|
36
|
+
pos, value = pos_value
|
37
|
+
it "doesn't have param values for capture params" do
|
38
|
+
if pos > 0 && !value.to_s.empty?
|
39
|
+
fail "'#{fp.name}'s #{param_name} is a non-zero pos but specifies a value of '#{value}'"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
it "doesn't omit values for non-capture params" do
|
44
|
+
if pos == 0 && value.to_s.empty?
|
45
|
+
fail "'#{fp.name}'s #{param_name} is not a capture (pos=0) but doesn't specify a value"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
34
51
|
context "#{fp.regex}" do
|
35
52
|
|
36
53
|
it "has a name" do
|
data/xml/ftp_banners.xml
CHANGED
@@ -308,8 +308,7 @@ more text</example>
|
|
308
308
|
<example>OOPS: vsftpd: root is not mounted.</example>
|
309
309
|
<example>OOPS: cannot read user list file:/etc/vsftpd.user_list</example>
|
310
310
|
<param pos="0" name="service.family" value="vsFTPd"/>
|
311
|
-
<param pos="0" name="service.product" value="vsFTPd
|
312
|
-
<param pos="0" name="service.version"/>
|
311
|
+
<param pos="0" name="service.product" value="vsFTPd"/>
|
313
312
|
</fingerprint>
|
314
313
|
<fingerprint pattern="^FileZilla Server(?: version)? (?:v)?(\d\.[\w.]+(?: beta)?).*$">
|
315
314
|
<description>FileZilla FTP Server</description>
|
@@ -1070,7 +1069,7 @@ more text</example>
|
|
1070
1069
|
<param pos="0" name="service.vendor" value="GNU"/>
|
1071
1070
|
<param pos="1" name="service.version"/>
|
1072
1071
|
<param pos="0" name="hw.vendor" value="ZyXEL"/>
|
1073
|
-
<param pos="
|
1072
|
+
<param pos="0" name="hw.family" value="WiMax"/>
|
1074
1073
|
<param pos="0" name="hw.device" value="WAP"/>
|
1075
1074
|
</fingerprint>
|
1076
1075
|
<fingerprint pattern="^Speedport W ?(\S+) (?:Typ [A|B] )?FTP Server v([\d.]+) ready$$">
|
@@ -1080,7 +1079,7 @@ more text</example>
|
|
1080
1079
|
<example hw.product="722V" os.version="1.18.000">Speedport W722V FTP Server v1.18.000 ready</example>
|
1081
1080
|
<param pos="0" name="hw.vendor" value="Deutsche Telekom"/>
|
1082
1081
|
<param pos="0" name="hw.device" value="WAP"/>
|
1083
|
-
<param pos="
|
1082
|
+
<param pos="0" name="hw.family" value="Speedport"/>
|
1084
1083
|
<param pos="1" name="hw.product"/>
|
1085
1084
|
<param pos="2" name="os.version"/>
|
1086
1085
|
</fingerprint>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: recog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rapid7 Research
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -237,7 +237,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
237
237
|
version: '0'
|
238
238
|
requirements: []
|
239
239
|
rubyforge_project:
|
240
|
-
rubygems_version: 2.
|
240
|
+
rubygems_version: 2.6.6
|
241
241
|
signing_key:
|
242
242
|
specification_version: 4
|
243
243
|
summary: Network service fingerprint database, classes, and utilities
|
@@ -268,4 +268,3 @@ test_files:
|
|
268
268
|
- spec/lib/recog/nizer_spec.rb
|
269
269
|
- spec/lib/recog/verify_reporter_spec.rb
|
270
270
|
- spec/spec_helper.rb
|
271
|
-
has_rdoc:
|