Los Espectros de 2.4 GHz y 5 GHz

Body

El espectro de 2.4 GHz es comúnmente utilizado para despliegues inalámbricas debido a su rango y soporte para muchos protocolos comunes Wi-Fi, como 802.11b, 802.11g y 802.11n. Típicamente se encontrará siendo utilizada ya sea exclusivamente en una red objetivo, o coexistiendo con un espectro de 5 GHz en puntos de acceso de modo dual. La siguiente imagen lista los canales y frecuencias asociadas factibles de ser encontradas cuando se realicen pruebas de penetración inalámbricas. Estos números de canales se utilizarán en procesos posteriores cuando se realicen capturas, y se requiera definir canales de los puntos de acceso.

En Norteamérica, unicamente los canales desde al 1 al 11 son utilizados, mientras en la mayoría del mundo, los canales 1 al 13 son utilizados. El canal 14 es sólo utilizando en Japón bajo el protocolo 802.11b.- Estos mismos canales se aplican ya sea la interfaz inalámbrica utilice 80111b, 802.11g o 802.11n. En los procesos de escaneo inalámbrico, será factible visualizar sobre cuales canales los puntos de acceso y clientes se comunican, utilizando la aplicación airmon-ng. Procediendo luego a seleccionar específicamente uno de estos canales cuando se desee capturar el tráfico siendo enviando entre los dispositivos inalámbricos

El espectro de 5GHz es masivo y varia ampliamente en su implementación dependiendo sobre cual parte del mundo está operando. Fundamentalmente, tiene un rango entre el canal 36 al 5180 Mhz y el canal 165 a 5825 Mhz; sin embargo, algunas partes del mundo utilizan rangos de frecuencias inferiores hasta 4915 Mhz, y rango de canales desde 7 al 196. Los canales y frecuencias más comunes son representadas en la imagen siguiente. Sin embargo, se debe referenciar los estándares utilizados en una geografía antes de realizar evaluaciones de seguridad inalámbrica, pues el rango podría ser ampliado en el área.

El mismo principio entra en juego cuando se están capturando el tráfico desde redes 802.11a o 802.11n funcionando a 5 GHz, como en 2.4 GHz. Las herramientas permiten especificar la frecuencia en la cual el adaptador inalámbrico está atendiendo por el número de canal asociado. Se puede identificar el canal sobre el cual el cliente y el punto de acceso se están comunicando, para luego configurar la captura.

Fuentes:

https://en.wikipedia.org/wiki/List_of_WLAN_channels
https://www.aircrack-ng.org/

Estándares Inalámbricos

Body

Wi-Fi Alliance es una organización la cual soporta y certifica tecnologías inalámbricas para asegurar la interoperabilidad entre proveedores, y ha sido instrumental en traer Wi-Fi hacia los hogares y empresas alrededor del mundo. Anteriores implementaciones de tecnologías inalámbricas para comunicaciones de red, han sido obstaculizados por inconvenientes de interoperabilidad e implementaciones conflictivas porque el IEEE no tenía un equipo de pruebas para asegurar el cumplimiento con estos estándares.

Esto condujo a la creación de WECA (Wireless Ethernet Compatibility Alliance), quien promovió un nuevo estándar de alta velocidad para comunicación inalámbrica. Lo cual últimamente se convirtió en 802.11b. WECA fue rebautizado en el año 2002, mientras la Wi-Fi Alliance continua validando y certificando tecnologías inalámbricas hasta este día para asegurar la interoperabilidad y promover los estándares en la industria.

Actualmente las tecnologías de redes inalámbricas utilizadas para implementar WLANs (Wireless Local Area Networks) son organizadas bajo las especificaciones del IEEE 802.11. Son una sopa de letras de protocolos los cuales definen las frecuencias, velocidades de transmisión, ancho de banda, y modulación de comunicaciones inalámbricas.

