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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
linux-4.1.15_CVE-2018-5873 — Linux kernel 4.1.15 ソースツリーで、CVE-2018-5873 に焦点を当て、脆弱性分析とエクスプロイト研究のためのリファレンスを提供します。 | Kitploit
ツール/GitHubGitHub/trinadh465/linux-4.1.15_cve-2018-5873
脆弱性分析エクスプロイト論文と研究学習と教育バイナリエクスプロイト
GitHubtrinadh465/linux-4.1.15_cve-2018-5873

linux-4.1.15_CVE-2018-5873

Linux kernel 4.1.15 ソースツリーで、CVE-2018-5873 に焦点を当て、脆弱性分析とエクスプロイト研究のためのリファレンスを提供します。

リポジトリを見る

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
73年前未レビュー
共有

Linux カーネル リリース 4.x http://kernel.org/

これらは Linux バージョン 4 のリリースノートです。注意深く読んでください。 そこには、これが何であるか、カーネルのインストール方法、そして問題が発生した場合の対処法が書かれています。

Linux とは何か?

Linux は Unix オペレーティングシステムのクローンであり、ネットワークを介して緩やかに結びついたハッカーのチームの支援を受けながら、Linus Torvalds によってゼロから書かれました。POSIX および Single UNIX Specification への準拠を目指しています。

本物のマルチタスク、仮想メモリ、共有ライブラリ、デマンドローディング、共有コピーオンライト実行可能ファイル、適切なメモリ管理、そして IPv4 と IPv6 を含むマルチスタックネットワーキングなど、現代の本格的な Unix に期待されるすべての機能を備えています。

GNU General Public License の下で配布されています。詳細は同梱の COPYING ファイルを参照してください。

どのようなハードウェアで動作するのか?

元々は 32 ビット x86 ベースの PC(386 以上)向けに最初に開発されましたが、現在の Linux は(少なくとも)Compaq Alpha AXP、Sun SPARC と UltraSPARC、Motorola 68000、PowerPC、PowerPC64、ARM、Hitachi SuperH、Cell、IBM S/390、MIPS、HP PA-RISC、Intel IA-64、DEC VAX、AMD x86-64、AXIS CRIS、Xtensa、Tilera TILE、AVR32、Renesas M32R の各アーキテクチャでも動作します。

Linux は、ページング式メモリ管理ユニット(PMMU)と GNU C コンパイラ(gcc)(GNU Compiler Collection、GCC の一部)の移植版があれば、ほとんどの汎用 32 ビットまたは 64 ビットアーキテクチャに容易に移植できます。Linux は PMMU を持たない多くのアーキテクチャにも移植されていますが、その場合、機能は明らかにいくらか制限されます。 Linux はまた、それ自身にも移植されています。現在ではカーネルをユーザー空間アプリケーションとして実行できます。これは UserMode Linux(UML)と呼ばれます。

ドキュメント:

  • Linux 固有のものと一般的な UNIX の質問に関するものの両方について、インターネット上の電子形式と書籍の両方で多くのドキュメントが入手可能です。LDP(Linux Documentation Project)の書籍については、どの Linux FTP サイトのドキュメントサブディレクトリを調べることをお勧めします。この README はシステムのドキュメントを意図したものではありません。はるかに優れた情報源が利用可能です。

  • Documentation/ サブディレクトリにはさまざまな README ファイルがあります。これらには通常、たとえば一部のドライバに関するカーネル固有のインストールノートが含まれています。各ファイルに何が含まれているかの一覧については、Documentation/00-INDEX を参照してください。Changes ファイルには、カーネルのアップグレードによって生じる可能性のある問題に関する情報が含まれているので、必ず読んでください。

  • Documentation/DocBook/ サブディレクトリには、カーネル開発者とユーザーのためのいくつかのガイドが含まれています。これらのガイドは、PostScript (.ps)、PDF、HTML、man ページなど、さまざまな形式でレンダリングできます。インストール後、"make psdocs"、"make pdfdocs"、"make htmldocs"、または "make mandocs" を実行すると、指定した形式でドキュメントがレンダリングされます。

