Trouver les fichiers world writable avec Find
I. Présentation
Sous Linux, un fichier "world writable" est un fichier dans lequel tout le monde peut écrire, ces fichiers peuvent être sensibles car utilisés par des personnes qui n'ont à la base pas vocation à écrire des données sur le système ou hors d'un répertoire donné. Les fichiers world writable sont d'autant plus dangereux quand ils peuvent être exécutés car n'importe qui sur le système peut alors en faire un script. Nous allons ici voir comment très simplement repérer les fichiers world writable sur un système Linux au travers de la commande "find" qui est disponible sur la plupart des systèmes Linux.
II. Utilisation de la commande Find
Afin de trouver les fichiers world writable sur un système Linux, il suffit d'utiliser la commande suivante :
find / -type f ! -path '/proc/*' -prune -perm -o+w -exec ls -lg {} \; 2> /dev/null
Nous aurons alors en retour tous les fichiers world writable du système et afficher leurs droits, leur propriétaire et leur chemin complet :
Pour ceux qui souhaitent comprendre la commande :
- « find » : commande pour rechercher des fichiers dans un répertoire donné que je spécifie ici comme la racine "/"
« -type » : précise le type d’objet que l’on recherche. « f » pour file et « d » pour directory - « ! path '/proc/*' -prune » permet d'exclure le répertoire "/proc" qui sort toujours un tas de résultat
« -perm » : permet de rechercher une permission donnée, ici « o+w » ou « 2 » qui est la valeur octale de la permission « w » d’écriture pour les "autres" utilisateurs - « -exec » : permet d’exécuter une commande
- « -ls -lg {} \ » : permet de lister les fichiers sous un format liste (« l ») sans affichage du propriétaire -(« g ») depuis la racine « \ »
- « 2> /dev/null » : permet de rediriger les erreurs dans un fichier null
Pour ceux qui ont rapidement compris le principe de la commande et des différentes options utilisées, il est tout à fait possible de l'utiliser pour trouver les fichiers "world readable", des fichiers/dossiers selon des droits spécifiques ou d’exclure d'autres dossiers.