recog 1.0.1 → 1.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f8733f7ff4f55fc69c2cecd58f5fbd7463c4901e
4
- data.tar.gz: efba2831830120c2d9926a1f394b42783e1e9217
3
+ metadata.gz: 7190197345bed621faf776482bf3ca8ca6cb210b
4
+ data.tar.gz: b57dc8676f172febcfa71c665ac577466b0e6a00
5
5
  SHA512:
6
- metadata.gz: dec5ea7cfb2baa55c2ec7ecb555d899f2ba0d28579548b5a34f4b4e144c28eddc6057f0fb29731dd01e566118a9d90d459a577d1845230517afca544b153af7f
7
- data.tar.gz: 6dd37f82c514a9dfc56faede90bb3e027f4e1284a637540c549e1dafd5aac3af36bf991d23cc6d92e69fe0323b17d20ff4570afd15361581659fa74d3d6e0f37
6
+ metadata.gz: 0dcbd96cbeade329a7e83ff5491235a09184a264cc2aa9d6214882ef6c56a269428cc08622cc20dacafe1c2969d72edfd5b14b9928e21a0c4da23d3f347a1e8e
7
+ data.tar.gz: 1a2f1daceec5aea2f18f0f34726ebeab296cc7622115a77ac4067fccf00fe3ccd9c8792f4b7c312ddecb6859e66e7f0449bffeb6a42758d64cc0d47a630afb3a
data/lib/recog/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Recog
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
@@ -12,7 +12,8 @@ describe Recog::DB do
12
12
  expect(db.match_key).not_to be_empty
13
13
  end
14
14
 
15
- db.fingerprints.each do |fp|
15
+ db.fingerprints.each_index do |i|
16
+ fp = db.fingerprints[i]
16
17
 
17
18
  context "#{fp.regex}" do
18
19
 
@@ -37,12 +38,22 @@ describe Recog::DB do
37
38
  # end
38
39
 
39
40
  fp.tests.each do |example|
40
- it "passes self-test #{example.content.gsub(/\s+/, ' ')[0,32]}..." do
41
+ it "Example '#{example.content}' matches this regex" do
41
42
  match = fp.match(example.content)
42
- expect(match).to_not be_nil
43
+ expect(match).to_not be_nil, 'Regex did not match'
43
44
  # test any extractions specified in the example
44
45
  example.attributes.each_pair do |k,v|
45
- expect(match[k]).to eq(v)
46
+ expect(match[k]).to eq(v), "Regex didn't extracted expected value for fingerprint attribute #{k}"
47
+ end
48
+ end
49
+
50
+ it "Example '#{example.content}' matches this regex first" do
51
+ db.fingerprints.slice(0, i).each_index do |previous_i|
52
+ prev_fp = db.fingerprints[previous_i]
53
+ prev_fp.tests.each do |prev_example|
54
+ match = prev_fp.match(example.content)
55
+ expect(match).to be_nil, "Matched regex ##{previous_i} (#{db.fingerprints[previous_i].regex}) rather than ##{i} (#{db.fingerprints[i].regex})"
56
+ end
46
57
  end
47
58
  end
48
59
  end
data/xml/ntp_banners.xml CHANGED
@@ -419,17 +419,6 @@ NTP "banners", taken from a readvar response
419
419
  <param pos="0" name="os.family" value="Solaris"/>
420
420
  <param pos="0" name="os.product" value="Solaris"/>
421
421
  </fingerprint>
422
- <fingerprint pattern="processor=&quot;([^ ]+)&quot;,.*system=&quot;JUNOS/?([^ ]+)&quot;" flags="REG_DOT_NEWLINE,REG_ICASE">
423
- <description>Juniper/Netscreen JunOS NTP without a version</description>
424
- <example>processor="i386", system="JUNOS7.0R2.7", leap=0, stratum=3</example>
425
- <example>processor="i386", system="JUNOS6.4R1.6", leap=3, stratum=16</example>
426
- <example>processor="i386", system="JUNOS5.5R2.3", leap=0, stratum=3</example>
427
- <param pos="0" name="os.vendor" value="Juniper"/>
428
- <param pos="0" name="os.family" value="Junos"/>
429
- <param pos="0" name="os.product" value="Junos OS"/>
430
- <param pos="2" name="os.arch"/>
431
- <param pos="3" name="os.version"/>
432
- </fingerprint>
433
422
  <fingerprint pattern="^.*version=&quot;ntpd ([^ ]+)[^&quot;]+&quot;,.*processor=&quot;([^ ]+)&quot;,.*system=&quot;JUNOS/?([^ ]+)&quot;" flags="REG_DOT_NEWLINE,REG_ICASE">
434
423
  <description>ntpd running on Juniper/Netscreen JunOS</description>
435
424
  <example>
@@ -445,6 +434,17 @@ NTP "banners", taken from a readvar response
445
434
  <param pos="2" name="os.arch"/>
446
435
  <param pos="3" name="os.version"/>
447
436
  </fingerprint>
