Realizar un Escaneo Automático utilizando Inguma

Body

Inguma es un conjunto de herramientas para realizar pruebas de penetración escrito en python. Este framework incluye módulos para descubrir hosts, obtener información desde ellos, hacer fuzzing contra los objetivos, realizar fuerza bruta contra usuarios y contraseñas, y también utilizar “exploits”.

Mientras las capacidades de explotación actual de Inguma son limitadas, este programa proporciona numerosas herramientas para la captura de información y auditoría del objetivo.

A continuación se utiliza la versión de Inguma incluida en la versión más reciente de Kali Linux 2.0.

Ejecutar Inguma.

# inguma

Para obtener la ayuda de Inguma utilizar el comando “help”.

inguma> help

A continuación se utiliza la opción “autoscan” de Inguma, la cual realiza un escaneo automático. La herramienta solicita definir el host o red objetivo. Si es requerido realizar fuerza bruta contra usuarios y contraseñas. Si se realizará fuzzing contra los objetivos. Y cual es el archivo donde se almacenarán los resultados.

inguma> autoscan

El proceso inicia con un escaneo de puertos, además de tratar identificar los servicios en cada uno de los puertos encontrados en estado abierto.

La herramienta trata de obtener un listado de posibles sistemas operativos. Información NetBIOS.

Se trata de establecer un sesión nula. Conexiones anónimas.

Se encuentran dominios. Se buscan usuarios en los dominios.

Se trata de hacer fuzzing inteligente contra servicios, como el FTP.

Se intenta adivinar usuarios y contraseñas válidas.

Se utiliza Nikto para tratar de capturar URLs vulnerables en el obejtivo.

Finalizado el proceso los resultados también se almacenan en el archivo definido inicialmente en texto plano.

Inguma incluye el módulo de Descubrimiento, utilizado para descubrir hosts y redes. Módulo Captura, utilizado para capturar datos sobre el host y red objetivo. Módulo Bruto, el cual realiza fuerza bruta para varios servicios. Módulo Fuzz, para realizar fuzzing contra diversos protocolos. Módulo Explotar, el cual explota varios productos, principalmente de momento software Oracle.

Aunque Inguma no se actualiza desde hace casi cuatro años, considero es una herramienta cuyas funcionalidades deben ser evaluadas.

Fuentes:

https://inguma.eu/projects/inguma
http://tools.kali.org/vulnerability-analysis/inguma

Encontrar Vulnerabilidades de Buffer Overflow y Format String utilizando Doona

Body

Doona es una bifurcación de la herramienta BED (Bruteforce Exploit Detector), el cual es un programa diseñado para verificar demonios por potenciales fallas de Desbordamiento de Buffer (Buffer Overflow) o Formato de Cadena (Format String).

Se ha añadido un significativo número de cambios y modificaciones a BED, razón por la cual se ha cambiado el nombre,para evitar confusión.

Un "Buffer Overflow" es una anomalía donde un programa, mientras escribe datos hacia un buffer, escapa de los limites del buffer y sobrescribe ubicaciones de memoria adyacentes. Este es un caso especial de violación de memoria segura.

Un "Uncontrolled Format String" es un tipo de vulnerabilidad de software el cual puede ser explotado para hacer caer un programa o ejecutar código dañino. El problema reside en la falta de verificación en las entradas del usuario como el parámetro de formato para cadena.

Para la siguiente demostración se utiliza la versión de Doona instalada en Kali Linux 2.0.

Se ejecuta Doona sin parámetros para obtener la ayuda de la herramienta. Doona permite evaluar demonios FINGER. FTP, HTTP, IMAP, IRC, LPD, PJL, POP, PROXY, RTSP, SMTP, SOCKS4, SOCKS5, TFTP y WHOIS

# doona

En caso un módulo requiera la configuración adicional de opciones, esta información puede ser obtenida utilizando el parámetro “-h”.

# doona -m FTP -h

Se ejecuta la herramienta Doona para evaluar un servicio HTTP, este módulo no requiere la definición de opciones adicionales. El parámetro “-m” define el nombre del módulo a utilizar, “-t” define la dirección IP del host a evaluar, “-p” define el puerto hacia el cual conectarse y “-o” define un tiempo en segundos a esperar después de cada prueba.

