comment
IRC Chat
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.

Usando nmap con python

  • 3 Respuestas
  • 1998 Vistas

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

Desconectado Theraritho5

  • *
  • Underc0der
  • Mensajes: 26
  • Actividad:
    0%
  • Reputación -1
  • Curioso :(
    • Ver Perfil
  • Skype: Theraritho5
« en: Febrero 04, 2015, 03:50:09 pm »
Hola, hace aproximadamente unos 4 meses conocí a python y me ha parecido un lenguaje fascinante (sin desmeritar los otros), leyendo un poco sobre python vi que habia un modulo llamado nmap (que no viene por defecto) y quise probarlo y buscar tutoriales sobre el y aqui les vengo a enseñar o aportar lo poco que sé sobre eso:

Instalación

Este fabuloso modulo que puede ser una herramienta perfecta para administradores de sistemas o consultores de seguridad informática a la hora de automatizar procesos de penetration testing la podemos descargar de la siguiente pagina:

You are not allowed to view links. Register or Login
.

Una vez descargado, lo descomprimimos, y nos ubicamos en el archivo root@Thera5:~/Desktop/python-nmap-0.3.4# oads\python-nmap-0.3.4



ya hecho esto, en la terminal solo ejecutamos la siguiente linea de comando:

Código: You are not allowed to view links. Register or Login
python setup.py install


ya instalado python-nmap solo importamos la libreria y trabajamos en ella:

Usage

Python:

Código: Python
  1. >>> import nmap
  2. >>> nm = nmap.PortScanner()
  3. >>> nm.scan('127.0.0.1', '22-443')
  4. >>> nm.command_line()
  5. 'nmap -oX - -p 22-443 -sV 127.0.0.1'
  6. >>> nm.scaninfo()
  7. {'tcp': {'services': '22-443', 'method': 'connect'}}
  8. >>> nm.all_hosts()
  9. ['127.0.0.1']
  10. >>> nm['127.0.0.1'].hostname()
  11. 'localhost'
  12. >>> nm['127.0.0.1'].state()
  13. 'up'
  14. >>> nm['127.0.0.1'].all_protocols()
  15. ['tcp']
  16. >>> nm['127.0.0.1']['tcp'].keys()
  17. [80, 25, 443, 22, 111]
  18. >>> nm['127.0.0.1'].has_tcp(22)
  19. True
  20. >>> nm['127.0.0.1'].has_tcp(23)
  21. False
  22. >>> nm['127.0.0.1']['tcp'][22]
  23. {'state': 'open', 'reason': 'syn-ack', 'name': 'ssh'}
  24. >>> nm['127.0.0.1'].tcp(22)
  25. {'state': 'open', 'reason': 'syn-ack', 'name': 'ssh'}
  26. >>> nm['127.0.0.1']['tcp'][22]['state']
  27. 'open'
  28.  
  29. >>> for host in nm.all_hosts():
  30. >>>     print('----------------------------------------------------')
  31. >>>     print('Host : %s (%s)' % (host, nm[host].hostname()))
  32. >>>     print('State : %s' % nm[host].state())
  33. >>>     for proto in nm[host].all_protocols():
  34. >>>         print('----------')
  35. >>>         print('Protocol : %s' % proto)
  36. >>>
  37. >>>         lport = nm[host][proto].keys()
  38. >>>         lport.sort()
  39. >>>         for port in lport:
  40. >>>             print ('port : %s\tstate : %s' % (port, nm[host][proto][port]['state']))
  41. ----------------------------------------------------
  42. Host : 127.0.0.1 (localhost)
  43. State : up
  44. ----------
  45. Protocol : tcp
  46. port : 22       state : open
  47. port : 25       state : open
  48. port : 80       state : open
  49. port : 111      state : open
  50. port : 443      state : open
  51.  
  52.  
  53. >>> print(nm.csv())
  54. host;protocol;port;name;state;product;extrainfo;reason;version;conf
  55. 127.0.0.1;tcp;22;ssh;open;OpenSSH;protocol 2.0;syn-ack;5.9p1 Debian 5ubuntu1;10
  56. 127.0.0.1;tcp;25;smtp;open;Exim smtpd;;syn-ack;4.76;10
  57. 127.0.0.1;tcp;53;domain;open;dnsmasq;;syn-ack;2.59;10
  58. 127.0.0.1;tcp;80;http;open;Apache httpd;(Ubuntu);syn-ack;2.2.22;10
  59. 127.0.0.1;tcp;111;rpcbind;open;;;syn-ack;;10
  60. 127.0.0.1;tcp;139;netbios-ssn;open;Samba smbd;workgroup: WORKGROUP;syn-ack;3.X;10
  61. 127.0.0.1;tcp;443;;open;;;syn-ack;;
  62.  
  63.  
  64. >>> nm.scan(hosts='192.168.1.0/24', arguments='-n -sP -PE -PA21,23,80,3389')
  65. >>> hosts_list = [(x, nm[x]['status']['state']) for x in nm.all_hosts()]
  66. >>> for host, status in hosts_list:
  67. >>>     print('{0}:{1}'.host)
  68. 192.168.1.0:down
  69. 192.168.1.1:up
  70. 192.168.1.10:down
  71. 192.168.1.100:down
  72. 192.168.1.101:down
  73. 192.168.1.102:down
  74. 192.168.1.103:down
  75. 192.168.1.104:down
  76. 192.168.1.105:down
  77. [...]
  78.  
  79.  
  80.  
  81. >>> nma = nmap.PortScannerAsync()
  82. >>> def callback_result(host, scan_result):
  83. >>>     print '------------------'
  84. >>>     print host, scan_result
  85. >>>
  86. >>> nma.scan(hosts='192.168.1.0/30', arguments='-sP', callback=callback_result)
  87. >>> while nma.still_scanning():
  88. >>>     print("Waiting >>>")
  89. >>>     nma.wait(2)   # you can do whatever you want but I choose to wait after the end of the scan
  90. >>>
  91. 192.168.1.1 {'nmap': {'scanstats': {'uphosts': '1', 'timestr': 'Mon Jun  7 11:31:11 2010', 'downhosts': '0', 'totalhosts': '1', 'elapsed': '0.43'}, 'scaninfo': {}, 'command_line': 'nmap -oX - -sP 192.168.1.1'}, 'scan': {'192.168.1.1': {'status': {'state': 'up', 'reason': 'arp-response'}, 'hostname': 'neufbox'}}}
  92. ------------------
  93. 192.168.1.2 {'nmap': {'scanstats': {'uphosts': '0', 'timestr': 'Mon Jun  7 11:31:11 2010', 'downhosts': '1', 'totalhosts': '1', 'elapsed': '0.29'}, 'scaninfo': {}, 'command_line': 'nmap -oX - -sP 192.168.1.2'}, 'scan': {'192.168.1.2': {'status': {'state': 'down', 'reason': 'no-response'}, 'hostname': ''}}}
  94. ------------------
  95. 192.168.1.3 {'nmap': {'scanstats': {'uphosts': '0', 'timestr': 'Mon Jun  7 11:31:11 2010', 'downhosts': '1', 'totalhosts': '1', 'elapsed': '0.29'}, 'scaninfo': {}, 'command_line': 'nmap -oX - -sP 192.168.1.3'}, 'scan': {'192.168.1.3': {'status': {'state': 'down', 'reason': 'no-response'}, 'hostname': ''}}}

Para mas información visita:

You are not allowed to view links. Register or Login

Posted by Theraritho5




« Última modificación: Febrero 05, 2015, 06:57:38 pm por blackdrake »

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5331
  • Actividad:
    45%
  • Reputación 30
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #1 en: Febrero 04, 2015, 04:00:27 pm »
Genial bro!! muy bueno y muy util!
Te dejo +1!

Saludos!
ANTRAX


Desconectado hdbreaker

  • *
  • Underc0der
  • Mensajes: 412
  • Actividad:
    0%
  • Reputación 0
  • HD_Breaker
    • Ver Perfil
    • Security Signal
    • Email
  • Skype: hdbreaker96
  • Twitter: @SecSignal
« Respuesta #2 en: Febrero 04, 2015, 04:28:47 pm »
Yo he trasteado y la verdad muy bueno, lo mejor es q te permite ejecutar nse scripts y obtener su salida!

Ser Libres es un Privilegio por el cual pocos estamos dispuestos a correr el riesgo

Desconectado JNIOR

  • *
  • Underc0der
  • Mensajes: 15
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #3 en: Febrero 05, 2015, 12:08:46 pm »
INtersante, gracias voy a practicarlo

 

¿Te gustó el post? COMPARTILO!



[Código] Yardas a metros - Metros a yardas [Python]

Iniciado por LucaSthefano

Respuestas: 0
Vistas: 1244
Último mensaje Mayo 29, 2011, 01:27:34 am
por LucaSthefano
Python keylogger - by "bLiNdFiR3"

Iniciado por d33k40

Respuestas: 0
Vistas: 1860
Último mensaje Abril 07, 2010, 03:30:22 am
por d33k40
[Código] Entero / No Entero [Ejercicio - Python]

Iniciado por LucaSthefano

Respuestas: 0
Vistas: 1208
Último mensaje Mayo 29, 2011, 01:24:09 am
por LucaSthefano
Python phpmyadmin "BruteForce"

Iniciado por linkgl

Respuestas: 2
Vistas: 2319
Último mensaje Agosto 19, 2011, 12:14:37 pm
por linkgl
Python Trojan - By "bLiNdFiR3"

Iniciado por d33k40

Respuestas: 1
Vistas: 1881
Último mensaje Abril 03, 2010, 11:01:59 pm
por Dharok