DSSS son las siglas de “Direct-Sequence Spread Spectrum”, y OFDM son las siglas de “Orthogonal Frecuency-Division Multiplexing”. Estas tecnologías refieren como la radio asigna el ancho de banda para transmitir los datos sobre el aire. Nuevamente, agradecer a los ingenieros inalámbricos por incorporar esta complejidad dentro de un estándar, aunque no es necesario conocer como exactamente funciona para enviar y recibir paquetes inalámbricos.

Conforme se obtiene paquetes inalámbricos desde el aire, el concepto de canales entra en juego. El termino canal se refiere a una frecuencia específica dentro de ya sea un espectro de frecuencia de 2.4 Ghz o 5 Ghz, las cuales las radios inalámbricas sobre el punto de acceso y el cliente deben haber negociado o se indicó utilizar para la comunicación de datos entre ellos. Esto es similar a un canal de la televisión; pensar en una analogía aquí; donde la estación transmite en una frecuencia específica y la televisión está configurada para recibir esta frecuencia específica mediante la sintonización de un canal específico.

Si ambos lados están configurados para hablar en el mismo canal, entonces la comunicación entre estos dos dispositivos procederá. Como una nota adicional; existe una discusión enteramente tangencial sobre la selección del canal, interferencia entre canal, y diseño del canal, pero para propósito del tema, se debería enfocar en la disponibilidad de los canales en cada rango y la frecuencia sobre el cual funcionan.

Fuentes:

http://www.wi-fi.org/
https://en.wikipedia.org/wiki/IEEE_802.11
https://en.wikipedia.org/wiki/Orthogonal_frequency-division_multiplexing
https://en.wikipedia.org/wiki/Direct-sequence_spread_spectrum

Comunicaciones Inalámbricas

Body

El término inalámbrico puede ser interpretado de maneras diferentes dependiendo a quien se lo menciona. En general esto puede abarcar cualquier transmisión de datos utilizando una tecnología, donde el remitente y el receptor de los datos no están conectados por un medio físico. Desde un contexto de tecnología de información, esto abarcará tecnologías como un microondas, celular, ancho de banda móvil, Bluetooth, y también Wi-Fi o “Wireless Fidelity”.

La tecnología LAN inalámbrica está definida por el grupo de trabajo IEEE 802.11. Las redes de área local inalámbricas, típicamente referenciadas como WLAN, son tecnologías muy populares utilizadas para crear una red de clientes y dispositivos, los cuales no requieren cada host esté conectado hacia una red mediante una conexión Ethernet cableada.

Las ventajas más grandes de WLAN son su facilidad de uso, bajo costo de despliegue, y modelo operacional dinámico. WLAN es fácil de desplegar, incluso para usuarios de casa, quienes pueden comprar un punto de acceso e iniciar conexión de red con los dispositivos móviles disponibles, como laptops, teléfonos inteligentes, y tables, con poco conocimiento y en una corta cantidad de tiempo. Típicamente solo es cuestión de conectar el punto de acceso para luego configurar correctamente los dispositivos móviles, y la WLAN estará operacional en pocos minutos.

Para WLANs en entornos corporativos, muchos de estos principios aplican, aunque las consideraciones de complejidad y seguridad típicamente se incrementarán de manera lineal al tamaño del despliegue. Las organizaciones típicamente tiene muchos puntos de acceso y configuraciones para administrar, y es común verlos desplegados, aprovechando un modelo controlado para asegurar consistencia.

Mientras este modelo varias desde aquello típicamente visto en escenarios residenciales, las tecnologías subyacentes (y debilidades) siguen existiendo. Para entender mejor los riesgos de seguridad asociados con WLANs, se necesita conocer como se comunican los clientes y estaciones inalámbricas, además de las tecnologías permitiendo esta comunicación.

Algunos de los componentes son los siguientes.

Radio: Es definida como una estación en el estándar 802.11, y algunas veces es abreviado como STA. Es el componente quien transmite la señal inalámbrica

Punto de Acceso (AP): Proporciona conectividad entre los STAs (más probablemente, laptops y otros dispositivos móviles).

