Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
vbox-ovf-nat-tftp-prefix — VirtualBox 7.2.20 - 高 - ローカル - ファイル読み取り - OVF NAT TFTP 空のプレフィックス | Kitploit
ツール/GitHubGitHub/abraxas/vbox-ovf-nat-tftp-prefix
特権昇格脆弱性分析エクスプロイトセキュリティ仮想化論文と研究ラボと実践
GitHubabraxas/vbox-ovf-nat-tftp-prefix

vbox-ovf-nat-tftp-prefix

VirtualBox 7.2.20 - 高 - ローカル - ファイル読み取り - OVF NAT TFTP 空のプレフィックス

リポジトリを見る
12日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - vbox-ovf-nat-tftp-prefix

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vbox-ovf-nat-tftp-prefix

vbox-ovf-nat-tftp-prefix

クラス: ファイル読み取り 到達範囲: UI:R インポート後のローカル(ゲスト)

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44) - Oracle

vbox:Machine OVF インポートは ExtraData、共有フォルダ、NVRAM パス、シリアル RawFile をサニタイズする。しかし NAT の enable-tftp や TFTP の @prefix には一切触れない。libslirp は tftp_prefix が NULL の場合にのみ TFTP を無効化する。DrvNAT の g_strdup("") は非 NULL のまま残る。ゲストがプレフィックス / または空で etc/passwd を RRQ すると /etc/passwd になる。ゲスト名内の ../ は依然として拒否される。

空または / プレフィックスでインポートされた NAT TFTP により、ゲストは VBox UID としてホストファイルを RRQ できる。 書き込みではない。ホストカーネルでもない。閉じられた ../ チェックの残骸でもない。

IDCVE 未割当
クラスファイル読み取り(ホストパスに対するゲスト TFTP RRQ)
到達範囲vbox:Machine OVF の UI:R インポート後、VM 起動後のローカル(ゲスト)
CWECWE-22 CVE-2022-21394 プレフィックスクラスの残骸
CVSSHigh: 7.7 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N
製品Oracle VM VirtualBox OSS
影響バージョン7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)
認証ゲスト内では不要。ホストユーザーがインポート後に起動する必要あり
ライセンスGNU Affero GPL v3.0
ラボソースハーネス。ループバック compose。VirtualBox は起動しない

攻撃者ができること

NAT ブロブに enable-tftp と TFTP プレフィックス / または空を持つ vbox:Machine OVF/OVA を用意し、さらに NAT ゲートウェイ(10.0.2.2:69)へ TFTP RRQ を発行するゲストディスクを同梱する。ホストユーザーがインポート(File / Import または VBoxManage import)して VM を起動する。インポートは ExtraData、共有フォルダ、シリアル RawFile、NVRAM パスをクリアする。TFTP フィールドは残存する。起動時、ConsoleImplConfigCommon が EnableTFTP を挿入する。空のプレフィックスは CFGM から省略され、DrvNAT は TFTPPrefix を "" にデフォルト設定し、g_strdup する。libslirp はこれを有効とみなす。

これが特権の全範囲である。ここにはホストへの書き込み、VM プロセスのヒーププリミティブ、カーネルエスケープは存在しない。

偵察(ゲスト TFTP RRQ)

手法シンク特権
インポートされたプレフィックス "" で oracle/VBOX-OVF-NAT-TFTP-PREFIX-WITNESS を TFTP RRQlibslirp tftp_handle_rrq の後、プレフィックス + / + ゲスト名を RTFileOpenラボ実証済み。 空プレフィックスは非 NULL のまま。構築パスは /oracle/VBOX-OVF-NAT-TFTP-PREFIX-WITNESS。読み取り専用オープンがウィットネスバイトを返した。
インポートされたプレフィックス / で同名を TFTP RRQ同上ラボ実証済み。 構築パスは //oracle/... で、POSIX 上 /oracle/... と同一。ウィットネスバイトを返した。
空プレフィックスでゲスト RRQ etc/passwd のパスのみの類似ケース"" + "/" + "etc/passwd"ラボ実証済みのパス構築。 結果は /etc/passwd。ラボはホストの /etc を開かない。
VBox UID が開ける任意の相対名(ホームの鍵、VirtualBox.xml、ホストの /etc、Windows のカレントドライブルート)の TFTP RRQ同じ RTFileOpen推測。 同じ連結。プロセスが開けないファイルは閉じたまま(File not found)。

完全性と可用性

手法特権
TFTP WRQ不可。 この TFTP サーバーは RRQ 専用。書き込みハンドラはない。
ホストファイルの上書き / 作成不可。 読み取り専用の RTFILE_O_READ。
VM プロセスのヒープ、VBoxSVC、他の VM、ホストカーネル不可。 この残骸は構築パスに対するファイルオープンである。
TFTP DoS対象外。