# doona -m HTTP -t 192.168.0.30 -p 80 -o 1

Doona empieza a realizar sus pruebas para encontrar vulnerabilidades de desbordamiento de buffer, y formato de cadena.

En esta evaluación no ha sido factible encontrar vulnerabilidades de este tipo en el servicio HTTP.

Se debe tener siempre en consideración la cantidad de eventos generados y registrados en el sistema evaluado. Dependiendo de los mecanismos de seguridad implementados en el sistema, estos podrían activarse, volviendo lenta o bloqueando la prueba.

Fuentes:

https://github.com/wireghoul/doona
http://tools.kali.org/vulnerability-analysis/doona
http://www.reydes.com/d/?q=Encontrar_Vulnerabilidades_de_Buffer_Overflo…

Encontrar Vulnerabilidades de Buffer Overflow y Format String utilizando Bed

Body

BED es un programa el cual está diseñado para verificar potenciales vulnerabilidades de “buffer overflow” o desbordamiento de buffer, y “format strings” o formato de cadenas, etc.

Un “Buffer Overflow” es una anomalía donde un programa, mientras escribe datos hacia un buffer, escapa de los limites del buffer y sobrescribe ubicaciones de memoria adyacentes. Este es un caso especial de violación de memoria segura.

Un “Uncontrolled Format String” es un tipo de vulnerabilidad de software el cual puede ser explotado para hacer caer un programa o ejecutar código dañino. El problema reside en la falta de verificación en las entradas del usuario como el parámetro de formato para cadena.

Para la siguiente demostración se utiliza la versión de BED instalada en Kali Linux 2.0.

Ejecutar BED sin parámetros para obtener la ayuda. Bed permite evaluar los protocolos, FTP, SMTP, POP, HTTP, IRC, IMAP, PJL, LDP, FINGER, SOCKS4 y SOKS5.

# bed

Se utilizará BED para evaluar un servicio FTP ejecutándose en el puerto TCP 21. Para esto se requiere conocer primero cuales parámetros deben ser definidos con este plugin. Esta información se obtiene utilizando la opción “-s”.

# bed -s FTP

Se ejecuta BED definiendo los parámetros pertinentes al plugin FTP.

# bed -s FTP -t 192.168. 0.X -p 21 -u julio -vXXXXX

La herramienta realiza sus pruebas de “buffer overflow” y “format string”.

Los resultados obtenidos muestran la no factibilidad de encontrar vulnerabilidades de este tipo en el objetivo de evaluación.

Fuentes:

http://tools.kali.org/vulnerability-analysis/bed
https://en.wikipedia.org/wiki/Buffer_overflow
https://en.wikipedia.org/wiki/Uncontrolled_format_string

Escaneo de Puertos utilizando masscan

Body

Masscan es el escaner de puertos más rápido de Internet; esto según la propia página del proyecto. Puede escanear Internet en seis minutos, transmitiendo 10 millones de paquetes por segundo.

Masscan produce resultados similares a “Nmap”, el escaner de puertos más famoso. Internamente opera de manera más similar a “scanrad”, “unicornscan”, y “zmap”. La principal diferencia es el hecho de ser más veloz comparado con estos otros escaners. Además de ser más flexible, permitiendo rangos de direcciones y rangos de puertos arbitrarios.

Anotación: Masscan utiliza una pila TCP/IP personalizada. Cualquier otra cosa a simples escaneos de puertos podría causar conflictos con la pila local TCP/IP. Esto significa se hace necesario utilizar la opción “-S” para utilizar una dirección IP separada, o configurar el firewall del sistema para redireccionar los puertos utilizados por masscan.

Para la siguiente demostración se ejecuta la herramienta “masscan” para identificar las direcciones IP en las cuales se encuentra el abierto el puerto TCP 80.

Masscan tiene permanentemente activada las siguientes opciones. La opcion “-sS” realiza un escaneo de tipo TCP SYN. la opción “-Pn” trata todos los hosts como si estuviesen en funcionamiento. La opción “-n” no hace una resolución al DNS. La opción “--randomize-hosts” aplica aleatoriedad al orden de los host a escanear. La opción “-v” genera verbosidad. Y la opción “--send-eth” utiliza para el envío paquetes ethernet en bruto.

