Blog gratis
Reportar
Editar
¡Crea tu blog!
Compartir
¡Sorpréndeme!
Blog de la Escuela de Educación Secundaria Técnica N 8 de Quilmes
Administrador Prof. Claudio Enrique Alonso Alvite
img
08 de Julio, 2015    General

Escaneos en profundidad con ZMap


Probablemente muchos de los lectores de este blog conocen bastante bien el funcionamiento de Nmap y los principales tipos de escaneos que se pueden llevar a cabo con esta potente herramienta. Se trata de una utilidad muy especial en el arsenal de cualquier hacker o pentester, aunque sin duda lo es más, entender cuándo y en qué momento se debe lanzar un escaneo de un tipo determinado contra un objetivo, es decir, contar con el conocimiento sobre el modelo OSI y cómo se comunican los ordenadores entre si. Si bien Nmap permite cosas que otras herramientas similares no soportan, como por ejemplo sus capacidades de scripting por medio del motor NSE, es interesante conocer otras soluciones y proyectos que van por la misma línea de Nmap. Una de estas herramientas es “Zmap” un escáner de puertos muy interesante, especialmente desde el punto de vista de un investigador de seguridad. Lo que diferencia a este escáner de otros tan conocidos como Hping, Nmap, Queso, entre otros, es que cuenta con varias opciones para lanzar escaneos contra el espacio de direcciones IPv4 completo. Esto se traduce a que con “Zmap” es posible analizar de forma sistemática, todas las direcciones IPv4 que se encuentran disponibles en Internet. Dicho esto, hay que tener en cuenta ciertas limitaciones, especialmente relacionadas con la capacidad de computo del ordenador con el que se lanza la herramienta y la velocidad de la conexión a Internet. Evidentemente en la mayoría de los casos es mucho más interesante realizar escaneos específicos contra un segmento de red en Internet o en una Intranet en lugar de hacerlo contra el rango completo de direcciones IP, para ello Zmap también permite especificar subnets en formato CIDR y controlar la velocidad con la que se envían los paquetes de datos al objetivo del escaneo. Por defecto, la herramienta se encarga de realizar un escaneo del tipo TCP SYN sin realizar el TCP handshake completo contra el objetivo. Además, intenta hacerlo con la tasa de transferencia más rápida posible. Este comportamiento por defecto también se puede personalizar por medio de una serie de interruptores que se encuentran disponibles en la herramienta para cambiar el número de direcciones IP que se deben analizar, el tipo de escaneo, la velocidad de transferencia, listado de puertos, entre otras.

Instalación y uso de Zmap

Se puede instalar directamente sobre un sistema basado en Debian utilizando la herramienta “apt-get” o en sistemas basados en RedHat con la herramienta “yum”, sin embargo, en este tipo de herramientas suele ser más interesante descargar la última versión de su repositorio de fuentes y posteriormente compilar e instalar manualmente. El repositorio del proyecto se encuentra en la siguiente ruta y para instalarlo basta con ejecutar los siguientes comandos.

>git clone https://github.com/zmap/zmap.git

>sudo apt-get install build-essential cmake libgmp3-dev libpcap-dev gengetopt byacc flex libjson-c-dev

>cd zmap
>cmake -DENABLE_DEVELOPMENT=OFF
>make && make install

 

Una vez instalado, se puede comenzar a ejecutar el comando “zmap” y qué mejor forma que hacerlo utilizando el interruptor “–help” para ver las opciones de configuración que se encuentran disponibles en la herramienta.

>zmap –help

Los argumentos básicos para utilizar zmap son “-p”, “-o”, “-b”, “-w” y “-f”. A continuación se explica su uso mediante ejemplos.

>sudo zmap -p 80

>sudo zmap -p 80 192.168.0.0/16

>sudo zmap -p 80 192.168.0.0/16 -B 10M
>sudo zmap -B 10M -p 80 -n 10000 -o results.csv

Loa anteriores son ejemplos básicos sobre el uso de la herramienta, en donde el interruptor “-p” permite especificar el listado de puertos que serán escaneados en el objetivo, “-B” permite establecer un límite máximo en la velocidad de transferencia, “-n” permite establecer un límite máximo en el número total de máquinas que se deben analizar y “-o” permite establecer un fichero en el que se escribirán los resultados arrojados por la herramienta. Finalmente, la herramienta recibe por argumento un listado de subnets que serán analizadas, aunque también es posible omitir dicho argumento y en tal caso, el escaneo se realizará contra el rango completo de direcciones IPv4, algo que como he comentado anteriormente, no es el mejor de los escenarios, no solamente por cuestiones de rendimiento y uso de los recursos del ordenador, sino porque es posible que algún objetivo “se queje” y denuncie de un posible ataque contra sus infraestructuras por realizar un escaneo de puertos sin autorización.

Si se utiliza el interruptor “-o”, por defecto solamente incluye las direcciones IP únicas que han contestado correctamente a un paquete del tipo SYN/ACK, sin embargo se pueden utilizar reglas sobre los campos que se deben incluir en el reporte final utilizando “-f”. Para conocer todos los filtros que se pueden aplicar con este interruptor, se puede ejecutar zmap con “–list-output-fields”

