metasploit_data_models 0.22.8 → 0.23.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NWNjYTUzNTQ0ZWNlMmY4YmQ4NTBkY2ExMGUzZmM3YTAzZDRlYmM0YQ==
5
- data.tar.gz: !binary |-
6
- YjllYjA5Zjk5NTdlMmQ0OTU2YzUyZjc1NGNjMmQxMzA2Yjg3MDI4Zg==
2
+ SHA1:
3
+ metadata.gz: 5e8bc2e148729867ec972b74493e62d471823696
4
+ data.tar.gz: 56c14fa5d0c88baf42f3c57482b0e0de09bf6bb9
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YmYyNjI5OWQ0YTAxMTNhYmIwZDcwYjA1YWEzNzllZTE1M2IwOWZlOTNhNDk5
10
- Y2EyNjNiMmNjODVmYTgyMTY1Njg3YjRiNWIzNTQ4OWYwOTRjYWE3NzUyNzc2
11
- NjAwOWM5OTVlMWFlMjg2NjYxZTliYTdiMzY0ODNiZDMxZTc3Mzk=
12
- data.tar.gz: !binary |-
13
- OGYzZDU3ZGRiYjEwYjg5NDRkZmM4YWZmMjcyZDk0M2QyY2Q0YjVhYzgxYjhi
14
- ZGJhODU4NmU4ZjgzOTIzOGVkZTNlZjg1NzM4N2IzNzE0MjhmYzcwODM1YWVh
15
- MjdlMDEwNjczNGQ3YTFhZTNlNDFiNDNmZDBlMjQyMWNjMzY2MTk=
6
+ metadata.gz: 9f3f0d5d0bd3ad985783b7af153ed18a5b40eb77a028efc4d385c485f80eb212221093440d18912d10d49e1e81cd1e26105af841fdc59914e3daf8d48773a038
7
+ data.tar.gz: ed3459352d3b161d487db7afa170ddae756192f3ddc2563a2dd3c73f0c0ac514def03d48c162612e2fddcddd4d58550f81f8741c823c1950f66a98cb7c6c6c86
@@ -4,8 +4,6 @@ before_script:
4
4
  cache: bundler
5
5
  language: ruby
6
6
  rvm:
7
- - 1.9.3
8
- - 2.0
9
7
  - 2.1
10
8
  - jruby-1.7.17
11
9
  sudo: false
@@ -148,7 +148,7 @@ If your changes are incompatible with the previous branch's API, then increment
148
148
  - [ ] `rake release`
149
149
 
150
150
  ## MRI Ruby
151
- - [ ] `rvm use ruby-1.9.3@metasploit_data_models`
151
+ - [ ] `rvm use ruby-2.1@metasploit_data_models`
152
152
  - [ ] `rm Gemfile.lock`
153
153
  - [ ] `bundle install`
154
154
  - [ ] `rake release`
@@ -217,6 +217,14 @@ class Mdm::Service < ActiveRecord::Base
217
217
  numericality: {
218
218
  only_integer: true
219
219
  }
220
+ validates :port,
221
+ uniqueness: {
222
+ message: 'already exists on this host and protocol',
223
+ scope: [
224
+ :host_id,
225
+ :proto
226
+ ]
227
+ }
220
228
  validates :proto,
