Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/trinadh465/linux-4.1.15_cve-2023-28772
Analyse des VulnérabilitésExploitationAnalyse de BinairesArticles et RechercheApprentissage et Éducation
GitHubtrinadh465/linux-4.1.15_cve-2023-28772

linux-4.1.15_CVE-2023-28772

Arborescence source du noyau Linux 4.1.15 avec des correctifs pour CVE-2023-28772, fournissant une référence pour l'analyse de vulnérabilités et la recherche d'exploitation.

Voir le dépôt
11il y a 3 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Linux kernel release 4.x http://kernel.org/

Ce sont les notes de version pour Linux version 4. Lisez-les attentivement, car elles vous expliquent de quoi il s'agit, comment installer le noyau, et que faire si quelque chose se passe mal.

QU'EST-CE QUE LINUX ?

Linux est un clone du système d'exploitation Unix, écrit de zéro par Linus Torvalds avec l'aide d'une équipe informelle de hackers à travers le Net. Il vise la conformité POSIX et Single UNIX Specification.

Il possède toutes les fonctionnalités que vous attendez d'un Unix moderne et complet, notamment le vrai multitâche, la mémoire virtuelle, les bibliothèques partagées, le chargement à la demande, les exécutables partagés avec copie sur écriture, une gestion de la mémoire appropriée, et un réseau multi-piles incluant IPv4 et IPv6.

Il est distribué sous la licence publique générale GNU - voir le fichier COPYING accompagnant pour plus de détails.

SUR QUEL MATÉRIEL FONCTIONNE-T-IL ?

Bien qu'initialement développé pour les PC 32 bits basés sur x86 (386 ou supérieur), Linux fonctionne aujourd'hui (au moins) sur les architectures Compaq Alpha AXP, Sun SPARC et 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 et Renesas M32R.

Linux est facilement portable sur la plupart des architectures 32 ou 64 bits généralistes à condition qu'elles disposent d'une unité de gestion mémoire paginée (PMMU) et d'un port du compilateur GNU C (gcc) (partie de la collection de compilateurs GNU, GCC). Linux a également été porté sur un certain nombre d'architectures sans PMMU, bien que les fonctionnalités soient alors évidemment quelque peu limitées. Linux a aussi été porté sur lui-même. Vous pouvez maintenant exécuter le noyau en tant qu'application espace utilisateur - cela s'appelle UserMode Linux (UML).

