Esta entrada es la primera de una serie en la que explicaré la herramienta que estoy desarrollando como Trabajo Fin de Grado (TFG) y que pude presentar en las pasadas jornadas MorterueloCON 2016.
![]() |
Imagen I. TFG I. Nmap-scan. Instalación |
Al ser la primera entrada; se explicará en qué consiste y lo necesario para poder comenzar a utilizarla.
1. Introducción
Primero indicar que la idea original es del grupo Securipy; se me ha dado la oportunidad de desarrollarla como TFG.
¿En qué consiste? Es un analizador de la red a la que estemos conectados. Permite conocer los dispositivos (ordenadores, teléfonos móviles, impresoras...) de la red, así como sus características. De modo que llegaremos a estudiar sus vulnerabilidades.
Pero no solamente es un analizador, sino que guarda la información, la organiza, actualiza, y permite trabajar con ella. Así como descargar recursos, exploits por ejemplo, que permitan hacer uso de la información recopilada.
Es decir, es una herramienta enfocada a la realización de auditorias, por lo que también clasifica la información según el cliente al que se realizó la auditoría y en base a la fecha.
1.1. Auditoría
Una auditoría en un servicio que una empresa, por ejemplo, contrata para que se haga un estudio de su red y detectar fallos de seguridad y mejoras.
2. Requisitos
A continuación se detalla lo necesario para comenzar a utilizarla.
2.1. Sistema operativo
La herramienta corre en un ordenador; en sistemas operativos como Ubuntu u OS X.
2.2. Software
2.2.1. Python
El lenguaje de programación utilizado ha sido Python.
Puede descargarse del siguiente enlace:
La versión que yo utilizo es la 2.7.
Una vez instalado, de no haberlo hecho automáticamente el sistema operativo, se debe realizar la configuración necesaria para poder utilizar Python desde el terminal.
2.2.2. Nmap
Analizador de redes muy extendido; será el responsable de realizar el escaneo de la red y de sus componentes.
Para instalarlo, click en este link y escoger el sistema operativo utilizado:
También, es necesario descargar e instalar sus librerías para Python. En el siguiente artículo se explica este proceso (no lleva nada de tiempo):
http://hacking-etico.com/2015/03/06/descubriendo-la-red-con-python-y-nmap-parte-1/
A modo de resumen del artículo anterior, se deben ejecutar desde el terminal estos dos comandos:
sudo apt-get install python-pip nmap
sudo pip install python-nmap
A modo de resumen del artículo anterior, se deben ejecutar desde el terminal estos dos comandos:
sudo apt-get install python-pip nmap
sudo pip install python-nmap
2.2.3. Lector SQLite
La información es almacenada en una base de datos SQLite.
Para poder visualizar la base de datos, debemos descargarnos un programa que lea archivos de extensión .db. Por ejemplo, desde el siguiente link:
2.3. Código de la aplicación
Esta herramienta es de código abierto por lo que todos podéis analizarlo y mejorarlo. Cualquier idea que me podáis proponer será muy bien recibida.
Para descargar los módulos necesarios debemos ir a GitHub; gran comunidad donde la gente comparte el código de sus aplicaciones.
2.3.1. Módulo pentesting-core
Tal como se indica en su página de GitHub, es el núcleo de los módulos desarrollados por Securipy.
La descarga se realiza desde:
Tras ello, simplemente descomprimirlo.
Aunque para este módulo no es necesario renombrar la carpeta descomprimida, veremos que para el siguiente sí.
Aunque para este módulo no es necesario renombrar la carpeta descomprimida, veremos que para el siguiente sí.
2.3.2. Módulo nmap-scan
Este módulo se encarga de realizar los escaneos y trabajar con la información obtenida.
Su descarga:
Tras descomprimirlo, renombrar la carpeta de 'nmap-scan-master' a 'nmap-scan'. Esto es muy importante.
Finalmente, esta carpeta la llevamos dentro de la carpeta 'modules' que se encuentra dentro de pentesting-core.
2.3.3. Módulo exploit-finder
Encargado de descargar exploits.
No se explicará en esta entrada, dejándose para otras posteriores.
¡Ya estamos listos para utilizarla!
3. Lanzar la herramienta
Simplemente seguir estos pasos.
1. Abrir la terminal y cambiar el directorio de trabajo actual a la ruta en la que se encuentre el archivo '__init__.py', dentro de pentesting-core.
![]() |
Imagen 2. Cambiar directorio de trabajo |
2. Lanzar el siguiente comando:
sudo python __init__.py
Pedirá la contraseña, escribirla y pulsar tecla enter.
Importante. Si tras introducir la contraseña aparece este error:
--------------------------------------------------
File "__init__.py", line 51, in <module>
readline.read_history_file(history)
IOError: [Errno 22] Invalid argument
--------------------------------------------------
--------------------------------------------------
Debe modificarse la línea 51 del archivo '__init__.py', para ello simplemente abrirlo y comentar dicha línea; en Python se comenta añadiendo almohadilla # antes de lo que se desee comentar. Por tanto, en lugar de 'readline.read_history_file(history)', la línea 51 debe quedar como '#readline.read_history_file(history)'.
Un programa muy bueno para modificar código es 'Sublime Text'. Puede descargarse desde su página; indicada al final de esta entrada.
3. Tras introducir la contraseña, tenemos acceso a los módulos que hayamos incluido en la carpeta 'modules' de pentesting-core.
En este caso la única opción es nmap-scan ya que el módulo exploit-finder no se ha incluido al no ser objeto de esta entrada.
La seleccionamos escribiendo 1 y pulsando la tecla enter.
Hemos accedido al menú del módulo map-scan. El nombre de cada opción describe perfectamente qué lleva acabo.
4. Para salir, escribir 'exit'. Como siempre, una manera "brusca" de terminar con lo que se esté realizando o salir de una opción es control + c.
![]() |
Imagen 3. Menú para seleccionar módulo |
En este caso la única opción es nmap-scan ya que el módulo exploit-finder no se ha incluido al no ser objeto de esta entrada.
La seleccionamos escribiendo 1 y pulsando la tecla enter.
![]() |
Imagen 4. Menú módulo nmap-scan |
Hemos accedido al menú del módulo map-scan. El nombre de cada opción describe perfectamente qué lleva acabo.
4. Para salir, escribir 'exit'. Como siempre, una manera "brusca" de terminar con lo que se esté realizando o salir de una opción es control + c.
Espero que os animéis a probarla. En las siguientes entradas se hará un recorrido por sus distintas opciones. ¡Ya me contareis!
Saludos,
Carlos A. Molina
4. Webs
Grupo SecuryPi
Python y Nmap. Instalación y utilización
Python
Nmap
Lector SQLite
Sublime Text (editor de código)
https://www.sublimetext.com
https://www.sublimetext.com
Letras imagen título
http://es.cooltext.com/
http://es.cooltext.com/
Muy buen tutorial Carlitos! ;)
ResponderEliminar¡Gracias! :)
Eliminar