437
+ <fingerprint pattern="processor=&quot;([^ ]+)&quot;,.*system=&quot;JUNOS/?([^ ]+)&quot;" flags="REG_DOT_NEWLINE,REG_ICASE">
438
+ <description>Juniper/Netscreen JunOS NTP without a version</description>
439
+ <example>processor="i386", system="JUNOS7.0R2.7", leap=0, stratum=3</example>
440
+ <example>processor="i386", system="JUNOS6.4R1.6", leap=3, stratum=16</example>
441
+ <example>processor="i386", system="JUNOS5.5R2.3", leap=0, stratum=3</example>
442
+ <param pos="0" name="os.vendor" value="Juniper"/>
443
+ <param pos="0" name="os.family" value="Junos"/>
444
+ <param pos="0" name="os.product" value="Junos OS"/>
445
+ <param pos="2" name="os.arch"/>
446
+ <param pos="3" name="os.version"/>
447
+ </fingerprint>
448
448
  <fingerprint pattern="^.*version=&quot;ntpd ([^ ]+)[^&quot;]+&quot;,.*processor=&quot;([^ ]+)&quot;,.*system=&quot;Windows/?([^ ]+)?&quot;" flags="REG_DOT_NEWLINE,REG_ICASE">
449
449
  <description>ntpd running on Windows</description>
450
450
  <example>
@@ -262,6 +262,16 @@
262
262
  <param pos="4" name="os.version"/>
263
263
  </fingerprint>
264
264
 
265
+ <fingerprint pattern="^(Windows (?:7|8|8\.1)(?:| RT)) (\d+) (Service Pack \d+)$">
266
+ <description>Windows 7/8 (SP)</description>
267
+ <example os.version="Service Pack 1">Windows 7 7601 Service Pack 1</example>
268
+ <param pos="0" name="os.certainty" value="1.0"/>
269
+ <param pos="0" name="os.vendor" value="Microsoft"/>
270
+ <param pos="1" name="os.product"/>
271
+ <param pos="2" name="os.build"/>
272
+ <param pos="3" name="os.version"/>
273
+ </fingerprint>
274
+
265
275
  <fingerprint pattern="^(Windows (?:7|8|8\.1)(?:| RT)) (\w+|\w+ \w+|\w+ \w+ \w+) (\d+)$">
266
276
  <description>Windows 7/8 (Edition)</description>
267
277
  <example os.edition="Enterprise">Windows 7 Enterprise 7600</example>
@@ -274,16 +284,6 @@
274
284
  <param pos="3" name="os.build"/>
275
285
  </fingerprint>
276
286
 
277
- <fingerprint pattern="^(Windows (?:7|8|8\.1)(?:| RT)) (\d+) (Service Pack \d+)$">
278
- <description>Windows 7/8 (SP)</description>
279
- <example os.version="Service Pack 1">Windows 7 7601 Service Pack 1</example>
280
- <param pos="0" name="os.certainty" value="1.0"/>
281
- <param pos="0" name="os.vendor" value="Microsoft"/>
282
- <param pos="1" name="os.product"/>
283
- <param pos="2" name="os.build"/>
284
- <param pos="3" name="os.version"/>
285
- </fingerprint>
286
-
287
287
  <fingerprint pattern="^(Windows (?:7|8|8\.1)(?:| RT)) (\d+)$">
288
288
  <description>Windows 7/8</description>
289
289
  <example>Windows 8 9200</example>
@@ -1895,7 +1895,6 @@ Copyright (c) 1995-2005 by Cisco Systems
1895
1895
  <example>Dell Laser Printer 5100cn (Net 6.26, Controller 200408201123, Engine 01.00.04)</example>
1896
1896
  <example>Dell Color Laser 3110cn; Net 8.29, Controller 200604102121, Engine 05.03.00</example>
1897
1897
  <example>Dell Color Laser 5110cn; Net 11.33, Controller 200612011020, Engine 01.03.00</example>
1898
- <example>Dell 2135cn MFP; Net 12.10, Controller 200903191302, Engine 03.00.10</example>
1899
1898
  <example>Dell 1235cn; V1.70.01.06 Nov-14-2008;Engine 1.77.74;NIC V4.00.54 10-31-2008;S/N GJ8TJH1</example>
1900
1899
  <example>Dell 1235cn; V1.70.01.08 Jan-29-2009;Engine 1.77.77;NIC V4.00.54 10-31-2008;S/N 9SMWJH1</example>
1901
1900
  <param pos="0" name="os.vendor" value="Dell"/>
@@ -1938,15 +1937,6 @@ Copyright (c) 1995-2005 by Cisco Systems
1938
1937
  <param pos="1" name="os.product"/>
1939
1938
  </fingerprint>
1940
1939
 
1941
- <fingerprint pattern="^Dell (\d{4}d?n) MFP.*$">
1942
- <description>Dell Laser Printer</description>
1943
- <example>Dell 2335dn MFP; 2.70.03.02;Engine 1.10.65;NIC V4.01.30(2335dn MFP) 02-05-2010;S/N JQF9FG1</example>
1944
- <param pos="0" name="os.vendor" value="Dell"/>
1945
- <param pos="0" name="os.family" value="Laser Printer"/>
1946
- <param pos="0" name="os.device" value="Multifunction Device"/>
1947
- <param pos="1" name="os.product"/>
1948
- </fingerprint>
1949
-
1950
1940
  <fingerprint pattern="^DELL Tape Library Remote Management Card$">
1951
1941
  <description>Dell PowerVault Tape Library</description>
1952
1942
  <example>DELL Tape Library Remote Management Card</example>
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: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rapid7 Research
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-08 00:00:00.000000000 Z
11
+ date: 2014-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec