国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現(xiàn)遠(yuǎn)程調(diào)用MetaSploit的方法

2019-11-25 18:16:18
字體:
供稿:網(wǎng)友

本文較為詳細(xì)的講述了Python實現(xiàn)遠(yuǎn)程調(diào)用MetaSploit的方法,對Python的學(xué)習(xí)來說有很好的參考價值。具體實現(xiàn)方法如下:

(1)安裝Python的msgpack類庫,MSF官方文檔中的數(shù)據(jù)序列化標(biāo)準(zhǔn)就是參照msgpack。

root@kali:~# apt-get install python-setuptoolsroot@kali:~# easy_install msgpack-python

 
(2)創(chuàng)建createdb_sql.txt:

create database msf;create user msf with password 'msf123';grant all privileges on database msf to msf;

 
(3)在PostgreSQL 執(zhí)行上述文件:

root@kali:~# /etc/init.d/postgresql startroot@kali:~# sudo -u postgres /usr/bin/psql < createdb_sql.txt

 
(4)創(chuàng)建setup.rc文件

db_connect msf:msf123@127.0.0.1/msfload msgrpc User=msf Pass='abc123'

 
(5)啟動MSF并執(zhí)行載入文件

root@kali:~# msfconsole -r setup.rc* SNIP *[*] Processing setup.rc for ERB directives.resource (setup.rc)> db_connect msf:msf123@127.0.0.1/msf[*] Rebuilding the module cache in the background...resource (setup.rc)> load msgrpc User=msf Pass='abc123'[*] MSGRPC Service: 127.0.0.1:55552[*] MSGRPC Username: msf[*] MSGRPC Password: abc123[*] Successfully loaded plugin: msgrpc

 
(6)Github上有一個Python的類庫,不過很不好用

root@kali:~# git clone git://github.com/SpiderLabs/msfrpc.git msfrpcroot@kali:~# cd msfrpc/python-msfrpcroot@kali:~# python setup.py install

測試代碼如下:

#!/usr/bin/env pythonimport msgpackimport httplib class Msfrpc: class MsfError(Exception):  def __init__(self,msg):   self.msg = msg  def __str__(self):   return repr(self.msg)  class MsfAuthError(MsfError):  def __init__(self,msg):   self.msg = msg   def __init__(self,opts=[]):  self.host = opts.get('host') or "127.0.0.1"  self.port = opts.get('port') or 55552  self.uri = opts.get('uri') or "/api/"  self.ssl = opts.get('ssl') or False  self.authenticated = False  self.token = False  self.headers = {"Content-type" : "binary/message-pack" }  if self.ssl:   self.client = httplib.HTTPSConnection(self.host,self.port)  else:   self.client = httplib.HTTPConnection(self.host,self.port)  def encode(self,data):  return msgpack.packb(data) def decode(self,data):  return msgpack.unpackb(data)  def call(self,meth,opts = []):  if meth != "auth.login":   if not self.authenticated:    raise self.MsfAuthError("MsfRPC: Not Authenticated")   if meth != "auth.login":   opts.insert(0,self.token)   opts.insert(0,meth)  params = self.encode(opts)  self.client.request("POST",self.uri,params,self.headers)  resp = self.client.getresponse()  return self.decode(resp.read())   def login(self,user,password):  ret = self.call('auth.login',[user,password])  if ret.get('result') == 'success':self.authenticated = True    self.token = ret.get('token')    return True  else:    raise self.MsfAuthError("MsfRPC: Authentication failed") if __name__ == '__main__':  # Create a new instance of the Msfrpc client with the default options client = Msfrpc({})  # Login to the msfmsg server using the password "abc123" client.login('msf','abc123')  # Get a list of the exploits from the server mod = client.call('module.exploits')  # Grab the first item from the modules value of the returned dict print "Compatible payloads for : %s/n" % mod['modules'][0]  # Get the list of compatible payloads for the first option ret = client.call('module.compatible_payloads',[mod['modules'][0]]) for i in (ret.get('payloads')):  print "/t%s" % i

相信本文所述方法對大家的Python學(xué)習(xí)可以起到一定的學(xué)習(xí)借鑒作用。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 开平市| 泗水县| 栾城县| 石屏县| 安阳县| 嘉义县| 乐都县| 姚安县| 咸丰县| 库伦旗| 思南县| 石楼县| 蕲春县| 张家界市| 准格尔旗| 南通市| 石景山区| 滨海县| 克东县| 周口市| 蒙阴县| 常宁市| 岳阳市| 淮北市| 苏尼特左旗| 靖宇县| 舒城县| 石棉县| 漳平市| 卓资县| 宁化县| 武穴市| 满洲里市| 红安县| 醴陵市| 沙洋县| 黄石市| 安化县| 南漳县| 武义县| 阜平县|