domingo, 6 de marzo de 2016

TFG I. Nmap-scan. Instalación

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


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í.


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.

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
Letras imagen título
http://es.cooltext.com/

2 comentarios: