recog 2.0.5 → 2.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 538906d10e028d9eb6b1289aad52a889a7434bed
4
- data.tar.gz: c139e7f79f7e23d9a68173ec4f70816d06ea6135
3
+ metadata.gz: d010c11e748201cc521fce486766ca0c1e361e79
4
+ data.tar.gz: f969772209e0ea6d1b23edfe07468f713611124c
5
5
  SHA512:
6
- metadata.gz: 255869f8b2f01dc9ef1d2e5862eb30aa08247d17598945dffd0469860a3b7dc782a15bcd0d8d25c05a9318338ec4c8d7da2bfd1dd934490ce21a5fc3b3aed84f
7
- data.tar.gz: 2b801d4f83b318e1f33752b4cbcd2ea859a9f743bc17c62a86a3497f5e90acab0738c47eeb199a3b48ed0f86925b3a39ac715b3fd6a393da09fa1f30f76fc8bb
6
+ metadata.gz: 6ddb7b4de06272bf896d5b200181fcea4acb82006346330f05a6da3a42c87a383afdbad1d4ef7bd9555496fd425a8200ac33c54fcf295bc21c87e68607623757
7
+ data.tar.gz: 9d6c2044e970acf26699ef841364b5c569877ebe939dff7242a9f11810b45c14224fd89c71d209bf0159171c0ae54dcb055adc3745fe0ee7523c1d5fc5d1bf92
data/README.md CHANGED
@@ -10,7 +10,7 @@ Recog is a framework for identifying products, services, operating systems, and
10
10
 
11
11
  ## Installation
12
12
 
13
- Recog consists of both XML fingerprint files and an assortment of code, mostly in Ruby, that makes it easy to develop, test, and use the contained fingerprints. In order to use the included ruby code, a recent version of Ruby (1.9.3+) is required, along with Rubygems and the `bundler` gem. Once these dependencies are in place, use the following commands to grab the latest source code and install any additional dependencies.
13
+ Recog consists of both XML fingerprint files and an assortment of code, mostly in Ruby, that makes it easy to develop, test, and use the contained fingerprints. In order to use the included ruby code, a recent version of Ruby (2.1+) is required, along with Rubygems and the `bundler` gem. Once these dependencies are in place, use the following commands to grab the latest source code and install any additional dependencies.
14
14
 
15
15
  $ git clone git@github.com:rapid7/recog.git
16
16
  $ cd recog
@@ -26,19 +26,17 @@ The fingerprints within Recog are stored in XML files, each of which is designed
26
26
 
27
27
  A fingerprint file consists of an XML document like the following:
28
28
 
29
- 01: <?xml version="1.0"?>
30
- 02:
31
- 03: <fingerprints matches="ssh.banner">
32
- 04:
33
- 05: <fingerprint pattern="^RomSShell_([\d\.]+)$">
34
- 06: <description>Allegro RomSShell SSH</description>
35
- 07: <example service.version="4.62">RomSShell_4.62</example>
36
- 08: <param pos="0" name="service.vendor" value="Allegro"/>
37
- 09: <param pos="0" name="service.product" value="RomSShell"/>
38
- 10: <param pos="1" name="service.version"/>
39
- 11: </fingerprint>
40
- 12:
41
- 13: </fingerprints>
29
+ ```
30
+ <fingerprints matches="ssh.banner">
31
+ <fingerprint pattern="^RomSShell_([\d\.]+)$">
32
+ <description>Allegro RomSShell SSH</description>
33
+ <example service.version="4.62">RomSShell_4.62</example>
34
+ <param pos="0" name="service.vendor" value="Allegro"/>
35
+ <param pos="0" name="service.product" value="RomSShell"/>
36
+ <param pos="1" name="service.version"/>
37
+ </fingerprint>
38
+ </fingerprints>
39
+ ```
42
40
 
43
41
  The first line should always consist of the XML version declaration. The first element should always be a `fingerpints` block with a `matches` attribute indicating what data this fingerprint file is supposed to match. The `matches` attribute is normally in the form of `protocol.field`.
44
42
 
@@ -48,7 +46,9 @@ Inside of the fingerprint, a `description` element should contain a human-readab
48
46
 
49
47
  At least one `example` element should be present, however multiple `example` elements are preferred. These elements are used as part of the test coverage present in rspec which validates that the provided data matches the specified regular expression. Additionally, if the fingerprint is using the `param` elements to extract field values from the data (described next), you can add these expected extractions as attributes for the `example` elements. In the example above, this:
50
48
 
51
- 07: <example service.version="4.62">RomSShell_4.62</example>
49
+ ```
50
+ <example service.version="4.62">RomSShell_4.62</example>
51
+ ```
52
52
 
53
53
  tests that `RomSShell_4.62` matches the provided regular expression and that the value of `service.version` is 4.62.
54
54
 
@@ -58,14 +58,19 @@ The `param` elements contain a `pos` attribute, which indicates what capture fie
58
58
 
59
59
  Once a fingerprint has been added, the `example` entries can be tested by executing `bin/recog_verify` against the fingerprint file:
60
60
 
61
+ ```
61
62
  $ bin/recog_verify xml/ssh_banners.xml
63
+ ```
62
64
 
63
65
  Matches can be tested on the command-line in a similar fashion:
64
66
 
67
+ ```
65
68
  $ echo 'OpenSSH_6.6p1 Ubuntu-2ubuntu1' | bin/recog_match xml/ssh_banners.xml -
66
69
  MATCH: {"service.version"=>"6.6p1", "openssh.comment"=>"Ubuntu-2ubuntu1", "service.vendor"=>"OpenBSD", "service.family"=>"OpenSSH", "service.product"=>"OpenSSH", "data"=>"OpenSSH_6.6p1 Ubuntu-2ubuntu1"}
70
+ ```
67
71
 
68
72
  ### Best Practices
73
+
69
74
  * Create a single fingerprint for each product as long as the pattern remains clear and readable. If that is not possible, the pattern should be logically decomposed into additional fingerprints.
70
75
  * Create regular expressions that allow for flexible version number matching. This ensures greater probability of matching a product. For example, all known public releases of a product report either `major.minor` or `major.minor.build` format version numbers. If the fingerprint strictly matches this version number format, it would fail to match a modified build of the product that reports only a `major` version number format.
71
76
 
@@ -27,6 +27,8 @@ module Recog
27
27
  'IGNORECASE' => Regexp::IGNORECASE
28
28
  }
29
29
 
30
+ DEFAULT_FLAGS = 0
31
+
30
32
  # @return [Regexp]
31
33
  def self.build(pattern, flags)
