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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
linux-4.1.15_CVE-2022-42703 — CVE-2022-42703に焦点を当てたLinuxカーネル4.1.15のソースツリー。netfilterサブシステムのuse-after-free脆弱性を分析および悪用研究するためのものです。 | Kitploit
ツール/GitHubGitHub/satheesh575555/linux-4.1.15_cve-2022-42703
脆弱性分析エクスプロイト論文と研究学習と教育バイナリエクスプロイト
GitHubsatheesh575555/linux-4.1.15_cve-2022-42703

linux-4.1.15_CVE-2022-42703

CVE-2022-42703に焦点を当てたLinuxカーネル4.1.15のソースツリー。netfilterサブシステムのuse-after-free脆弱性を分析および悪用研究するためのものです。

リポジトリを見る
112年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

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

以下は Linux バージョン 4 のリリースノートです。注意深くお読みください。 これが何に関するものか、カーネルのインストール方法、問題が発生した場合の対処法が説明されています。

Linux とは何か?

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

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

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 領域を使用しないでください!この領域には、ライブラリのヘッダーファイルが使用する(通常は不完全な)カーネルヘッダーのセットがあります。これらはライブラリと一致している必要があり、その時々のカーネルによって壊されてはいけません。

  • パッチを適用して 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 を含む)の代替場所を指定できます。 例:

 カーネルソースコード: /usr/src/linux-4.X
 ビルドディレクトリ:    /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 windows(Qt)ベースの設定ツール。

    "make gconfig" X windows(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" localmodconfig と似ていますが、すべてのモジュールオプションを組み込み(=y)オプションに変換します。

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

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

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

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

    • 数値演算エミュレーションをコンパイルしたカーネルでも、コプロセッサが存在する場合はそれを使用します:その場合、数値演算エミュレーションは決して使用されません。カーネルは少し大きくなりますが、数値演算コプロセッサの有無にかかわらず、さまざまなマシンで動作します。

    • "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 などのブートローダーの助けを借りずにフロッピーから直接カーネルを起動することは、もはやサポートされていません。

    ハードドライブから Linux を起動する場合、/etc/lilo.conf ファイルで指定されたカーネルイメージを使用する LILO を使用している可能性が高いです。カーネルイメージファイルは通常 /vmlinuz、/boot/vmlinuz、/bzImage または /boot/bzImage です。新しいカーネルを使用するには、古いイメージのコピーを保存し、新しいイメージを古いイメージの上にコピーします。次に、ローディングマップを更新するために、LILO を再実行する必要があります!!そうしないと、新しいカーネルイメージを起動できません。

ツールをダウンロード