日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python调用metasploit自动攻击_Python实现远程调用MetaSploit的方法

發布時間:2024/7/5 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python调用metasploit自动攻击_Python实现远程调用MetaSploit的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文較為詳細的講述了Python實現遠程調用MetaSploit的方法,對Python的學習來說有很好的參考價值。具體實現方法如下:

(1)安裝Python的msgpack類庫,MSF官方文檔中的數據序列化標準就是參照msgpack。

root@kali:~# apt-get install python-setuptools

root@kali:~# easy_install msgpack-python

(2)創建createdb_sql.txt:

create database msf;

create user msf with password 'msf123';

grant all privileges on database msf to msf;

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

root@kali:~# /etc/init.d/postgresql start

root@kali:~# sudo -u postgres /usr/bin/psql < createdb_sql.txt

(4)創建setup.rc文件

db_connect msf:msf123@127.0.0.1/msf

load msgrpc User=msf Pass='abc123'

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

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 msfrpc

root@kali:~# cd msfrpc/python-msfrpc

root@kali:~# python setup.py install

測試代碼如下:

#!/usr/bin/env python

import msgpack

import 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學習可以起到一定的學習借鑒作用。

總結

以上是生活随笔為你收集整理的python调用metasploit自动攻击_Python实现远程调用MetaSploit的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。