Kernelcompliation unter Kali: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 18: Zeile 18:
 
*sudo apt install -y linux-source-6.1
 
*sudo apt install -y linux-source-6.1
 
<pre>
 
<pre>
Paketlisten lesen... Fertig
+
Reading package lists... Done
Abhängigkeitsbaum erstellen
+
Building dependency tree... Done
Zustandsinformationen lesen... Fertig
+
Reading state information... Done
Die folgenden zusätzlichen Pakete werden installiert:
+
The following additional packages will be installed:
  bc libreadline7
+
  bison flex libdw1 libelf-dev libelf1 libfl-dev libfl2 libssl-dev libssl3
Vorgeschlagene Pakete:
+
  linux-compiler-gcc-12-x86 linux-config-6.1 linux-headers-6.1.0-kali5-amd64
  libncurses-dev | ncurses-dev libqt4-dev
+
  linux-headers-6.1.0-kali5-common linux-headers-amd64
Die folgenden NEUEN Pakete werden installiert:
+
  linux-image-6.1.0-kali5-amd64 linux-image-amd64 linux-kbuild-6.1
  bc libreadline7 linux-source-4.9
+
  linux-libc-dev m4 openssl
0 aktualisiert, 3 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
 
 
</pre>
 
</pre>
  

Version vom 12. März 2023, 18:07 Uhr

Neukompilieren des Kali-Linux-Kernels

Die Anpassbarkeit von Kali Linux erstreckt sich bis hinunter in den Linux-Kernel.

Abhängig von Ihren Anforderungen möchten Sie möglicherweise Treiber, Patches oder Kernelfunktionen hinzufügen, die nicht im standardmäßigen Kali Linux-Kernel enthalten sind. Die folgende Anleitung beschreibt, wie der Kali-Linux-Kernel schnell modifiziert und für Ihre Bedürfnisse neu kompiliert werden kann. Beachten Sie, dass globale Wireless-Injection-Patches bereits standardmäßig im Kali-Linux-Kernel vorhanden sind.

Installieren Sie Build-Abhängigkeiten

Alle Build-Abhängigkeiten zu installieren

  • sudo apt install -y build-essential libncurses5-dev fakeroot xz-utils

Laden Sie den Kali Linux-Kernel-Quellcode herunter Der Rest dieses Abschnitts konzentriert sich auf die Version 4.9 des Linux-Kernels, aber die Beispiele können natürlich an die bestimmte gewünschte Version des Kernels angepasst werden. Wir gehen davon aus, dass das Binärpaket linux-source-4.9 installiert wurde. Beachten Sie, dass wir ein Binärpaket installieren, das die Upstream-Quellen enthält, wir rufen das Kali-Quellpaket namens linux nicht ab:

Welche Kernelversion liegt vor?

  • apt-cache search linux-source
linux-source - Linux kernel source (meta-package)
linux-source-6.1 - Linux kernel source for version 6.1 with Debian patches

Kernel Sourcen installien

  • sudo apt install -y linux-source-6.1
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  bison flex libdw1 libelf-dev libelf1 libfl-dev libfl2 libssl-dev libssl3
  linux-compiler-gcc-12-x86 linux-config-6.1 linux-headers-6.1.0-kali5-amd64
  linux-headers-6.1.0-kali5-common linux-headers-amd64
  linux-image-6.1.0-kali5-amd64 linux-image-amd64 linux-kbuild-6.1
  linux-libc-dev m4 openssl

Benötigen Sie 95,4 MB an Archiven. Nach diesem Vorgang werden 95,8 MB zusätzlicher Speicherplatz verwendet. [...]

  • ls /usr/src
linux-config-4.9 linux-patch-4.9-rt.patch.xz linux-source-4.9.tar.xz

Beachten Sie, dass das Paket /usr/src/linux-source-4.9.tar.xz enthält, ein komprimiertes Archiv der Kernelquellen. Sie müssen diese Dateien in ein neues Verzeichnis extrahieren (nicht direkt unter /usr/src/, da zum Kompilieren eines Linux-Kernels keine besonderen Berechtigungen erforderlich sind). Stattdessen ist ~/kernel/ besser geeignet:

