Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Episodio de Pentesting
Episodio de Pentesting
ndice
1.
2.
3.
4.
5.
6.
7.
8.
9.
2. Conceptos necesarios
Para la compresin de este proyecto necesitaremos tener algunas definiciones y conceptos claros,
as que voy a dar una breve explicacin de todos los trminos que considero necesarios para
entender el desarrollo del mismo.
Backtrack 5 R3
Distribucin de Linux basada en Ubuntu destinada a la seguridad. En su ltima versin incorpora las
versiones actualizadas de muchas de las utilidades de Linux ms usadas en el mbito de la
seguridad informtica. Abarca desde programas destinados al pentesting, como Metasploit
Framework o SET, pasando por herramientas de ingeniera inversa, como IDA Pro, de anlisis de
redes, como Nmap o AirCrack, o de anlisis forense, como Galleta. La distribucin se basa ms
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 distribucin ms utilizada. Como dato
adicional, en todo el desarrollo del episodio os llamar la atencin la ausencia de sudo en los
comandos, pero la razn 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 informtico que trabaje con test de penetracin.
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 increble. Adems, existe una interfaz grfica 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 inyeccin de datos en
una conexin establecida y permite el filtrado al vuelo aun manteniendo la conexin sincronizada
gracias a la caracterstica de realizar ataques MiTM (Man in the middle). Justamente esta ltima
caracterstica es la que a nosotros nos interesa para nuestra simulacin de escenario. Lo
explicaremos de forma ms extensa en el apartado de Envenenamiento de DNS
VB Bridged Network Mode
VirtualBox dispone de varios modos de configuracin de la tarjeta de red virtualizada de las guest.
Los ms usados suelen ser el modo NAT, que crea un puente de conexin 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 tambin 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 actualizacin de diversos componentes dentro
de la VM, he configurado la red como Bridged Network (Red Puenteada) que aade ambas VM a la
red local y les asigna, como es evidente, direcciones del tipo 192.168.X.X. Ello nos permitir tener
ambas mquinas virtuales conectadas, tanto la atacante como la atacada, y adems tener en ambas
conexin 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 penetracin habituales compenetrando varias herramientas de la
distribucin, como pueden ser Metasploit, NMap, Apache Server, etc implementando en una
misma aplicacin la automatizacin de los ataques. Le echaremos un vistazo en el apartado de
anexos.
PAYLOAD
Es un trmino que se refiere al cdigo o herramienta que tras la infeccin de una vctima, permite
realizar todo tipo de efectos secundarios. Es decir, la parte del troyano que se encarga de los
cambios de configuracin, y ejecucin de cualquier orden no legtima.
EXPLOIT
Es un software, o secuencia de comandos que se crea con el fin de causar un error o un fallo en
alguna aplicacin, a fin de causar un comportamiento no deseado o imprevisto en un sistema o
componente. Habitualmente supone la ejecucin remota de cdigo, la escalada de privilegios o
incluso un ataque DOS.
una VM distinta.
(Proceso de instalacin de las dos VM)
Evidentemente, podemos usar versiones diferentes de ambos SO, pero en este caso he escogido las
versiones ms actualizadas de ambos. A continuacin voy a mostrar la configuracin 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 ms carga, deberan estar un servidor
Apache, MSF y Ettercap. El sistema est actualizado con la siguiente lista de rdenes:
apt-get update && apt-get upgrade
msfupdate
Adems, tiene actualizado SET a la ltima versin desde su propio men de opciones.
La mquina 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
tambin como Bridged Network, por lo que tiene otra IP perteneciente a la red local del host.
Adems est instalado Google Chrome por si necesito hacer alguna bsqueda durante el desarrollo
del proyecto, y de paso para demostrar que independientemente del navegador instalado, el
4. Escaneo a la vctima
Lo primero que necesitamos para poder hacer uso de nuestro supuesto exploit, y tras instalar las
herramientas necesarias en nuestra mquina, es seleccionar una o varias vctimas en las que tratar
de hacer efectivo el ataque. Para ello, y con el fin de escanear las posibles vulnerabilidades que
expongan a las vctimas ante nuestro ataque, necesitamos informacin sobre las direcciones a las
que vamos a atacar. Para ello, lo primero es ejecutar un anlisis de puertos. Y a estas alturas estaris
pensando en Nmap, la cual evidentemente podemos utilizar. As que sera bastante fcil ponernos
manos a la obra y ejecutar un escaneo generalizado con Nmap, del cual pondr un ejemplo
simplemente por lo que explicar a continuacin.
Escaneo va Nmap
Ejecutamos en terminal la siguiente orden:
nmap A 192.168.1.26
Escanear una red mediante Nmap es una forma totalmente vlida para lo que necesitamos en este
proceso, incluso podramos 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
mdulos 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 ms habituales son el TCP y el SYN, pero
como de momento solo necesito averiguar cul es la versin del SO, me vale cualquiera.
10
5. Eleccin 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
mquina remota. En este caso, uno de los puntos ms importantes, es que la eleccin del exploit
debe realizarse pensando en el sistema operativo de la vctima, y en los servicios que operan por
defecto en los puertos que hayamos detectado abiertos. Por tanto, podramos elegir
vulnerabilidades de diferentes clases.
Para Windows XP destacar el exploit ms08_067_netapi que ha sido uno de los ms utilizados
durante la vida de XP, ya que permite su ejecucin sin intervencin alguna del usuario remoto, por
lo que evita la ingeniera social. El exploit aprovecha las vulnerabilidades CVE-2006-4446 y CVE2006-4777 y permite la apertura incluso de una sesin 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 ms 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 ejecucin de una sesin de
meterpreter, cuyas virtudes estudiaremos ms 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 pgina web que haya
creada, lo cual es bastante interesante y aumenta con creces la maniobrabilidad de la ingeniera
social. Una vez hemos aceptado su ejecucin, el payload entrar en la VM vctima y se ejecutar,
creando una conexin reverse-tcp que se comunicar directamente con metasploit.
11
12
Una vez configurado completamente el exploit con las opciones que necesitemos escribimos en la
consola de MSF exploit y automticamente MSF montar el servidor web con el contenido
infectado. De forma predeterminada, MSF monta la inyeccin del exploit en una URL aleatoria del
tipo http://127.0.0.1/XXXXXXX pero si queremos especificar un nombre en la direccin tendremos
que configurar URIPATH en la configuracin del exploit.
Ahora solo deberemos hacer que la vctima entre en el enlace y permita la instalacin del
complemento de Java. Para ello podramos hacer uso de ingeniera inversa, a travs de un mail o de
cualquier otro servicio, pero puesto que suponemos que la vctima est en la misma red local,
vamos a usar DNS Poisoning, lo que explicaremos a continuacin.
13
7. Envenenamiento DNS
A grandes rasgos un envenenamiento DNS, ms conocido por su traduccin en ingls 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 ms detallada.
Primero introduciremos un nuevo concepto que no se defini en el tutorial porque consider que
era ms conveniente verlo justo en el momento de su necesidad. As que a continuacin se
explicar que es el Protocolo ARP (Adress Resolution Protocol) y el envenenamiento de su cache.
Bsicamente es un protocolo responsable de encontrar la direccin MAC correspondiente a una
determinada IP. Imaginemos ordenador A y ordenador B.
ARP Request: El ordenador A pregunta en la red a quin pertenece una determinada IP, pongamos
192.168.1.1.
ARP Reply: Todos los dems ordenadores de la red ignorarn la peticin a excepcin del que tenga
esa direccin IP. Este ordenador contestar con un paquete que contendr la IP requerida y su
direccin MAC.
El protocolo fue diseado para ser simple y eficiente pero su mayor defecto es la ausencia de
autenticacin. Como resultado, no hay manera de autenticar la IP con la direccin MAC contenida
en el ARP Reply. Adems, el host ni siquiera comprueba si fue enviada la respuesta ARP desde la
misma IP que se solicit en la peticin.
Esto quiere decir que si un ordenador A, enva una peticin y recibe una respuesta ARP, el protocolo
no puede comprobar si la IP corresponde con su MAC. Incluso si un host no envi una peticin ARP
pero si recibe una respuesta ARP, confa en la informacin de respuesta y actualiza su cache ARP.
Por tanto, como podemos observar parece fcil explotar el dbil 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 tcnica Man in the Middle, que nos permitir hacer
sniff a todo el trfico 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 mquina C, o sea, la que realizar el ataque, enva 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 conexin entre A y B, y tenemos un ataque Man in the Middle en
toda regla.
Toda esta teora es imprescindible, pero creo que es hora de pasar a la prctica.
14
Os presento a Ettercap, que nos permitir poner en prctica este ataque. En esta ocasin vamos a
utilizar la interfaz grfica por su comodidad, ya que es un rollazo aprenderse la ingente cantidad de
comandos que tiene la CLI, y no es cmodo 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 continuacin hacemos click en Sniff -> Unified Sniffing y se nos abrir una ventana de seleccin
en la que podremos escoger cualquiera de las interfaces disponibles. Como estoy trabajando en VB,
elijo eth0.
15
Aqu aadimos las lneas que queramos para redireccionar cualquier direccin a nuestra IP. Yo he
puesto la direccin de la UJA aadiendo 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. Ingeniera social
Durante el desarrollo del proyecto me estuve planteando la posibilidad de omitir este apartado. Sin
embargo despus de no pocas reflexiones, creo que a nivel de poner en prctica este episodio en el
mundo real, esta es la parte ms importante. Se debe hacer caer a la vctima en la trampa, y una de
las maneras ms 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 tardaramos en descargar el rbol de direcciones bastante rato. Al final, decid
inyectarlo en un sitio ms creble, ya que a da de hoy es improbable que Google inserte un applet
de Java en su buscador y me decid por inyectarlo justo en el enlace de autenticacin de
dv.ujaen.es, cambiando el link en el cdigo fuente hacia mi IP.
Me pongo manos a la obra, y aunque podra descargarme el cdigo directamente con wget o con
un right click en la misma web, o incluso copiando directamente el cdigo 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
18
Una vez copiada la web en la carpeta que hayamos definido por defecto (recomiendo que no sea
directamente el servidor por si hay algn fallo) comprobamos que est bien en el navegador, y la
copiamos directamente a la carpeta del servidor apache, ya sea nicamente el index o tambin
archivos y carpetas asociados.
cp dv.ujaen.es/* /var/www
(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 accin
Exploit inyectado en la web esperamos pacientemente que nuestra ingeniera social haga acto de
presencia ante la vctima y esta ejecute el complemento de Java. Una vez ejecutado, el applet se
encargar de realizar automticamente una conexin inversa hacia nuestro servidor por el puerto
que hayamos especificado en LPORT y abrir una sesin de Meterpreter para dejarnos en
ordenador atacado a nuestra disposicin.
Metasploit por defecto no nos redirige a la sesin 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 conexin inversa. Para seleccionar una simplemente tenemos que escribir:
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 darn cuenta de por qu he elegido este payload y no uno de
Shell normal. Meterpreter tiene muchsimas 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, podra explicar uno por uno que hace cada
comando, pero puesto que viene una descripcin del mismo en ingls creo que no tiene sentido y
es mucho ms divertido si lo investigas t mismo.
20
21
Anexos
Como informacin complementaria al proyecto, pero relativa al mismo, voy a presentaros dos
herramientas que os facilitarn el trabajo del da a da. Armitage y SET.
Armitage
Esta herramienta bsicamente se encarga de proveer de interfaz grfica a MSF, pero sin dejar de
lado una lnea de comandos. Armitage tiene una barra superior que automatiza el escaneo de
redes, la bsqueda de ataques disponibles para las distintas posibles vctimas dependiendo de la
informacin que consiga en los escaneos pertinentes. Adems, te permite elegir los ataques y te
ofrece una configuracin predeterminada para el mismo dependiendo del sistema operativo de la
vctima. Su parte inferior, es una consola en la que se van abriendo pestaas para lanzar los
diferentes procesos durante el ataque. En cierto modo, como toda interfaz grfica, reduce
considerablemente las posibilidades del programa comparado con su interfaz CLI, pero ya que la
propia interfaz dispone de una lnea de comandos, podemos suplir las carencias de la interfaz desde
ah. La interfaz se lanza directamente desde el men de backtrack.
22
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 ingeniera social, desde ataques vectoriales, hasta ataques como los de pass
harvesting o tabnabbing (El primero es captura de contraseas envenenando una peticin GET o
POST en nuestro servidor, y el segundo hace lo mismo pero carga el servidor malicioso al cambiar
de pestaa en el navegador de la vctima). 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. Tambin viene incluido en la distribucin de Backtrack.
Os dejo algunas imgenes.
24
25