はじめに
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 を使いこなすための最初のステップです。


