基本的な Meterpreter シェルの操作

Kali LinuxBeginner
オンラインで実践に進む

はじめに

Meterpreter は Metasploit Framework の高度なペイロードであり、侵害されたシステム上でインタラクティブなシェルを提供します。これはペネトレーションテスターにとって重要なツールです。

この実験では、Meterpreter シェル内での基本的なナビゲーションと情報収集のための基本的なコマンドを学びます。実際の Meterpreter セッションをシミュレートするためにスクリプトを使用します。

開始するには、~/project ディレクトリに既にいるターミナルで、以下のコマンドを実行してシミュレートされたセッションを開始します。プロンプトが meterpreter > に変わります。

./meterpreter_simulator.sh

接続をシミュレートするいくつかの出力が表示され、この実験のそれ以降のすべてのコマンドは、この新しい meterpreter > プロンプトに入力する必要があります。

sysinfo コマンドで基本的なシステム情報を取得する

このステップでは、sysinfo コマンドの使用方法を学びます。このコマンドは、セッションを取得した後に最初に実行すべきことの 1 つであり、ターゲットシステムの概要を迅速かつ価値のある形で提供します。コンピュータ名、オペレーティングシステム、およびシステムアーキテクチャが明らかになります。

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 ペイロードが実行されているユーザーアカウントを即座に教えてくれます。この情報は、システム上で実行できるアクションを判断し、権限昇格を試みる必要があるかどうかを判断するのに役立ちます。

meterpreter > プロンプトで、getuid と入力します。

getuid

出力には、ユーザー名と関連付けられたユーザーID(uid)が表示されます。この場合、labex ユーザーとして実行しています。

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

ps コマンドで実行中のプロセスを一覧表示する

このステップでは、ps コマンドを使用して実行中のプロセスを一覧表示する方法を学びます。Meterpreter の ps コマンドは、Linux の同名のコマンドと似ていますが、リモートマシン上のセッションを通じて実行されます。プロセスのリストアップは、状況認識のために不可欠です。これにより、セキュリティソフトウェアを特定したり、興味深いアプリケーションを見つけたり、安定したプロセスに移行したりすることができます。

Meterpreter シェルで ps コマンドを実行します。

ps

出力は、ターゲットシステムで実行されているプロセスのリストになります。私たちのシミュレーションでは、シェル (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 を使いこなすための最初のステップです。