32
34
  options = build_options(flags)
@@ -44,7 +46,7 @@ module Recog
44
46
  unless unsupported_flags.empty?
45
47
  fail "Unsupported regular expression flags found: #{unsupported_flags.join(',')}. Must be one of: #{FLAG_MAP.keys.join(',')}"
46
48
  end
47
- flags.reduce(Regexp::NOENCODING) do |sum, flag|
49
+ flags.reduce(DEFAULT_FLAGS) do |sum, flag|
48
50
  sum |= (FLAG_MAP[flag] || 0)
49
51
  end
50
52
  end
@@ -1,3 +1,3 @@
1
1
  module Recog
2
- VERSION = '2.0.5'
2
+ VERSION = '2.0.6'
3
3
  end
@@ -57,11 +57,8 @@ describe Recog::DB do
57
57
  end
58
58
 
59
59
  it 'creates a Regexp with expected flags' do
60
- if RUBY_PLATFORM =~ /java/i
61
- pending "Bug in jruby"
62
- end
63
60
  expect(entry.regex).to be_a(Regexp)
64
- expect(entry.regex.options).to eq(Regexp::NOENCODING | Regexp::IGNORECASE)
61
+ expect(entry.regex.options).to eq(Recog::Fingerprint::RegexpFactory::DEFAULT_FLAGS | Regexp::IGNORECASE)
65
62
  end
66
63
 
67
64
  it "has a pattern" do
@@ -28,31 +28,38 @@ describe Recog::Fingerprint::RegexpFactory do
28
28
  let(:flags) { [ ] }
29
29
  it { is_expected.to be_a(Fixnum) }
30
30
 
31
- specify "sets NOENCODING" do
32
- expect(subject & Regexp::NOENCODING).to_not be_zero
31
+ context 'without any explicit flags' do
32
+ let(:flags) { [ ] }
33
+ specify "sets default flags" do
34
+ expect(subject).to be Recog::Fingerprint::RegexpFactory::DEFAULT_FLAGS
35
+ end
33
36
  end
34
37
 
35
38
  context 'with REG_ICASE' do
36
39
  let(:flags) { [ 'REG_ICASE' ] }
37
- specify "sets NOENCODING & IGNORECASE" do
38
- expect(subject & Regexp::NOENCODING).to_not be_zero
39
- expect(subject & Regexp::IGNORECASE).to_not be_zero
40
+ specify "sets IGNORECASE" do
41
+ expect(subject).to be (Recog::Fingerprint::RegexpFactory::DEFAULT_FLAGS | Regexp::IGNORECASE)
40
42
  end
41
43
  end
42
44
 
43
45
  context 'with REG_DOT_NEWLINE' do
44
46
  let(:flags) { [ 'REG_DOT_NEWLINE' ] }
45
- specify "sets NOENCODING & MULTILINE" do
46
- expect(subject & Regexp::NOENCODING).to_not be_zero
47
- expect(subject & Regexp::MULTILINE).to_not be_zero
47
+ specify "sets MULTILINE" do
48
+ expect(subject).to be (Recog::Fingerprint::RegexpFactory::DEFAULT_FLAGS | Regexp::MULTILINE)
48
49
  end
49
50
  end
50
51
 
51
52
  context 'with REG_LINE_ANY_CRLF' do
52
53
  let(:flags) { [ 'REG_LINE_ANY_CRLF' ] }
53
- specify "sets NOENCODING & MULTILINE" do
54
- expect(subject & Regexp::NOENCODING).to_not be_zero
55
- expect(subject & Regexp::MULTILINE).to_not be_zero
54
+ specify "sets MULTILINE" do
55
+ expect(subject).to be (Recog::Fingerprint::RegexpFactory::DEFAULT_FLAGS | Regexp::MULTILINE)
56
+ end
57
+ end
58
+
59
+ context 'with multiple flags' do
60
+ let(:flags) { [ 'REG_LINE_ANY_CRLF', 'REG_ICASE' ] }
61
+ specify "sets correct flags" do
62
+ expect(subject).to be (Recog::Fingerprint::RegexpFactory::DEFAULT_FLAGS | Regexp::MULTILINE | Regexp::IGNORECASE)
56
63
  end
57
64
  end
58
65
 
@@ -104,9 +104,10 @@ against these patterns to fingerprint FTP servers.
104
104
  <param pos="1" name="host.name"/>
105
105
  <param pos="2" name="service.version"/>
106
106
  </fingerprint>
107
- <fingerprint pattern="^(\S+)(?: \S+)? FTP Server \(Version:\s+Mac OS X Server\s*([\d\.]*).*\) ready.?$" flags="REG_ICASE">
108
- <description>FTPD on Mac OS X Server</description>
109
- <example>example.com FTP server (Version: Mac OS X Server 10.3 - +GSSAPI) ready.</example>
107
+ <fingerprint pattern="^(\S+)\s+FTP Server \(Version:\s+Mac OS X Server\s+([\d\.]+).*\) ready\.?" flags="REG_ICASE,MULTILINE">
108
+ <description>FTPD on Mac OS X Server with a version</description>
109
+ <example host.name="example.com" os.version="10.3">example.com FTP server (Version: Mac OS X Server 10.3 - +GSSAPI) ready.</example>
110
+ <example host.name="example.com" os.version="10.3">this is a banner. change it.&#13;&#10;example.com FTP server (Version: Mac OS X Server 10.3 - +GSSAPI) ready.</example>
110
111
  <param pos="0" name="service.vendor" value="Apple"/>
111
112
  <param pos="0" name="service.product" value="FTP"/>
112
113
  <param pos="0" name="os.vendor" value="Apple"/>
@@ -116,6 +117,25 @@ against these patterns to fingerprint FTP servers.
116
117
  <param pos="1" name="host.name"/>
117
118
  <param pos="2" name="os.version"/>
118
119
  </fingerprint>
