Formatos de Resultados Generados por Nmap

Body

Existen tres formato principales conteniendo los resultados obtenidos al utilizar nmap, desde un archivo de texto simple, hasta un formato XML, el cual potencialmente puede ser utilizado con otro programa. Los tres formatos son los siguientes, resultado normal utilizando la opción (-oN), resultado XML utilizando la opción (-oX), y formato “grep” utilizando la opción (-oG). Adicionalmente es factible utilizar la opción (-oA) para generar resultados en los tres formatos antes descritos.

Se ejecuta Nmap con la opción “-oA” y generar así tres archivos conteniendo los resultados en los tres formatos principales.

# nmap -n -PN -p- -sV -O 192.168.0.6 -oA /tmp/escaneo_nmap

El formato con el resultado normal, es muy similar a los resultados interactivos, y es enviado hacia el archivo elegido. Este difiere de los resultados interactivos en diversas maneras, lo cual deriva de la expectativa de esta salida será analizada después de completado el escaneo, en lugar de manera interactiva. Así los resultados interactivos incluyen mensajes (dependiendo del nivel de verbosidad), tales como el tiempo estimado para ser completado el escaneo, y alertas sobre puertos abiertos. Los resultados normales omiten aquello innecesario una vez completado el escaneo, e imprime la tabla de puertos interesantes Este tipo de resultados imprime la linea de comando utilizado con Nmap, además del tiempo y fecha de ejecución.

cat /tmp/escaneo_nmap.nmap

XML ofrece un formato estable el cual fácilmente puede ser interpretado por el software. Interprete libres XML están disponibles para los principales lenguajes de programación, incluyendo C/C++, Perl, Python, y Java. En la mayoría de casos donde una aplicación interactúa con Nmap, XML es el formato preferido. Este formato también puede ser transformado en otros formatos, como reportes HTML y tablas de bases de datos.

# cat /tmp/escaneo_nmap.xml

La conversión desde el formato XML hacia HTML, puede ser realizada utilizando la herramienta de nombre “xsltproc”, el cual es un procesador XSLT en linea de comando, el cual permite aplicar hojas de estilo XSLT hacia documentos XML.

# xsltproc /tmp/escaneo_nmap.xml -o /tmp/escaneo_nmap.html


# cat /tmp/escaneo_nmap.gnmap

El formato “grep”, permite una fácil manipulación en linea de comando utilizando herramientas Linux, como “grep”, “awk”, “cut”, y “diff”. Cada host es listado en una línea, con el uso del carácter tabulación, slash, y coma, para delimitar los campos en los resultados. Mientras este puede ser útil para obtener resultados rápidos, se prefiere el formato XML para tareas más significativas, pues es más estable y contiene más información.

Fuentes:

https://nmap.org
https://nmap.org/book/output-formats-commandline-flags.html#output-form…
https://nmap.org/book/output-formats-output-to-html.html

Escanear Todos los Puertos de un Host utilizando Nmap

Body

Para realizar un escaneo completo de puertos TCP y UDP de una máquina, Nmap proporciona la opción “-p”, la cual permite definir rangos de puertos a escanear. Recordar Nmap escanea por defecto los 1,000 puertos más populares.

La opción “-p” indica a Nmap escanear únicamente los puertos especificados. La opción “-F” define un escaneo de puertos rápido pero limitado. La opción “--exclude-ports”, excluye los puertos especificados del escaneo. La opción “-r” le indica a Nmap no escanear los puertos de manera aleatoria.

Para escanear los 65,535 puertos TCP se puede utilizar la opción “-p-” o “-p1-65535”.

# nmap -n -Pn -sS -p- 192.168.0.5

De manera similar para escanear los 65,535 puertos UDP se puede utilizar ya sea la opción “-p-” o “-p1-65535”.

# nmap -n -Pn -sU -p- 192.168.0.5

Los puertos cerrados frecuentemente son un gran problema. Usualmente envían de retorno un error “ICMP Port Unreacheable”. Pero a diferencia de los paquetes RST enviados por los puertos TCP cerrados, en respuesta a un escaneo Connect o SYN, muchos hosts limitan la velocidad de mensajes “ICMP Port Unreacheable” por defecto. Linux y Solaris son particularmente estrictos sobre esto. Por ejemplo el kernel de Linux 2.4.20 limita estos mensajes a uno por segundo. Esto explica porque el escaneo es tan lento.

La opción más obvia es simplemente esperar la culminación del escaneo, lo cual puede demandar varias horas. La otra opción es utilizar la opción “--max-retries”. Esta opción especifica el número máximo de retransmisiones de prueba para escanear el puerto. Lo cual disminuye considerablemente el tiempo requerido para finalizar el escaneo.

# nmap -n -Pn -sU -p- --max-retries=1 192.168.0.5

La opción “-F” especifica el escaneo por defecto de pocos puertos. Nmap escanea los 1,000 puertos más comunes para cada protocolo escaneado. Con esta opción se reduce a 100.

# nmap -n -Pn -sU -F 192.168.0.5

Los resultados obtenidos muestran los puertos encontrados en estado “Abierto”, aunque en el caso del último escaneo realizado, también incluye puertos UDP encontrados en estado “Cerrado”.

Fuente:

https://nmap.org/
https://nmap.org/book/man-port-specification.html
https://nmap.org/book/scan-methods-udp-scan.html
https://nmap.org/book/man-performance.html

Realizar un Escaneo Simple de la Subred utilizando Nmap

Body

Existen varios métodos factibles de ser utilizados para escanear por hosts en redes internas o externas. Se puede utilizar la herramienta Nmap para diversos propósitos. Los escaneos de puertos TCP están definidos por defecto en Nmap. Sin embargo desde la perspectiva de pruebas de penetración o hacking ético, existe otros escaneos muy útiles, como el escaneo de puertos UDP, los cuales podrían proporcionar vectores de ataques como SNMP.

Al ejecutar Nmap sin ningún argumento, se presentará un resumen de sus opciones.

# nmap

Para realizar un escaneo simple de la subred, se debe definir el rango de la red a continuación del comando nmap.

# nmap 192.168.0.0/24

Este comando escanea los 1,000 puertos TCP más populares en todos los objetivos encontrados en el rango de la subred. Siendo factible identificar sus respectivas direcciones IP, y sus puertos TCP encontrados en estado “open” o abierto.

Para conocer cuales son los 1,000 puertos TCP más populares, se ejecuta el siguiente comando.

# nmap -sT --top-ports 1000 -v -oG -

Y para conocer cuales son los 1,000 puertos UDP más populares, se ejecuta el siguiente comando.

# nmap -sU --top-ports 1000 -v -oG -

Fuentes:

https://nmap.org

Obtener Información de Servicios en la Nube utilizando Maltego

Body

Al utilizar Maltego para realizar diversas tareas, se requiere en algunas oportunidades descubrir si los sistemas en evaluación están utilizando servicios basados en la nube. Con las direcciones IP encontradas, se puede ver si existen diferentes dominios e información sobre el host asociado con una dirección IP individual, lo cual podría indicar alguna forma de servicio basado en la nube.

Los servicios basados en la nube vienen en diferentes formas. Los servicios en la nube originalmente iniciaron como una tendencia de “Software as a Service” (SaaS), y “Platform as a Service” (PaaS). En la actualidad las organizaciones confían en sistemas basados en la nube. Algunas veces estos sistemas son controlados, gestionados y vigilados como parte de la infraestructura del centro de datos. Otros veces, este uso es considerado como algo TI en la sombra. Lo cual se refiere a servicios los cuales se ofrecen fuera del entorno y control corporativo de TI. Frecuentemente se utilizan para fines de desarrollo o para evitar restricciones y retrasos basados en políticas estándar de TI corporativas. Estos entornos pueden ser generosos en información; de hecho, algunas de las más recientes brechas de “Personally Identifiable Information“ (PII) o Información para Identificación Personal, se debieron a aplicaciones de prueba inadecuadamente aseguradas, o no aseguradas, donde utilizaron datos reales en la base de datos.

Ejecutado Maltego. Se procede a seleccionar la entidad “Bloque de Red”, para luego ejecutar la transformada de nombre “To Entities grom WHOIS [IBM Watson].”

Luego se procede a analizar la información obtenida por algún signo relacionado con un proveedor de servicios en la nube.

En este segundo escenario se ejecutará la misma transformada de nombre “To Entities From WHOIS [IBM Watson].” contra una dirección IP.

Aunque los resultados no pertenecen a un proveedor de servicios en la nube, como Amazon Web Services, Microsoft Azure, u otro. Se expone información sobre una empresa la cual proporciona servicios los cuales se sitúan entre el visitante y el proveedor de hosting del usuario, actuando como un proxy reverso para sitios web, como lo es Cloudfare.

Se sugiere ejecutar esta o transformadas similares contra todas las direcciones IP descubiertas, para luego revisar los resultados obtenidos, y encontrar tal vez registros obre un proveedor conocido de servicios en la nube.

Fuentes:

https://www.paterva.com/web7/buy/maltego-clients/maltego-ce.php
https://www.cloudflare.com/

Obtener Información de Encaminamiento Interno utilizando Zenmap

Body

La herramienta Zenmap puede proporcionar una representación gráfica de una red. Zenmap es una delantera gráfica para Nmap, la cual tiene algunas ventajas a comparación de Nmap, especialmente cuando se trata de proporcionar ciertos resultados gráficos. Se utiliza entonces esta visión gráfica para la red en evaluación. Obtener información sobre como la red interna está dispuesta, puede permitir el uso de esta información para esparcir los ataques más allá de únicamente la subred local.

Ejecutar Zenmap ya sea a través del menú de Kali Linux o través de la línea de comando. Se sugiere tomarse un tiempo para examinar la interfaz. Se tienen algunos perfiles para el escaneo, pudiendo crear la realización de pruebas repetitivas. También se tienen varias pestañas conteniendo resultados. Para el propósito del presente texto se concentra el interés en la sección topología.

Se ejecuta Nmap para realizar un escaneo ICMP para trazar la ruta hacia un host como “sacnme.nmap.org”. La opción “-sn” define realizar un escaneo ping simple, y la opción “-PE” especifica el protocolo ICMP. “--traceroute” indica el requerimiento para realizar un trazado de la ruta hacia el destino. Una vez realizado, al hacer clic en la pestaña “Topology” se visualiza una gráfica de la red. Esta información puede ser utilizada para ver cuales otras áreas se requiere escanear.

# nmap -n -PE --traceroute scanme.nmap.org

Si se tiene acceso hacia una red interna, se puede intentar escanearla. Por ejemplo la red 192.168.0.1/24

Anotación: Este será un escaneo bastante ruidoso, por lo cual, en un escenario de pruebas de penetración típico, se será más tácticos con los escaneos. Se podría hacer esto para trazar la ruta hacia algunos elementos específicos requeridos de conocer, como servidores DNS internos, controladores de dominio, etc. Se utilizará esta información para realizar escaneos más específicos y afinados.

El gráfico obtenido sobre la topología puede ser guardado en formados PDF, PNG, PostScript y SVG, lo cual permite insertarlo luego dentro de una herramienta como KeepNote. Se puede también guardar todo el escaneo utilizando la opción “Scan -> Save Scan”, para posteriormente utilizarlo, o para continuar obteniendo conocimiento sobre los hosts y las redes.

Zenmap proporciona todas las capacidades y funcionalidades de Nmap. Se sugiere intentar algunos escaneos adicionales, incluyendo el trazado de la ruta, para construir un mapa de la red interna o una red para la cual se tenga la autorización.

Fuentes:

https://nmap.org/book/zenmap.html
https://nmap.org/
http://keepnote.org/

Obtener Información Externa de Encaminamiento utilizando Maltego

Body

Se puede utilizar Maltego para obtener información externa sobre el encaminamiento. La información externa sobre encaminamiento puede proporcionar información valiosa como, quienes son los proveedores de los servicios de Internet, y como fluye el tráfico.

La presente demostración inicia con un gráfico conteniendo información previamente obtenida sobre un dominio utilizando Maltego. Como el sitio web, servidores de nombres, direcciones IP, y bloques de red. Ejecutándose para cada caso las transformadas pertinentes.

Para obtener información del sistema autónomo BGP, seleccionar todas las entidades bloque de red, para luego hacer clic derecho y ejecutar la transformada de nombre “To AS number” o “Hacia número AS”.

Finalizadas las transformadas, se presenta ahora en el gráfico dos entidades “Localización”, una correspondiendo a París, Francia y otra a Whashington, Estados Unidos. También se obtiene una entidad “AS” o Sistema Autónomo de Internet de número 10806.

Un sistema autónomo (AS) es definida como “un grupo de redes IP los cuales poseen una política de rutas propia e independiente”. Esta definición hace referencia a la característica fundamental de un Sistema Autónomo: realiza su gestión propia del tráfico fluyendo entre él y los restantes Sistemas Autónomos formando Internet. Un número de AS o ASN se asigna a cada AS, el cual lo identifica de manera única a sus redes dentro de Internet.

