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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-3156-Project — CVE-2021-3156 (Baron Samedit) 向けの教育用ラボ環境。Docker化された脆弱なsudoターゲット、エクスプロイトスキャフォールド、カナリアテスト、根本原因分析、パッチ適用済みバージョンとの比較を備えています。 | Kitploit
ツール/GitHubGitHub/shams-ul-mehmood/cve-2021-3156-project
特権昇格脆弱性分析エクスプロイト学習と教育バイナリエクスプロイトラボと実践
GitHubshams-ul-mehmood/cve-2021-3156-project

CVE-2021-3156-Project

CVE-2021-3156 (Baron Samedit) 向けの教育用ラボ環境。Docker化された脆弱なsudoターゲット、エクスプロイトスキャフォールド、カナリアテスト、根本原因分析、パッチ適用済みバージョンとの比較を備えています。

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る
171ヶ月前未レビュー

CVE-2021-3156 — Baron Samedit

sudo のヒープベースのバッファオーバーフロー → ローカル権限昇格

ITSOLERA サイバーセキュリティ部門 | レッドチームインターンシップ 2026


  ██████╗  █████╗ ██████╗  ██████╗ ███╗   ██╗    ███████╗ █████╗ ███╗   ███╗███████╗██████╗ ██╗████████╗
  ██╔══██╗██╔══██╗██╔══██╗██╔═══██╗████╗  ██║    ██╔════╝██╔══██╗████╗ ████║██╔════╝██╔══██╗██║╚══██╔══╝
  ██████╔╝███████║██████╔╝██║   ██║██╔██╗ ██║    ███████╗███████║██╔████╔██║█████╗  ██║  ██║██║   ██║
  ██╔══██╗██╔══██║██╔══██╗██║   ██║██║╚██╗██║    ╚════██║██╔══██║██║╚██╔╝██║██╔══╝  ██║  ██║██║   ██║
  ██████╔╝██║  ██║██║  ██║╚██████╔╝██║ ╚████║    ███████║██║  ██║██║ ╚═╝ ██║███████╗██████╔╝██║   ██║
  ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═══╝    ╚══════╝╚═╝  ╚═╝╚═╝     ╚═╝╚══════╝╚═════╝ ╚═╝   ╚═╝

⚠️ 教育目的 / 隔離ラボ専用 すべてのテストは Docker ラボコンテナ内でのみ実施してください。 実システム、本番環境、共有システムに対しては実行しないでください。


目次

  1. CVE 概要
  2. この CVE の特異性
  3. プロジェクト構成
  4. チーム成果物
  5. クイックスタート
  6. エクスプロイトの仕組み
  7. 脆弱性カナリアテスト
  8. exploit.py の使い方
  9. ラボのリセットとスナップショット
  10. パッチ適用済み vs 脆弱な状態の比較
  11. 参考資料

CVE 概要

プロパティ値
CVE IDCVE-2021-3156
ニックネームBaron Samedit
タイプヒープベースのバッファオーバーフロー → ローカル権限昇格
コンポーネントsudo — Linux 特権ユーティリティ(src/sudo.c 内の set_cmnd())
CVSS v3 スコア7.8 高
ベクターCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
脆弱なバージョンsudo 1.8.2 – 1.8.31p2 および 1.9.0 – 1.9.5p1
パッチ適用済みバージョンsudo 1.9.5p2(1.9 系)/ sudo 1.8.32(1.8 系)
ラボのターゲットバージョンUbuntu 20.04 上の sudo 1.8.31
パッチ KB / アドバイザリSA: https://www.sudo.ws/security/advisories/unescape_overflow/
発見者Qualys Research Team
公開日2021-01-26
実環境での存在期間(コード)〜2011-07-09(sudo 1.8.2)— 約10年間未検出
必要な認証ローカルユーザーのみ — sudo 権限は不要

この CVE の特異性

プロパティCVE-2021-3156一般的な Sudo LPE
sudoers エントリが必要❌ 不要✅ 必要
sudo グループへの所属が必要❌ 不要✅ 必要
事前の sudo アクセスが必要❌ 不要✅ 必要
作成直後のユーザーアカウントで動作✅ 可能❌ 不可
権限システムの悪用❌ 完全に回避✅ 悪用する
攻撃対象領域引数パーサー(認証前)権限チェック

重要な洞察: オーバーフローは引数を解析する関数である set_cmnd() 内で発生し、これは sudo が /etc/sudoers を参照する前に実行されます。10秒前に作成された権限ゼロのアカウントでもこれを悪用できます。


プロジェクト構成

CVE-2021-3156-Project/
│
├── README.md                        ← you are here
│
├── lab/                             ← Member 1: Lab Environment
│   ├── Dockerfile                   ← Ubuntu 20.04 + sudo 1.8.31 (pinned)
│   ├── docker-compose.yml           ← vulnerable target + patched reference
│   ├── evidence_helper.sh           ← pre/post-exploit state capture
│   ├── SETUP.md                     ← step-by-step VM/Docker guide
│   └── config_notes.md              ← CVE conditions & container details
│
├── exploit/                         ← Member 2: Exploit Development
│   ├── exploit.py                   ← Python LPE framework + canary test
│   └── payloads.txt                 ← heap overflow research notes
│
├── docs/                            ← Member 3: Research & Documentation
│   ├── root_cause_analysis.md       ← set_cmnd() deep dive + off-by-one
│   ├── references.md                ← all sources, PoCs, CWE mapping
│   └── mitigation.md                ← sudo upgrade + hardening checklist
│
├── proof/                           ← Member 4: Evidence Collection
│   ├── screenshots/                 ← exploitation screenshots
│   └── terminal_logs.txt            ← command output template + logs
│
└── report/
    └── CVE-2021-3156_Report.docx    ← Member 4: Final professional report

