Mostrando entradas con la etiqueta Pentesting. Mostrar todas las entradas
Mostrando entradas con la etiqueta Pentesting. Mostrar todas las entradas

sábado, 4 de enero de 2014

Hombre en el medio MITM (La práctica )

Retomando un post del año pasado sobre una técnica conocida como hombre en el medio, en la primer parte hablamos sobre la teoría y como funciona el envenenamiento ARP, en este caso vamos hacer un ejemplo sencillo pero que cumple con la teoría.
Figura 1. Escenario para un envenenamiento ARP
Una vez identificado el escenario procedemos a ejecutar la técnica, en este caso lo que necesitamos son las direcciones MAC, utilizando un script en Kali linux identificamos a los clientes de una red.

Figura 2. Identificando clientes de una red

Modificamos el estado de nuestra tarjeta de red a un modo promiscuo, solo escribiendo el valor en 1 en el archivo ip_forward estamos ordenando que la tarjeta cambie su modo a promiscuo , gracias Linux por ser tan sencillo! ;)
Figura 3. Tarjeta en modo promiscuo 

Ya con la tarjeta en modo promiscuo e identificado nuestro objetivo atacamos su tabla de arp, para engañar a nuestro objetivo.
Figura 4. Tabla ARP del objetivo envenenada.

Para demostrar la prueba de concepto en este caso vamos a utilizar un equipo con "windows" y lo haremos en un protocolo en el cual la información baja en texto plano el Sr. FTP, y lo vamos hacer al puro estilo Matrix (jajaja). un agradecimiento al ronald! que me presto su equipo.

Figura 5. Generando un sesión FTP 

Generamos una sesión a un servidor de ftp, en este caso con la ayuda de wireshark vamos a interferir la comunicación licita para obtener las credenciales de usuario y contraseña de nuestro objetivo.


Si bien esto ya es muy viejo y existen formas para contrarrestar estas técnicas, muchas empresas son vulnerables a este tipo de ataques.Utilizar protocolos que cifran la información como el caso de HTTPS no es la solución al problema, ya que existen herramientas como SSLstrip que permiten interceptar la  información antes de ser cifrada.

Es recomendable utilizar soluciones a nivel de equipos de telecomunicación con algún dispositivo Cisco.






domingo, 1 de septiembre de 2013

Escribiendo un Exploit ( Buffer Overflow) I

Existen muchos artículos en Internet "de todos los colores y sabores del arcoiris" que explican como funciona el "buffer overlflow" , voy a tratar de explicarlo como me hubiera gustado que me lo expliquen xD.

Antes de entrar a sobre-escribir las direcciones de memoria y buscar un jmp , tenemos que conocer la teoría para llevarlo a la practica.

Comencemos por lo básico que son los registros del procesador, si necesitas saber sobre sistemas de numeración como ser binario , decimal o hexadecimal te sugiero el siguiente enlace.

La forma en que se representa la memoria depende únicamente de la arquitectura del procesador dicho esto existen 2 formas de hacerlo
  • Big Endian: El byte más significativo se representa a la izquierda.De izquierda a derecha).
  • Little Endian: El byte mas significativo se representa a la derecha. Análogamente, de derecha a izquierda
Representación de la dirección de memoria 01234567

EAX , EBX , ECX , ESI , EDI : Son registros multipropositos para usarlo segun el programa.

EAX: Es el registro acumulador cualquier instruccion de retorno la almacena el valor en EAX.

EBX: Este registro es utilizado como manejador o "handler" de ficheros de direcciones de memoria.

ECX: Se utiliza como registro contador , por ejemplo para aplicar un ciclo o loop , cuando ECX llega a 0 el ciclo acaba
ESI & EDI: Son registros que son utilizados para guardar direcciones de memoria.
EIP: Es el registro donde se almacena la dirección de la siguiente instrucción que debe ejecutar el ordenador.

EBP: Es el registro "puntero a base", apunta al elemento mas alto de la pila ; la pila es una estructurara de datos que utiliza el procesador para ayudarse en la ejecución de los programas.

ESP:  Es el registro que apunta a la "cima" , apunta a la direccion de memoria (donde comienza la pila).

NOP: Instrucción en ensamblador que significa "No Operation" , lo único que hace e aumentar en uno el registro de la siguiente instrucción "EIP".

Cabe aclarar que el modo de acceso a la "pila" es LIFO , "last in ;first out" el ultimo en entrar el primero en salir.


¿Que es el desbordamiento de memoria?

Sencillamente se puede definir como un error en nuestro código que no controla correctamente la cantidad de datos que se copian sobre una area de memoria reservada (Buffer).

Si tenemos asignados en un array (independiente del lenguaje de programación) 30 espacios y nosotros "introducimos" 40 espacios en , estamos causando un desbordamiento de memoria por que los asignados son 30 y no 40.

El siguiente código (escrito en C) es vulnerable


#include  
int main (int argc, char **argv)

    char buffer[64];
    if (argc < 2){ 
        printf ("Introduzca un argumento al programa\n");  
        return 0;  acaba
        }
    strcpy (buffer, argv[1])
    return 0; 
}

La funcion principal recibe argumentos como parametro ,reservamos un buffer de 64 espacios continuos en memoria de tipo "char" creando nuestro buffer.

char *strcpy(char *cadena1, const char *cadena2);

La funcion strcpy copia la cadena2 (incluyendo el caracter nulo "\0" en la cadena1) , el gran problema es que no verifica que la cadena2 sea del mismo "tamaño" o menor a la del buffer sobre-escribiendo las direcciones de memoria contiguas generando el desbordamiento.