カーネルソースのインストール:

  • 完全なソースをインストールする場合は、カーネルの tarball を権限のあるディレクトリ(例: ホームディレクトリ)に置いて、解凍してください:

    xz -cd linux-4.X.tar.xz | tar xvf -

    「X」を最新カーネルのバージョン番号に置き換えてください。

    /usr/src/linux 領域を使用しないでください! この領域には、ライブラリのヘッダーファイルで使用される(通常は不完全な)カーネルヘッダーのセットがあります。これらはライブラリと一致している必要があり、その時々のカーネル(kernel-du-jour)によって壊されるべきではありません。

  • パッチを適用して 4.x リリース間でアップグレードすることもできます。パッチは xz 形式で配布されています。パッチによるインストールを行うには、新しいパッチファイルをすべて取得し、カーネルソースのトップレベルディレクトリ(linux-4.X)に入って、次を実行してください:

    xz -cd ../patch-4.x.xz | patch -p1

    現在のソースツリーのバージョン「X」より大きいすべてのバージョンについて「x」を置き換えて、順番に 適用すれば、うまくいくはずです。バックアップファイル(some-file-name~ または some-file-name.orig)を削除し、失敗したパッチ(some-file-name# または some-file-name.rej)がないことを確認してください。もしあれば、あなたか私のどちらかが間違いを犯したことになります。

    4.x カーネル用のパッチとは異なり、4.x.y カーネル(-stable カーネルとしても知られています)用のパッチは増分ではなく、ベースとなる 4.x カーネルに直接適用されます。たとえば、ベースカーネルが 4.0 で 4.0.3 パッチを適用したい場合、最初に 4.0.1 と 4.0.2 のパッチを適用してはいけません。同様に、カーネルバージョン 4.0.2 を実行していて 4.0.3 に移行したい場合は、4.0.3 パッチを適用する_前に_、まず 4.0.2 パッチを逆適用(つまり patch -R)する必要があります。これについては Documentation/applying-patches.txt で詳しく読むことができます。

    あるいは、patch-kernel スクリプトを使用してこのプロセスを自動化することもできます。現在のカーネルバージョンを判断し、見つかったパッチを適用します。

    linux/scripts/patch-kernel linux

    上記のコマンドの最初の引数はカーネルソースの場所です。パッチは現在のディレクトリから適用されますが、2 番目の引数として別のディレクトリを指定できます。

  • 古い .o ファイルや依存関係が残っていないことを確認してください:

    cd linux make mrproper

    これでソースが正しくインストールされたはずです。

ソフトウェア要件

4.x カーネルのコンパイルと実行には、さまざまなソフトウェアパッケージの最新バージョンが必要です。必要な最小バージョン番号と、これらのパッケージの更新を取得する方法については、Documentation/Changes を参照してください。これらのパッケージの過度に古いバージョンを使用すると、追跡が非常に困難な間接的なエラーが発生する可能性があることに注意してください。ビルド中や動作中に明らかな問題が発生したときに、パッケージを更新するだけでよいと考えないでください。

カーネルのビルドディレクトリ:

カーネルをコンパイルすると、デフォルトではすべての出力ファイルがカーネルソースコードと一緒に保存されます。"make O=output/dir" オプションを使用すると、出力ファイル(.config を含む)の代替場所を指定できます。例:

 kernel source code: /usr/src/linux-4.X
 build directory:    /home/name/build/kernel

カーネルを構成してビルドするには、次を使用します:

 cd /usr/src/linux-4.X
 make O=/home/name/build/kernel menuconfig
 make O=/home/name/build/kernel
 sudo make O=/home/name/build/kernel modules_install install

注意: 'O=output/dir' オプションを使用する場合は、make のすべての呼び出しで使用する必要があります。

カーネルの構成:

1 つのマイナーバージョンだけをアップグレードする場合でも、このステップを省略しないでください。各リリースで新しい構成オプションが追加され、構成ファイルが期待どおりに設定されていないと、奇妙な問題が発生します。既存の構成を最小限の作業で新しいバージョンに引き継ぎたい場合は、"make oldconfig" を使用してください。これは新しい質問に対する答えだけを尋ねます。

  • 代替の構成コマンドは次のとおりです:

    "make config" プレーンテキストインターフェース。

    "make menuconfig" テキストベースのカラーメニュー、ラジオリスト、ダイアログ。

    "make nconfig" 拡張されたテキストベースのカラーメニュー。

    "make xconfig" X Window (Qt) ベースの構成ツール。

    "make gconfig" X Window (Gtk) ベースの構成ツール。

    "make oldconfig" 既存の ./.config ファイルの内容に基づいてすべての質問をデフォルトにし、新しい構成シンボルについて尋ねます。

    "make silentoldconfig" 上記と同様ですが、すでに回答済みの質問で画面を乱雑にすることを避けます。 さらに依存関係を更新します。

    "make olddefconfig" 上記と同様ですが、プロンプトを表示せずに新しいシンボルをデフォルト値に設定します。

    "make defconfig" アーキテクチャに応じて、arch/$ARCH/defconfig または arch/$ARCH/configs/${PLATFORM}_defconfig のデフォルトシンボル値を使用して ./.config ファイルを作成します。

    "make ${PLATFORM}_defconfig" arch/$ARCH/configs/${PLATFORM}_defconfig のデフォルトシンボル値を使用して ./.config ファイルを作成します。 "make help" を使用して、お使いのアーキテクチャで利用可能なすべてのプラットフォームの一覧を取得します。

    "make allyesconfig" シンボル値を可能な限り 'y' に設定して ./.config ファイルを作成します。

    "make allmodconfig" シンボル値を可能な限り 'm' に設定して ./.config ファイルを作成します。

    "make allnoconfig" シンボル値を可能な限り 'n' に設定して ./.config ファイルを作成します。

    "make randconfig" シンボル値をランダムな値に設定して ./.config ファイルを作成します。

    "make localmodconfig" 現在の構成とロードされたモジュール (lsmod) に基づいて構成を作成します。ロードされたモジュールに必要のないモジュールオプションをすべて無効にします。

                        別のマシン用の localmodconfig を作成するには、そのマシンの lsmod をファイルに保存し、LSMOD パラメータとして渡します。
    
                target$ lsmod > /tmp/mylsmod
                target$ scp /tmp/mylsmod host:/tmp
    
                host$ make LSMOD=/tmp/mylsmod localmodconfig
    
                        上記はクロスコンパイル時にも機能します。
    

    "make localyesconfig" すべてのモジュールオプションを組み込み (=y) オプションに変換することを除いて、localmodconfig と同様です。

    Linux カーネル構成ツールの使用に関する詳細は、Documentation/kbuild/kconfig.txt にあります。

  • "make config" に関する注意:

    • 不要なドライバがあるとカーネルが大きくなり、状況によっては問題を引き起こす可能性があります。存在しないコントローラカードをプローブすると、他のコントローラを混乱させる可能性があります。

    • "Processor type" を 386 より高く設定してカーネルをコンパイルすると、386 では動作しないカーネルになります。カーネルは起動時にこれを検出して、処理を中止します。

    • math-emulation を組み込んでコンパイルされたカーネルは、コプロセッサが存在する場合はそれを使用します。その場合、数学エミュレーションは単に使用されないだけです。カーネルはわずかに大きくなりますが、数学コプロセッサの有無にかかわらず、さまざまなマシンで動作します。

    • "kernel hacking" の構成詳細は、通常、カーネルを大きくしたり遅くしたり(またはその両方)し、カーネルの問題を見つけるために一部のルーチンを悪いコードを積極的に壊そうとするように構成することで、カーネルの安定性を低下させることさえあります (kmalloc())。したがって、"development"、"experimental"、"debugging" 機能に関する質問には 'n' と答えるべきでしょう。

カーネルのコンパイル:

  • 少なくとも gcc 3.2 が利用可能であることを確認してください。詳細については、Documentation/Changes を参照してください。

    このカーネルでは a.out ユーザープログラムを引き続き実行できることに注意してください。

  • 圧縮されたカーネルイメージを作成するには "make" を実行します。カーネルの makefile に適合する lilo がインストールされていれば "make install" を実行することもできますが、最初に特定の lilo 設定を確認することをお勧めします。

    実際のインストールを行うには root である必要がありますが、通常のビルドで root である必要はありません。root の名前を軽々しく使わないでください。

  • カーネルの一部を `modules' として構成した場合は、"make modules_install" も実行する必要があります。

  • 詳細なカーネルコンパイル/ビルド出力:

    通常、カーネルビルドシステムはかなり静かなモード(ただし完全に無音ではありません)で実行されます。しかし、あなたや他のカーネル開発者が、コンパイル、リンク、その他のコマンドが実行されたとおりに正確に確認する必要がある場合があります。この場合は、"verbose" ビルドモードを使用します。これは "make" コマンドに "V=1" を挿入することで行われます。例:

    make V=1 all

    ビルドシステムに各ターゲットの再ビルドの理由も伝えさせるには、"V=2" を使用します。デフォルトは "V=0" です。

  • 何か問題が発生した場合に備えて、バックアップカーネルを手元に置いておいてください。これは開発リリースでは特に重要です。各新リリースにはデバッグされていない新しいコードが含まれているためです。そのカーネルに対応するモジュールのバックアップも必ず保持してください。動作中のカーネルと同じバージョン番号の新しいカーネルをインストールする場合は、"make modules_install" を実行する前にモジュールディレクトリのバックアップを作成してください。

    あるいは、コンパイルする前に、カーネル構成オプション "LOCALVERSION" を使用して、通常のカーネルバージョンに一意のサフィックスを追加します。LOCALVERSION は "General Setup" メニューで設定できます。

  • 新しいカーネルを起動するには、カーネルイメージ(例: コンパイル後の .../linux/arch/i386/boot/bzImage)を、通常の起動可能なカーネルがある場所にコピーする必要があります。

  • LILO などのブートローダーの支援なしにフロッピーから直接カーネルを起動することは、もはやサポートされていません。

ツールをダウンロード