120
+ <fingerprint pattern="^(\S+)\s+FTP Server \(Version:\s+Mac OS X Server\) ready\.?" flags="REG_ICASE,MULTILINE">
121
+ <description>FTPD on Mac OS X Server without a version</description>
122
+ <example host.name="example.com">example.com FTP server (Version: Mac OS X Server) ready.</example>
123
+ <example host.name="example.com">this is a banner. change it.&#13;&#10;example.com FTP server (Version: Mac OS X Server) ready.</example>
124
+ <param pos="0" name="service.vendor" value="Apple"/>
125
+ <param pos="0" name="service.product" value="FTP"/>
126
+ <param pos="0" name="os.vendor" value="Apple"/>
127
+ <param pos="0" name="os.family" value="Mac OS X"/>
128
+ <param pos="0" name="os.device" value="General"/>
129
+ <param pos="0" name="os.product" value="Mac OS X Server"/>
130
+ <param pos="1" name="host.name"/>
131
+ </fingerprint>
132
+ <fingerprint pattern="^(\S+)\s+FTP Server \(tnftpd (.*)\) ready\.?$" flags="REG_ICASE">
133
+ <description>Simple tnftpd banner with a version</description>
134
+ <example host.name="example.com" service.version="20061217">example.com FTP server (tnftpd 20061217) ready.</example>
135
+ <param pos="0" name="service.product" value="tnftpd"/>
136
+ <param pos="2" name="service.version"/>
137
+ <param pos="1" name="host.name"/>
138
+ </fingerprint>
119
139
  <fingerprint pattern="^(\S+) FTP Server \(SunOS (\S+)\) ready\.?$" flags="REG_ICASE">
120
140
  <description>SunOS/Solaris</description>
121
141
  <example>example.com FTP server (SunOS 5.7) ready.</example>
@@ -184,18 +204,20 @@ against these patterns to fingerprint FTP servers.
184
204
  <param pos="0" name="service.family" value="ProFTPD"/>
185
205
  <param pos="0" name="service.product" value="ProFTPD"/>
186
206
  </fingerprint>
187
- <fingerprint pattern="^=\(&lt;\*&gt;\)=-\.:\. \(\( Welcome to Pure-FTPd ([\d.]+) \)\) \.:\.-=\(&lt;\*&gt;\)=-$">
207
+ <fingerprint pattern="^=\(&lt;\*&gt;\)=-\.:\. \(\( Welcome to Pure-FTPd ([\d.]+) \)\) \.:\.-=\(&lt;\*&gt;\)=-" flags="MULTILINE">
188
208
  <!-- yes, the leading and trailing text is not balanced.
189
209
  the leading text is missing the - at the beginning -->
190
210
  <example service.version="1.0.11">=(&lt;*&gt;)=-.:. (( Welcome to Pure-FTPd 1.0.11 )) .:.-=(&lt;*&gt;)=-</example>
211
+ <example service.version="1.0.11">=(&lt;*&gt;)=-.:. (( Welcome to Pure-FTPd 1.0.11 )) .:.-=(&lt;*&gt;)=-&#13;&#10;more stuff</example>
191
212
  <description>Pure-FTPd versions &lt;= 1.0.13 (at least as far back as 1.0.11)</description>
192
213
  <param pos="0" name="service.family" value="Pure-FTPd"/>
193
214
  <param pos="0" name="service.product" value="Pure-FTPd"/>
194
215
  <param pos="1" name="service.version"/>
195
216
  </fingerprint>
196
- <fingerprint pattern="^-{9,10} Welcome to Pure-FTPd (.*)-{9,10}$">
217
+ <fingerprint pattern="^-{9,10} Welcome to Pure-FTPd (.*)-{9,10}" flags="MULTILINE">
197
218
  <example>---------- Welcome to Pure-FTPd ----------</example>
198
219
  <example>--------- Welcome to Pure-FTPd [privsep] [TLS] ----------</example>
220
+ <example>--------- Welcome to Pure-FTPd [privsep] [TLS] ----------&#13;&#10;more text</example>
199
221
  <description>Pure-FTPd versions >= 1.0.14
200
222
  Config data can be zero or more of: [privsep] [TLS]
201
223
  </description>
@@ -203,8 +225,9 @@ against these patterns to fingerprint FTP servers.
203
225
  <param pos="0" name="service.family" value="Pure-FTPd"/>
204
226
  <param pos="0" name="service.product" value="Pure-FTPd"/>
205
227
  </fingerprint>
206
- <fingerprint pattern="^=\(.\*.\)=-\.:\. \(\( Welcome to PureFTPd (\d+\..+) \)\) \.:\.-=\(.\*.\)=-$">
207
- <example>=(&lt;*&gt;)=-.:. (( Welcome to PureFTPd 1.1.0 )) .:.-=(&lt;*&gt;)=-</example>
228
+ <fingerprint pattern="^=\(.\*.\)=-\.:\. \(\( Welcome to PureFTPd (\d+\..+) \)\) \.:\.-=\(.\*.\)=-" flags="MULTILINE">
229
+ <example service.version="1.1.0">=(&lt;*&gt;)=-.:. (( Welcome to PureFTPd 1.1.0 )) .:.-=(&lt;*&gt;)=-</example>
230
+ <example service.version="1.1.0">=(&lt;*&gt;)=-.:. (( Welcome to PureFTPd 1.1.0 )) .:.-=(&lt;*&gt;)=-&#13;&#10;more text</example>
208
231
  <description>Older Pure-FTPd versions</description>
209
232
  <param pos="0" name="service.family" value="Pure-FTPd"/>
210
233
  <param pos="0" name="service.product" value="Pure-FTPd"/>
@@ -866,6 +889,14 @@ against these patterns to fingerprint FTP servers.
866
889
  <param pos="1" name="host.name"/>
867
890
  </fingerprint>
868
891
 
892
+ <fingerprint pattern="^(\S+) FTP server \(Version (\d.*)\) ready\.?$" flags="REG_ICASE">
893
+ <description>Generic FTP fingerprint with a hostname and a version for a generic FTP implementation</description>
894
+ <example host.name="example.com" service.version="6.00LS">example.com FTP server (Version 6.00LS) ready.</example>
895
+ <example host.name="example.com" service.version="1.2">example.com FTP server (Version 1.2) ready.</example>
896
+ <param pos="1" name="host.name"/>
897
+ <param pos="2" name="service.version"/>
898
+ </fingerprint>
899
+
869
900
  <fingerprint pattern="^FTP (?:server|service)?(?: is)? ready\.?$" flags="REG_ICASE">
870
901
  <description>Generic FTP fingerprint without a hostname</description>
871
902
  <example>FTP server is ready.</example>
@@ -41,17 +41,17 @@
41
41
  <param pos="0" name="service.product" value="MariaDB"/>
42
42
  </fingerprint>
43
43
 
44
- <fingerprint pattern="^Le h.te '[^']+' n'est pas authoris. . se connecter . ce serveur MySQL$">
45
- <example>Le h�te '10.10.10.10' n'est pas authoris� se connecter ce serveur MySQL</example>
44
+ <fingerprint pattern="^Le hôte '[^']+' n'est pas authorisé à se connecter à ce serveur MySQL$">
45
+ <example>Le hôte '10.10.10.10' n'est pas authorisé à se connecter à ce serveur MySQL</example>
46
46
  <description>Oracle MySQL - Error: Host not allowed to connect (French)</description>