221
229
  inclusion: {
222
230
  in: PROTOS
@@ -0,0 +1,12 @@
1
+ class RemoveDuplicateServices2 < ActiveRecord::Migration
2
+ def change
3
+ duplicate_keys = Mdm::Service.count(group: [:host_id, :port, :proto]).select { |k,v| v >1 }.keys
4
+ duplicate_keys.each do |keys|
5
+ duplicate_services = Mdm::Service.where(host_id: keys[0], port: keys[1], proto: keys[2]).order(:created_at)
6
+ duplicate_services.pop
7
+ duplicate_services.each(&:destroy)
8
+ end
9
+
10
+ add_index :services, [:host_id, :port, :proto], unique: true
11
+ end
12
+ end
@@ -4,9 +4,9 @@ module MetasploitDataModels
4
4
  # The major version number.
5
5
  MAJOR = 0
6
6
  # The minor version number, scoped to the {MAJOR} version number.
7
- MINOR = 22
7
+ MINOR = 23
8
8
  # The patch number, scoped to the {MINOR} version number.
9
- PATCH = 8
9
+ PATCH = 0
10
10
 
11
11
  # The full version string, including the {MAJOR}, {MINOR}, {PATCH}, and optionally, the `PRERELEASE` in the
12
12
  # {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0} format.
@@ -26,6 +26,8 @@ Gem::Specification.new do |s|
26
26
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
27
27
  s.require_paths = ['lib']
28
28
 
29
+ s.required_ruby_version = '>= 2.1'
30
+
29
31
  # ---- Dependencies ----
30
32
  s.add_development_dependency 'rake'
31
33
 
@@ -154,5 +154,13 @@ describe Mdm::Service do
154
154
  it { should validate_numericality_of(:port).only_integer }
155
155
  it { should ensure_inclusion_of(:proto).in_array(described_class::PROTOS) }
156
156
 
157
+ context 'when a duplicate service already exists' do
158
+ let(:service1) { FactoryGirl.create(:mdm_service)}
159
+ let(:service2) { FactoryGirl.build(:mdm_service, :host => service1.host, :port => service1.port, :proto => service1.proto )}
160
+ it 'is not valid' do
161
+ expect(service2).to_not be_valid
162
+ end
163
+ end
164
+
157
165
  end
158
166
  end
@@ -2686,6 +2686,13 @@ CREATE INDEX index_notes_on_ntype ON notes USING btree (ntype);
2686
2686
  CREATE INDEX index_refs_on_name ON refs USING btree (name);
2687
2687
 
2688
2688
 
2689
+ --
2690
+ -- Name: index_services_on_host_id_and_port_and_proto; Type: INDEX; Schema: public; Owner: -; Tablespace:
2691
+ --
2692
+
2693
+ CREATE UNIQUE INDEX index_services_on_host_id_and_port_and_proto ON services USING btree (host_id, port, proto);
2694
+
2695
+
2689
2696
  --
2690
2697
  -- Name: index_services_on_name; Type: INDEX; Schema: public; Owner: -; Tablespace:
2691
2698
  --
@@ -2991,6 +2998,8 @@ INSERT INTO schema_migrations (version) VALUES ('20150112203945');
2991
2998
 
2992
2999
  INSERT INTO schema_migrations (version) VALUES ('20150205192745');
2993
3000
 
3001
+ INSERT INTO schema_migrations (version) VALUES ('20150212214222');
3002
+
2994
3003
  INSERT INTO schema_migrations (version) VALUES ('21');
2995
3004
 
2996
3005
  INSERT INTO schema_migrations (version) VALUES ('22');
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: 0.22.8
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Huckins
@@ -11,180 +11,180 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-02-09 00:00:00.000000000 Z
14
+ date: 2015-02-18 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rake
18
18
  requirement: !ruby/object:Gem::Requirement
19
19
  requirements:
20
- - - ! '>='
20
+ - - ">="
21
21
  - !ruby/object:Gem::Version
22
22
  version: '0'
23
23
  type: :development
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ! '>='
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: yard
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
- - - <
34
+ - - "<"
35
35
  - !ruby/object:Gem::Version
36
36
  version: 0.8.7.4
37
37
  type: :development
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - <
41
+ - - "<"
42
42
  - !ruby/object:Gem::Version
43
43
  version: 0.8.7.4
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: pry
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
- - - ! '>='
48
+ - - ">="
49
49
  - !ruby/object:Gem::Version
50
50
  version: '0'
51
51
  type: :development
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
- - - ! '>='
55
+ - - ">="
56
56
  - !ruby/object:Gem::Version
57
57
  version: '0'
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: activerecord
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
- - - ! '>='
62
+ - - ">="
63
63
  - !ruby/object:Gem::Version
64
64
  version: 3.2.13
65
- - - <
65
+ - - "<"
66
66
  - !ruby/object:Gem::Version
67
67
  version: 4.0.0
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - ! '>='
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: 3.2.13
75
- - - <
75
+ - - "<"
76
76
  - !ruby/object:Gem::Version
77
77
  version: 4.0.0
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: activesupport
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - ! '>='
82
+ - - ">="
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  type: :runtime
86
86
  prerelease: false
87
87
  version_requirements: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - ! '>='
89
+ - - ">="
90
90
  - !ruby/object:Gem::Version
91
91
  version: '0'
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: recog
94
94
  requirement: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - ~>
96
+ - - "~>"
97
97
  - !ruby/object:Gem::Version
98
98
  version: '1.0'
99
99
  type: :runtime
100
100
  prerelease: false
101
101
  version_requirements: !ruby/object:Gem::Requirement
102
102
  requirements:
103
- - - ~>
103
+ - - "~>"
104
104
  - !ruby/object:Gem::Version
105
105
  version: '1.0'
106
106
  - !ruby/object:Gem::Dependency
107
107
  name: metasploit-concern
108
108
  requirement: !ruby/object:Gem::Requirement
109
109
  requirements:
110
- - - ~>
110
+ - - "~>"
111
111
  - !ruby/object:Gem::Version
112
112
  version: 0.3.0
113
113
  type: :runtime
114
114
  prerelease: false
115
115
  version_requirements: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - ~>
117
+ - - "~>"
118
118
  - !ruby/object:Gem::Version
119
119
  version: 0.3.0
120
120
  - !ruby/object:Gem::Dependency
121
121
  name: metasploit-model
122
122
  requirement: !ruby/object:Gem::Requirement
123
123
  requirements:
124
- - - ~>
124
+ - - "~>"
125
125
  - !ruby/object:Gem::Version
126
126
  version: 0.29.0
127
127
  type: :runtime
128
128
  prerelease: false
129
129
  version_requirements: !ruby/object:Gem::Requirement
130
130
  requirements:
131
- - - ~>
131
+ - - "~>"
132
132
  - !ruby/object:Gem::Version
133
133
  version: 0.29.0
134
134
  - !ruby/object:Gem::Dependency
135
135
  name: railties
136
136
  requirement: !ruby/object:Gem::Requirement
137
137
  requirements:
138
- - - <
138
+ - - "<"
139
139
  - !ruby/object:Gem::Version
140
140
  version: 4.0.0
141
141
  type: :runtime
142
142
  prerelease: false
143
143
  version_requirements: !ruby/object:Gem::Requirement
144
144
  requirements:
145
- - - <
145
+ - - "<"
146
146
  - !ruby/object:Gem::Version
147
147
  version: 4.0.0
148
148
  - !ruby/object:Gem::Dependency
149
149
  name: arel-helpers
150
150
  requirement: !ruby/object:Gem::Requirement
151
151
  requirements:
152
- - - ! '>='
152
+ - - ">="
153
153
  - !ruby/object:Gem::Version
154
154
  version: '0'
155
155
  type: :runtime
156
156
  prerelease: false
157
157
  version_requirements: !ruby/object:Gem::Requirement
158
158
  requirements:
159
- - - ! '>='
159
+ - - ">="
160
160
  - !ruby/object:Gem::Version
161
161
  version: '0'
162
162
  - !ruby/object:Gem::Dependency
163
163
  name: redcarpet
164
164
  requirement: !ruby/object:Gem::Requirement
165
165
  requirements:
166
- - - ! '>='
166
+ - - ">="
167
167
  - !ruby/object:Gem::Version
168
168
  version: '0'
169
169
  type: :development
170
170
  prerelease: false
171
171
  version_requirements: !ruby/object:Gem::Requirement
172
172
  requirements:
173
- - - ! '>='
173
+ - - ">="
174
174
  - !ruby/object:Gem::Version
175
175
  version: '0'
176
176
  - !ruby/object:Gem::Dependency
177
177
  name: pg
178
178
  requirement: !ruby/object:Gem::Requirement
179
179
  requirements:
180
- - - ! '>='
180
+ - - ">="
181
181
  - !ruby/object:Gem::Version
182
182
  version: '0'
183
183
  type: :runtime
184
184
  prerelease: false
185
185
  version_requirements: !ruby/object:Gem::Requirement
186
186
  requirements:
187
- - - ! '>='
187
+ - - ">="
188
188
  - !ruby/object:Gem::Version
189
189
  version: '0'
190
190
  description: Implements minimal ActiveRecord models and database helper code used
@@ -199,12 +199,12 @@ executables:
199
199
  extensions: []
200
200
  extra_rdoc_files: []
201
201
  files:
202
- - .coveralls.yml
203
- - .gitignore
204
- - .rspec
205
- - .simplecov
206
- - .travis.yml
207
- - .yardopts
202
+ - ".coveralls.yml"
203
+ - ".gitignore"
204
+ - ".rspec"
205
+ - ".simplecov"
206
+ - ".travis.yml"
207
+ - ".yardopts"
208
208
  - CONTRIBUTING.md
209
209
  - Gemfile
210
210
  - LICENSE
@@ -395,6 +395,7 @@ files:
395
395
  - db/migrate/20140905031549_add_detected_arch_to_host.rb
396
396
  - db/migrate/20150112203945_remove_duplicate_services.rb
397
397
  - db/migrate/20150205192745_drop_service_uniqueness_index.rb
398
+ - db/migrate/20150212214222_remove_duplicate_services2.rb
398
399
  - lib/mdm.rb
399
400
  - lib/mdm/host/operating_system_normalization.rb
400
401
  - lib/mdm/module.rb
@@ -593,17 +594,17 @@ require_paths:
593
594
  - lib
594
595
  required_ruby_version: !ruby/object:Gem::Requirement
595
596
  requirements:
596
- - - ! '>='
597
+ - - ">="
597
598
  - !ruby/object:Gem::Version
598
- version: '0'
599
+ version: '2.1'
599
600
  required_rubygems_version: !ruby/object:Gem::Requirement
600
601
  requirements:
601
- - - ! '>='
602
+ - - ">="
602
603
  - !ruby/object:Gem::Version
603
604
  version: '0'
604
605
  requirements: []
605
606
  rubyforge_project:
606
- rubygems_version: 2.4.5
607
+ rubygems_version: 2.4.3
607
608
  signing_key:
608
609
  specification_version: 4
609
610
  summary: Database code for MSF and Metasploit Pro