はじめに
この実験では、Metasploit のモジュール構造と機能分析を再確認し、次にスキャナーの紹介に焦点を当てます。あなたは独自の Metasploit スキャナーを開発する方法を学びます。
この実験は実践的なチュートリアルです。いくつかの操作を理解するのを助けるために、いくつかの情報セキュリティ理論を含め、読む価値のある記事をおすすめします。これにより、実践しながら理論的な基礎を固めることができます。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、Metasploit のモジュール構造と機能分析を再確認し、次にスキャナーの紹介に焦点を当てます。あなたは独自の Metasploit スキャナーを開発する方法を学びます。
この実験は実践的なチュートリアルです。いくつかの操作を理解するのを助けるために、いくつかの情報セキュリティ理論を含め、読む価値のある記事をおすすめします。これにより、実践しながら理論的な基礎を固めることができます。
simple_tcp.rb
ファイルを作成するまず、Metasploit の構造を復習しましょう。
Metasploit は、コードの再利用効率を向上させるためにモジュール化された概念で設計されています。このフレームワークは Ruby で開発されており、Perl、C、アセンブリ、Python で書かれたコンポーネントも含まれています。主に Linux オペレーティングシステム向けに設計されているため、そのコマンド構造は Linux コマンドシェルに非常に似ています。ただし、現在では Windows、Solaris、Mac などの主要なオペレーティングシステムをすべてサポートしています。
+---------------+------------------+----------------------------------------------+
| English Name | Module Name | Description |
+---------------+------------------+----------------------------------------------+
| `Aux` | Auxiliary Module | Provides a wealth of auxiliary modules for |
| | | information gathering during penetration, |
| | | including scanning and fingerprinting |
| | | various network services, building fake |
| | | services to collect login credentials, |
| | | password guessing, etc. |
+---------------+------------------+----------------------------------------------+
| `Exploits` | Exploit Module | Code components that exploit discovered |
| | | security vulnerabilities or configuration |
| | | weaknesses to attack remote target systems, |
| | | plant and run payloads, and gain access |
| | | control over the target systems. |
+---------------+------------------+----------------------------------------------+
| `Post` | Post-Exploit | Supports various post-exploitation actions |
| | Module | on the controlled system after gaining |
| | | remote access control through exploitation, |
| | | such as obtaining sensitive information, |
| | | further pivoting, and launching pivot |
| | | attacks. |
+---------------+------------------+----------------------------------------------+
| `Payloads` | Payload Module | Payloads are code segments that run on the |
| | | target system after a successful |
| | | exploitation, typically to open a control |
| | | session connection for the attacker. |
+---------------+------------------+----------------------------------------------+
| `Encoders` | Encoder Module | After assembling the payload and NOP |
| | | instructions into an instruction sequence, |
| | | Metasploit needs to perform an important |
| | | encoding step before the exploit module |
| | | injects the malicious data buffer into the |
| | | target system for execution. |
+---------------+------------------+----------------------------------------------+
| `Nops` | NOP Module | NOP (No Operation) instructions are |
| | | operations or instructions that have no |
| | | substantial effect on the program's |
| | | execution state. |
+---------------+------------------+----------------------------------------------+
Metasploit はまた、いくつかの脆弱性スキャナーコンポーネントを統合しています。例えば:
Nmap
スキャナー:Windows、Linux、Mac OS に適しています。ホストの発見、ポートスキャンまたは列挙、サービスの発見、オペレーティングシステム、ハードウェアアドレス、ソフトウェアバージョン、脆弱性の検出に使用されます。
NeXpose
スキャナー:ネットワークをスキャンして稼働中のデバイスを見つけ、そのオペレーティングシステムとアプリケーションの脆弱性を特定し、スキャンしたデータを分析し、脆弱性スキャンレポートを生成します。
Nessus
スキャナー:最も広く使用されている脆弱性スキャンツールの 1 つです。クライアント/サーバーモデルを採用しており、サーバーがセキュリティチェックを実行し、クライアントがサーバーを構成および管理します。サーバーはまた、プラグインシステムを使用しており、ユーザーが特定の機能やより複雑なセキュリティチェック用のプラグインを追加できます。
では、simple_tcp.rb
という新しい Metasploit スキャナーモジュールを作成しましょう。
sudo virsh start Metasploitable2
ターゲットマシンが起動するのを待ちます。これには 1 ~ 3 分かかる場合があります。
ping 192.168.122.102
Ctrl+C
を押して ping を停止します。
docker run -ti --network host b5b709a49cd5 bash
ping 192.168.122.102
Ctrl+C
を押して ping を停止します。
scanner
モジュールディレクトリに移動します。cd /usr/share/metasploit-framework/modules/auxiliary/scanner
simple_tcp.rb
という名前の新しいファイルを作成します。sudo vi simple_tcp.rb
require 'msf/core'
class MetasploitModule < Msf::Auxiliary
include Msf::Exploit::Remote::Tcp
include Msf::Auxiliary::Scanner
def initialize
super(
'Name' => 'Mr_Zhou Scanner',
'Version' => '$Revision$',
'Description' => 'Shiyanlou TCP Scanner',
'Author' => 'lucat',
'License' => MSF_LICENSE
)
register_options(
[
Opt::RPORT(12345)
], self.class)
end
def run_host(ip)
connect()
sock.puts('HELLO SERVER')
data = sock.recv(1024)
print_status("Received: #{data} from #{ip}")
disconnect()
end
end
def initialize
super(
'Name' => 'Mr_Zhou Scanner',
'Version' => '$Revision$',
'Description' => 'Shiyanlou TCP Scanner',
'Author' => 'lucat',
'License' => MSF_LICENSE
)
このセクションでは、モジュールの名前、説明、作者、ライセンスなどのメタデータを設定しています。
register_options(
[
Opt::RPORT(12345)
], self.class)
この行は、ポート 12345 をスキャンするオプションを登録しています。
def run_host(ip)
connect()
sock.puts('HELLO SERVER')
data = sock.recv(1024)
print_status("Received: #{data} from #{ip}")
disconnect()
end
このメソッドは、各ターゲット IP アドレスに対して実行されます。指定されたポートに接続し、"HELLO SERVER" という文字列を送信し、サーバーからのデータを受信して表示し、その後切断します。
ファイルを保存し、エディターを終了します。
simple_tcp.rb
スキャナーをテストするために、ターゲットマシン上にリスニングサーバーをセットアップする必要があります。
LabEx ホストで新しい Xfce
ターミナルを開き、shiyanlou.txt
という名前のファイルを作成します。
vi shiyanlou.txt
このファイルに、任意のテキストを入力します。このテキストは、スキャナーがリスニングポートに接続したときにスキャナーに返されます。例えば:
Life is short, i use Python.
ファイルを保存し、エディターを終了します。
次に、ポート 12345(スキャナーが設定されているポート)でリスニングサーバーを起動し、接続してきたクライアントに shiyanlou.txt
の内容を送信します。
sudo nc -l 12345 < shiyanlou.txt
これでサーバーはポート 12345 でリスニングし、着信接続を待機する状態になります。
simple_tcp
スキャナーを実行するsimple_tcp
スキャナーモジュールとリスニングサーバーがセットアップされたので、スキャナーを実行して動作を確認しましょう。
まず、Kali Linux コンテナ内で Metasploit コンソールを起動します。
cd ~
sudo msfconsole
コンソールが読み込まれたら、simple_tcp
モジュールを使用します。
use auxiliary/scanner/simple_tcp
info
コマンドでモジュール情報を表示できます。
info
以下は、表示される出力の例です。
Name: Mr_Zhou Scanner
Description: Shiyanlou TCP Scanner
Author: lucat
License: Metasploit Framework License (BSD)
Version: $Revision$
次に、ターゲットホストの IP アドレスを設定します。
set RHOSTS 192.168.122.1
注意:RHOST ではなく RHOSTS(末尾に 's' がある)を使用してください。show options
コマンドで使用するオプションを確認できます。
最後に、スキャナーを実行します。
run
すべてが正しくセットアップされていれば、リスニングサーバーからのメッセージが表示されるはずです。
[+] Received: Life is short, i use Python. from 192.168.122.1
このメッセージが表示されない場合は、リスニングサーバーに戻り、sudo nc -l 12345 < shiyanlou.txt
を再度実行してください。
おめでとうございます!独自の Metasploit スキャナーモジュールを開発し、テストすることに成功しました。
Ctrl+D を押して Metasploit コンソールを終了し、次に検査を開始します
この実験では、独自の Metasploit スキャナーモジュールを開発する方法を学びました。Metasploit のモジュール構造を復習し、simple_tcp.rb
という新しい TCP スキャナーモジュールを作成し、スキャナーをテストするためのリスニングサーバーをセットアップし、スキャナーを正常に実行してサーバーからのデータを受信し表示しました。
Metasploit スキャナーを開発するこの実践的な経験は、フレームワークの機能と、カスタムモジュールで拡張する方法をより深く理解するのに役立ちます。この知識を利用して、さまざまな侵入テストタスクに対応するより高度なスキャナーや他の種類のモジュールを作成することができます。