In de wereld van netwerken en cybersecurity is het scannen van poorten een essentiële vaardigheid. Het stelt ons in staat om te begrijpen welke diensten actief zijn op een server en kan ons helpen bij het identificeren van kwetsbaarheden. In dit artikel gaan we stap voor stap een eenvoudige poortscanner bouwen in Ruby. We zullen de basisprincipes van netwerken en Ruby bespreken, en we zullen codevoorbeelden geven om je op weg te helpen.
Een poortscanner is een tool die netwerkpoorten op een computer of server controleert om te bepalen welke poorten open zijn, welke gesloten zijn en welke gefilterd zijn. Dit kan nuttig zijn voor zowel netwerkbeheerders als kwaadwillende actoren. Het doel van deze tutorial is om je te leren hoe je een eenvoudige poortscanner kunt maken voor educatieve doeleinden.
Ruby is een krachtige en flexibele programmeertaal die bekend staat om zijn eenvoud en leesbaarheid. Het is een uitstekende keuze voor beginners en ervaren programmeurs. Met Ruby kun je snel prototypes bouwen en het heeft een rijke set aan bibliotheken die je kunt gebruiken voor netwerken en andere taken.
Voordat we beginnen, zorg ervoor dat je het volgende hebt geïnstalleerd:
Voordat we in de code duiken, is het belangrijk om enkele basisconcepten van netwerken te begrijpen:
Laten we nu beginnen met het bouwen van onze poortscanner. We zullen een eenvoudige scanner maken die een reeks poorten op een opgegeven IP-adres controleert.
Maak een nieuw Ruby-bestand aan, bijvoorbeeld poortscanner.rb
, en begin met de volgende basisstructuur:
# poortscanner.rb require 'socket' def scan_port(ip, port) socket = Socket.new(:INET, :STREAM) remote_address = Socket.sockaddr_in(port, ip) begin socket.connect(remote_address) puts "Poort #{port} is open" rescue Errno::ECONNREFUSED puts "Poort #{port} is gesloten" rescue Errno::ETIMEDOUT puts "Poort #{port} is gefilterd" ensure socket.close end end def scan_ports(ip, start_port, end_port) (start_port..end_port).each do |port| scan_port(ip, port) end end if ARGV.length != 3 puts "Gebruik: ruby poortscanner.rb" exit end ip = ARGV[0] start_port = ARGV[1].to_i end_port = ARGV[2].to_i scan_ports(ip, start_port, end_port)
Hier is een korte uitleg van wat elke functie doet:
start_port
tot end_port
en roept de functie scan_port
aan voor elke poort.scan_ports
aan met de opgegeven parameters.Om de poortscanner uit te voeren, open je een terminal en navigeer je naar de map waar je poortscanner.rb
hebt opgeslagen. Voer het volgende commando uit:
ruby poortscanner.rb
Vervang <IP>
door het IP-adres dat je wilt scannen, en <start_poort>
en <eind_poort>
door de poorten die je wilt controleren. Bijvoorbeeld:
ruby poortscanner.rb 192.168.1.1 1 100
Nu je een basis poortscanner hebt, zijn hier enkele ideeën voor verbeteringen en uitbreidingen:
In dit artikel hebben we een eenvoudige poortscanner gebouwd in Ruby. We hebben de basisprincipes van netwerken besproken, de structuur van de code uitgelegd en enkele ideeën voor verbeteringen gegeven. Het bouwen van een poortscanner is een geweldige manier om je programmeervaardigheden te verbeteren en meer te leren over netwerken. Vergeet niet om altijd ethisch te handelen en alleen netwerken te scannen waarvoor je toestemming hebt.
Veel succes met je programmeerprojecten en blijf leren!
© 2024 RailsInsights. All rights reserved.