metasploit_data_models 2.0.0 → 2.0.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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/app/models/mdm/host.rb +22 -0
- data/lib/metasploit_data_models/version.rb +1 -1
- data/spec/app/models/mdm/host_spec.rb +23 -0
- data/spec/factories/mdm/hosts.rb +1 -1
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d898095525d403883a5352fb14f2efff85903028
|
4
|
+
data.tar.gz: 434cff7ec8f7c9ee4193113c0a060bb3d4203679
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e64b1d46d9ad49a17d9a54c2c0bf7f9f59f3a5e24f78792e35fe6d4c7c2f7ba1445b3a8672c10b19713f121705d3d4c04dbf5ccf17ee724be7fabc86a02292f3
|
7
|
+
data.tar.gz: e0740f66d27b750de959950aa422864c81d64f28aac7ec8b3d0cd13db31bb7e378e70d926b4c9ad6d1c8c811cf7215fe12ba00b317df2aa58df4026e77f70a3c
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/app/models/mdm/host.rb
CHANGED
@@ -61,6 +61,21 @@ class Mdm::Host < ActiveRecord::Base
|
|
61
61
|
'unknown'
|
62
62
|
]
|
63
63
|
|
64
|
+
# Valid MAC address value
|
65
|
+
#hyphen-separated: 1a-2B-3c-4D-5e-6f
|
66
|
+
MAC_ADDRESS_HYPHEN_REGEX = /\A(?:[A-F0-9]{2}[-]){5}[A-F0-9]{2}\z/i
|
67
|
+
|
68
|
+
#colon-separated: 1a:2B:3c:4D:5e:6f
|
69
|
+
MAC_ADDRESS_COLON_REGEX = /\A(?:[A-F0-9]{2}[:]){5}[A-F0-9]{2}\z/i
|
70
|
+
|
71
|
+
#XXX for now, allow en empty MAC so as not to break things that exist with
|
72
|
+
# empty MACs.
|
73
|
+
MAC_ADDRESS_EMPTY_REGEX = /\A\z/
|
74
|
+
|
75
|
+
# 6-tuple of hex (case-insensitive) doublets (or empty)
|
76
|
+
MAC_ADDRESS_REGEX = Regexp.union(MAC_ADDRESS_HYPHEN_REGEX, MAC_ADDRESS_COLON_REGEX,
|
77
|
+
MAC_ADDRESS_EMPTY_REGEX)
|
78
|
+
|
64
79
|
#
|
65
80
|
# Aggregations
|
66
81
|
#
|
@@ -474,6 +489,13 @@ class Mdm::Host < ActiveRecord::Base
|
|
474
489
|
:inclusion => {
|
475
490
|
:in => ARCHITECTURES
|
476
491
|
}
|
492
|
+
|
493
|
+
validates :mac,
|
494
|
+
:format => {
|
495
|
+
:with => MAC_ADDRESS_REGEX,
|
496
|
+
:message => 'must be a valid MAC address'
|
497
|
+
}
|
498
|
+
|
477
499
|
validates :state,
|
478
500
|
:allow_nil => true,
|
479
501
|
:inclusion => {
|
@@ -55,6 +55,29 @@ RSpec.describe Mdm::Host, type: :model do
|
|
55
55
|
it { is_expected.to eq(0.84) }
|
56
56
|
end
|
57
57
|
|
58
|
+
describe 'MAC address format validation' do
|
59
|
+
context 'when colon delimited' do
|
60
|
+
it 'is valid' do
|
61
|
+
host = FactoryGirl.build(:mdm_host, mac: '1a:2B:3c:4D:5e:6f')
|
62
|
+
expect(host).to be_valid
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context 'when hyphen delimited' do
|
67
|
+
it 'is valid' do
|
68
|
+
host = FactoryGirl.build(:mdm_host, mac: '1a-2B-3c-4D-5e-6f')
|
69
|
+
expect(host).to be_valid
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context 'when mixed colon-hyphen delimited ' do
|
74
|
+
it 'is invalid' do
|
75
|
+
host = FactoryGirl.build(:mdm_host, mac: '1a:2B:3c-4D:5e:6f')
|
76
|
+
expect(host).to be_invalid
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
58
81
|
context '#destroy' do
|
59
82
|
it 'should successfully destroy the object and the dependent objects' do
|
60
83
|
host = FactoryGirl.create(:mdm_host)
|
data/spec/factories/mdm/hosts.rb
CHANGED
@@ -10,13 +10,13 @@ FactoryGirl.define do
|
|
10
10
|
#
|
11
11
|
address { generate :mdm_ipv4_address }
|
12
12
|
name { generate :mdm_host_name }
|
13
|
+
mac { generate :mdm_host_mac }
|
13
14
|
|
14
15
|
factory :full_mdm_host do
|
15
16
|
arch { generate :mdm_host_arch }
|
16
17
|
comm { generate :mdm_host_comm }
|
17
18
|
comments { generate :mdm_host_comments }
|
18
19
|
info { generate :mdm_host_info }
|
19
|
-
mac { generate :mdm_host_mac }
|
20
20
|
os_flavor { generate :mdm_host_os_flavor }
|
21
21
|
os_lang { generate :mdm_host_os_lang }
|
22
22
|
os_name { generate :mdm_host_os_name }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metasploit_data_models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Huckins
|
@@ -88,7 +88,7 @@ cert_chain:
|
|
88
88
|
2SpuQH+SWteq3NXkAmFEEqvLJQ4sbptZt8OP8ghL3pVAvZNFmww/YVszSkShSzcg
|
89
89
|
QdihYCSEL2drS2cFd50jBeq71sxUtxbv82DUa2b+
|
90
90
|
-----END CERTIFICATE-----
|
91
|
-
date: 2016-
|
91
|
+
date: 2016-09-21 00:00:00.000000000 Z
|
92
92
|
dependencies:
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
94
|
name: metasploit-yard
|
metadata.gz.sig
CHANGED
Binary file
|