Estos componentes sólo proporcionan los requerimientos de hardware para construir una WLAN. Desde la perspectiva del software, los controladores inalámbricos y firmware sobre los puntos de acceso habilitan el hardware, y una pila de sistema operativo y aplicación proporcionan la administración, control de usuario, encriptación, y otras funcionalidades.

Las consideraciones de seguridad para cada parte de esta pila permitiendo la conectividad inalámbrica, deben ser implementadas en todos los componentes. Es posible las vulnerabilidades en algo tan fundamental como controladores de dispositivos, puedan conducir hacia un compromiso del punto de acceso o cliente. Adicionalmente el firmware en un punto de acceso puede potencialmente ser infectado con malware, lo cual puede conducir hacia un compromiso de los clientes conectados a esta. Si se es un profesional en seguridad, se debe estar informado y entender como evaluar y proteger una red inalámbrica.

Fuentes:

https://en.wikipedia.org/wiki/Wireless_LAN
https://en.wikipedia.org/wiki/IEEE_802.11
http://www.uninformed.org/?v=6&a=2&t=pdf

Obtener Información desde Shodan utilizando Recon-ng

Body

Para utilizar algunas de las funcionales de búsqueda avanzadas en Recon-ng; incluyendo Shodan, Twitter, Google, etc; se requiere adquirir llaves API desde el servicio correspondiente. El proceso de adquirir un llave API es diferente para cada servicio. Para instrucciones sobre la adquisición de estas llaves, consultar la sección “Acquiring API Key” o Adquiriendo Llaves API en el wiki de Recon-ng.

Shodan es un motor de búsqueda el cual permite encontrar tipos específicos de computadoras (cámaras web, encaminadores, servidores, etc.) conectados hacia Internet utilizando una diversidad de filtros. Esto puede ser información sobre el software del servidor, cuales opciones soporta el servicio, un mensaje de bienvenida, o cualquier cosa presentada antes de interactuar con el servidor.

Después de iniciar Recon-ng se utiliza el comando “keys-list” para listas las llaves API configuradas en Recon-ng.

Para añadir la llave API de Shodan se utiliza el comando “keys add shodan_api XXXXX”, donde XXXXX corresponde a la llave API. Para obtener esta llave se debe realizar previamente un registro en el sitio web de Shodan.

Para verificar se haya añadido la llave API de Shodan utilizar nuevamente el comando “keys list”.

Ahora se define en Recon-ng la utilización del módulo correspondiente, con el comando “use recon/domain-hosts/shodan_hostname”. Este módulo cosecha hosts desde la API de Shodan utilizando el operador de búsqueda "hostname". Actualizando la tabla "hosts" con los resultados. Para mostrar la información sobre el módulo se utiliza el comando “show info”.

La única opción a definir es “SOURCE”, la cual se define con el nombre del host a consultar utilizando Shodan.

Entre los resultados obtenidos se encuentra la dirección IP a la cual resuelve el nombre del servidor, y sus puertos abiertos.

Fuentes:

https://bitbucket.org/LaNMaSteR53/recon-ng
https://bitbucket.org/LaNMaSteR53/recon-ng/wiki/Usage%20Guide#!acquirin…
https://www.shodan.io/
http://www.reydes.com/d/?q=Introduccion_a_Recon_ng
http://www.reydes.com/d/?q=Utilizar_Base_de_Datos_y_Espacio_de_Trabajo_…
http://www.reydes.com/d/?q=Detectar_Nombres_de_Host_utilizando_Bing_y_R…

Detectar Nombres de Host utilizando Bing y Recon-ng

Body

Una táctica utilizada para probar pasivamente la estructura de una red, es utilizar motores de búsqueda para enumerar los subdominios de un sitio. Si se tiene un dominio con el formato “midominio.com”, la pregunta es ¿Cuales otros subdominios existen?. De hecho es factible utilizar Google para buscar por subdominios utilizando la directiva “site:”e “inurl:”, para luego remover los subdominios encontrados con la directiva “-inurl:”, así otros subdominios aparecerán. Esto puede tomar algo de tiempo si se hiciese manualmente, y puede requerir bastante escritura si el objetivo tiene un número grande de subdominios.