Fuentes:

https://www.paterva.com/web7/buy/maltego-clients/maltego-ce.php
https://www.paterva.com/web7/docs.php
https://en.wikipedia.org/wiki/Autonomous_system_(Internet)

Obtener Información Pública sobre una Dirección IP utilizando Maltego

Body

A continuación se utilizará Maltego CE para obtener información sobre la dirección IP de un host externo IP, e información sobre el bloque de red.

En primera instancia ejecutar Maltego. Utilizar la opción “Create a New Graph...” o “Crear un Nuevo Gráfico”. Luego agregar una entidad dominio hacia el nuevo gráfico, para luego definir el nombre de dominio sobre el cual se ejecutarán las transformadas.

Sobre el dominio definido ejecutar la transformada de nombre “To DNS name – NS (name server) o “Hacia nombre DNS – NS (servidor de nombre)”.

Finalizada la ejecución de la transformada, Maltego mostrará en el gráfico los servidores de nombre para el dominio.

El siguiente procedimiento implica ejecutar la transformada de nombre “To Website [Quick lookup]” o “Hacia el Sitio Web [Consulta rápida]”.

Al finalizar la ejecución de la transformada, Maltego presenta en el gráfico el sitio web descubierto para el dominio en consulta.

Se procede a ordenar el gráfico, para luego seleccionar la entidad sitio web, y las dos entidades de registros NS. Luego se ejecuta sobre estas tres entidades la transformada de nombre “Resolve to IP” o “Resolver hacia IP”.

Al finalizar la transformada su ejecución, Maltego presenta en el gráfico las tres direcciones IP hacia las cuales resuelven las entidades.

Para obtener información sobre el bloque de red se ejecuta la transformada de nombre “To Netblock [Using routing info]” o “Hacia el Bloque de red [Utilizar información de encaminamiento]”.

Maltego mostrará en el gráfico la información contenida. Siendo en este caso en particular, la dirección IP a la cual resuelve el sitio web y la dirección IP de uno de los servidores de nombres, pertenecientes al mismo bloque de red.

Fuentes:

https://www.paterva.com/web7/buy/maltego-clients/maltego-ce.php
https://www.paterva.com/web7/docs.php

Obtener Información de un Dominio utilizando Maltego

Body

A continuación se utilizará Maltego CE para obtener información sobre un dominio de Internet. Si se está trabajando principalmente en una prueba de penetración externa desde Internet, esta información proporcionará una gran cantidad de información valiosa sobre los aspectos públicos de una red. Esta herramienta comenzará con un nombre de dominio, y luego se dirigirá hacia diversos aspectos de la información sobre el dominio públicamente disponible.

Ya en ejecución Maltego CE. Hacer clic en el ícono ubicado en la parte superior izquierda de nombre “Create a New Graph”, o “Crear un Nuevo Gráfico”.

En la “Paleta de Entidades”, ubicado en el lado izquierdo, seleccionar y arrastrar una entidad “Domain” o “Dominio”, hacia el nuevo gráfico, para luego renombrarlo al dominio en consulta.

Al hacer clic derecho sobre la entidad dominio, se presenta una nueva ventana con las transformadas factibles de ser utilizadas. Se ejecuta la transformada de nombre “To Entities from WHOIS” o “Hacia Entidades desde WHOIS”.

Maltego muestra un gráfico con todas las entidades obtenidas producto de la transformada ejecutada sobre el nombre de dominio; incluyendo nombre de las compañías, direcciones de correo electrónico, direcciones IP, país, alías para una persona, etc.

Para continuar construyendo el gráfico, y obtener los servidores de nombres, hacer clic derecho en la entidad nombre de dominio y seleccionar la transformada “To DNS Name – NS (name server)” o “Hacia el nombre DNS - NS (servidor de nombre)”.

Maltego CE mostrará para este nombre de dominio, los dos servidores de nombres obtenidos a través de la transformada pertinente.

Anotación: Existe una tremenda cantidad de información adicional factible de ser obtenida utilizando Maltego. Se sugiere invertir tiempo intentando obtener más información relacionada con el dominio. Evaluar diferentes transformadas, incluso si una transformada falla en obtener un tipo de dato particular, otra transformada podría obtenerla satisfactoriamente. También se puede utilizar Maltego para descubrir otros dominios tal vez relacionados con la compañía.

