Meterpreter(道德黑客)2025年3月29日 | 阅读 6 分钟 在本节中,我们将学习如何与 Metasploit 的 Meterpreter 交互。Meterpreter 允许黑客通过运行一个隐形的 shell 来访问目标系统。它用于在目标机器上建立一个通信通道。Meterpreter 因其强大性和多功能性而在渗透测试人员中很受欢迎。由于这些特性,它也吸引了恶意行为者。Meterpreter 包含渗透测试工具中包含的所有基本功能。这些功能包括分析网络、运行可执行文件、访问命令 shell、发送和接收文件。这些并不是 meterpreter 的唯一功能,它可以做更多的事情。它的一些能力是端口转发,截屏,提权和键盘记录。使用内存中的 DDL 注入来部署 meterpreter。 Meterpreter 不会创建新的进程,也不会向磁盘写入任何内容,因为它完全驻留在内存中。相反,它会将自身注入到被入侵的进程中,然后根据需要从一个运行的进程迁移到另一个进程。因此,攻击的取证足迹非常少。由于这些特性,它成为优先考虑隐藏的 API 的一个有吸引力的有效载荷。有几种方法可以将 meterpreter 加载到内存中。Metasploit 框架包含许多暂存器,如文档宏、VBScript、Powershell。如果我们想直接将 meterpreter 注入到内存中,这个 Metasploit 框架也提供了大量的漏洞利用。加载器和漏洞利用也可以由高级用户编写,他们可以将这些加载器和漏洞利用与他们自己的自定义规避技术一起使用。 Meterpreter 的目标
Meterpreter 的工作原理当系统被入侵时,黑客会将第一阶段的有效载荷发送到目标计算机。Meterpreter 通过这个有效载荷连接回来。然后它发送第二个 DLL 注入,之后是 meterpreter 服务器的 DLL。使用 meterpreter 会话,建立客户端-服务器通信和一个套接字。它是加密的,这是这个会话中最好的部分。由于这一点,提供了机密性。因此,任何网络管理员都可能无法嗅探到会话。 ![]() 在 Linux 中,**help** 命令用于获取关于特定命令的信息。所以,我们要做的第一件事就是运行 **help** 命令,以获得一个我们可以运行的所有命令的大列表。它还告诉我们每个命令的功能描述,如下面的截图所示 ![]() 我们要强调的第一件事是 **background** 命令,如下面的截图所示 ![]() **background** 命令主要用于在不终止当前会话的情况下将其置于后台。这个命令非常类似于最小化窗口。因此,在运行 **background** 命令之后,我们可以回到 Metasploit 并运行其他命令来进一步利用目标机器,保持我们与刚刚入侵的计算机的连接。我们将使用 **sessions -l** 命令来查看我们正在使用的所有计算机和会话的列表。在下面的截图中,我们可以看到我们仍然有 Meterpreter 会话,它在我们的设备(**10.0.2.15**)和目标设备(**10.0.2.5**)之间 ![]() 如果我们想回到之前的会话再次运行 Metasploit,我们必须运行带有 **-i**(用于 interact)的 **sessions** 命令,然后放入 ID,即 **2**,如下面的截图所示 ![]() 另一个我们在入侵系统时会运行的命令是 **sysinfo** 命令。**sysinfo** 命令向我们展示了关于目标计算机的信息。在下面的截图中,我们可以看到它向我们展示了计算机的名称、操作系统和架构。我们还可以看到,在下面的截图中,它是一台 **64 位** 计算机,所以如果我们想在将来在目标机器上运行可执行文件,我们知道我们将创建 **64 位** 可执行文件 ![]() 我们可以看到它使用 **English** 语言,计算机正在工作的工作组,以及登录的用户 ID。我们还可以看到目标机器上运行的 Meterpreter 版本,它实际上是一个 32 位版本。 另一个用于信息收集的有用命令是 **ipconfig**。**ipconfig** 命令向我们展示了所有连接到目标计算机的接口,如下面的截图所示 ![]() 在上面的截图中,我们可以看到 **Interface 1**、MAC 地址、IP 地址,甚至 IPv4 地址,它连接到多个网络。我们还可以看到所有的接口以及如何与它们交互。 另一个用于信息收集的有用命令是 **ps** 命令。**ps** 命令列出了目标计算机上运行的所有进程。这些进程可能是后台进程,也可能是在前台作为 Windows 程序或 GUI 运行的实际程序。在下面的截图中,我们将看到一个运行的所有进程的列表,以及每个进程的名称和 **ID** 或 **PID** ![]() 一个有趣的进程是 **explorer.exe**。它是 Windows 的图形界面。在前面的截图中,我们可以看到它运行在 **PID 4744** 上,如下面的截图所示 ![]() 当我们入侵系统时,最好将该人正在运行的进程迁移到一个更安全的进程中。例如,进程 **explorer.exe** 是 Windows 的图形界面,只要用户使用他们的设备,这个进程就会一直运行。这意味着这个进程比我们通过它访问计算机的进程要安全得多。例如,如果我们通过一个程序或一个可执行文件获得了访问权限,当该人关闭该程序时,我们将失去该进程。一个更好的方法是迁移到一个不太可能被终止或关闭的进程。为此,我们将使用 **migrate** 命令,该命令将我们的当前会话移动到一个不同的进程中。我们将使用进程 **explorer.exe**,因为它很安全。 我们将使用 **migrate 4744** 命令,其中 **4744** 是 **explorer.exe** 进程的 **PID**。该命令如下所示 ![]() 那一刻,Meterpreter 正在从 **explorer.exe** 进程运行。现在,如果我们进入目标机器上的 **任务管理器** 并运行 **资源管理器**,然后进入 **网络** 选项卡并进入 **TCP 连接**,我们就可以看到端口 **8080** 上的连接来自 **explorer.exe** 进程,如下面的截图所示 ![]() 因此,对于目标机器而言,它不是来自后门、我们的有效载荷、恶意文件,而是通过 **explorer.exe** 运行的,这对目标机器来说并不令人怀疑。现在,如果我们看到 Chrome 或 Firefox,我们就可以迁移到这些进程。而且,如果我们使用端口 **8080** 或 **80** 进行连接,它看起来会更不令人怀疑,因为 Web 服务器使用端口 **8080** 或 **80**,所以通过它们进行连接是非常自然的。 下一主题文件系统命令 |
我们请求您订阅我们的新闻通讯以获取最新更新。