47
47
  <param pos="0" name="service.vendor" value="Oracle"/>
48
48
  <param pos="0" name="service.family" value="MySQL"/>
49
49
  <param pos="0" name="service.product" value="MySQL"/>
50
50
  </fingerprint>
51
51
 
52
- <fingerprint pattern="^'Host' '[^']+' n.o tem permiss.o para se conectar com este servidor MySQL$">
53
- <example>'Host' '10.10.10.10' n�o tem permiss�o para se conectar com este servidor MySQL</example>
54
- <description>Oracle MySQL - Error: Host not allowed to connect (Spanish)</description>
52
+ <fingerprint pattern="^'Host' '[^']+' não tem permissão para se conectar com este servidor MySQL$">
53
+ <example>'Host' '10.10.10.10' não tem permissão para se conectar com este servidor MySQL</example>
54
+ <description>Oracle MySQL - Error: Host not allowed to connect (Portuguese)</description>
55
55
  <param pos="0" name="service.vendor" value="Oracle"/>
56
56
  <param pos="0" name="service.family" value="MySQL"/>
57
57
  <param pos="0" name="service.product" value="MySQL"/>
@@ -358,6 +358,32 @@
358
358
  <param pos="1" name="os.build"/>
359
359
  </fingerprint>
360
360
 
361
+ <!-- Windows 10 Preview -->
362
+ <fingerprint pattern="^Windows 10 (\w+|\w+ \w+|\w+ \w+ \w+) Insider Preview (\d+)$">
363
+ <description>Windows 10 Enterprise Insider Preview</description>
364
+ <example os.build="10130" os.edition="Enterprise">Windows 10 Enterprise Insider Preview 10130</example>
365
+ <param pos="0" name="os.certainty" value="1.0"/>
366
+ <param pos="0" name="os.vendor" value="Microsoft"/>
367
+ <param pos="0" name="os.product" value="Windows 10"/>
368
+ <param pos="1" name="os.edition"/>
369
+ <param pos="2" name="os.build"/>
370
+ </fingerprint>
371
+
372
+ <fingerprint pattern="^Windows 10 (\w+|\w+ \w+|\w+ \w+ \w+) (\d+)$">
373
+ <description>Windows 10</description>
374
+ <example os.build="10130" os.edition="Enterprise">Windows 10 Enterprise 10130</example>
375
+ <example os.build="10130" os.edition="Mobile Enterprise">Windows 10 Mobile Enterprise 10130</example>
376
+ <example os.build="10130" os.edition="Mobile">Windows 10 Mobile 10130</example>
377
+ <example os.build="10130" os.edition="Home">Windows 10 Home 10130</example>
378
+ <example os.build="10130" os.edition="Education">Windows 10 Education 10130</example>
379
+ <example os.build="10130" os.edition="Professional">Windows 10 Professional 10130</example>
380
+ <param pos="0" name="os.certainty" value="1.0"/>
381
+ <param pos="0" name="os.vendor" value="Microsoft"/>
382
+ <param pos="0" name="os.product" value="Windows 10"/>
383
+ <param pos="1" name="os.edition"/>
384
+ <param pos="2" name="os.build"/>
385
+ </fingerprint>
386
+
361
387
  <!-- TODO: Detect vendor, distribution, and package versions -->
362
388
  <fingerprint pattern="^Samba (\d\.\d+.\d+\w*)">
363
389
  <description>Samba</description>
@@ -79,7 +79,7 @@ fingerprint SSH servers.
79
79
  <param pos="0" name="os.product" value="NetBSD"/>
80
80
  </fingerprint>
81
81
 
82
- <fingerprint pattern="^OpenSSH_(4\.1p1) (Debian-7ubuntu4)$">
82
+ <fingerprint pattern="^OpenSSH_(4\.1p1) (Debian-7ubuntu\d+(?:\.\d+)?)$">
83
83
  <description>OpenSSH running on Ubuntu 5.10</description>
84
84
  <example>OpenSSH_4.1p1 Debian-7ubuntu4</example>
85
85
  <param pos="1" name="service.version"/>
@@ -94,7 +94,7 @@ fingerprint SSH servers.
94
94
  <param pos="0" name="os.version" value="5.10"/>
95
95
  </fingerprint>
96
96
 
97
- <fingerprint pattern="^OpenSSH_(4\.2p1) (Debian-7ubuntu3.*)$">
97
+ <fingerprint pattern="^OpenSSH_(4\.2p1) (Debian-7ubuntu\d+(?:\.\d+)?)$">
98
98
  <description>OpenSSH running on Ubuntu 6.04</description>
99
99
  <example>OpenSSH_4.2p1 Debian-7ubuntu3.1</example>
100
100
  <example>OpenSSH_4.2p1 Debian-7ubuntu3.2</example>
@@ -110,7 +110,7 @@ fingerprint SSH servers.
110
110
  <param pos="0" name="os.version" value="6.04"/>
111
111
  </fingerprint>
112
112
 
113
- <fingerprint pattern="^OpenSSH_(4\.3p2) (Debian-8ubuntu1.*)$">
113
+ <fingerprint pattern="^OpenSSH_(4\.3p2) (Debian-8ubuntu\d+(?:\.\d+)?)$">
114
114
  <description>OpenSSH running on Ubuntu 7.04</description>
115
115
  <example>OpenSSH_4.3p2 Debian-8ubuntu1.4</example>
116
116
  <param pos="1" name="service.version"/>
@@ -125,7 +125,7 @@ fingerprint SSH servers.
125
125
  <param pos="0" name="os.version" value="7.04"/>
126
126
  </fingerprint>
127
127
 
128
- <fingerprint pattern="^OpenSSH_(4\.6p1) (Debian-5ubuntu0.*)$">
128
+ <fingerprint pattern="^OpenSSH_(4\.6p1) (Debian-5ubuntu\d+(?:\.\d+)?)$">
129
129
  <description>OpenSSH running on Ubuntu 7.10</description>
130
130
  <example>OpenSSH_4.6p1 Debian-5ubuntu0.2</example>
131
131
  <example>OpenSSH_4.6p1 Debian-5ubuntu0.5</example>
@@ -140,11 +140,27 @@ fingerprint SSH servers.
140
140
  <param pos="0" name="os.family" value="Linux"/>
141
141
  <param pos="0" name="os.product" value="Linux"/>
142
142
  <param pos="0" name="os.version" value="7.10"/>
