Comment se défendre contre les attaques par force brute avec Fail2ban ?

Hi guys, all is good ?

 

Afin de varier et de diversifier les articles, je vous propose aujourd’hui de parler sur l’aspect sécurité. Je vais vous montrer comment détecter une attaque de brute forcing sur les serveurs SSH et FTP en utilisant l’outil Fail2ban.

 

 

Chaque jour, j’entends des nouvelles liées à la cybercriminalité, par exemple, certains utilisateurs ou robots malveillants ont réussi à contourner certains sites Web ou certains services accessibles au public. Durant les articles précédents, j’ai montré plusieurs techniques de brute forcing et de connexion, Il est donc important de mettre en place des mesures de sécurité, telles que IDS/IPS dans le pare-feu, pour défendre nos serveurs/clients lors de la configuration.

IPS : Examine le trafic entrant afin d’effectuer une détection d’intrusion, puis de bloquer les incidents, supprimer des paquets malveillants, interdire le trafic provenant d’une adresse IP incriminée…

 

 

Fail2ban est une application qui analyse les logs de divers services (SSH, Apache, FTP…) en cherchant des correspondances entre des motifs définis dans ses filtres et les entrées des logs. Il cherche des tentatives répétées de connexions infructueuses dans les fichiers journaux et procède à un bannissement en ajoutant une règle au pare-feu iptables ou nftables pour bannir l’adresse IP de la source.

 

Attaque brute-forcing en l’absence d’IPS

Je suppose que tout le monde connait l’outil hydra, donc pas besoin de faire un rappel. Je commence, afin de mieux vous montrer j’utiliserai une machine Ubuntu comme cible et Parros OS comme attaquante. Pour info, j’ai créé mes propres wordlist (user.txt et pass.txt).

Alors, je lance d’abord mon attaque sur le serveur SSH :

hydra -L user.txt -P pass.txt 192.168.1.112 ssh -f

Voilà, il a réussi à trouver les données d’authentification côté SSH.  Maintenant, je vais effectuer une commande très similaire pour le serveur FTP :

hydra -L user.txt -P pass.txt 192.168.1.112 ftp -f

Jusque-là tout va bien ça fonctionne également, le but étant de bloquer le brute-forcing donc je vais installer l’outil en question pour la suite.

 

 

  • Installation et configuration de Fail2ban

 

En utilisant Ubuntu je me suis facilité la tâche, car il dispose déjà du package 😉. Pour l’installer rien de compliqué il suffit de taper la commande :

sudo apt-get install fail2ban

Mais avant, je voudrai vous montrer la liste des règles iptables pour cela utiliser ceci :

sudo iptables -S

REMARQUE

Lors de la configuration de fail2ban sur votre ordinateur local, vous devez disposer d’un accès root ou pouvez utiliser un utilisateur non root avec des droits sudo.

 

sudo apt-get install fail2ban

Une fois l’installation terminée, je vais passer à la phase de configuration. Le service Fail2ban a ses fichiers de configuration par défaut « jail.local » dans le répertoire /etc/fail2ban, par conséquent, je ne dois pas modifier ce fichier, mais peux le remplacer par le fichier jail.local pour le configurer selon mes besoins.

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

 puis

sudo gedit /etc/fail2ban/jail.local

Voilà, c’est dans ce fameux fichier que je vais tout paramétrer de façon à bloquer les attaques. Il me faut définir l’adresse IP que Fail2ban doit ignorer, le nombre maximal de tentatives de l’utilisateur et le temps d’interdiction :

Pour cette partie j’en ai fini.

 

 

Je dois aller maintenant chercher les lignes concernant le SSH et paramétrer comme sur l’image ci-dessous :

C’est bon ! Je dois relancer le service Fail2ban puis après observer le statut côté client ssh. Pour voir si mes paramètres ont été sauvegardés je check l’iptables :

sudo fail2ban-client status

sudo fail2ban-client status ssh

sudo iptables -S

Nickel ! un petit test pour voir si ça fonctionne ? aller go !!! je relance mon attaque de brute-forcing SSH sur le même serveur :

Yesss !!! ça fonctionne très très bien 😉 impossible d’obtenir des informations de connexion. Je vais jeter un coup d’œil sur le statut et le fichier de log :

sudo fail2ban-client status ssh

sudo tail /var/log/auth.log

Super, je vois bien l’adresse IP de l’attaquant. Bon, c’est bien de bannir mais il faut débanner l’adresse IP :

fail2ban-client -i

Set ssh unbanip 192.168.1.164

exit

sudo fail2ban-client status ssh

Je dois redémarrer le service fail2ban pour prendre en compte les modifications :

service fail2ban restart

sudo fail2ban-client status ssh

Maintenant je reteste un coup pour voir si je peux brute-forcer :

hydra -L user.txt -P pass.txt 192.168.1.112 ssh -f

Super ça remarche, donc la sécurité est enlevée.

 

 

 

Pour le serveur FTP [vsftpd], je dois modifier le fichier jail.local en changeant le logpath, le filtre et maxretry ainsi que bien vérifier si enabled = true :

J’essaie pour voir si ça fonctionne :

hydra -L user.txt -P pass.txt 192.168.1.112 ftp -f

Voilà ! je suis bloqué et en plus mon adresse IP attaquante est bien mentionnée dans le iptables :

Je vous laisse le libre choix d’enlever le bannissement par vous-même afin de vous familiariser avec les commandes et de bien comprendre le déroulement.

 

 

 

C’est la fin de cet article, j’espère que ça a été assez instructif pour vous et surtout compréhensible. N’hésitez pas à revenir vers moi ou de d’échanger sur les différents réseaux sociaux avec notre communauté si besoin.

Je vous propose d’utiliser les commandes plusieurs fois avec des exemples différentes afin de vraiment prendre en main l’outil.

À très vite pour un prochain article rempli d’informations 😉 PEACE !!



Hébergez votre site à partir de 2$ sur 👉👉👉

À propos Santana

Analyste en cybersécurité avec 5 ans d'expérience dans la protection des systèmes d'information contre les menaces et les attaques. Expertise dans la surveillance des réseaux, l'analyse des vulnérabilités, et la gestion des incidents de sécurité. Passionnée par l'innovation technologique et la mise en œuvre de solutions de sécurité robustes pour protéger les données sensibles et assurer la conformité réglementaire.

Vérifiez également

L’outil de manipulation SET Toolkit – HTA Attack

Hi guys, how are you ? hope all is ok for you !!!   Un …

Watcher – TryHackMe Walkthrough – HackinGeeK

Yo les amis ! what’s up ? Prêt pour continuer avec les CTFs ? si …

Agent sudo – Solution CTF Tryhackme

What’s up guy ? j’espère que vous avez la forme !   De retour pour un CTF …

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.