File tree Expand file tree Collapse file tree 2 files changed +47
-1
lines changed
lib/msf/core/modules/external Expand file tree Collapse file tree 2 files changed +47
-1
lines changed Original file line number Diff line number Diff line change @@ -13,6 +13,8 @@ def self.generate(module_path)
13
13
capture_server ( mod )
14
14
when 'dos'
15
15
dos ( mod )
16
+ when 'scanner.multi'
17
+ multi_scanner ( mod )
16
18
else
17
19
# TODO have a nice load error show up in the logs
18
20
''
@@ -35,7 +37,7 @@ def self.mod_meta_common(mod, meta = {})
35
37
meta [ :authors ] = mod . meta [ 'authors' ] . map ( &:dump ) . join ( ",\n " )
36
38
37
39
meta [ :options ] = mod . meta [ 'options' ] . map do |n , o |
38
- "Opt#{ o [ 'type' ] . capitalize } .new(#{ n . dump } ,
40
+ "Opt#{ o [ 'type' ] . camelize } .new(#{ n . dump } ,
39
41
[#{ o [ 'required' ] } , #{ o [ 'description' ] . dump } , #{ o [ 'default' ] . inspect } ])"
40
42
end . join ( ",\n " )
41
43
meta
@@ -69,6 +71,16 @@ def self.capture_server(mod)
69
71
render_template ( 'capture_server.erb' , meta )
70
72
end
71
73
74
+ def self . multi_scanner ( mod )
75
+ meta = mod_meta_common ( mod )
76
+ meta [ :date ] = mod . meta [ 'date' ] . dump
77
+ meta [ :references ] = mod . meta [ 'references' ] . map do |r |
78
+ "[#{ r [ 'type' ] . upcase . dump } , #{ r [ 'ref' ] . dump } ]"
79
+ end . join ( ",\n " )
80
+
81
+ render_template ( 'multi_scanner.erb' , meta )
82
+ end
83
+
72
84
def self . dos ( mod )
73
85
meta = mod_meta_common ( mod )
74
86
meta [ :date ] = mod . meta [ 'date' ] . dump
Original file line number Diff line number Diff line change
1
+ require 'msf/core/modules/external/bridge'
2
+ require 'msf/core/module/external'
3
+
4
+ class MetasploitModule < Msf::Auxiliary
5
+ include Msf::Auxiliary::Scanner
6
+ include Msf::Module::External
7
+
8
+ def initialize
9
+ super({
10
+ <%= common_metadata meta %>
11
+ 'References' =>
12
+ [
13
+ <%= meta [ :references ] %>
14
+ ],
15
+ 'DisclosureDate' => <%= meta [ :date ] %> ,
16
+ })
17
+
18
+ register_options([
19
+ <%= meta [ :options ] %>
20
+ ])
21
+ end
22
+
23
+ def run_batch_size
24
+ 200
25
+ end
26
+
27
+ def run_batch(ips)
28
+ mod = Msf::Modules::External::Bridge.open(<%= meta [ :path ] %> )
29
+ datastore.delete('RHOSTS')
30
+ datastore['rhosts'] = ips
31
+ mod.run(datastore)
32
+ wait_status(mod)
33
+ end
34
+ end
You can’t perform that action at this time.
0 commit comments