diff --git a/data/msfweb/app/controllers/encoders_controller.rb b/data/msfweb/app/controllers/encoders_controller.rb index f3a5674eb1..b702d20c85 100644 --- a/data/msfweb/app/controllers/encoders_controller.rb +++ b/data/msfweb/app/controllers/encoders_controller.rb @@ -1,6 +1,7 @@ class EncodersController < ApplicationController def list + @all_encoders = Encoder.get_available() end def view diff --git a/data/msfweb/app/controllers/nops_controller.rb b/data/msfweb/app/controllers/nops_controller.rb index a83b5a6db8..6eb15d8b6d 100644 --- a/data/msfweb/app/controllers/nops_controller.rb +++ b/data/msfweb/app/controllers/nops_controller.rb @@ -1,6 +1,7 @@ class NopsController < ApplicationController def list + @all_nops = Nop.get_available() end def view diff --git a/data/msfweb/app/models/encoder.rb b/data/msfweb/app/models/encoder.rb index d570dda170..268eb974f5 100644 --- a/data/msfweb/app/models/encoder.rb +++ b/data/msfweb/app/models/encoder.rb @@ -1,3 +1,7 @@ class Encoder + def self.get_available() + return $msframework.encoders + end + end diff --git a/data/msfweb/app/models/nop.rb b/data/msfweb/app/models/nop.rb index d25af73f0a..be6c6106ab 100644 --- a/data/msfweb/app/models/nop.rb +++ b/data/msfweb/app/models/nop.rb @@ -1,3 +1,7 @@ class Nop + def self.get_available() + return $msframework.nops + end + end diff --git a/data/msfweb/app/views/exploits/list.rhtml b/data/msfweb/app/views/exploits/list.rhtml index f49ea19d49..5851d05c66 100644 --- a/data/msfweb/app/views/exploits/list.rhtml +++ b/data/msfweb/app/views/exploits/list.rhtml @@ -1,17 +1,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/data/msfweb/app/views/layouts/msfweb.rhtml b/data/msfweb/app/views/layouts/msfweb.rhtml index 7e7400980e..e6be2c2083 100644 --- a/data/msfweb/app/views/layouts/msfweb.rhtml +++ b/data/msfweb/app/views/layouts/msfweb.rhtml @@ -22,11 +22,6 @@ dojo.require("dojo.widget.Tooltip"); dojo.require("dojo.widget.ContentPane"); dojo.require("dojo.widget.SortableTable"); - dojo.require("dojo.widget.Tree"); - dojo.require("dojo.widget.TreeRPCController"); - dojo.require("dojo.widget.TreeSelector"); - dojo.require("dojo.widget.TreeNode"); - dojo.require("dojo.widget.TreeContextMenu"); dojo.hostenv.writeIncludes(); @@ -34,35 +29,37 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -86,7 +83,7 @@ Thanks to H.D.M for the functionality suggestions and developing a ground-breaking project: Metasploit.
- +
<%= @content_for_layout %>
diff --git a/data/msfweb/app/views/msf/index.rhtml b/data/msfweb/app/views/msf/index.rhtml index e69de29bb2..329235f01f 100644 --- a/data/msfweb/app/views/msf/index.rhtml +++ b/data/msfweb/app/views/msf/index.rhtml @@ -0,0 +1,7 @@ + +
+ Use the top menu for accessing the Metasploit modules and functionality. + Ex. Exploits, Payloads, Encoders.
+ Active windows will appear in the taskbar (look at the page bottom). + Have phun! +
\ No newline at end of file diff --git a/data/msfweb/app/views/payloads/list.rhtml b/data/msfweb/app/views/payloads/list.rhtml index 8359e60593..97537d3950 100644 --- a/data/msfweb/app/views/payloads/list.rhtml +++ b/data/msfweb/app/views/payloads/list.rhtml @@ -1,17 +1,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/data/msfweb/public/javascripts/application.js b/data/msfweb/public/javascripts/application.js index ad54c41472..385a5a7c3e 100644 --- a/data/msfweb/public/javascripts/application.js +++ b/data/msfweb/public/javascripts/application.js @@ -13,4 +13,49 @@ function helper_functions(e) { about_dlg.setCloseControl(btn); } +/* Description: Simple window management code. + * Thanks: tk and dmachi for suggestions + */ + +function load_stateful_window(target_url, nid, ntitle, nstyle) { + // create new floating pane (window) + var new_window = create_new_window(nid, ntitle, nstyle, "normal", "maintaskbar"); + // create new content pane + var new_contentpane = dojo.widget.createWidget("ContentPane", {href: target_url}); + // add new content pane to new floating pane as child + new_window.addChild(new_contentpane); + // add new floating pane to main pane + main_Pane.addChild(new_window); +} + +function create_new_window(window_id, window_title, window_style, window_state, target_taskbar) { + var myNewFloatingPane = dojo.widget.createWidget("FloatingPane", + { + /* floating pane params */ + id: window_id, + title: window_title, + constrainToContainer: "true", + hasShadow: "false", + resizable: "true", + taskBarId: target_taskbar, + windowState: window_state, + displayCloseAction: "true", + displayMinimizeAction: "true", + toggle: "explode", + style: window_style + }); + + return myNewFloatingPane; +} + +function generate_window_style(width, height) { + var generic_css = "position: relative;" + + "left: 100px;" + + "top: 35px;" + + "display:none;" + + "width: " + width +"px;" + + "height: "+ height +"px;" + return generic_css; +} + dojo.addOnLoad(helper_functions); \ No newline at end of file diff --git a/data/msfweb/public/javascripts/src/widget/html/ContentPane.js b/data/msfweb/public/javascripts/src/widget/html/ContentPane.js index 8c045da3e3..1f719f6c97 100644 --- a/data/msfweb/public/javascripts/src/widget/html/ContentPane.js +++ b/data/msfweb/public/javascripts/src/widget/html/ContentPane.js @@ -72,6 +72,23 @@ dojo.lang.extend(dojo.widget.html.ContentPane, { if(this.isShowing()||this.preload){ this.loadContents(); } }, + moveChildTo: function(/*Object*/child, /*Object*/dest){ + if(!dojo.lang.isObject(child)||!dojo.lang.isObject(dest)){ + return false; + } + var c = (!dojo.dom.isNode(child))?((dojo.dom.isNode(child.domNode))?child.domNode:child):false; + if(c==false){ + return c; + } + for(var i=0;i