rapid7/metasploit-framework — pull request #1514 by todb-r7 (2013-02-24 15:43:24+00:00)
Title: Feature/go pro

This allows for launching the Metasploit web UI (aka Metasploit Community or Metasploit Pro) from the msfconsole. It does a few things:

* Checks to see that this is a debian-packaged version of Metasploit Framework (this won't work otherwise ATM, but can be extended)
* Checks if the web UI is actually installed in the debian fashion.
* Checks if the attendant metasploit services are running (the web and rpc interfaces)
* Launches the browser.

Notably, none of this will happen if this is a binary installed version of Metasploit (aka, the usual windows/linux installers) or a source install (and the user will be politely informed as such).

Screen shot of the whole process in action, here:

https://gist.github.com/todb-r7/c8e83c7ab4a1abce79e2 (you won't see the browser launch in a console cut-n-paste, obviously, but it happens).

I'm specifically interested in feedback from @hmoore-r7 and @bturner-r7 -- HD mentioned that this framework-then-pro sequence of installation can cause some trouble in the database schema, but after clicking around, I'm unable to reproduce any problems. I'm inclined now to believe that Brandon anticipated this in the packaging, but a confirm from either would be good.

Also for everyone else, unless you have access to the secret betas of the Metasploit debian packages, you won't be able to test or see this in action. Coming soon, though!

Things I'm not super pleased with:

* msfconsole is getting pretty big, lacks unit tests, and needs to be split up like db.rb
* There's not a whole lot of messaging in the case of failure along the way. The user should be able to see what happens since we echo out the stdout of all the commands, but this can still confuse people in unanticipated ways.
* There's a lot of shelling out going on, so it's not exactly cross-platform. This is strictly for the one environment. Someday (soon) the binary installers and (later) the source install should pick up this functionality as well.