#[N0tGroup]~PortScanner #By Sh4v #N-D labs puts" ###################[N0tGroup]################### # # # [N0t Group]~ PortScanner # # C0ded by Sh4van3 # # # #####################[2008]~####################" require 'socket' print "\nPortScanner es una herramienta sencilla y potente que permite escanear los 65535 puertos de un nombre de dominio o de una direccion IP. \n" print "\nElija una de las siguientes opciones y siga los pasos ;-): \n" puts " 1.- Escanear con PortScanner un puerto determinado. 2.- Escanear con PortScanner un intervalo de puertos. 3.- Escanear con PortScanner un intervalo de IP's en 3 puertos determinados." resp=gets.chomp case resp when "1" puts "Escriba la direccion IP o nombre de dominio que desea escanear:" dir=gets.chomp puts "Elija el puerto que desea escanear:" port=gets.chomp.to_i puts "Escaneando el puerto #{port} en #{dir}..." puts "Resultados del escaner:" begin conn=TCPSocket.new(dir, port) rescue Errno::ECONNREFUSED puts "El puerto #{port} en #{dir} se encuentra cerrado." rescue Errno::ETIMEDOUT IO.select(5) puts "El puerto #{port} en #{dir} se encuentra filtrado." else puts "El puerto #{port} en #{dir} se encuentra abierto." end when "2" puts "Escriba la direccion IP que desea escanear:" dir=gets.chomp puts"Escriba el puerto inicial:" pi=gets.chomp.to_i puts"Escriba el puerto final:" pf=gets.chomp.to_i+1 puts "Escaneando puertos en #{dir}..." puts "Puertos abiertos:" until pi==pf begin con1=TCPSocket.new(dir, pi) rescue Errno::ECONNREFUSED rescue else puts "El puerto #{pi} en #{dir} se encuentra abierto." end pi+=1 end when "3" puts "Ahora se le pediran dos direcciones IP, una inicial y una final." puts "Por favor, para que el scanner funcione es necesario que guarden este formato \"xxx.xxx.xxx.xxx\"." puts "Por ejemplo: 192.168.0.1-->192.168.000.001. 15.43.123.21-->015.043.123.021" puts "Escriba la direccion IP inicial:" ipi=gets.chomp puts "Escriba la direccion IP final:" ipf=gets.chomp puts "Escriba el puerto primero:" p1=gets.chomp.to_i puts "Escriba el puerto segundo:" p2=gets.chomp.to_i puts "Escriba el puerto tercero:" p3=gets.chomp.to_i puts "Escanenado puertos #{p1}, #{p2} y #{p3} de #{ipi} a #{ipf}..." puts "Puertos abiertos:" ipf=ipf.succ until ipi==ipf xcar=ipi[1,1] ipz=ipi.gsub("0#{xcar}", " ") ipz[0]=xcar ipz=ipz.gsub(".00", " ") ipz=ipz.gsub(".0", " ") ipz=ipz.gsub(".", " ") ipz=ipz.split(" ") ipz=ipz.join(".") begin TCPSocket.new(ipz, p1) rescue Ernno::ECONNREFUSED puts "El puerto #{p1} en #{ipz} se encuentra cerrado." rescue puts "No se ha podido conectar con el puerto #{p1} en #{ipz}." else puts "El puerto #{p1} en #{ipz} se encuentra abierto." end ipi.succ end until ipi==ipf xcar=ipi[1,1] ipx=ipi.gsub("0#{xcar}", " ") ipx[0]=xcar ipx=ipx.gsub(".00", " ") ipx=ipx.gsub(".0", " ") ipx=ipx.gsub(".", " ") ipx=ipx.split(" ") ipx=ipx.join(".") begin TCPSocket.new(ipx, p2) rescue Ernno::ECONNREFUSED puts "El puerto #{p2} en #{ipx} se encuentra cerrado." rescue puts "No se ha podido conectar con el puerto #{p2} en #{ipx}." else puts "El puerto #{p2} en #{ipx} se encuentra abierto." end ipi.succ end until ipi==ipf xcar=ipi[1,1] ipy=ipi.gsub("0#{xcar}", " ") ipy[0]=xcar ipy=ipy.gsub(".00", " ") ipy=ipy.gsub(".0", " ") ipy=ipy.gsub(".", " ") ipy=ipy.split(" ") ipy=ipy.join(".") begin TCPSocket.new(ipy, p3) rescue Ernno::ECONNREFUSED puts "El puerto #{p3} en #{ipy} se encuentra cerrado." rescue puts "No se ha podido conectar con el puerto #{p3} en #{ipy}." else puts "El puerto #{p3} en #{ipy} se encuentra abierto." end ipi.succ end end puts "-->Escaner finalizado a fecha #{Time.now}<--" puts "Pulse un tecla para salir." salir=gets.chomp