この残骸が与えないもの

  • デフォルトの新規 VM: Main は fEnableTFTP を false に書き込みます(Settings.cpp の NATEngine コンストラクタ)。
  • NAT ネットワーク: VBoxNetSlirpNAT は、ホームが存在する場合、常に tftp_path を <VirtualBox home>/TFTP に設定します。RRQ はそのプレフィックスの下に留まります。
  • vbox:Machine ブロブを持たない汎用 OVF は、この NAT TFTP ペアをコピーしません。
  • ゲストのファイル名 ../ と末尾の / は依然として「Access violation」になります。これはクローズ済みの CVE-2022-21394 のウォークです。
  • 空でないプレフィックスの下での意図された PXE は封じ込められたままです(ラボでは /work/tftp/boot.pxe)。
  • NULL プレフィックスは TFTP を無効にします。オープンはありません。
  • 共有フォルダ、ExtraData、シリアル RawFile、および NVRAM dest は、このインポートパス上で依然としてサニタイズされます。
  • 3D なし、Guest Additions なし、VRDP なし、PUEL ではありません。

このアプライアンスをインポートして VM を起動する実際のホストは、VBox UID が開ける任意のパスをゲストに読み取らせます。ラボはそのウォークのソースハーネスです。VirtualBox は起動されません。

発見の経緯

私は VirtualBox/virtualbox v7.2.20(f2792cf44)を固定しました。NAT と OVF の調査です。7.2 では NAT がバンドルされた libslirp 4.9.3 に切り替わりました。.ova からの共有フォルダの尊重はすでに危険と見なされ、除去されています。TFTP はそのリストにありませんでした。

Settings.cpp は vbox:Machine のインポート時に NAT の enable-tftp と TFTP/@prefix を依然として読み取ります:

elmMode.getAttributeValue("enable-tftp", nic.nat.fEnableTFTP);
// ...
pelmTFTP->getAttributeValue("prefix", nic.nat.strTFTPPrefix);

ApplianceImplImport.cpp:6147 は、彼らが覚えていたすべてをサニタイズします:

config.sanitizeImportedSerialPorts();
config.sanitizeSharedFolderSettings();
config.sanitizeImportedNvramSettings();
if (!m->optListImport.contains(ImportOptions_KeepExtraData))
    config.sanitizeImportedExtraData();

これらの4つの本体は strTFTPPrefix や fEnableTFTP を決して名指ししない。

起動時、ConsoleImplConfigCommon.cpp:2286-2292 は TFTPPrefix を空でない場合にのみ挿入し、EnableTFTP は常に挿入する。DrvNAT.cpp:1656-1665 は、キーを省略する古い VM に対して EnableTFTP をデフォルトで true に設定し、その後:

rc = pDrvIns->pHlpR3->pfnCFGMQueryStringAllocDef(pCfg, "TFTPPrefix", &pszTmp, "");
slirpCfg.tftp_path = pszTmp;

slirp.c:698 は g_strdup です。空の場合は非NULLのままです。tftp.c:353-357 はNULLの場合にのみ無効化します。364-370 はプレフィックス、/、ゲスト名を先頭に付加します。398-407 は ../ を拒否します。その後、構築されたパスに対して RTFileOpen を実行します。

すでに記録済みの誤った道筋:ゲストの ../ をこの残存問題として扱うこと(CVE-2022-21394、依然として拒否される);デフォルトの新規VMを影響を受けるものとして扱うこと;NAT Networkのhome/TFTPをこの残存問題として扱うこと;WRQ書き込みを主張すること;ホストカーネルを主張すること。見せかけ:ホストの /etc/passwd を開くこと。オラクルは /oracle 配下の証人ファイルです。

ラボ

python3 vbox-ovf-nat-tftp-prefix-Abraxas-Labs.py

または

cd lab
./run.sh

pin サニタイザのソースハーネス、DrvNAT の空文字列デフォルト、g_strdup、および libslirp の tftp_handle_rrq。Docker compose プロジェクト vbox-ovf-nat-tftp-prefix。ループバックのみ。VirtualBox は起動していない。ウィットネス VBOX-OVF-NAT-TFTP-PREFIX-WITNESS は /oracle/... に配置されている。制御用 PXE ファイルは /work/tftp/boot.pxe。最終行:

SUCCESS vbox-ovf-nat-tftp-prefix sanitize-miss=yes null-disable=yes empty-prefix-read=yes slash-prefix-read=yes dotdot-reject=yes VBOX-OVF-NAT-TFTP-PREFIX-WITNESS

修正内容

在导入 vbox:Machine 时,以与清除 ExtraData 和共享文件夹相同的方式清理 nat.fEnableTFTP 和 nat.strTFTPPrefix。除非前缀是受限目录,否则按失败关闭处理。将空字符串视为 NULL,以便 libslirp 禁用 TFTP。不要将 g_strdup("") 写入 tftp_prefix。

参考

  • github.com/VirtualBox/virtualbox 标签 v7.2.20(f2792cf44f663989818507e36d3db5f978523c5e)
  • Settings.cpp NAT TFTP 读取(4873、4888-4894)和导入清理器(9654-9682)
  • ApplianceImplImport.cpp i_importVBoxMachine(6147-6151)
  • ConsoleImplConfigCommon.cpp(2286-2292)
  • DrvNAT.cpp(1656-1665)
  • slirp.c g_strdup(698)
  • tftp.c(353-407)
  • CVE-2022-21394 关闭了客户机 TFTP 名称中的 ../;此遗留项是 OVF 植入的前缀

联系方式

ツールをダウンロード