>zmap –list-output-fields

saddr string: source IP address of response

saddr-raw int: network order integer form of source IP address

daddr string: destination IP address of response

daddr-raw int: network order integer form of destination IP address

ipid int: IP identification number of response

ttl int: time-to-live of response packet

sport int: TCP source port

dport int: TCP destination port

seqnum int: TCP sequence number

acknum int: TCP acknowledgement number

window int: TCP window

classification string: packet classification

success int: is response considered success

repeat int: Is response a repeat response from host

cooldown int: Was response received during the cooldown period

timestamp-str string: timestamp of when response arrived in ISO8601 format.

timestamp-ts int: timestamp of when response arrived in seconds since Epoch

timestamp-us int: microsecond part of timestamp (e.g. microseconds since ‘timestamp-ts’)

Para conocer en detalle las combinaciones que se pueden aplicar con estos campos, se recomienda leer la sección correspondiente en la documentación oficial: https://zmap.io/documentation.html#outputfilter

Por otro lado, además del uso básico de Zmap con los interruptores anteriormente explicados, también existen algunos ficheros de configuración que permiten controlar el comportamiento de la herramienta y jugar con diferentes escenarios. Uno de los más importantes es el “blacklist.conf”, el cual permite especificar un listado de direcciones IP en formato CIDR que serán ignoradas del proceso de escaneo. Se recomienda incluir en dicho fichero, direcciones que no son objeto de análisis, tales como direcciones de broadcast/multicast y otras direcciones reservadas. Para especificar un fichero de “blacklist” personalizado se utiliza el interruptor “-b”.

Para establecer ciertas configuraciones personalizadas se puede crear un fichero de configuración que será utilizado por Zmap para establecer algunos valores por defecto cuando se arranca la herramienta, algunos de esos valores incluyen cosas como la interfaz de red por defecto que se utilizará, direcciones IP y MAC de origen de las peticiones, tiempo de espera antes de pasar a la siguiente dirección IP a analizar, entre otras cosas interesantes. Existe un fichero de configuración por defecto que se encuentra ubicado en “/etc/zmap/zmap.conf” o en “<ZMAP_INSTALL>/conf/zmap.conf” dependiendo de si se ha instalado desde el código fuente o utilizando apt-get/yum. Para especificar un fichero de configuración personalizado se utiliza el interruptor “-C”. Un ejemplo del contenido que puede tener un fichero de configuración de Zmap puede ser el siguiente

target-port 443

rate 10000

bandwidth 1M # 1mbps

blacklist-file “/etc/zmap/blacklist.conf”

summary

Como se puede apreciar, son opciones que se encuentran disponibles en la herramienta en la forma de interruptores, pero en este caso, se puede indicar un valor por defecto en el fichero de configuración y omitir el uso del interruptor en cuestión, algo que facilitará mucho las cosas.

>sudo zmap -C /etc/zmap/zmap.conf 62.81.210.0/16

Configuración avanzada en Zmap

En primer lugar, existen una serie de interruptores que permiten controlar los escaneos que se realizan contra las direcciones IP analizadas. Dichas opciones permiten establecer cosas tales como:
-B: La tasa de bits por segundo enviados por la herramienta (utilizando los sufijos K, M y G para especificar diferentes medidas).

-e: Establecer una semilla para la permutación de direcciones IP en el escaneo, algo realmente útil si se desea ejecutar Zmap desde consolas separadas y definiendo diferentes rangos ordenados.
–shards: Particionar el escaneo para ejecutar en diferentes instancias de Zmap, actuando de forma similar al uso de las semillas explicado antes.

r: Permite establecer la tasa de envío de paquetes por segundo.

-T: Número de hilos concurrentes que utilizará la herramienta para el envío de paquetes. Por defecto, solamente utiliza un único hilo.

Además de estas opciones, también existen otros interruptores que se centran más en la estructura de los paquetes y otros parámetros de red que serán empleados para que Zmap construya los paquetes de datos que se enviarán al objetivo de una forma determinada. Algunos de dichos interruptores se listan a continuación:

-s: Puerto de origen de los paquetes enviados al destino.

-S: Dirección IP de origen de los paquetes enviados al destino.

-i: Nombre de la interfaz de red utilizada para el proceso de escaneo.

Con todas estas opciones, se pueden hacer algunas pruebas del funcionamiento de la herramienta y analizar su comportamiento.

1. Se especifica que Zmap debe intentar enviar 1 Gigabyte de datos cada segundo en el proceso de escaneo

>sudo zmap -B 1G 62.168.1.0/16 -p 443

2. Se especifica que Zmap debe intentar enviar 1 Gigabyte de datos cada segundo en el proceso de escaneo con una taza máxima de 20 paquetes por segundo.

>sudo zmap -B 1G 62.168.1.0/16 -r 20 -p 443

3. Se especifica que Zmap paquetes de datos con una taza máxima de 20 paquetes por segundo.

>sudo zmap -r 20 62.168.1.0/16 -p 443

