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