Files
metasploit-gs/lib/msf/core/exploit/local/saltstack.rb
T
2023-12-24 11:54:22 -05:00

34 lines
1.1 KiB
Ruby

require 'yaml'
module Msf
module Exploit::Local::Saltstack
#
# lists minions using the salt-key command.
#
# @param salt_key_exe [String] The name location of the salt-key executable
# @return [YAML] YAML document with the minions listed
#
def list_minions(salt_key_exe = 'salt-key')
# pull minions from a master, returns hash of lists of the output
print_status('Attempting to list minions')
unless command_exists?(salt_key_exe)
print_error('salt-key not present on system')
return
end
begin
out = cmd_exec(salt_key_exe, '-L --output=yaml', datastore['TIMEOUT'])
vprint_status(out)
minions = YAML.safe_load(out)
rescue Psych::SyntaxError
print_error('Unable to load salt-key -L data')
return
end
store_path = store_loot('saltstack_minions', 'application/x-yaml', session, minions.to_yaml, 'minions.yaml', 'SaltStack Salt salt-key list')
print_good("#{peer} - minion file successfully retrieved and saved to #{store_path}")
minions
end
end
end