DOCUMENTATION :

  • Il existe beaucoup de documentation disponible à la fois sous forme électronique sur Internet et dans des livres, à la fois spécifique à Linux et concernant des questions UNIX générales. Je recommande de consulter les sous-répertoires de documentation sur n'importe quel site FTP Linux pour les livres du LDP (Linux Documentation Project). Ce README n'est pas destiné à être une documentation sur le système : il existe de bien meilleures sources.

  • Il existe divers fichiers README dans le sous-répertoire Documentation/ : ils contiennent généralement des notes d'installation spécifiques au noyau pour certains pilotes par exemple. Voir Documentation/00-INDEX pour une liste de ce que contient chaque fichier. Veuillez lire le fichier Changes, car il contient des informations sur les problèmes, qui peuvent survenir lors de la mise à jour de votre noyau.

  • Le sous-répertoire Documentation/DocBook/ contient plusieurs guides pour les développeurs et utilisateurs du noyau. Ces guides peuvent être rendus dans plusieurs formats : PostScript (.ps), PDF, HTML, & pages de manuel, entre autres. Après installation, "make psdocs", "make pdfdocs", "make htmldocs", ou "make mandocs" rendront la documentation dans le format demandé.

  • INSTALLATION du code source du noyau :

    • Si vous installez les sources complètes, placez l'archive du noyau dans un répertoire où vous avez les permissions (par exemple votre répertoire personnel) et décompressez-la :

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

      Remplacez "X" par le numéro de version du dernier noyau.

      N'utilisez PAS la zone /usr/src/linux ! Cette zone contient un ensemble (généralement incomplet) d'en-têtes du noyau utilisés par les fichiers d'en-tête de la bibliothèque. Ils doivent correspondre à la bibliothèque, et ne pas être perturbés par le noyau du jour.

    • Vous pouvez également effectuer une mise à niveau entre les versions 4.x par patching. Les correctifs sont distribués au format xz. Pour installer par patching, obtenez tous les fichiers de correctifs les plus récents, entrez dans le répertoire de premier niveau des sources du noyau (linux-4.X) et exécutez :

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

      Remplacez "x" pour toutes les versions supérieures à la version "X" de votre arbre source actuel, dans l'ordre, et tout devrait bien se passer. Vous pouvez supprimer les fichiers de sauvegarde (some-file-name~ ou some-file-name.orig), et vérifier qu'il n'y a pas de correctifs ayant échoué (some-file-name# ou some-file-name.rej). S'il y en a, soit vous, soit moi avons fait une erreur.

      Contrairement aux correctifs pour les noyaux 4.x, les correctifs pour les noyaux 4.x.y (également appelés noyaux -stable) ne sont pas incrémentiels mais s'appliquent directement au noyau de base 4.x. Par exemple, si votre noyau de base est 4.0 et que vous souhaitez appliquer le correctif 4.0.3, vous ne devez pas d'abord appliquer les correctifs 4.0.1 et 4.0.2. De même, si vous utilisez la version 4.0.2 du noyau et souhaitez passer à la 4.0.3, vous devez d'abord annuler le correctif 4.0.2 (c'est-à-dire patch -R) avant d'appliquer le correctif 4.0.3. Vous pouvez en lire plus à ce sujet dans Documentation/applying-patches.txt

      Alternativement, le script patch-kernel peut être utilisé pour automatiser ce processus. Il détermine la version actuelle du noyau et applique tous les correctifs trouvés.

      linux/scripts/patch-kernel linux

      Le premier argument dans la commande ci-dessus est l'emplacement des sources du noyau. Les correctifs sont appliqués à partir du répertoire courant, mais un répertoire alternatif peut être spécifié comme second argument.

    • Assurez-vous de ne pas avoir de fichiers .o obsolètes ni de dépendances qui traînent :

      cd linux make mrproper

      Vous devriez maintenant avoir les sources correctement installées.

    EXIGENCES LOGICIELLES

    Compiler et exécuter les noyaux 4.x nécessite des versions à jour de divers logiciels. Consultez Documentation/Changes pour les numéros de version minimaux requis et comment obtenir des mises à jour pour ces paquets. Attention, l'utilisation de versions excessivement anciennes de ces paquets peut provoquer des erreurs indirectes très difficiles à tracer, alors ne supposez pas que vous pouvez simplement mettre à jour les paquets lorsque des problèmes évidents surviennent lors de la construction ou de l'exploitation.

    RÉPERTOIRE DE CONSTRUCTION pour le noyau :

    Lors de la compilation du noyau, tous les fichiers de sortie seront par défaut stockés avec le code source du noyau. L'utilisation de l'option "make O=output/dir" vous permet de spécifier un emplacement alternatif pour les fichiers de sortie (y compris .config). Exemple :

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

    To configure and build the kernel, use:

    root@kitploit:~
     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
    

    Veuillez noter : si l'option 'O=output/dir' est utilisée, elle doit être utilisée pour toutes les invocations de make.

    CONFIGURATION du noyau :

    Ne sautez pas cette étape, même si vous ne mettez à jour qu'une version mineure. De nouvelles options de configuration sont ajoutées à chaque version, et des problèmes étranges apparaîtront si les fichiers de configuration ne sont pas configurés comme prévu. Si vous souhaitez reporter votre configuration existante vers une nouvelle version avec un minimum de travail, utilisez "make oldconfig", qui ne vous demandera que les réponses aux nouvelles questions.

    • Commandes de configuration alternatives :

      "make config" Interface en texte simple.

      "make menuconfig" Menus couleur basés sur texte, listes radio et dialogues.

      "make nconfig" Menus couleur texte améliorés.

      "make xconfig" Outil de configuration basé sur X windows (Qt).

      "make gconfig" Outil de configuration basé sur X windows (Gtk).

      "make oldconfig" Répond par défaut à toutes les questions en fonction du contenu de votre fichier ./.config existant et demande les nouveaux symboles de configuration.

      "make silentoldconfig" Comme ci-dessus, mais évite d'encombrer l'écran avec des questions déjà répondues. Met également à jour les dépendances.

      "make olddefconfig" Comme ci-dessus, mais définit les nouveaux symboles à leurs valeurs par défaut sans demander.

      "make defconfig" Crée un fichier ./.config en utilisant les valeurs de symbole par défaut de arch/$ARCH/defconfig ou arch/$ARCH/configs/${PLATFORM}_defconfig, selon l'architecture.

      "make ${PLATFORM}_defconfig" Crée un fichier ./.config en utilisant les valeurs de symbole par défaut de arch/$ARCH/configs/${PLATFORM}_defconfig. Utilisez "make help" pour obtenir une liste de toutes les plateformes disponibles de votre architecture.

      "make allyesconfig" Crée un fichier ./.config en définissant les valeurs des symboles à 'y' autant que possible.

      "make allmodconfig" Crée un fichier ./.config en définissant les valeurs des symboles à 'm' autant que possible.

      "make allnoconfig" Crée un fichier ./.config en définissant les valeurs des symboles à 'n' autant que possible.

      "make randconfig" Crée un fichier ./.config en définissant les valeurs des symboles aléatoirement.

      "make localmodconfig" Crée une configuration basée sur la configuration actuelle et les modules chargés (lsmod). Désactive toute option de module qui n'est pas nécessaire pour les modules chargés.

      root@kitploit:~
                          Pour créer un localmodconfig pour une autre
                          machine, stockez le lsmod de cette machine dans un
                          fichier et passez-le en paramètre LSMOD.
      
                  target$ lsmod > /tmp/mylsmod
                  target$ scp /tmp/mylsmod host:/tmp
      
                  host$ make LSMOD=/tmp/mylsmod localmodconfig
      
                          Ce qui précède fonctionne également lors de la
                          compilation croisée.
      

      "make localyesconfig" Similaire à localmodconfig, sauf qu'il convertit toutes les options de module en options intégrées (=y).

      Vous pouvez trouver plus d'informations sur l'utilisation des outils de configuration du noyau Linux dans Documentation/kbuild/kconfig.txt.

    • NOTES sur "make config" :

      • Avoir des pilotes inutiles rendra le noyau plus gros, et peut dans certaines circonstances entraîner des problèmes : la détection d'une carte contrôleur inexistante peut perturber vos autres contrôleurs

      • Compiler le noyau avec "Processor type" réglé sur une valeur supérieure à 386 donnera un noyau qui ne fonctionnera PAS sur un 386. Le noyau le détectera au démarrage et abandonnera.

      • Un noyau avec émulation mathématique compilée utilisera toujours le coprocesseur s'il est présent : l'émulation mathématique ne sera simplement jamais utilisée dans ce cas. Le noyau sera légèrement plus gros, mais fonctionnera sur différentes machines, qu'elles aient ou non un coprocesseur mathématique.

      • Les détails de configuration du "kernel hacking" aboutissent généralement à un noyau plus gros ou plus lent (ou les deux), et peuvent même rendre le noyau moins stable en configurant certaines routines pour essayer activement de casser du mauvais code afin de trouver des problèmes du noyau (kmalloc()). Ainsi, vous devriez probablement répondre 'n' aux questions pour les fonctionnalités "development", "experimental" ou "debugging".

    COMPILATION du noyau :

    • Assurez-vous de disposer d'au moins gcc 3.2. Pour plus d'informations, reportez-vous à Documentation/Changes.

      Veuillez noter que vous pouvez toujours exécuter des programmes utilisateur a.out avec ce noyau.

    • Exécutez "make" pour créer une image noyau compressée. Il est également possible d'exécuter "make install" si vous avez lilo installé pour convenir aux makefiles du noyau, mais vous voudrez peut-être d'abord vérifier votre configuration lilo particulière.

      Pour effectuer l'installation réelle, vous devez être root, mais aucune des constructions normales ne devrait l'exiger. Ne prenez pas le nom de root en vain.

    • Si vous avez configuré certaines parties du noyau en tant que `modules', vous devrez également exécuter "make modules_install".

    • Sortie verbeuse de compilation/construction du noyau :

      Normalement, le système de construction du noyau fonctionne en mode assez silencieux (mais pas totalement). Cependant, parfois vous ou d'autres développeurs du noyau avez besoin de voir les commandes de compilation, d'édition de liens ou autres exactement comme elles sont exécutées. Pour cela, utilisez le mode de construction "verbose". Cela se fait en insérant "V=1" dans la commande "make". Ex. :

      make V=1 all

      Pour que le système de construction indique également la raison de la reconstruction de chaque cible, utilisez "V=2". La valeur par défaut est "V=0".

    • Gardez un noyau de sauvegarde à portée de main en cas de problème. Ceci est particulièrement vrai pour les versions de développement, car chaque nouvelle version contient du nouveau code qui n'a pas été débogué. Assurez-vous également de conserver une sauvegarde des modules correspondant à ce noyau. Si vous installez un nouveau noyau avec le même numéro de version que votre noyau de travail, faites une sauvegarde de votre répertoire de modules avant d'exécuter "make modules_install".

      Alternativement, avant de compiler, utilisez l'option de configuration du noyau "LOCALVERSION" pour ajouter un suffixe unique à la version régulière du noyau. LOCALVERSION peut être défini dans le menu "General Setup".

    • Pour démarrer votre nouveau noyau, vous devrez copier l'image du noyau (par exemple .../linux/arch/i386/boot/bzImage après compilation) à l'endroit où se trouve votre noyau amorçable habituel.

    • Le démarrage d'un noyau directement à partir d'une disquette sans l'aide d'un chargeur d'amorçage tel que LILO n'est plus supporté.

      Si vous démarrez Linux à partir du disque dur, il y a de fortes chances que vous utilisiez LILO, qui utilise l'image du noyau spécifiée dans le fichier /etc/lilo.conf. Le fichier image du noyau est généralement /vmlinuz, /boot/vmlinuz, /bzImage ou /boot/bzImage. Pour utiliser le nouveau noyau, sauvegardez une copie de l'ancienne image et copiez la nouvelle image par-dessus l'ancienne. Ensuite, vous DEVEZ RELANCER LILO pour mettre à jour la carte de chargement !! Sinon, vous ne pourrez pas démarrer la nouvelle image du noyau.

      La réinstallation de LILO consiste généralement à exécuter /sbin/lilo. Vous pouvez souhaiter éditer /etc/lilo.conf pour spécifier une entrée pour votre ancienne image du noyau (par exemple, /vmlinux.old) au cas où la nouvelle ne fonctionnerait pas. Voir la documentation LILO pour plus d'informations.

      Après avoir réinstallé LILO, tout devrait être prêt. Éteignez le système, redémarrez et profitez-en !

      Si jamais vous devez changer le périphérique racine par défaut, le mode vidéo, la taille du disque RAM, etc. dans l'image du noyau, utilisez le programme 'rdev' (ou alternativement les options de démarrage LILO le cas échéant). Pas besoin de recompiler le noyau pour changer ces paramètres.

    • Redémarrez avec le nouveau noyau et profitez.

    SI QUELQUE CHOSE SE PASSE MAL :

    • Si vous avez des problèmes qui semblent dus à des bogues du noyau, veuillez vérifier le fichier MAINTAINERS pour voir s'il y a une personne particulière associée à la partie du noyau avec laquelle vous avez des problèmes. Si personne n'y est listé, la deuxième meilleure chose est de m'envoyer un mail ([email protected]), et éventuellement à toute autre liste de diffusion pertinente ou au groupe de discussion.

    • Dans tous les rapports de bogues, veuillez indiquer de quel noyau vous parlez, comment reproduire le problème et quelle est votre configuration (utilisez votre bon sens). Si le problème est nouveau, dites-le moi, et si le problème est ancien, veuillez essayer de me dire quand vous l'avez remarqué pour la première fois.

    • Si le bogue produit un message comme

      unable to handle kernel paging request at address C0000010 Oops: 0002 EIP: 0010:XXXXXXXX eax: xxxxxxxx ebx: xxxxxxxx ecx: xxxxxxxx edx: xxxxxxxx esi: xxxxxxxx edi: xxxxxxxx ebp: xxxxxxxx ds: xxxx es: xxxx fs: xxxx gs: xxxx Pid: xx, process nr: xx xx xx xx xx xx xx xx xx xx xx

      ou des informations de débogage du noyau similaires sur votre écran ou dans votre journal système, veuillez les dupliquer exactement. Le dump peut vous paraître incompréhensible, mais il contient des informations qui peuvent aider à déboguer le problème. Le texte au-dessus du dump est également important : il indique quelque chose sur la raison pour laquelle le noyau a vidé du code (dans l'exemple ci-dessus, c'est dû à un mauvais pointeur du noyau). Plus d'informations pour comprendre le dump se trouvent dans Documentation/oops-tracing.txt

    • Si vous avez compilé le noyau avec CONFIG_KALLSYMS, vous pouvez envoyer le dump tel quel, sinon vous devrez utiliser le programme "ksymoops" pour comprendre le dump (mais compiler avec CONFIG_KALLSYMS est généralement préférable). Cet utilitaire peut être téléchargé depuis ftp://ftp..kernel.org/pub/linux/utils/kernel/ksymoops/ . Alternativement, vous pouvez effectuer la recherche du dump manuellement :

    • Dans les dumps de débogage comme celui ci-dessus, il est extrêmement utile de pouvoir rechercher ce que signifie la valeur EIP. La valeur hexadécimale en soi ne m'aide pas beaucoup, ni personne d'autre : cela dépendra de votre configuration particulière du noyau. Ce que vous devez faire, c'est prendre la valeur hexadécimale de la ligne EIP (ignorez le "0010:"), et la rechercher dans la namelist du noyau pour voir quelle fonction du noyau contient l'adresse incriminée.

      Pour trouver le nom de la fonction du noyau, vous devrez trouver le binaire système associé au noyau qui a présenté le symptôme. Il s'agit du fichier 'linux/vmlinux'. Pour extraire la namelist et la faire correspondre à l'EIP du crash du noyau, faites :

      nm vmlinux | sort | less

      Cela vous donnera une liste d'adresses du noyau triées par ordre croissant, à partir de laquelle il est simple de trouver la fonction qui contient l'adresse incriminée. Notez que l'adresse donnée par les messages de débogage du noyau ne correspondra pas nécessairement exactement aux adresses des fonctions (en fait, c'est très peu probable), donc vous ne pouvez pas simplement faire un 'grep' sur la liste : la liste vous donnera cependant le point de départ de chaque fonction du noyau, donc en cherchant la fonction qui a une adresse de départ inférieure à celle que vous recherchez mais suivie d'une fonction avec une adresse supérieure, vous trouverez celle que vous voulez. En fait, il peut être bon d'inclure un peu de "contexte" dans votre rapport de problème, en donnant quelques lignes autour de celle qui est intéressante.

      Si pour une raison quelconque vous ne pouvez pas faire ce qui précède (vous avez une image de noyau pré-compilée ou similaire), me donner le plus de détails possible sur votre configuration aidera. Veuillez lire le document REPORTING-BUGS pour plus de détails.

    • Alternativement, vous pouvez utiliser gdb sur un noyau en cours d'exécution. (en lecture seule ; c'est-à-dire que vous ne pouvez pas modifier les valeurs ou définir des points d'arrêt.) Pour ce faire, compilez d'abord le noyau avec -g ; éditez arch/i386/Makefile de manière appropriée, puis faites un "make clean". Vous devrez également activer CONFIG_PROC_FS (via "make config").

      Après avoir redémarré avec le nouveau noyau, faites "gdb vmlinux /proc/kcore". Vous pouvez maintenant utiliser toutes les commandes gdb habituelles. La commande pour rechercher le point où votre système a planté est "l *0xXXXXXXXX". (Remplacez les XXX par la valeur EIP.)

      Utiliser gdb sur un noyau non en cours d'exécution échoue actuellement car gdb (à tort) ignore le décalage de départ pour lequel le noyau est compilé.

    Télécharger l’outil