Recon-ng podría hacer esto automáticamente y registrar los hallazgos en la base de datos de la herramienta. A continuación se utiliza el módulo para realizar búsquedas en Bing, con el comando “use recon/domains-hosts/bing_domain_web/”. Luego el comando “show options” mostrará lo requerido por el módulo.

Este módulo de Recon-ng volverá un nombre de dominio en hosts. Únicamente es necesario proporcionar el nombre de dominio correspondiente al objetivo, definiendo la variable de nombre “SOURCE”. Se utiliza el comando “set SOURCE midominio.com”, y luego se escribe el comando “run”.

Como se puede visualizar en los mensajes, Recon-ng está utilizando Bing para encontrar subdominios disponibles. En cuestión de segundos ha encontrado algunos sitios. Esta información podría demandar mucho tiempo si se intentase enumerar a través de métodos manuales.

Al escribir el comando “show hosts” se mostrarán todos los hosts descubiertos desde la tabla “hosts” en la base de datos.

Se tiene la capacidad también de crear un reporte para visualizar los datos recopilados. Escribir el comando “back” para salir del módulo actual, para luego ejecutar “show modules”.

Anotar la sección de nombre “Reporting” o Reportar.

Simplemente se puede utilizar uno de los módulos para reportar, lo cual automáticamente creará un reporte de los datos obtenidos. Por ejemplo, para recuperar los datos y crear un archivo en un formato de valores separados por comas (csv) se puede utilizar el comando “use reporting/csv”, para luego ejecutar el comando “run”.

Todos los archivos serán almacenados en el directorio “/root/.recon.ng/workspaces/default/”. Anotar este es un directorio oculto (.recon-ng). Pero al navegar por este directorio se pueden visualizar los archivos generados.

El archivo puede ser visualizado con un comando como “cat”, o puede ser abierto con un programa de hoja de cálculo, de tal manera se visualicen los hosts recuperados. Esta información encontrada puede ayudar a mapear el objetivo, y podría proporcionar hosts interesantes en los cuales enfocar los esfuerzos.

Fuentes:

http://www.reydes.com/d/?q=Introduccion_a_Recon_ng
http://www.reydes.com/d/?q=Utilizar_Base_de_Datos_y_Espacio_de_Trabajo_…
https://bitbucket.org/LaNMaSteR53/recon-ng
https://bitbucket.org/LaNMaSteR53/recon-ng/wiki/Usage%20Guide
http://bing.com/

Utilizar Base de Datos y Espacio de Trabajo en Recon-ng

Body

Recon-ng es una completa herramienta con muchas características para realizar reconocimiento web escrita en Python. Recon-ng proporciona un poderoso entorno con el cual se puede realizar un reconocimiento basado en web de manera rápida y profunda.

En Recon-ng no únicamente se pueden utilizar los comandos regulares para manipular bases de datos, sino también múltiples comandos para hacer esta tarea más fácil.

El comando “show” es utilizado para mostrar las tablas y datos desde la base de datos. Por ejemplo; “show schema” lista las tablas contenidas en la la base de datos.

“show companies” lista la tabla de nombre “companies” en la base de datos. Y “show hosts” lista la tabla “hosts” en la base de datos.

Se puede también utilizar los comandos normales para base de datos, como (SELECT * FROM [Tabla]) para interactuar directamente con la base de datos. Aunque de hecho es más simple para los nuevos usuarios simplemente utilizar el comando show.

Para borrar el contenido de la tabla de nombre “hosts” se puede utilizar el comando “delete hosts 1-45”. Donde el último argumento indica el rango de filas a borrar.

El comando “workspaces” permite mantener el trabajo separado, mediante la creación de bases de datos separadas para sesiones de recon-ng, Se pueden crear múltiples bases de datos y luego simplemente saltar entre estas utilizando el comando “workspaces”.

