Land #2500, msfupdate/msfconsole SVN purge
Tested a reasonable set of platforms, all looks good.bug/bundler_fix
commit
dc19aa0340
|
@ -1,13 +0,0 @@
|
|||
K 10
|
||||
ascii_cert
|
||||
V 1844
|
||||
MIIFYzCCBEugAwIBAgIHBHTfnZklJzANBgkqhkiG9w0BAQUFADCByjELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMuMTMwMQYDVQQLEypodHRwOi8vY2VydGlmaWNhdGVzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkxMDAuBgNVBAMTJ0dvIERhZGR5IFNlY3VyZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTERMA8GA1UEBRMIMDc5NjkyODcwHhcNMTAwMzE2MTIwOTU5WhcNMTMwNDAxMjIwMjI0WjBVMRcwFQYDVQQKEw5tZXRhc3Bsb2l0LmNvbTEhMB8GA1UECxMYRG9tYWluIENvbnRyb2wgVmFsaWRhdGVkMRcwFQYDVQQDEw5tZXRhc3Bsb2l0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK+V3Vs8M+48CofjzH5KE3MA1CmfXhz2vweW3x27TKhZBxbLLxVOpnbFTxfc6gD1NmcRfBRyRuGNclkwnkfQZ4YbkXIJWCjov0OZNfYTNOQbDtdZPK9q94h9wHUQOkpXl1k+Xe8+gVqLilqcS1ikISUQVsKBYa18FaT/PyFEv00ZsewtehL6C9oXCm81HH2S/HBu+CW1TJ3X5Loivs24aR65dzsKFhG2tnzUxox0Rg2ixPUue8xAoTGquujmy/0aa6yeT1kswFTLncTL/GLxQggtah9ul50pYQWRLuTNOIYsjSS32zPs1ZOTN8RkDrdCmEWPUxrzgmUmNQzKDvHjVp8CAwEAAaOCAcAwggG8MA8GA1UdEwEB/wQFMAMBAQAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB/wQEAwIFoDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmdvZGFkZHkuY29tL2dkczEtMTUuY3JsMFMGA1UdIARMMEowSAYLYIZIAYb9bQEHFwEwOTA3BggrBgEFBQcCARYraHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5LzCBgAYIKwYBBQUHAQEEdDByMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5nb2RhZGR5LmNvbS8wSgYIKwYBBQUHMAKGPmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeS9nZF9pbnRlcm1lZGlhdGUuY3J0MB8GA1UdIwQYMBaAFP2sYTKTbEXW4u6FX5q653aZaMznMC0GA1UdEQQmMCSCDm1ldGFzcGxvaXQuY29tghJ3d3cubWV0YXNwbG9pdC5jb20wHQYDVR0OBBYEFDkiSjDeC0NDm2ioUVerYRuLWtbyMA0GCSqGSIb3DQEBBQUAA4IBAQAgATMjfkj0zvvpTWSxVLUjtMTsei+lC8v79mTqM/+3DWZZj8Tc6xUyhxNreAW137WKiJxQSEnrdMzVxozp99iL4RYH1tVTukXV4XVkRbFrtAw7dCYV6dYbp4Ru4dy97CUBceUDCXQpC3t6CNU66RIg6UAa6MV7DmJrEUhNSAB5LqsY3oyhFcV5jT0QYGMC0XuUylzNBW4AWCnlMDysJhSJ75RHa9e76S6g8m4TWT3b02LCdunzcl1kq4cmH6xPr5X3U8CkV6YGBTQhltuNQMM5OBxga1lfCFa81hSSa3300f8YBhwMatloUgu5gzQh/o3nFDJL6CDh6/fCqZyI32r+
|
||||
K 8
|
||||
failures
|
||||
V 1
|
||||
8
|
||||
K 15
|
||||
svn:realmstring
|
||||
V 26
|
||||
https://metasploit.com:443
|
||||
END
|
|
@ -1,13 +0,0 @@
|
|||
K 10
|
||||
ascii_cert
|
||||
V 1844
|
||||
MIIFYzCCBEugAwIBAgIHBHTfnZklJzANBgkqhkiG9w0BAQUFADCByjELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMuMTMwMQYDVQQLEypodHRwOi8vY2VydGlmaWNhdGVzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkxMDAuBgNVBAMTJ0dvIERhZGR5IFNlY3VyZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTERMA8GA1UEBRMIMDc5NjkyODcwHhcNMTAwMzE2MTIwOTU5WhcNMTMwNDAxMjIwMjI0WjBVMRcwFQYDVQQKEw5tZXRhc3Bsb2l0LmNvbTEhMB8GA1UECxMYRG9tYWluIENvbnRyb2wgVmFsaWRhdGVkMRcwFQYDVQQDEw5tZXRhc3Bsb2l0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK+V3Vs8M+48CofjzH5KE3MA1CmfXhz2vweW3x27TKhZBxbLLxVOpnbFTxfc6gD1NmcRfBRyRuGNclkwnkfQZ4YbkXIJWCjov0OZNfYTNOQbDtdZPK9q94h9wHUQOkpXl1k+Xe8+gVqLilqcS1ikISUQVsKBYa18FaT/PyFEv00ZsewtehL6C9oXCm81HH2S/HBu+CW1TJ3X5Loivs24aR65dzsKFhG2tnzUxox0Rg2ixPUue8xAoTGquujmy/0aa6yeT1kswFTLncTL/GLxQggtah9ul50pYQWRLuTNOIYsjSS32zPs1ZOTN8RkDrdCmEWPUxrzgmUmNQzKDvHjVp8CAwEAAaOCAcAwggG8MA8GA1UdEwEB/wQFMAMBAQAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB/wQEAwIFoDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmdvZGFkZHkuY29tL2dkczEtMTUuY3JsMFMGA1UdIARMMEowSAYLYIZIAYb9bQEHFwEwOTA3BggrBgEFBQcCARYraHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5LzCBgAYIKwYBBQUHAQEEdDByMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5nb2RhZGR5LmNvbS8wSgYIKwYBBQUHMAKGPmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeS9nZF9pbnRlcm1lZGlhdGUuY3J0MB8GA1UdIwQYMBaAFP2sYTKTbEXW4u6FX5q653aZaMznMC0GA1UdEQQmMCSCDm1ldGFzcGxvaXQuY29tghJ3d3cubWV0YXNwbG9pdC5jb20wHQYDVR0OBBYEFDkiSjDeC0NDm2ioUVerYRuLWtbyMA0GCSqGSIb3DQEBBQUAA4IBAQAgATMjfkj0zvvpTWSxVLUjtMTsei+lC8v79mTqM/+3DWZZj8Tc6xUyhxNreAW137WKiJxQSEnrdMzVxozp99iL4RYH1tVTukXV4XVkRbFrtAw7dCYV6dYbp4Ru4dy97CUBceUDCXQpC3t6CNU66RIg6UAa6MV7DmJrEUhNSAB5LqsY3oyhFcV5jT0QYGMC0XuUylzNBW4AWCnlMDysJhSJ75RHa9e76S6g8m4TWT3b02LCdunzcl1kq4cmH6xPr5X3U8CkV6YGBTQhltuNQMM5OBxga1lfCFa81hSSa3300f8YBhwMatloUgu5gzQh/o3nFDJL6CDh6/fCqZyI32r+
|
||||
K 8
|
||||
failures
|
||||
V 1
|
||||
8
|
||||
K 15
|
||||
svn:realmstring
|
||||
V 30
|
||||
https://www.metasploit.com:443
|
||||
END
|
21
msfconsole
21
msfconsole
|
@ -30,27 +30,6 @@ if(RUBY_PLATFORM =~ /mswin32/)
|
|||
$stderr.puts " be handled correctly. Please install Cygwin or use Linux in VMWare.\n\n"
|
||||
end
|
||||
|
||||
def is_svn
|
||||
File.directory?(File.join(@msfbase_dir, ".svn"))
|
||||
end
|
||||
|
||||
def print_deprecation_warning
|
||||
$stdout.puts ""
|
||||
$stdout.puts "[-] Deprecation Note: Metasploit source checkouts NO LONGER update"
|
||||
$stdout.puts "[-] over SVN. You will need to reinstall Metasploit using"
|
||||
$stdout.puts "[-] binary installers (from http://www.metasploit.com/download ),"
|
||||
$stdout.puts "[-] Debian packages (currently only supported on Kali Linux), or"
|
||||
$stdout.puts "[-] a development source checkout from GitHub (see http://r-7.co/ZLhA8P )"
|
||||
$stdout.puts "[-] "
|
||||
$stdout.puts "[-] For more on msfupdate and migrating off of SVN, see http://r-7.co/MSF-UP"
|
||||
$stdout.puts ""
|
||||
end
|
||||
|
||||
if is_svn
|
||||
print_deprecation_warning
|
||||
end
|
||||
|
||||
|
||||
class OptsConsole
|
||||
#
|
||||
# Return a hash describing the options.
|
||||
|
|
79
msfupdate
79
msfupdate
|
@ -1,8 +1,12 @@
|
|||
#!/usr/bin/env ruby
|
||||
# -*- coding: binary -*-
|
||||
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# This keeps the framework up-to-date
|
||||
#
|
||||
# $Revision$
|
||||
#
|
||||
|
||||
msfbase = __FILE__
|
||||
while File.symlink?(msfbase)
|
||||
|
@ -13,9 +17,6 @@ end
|
|||
|
||||
@args = ARGV.dup
|
||||
|
||||
# May be changed
|
||||
@configdir = File.expand_path(File.join(File.dirname(msfbase), "data", "svn"))
|
||||
|
||||
Dir.chdir(@msfbase_dir)
|
||||
|
||||
$stderr.puts "[*]"
|
||||
|
@ -43,10 +44,6 @@ def is_git
|
|||
File.directory?(File.join(@msfbase_dir, ".git"))
|
||||
end
|
||||
|
||||
def is_svn
|
||||
File.directory?(File.join(@msfbase_dir, ".svn"))
|
||||
end
|
||||
|
||||
# Adding an upstream enables msfupdate to pull updates from
|
||||
# Rapid7's metasploit-framework repo instead of the repo
|
||||
# the user originally cloned or forked.
|
||||
|
@ -56,18 +53,6 @@ def add_git_upstream
|
|||
$stdout.puts "[*] Added remote 'upstream' to your local git repository."
|
||||
end
|
||||
|
||||
def print_deprecation_warning
|
||||
$stdout.puts ""
|
||||
$stdout.puts "[-] Deprecation Note: Metasploit source checkouts NO LONGER update"
|
||||
$stdout.puts "[-] over SVN. You will need to reinstall Metasploit using"
|
||||
$stdout.puts "[-] binary installers (from http://www.metasploit.com/download ),"
|
||||
$stdout.puts "[-] Debian packages (currently only supported on Kali Linux), or"
|
||||
$stdout.puts "[-] a development source checkout from GitHub (see http://r-7.co/ZLhA8P )"
|
||||
$stdout.puts "[-] "
|
||||
$stdout.puts "[-] For more on msfupdate and migrating off of SVN, see http://r-7.co/MSF-UP"
|
||||
$stdout.puts ""
|
||||
end
|
||||
|
||||
# This only exits if you actually pass a wait option, otherwise
|
||||
# just returns nil. This is likely unexpected, revisit this.
|
||||
def maybe_wait_and_exit(exit_code=0)
|
||||
|
@ -98,23 +83,12 @@ def apt_upgrade_available(package)
|
|||
end
|
||||
end
|
||||
|
||||
# Some of these args are meaningful for SVN, some for Git,
|
||||
# some for both. Fun times.
|
||||
@args.each_with_index do |arg,i|
|
||||
case arg
|
||||
# Handle the old wait/nowait argument behavior
|
||||
when "wait", "nowait"
|
||||
@wait_index = i
|
||||
@actually_wait = (arg == "wait")
|
||||
# An empty or absent config-dir means a default config-dir
|
||||
when "--config-dir"
|
||||
@configdir_index = i
|
||||
# A defined config dir means a defined config-dir
|
||||
when /--config-dir=(.*)?/
|
||||
# Spaces in the directory should be fine since this whole thing is passed
|
||||
# as a single argument via the multi-arg syntax for system() below.
|
||||
@configdir = $1
|
||||
@configdir_index = i
|
||||
when /--git-remote=([^\s]*)?/
|
||||
@git_remote = $1
|
||||
@git_remote_index = i
|
||||
|
@ -125,40 +99,16 @@ end
|
|||
end
|
||||
|
||||
@args[@wait_index] = nil if @wait_index
|
||||
@args[@configdir_index] = nil if @configdir_index
|
||||
|
||||
@args[@git_remote_index] = nil if @git_remote_index
|
||||
@args[@git_branch_index] = nil if @git_branch_index
|
||||
|
||||
@args = @args.compact
|
||||
|
||||
####### Since we're SVN, do it all this way #######
|
||||
if is_svn
|
||||
# We're fully deprecated now, so just exit.
|
||||
# Leaving in the commented code in case someone wants to
|
||||
# get a last-chance at msfupdate before the SVN server goes
|
||||
# off line, which will be ANY DAY NOW. Seriously.
|
||||
print_deprecation_warning
|
||||
$stdin.readline if @actually_wait
|
||||
exit(0x11) # Comment this to get old functionality back.
|
||||
@args.push("--config-dir=#{@configdir}")
|
||||
@args.push("--non-interactive")
|
||||
|
||||
res = system("svn", "cleanup")
|
||||
if res.nil?
|
||||
$stderr.puts "[-] ERROR: Failed to run svn"
|
||||
$stderr.puts ""
|
||||
$stderr.puts "[-] If you used a binary installer, make sure you run the symlink in"
|
||||
$stderr.puts "[-] /usr/local/bin instead of running this file directly (e.g.: ./msfupdate)"
|
||||
$stderr.puts "[-] to ensure a proper environment."
|
||||
maybe_wait_and_exit 1
|
||||
else
|
||||
# Cleanup worked, go ahead and update
|
||||
system("svn", "update", *@args)
|
||||
end
|
||||
end
|
||||
|
||||
####### Since we're Git, do it all that way #######
|
||||
if is_git
|
||||
$stdout.puts "[*] Checking for updates via git"
|
||||
$stdout.puts "[*] Note: Updating from bleeding edge"
|
||||
out = `git remote show upstream` # Actually need the output for this one.
|
||||
add_git_upstream unless $?.success? and out =~ %r{(https|git|git@github\.com):(//github\.com/)?(rapid7/metasploit-framework\.git)}
|
||||
|
||||
|
@ -220,15 +170,18 @@ if is_installed
|
|||
$stdout.puts ""
|
||||
$stdout.puts "[-] In order to update your Metasploit installation,"
|
||||
$stdout.puts "[-] you must first register it through the UI, here:"
|
||||
$stderr.puts "[-] https://localhost:3790 (note, Metasploit Community"
|
||||
$stderr.puts "[-] Edition is totally free and takes just a few seconds"
|
||||
$stderr.puts "[-] to register!)"
|
||||
$stderr.puts "[-] https://localhost:3790"
|
||||
$stderr.puts "[-] (Note: Metasploit Community Edition is totally"
|
||||
$stderr.puts "[-] free and takes just a few seconds to register!)"
|
||||
maybe_wait_and_exit 11
|
||||
end
|
||||
end
|
||||
|
||||
if is_apt
|
||||
$stdout.puts "[*] Checking for updates"
|
||||
# For more information, see here:
|
||||
# https://community.rapid7.com/community/metasploit/blog/2013/01/17/metasploit-updates-and-msfupdate
|
||||
$stdout.puts "[*] Checking for updates via the APT repository"
|
||||
$stdout.puts "[*] Note: expect weekly(ish) updates using this method"
|
||||
system("apt-get", "-qq", "update")
|
||||
|
||||
packages = []
|
||||
|
@ -247,7 +200,7 @@ if is_apt
|
|||
end
|
||||
end
|
||||
|
||||
unless is_svn || is_git || is_installed || is_apt
|
||||
unless is_git || is_installed || is_apt
|
||||
raise RuntimeError, "Cannot determine checkout type: `#{@msfbase_dir}'"
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue