Sto sviluppando un plug-in per automatizzare alcune attività di post-exploitation. Due giorni fa tutti i metodi che interagiscono con il client (da client_core e stdapi) semplicemente non restituiscono nulla, come se in un ciclo while (vero). Anche se quando sono in modalità irb con la stessa sessione, tutto funziona correttamente. Ho provato a cambiare la macchina vittima e ho creato un plugin fittizio, che presentava lo stesso problema. Cosa potrebbe essere? Questo è il codice fittizio:
module Msf
class Plugin::Automigrate < Msf::Plugin
include Msf::SessionEvent
def initialize(framework, opts)
super
self.framework.events.add_session_subscriber(self)
end
def on_session_open(session)
print_status("Session Opened")
print_status(session.core.use("sniffer"))
if(session.core.use("stdapi"))
print_good("stdapi loaded")
end
print_status("#{session.sys}")
puts "#{session.sys}"
t = session.sys.config.getuid
print_good("#{t}")
end
def name
"AutoMigrate"
end
end
E l'unica cosa che restituisce è lo stato "Sessione aperta".