# masscan -p80 0.0. 0.0/24

Masscan también proporciona la posibilidad de obtener el banner desde los puertos identificados en estado abierto.

# masscan -p80 --banners 0.0 .0.0/24

Una funcionalidad importante de “masscan” es el ritmo o velocidad de transmisión. Por defecto este valor es de 100 paquetes por segundo. Es factible incrementar este valor utilizando la opción pertinente.

# masscan -p22,25,80,443 0.0. 0.0/24 --banners --rate 100

También es factible guardar los resultados del escaneo en cinco diferentes formatos; xml, binario (formar incorporado de masscan), greapeable, json y list (listado de un host y puerto por línea).

# masscan -p22,25,80,443 0.0. 0.0/24 --banners -oL /tmp/scan1.txt

En el escenario expuesto, se utilizado la opción “list”.

# cat /tmp/scan1.txt

Se ha esforzado en hacer a masscan familiar para los usuarios de nmap, aunque sean fundamentalmente diferentes. Existen dos importantes diferencias. No existen puertos por defecto a escanear, siempre se debe especificarlos. Y los hosts objetivos deben ser siempre direcciones IP o rangos simples, no nombres de nominio.

Fuentes:

https://github.com/robertdavidgraham/masscan
http://tools.kali.org/information-gathering/masscan
https://nmap.org/

Detectar un Balanceador de Carga utilizando lbd

Body

ldb (load balancing detector) o por su traducción al español, Detector de Balanceo de Carga, detecta si un dominio definido utiliza balanceo de carga DNS y/o HTTP, mediante las cabeceras “Server:” y “Date:” y las diferencias entre las respuestas obtenidas desde los servidores.

En un balanceo de carga DNS varias direcciones IP están asociadas con un único nombre de dominio. De esta manera diferentes clientes dirigen sus peticiones a diferentes servidores, distribuyendo la carga a través del grupo.

En un balanceo de carga HTTP se intenta distribuir la carga de manera uniforme entre varias instancias (ya sea independiente o agrupado), para aumentar el rendimiento global del sistema.

La manera de utilizar la herramienta “lbd” es únicamente definiendo el nombre de dominio.

Los resultados de la primera demostración indica; según lbd; la no utilización de un balanceador de carga.

Los resultados de la segunda demostración exponen haber encontrado un balanceador de carga mediante los métodos DNS y HTTP.

En el tercer ejemplo la herramienta “lbd” expone haber encontrado un balanceador de carga mediante el método DNS.

Es factible también utilizar direcciones IP en lugar de nombres de dominio.

Fuentes:

http://tools.kali.org/information-gathering/lbd

Buscar Tipos Específicos de Archivos utilizando Goofile

Body

Goofile es una sencilla herramienta utilizada para buscar un tipo de archivo específico en un dominio definido. Goofile utiliza el motor de búsqueda Google una vez definido el dominio y el tipo de extensión para buscar los archivos indexados. Goofile ha sido escrito en Python.

Goofile no descarga por defecto los archivos, en caso estos sean encontados.

Para las siguiente demostración se buscan los archivos indexados por Google de extensión “docx”, los cuales probablemente se relacionan a archivos creados utilizando Microsoft Office.

# goofile -d [dominio] -f docx

La siguiente demostración busca por archivos indexados en Google con la extensión PDF.

# goofile -d [dominio] -f pdf

No todas las URLs tienen un formato el cual puede ser útil para descargar los archivos directamente. Aún así es factible utilizar una herramienta como “wget”, para descargar los archivos. Previamente las URLs encontradas por Goofile deben ser copiadas hacia un archivo.

# wget --input-file=filelist1.txt

Los archivos descargados pueden ser analizados por diversos propósitos, como revisar su contenidos, o análisis de metadatos por ejemplo.

Fuentes:

https://code.google.com/archive/p/goofile/
http://tools.kali.org/information-gathering/goofile

Firewalk

Body

