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.