From 4edab3e9616caf5fb10858854502db5a605df66a Mon Sep 17 00:00:00 2001 From: Brendan Coles Date: Sat, 15 Apr 2017 09:56:01 +0000 Subject: [PATCH] Save data to ~/.beef - Fix #1254 --- beef | 8 ++++++++ modules/browser/spyder_eye/module.rb | 2 +- modules/host/get_wireless_keys/module.rb | 7 ++++--- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/beef b/beef index ab5388efc..f6612c219 100755 --- a/beef +++ b/beef @@ -19,6 +19,7 @@ end $:.unshift(File.join(File.expand_path(File.dirname(__FILE__)), '.')) $root_dir = File.expand_path('..', __FILE__) +$home_dir = File.expand_path('~/.beef', __FILE__).freeze # @note Require core loader's require 'core/loader' @@ -123,6 +124,13 @@ if config.get("beef.credentials.user").eql?('beef') && config.get("beef.credenti print_warning "Warning: Default username and password in use!" end +# @note create ~/.beef/ +begin + FileUtils.mkdir_p($home_dir) unless File.directory?($home_dir) +rescue => e + print_error "Could not create '#{$home_dir}': #{e.message}" +end + #@note Prints the API key needed to use the RESTful API print_info "RESTful API key: #{BeEF::Core::Crypto::api_token}" diff --git a/modules/browser/spyder_eye/module.rb b/modules/browser/spyder_eye/module.rb index 007ac697d..2d678a32b 100644 --- a/modules/browser/spyder_eye/module.rb +++ b/modules/browser/spyder_eye/module.rb @@ -25,7 +25,7 @@ class Spyder_eye < BeEF::Core::Command begin timestamp = Time.now.localtime.strftime("%Y-%m-%d_%H-%M-%S") ip = BeEF::Core::Models::BrowserDetails.get(session_id, 'IP') - filename = "screenshot_#{ip}_-_#{timestamp}_#{@datastore['cid']}.png" + filename = "#{$home_dir}/screenshot_#{ip}_-_#{timestamp}_#{@datastore['cid']}.png" File.open(filename, 'wb') do |file| data = @datastore['results'].gsub(/^image=data:image\/(png|jpg);base64,/, "") file.write(Base64.decode64(data)) diff --git a/modules/host/get_wireless_keys/module.rb b/modules/host/get_wireless_keys/module.rb index 8f72ac9b9..129180135 100644 --- a/modules/host/get_wireless_keys/module.rb +++ b/modules/host/get_wireless_keys/module.rb @@ -13,10 +13,11 @@ class Get_wireless_keys < BeEF::Core::Command content = {} content['result'] = @datastore['result'].to_s save content - f = File.open("exported_wlan_profiles.xml","w+") + filename = "#{$home_dir}/exported_wlan_profiles_#{ip}_-_#{timestamp}_#{@datastore['cid']}.xml" + f = File.open(filename,"w+") f.write((@datastore['results']).sub("result=","")) - writeToResults = Hash.new - writeToResults['data'] = "Please import "+Dir.pwd+"/exported_wlan_profiles.xml into your windows machine" + writeToResults = Hash.new + writeToResults['data'] = "Please import #{filename} into your windows machine" BeEF::Core::Models::Command.save_result(@datastore['beefhook'], @datastore['cid'] , @friendlyname, writeToResults, 0) BeEF::Core::NetworkStack::Handlers::AssetHandler.instance.unbind('/wirelessZeroConfig.jar') end