4. Define el valor 555 como puerto de origen de los paquetes enviados al destino y “192.168.20.112” como dirección IP de origen.

>sudo zmap -s 555 -S 192.168.20.112 62.168.1.0/16 -p 443

5. Ejecuta el escaneo anterior utilizando un nombre de interfaz de red distinto (“eth4”) y 20 hilos concurrentes.

>sudo zmap -s 555 -S 192.168.20.112 62.168.1.0/16 -i eth4 -T 20 -p 443

Una de las características más interesantes que tiene Zmap, es la posibilidad de crear y utilizar módulos preexistentes, los cuales permiten la generación de paquetes de pruebas para enviar y procesar respuestas desde los hosts escaneados. Es un concepto bastante similar al motor NSE que existen en Nmap, sin embargo a la fecha de redactar este artículo, existen solamente 3 módulos para realizar pruebas y evidentemente, no son tan robustos como los que se encuentran incluidos en Nmap para la detección de vulnerabilidades o recolección de información, pero desde luego va por muy buen camino. Para listar los módulos disponibles se utiliza el interruptor “–list-probe-modules”

>sudo zmap –list-probe-modules

tcp_synscan

icmp_echoscan

udp

icmp_echoscan:
Este módulo permite ejecutar peticiones ICMP request contra cada uno de los objetivos del escaneo e incluir entre los resultados, el paquete ICMP reply que ha devuelto cada uno de los objetivos.

>sudo zmap 62.168.1.0/16 -T 20 -M icmp_echoscan -p 443

udp:

Con este módulo, la herramienta se encargará de enviar un datagrama UDP a cada uno de los destinos del escaneo. Las respuestas en este caso por parte de los destinatarios pueden ser, o bien un paquete UDP en el caso de que el host se encuentre activo en el puerto especificado y que funcione sobre UDP o un paquete ICMP del tipo “Unreachable host”. También es posible utilizar el interruptor “–probe-args” para especificar opciones adicionales a los módulos y en el caso concreto del módulo “udp” se pueden utilizar 4 tipos diferentes de payloads que serán enviados junto con los datagramas UDP. Dichos argumentos son: “text”, “hex”, “file” y “template”. Por ejemplo:

>sudo zmap -M udp -p 1434 –probe-args=text:HELO -N 100 -f saddr,data

Zmap es una herramienta muy flexible que merece la pena utilizar con más frecuencia y que desde luego, tiene méritos de sobra para hacer parte de la “caja de herramientas” de un hacker.

Un saludo y Happy Hack!

Autor
Adastra.

Palabras claves , , , , ,
publicado por alonsoclaudio a las 08:47 · Sin comentarios  ·  Recomendar
 
Más sobre este tema ·  Participar
Comentarios (0) ·  Enviar comentario
Enviar comentario

Nombre:

E-Mail (no será publicado):

Sitio Web (opcional):

Recordar mis datos.
Escriba el código que visualiza en la imagen Escriba el código [Regenerar]:
Formato de texto permitido: <b>Negrita</b>, <i>Cursiva</i>, <u>Subrayado</u>,
<li>· Lista</li>
CALENDARIO
Ver mes anterior Noviembre 2017 Ver mes siguiente
DOLUMAMIJUVISA
1234
567891011
12131415161718
19202122232425
2627282930
BUSCADOR
Blog   Web
TÓPICOS
» General (2606)
NUBE DE TAGS  [?]
SECCIONES
» Inicio
ENLACES
MÁS LEÍDOS
» Cómo espiar WhatsApp
» Cómo usar Metashield protector for Client y por qué utilizarlo
» Ejecución remota de código arbitrario en OpenSSH
» Ganar dinero con 1.200 Millones de identidades robadas
» Hardware y sus 4 Funcionamientos Basicos y Principales en una Computadora
» #Phishing masivo a #BancoFrances, #PagoMisCuentas y #Movistar (110 afectados en 4 horas)
» Redes de la Deep Web: CJDNS y la Red Hyperboria
» Unidad Central de Procesamiento CPU
» Vulnerabilidad en Youtube permitió borrar cualquier video
» Wassap, la aplicación que permite usar WhatsApp desde la PC
SE COMENTA...
» Cómo espiar WhatsApp
29 Comentarios: prudent hackers, global hackers, SOLUTION HACKERS, [...] ...
» Curso en línea "Fundamentos de Administración de Sistemas Linux"
1 Comentario: ruchiroshni
» SoftPerfect WiFi Guard permite saber quién esta conectado a mi WiFi
1 Comentario: carlos lopez
» Analizando el LiveBox 2.1 de Orange
2 Comentarios: Nadie, brahim
» Antenas WiFi de gran potencia. Enlaces a 1.000 Km.
2 Comentarios: julio enoy, julio enoy
SOBRE MÍ
FOTO

Prof. Claudio Enrique Alonso Alvite



» Ver perfil

AL MARGEN
Escuela de Educacion Secundaria Tecnica N 8 de Quilmes
(Técnicos en Informática Personal y Profesional)
FULLServices Network | Blogger | Privacidad