导航基础 Meterpreter Shell

Kali LinuxBeginner
立即练习

引言

Meterpreter 是 Metasploit Framework 中的一个高级 payload,它能在被攻陷的系统上提供一个交互式 shell。它是渗透测试人员的关键工具。

在本实验中,你将学习在 Meterpreter shell 中进行基本导航和信息收集的基础命令。我们将使用一个脚本来模拟真实的 Meterpreter 会话。

首先,在你的终端中执行以下命令来启动模拟会话。你的终端当前已位于 ~/project 目录。你的提示符将变为 meterpreter >

./meterpreter_simulator.sh

你将看到一些模拟连接的输出,本实验中后续的所有命令都应在此新的 meterpreter > 提示符下输入。

使用 sysinfo 命令获取基本系统信息

在此步骤中,你将学习使用 sysinfo 命令。这是你在获得会话后应该首先运行的命令之一,因为它能快速提供目标系统的宝贵概览。它会显示计算机名称、操作系统和系统架构。

meterpreter > 提示符下,输入 sysinfo 命令并按 Enter:

sysinfo

你将看到类似以下的输出,详细说明了模拟目标机器的基本信息:

Computer        : labex-vm
OS              : Ubuntu 22.04 (Linux 5.15.0-generic)
Architecture    : x64
System Language : en_US
Meterpreter     : x64/linux

使用 getuid 命令识别当前用户

在此步骤中,我们将使用 getuid 命令。了解你当前会话的权限至关重要。getuid 命令可以立即告诉你 Meterpreter payload 正在以哪个用户账户运行。此信息有助于确定你可以在系统上执行哪些操作,以及是否需要尝试权限提升。

meterpreter > 提示符下,输入 getuid

getuid

输出显示了用户名和相关的用户 ID (uid)。在本例中,我们以 labex 用户身份运行。

Server username: uid=1000, euid=1000, gid=1000 (labex)

使用 ps 命令列出正在运行的进程

在此步骤中,你将学习使用 ps 命令列出正在运行的进程。Meterpreter 的 ps 命令与其 Linux 对应命令类似,但它通过远程机器上的会话执行。列出进程对于态势感知至关重要。它可以帮助你识别安全软件、查找有趣的应用程序,或选择一个稳定的进程进行迁移。

现在,在你的 Meterpreter shell 中运行 ps 命令:

ps

输出将是目标系统上正在运行的进程列表。我们的模拟显示了几个关键进程,包括 shell (zsh) 和脚本本身 (bash)。

Process List
============

  PID   PPID  Name               Arch  Session  User      Path
  ---   ----  ----               ----  -------  ----      ----
  1     0     systemd            x64   0        root      /usr/lib/systemd/systemd
  935   1     sshd               x64   0        root      /usr/sbin/sshd
  1050  935   sshd               x64   1        labex     /usr/sbin/sshd
  1051  1050  zsh                x64   1        labex     /bin/zsh
  1100  1051  bash               x64   1        labex     /bin/bash

使用 help 命令查看所有 Meterpreter 命令

在此步骤中,我们将探索 help 命令。Meterpreter 包含大量功能,不可能记住所有命令。help 命令是你最好的助手,它提供了一个按类别分组的可用命令的完整列表。

要查看可用命令列表,只需键入 help

help

输出显示了核心命令以及已加载模块(如 stdapi)的命令。花点时间浏览列表,以了解 Meterpreter 的功能。

Core Commands
=============
    Command       Description
    -------       -----------
    ?             Help menu
    background    Backgrounds the current session
    exit          Terminate the meterpreter session
    help          Help menu
    quit          Terminate the meterpreter session

Stdapi: System Commands
=======================
    Command       Description
    -------       -----------
    getuid        Get the user that the server is running as
    ps            List running processes
    sysinfo       Gets information about the remote system, such as OS

使用 background 命令将会话置于后台

在此步骤中,你将学习如何使用 background 命令。当管理多个被攻陷的系统时,你可能不希望关闭一个会话来处理另一项任务。background 命令会将当前 Meterpreter 会话置于后台,使你能够返回到主 Metasploit 控制台 (msf6 >) 来管理会话或启动其他模块。

在我们的模拟中,运行 background 将会结束脚本并让你返回到标准的 Linux 终端。现在键入 background

background

你将看到一条确认消息,并且你的提示符将从 meterpreter > 返回到正常的 labex@ubuntu:~/project$。这表示你已成功将该会话置于后台。

[*] Backgrounding session 1...

总结

恭喜你完成了这个实验!你已经学会了如何导航基本的 Meterpreter 会话并执行初步的侦察。

你现在已经熟悉了以下基本命令:

  • sysinfo: 用于收集基本的操作系统和硬件信息。
  • getuid: 用于识别当前用户的权限级别。
  • ps: 用于列出目标机器上正在运行的进程。
  • help: 用于显示所有可用命令。
  • background: 用于返回主控制台而不终止会话。

这些命令是更高级的后渗透活动的基础。掌握它们是成为 Metasploit Framework 熟练使用者的第一步。