チーム成果物

メンバー1 — ラボ環境と CVE 検証

ファイル説明
lab/Dockerfilesudo 1.8.31 を固定した Ubuntu 20.04(脆弱); Python 3 インストール済み; sudo アクセス権のない labuser アカウント
lab/docker-compose.yml脆弱なターゲットとパッチ適用済みの Ubuntu 22.04 参照用コンテナをオーケストレーション
lab/evidence_helper.shエクスプロイト前後のシステム状態(ユーザー、sudo バージョン、カナリア)を取得する Bash スクリプト
lab/SETUP.mdステップバイステップ: ビルド → 起動 → 入室 → sudo バージョンの確認 → カナリア実行 → スナップショット
lab/config_notes.md設定ミスが不要な理由、Docker のセキュリティ設定、資格情報の参照を解説

メンバー2 — エクスプロイト開発(PoC スクリプト)

ファイル説明
exploit/exploit.py完全な Python フレームワーク: check_platform()、check_sudo_version()、run_canary_test()、get_system_info() + blasty/worawit の PoC への詳細な参照付きの3つのエクスプロイト TODO スタブ(select_heap_strategy、build_overflow_argument、trigger_overflow_and_escalate)
exploit/payloads.txtヒープオーバーフローの概念、COMPRESSION_TRANSFORM 相当(引数構造)、3つのヒープ戦略、失敗試行のログテンプレート、検出シグネチャ

注記: 倫理ガイドラインに基づき、動作するカーネル/ヒープエクスプロイトコードは含まれていません。 exploit.py の TODO スタブは、チームで学習・統合するための権威ある公開 PoC として https://github.com/blasty/CVE-2021-3156 と https://github.com/worawit/CVE-2021-3156 を参照しています。

メンバー3 — 根本原因分析と調査

ファイル説明
docs/root_cause_analysis.md詳細: set_cmnd() のサイズ計算とコピー量の不一致、コード例付きのオフバイワン、パッチ差分、エクスプロイトチェーン、CVSS 7.8 のメトリクス別分析、10年間のタイムライン、ディストリビューションへの影響テーブル
docs/references.mdQualys アドバイザリ、MITRE、NVD、sudo プロジェクト、blasty PoC、worawit PoC、ExploitDB、GTFOBins、CWE マッピング
docs/mitigation.mdapt-get install --only-upgrade sudo、検証用カナリア、AppArmor ハードニング、auditd 監視、ハードニングテーブル

メンバー4 — エビデンス収集、レポート作成、統合

ファイル説明
proof/terminal_logs.txtエビデンス収集テンプレート(実際のラボ出力を記入)
proof/screenshots/必須の7枚のスクリーンショット用ディレクトリ
report/CVE-2021-3156_Report.docx12セクション構成のプロフェッショナルレポート: 表紙、エグゼクティブサマリー、CVE の説明、根本原因分析、CVSS の内訳、悪用手順、コード解説、エビデンスチェックリスト、緩和策、タイムライン、参考資料、免責事項

クイックスタート

1. ラボのビルドと起動

cd CVE-2021-3156-Project/lab/

# Build the vulnerable image (downloads Ubuntu 20.04, pins sudo 1.8.31)
docker compose build

# Start both containers
docker compose up -d

# Confirm containers are running
docker compose ps

期待される出力:

NAME                      STATUS
baron_samedit_target      running
baron_samedit_patched     running

2. 脆弱なコンテナに入る

docker exec -it baron_samedit_target bash

3. 脆弱性の条件を確認する

# Inside the container as labuser

whoami                         # Expected: labuser
id                             # Expected: uid=1000(labuser)...
sudo --version                 # Expected: Sudo version 1.8.31
sudo -l                        # Expected: Sorry, user labuser may not run sudo...
sudoedit -s '\' 2>&1          # Expected: NOT "usage:" → VULNERABLE

4. エクスプロイトをコピーして実行する

# From host machine
docker cp exploit/exploit.py baron_samedit_target:/home/labuser/

# Inside container
python3 exploit.py --check-only      # verify all prerequisites pass
python3 exploit.py --safe-mode       # canary only, no exploitation
python3 exploit.py --cmd "id"        # LPE → show root identity
python3 exploit.py --cmd "whoami /all" --output /tmp/proof.txt

5. エビデンスを収集する

# Inside container — before exploit
~/evidence_helper.sh > /tmp/before.txt

# After exploit
~/evidence_helper.sh > /tmp/after.txt

# Copy to host
docker cp baron_samedit_target:/tmp/before.txt proof/terminal_logs_before.txt
docker cp baron_samedit_target:/tmp/after.txt  proof/terminal_logs_after.txt

エクスプロイトの仕組み

ツールをダウンロード