=Wir installieren den Kernel unterhalb von /root

  • mkdir -p ~/kernel/
  • cd ~/kernel/
  • tar -xaf /usr/src/linux-source-4.9.tar.xz

Konfigurieren Sie Ihren Kernel

Beim Neukompilieren einer neueren Version des Kernels (evtl. mit zusätzlichem Patch) wird die Konfiguration höchstwahrscheinlich so nah wie möglich an der von Kali Linux vorgeschlagenen bleiben. Anstatt alles von Grund auf neu zu konfigurieren, reicht es in diesem Fall aus, die Datei /boot/config-version (die Version ist die des aktuell verwendeten Kernels, die mit dem Befehl uname -r gefunden werden kann) in eine . config-Datei im Verzeichnis mit den Kernel-Quellen:

  • cp /boot/config-4.9.0-kali1-amd64 ~/kernel/linux-source-4.9/.config

Wenn Sie Änderungen vornehmen müssen oder sich entscheiden, alles von Grund auf neu zu konfigurieren, müssen Sie sich die Zeit nehmen, Ihren Kernel zu konfigurieren. Dies kann durch Aufrufen des Befehls make menuconfig erfolgen:

  • make menuconfig

Die Einzelheiten zur Verwendung von menuconfig zum Einrichten eines Kernel-Builds würden den Rahmen dieses Handbuchs sprengen. Auf Linux.org gibt es ein ausführliches Tutorial zum Konfigurieren eines Kernel-Builds.

Erstellen Sie den Kernel

Sobald die Kernel-Konfiguration fertig ist, generiert ein einfaches make deb-pkg bis zu 5 Debian-Pakete: linux-image-version, das das Kernel-Image und die zugehörigen Module enthält, linux-headers-version, das die zum Bau erforderlichen Header-Dateien enthält externe Module, linux-firmware-image-version, das die Firmware-Dateien enthält, die von einigen Treibern benötigt werden (dieses Paket könnte fehlen, wenn Sie aus den von Debian oder Kali bereitgestellten Kernel-Quellen bauen), linux-image-version-dbg, das enthält die Debugging-Symbole für das Kernel-Image und seine Module und linux-libc-dev, das Header enthält, die für einige User-Space-Bibliotheken wie GNU glibc relevant sind. Das Linux-Kernel-Image ist ein großer Build, es wird eine Weile dauern, bis es fertig ist:

  • make clean
  • make deb-pkg LOCALVERSION=-custom KDEB_PKGVERSION=$(make kernelversion)-1

[...]

  • ls ../*.deb

../linux-headers-4.9.0-kali1-custom_4.9.2-1_amd64.deb ../linux-image-4.9.0-kali1-custom_4.9.2-1_amd64.deb ../linux-image-4.9.0-kali1-custom-dbg_4.9.2-1_amd64.deb ../linux-libc-dev_4.9.2-1_amd64.deb

Installieren Sie den modifizierten Kernel

Wenn der Build erfolgreich abgeschlossen wurde, können Sie fortfahren und den neuen benutzerdefinierten Kernel installieren und Ihr System neu starten. Bitte beachten Sie, dass die spezifischen Kernel-Versionsnummern variieren - in unserem Beispiel, das auf einem Kali 2016.2-System erstellt wurde, war es 4.9.2. Abhängig von der aktuellen Kernel-Version, die Sie erstellen, müssen Sie Ihre Befehle entsprechend anpassen:

  • sudo dpkg -i ../linux-image-4.9.0-kali1-custom_4.9.2-1_amd64.deb
  • reboot

Sobald Ihr System neu gestartet wurde, sollte Ihr neuer Kernel ausgeführt werden. Wenn etwas schief geht und Ihr Kernel nicht erfolgreich bootet, können Sie immer noch das Grub-Menü verwenden, um vom originalen Kali-Kernel zu booten und Ihre Probleme zu beheben.

Quelle