Firewalk es una herramienta de seguridad activa para el reconocimiento de la red, la cual intenta determinar cuales protocolos de la capa 4 pasará un dispositivo IP de reenvío. Firewalk funciona enviando paquetes TCP o UDP con un TTL mayor a la pasarela objetivo. Si la pasarela permite tráfico, reenviará paquetes hacia el siguiente salto donde expirará y generará un mensaje ICMP_TIME_EXCEEDED. Si la pasarela no permite el tráfico, es probable descarte los paquetes y no se verán respuestas.

Para obtener el TTL de IP correcto el cual resultará en paquetes expirados una vez más allá de la pasarela, se necesita aumentar las cuentas de los saltos. Se necesita hacer esto de la misma manera como funciona “traceroute”. Una vez se tenga la cuenta de saltos de la pasarela (en este punto el escaneo se dice está “enlazado”) se puede iniciar el escaneo.

Es significativo anotar el hecho del último host destino no tiene porque ser alcanzado. Este solo necesita esta en algún lugar en el flujo inferior, o en el otro lado de la pasarela, desde el host escaneador.

Se ejecuta Firewal definiendo la opción “-i” para ajustar la interfaz a utilizar. La opción “-n” no realiza resoluciones a nombres de host. La opción “-pTCP” utilizar el protocolo TCP.

# firewalk -i eth0 -n -pTCP [IP Pasarela] [IP Destino]

El culminar su ejecución se presenta un resumen de los resultados obtenidos. Lo cual incluye información sobre los puertos y paquetes.

Utilizando Wireshark es factible analizar más profundamente los resultados obtenidos.

Nmap también permite corroborar los resultados obtenidos por Firewalk, en los cuales se expusieron algunos puertos con el texto "*no response*".

Fuentes:

http://tools.kali.org/information-gathering/firewalk
http://packetfactory.openwall.net/projects/firewalk/
http://packetfactory.openwall.net/projects/firewalk/firewalk-final.pdf

Depurar Datos del DNS utilizando Dnswalk

Body

dnswalk es un depurador DNS (Domin Name System). Esta herramienta realiza transferencia de zona de los dominios especificados, y verifica la base de datos por consistencia interna de numerosas maneras, como también para la corrección de acuerdo a las prácticas aceptadas con el Sistema de Nombres de Dominio.

La manera más sencilla de ejecutar la herramienta “dnswalk” es definiendo el nombre de dominio especificado en la línea de comando finalizando con un “.” (punto). También se puede definir un dominio inverso.

# dnswalk dominio .com

Los resultados obtenidos exponen la no factibilidad de realizar una transferencia de zona exitosa.

Para la siguiente demostración se utiliza otro nombre de dominio.

# dnswalk zonetransfer .me.

Los resultados obtenidos en esta oportunidad si exponen un respuesta exitosa ante una petición de transferencia de zona.

Se utiliza la opción “-r” para descender subdominios de manera recursiva del dominio especificado. La opción “-d” imprime información sobre depuración y “estado” hacia stderr. (Utilizado sólo si se redirecciona stdout).

# dnswalk -r -d zonetransfer .me.

Ante una transferencia de zona exitosa, los resultados obtenidos muestran advertencias en su mayoría relacionadas a la inexistencia del registro PTR.

Fuentes:

http://tools.kali.org/information-gathering/dnswalk
https://sourceforge.net/projects/dnswalk/

Trazar Consultas DNS hasta el Origen utilizando dnstracer

Body

Dnstracer determina desde donde un servidor de nombre de dominio (DNS) obtiene su información para un nombre de dominio definido, y sigue la cadena de servidores DNS de retorno hacia los servidores quienes conocen el dato, o devuelven una respuesta autorizada.

Para las siguiente demostración se utiliza la versión de la herramienta dnstracer incluida en Kali Linux 2.0.

Se realiza un consulta simple para un dominio. Este trazado es realizado después de un inicio limpio del servidor DNS. Esto significa la no disponibilidad de datos, excepto las zonas del servidor para el cual esta autorizado y los servidores raíz. El servidor DNS utilizado por defecto en el configurado localmente.

# dnstracer www. government. ru

Es factible definir un servidor DNS diferente con el cual iniciar este proceso. La opción “-s” define el servidor. El nombre del servidor puede ser reemplazado por una dirección IP o con un punto (.) para indicar el uso del servidor A.ROOT-SERVERS.NET. La opción “-o” muestra un resumen de las respuestas recibidas al final de la ejecución.

