send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Ruby TCP/IP port scanner

  • 0 Respuestas
  • 1250 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5267
  • Actividad:
    48.33%
  • Reputación 26
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Febrero 24, 2010, 04:07:00 pm »
Code:
Código: Ruby
  1. #!/usr/bin/ruby
  2. #file: portscan.rb
  3.  
  4. require 'open-uri'
  5. require 'socket'
  6. require 'rexml/document'
  7. include REXML
  8.  
  9. class PortScanner
  10.  
  11.   def initialize(host, xmlfileout='portscan_result.xml')
  12.     high = 8192
  13.     service_url = "http://rorbuilder.info/r/service_ports.xml"
  14.     doc_result = main(service_url, host, high)
  15.  
  16.     File.new(xmlfileout,'w').puts(doc_result)
  17.    
  18.   end
  19.  
  20.   def main(url, host, high)
  21.  
  22.     buffer = open(url, "UserAgent" => "Ruby-PortScanner1.0")
  23.     doc = Document.new(buffer)
  24.  
  25.     doc.root.elements.each('records/port') do |node|
  26.       new_node = Element.new('open')
  27.       new_node.text = 'n'
  28.       node.add_element new_node
  29.     end
  30.  
  31.     for port in 1 .. high
  32.       begin
  33.               s = TCPsocket.open(host, port)
  34.         puts 'port ' + port.to_s
  35.         node_port = doc.root.elements["records/port[number='#{port.to_s}']"]
  36.        
  37.         unless node_port.nil?
  38.           port_name = node_port.elements['name'].text.to_s
  39.           node_port.elements['open'].text = 'y'
  40.         else
  41.           port_name = 'unknown'
  42.           add_port(:doc => doc , :port => port , :name => port_name, :description => '')
  43.         end
  44.  
  45.               printf "%s/%sopen\t%s\n", port, 'tcp'.ljust(11 - port.to_s.length), port_name
  46.  
  47.               s.close
  48.       rescue Errno::ECONNREFUSED
  49.               next
  50.       end
  51.     end
  52.     return doc
  53.   end
  54.  
  55.   def add_port(h)
  56.     node_port = Element.new('port')
  57.  
  58.     add_child(node_port, 'number', h[:port])
  59.     add_child(node_port, 'name', h[:name])
  60.     add_child(node_port, 'description', h[:description])
  61.     h[:doc].root.elements['records'].add_element node_port
  62.   end
  63.  
  64.   def add_child(node,nodename, value)
  65.     newnode = Element.new(nodename)
  66.     newnode.text = value
  67.     node.add_element(newnode)
  68.   end
  69.  
  70. end
  71.  
  72. if __FILE__ == $0 then
  73.   ps = PortScanner.new('192.168.1.106')  
  74. end
  75.  

Screen Output:
Código: You are not allowed to view links. Register or Login
22/tcp      open        ssh
80/tcp      open        www
443/tcp     open        https
513/tcp     open        login
514/tcp     open        shell
4369/tcp    open        unknown
5222/tcp    open        xmpp-client
5269/tcp    open        xmpp-server
5280/tcp    open        unknown
8000/tcp    open        unknown
8001/tcp    open        unknown

xml output:
Código: You are not allowed to view links. Register or Login
<ports>
  <summary/>
  <records>
    <port>
      <number>1</number>
      <name>tcpmux</name>
      <description>TCP port service multiplexer</description>
    <open>n</open></port>
    <port>
      <number>7</number>
      <name>echo</name>
      <description/>
    <open>n</open></port>
    <port>
      <number>7</number>
      <name>echo</name>
      <description/>
    <open>n</open></port>
...
    <port>
      <number>5222</number>
      <name>xmpp-client</name>
      <description>Jabber Client Connection</description>
    <open>y</open></port>
    <port>
      <number>5222</number>
      <name>xmpp-client</name>
      <description/>
    <open>n</open></port>
    <port>
      <number>5269</number>
      <name>xmpp-server</name>
      <description>Jabber Server Connection</description>
    <open>y</open></port>
    <port>
      <number>5269</number>
      <name>xmpp-server</name>
      <description/>
    <open>n</open></port>
...
    <port>
      <number>60179</number>
      <name>fido</name>
      <description>fidonet EMSI over TCP</description>
    <open>n</open></port>
  <port><number>4369</number><name>unknown</name><description></description></po
rt><port><number>5280</number><name>unknown</name><description></description></p
ort><port><number>8000</number><name>unknown</name><description></description></
port><port><number>8001</number><name>unknown</name><description></description><
/port></records>

bytes!
Font: You are not allowed to view links. Register or Login
« Última modificación: Julio 31, 2014, 09:45:54 pm por Expermicid »


 

¿Te gustó el post? COMPARTILO!



[Ruby] Traductor de Decimal a Ascii / Ascii a Decimal

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1332
Último mensaje Febrero 24, 2010, 04:16:38 pm
por ANTRAX
Lenguaje Ruby, aprendiendo poco a poco.

Iniciado por Alejandro9999

Respuestas: 2
Vistas: 1259
Último mensaje Agosto 15, 2013, 02:58:39 pm
por Alejandro9999
Crafting rails 4 applications (Manual de Ruby on Rails 4)

Iniciado por Alejandro9999

Respuestas: 0
Vistas: 807
Último mensaje Marzo 01, 2014, 05:34:50 pm
por Alejandro9999
Desarrollo de aplicaciones Perl, PHP, Python y "Ruby on Rails"

Iniciado por Alejandro9999

Respuestas: 0
Vistas: 1032
Último mensaje Junio 13, 2014, 03:27:08 pm
por Alejandro9999
Shoesrb donde puedes hacerle una interfaz grafica a una aplicación hecha en Ruby

Iniciado por Alejandro9999

Respuestas: 3
Vistas: 1556
Último mensaje Mayo 21, 2013, 03:51:00 am
por D4rkC0d3r