143
+ </fingerprint>
144
+
145
+ <fingerprint pattern="^OpenSSH_(4\.6p1) (Debian-5build1)$">
146
+ <description>OpenSSH running on very early versions of Ubuntu 7.10</description>
147
+ <example service.version="4.6p1" openssh.comment="Debian-5build1">OpenSSH_4.6p1 Debian-5build1</example>
148
+ <param pos="1" name="service.version"/>
149
+ <param pos="2" name="openssh.comment"/>
150
+ <param pos="0" name="service.vendor" value="OpenBSD"/>
151
+ <param pos="0" name="service.family" value="OpenSSH"/>
152
+ <param pos="0" name="service.product" value="OpenSSH"/>
153
+ <param pos="0" name="os.vendor" value="Ubuntu"/>
154
+ <param pos="0" name="os.device" value="General"/>
155
+ <param pos="0" name="os.family" value="Linux"/>
156
+ <param pos="0" name="os.product" value="Linux"/>
157
+ <param pos="0" name="os.version" value="7.10"/>
143
158
  </fingerprint>
144
159
 
145
- <fingerprint pattern="^OpenSSH_(4\.7p1) (Debian-8ubuntu1.*)$">
160
+ <fingerprint pattern="^OpenSSH_(4\.7p1) (Debian-8ubuntu\d+(?:\.\d+)?)$">
146
161
  <description>OpenSSH running on Ubuntu 8.04</description>
147
- <example>OpenSSH_4.7p1 Debian-8ubuntu1.2</example>
162
+ <example service.version="4.7p1" openssh.comment="Debian-8ubuntu1.2">OpenSSH_4.7p1 Debian-8ubuntu1.2</example>
163
+ <example service.version="4.7p1" openssh.comment="Debian-8ubuntu3">OpenSSH_4.7p1 Debian-8ubuntu3</example>
148
164
  <param pos="1" name="service.version"/>
149
165
  <param pos="2" name="openssh.comment"/>
150
166
  <param pos="0" name="service.vendor" value="OpenBSD"/>
@@ -157,7 +173,7 @@ fingerprint SSH servers.
157
173
  <param pos="0" name="os.version" value="8.04"/>
158
174
  </fingerprint>
159
175
 
160
- <fingerprint pattern="^OpenSSH_(5\.1p1) (Debian-3ubuntu1)$">
176
+ <fingerprint pattern="^OpenSSH_(5\.1p1) (Debian-3ubuntu\d+(?:\.\d+)?)$">
161
177
  <description>OpenSSH running on Ubuntu 8.10</description>
162
178
  <example>OpenSSH_5.1p1 Debian-3ubuntu1</example>
163
179
  <param pos="1" name="service.version"/>
@@ -172,7 +188,7 @@ fingerprint SSH servers.
172
188
  <param pos="0" name="os.version" value="8.10"/>
173
189
  </fingerprint>
174
190
 
175
- <fingerprint pattern="^OpenSSH_(5\.1p1) (Debian-5ubuntu1)$">
191
+ <fingerprint pattern="^OpenSSH_(5\.1p1) (Debian-5ubuntu\d+(?:\.\d+)?)$">
176
192
  <description>OpenSSH running on Ubuntu 9.04</description>
177
193
  <example>OpenSSH_5.1p1 Debian-5ubuntu1</example>
178
194
  <param pos="1" name="service.version"/>
@@ -187,7 +203,7 @@ fingerprint SSH servers.
187
203
  <param pos="0" name="os.version" value="9.04"/>
188
204
  </fingerprint>
189
205
 
190
- <fingerprint pattern="^OpenSSH_(5\.1p1) (Debian-6ubuntu2)$">
206
+ <fingerprint pattern="^OpenSSH_(5\.1p1) (Debian-6ubuntu\d+(?:\.\d+)?)$">
191
207
  <description>OpenSSH running on Ubuntu 9.10</description>
192
208
  <example>OpenSSH_5.1p1 Debian-6ubuntu2</example>
193
209
  <param pos="1" name="service.version"/>
@@ -202,9 +218,14 @@ fingerprint SSH servers.
202
218
  <param pos="0" name="os.version" value="9.10"/>
203
219
  </fingerprint>
204
220
 
205
- <fingerprint pattern="^OpenSSH_(5\.3p1) (Debian-3ubuntu3)$">
221
+ <fingerprint pattern="^OpenSSH_(5\.3p1) (Debian-3ubuntu\d+(?:\.\d+)?)$">
206
222
  <description>OpenSSH running on Ubuntu 10.04 (lucid)</description>
207
- <example>OpenSSH_5.3p1 Debian-3ubuntu3</example>
223
+ <example service.version="5.3p1" openssh.comment="Debian-3ubuntu3">OpenSSH_5.3p1 Debian-3ubuntu3</example>
224
+ <example service.version="5.3p1" openssh.comment="Debian-3ubuntu4">OpenSSH_5.3p1 Debian-3ubuntu4</example>
225
+ <example service.version="5.3p1" openssh.comment="Debian-3ubuntu5">OpenSSH_5.3p1 Debian-3ubuntu5</example>
226
+ <example service.version="5.3p1" openssh.comment="Debian-3ubuntu6">OpenSSH_5.3p1 Debian-3ubuntu6</example>
227
+ <example service.version="5.3p1" openssh.comment="Debian-3ubuntu7">OpenSSH_5.3p1 Debian-3ubuntu7</example>
228
+ <example service.version="5.3p1" openssh.comment="Debian-3ubuntu7.1">OpenSSH_5.3p1 Debian-3ubuntu7.1</example>
208
229
  <param pos="1" name="service.version"/>
209
230
  <param pos="2" name="openssh.comment"/>
210
231
  <param pos="0" name="service.vendor" value="OpenBSD"/>
@@ -217,9 +238,11 @@ fingerprint SSH servers.
217
238
  <param pos="0" name="os.version" value="10.04"/>
218
239
  </fingerprint>
219
240
 
220
- <fingerprint pattern="^OpenSSH_(5\.3p1) (Debian-3ubuntu4)$">
221
- <description>OpenSSH running on Ubuntu 10.04 (lucid) update 1</description>
222
- <example>OpenSSH_5.3p1 Debian-3ubuntu4</example>
241
+ <fingerprint pattern="^OpenSSH_(5\.5p1) (Debian-4ubuntu\d+(?:\.\d+)?)$">
242
+ <description>OpenSSH running on Ubuntu 10.10</description>
243
+ <example service.version="5.5p1" openssh.comment="Debian-4ubuntu4">OpenSSH_5.5p1 Debian-4ubuntu4</example>
244
+ <example service.version="5.5p1" openssh.comment="Debian-4ubuntu5">OpenSSH_5.5p1 Debian-4ubuntu5</example>
245
+ <example service.version="5.5p1" openssh.comment="Debian-4ubuntu6">OpenSSH_5.5p1 Debian-4ubuntu6</example>
223
246
  <param pos="1" name="service.version"/>