# dnstracer -o -s g. root- servers. net www. government .ru

Finalizado el proceso se muestra la información obtenida por la herramienta dnstracer.

Los asteriscos mostrados en los resultados significan la no respuesta a una solicitud. Por defecto se realizan tres intentos.

Si no se muestras registros adicionales para un servidor DNS la dirección IP es capturada mediante un gethostbyname() estándar. Si existen varios registros adicionales para un servidor DNS, todo son evaluados.

Las respuestas autorizadas son respuestas provenientes desde el servidor el cual es autorizado para la zona. Si la respuesta es puesta en “cache” por otros servidores (el cual es la naturaleza del sistema DNS), entonces la respuesta sigue siendo válida pero no es autorizada.

Fuentes:

http://tools.kali.org/information-gathering/dnstracer
http://freecode.com/projects/dnstracer
http://www.mavetju.org/unix/dnstracer.php
https://www.iana.org/domains/root/servers

CaseFile

Body

CaseFile es el hermano menor de Maltego. Se dirige a un mercado único de análisis “Offline” o Fuera de Línea, cuyas fuentes primarias de información no son obtenidas desde el lado de la inteligencia de fuentes abiertas o consultas programáticamente. Útil para personas como investigadores y analistas quienes están trabajando “en el terreno”, obteniendo inteligencia desde otras personas en el equipo y construyendo un mapa de información para su investigación.

¿Qué hace CaseFile?

CaseFile es una aplicación visual para inteligencia, la cual puede ser utilizada para determinar las relaciones y enlaces del mundo real entre cientos de diferentes tipo de información. Proporciona la habilidad de ver rápidamente relaciones de segundo, tercero y N orden, además de encontrar enlaces de otra manera no factibles de ser descubiertas con otros tipo de herramientas para inteligencia. CaseFile viene empaquetado con varios tipos diferentes de entidades las cuales son utilizadas comúnmente en investigaciones permitiendo actuar rápidamente y eficientemente. CaseFile también tiene la habilidad de añadir tipos de entidades personalizadas para expandir el producto hacia un conjunto de datos propio.

¿Qué puede hacer CaseFile?

  • CaseFile puede ser utilizado para captura de información, las fases de análisis e inteligencia de casi todos los tipos de investigación, desde seguridad en TI, fuerzas legales y cualquier trabajo dirigido a datos. Puede salvar tiempo permitiendo trabajar más precisa e inteligentemente.
  • CaseFile tiene la habilidad para visualizar conjuntos de datos almacenados en formatos CSV, XLS, y XLSX.
  • CaseFile ayuda en el proceso de pensamiento, demostrando visualmente los enlaces interconectados entre los ítemes buscados.
  • Si accede a información “oculta” determina su éxito. CaseFile puede ayudar a descubrirla.

Se ejecuta la herramienta CaseFile. Luego de lo cual se presenta un asistente.

El asistente de CaseFile brinda un mensaje de bienvenida. Hacer clic en el botón de nombre “Next” para continuar o “Cancel” para cancelar.

Al hacer clic en el botón “Next”, el asistente consulta por aquello lo cual desea realizarse a continuación. Ya sea abrir un gráfico en blanco, abrir un gráfico de ejemplo, o indicar se vaya la ventana.

Se hace clic en la opción “Open an example graph” o abrir un gráfico de ejemplo.

Para la siguiente demostración se crea un nuevo gráfico para el dominio reydes. com. Hacer clic en “Infraestructure” ubicado en la paleta del lado izquierdo. Luego seleccionar “IPv4 Address” o Dirección IP versión 4.

Luego ir seleccionado los diferentes tipos de entidades, en base a nuestros requerimientos.

Recordar el hecho de la imposibilidad de utilizar Transformadas como si es factible hacerlo en Maltego. Aún así es una herramienta muy valiosa y útil. Sugiero la lectura de la guía de usuario para aprovechar todas sus funcionalidades.

Fuentes:

http://paterva.com/web6/products/casefile.php
http://tools.kali.org/information-gathering/casefile
http://www.paterva.com/web6/documentation/M3GuideGUI.pdf