Dans le monde de la cybersécurité et de l'administration réseau, un scanner de ports est un outil essentiel. Il permet d'identifier les ports ouverts sur un système, ce qui peut aider à détecter des vulnérabilités potentielles. Dans cet article, nous allons explorer comment construire un scanner de ports simple en utilisant le langage de programmation Ruby. Que vous soyez un débutant ou un développeur expérimenté, ce guide vous fournira des informations utiles et des exemples de code pour vous aider à démarrer.
Un scanner de ports est un programme qui envoie des requêtes à des ports spécifiques sur une machine cible pour déterminer leur état. Les ports peuvent être ouverts, fermés ou filtrés. Voici un aperçu des états des ports :
Les scanners de ports sont souvent utilisés pour des tests de pénétration, mais ils peuvent également être utilisés à des fins légitimes, comme la gestion des réseaux.
Avant de commencer, assurez-vous d'avoir Ruby installé sur votre machine. Vous pouvez vérifier cela en exécutant la commande suivante dans votre terminal :
ruby -v
Si Ruby n'est pas installé, vous pouvez le télécharger depuis le site officiel de Ruby.
Nous allons créer un scanner de ports simple qui peut scanner une plage de ports sur une machine cible. Voici les étapes que nous allons suivre :
Commençons par créer un fichier Ruby, par exemple port_scanner.rb
. Dans ce fichier, nous allons définir les paramètres de base, tels que l'adresse IP de la cible et la plage de ports à scanner.
target_ip = '127.0.0.1' # Remplacez par l'adresse IP de votre cible
start_port = 1
end_port = 1024
Nous allons maintenant écrire une méthode qui tentera de se connecter à un port spécifique. Si la connexion réussit, cela signifie que le port est ouvert.
require 'socket'
def scan_port(ip, port)
socket = Socket.new(:INET, :STREAM)
remote_addr = Socket.sockaddr_in(port, ip)
begin
socket.connect(remote_addr)
return true
rescue Errno::ECONNREFUSED
return false
ensure
socket.close
end
end
Nous allons maintenant écrire une méthode qui utilisera la méthode scan_port
pour scanner une plage de ports.
def scan_ports(ip, start_port, end_port)
open_ports = []
(start_port..end_port).each do |port|
if scan_port(ip, port)
open_ports << port
puts "Port #{port} est ouvert."
else
puts "Port #{port} est fermé."
end
end
open_ports
end
Enfin, nous allons exécuter notre scanner et afficher les résultats. Ajoutez le code suivant à la fin de votre fichier port_scanner.rb
.
puts "Scanning #{target_ip} from port #{start_port} to #{end_port}..."
open_ports = scan_ports(target_ip, start_port, end_port)
puts "Ports ouverts : #{open_ports.join(', ')}" if open_ports.any?
Pour exécuter votre scanner de ports, ouvrez un terminal et naviguez jusqu'au répertoire où se trouve votre fichier port_scanner.rb
. Exécutez la commande suivante :
ruby port_scanner.rb
Vous devriez voir une sortie indiquant quels ports sont ouverts et lesquels sont fermés. N'oubliez pas que le scanner peut prendre un certain temps, en fonction de la plage de ports que vous avez spécifiée.
Bien que notre scanner de ports soit fonctionnel, il existe plusieurs améliorations que vous pouvez envisager :
Dans cet article, nous avons construit un scanner de ports simple en Ruby. Nous avons appris à configurer les paramètres de base, à écrire des méthodes pour scanner des ports et à exécuter notre scanner. Bien que ce scanner soit basique, il constitue une excellente base pour des projets plus avancés. N'hésitez pas à explorer et à ajouter vos propres fonctionnalités pour le rendre encore plus puissant.
Nous espérons que cet article vous a été utile et que vous vous sentez prêt à créer votre propre scanner de ports. Bonne programmation !
© 2024 RailsInsights. All rights reserved.