224
247
  <param pos="2" name="openssh.comment"/>
225
248
  <param pos="0" name="service.vendor" value="OpenBSD"/>
@@ -229,13 +252,12 @@ fingerprint SSH servers.
229
252
  <param pos="0" name="os.device" value="General"/>
230
253
  <param pos="0" name="os.family" value="Linux"/>
231
254
  <param pos="0" name="os.product" value="Linux"/>
232
- <param pos="0" name="os.version" value="10.04"/>
255
+ <param pos="0" name="os.version" value="10.10"/>
233
256
  </fingerprint>
234
257
 
235
- <fingerprint pattern="^OpenSSH_(5\.3p1) (Debian-3ubuntu[56])$">
236
- <description>OpenSSH running on Ubuntu 10.04 (lucid) update 2</description>
237
- <example>OpenSSH_5.3p1 Debian-3ubuntu5</example>
238
- <example>OpenSSH_5.3p1 Debian-3ubuntu6</example>
258
+ <fingerprint pattern="^OpenSSH_(5\.8p1) (Debian-1ubuntu\d(?:\.\d)?)$">
259
+ <description>OpenSSH running on Ubuntu 11.04</description>
260
+ <example>OpenSSH_5.8p1 Debian-1ubuntu3</example>
239
261
  <param pos="1" name="service.version"/>
240
262
  <param pos="2" name="openssh.comment"/>
241
263
  <param pos="0" name="service.vendor" value="OpenBSD"/>
@@ -245,12 +267,12 @@ fingerprint SSH servers.
245
267
  <param pos="0" name="os.device" value="General"/>
246
268
  <param pos="0" name="os.family" value="Linux"/>
247
269
  <param pos="0" name="os.product" value="Linux"/>
248
- <param pos="0" name="os.version" value="10.04"/>
270
+ <param pos="0" name="os.version" value="11.04"/>
249
271
  </fingerprint>
250
272
 
251
- <fingerprint pattern="^OpenSSH_(5\.3p1) (Debian-3ubuntu7)$">
252
- <description>OpenSSH running on Ubuntu 10.04 (lucid) update 3 or update 4</description>
253
- <example>OpenSSH_5.3p1 Debian-3ubuntu7</example>
273
+ <fingerprint pattern="^OpenSSH_(5\.8p1) (Debian-7ubuntu\d(?:\.\d)?)$">
274
+ <description>OpenSSH running on Ubuntu 11.10</description>
275
+ <example>OpenSSH_5.8p1 Debian-7ubuntu1</example>
254
276
  <param pos="1" name="service.version"/>
255
277
  <param pos="2" name="openssh.comment"/>
256
278
  <param pos="0" name="service.vendor" value="OpenBSD"/>
@@ -260,13 +282,13 @@ fingerprint SSH servers.
260
282
  <param pos="0" name="os.device" value="General"/>
261
283
  <param pos="0" name="os.family" value="Linux"/>
262
284
  <param pos="0" name="os.product" value="Linux"/>
263
- <param pos="0" name="os.version" value="10.04"/>
285
+ <param pos="0" name="os.version" value="11.10"/>
264
286
  </fingerprint>
265
287
 
266
- <fingerprint pattern="^OpenSSH_(5\.5p1) (Debian-4ubuntu[45])$">
267
- <description>OpenSSH running on Ubuntu 10.10</description>
268
- <example>OpenSSH_5.5p1 Debian-4ubuntu4</example>
269
- <example>OpenSSH_5.5p1 Debian-4ubuntu5</example>
288
+ <fingerprint pattern="^OpenSSH_(5\.9p1) (Debian-5ubuntu\d(?:\.\d)?)$">
289
+ <description>OpenSSH running on Ubuntu 12.04</description>
290
+ <example service.version="5.9p1" openssh.comment="Debian-5ubuntu1">OpenSSH_5.9p1 Debian-5ubuntu1</example>
291
+ <example service.version="5.9p1" openssh.comment="Debian-5ubuntu1.4">OpenSSH_5.9p1 Debian-5ubuntu1.4</example>
270
292
  <param pos="1" name="service.version"/>
271
293
  <param pos="2" name="openssh.comment"/>
272
294
  <param pos="0" name="service.vendor" value="OpenBSD"/>
@@ -276,12 +298,12 @@ fingerprint SSH servers.
276
298
  <param pos="0" name="os.device" value="General"/>
277
299
  <param pos="0" name="os.family" value="Linux"/>
278
300
  <param pos="0" name="os.product" value="Linux"/>
279
- <param pos="0" name="os.version" value="10.10"/>
301
+ <param pos="0" name="os.version" value="12.04"/>
280
302
  </fingerprint>
281
303
 
282
- <fingerprint pattern="^OpenSSH_(5\.8p1) (Debian-1ubuntu3)$">
283
- <description>OpenSSH running on Ubuntu 11.04</description>
284
- <example>OpenSSH_5.8p1 Debian-1ubuntu3</example>
304
+ <fingerprint pattern="^OpenSSH_(6\.0p1) (Debian-3ubuntu\d(?:\.\d)?)$">
305
+ <description>OpenSSH running on Ubuntu 12.10</description>
306
+ <example>OpenSSH_6.0p1 Debian-3ubuntu1</example>
285
307
  <param pos="1" name="service.version"/>
286
308
  <param pos="2" name="openssh.comment"/>
287
309
  <param pos="0" name="service.vendor" value="OpenBSD"/>
@@ -291,12 +313,12 @@ fingerprint SSH servers.
291
313
  <param pos="0" name="os.device" value="General"/>
292
314
  <param pos="0" name="os.family" value="Linux"/>
293
315
  <param pos="0" name="os.product" value="Linux"/>
294
- <param pos="0" name="os.version" value="11.04"/>
316
+ <param pos="0" name="os.version" value="12.10"/>
295
317
  </fingerprint>
296
318
 