Fuentes:

https://www.paterva.com/web7/buy/maltego-clients/maltego-ce.php
https://www.paterva.com/web7/docs.php

Utilizar KeepNote para Organizar los Datos

Body

Es muy importante durante una prueba de penetración o hacking ético, registrar toda la información al detalle, pues esta información será útil en las posteriores etapas de las evaluaciones, como también para el reporte requerido de crear y presentar al cliente. Kali Linux proporciona algunas herramientas útiles para registrar esta información. Entre estas herramientas se tiene a KeepNote, la cual puede ser utilizada para este propósito. Pero siempre se debe recordar, como un profesional en pruebas de penetración, se debe recopilar información la cual puede ser utilizada para dañar al cliente, por lo tanto tener en consideración la privacidad y seguridad cuando se elijan las herramientas para registrar los datos recopilados.

Iniciar KeepNote, ya sea a través del menú de Kali Linux o a través de la consola.

Hacer clic en el menú superior “File -> New Notebook...”. En la nueva ventana presentada, ingresar un nombre, por ejemplo “Evaluacion01”.

Uno de los primeros elementos de información a registrar puede se el nombre de la empresa. Hacer clic en la opción “File -> New Page”, e ingresar la información pertinente.

Luego es posible seguir organizando datos, como por ejemplo los resultados de un escaneo de puertos TCP y escaneo de versión, utilizando la herramienta nmap.

Para guardar la información, utilizar la opción “File -> Save Notebook.”

Antes de utilizar la opción “File -> Quit” para salir, recordar guardar la información.

Anotación: El realidad nunca se termina de registrar información. Cada pequeña pieza de información encontrada, es registrada, y organizada. Se puede añadir información generada desde comandos, desde imágenes, y desde capturas de pantalla. Después de hacer algo de esto, se encontrará la factibilidad de hacer una plantilla básica de información. Se puede crear una plantilla genérica la cual tenga páginas y páginas hijas ya configuradas. Sólo se deberá copiarlas para un nuevo “Notebook”. Se puede continuar modificando y ajustando estas plantillas, conforme se encuentren nuevas categorías de información requerida de capturar.

Fuente:

http://keepnote.org/

Espacio Residual o de Holgura para Propósitos Antiforenses

Body

El espacio residual o de holgura es el remanente de datos existentes dentro de un área de datos, los cuales han sido sobrescritos. Específicamente, el espacio residual es el área del sector o cluster el cual no ha sido completamente sobrescrito por un reciente proceso de escritura en el dispositivo de almacenamiento. Recordar los sectores son fijos en su tamaño, así por ejemplo; en el caso de utilizar cluster de un tamaño de 2K, si se escribe un archivo de nombre “foto.jpg” de un tamaño de 758 Bytes, se escriben 512 bytes en el primer sector, y 256 bytes en el segundo sector, existe un espacio residual a nivel del sector, el cual generalmente es llenado por el Sistema Operativo. A nivel del cluster no serán utilizados el tercer y cuarto sector, los cuales seguirán conteniendo cualquier dato existente después de la última escritura en el cluster.

Aunque el espacio residual o de holgura no es un problema para las herramientas forenses, las cuales examinan a nivel físico los discos duros o dispositivos de almacenamiento, si podría ser un inconveniente cuando se intenta buscar en un disco. Si se busca en un disco utilizando herramientas no forenses, se podría perder todos estos datos residiendo en el espacio residual, mientras una herramienta forense podría permitir ver aquello almacenado en el espacio sin asignar, y podría incluso permitir confinar las búsquedas únicamente es estas áreas.

Buscar en el Espacio Residual

Si en el espacio residual se intenta ocultar datos desde la perspectiva antiforense, esta es la razón por la cual se sugiere buscar en este espacio utilizando herramientas forenses específicamente diseñadas para realizar este tipo de investigaciones. Todas las herramientas forenses actuales examinan el dispositivo de almacenamiento por completo, durante las búsquedas, de tal manera es factible capturar y revisar lo contenido en el espacio sin asignar. Tal como el caso de almacenar el texto “pw=gootimes” dentro del espacio residual.

Fuentes:

http://forensicswiki.org/wiki/Slack
https://en.wikipedia.org/wiki/Glossary_of_digital_forensics_terms