Creo que para ser la introducción por el momento estamos bien!  , en el proximo post, queda totalmente prohibido la teoria y directo a la practica!

Slds

sábado, 31 de agosto de 2013

Ingeniera Social con SET

Social Engineer Tool Kit , es un script que nos proporciona una infinidad de herramientas de ingeniería social , este conjunto de herramientas se integran perfectamente a Metasploit .

Podemos seleccionar el tipo de vector de ataque que mas nos guste ;) en mi caso selecciono el vector Web

Menu principal de nuestro SET
seleccionamos la opción numero 1 y luego el vector de ataque web 


Este vector de ataque nos permite utilizar  plantillas web o clonar  :3 , para verificar el poder de la herramienta decidimos clonar 


Como se puede observar en la imagen especificamos la ip la cual nos va a permitir robar las credenciales y el dominio que deseamos clonar , como esto es una prueba de concepto  y no un ataque real , no se explicara como envenenar un dns o suplantar un dns eso se los dejo a uds ;) 


accedemos por un navegador a nuestra ip 192.168.0.17 y este es el resultado.


Clonación perfecta! , ingresamos nuestros datos y hacemos un submit y del lado del atacante aparece la siguiente información en SET.


Datos interesantes , si ya tenemos iniciada una sesión de gmail , el ataque redirecciona la ip falsa a la verdadera bandeja de entrada, y lo mas importante las preciadas Credenciales.

Slds

Ingeniera Social un enfoque teórico , hackeando el cerebro humano

La ingeniera social es el medio o el canal por el cual un intruso puede manipular a los usuarios para conseguir acceso "licito"  a la información , robar credenciales o escalar privilegios en un sistema comprometido.

Libro The Art of Human Hacking - SET
 La ingeniera social considera al eslabón mas débil de un sistema al usuario , es por eso que hoy en día existen infinidad de técnicas para engañar al usuario o realizar ataques del lado del cliente (el usuario) , un atacante podría aprovecharse de las emociones de los usuarios para llamar su atención y hacer que el usuario ejecute "algo" en el equipo y lograr acceder a su objetivo.

Planteemos el siguiente escenario , Supongamos que nuestro objetivo es llegar a acceder al equipo del gerente general; bueno necesitamos recabar la mayor información posible , hoy en día resulta fácil gracias a las redes sociales como :facebook , twitter y Linkedin (solo por dar un ejemplo) sin olvidar a los motores de búsquedas.

En la fase de "information Gathering" nos damos cuenta que a nuestro usuario pertenece a un grupo contra el maltrato de animales en Facebook, lo siguiente seria preparar un archivo "malicioso" y enviar por correo a nuestra victima con algún titulo como, "Felicidades Ud ha sido seleccionado para ser parte de la organización mas grande en contra del maltrato animal", en este escenario estamos hackeando una emocion "el interes"

Considero que en las empresas se debería capacitar al usuario y generar conciencia de lo que están expuesto con el sólo hecho de estar conectados a Internet.

De nada sirve invertir en Firewalls, IDS y cual otra tecnología que ayude a asegurar el perímetro, si nuestros usuarios desconocen el riesgo de estar expuestos a internet

Para terminar les recomiendo una interesante película llamada 9 Reinas

 

viernes, 30 de agosto de 2013

Robando Credenciales con incógnito (Procesos en Memoria)


Continuando con meterpreter , existe una "utilidad" llamada incógnito originalmente independiente que se integro a metasploit y luego en meterpreter, esta herramienta permita robar los "tokens" en un sistema comprometido haciendo analogía a las Cookies de la web.

Es decir si un usuario ejecuta un proceso y nosotros lo listamos con ps de meterpreter , verificamos los procesos creados ( y que usuario los creo el mismo) incógnito permite robar las credenciales del proceso en memoria y obtener la "identidad", en otras palabras suplantar sus roles y permisos del sistema comprometido.

Siguiendo el post de Metasploit & Meterpreter , una vez comprometido el sistema podríamos robar las credenciales , ¿ para que corno robar las credenciales? , bueno depende de nuestra imaginacion.

Supongamos que necesitamos crear usuarios un Controlador de dominio y sabes a priori tenemos identificado el dominio , en nuestro caso se llama pps-labs

Listando los procesos con el comando ps de meterpreter
 Antes de robar la nueva "identidad" verificamos la nuestra, en este caso el servidor comprometido es un windows 2003 server y estamos como administrador
Window server 2003 Comprometido

Usuario antes de robar la credencial con incógnito

En el listado encontramos a un usuario\dominio llamado Chuck\pps-labs para robar la credencial necesitamos conocer el PID (identificador de proceso) 1540, procedemos a robar la credencial.

Robando la credencial con incógnito "steal_token PID"
Imaginemos el siguiente escenario , supongamos el usuario Chuck es el dueño y señor del controlador de dominio(Windows 2008), una vez suplantada su identidad podríamos crear usuarios , eliminar o modificar los grupos y permisos del usuario que necesitemos.

En mi caso creare un usuario y lo agregar al grupo de administradores del Servidor Windows 2008 R1 desde una shell remota de un Windows 2003 Server.
Agregando un usuario NET USER
Una vez agregado el usuario con la identidad (Chuck el administrador de dominio del windows 2008 server ) , procedemos a agregar al grupo de administradores

Agregando nuestro usuario creado al grupo de "Administradores"

Con eso acabamos de crear un usuario del el dominio pps-labs  en el windows 2008 R1 sin acceder al mismo.

ipconfig windows 2008 server

Considero que incógnito es una utilidad que todo pentester debería conocer y utilizar.

Saludos!

Related Posts Plugin for WordPress, Blogger...