Por ejemplo para crear un espacio de trabajo de nombre “demo” se utiliza el comando “workspaces add demo”.

El espacio de trabajo es creado y luego automáticamente se lo configura para utilizar la base de datos “demo”, y esto se ve reflejado en el “prompt” de Recon-ng. Cualquier dato recuperado desde los módulos de reconocimiento ejecutados, serán almacenados en la base de datos de nombre “demo”. Siempre se puede saltar hacia otro espacio de trabajo utilizando el comando select del comando “workspaces”. Por ejemplo, para retornar al grupo de trabajo “default” escribir “workpaces select default”.

De regreso al espacio de trabajo “default”, nuevamente cualquier dato recuperado de ejecutar los módulos serán almacenados en la base de datos del espacio de trabajo por defecto.

Para borrar el espacio de trabajo de nombre “demo” se puede utilizar el comando “workspaces delete demo”.

Fuentes:

http://www.reydes.com/d/?q=Introduccion_a_Recon_ng
https://bitbucket.org/LaNMaSteR53/recon-ng
https://bitbucket.org/LaNMaSteR53/recon-ng/wiki/Usage%20Guide

Introducción a Recon-ng

Body

Recon-ng es una herramienta poderosa, la cual permite realizar recopilación de información y reconocimiento de la red automáticamente. Recon-ng automatiza muchos pasos realizados en el proceso inicial de una prueba de penetración. Se puede automáticamente incluir numerosos sitios web para obtener información pasiva sobre el objetivo de evaluación, o incluso probar activamente por datos al objetivo por si mismo. Recon-ng tiene numerosas funcionalidades, lo cual permite recolectar información de usuarios para ataques de ingeniería social, e información de la red para mapearla, y mucho más.

Se puede pensar en Recon-ng como un símil a Metasploit Framework para recopilar información. Cualquiera familiarizado con Metasploit Framework se sentirá cómodo con su interfaz. Básicamente se puede utilizar Recon-ng para recopilar información sobre un objetivo de evaluación, para luego atacarlo utilizando Metasploit Framework.

Se ejecuta Recon-ng desde la consola.

El comando “help” proporciona una lista de comandos.

Al escribir “show modules” se mostrará un listado de los módulos disponibles.

Los módulos son utilizados para realizar el proceso de reconocimiento. Se pueden visualizar varios tipos de módulos disponibles. Algunos de estos módulos son pasivos; pues nunca tocarán la red objetivo, mientras algunos directamente probarán y pueden incluso atacar los sistemas.

Estos módulos siguen una nomenclatura definida. Por ejemplo “recon/domains-hosts/google_site_web”. “Recon” indica es un módulo de reconocimiento. “domains-hosts” indica convierte datos desde “dominios” hacia “nombres de host”. Y “google_site_web” indica la utilización de Google para realizar la búsqueda. Ese módulo por lo tanto es un módulo de reconocimiento, el cual utiliza el sitio web de Google para convertir nombres de dominio en nombres de hosts individuales añadidos a un dominio.

Cuando se encuentra el módulo a utilizar se usa el comando “use”. El comando “show info” permite visualizar información sobre el módulo. “show options” permite visualizar las variables factibles de ser configuradas.

Para ajustar las variables se utiliza el comando “set”. Y finalmente para ejecutar el módulo se utiliza el comando “run”.

Anotación sobre la variable “SOURCE”. Para un único objetivo se deberá frecuentemente sólo ingresar la URL objetivo o una dirección de correo electrónico individual dentro del campo de la variable “SOURCE”. Pero también se podría ingresar un archivo conteniendo múltiples variables o utilizar una consulta de bases de datos como entrada.

Fuentes:

https://bitbucket.org/LaNMaSteR53/recon-ng
https://bitbucket.org/LaNMaSteR53/recon-ng/wiki/Usage%20Guide

Encontrar Paquetes en Wireshark

Body