297
- <fingerprint pattern="^OpenSSH_(5\.8p1) (Debian-7ubuntu1)$">
298
- <description>OpenSSH running on Ubuntu 11.10</description>
299
- <example>OpenSSH_5.8p1 Debian-7ubuntu1</example>
319
+ <fingerprint pattern="^OpenSSH_(6\.1p1) (Debian-4)$">
320
+ <description>OpenSSH running on Ubuntu 13.04</description>
321
+ <example>OpenSSH_6.1p1 Debian-4</example>
300
322
  <param pos="1" name="service.version"/>
301
323
  <param pos="2" name="openssh.comment"/>
302
324
  <param pos="0" name="service.vendor" value="OpenBSD"/>
@@ -306,12 +328,13 @@ fingerprint SSH servers.
306
328
  <param pos="0" name="os.device" value="General"/>
307
329
  <param pos="0" name="os.family" value="Linux"/>
308
330
  <param pos="0" name="os.product" value="Linux"/>
309
- <param pos="0" name="os.version" value="11.10"/>
331
+ <param pos="0" name="os.version" value="13.04"/>
310
332
  </fingerprint>
311
333
 
312
- <fingerprint pattern="^OpenSSH_(5\.9p1) (Debian-5ubuntu1(?:\.3|))$">
313
- <description>OpenSSH running on Ubuntu 12.04</description>
314
- <example>OpenSSH_5.9p1 Debian-5ubuntu1</example>
334
+ <fingerprint pattern="^OpenSSH_(6\.6(?:\.\d)?p1) (Ubuntu-2ubuntu\d+(?:\.\d+)?)$">
335
+ <description>OpenSSH running on Ubuntu 14.04</description>
336
+ <example service.version="6.6p1" openssh.comment="Ubuntu-2ubuntu1">OpenSSH_6.6p1 Ubuntu-2ubuntu1</example>
337
+ <example service.version="6.6.1p1" openssh.comment="Ubuntu-2ubuntu2">OpenSSH_6.6.1p1 Ubuntu-2ubuntu2</example>
315
338
  <param pos="1" name="service.version"/>
316
339
  <param pos="2" name="openssh.comment"/>
317
340
  <param pos="0" name="service.vendor" value="OpenBSD"/>
@@ -321,12 +344,12 @@ fingerprint SSH servers.
321
344
  <param pos="0" name="os.device" value="General"/>
322
345
  <param pos="0" name="os.family" value="Linux"/>
323
346
  <param pos="0" name="os.product" value="Linux"/>
324
- <param pos="0" name="os.version" value="12.04"/>
325
- </fingerprint>
347
+ <param pos="0" name="os.version" value="14.04"/>
348
+ </fingerprint>
326
349
 
327
- <fingerprint pattern="^OpenSSH_(6\.0p1) (Debian-3ubuntu1)$">
328
- <description>OpenSSH running on Ubuntu 12.10</description>
329
- <example>OpenSSH_6.0p1 Debian-3ubuntu1</example>
350
+ <fingerprint pattern="^OpenSSH_(6\.7p1) (Ubuntu-5ubuntu\d(?:\.\d)?)$">
351
+ <description>OpenSSH running on Ubuntu 15.04 (vivid)</description>
352
+ <example service.version="6.7p1" openssh.comment="Ubuntu-5ubuntu1">OpenSSH_6.7p1 Ubuntu-5ubuntu1</example>
330
353
  <param pos="1" name="service.version"/>
331
354
  <param pos="2" name="openssh.comment"/>
332
355
  <param pos="0" name="service.vendor" value="OpenBSD"/>
@@ -336,37 +359,39 @@ fingerprint SSH servers.
336
359
  <param pos="0" name="os.device" value="General"/>
337
360
  <param pos="0" name="os.family" value="Linux"/>
338
361
  <param pos="0" name="os.product" value="Linux"/>
339
- <param pos="0" name="os.version" value="12.10"/>
362
+ <param pos="0" name="os.version" value="15.04"/>
340
363
  </fingerprint>
341
364
 
342
- <fingerprint pattern="^OpenSSH_(6\.1p1) (Debian-4)$">
343
- <description>OpenSSH running on Ubuntu 13.04</description>
344
- <example>OpenSSH_6.1p1 Debian-4</example>
365
+ <fingerprint pattern="^OpenSSH_([^\s]+)\s+(Debian-4(?:\+deb7u\d+)?)$">
366
+ <description>OpenSSH running on Debian 7.x (wheezy)</description>
367
+ <example service.version="6.0p1" openssh.comment="Debian-4">OpenSSH_6.0p1 Debian-4</example>
368
+ <example service.version="6.0p1" openssh.comment="Debian-4+deb7u1">OpenSSH_6.0p1 Debian-4+deb7u1</example>
369
+ <example service.version="6.0p1" openssh.comment="Debian-4+deb7u2">OpenSSH_6.0p1 Debian-4+deb7u2</example>
345
370
  <param pos="1" name="service.version"/>
346
371
  <param pos="2" name="openssh.comment"/>
347
372
  <param pos="0" name="service.vendor" value="OpenBSD"/>
348
373
  <param pos="0" name="service.family" value="OpenSSH"/>
349
374
  <param pos="0" name="service.product" value="OpenSSH"/>
350
- <param pos="0" name="os.vendor" value="Ubuntu"/>
375
+ <param pos="0" name="os.vendor" value="Debian"/>
351
376
  <param pos="0" name="os.device" value="General"/>
352
377
  <param pos="0" name="os.family" value="Linux"/>
353
378
  <param pos="0" name="os.product" value="Linux"/>
354
- <param pos="0" name="os.version" value="13.04"/>
355
- </fingerprint>
379
+ <param pos="0" name="os.version" value="7.0"/>
380
+ </fingerprint>
356
381
 
357
- <fingerprint pattern="^OpenSSH_(6\.6p1) (Ubuntu-2ubuntu1)$">
358
- <description>OpenSSH running on Ubuntu 14.04</description>
359
- <example>OpenSSH_6.6p1 Ubuntu-2ubuntu1</example>
382
+ <fingerprint pattern="^OpenSSH_([^\s]+)\s+(Debian.+squeeze.*)$">
383
+ <description>OpenSSH running on Debian 6.0 (squeeze)</description>
384
+ <example service.version="5.5p1" openssh.comment="Debian-6+squeeze4">OpenSSH_5.5p1 Debian-6+squeeze4</example>
360
385
  <param pos="1" name="service.version"/>
361
386
  <param pos="2" name="openssh.comment"/>
362
387
  <param pos="0" name="service.vendor" value="OpenBSD"/>
363
388
  <param pos="0" name="service.family" value="OpenSSH"/>
364
389
  <param pos="0" name="service.product" value="OpenSSH"/>