La principal razón para capturar paquetes es analizar actividad de la red. Los paquetes capturados pueden ser analizados de manera muy efectiva utilizando Wireshark. Luego de haber capturado paquetes o con la captura en funcionamiento, es factible hacer clic en la opción “Edit -> Find Packets...” del menú principal de Wireshark, ubicado en la parte superior. Esta acción desplegará una nueva barra ubicada en la parte inferior de la barra correspondiente al filtro para la visualización de paquetes.

Al hacer clic en el texto “Display Filter” se presentará un menú desplegable, con cuatro opciones, “Display Filter” o Filtro de Visualización, “Hex value” o Valor Hexadecimal, “String” o Cadena, y “Regular Expression” o Expresión Regular.

La búsqueda “Display Filter” o Filtro de Visualización, permite ingresar una cadena para realizar una filtrado de visualización. Luego hacer clic en el botón de nombre “Find”.

La búsqueda por “Hex Value” o Valor Hexadecimal, permite buscar por una secuencia específica de bytes en el paquete de datos.

La búsqueda por “String” o Cadena, permite encontrar una cadena en un paquete de datos con varias opciones. El valor a ser encontrado será verificado por su sintaxis mientras es tipeado.

La búsqueda por “Regular Expression” o Expresión Regular, permite buscar utilizando expresiones regulares a nivel de lista, detalles y bytes de paquetes.

Fuentes:

https://www.wireshark.org
https://www.wireshark.org/docs/wsug_html_chunked/ChWorkFindPacketSectio…

Entendiendo el Esquema de Colores en Wireshark

Body

Un mecanismo muy útil disponible en Wireshark es la posibilidad de proporcionarle color a los paquetes. Se puede configurar Wireshark para darle color a los paquetes de acuerdo al filtro de presentación. Esto permite dar énfasis a los paquetes más relevantes.

Al utilizar Wireshark se percibe el esquema de colores utilizado para distinguir entre diferentes protocolos. De hecho este esquema de colores es utilizado en el caso de paquetes dañados, errores en sumas de verificación, y otros errores comunes en paquetes los cuales pueden suscitarse en una red.

Para tener un mirada más cercana al esquema de colores, se debe hacer clic en la opción “View -> Coloring Rules”, desde el menú principal.

Se puede notar diferentes patrones de color por defecto utilizado para representar protocolos, errores, fallas, y similares. El esquema por defecto también puede ser cambiado por el usuario, haciendo doble clic en el campo respectivo.

Esto proporciona flexibilidad para cambiar los diferentes esquemas de color; como el color de fondo, el color de primer plano, el nombre representando al protocolo, y la cadena patrón.

Se pueden encontrar algunos ejemplos para reglas de color en el Wiki de Wireshark, cuya página puede ser encontrada en la parte final del presente escrito.

Fuentes:

https://www.wireshark.org/
https://www.wireshark.org/docs/wsug_html_chunked/ChCustColorizationSect…
https://wiki.wireshark.org/ColoringRules

Capturar Datos en Vivo utilizando Wireshark

Body

Para iniciar la captura de paquetes en vivo utilizando Wireshark se necesitan tener los privilegios de un usuario administrador en un sistema Windows, los privilegios del usuario root en un sistema Linux, o algún esquema implementado para permitir una ejecución privilegiada de Wireshark. Para iniciar la captura de paquetes se puede seguir el siguiente procedimiento.

Ejecutar Wireshark. Aplicar los filtros para captura requeridos, y seleccionar la interfaz de red para iniciar la captura del tráfico.

Una vez se haya seleccionado la interfaz, se notará como el panel de captura empieza a poblarse con los paquetes capturados.

Se puede detener la captura en vivo en cualquier momento haciendo clic en el ícono del menú “Stop” o Detener.

Una nueva captura en vivo puede ser iniciada haciendo clic en la opción “Restart live capture” o Reiniciar captura en vivo. Esto borrará los datos capturados.

Fuentes:

https://www.wireshark.org
https://www.wireshark.org/docs/wsug_html_chunked/ChCapCapturingSection…