365
- <param pos="0" name="os.vendor" value="Ubuntu"/>
390
+ <param pos="0" name="os.vendor" value="Debian"/>
366
391
  <param pos="0" name="os.device" value="General"/>
367
392
  <param pos="0" name="os.family" value="Linux"/>
368
393
  <param pos="0" name="os.product" value="Linux"/>
369
- <param pos="0" name="os.version" value="14.04"/>
394
+ <param pos="0" name="os.version" value="6.0"/>
370
395
  </fingerprint>
371
396
 
372
397
  <fingerprint pattern="^OpenSSH_([^\s]+)\s+((?:Debian|Ubuntu).+ubuntu.*)$">
@@ -380,6 +405,7 @@ fingerprint SSH servers.
380
405
  <param pos="0" name="os.device" value="General"/>
381
406
  <param pos="0" name="os.family" value="Linux"/>
382
407
  <param pos="0" name="os.product" value="Linux"/>
408
+ <param pos="0" name="os.certainty" value="0.75"/>
383
409
  </fingerprint>
384
410
 
385
411
  <fingerprint pattern="^OpenSSH_([^\s]+)\s+(Debian.+etch.*)$">
@@ -424,19 +450,6 @@ fingerprint SSH servers.
424
450
  <param pos="0" name="os.version" value="3.0"/>
425
451
  </fingerprint>
426
452
 
427
- <fingerprint pattern="^OpenSSH_([^\s]+)\s+(Debian.*)$">
428
- <description>OpenSSH running on Debian (unknown version)</description>
429
- <param pos="1" name="service.version"/>
430
- <param pos="2" name="openssh.comment"/>
431
- <param pos="0" name="service.vendor" value="OpenBSD"/>
432
- <param pos="0" name="service.family" value="OpenSSH"/>
433
- <param pos="0" name="service.product" value="OpenSSH"/>
434
- <param pos="0" name="os.vendor" value="Debian"/>
435
- <param pos="0" name="os.device" value="General"/>
436
- <param pos="0" name="os.family" value="Linux"/>
437
- <param pos="0" name="os.product" value="Linux"/>
438
- </fingerprint>
439
-
440
453
  <fingerprint pattern="^OpenSSH_(.*)\+(CAN-[0-9]{4}-[0-9]{4})$">
441
454
  <description>OpenSSH with CVE patch, as seen in Mac OS X</description>
442
455
  <param pos="1" name="service.version"/>
@@ -475,9 +488,21 @@ fingerprint SSH servers.
475
488
  <param pos="0" name="os.product" value="Windows"/>
476
489
  </fingerprint>
477
490
 
491
+ <fingerprint pattern="^OpenSSH_(\d+\.\d+(?:\.\d+)?(?:p\d+)?)$">
492
+ <description>OpenSSH with just a version, no comment by vendor</description>
493
+ <example service.version="5.9p1">OpenSSH_5.9p1</example>
494
+ <example service.version="5.9">OpenSSH_5.9</example>
495
+ <example service.version="3.8.1p1">OpenSSH_3.8.1p1</example>
496
+ <example service.version="6.6.1">OpenSSH_6.6.1</example>
497
+ <param pos="1" name="service.version"/>
498
+ <param pos="0" name="service.vendor" value="OpenBSD"/>
499
+ <param pos="0" name="service.family" value="OpenSSH"/>
500
+ <param pos="0" name="service.product" value="OpenSSH"/>
501
+ </fingerprint>
502
+
478
503
  <!-- SSH-1.99-OpenSSH_4.3p2-4.cern-hpn-CERN-4.3p2-4.cern -->
479
504
 
480
- <fingerprint pattern="^OpenSSH_?([^\s]*)\s*(.*)$">
505
+ <!--<fingerprint pattern="^OpenSSH_?([^\s]*)\s*(.*)$">
481
506
  <description>Catch all for OpenSSH based SSH servers
482
507
  ******************** NOTE ********************
483
508
  Be sure to put any specific OpenSSH derivative
@@ -489,7 +514,7 @@ fingerprint SSH servers.
489
514
  <param pos="0" name="service.vendor" value="OpenBSD"/>
490
515
  <param pos="0" name="service.family" value="OpenSSH"/>
491
516
  <param pos="0" name="service.product" value="OpenSSH"/>
492
- </fingerprint>
517
+ </fingerprint>-->
493
518
 
494
519
  <!-- TODO: Handle "vpn3" banners for Cisco 3000 VPN Concentrators (need example banners first) -->
495
520
 
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recog
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.5
4
+ version: 2.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rapid7 Research
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-09 00:00:00.000000000 Z
11
+ date: 2015-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: yard
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: redcarpet
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: cucumber
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: aruba
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: simplecov
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: nokogiri
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: Recog is a framework for identifying products, services, operating systems,
@@ -121,10 +121,10 @@ executables:
121
121
  extensions: []
122
122
  extra_rdoc_files: []
123
123
  files:
124
- - .gitignore
125
- - .rspec
126
- - .travis.yml
127
- - .yardopts
124
+ - ".gitignore"
125
+ - ".rspec"
126
+ - ".travis.yml"
127
+ - ".yardopts"
128
128
  - CONTRIBUTING.md
129
129
  - Gemfile
130
130
  - LICENSE
@@ -167,7 +167,7 @@ files:
167
167
  - spec/data/whitespaced_fingerprint.xml
168
168
  - spec/lib/fingerprint_self_test_spec.rb
169
169
  - spec/lib/recog/db_spec.rb
170
- - spec/lib/recog/fingerprint/regexp_factory.rb
170
+ - spec/lib/recog/fingerprint/regexp_factory_spec.rb
171
171
  - spec/lib/recog/fingerprint_spec.rb
172
172
  - spec/lib/recog/formatter_spec.rb
173
173
  - spec/lib/recog/match_reporter_spec.rb
@@ -219,17 +219,17 @@ require_paths:
219
219
  - lib
220
220
  required_ruby_version: !ruby/object:Gem::Requirement
221
221
  requirements:
222
- - - '>='
222
+ - - ">="
223
223
  - !ruby/object:Gem::Version
224
224
  version: '2.1'
225
225
  required_rubygems_version: !ruby/object:Gem::Requirement
226
226
  requirements:
227
- - - '>='
227
+ - - ">="
228
228
  - !ruby/object:Gem::Version
229
229
  version: '0'
230
230
  requirements: []
231
231
  rubyforge_project:
232
- rubygems_version: 2.2.2
232
+ rubygems_version: 2.4.6
233
233
  signing_key:
234
234
  specification_version: 4
235
235
  summary: Network service fingerprint database, classes, and utilities