Está en la página 1de 12

Artículo publicado en la revista @RROBA # 94

Suplemento “Hack Paso a Paso” #25 – Septiembre 2005


(Material Sin Editar)

Hack built-in: Metasploit Framework


Como todos los años, y tal como se acostumbra desde hace más de una década, Las
Vegas se convierte por tres días, en el sitio a donde “todos deseamos ir” .... mmm ...
bien... para ser mas justos... digamos que al menos “todos” los fanáticos del la
tecnología, el underground, la seguridad informática... y por que no de la diversión...

Es que, DEFCON (Tal es su nombre) se ha convertido en uno de los eventos mas


importantes a nivel mundial, cuando de Tecnología, Hacking, Seguridad y ambiente
“Underground” se trata. Por el lapso de tres días, cientos de personas se congregan en
algún bello hotel de Nevada, para asistir a una brillante serie de conferencias brindadas
por algunos de los speakers mas codiciados de la escena.

El contenido de sus charlas, es casi tan famoso como las divertidas fiestas que suelen
ser organizadas en torno a las mismas. Es que como una gran vidriera, DEFCON nos
permite conocer algunas de las técnicas y tecnologías más innovadoras, permitiendo a la
vez, que la comunidad de entusiastas se reúna y comparta sus experiencias en el marco
de un evento multiétnico, de características únicas.

Pero seguramente a este punto te estarás preguntando ¿cuál es la relación entre


DEFCON y Metasploit Framework?, bien... en principio ninguna, a excepción claro, del
hecho de que en su última edición (DEFCON 12 al momento de escribir este artículo),
dos de sus desarrolladores, “HD Moore” y “spoonm”, presentaron en sociedad lo que
aproximadamente un mes mas tarde se publicaría en el sitio oficial del proyecto: la
versión 2.2 de Metasploit Framework.

Que es Metasploit Framework?

Tal como se menciona en su sitio en Internet, Metasploit Framework, es una avanzada


plataforma “Open Source”, diseñada específicamente con el objetivo de potenciar y
agilizar, el desarrollo, testeo y utilización de exploits.

El proyecto relacionado con este framework, que según sus progenitores naciera como
un juego, ha mostrado un crecimiento espectacular especialmente en el ultimo tiempo
(En mi modesta opinión... específicamente a partir de su versión 2.2!!!), aspecto que le
ha permitido ganarse un lugar privilegiado, dentro del kit de herramientas de todo aquel
profesional relacionado de uno u otro modo con las tecnologías de seguridad de la
información.

Escrito mayoritariamente en “Perl” (Su único defecto... de acuerdo a la opinión de los


cada vez mas amantes de “Pyhton”...) y con varios componentes mayoritariamente
desarrollados en “C” y “Assembler”, su portabilidad se encuentra asegurada, aspecto
que contribuye en gran parte a su aceptación masiva, pues cualquiera sea tu elección en
cuanto a la plataforma a utilizar (Like-Unix, BSD, MacOS X, Windows, etc.), tendrás la

Copyright © 2005 Hernán Marcelo Racciatti 1


http://www.hernanracciatti.com.ar
Artículo publicado en la revista @RROBA # 94
Suplemento “Hack Paso a Paso” #25 – Septiembre 2005
(Material Sin Editar)

posibilidad de instalarlo y disfrutar de toda su potencia en tan solo algunos minutos y


sin mayores dificultades.

Un aspecto interesante respecto del licenciamiento de la nueva versión de Metasploit


Framewok (v 2.3), es el hecho de que el mismo se encuentra basado tanto en GPL v2
como en “Perl Artistic Licenses”, permitiendo su utilización tanto en proyectos Open
Source como en proyectos comerciales.

Una excelente alternativa

Desde la consolidación de Metasploit Framework, la comparación con productos


comerciales de similares características es inevitable. Proyectos tales como CANVAS
de Immunity Sec o CORE IMPACT de Core Security Technology, cuentan con una
gran clientela que va desde grandes clientes corporativos, quienes hacen uso de estos
productos a la hora de realizar sus propios test de penetración, hasta cientos de
consultoras de seguridad independiente que lo utilizan como herramienta al momento de
vender este servicio a terceros.

Sin dudas, la principal diferencia entre Metasploit Framework y este tipo de productos
es el “foco”. Mientras que los productos comerciales necesitan proveer constantemente
a sus clientes los últimos exploits acompañados de interfaces gráficas cuidadas e
intuitivas, el Framework de Metasploit se encuentra orientado a facilitar la investigación
y experimentación con las nuevas tecnologías.

Este punto entre otros, hace que exista mercado para todos. Investigadores, estudiantes,
curiosos e independientes, pueden obtener sin costo Metasploit, modificarlo,
customizarlo, utilizarlo para su trabajo y ver como funciona internamente para aprender
mas, mientras que por su parte, las grandes empresas que requieran de una excelente
solución corporativa y puedan afrontar el costo, sin dudas se privilegiaran de la calidad
de los productos previamente mencionados.

Para empezar: Instalando Metasploit Framework

Bien, ya conoces un poco mas de Metasploit Framework, para conocer el resto, deberás
instalarlo y hacer tu propia experiencia. Entonces que esperas! manos a la obra!!

En primer lugar, y puesto que como comentáramos en los párrafos anteriores,


Metasploit Framework puede ser instalado tanto en Unix/Linux como en Windows,
deberemos decidir la plataforma a utilizar.

Aquellos que se sientan cómodos con Windows, se alegraran al saber que la instalación
de Metasploit no tiene mayores secretos. Para esta ultima versión, la gente de metasploit
nos sorprende con un bonito wizard, el cual nos guiará a través de la implementación de
un entorno Cygwin customizado, seguido de la instalación y configuración del propio

Copyright © 2005 Hernán Marcelo Racciatti 2


http://www.hernanracciatti.com.ar
Artículo publicado en la revista @RROBA # 94
Suplemento “Hack Paso a Paso” #25 – Septiembre 2005
(Material Sin Editar)

framework. De esta forma, la sola descarga y ejecución de un único archivo de nombre


“framework-2.3.exe”, nos permitirá en tan solo unos instantes, acceder a la consola de
Metasploit y disfrutar de toda su potencia.

Si por el contrario, tu desición pasa por Unix/Linux, podrás descargar la última versión
para esta plataforma, comprimida, empaquetada y de nombre “framework-2.3.tar.gz”.
Hecho esto solo deberás extraer el contenido del tarball, cambiar de directorio y ejecutar
la interfaz de Metasploit con la que te sientas más a gusto.

Si bien es cierto, que con lo hecho hasta aquí bastará para que te familiarices con el
producto, si tu intención es obtener el máximo provecho del mismo, probablemente
quieras asegurarte que tienes instalado el modulo Perl de nombre “Net::SSLeay” y en
caso de que esto no sea así, proceder a su instalación aprovechando que el mismo se
suministra con Metasploit, entre los archivos dispuestos en el subdirectorio “Extras” de
tu path de instalación.

Aunque los pasos mencionados en los párrafos anteriores, funcionarán en la mayoría de


los casos, será bueno que conozcas que según la distribución de Linux que estés
utilizando, probablemente cuentes con alguna facilidad adicional a la hora de instalar
Metasploit Framework por medio de tu administrador de paquetes preferidos. Gentoo
por ejemplo, nos brinda la posibilidad de aprovechar las bondades de “Portage”, un
administrador de paquetes sumamente eficiente y plagado de funcionalidad.

Gentoo y Metasploit Framework

Para quienes no la conozcan, diremos que Gentoo es una meta-distribución de Linux,


con algunas particularidades que la hacen sumamente eficiente al momento de exprimir
al máximo el hardware de tu equipo. Este objetivo se logra en gran parte, por medio de
la compilación bajo parámetros de optimización previamente configurados por ti mismo
respecto de la plataforma en la que los componentes de Gentoo (Desde el Kernel de
Linux hasta cada una de las aplicaciones que pretendas correr) serán instalados.

El corazón de esta distribución se encuentra íntimamente relacionado con “Portage” su


administrador de paquetes predeterminado. En la práctica, la “interfaz” por llamarla de
algún modo, que se utiliza para interactuar con “Portage” se denomina “emerge”, una
herramienta a partir de la cual es posible llevar a cabo todas y cada una de las acciones
necesarias a la hora de instalar o desinstalar un paquete en nuestro sistema.

Si bien es cierto que la utilización de “emerge” y el entendimiento de “Portage” se


encuentra fuera del alcance de este articulo, a continuación detallaremos los pasos
necesarios a la hora de llevar a cabo una instalación exitosa de Metasploit Framework
en nuestro entorno Gentoo.

Copyright © 2005 Hernán Marcelo Racciatti 3


http://www.hernanracciatti.com.ar
Artículo publicado en la revista @RROBA # 94
Suplemento “Hack Paso a Paso” #25 – Septiembre 2005
(Material Sin Editar)

1. En primer lugar, actualizaremos nuestro árbol Portage, a fin de que el mismo


contenga el catalogo de aplicaciones actualizado:

fiona root # emerge –sync

2. Ahora que contamos con nuestro arbol Portage actualizado, veamos si existe un
paquete para Metasploit y en caso de que tenga dependencias, cuales son estas. Para
conocer esta y otra información volveremos a utilizar emerge, esta vez con el
modificador “-p” (La opción corta de “–pretend”), seguido del que suponemos
probablemente sea el nombre del paquete Metasploit Framework:

fiona root # emerge –p metasploit

These are the packages that I would merge, in order:

Calculating dependencies
!!! All ebuilds that could satisfy “metasploit” have been masked.
!!! One of the following masked packages is required to complete your request:
- net-analyzer/metasploit-2.3-r1 (masked by: ~x86 keyword)
- net-analyzer/metasploit-2.3 (masked by: ~x86 keyword)

For more information, see MASKED PACKAGES section in the emerge man page or
section 2.2 “Software Availability” in the Gentoo Handbook.

Ok, como resultado de nuestro último comando, ahora sabemos que:

- Existen dos paquetes que podemos instalar respecto de metasploit.


- Ambos paquetes se encuentran “enmascarados”, lo cual significa que por algún
motivo (Ver próximo punto), los mismos se encuentran “bolqueados” a fin de
evitar que los mismos sean descargados en forma automática.
- El caracter “~” que forma parte de la “keyword”, significa que la aplicación que
estamos queriendo instalar, no se encuentra probada lo suficiente para ser
considerada parte de la rama “estable”, sugiriendo que deberíamos esperar
algunos días y volver a intentar.

Puesto que en nuestro caso, tomaremos el riesgo (Lo cierto que esta versión funciona a
la perfección!) deberemos “desenmascarar” el paquete a instalar. Esta acción, solo
requerirá la edición de un archivo de configuración de Portage, de nombre
“package.keywords” que por lo general suele ubicarse en “/etc/portage”. A tal efecto el
comando a ejecutar debería tener el siguiente aspecto:

fiona root # “=net-analyzer/metasploit-2.3-r1” >> /etc/portage/package.keywords

Copyright © 2005 Hernán Marcelo Racciatti 4


http://www.hernanracciatti.com.ar
Artículo publicado en la revista @RROBA # 94
Suplemento “Hack Paso a Paso” #25 – Septiembre 2005
(Material Sin Editar)

3. Bien!! Habiendo desenmascarado el paquete seleccionado, finalmente deberemos


ejecutar nuevamente emerge a fin de hacer efectiva la instalación. El comando a
ejecutar será en este caso:

fiona root # emerge metasploit

Esta sencilla instrucción hará que se descargue el paquete y sus dependencias, se


compile y finalmente se instale la aplicación en nuestro box!! Felicitaciones, Metasploit
Framework debería estar a este punto, corriendo en tu Linux Gentoo!!

Poniendonos al día

Metasploit Framework, incluye como parte de su distribución, una serie de exploits


listos para utilizar. A pesar de ello, existe una comunidad sumamente activa en torno a
este producto, que periódicamente libera nuevos exploits, algunos de los cuales pueden
ser adicionados fácilmente a nuestro Framework, por medio de una utilidad denominada
“msfupdate”, que a partir de la versión 2.2 es incluida como parte de la instalación
estándar de Metasploit.

A fin de actualizar en forma on-line nuestro framework, ejecutaremos desde nuestra


consola, la mencionada utilidad:

fiona root # msfupdate -u

Luego de ejecutada, “msfupdate” nos mostrará información acerca de las ultimas


novedades y pedirá nuestra confirmación a fin de hacer efectivo el update. Terminado el
proceso, nuestro framework contará con los últimos exploits disponibles públicamente
para Metasploit!!

Un vistazo al Framework

Perfecto!! Si has llegado hasta aquí, probablemente estés deseoso de probar el


funcionamiento de tu nuevo entorno de trabajo. Antes de comenzar, es preciso que
conozcas que Metasploit Framework nos brinda básicamente tres interfaces distintas al
momento de interactuar con el mismo:

Interfaz de Línea de Comando: Es la forma correcta de interactuar con el framework,


cuando de automatizar secuencias de pruebas de exploits se trata, o sencillamente en
aquellos casos que no se requiera una interfaz interactiva. La utilidad se ejecuta por
medio del comando “msfcli”.

Interfaz de Consola: Probablemente sea esta la interfaz comúnmente utilizada, debido


a lo intuitivo de su uso interactivo, la rapidez de su operación y su flexibilidad. Su
principal característica es la de brindarnos un prompt de Metasploit, a partir del cual

Copyright © 2005 Hernán Marcelo Racciatti 5


http://www.hernanracciatti.com.ar
Artículo publicado en la revista @RROBA # 94
Suplemento “Hack Paso a Paso” #25 – Septiembre 2005
(Material Sin Editar)

podremos interactuar con cada uno de los aspectos del Framework. En caso de querer
hacer uso de este modo, deberemos ejecutar el comando “msfconsole”.

Interfáz Web: Aunque posee muchos detractores, la interfaz web de metasploit puede
ser de suma utilidad en ciertas circunstancias especiales, tal como presentaciones
publicas o trabajo en equipo. A tal efecto, esta versión “web” de metasploit, incluye su
propio servidor http, a fin de brindarnos la posibilidad de acceder vía browser a
prácticamente las mismas características que en su versión de consola.

Lanzando un Exploit

A los efectos de comprobar nuestra instalación e ilustrar este artículo, nos limitaremos
en estas páginas a la utilización básica de la consola de Metasploit. Esto te permitirá
luego, seguir la misma metodología mostrada en nuestro ejemplo, para investigar todas
y cada una de las variantes de las que nos provee este fantástico Framework.

Para acceder a la consola de Metasploit, deberemos ejecutar:

fiona root # msfconsole

Luego de dar entrada a este comando, nuestra consola mostrara la pantalla de inicio de
Metasploit ilustrada en la Figura 1, en la cual se podrá leer a su vez, información tal
como la versión instalada, cantidad de Exploits y Payloads disponibles, y un prompt
identificatorio (msf >) a partir del cual estaremos en condiciones de dar las indicaciones
correspondientes.

El set de comandos disponibles en Metasploit dependerá del contexto, o dicho de otro


modo, el listado de los mismos puede variar respecto de la sección del framework en la
que nos encontremos. Por tal motivo, el primer comando que ejecutaremos una vez
dentro del framework, será sin dudas el comando “help”, el cual nos brindará una breve
descripción de cada uno de los comandos y su efecto en el contexto actual (En nuestro
caso y por llamarle de algún modo, el directorio raíz).

msf > help

Lo primero que haremos, será echar un vistazo al listado de exploits disponibles. Para
ello deberemos ingresar:

msf > show exploits

Como podrás observar, el listado de exploits es importante (Ver Figura 2). A


continuación seleccionaremos alguno que cumpla con las características necesarias para
ser lanzado sobre nuestro equipo de pruebas (En mi caso un Windows 2000 Server SP

Copyright © 2005 Hernán Marcelo Racciatti 6


http://www.hernanracciatti.com.ar
Artículo publicado en la revista @RROBA # 94
Suplemento “Hack Paso a Paso” #25 – Septiembre 2005
(Material Sin Editar)

4). La forma de llevar a cabo dicha tarea es sencilla, tan solo deberemos hacer uso del
comando “use” seguido del módulo de exploit a utilizar:

msf > use lsass_ms04_011

Figura 1 – Bienvenido a la consola de Metasploit Framework

Figura 2 – Algunos de los Exploits Incluidos en Metasploit Framework

Copyright © 2005 Hernán Marcelo Racciatti 7


http://www.hernanracciatti.com.ar
Artículo publicado en la revista @RROBA # 94
Suplemento “Hack Paso a Paso” #25 – Septiembre 2005
(Material Sin Editar)

Una instrucción de suma utilidad dentro de la consola de Metasploit, es aquella


denominada “info”. Aplicando este comando sobre alguno de los módulos del
Framework, a menudo obtendremos información adicional acerca del mismo. En
nuestro caso, en respuesta al comando:

msf lsass_ms04_011 > info lsass_ms04_011

Obtendremos datos tales como el de las versiones de Windows afectadas por la


vulnerabilidad de la que se aprovecha este exploit, así como también una descripción
general de su utilización, referencias a los boletines de seguridad publicados, nombre de
el/los coder’s, etc. (Figura 3)

Figura 3 – Utilizando el comando “info” para conocer algo más acerca de un exploit

Bien, ya hemos hecho nuestra elección respecto de un exploit apto para ser utilizado
contra nuestra plataforma de pruebas, ahora deberemos decidir la “Shellcode” o
“Payload” que metasploit ejecutará en caso de que la explotación pueda ser llevada a
cabo. Otra vez, Metasploit nos brinda muchas posibilidades al respecto. Echemos un
vistazo a los “Payloads” (Figura 4) disponibles para el exploit seleccionado:

msf lsass_ms04_011 > show payloads

Has visto las variantes presentadas? No es asombroso? Recuerda que siempre podrás
utilizar el comando “info” para obtener información adicional del Payload que creas
más conveniente en cada caso.

Copyright © 2005 Hernán Marcelo Racciatti 8


http://www.hernanracciatti.com.ar
Artículo publicado en la revista @RROBA # 94
Suplemento “Hack Paso a Paso” #25 – Septiembre 2005
(Material Sin Editar)

Figura 4 – Algunos de los Payloads Incluidos en Metasploit Framework

De acuerdo, probaremos suerte seleccionando “win32_bind”. Si todo sale bien, y de


acuerdo a las características de esta shellcode, una vez lanzado el exploit deberíamos
poder acceder a una shell sobre el sistema remoto. Como hacemos para seleccionarlo?
sencillo, deberemos asignar a la variable PAYLOAD, el valor adecuado mediante el
comando “set”:

msf lsass_ms04_011 > set PAYLOAD win32_bind

Llegado este punto, hemos revisado la lista de exploits y payloads disponibles, obtenido
mas información acerca de ellos y seteado nuestras preferencias (Exploit:
lsass_ms04_01, Payload: win32_bind), ahora veamos las opciones que nos quedan por
completar. Para dicha tarea tan solo tendremos que solicitar al Framework que nos
muestre las opciones disponibles para el entorno seleccionado:

msf lsass_ms04_011 (win32_bind) > show options

Ok, si prestamos un poco de atención, veremos que la información brindada por este
comando, nos permite conocer las variables/opciones disponibles a la hora de configurar
la dupla exploit/payload que estamos a punto de ejecutar (Figura 5). En muchos casos,
alguna de las opciones requeridas se completara con valores por defecto en forma
automática, aunque siempre habrá que setear por ejemplo, aspectos tales como la
dirección IP de nuestro TARGET (RHOST). Del mismo modo podríamos si
quisiéramos cambiar el puerto de escucha propuesto por defecto por el framework
(LPORT).

Copyright © 2005 Hernán Marcelo Racciatti 9


http://www.hernanracciatti.com.ar
Artículo publicado en la revista @RROBA # 94
Suplemento “Hack Paso a Paso” #25 – Septiembre 2005
(Material Sin Editar)

Figura 5 – Chequeando los parámetros requeridos para el exploit seleccionado

Si lo se.. ya has adivinado cual es el comando que debemos utilizar al momento de


asignar valores a estas variables... estas en lo cierto... “set” es nuevamente el comando a
utilizar. Puesto que en mi entorno de pruebas, el target se encuentra tras la IP
172.16.1.96, deberé dar entrada al siguiente conjunto de comandos:

msf lsass_ms04_011 (win32_bind) > set RHOST 172.16.1.96


msf lsass_ms04_011 (win32_bind) > show options

Con el primero he definido el host destino, y con el segundo verificaré que no me este
olvidando de suministrar ningún parámetro antes de lanzar mi exploit!!!

Por lo visto, todo está listo. Llegado este punto tan solo deberemos ejecutar el exploit
con el comando “exploit” y esperar a que todo haya salido como lo planeamos:

msf lsass_ms04_011 (win32_bind) > exploit

Fantastico!!! Como puedes observar en la Figura 6, tan solo unos segundos después de
lanzado el exploit, hemos obtenido un fantastico shell, el cual según lo informado por
Metasploit, se encuentra linkeado a traves del port 4444. Objetivo cumplido.

Conclusión

A lo largo de este artículo, hemos sido capaces de observar la sencillez con que algunas
acciones pueden ser llevadas a cabo, por medio de la utilización de Metasploit

Copyright © 2005 Hernán Marcelo Racciatti 10


http://www.hernanracciatti.com.ar
Artículo publicado en la revista @RROBA # 94
Suplemento “Hack Paso a Paso” #25 – Septiembre 2005
(Material Sin Editar)

Framework. A pesar de ello, demás esta decir que lo mostrado es tan solo uno de los
tantos usos que pueden hacerse del mismo.

Figura 6 – Ejecutando el Exploit y Obteniendo una Shell Remota!!

Recuerda que como mencionáramos al inicio de esta nota, Metasploit Framework es


mucho más que una interfase para lanzar exploits. Cada uno de los módulos incluidos
en el framework, se encuentran a tu disposición!!. De esta forma, el desarrollo de tus
propios exploits, haciendo uso de librerías y rutinas estándar, te proporcionara una
plataforma esencial a la hora de ganar tiempo re-utilizando shellcodes y objetos de uso
común al tiempo que te permitirá aprender de la lectura del código fuente (Recuerda lo
importante: Metasploit es “Open Source”!!!!!).

En resumen, Metasploit Framework es una de esas herramientas “Enfocada en


tecnología y no en $$$”, como les gusta decir a sus desarrolladores. Llena de sorpresas,
y beneficios a la vista de todo aquella persona que este dispuesta a descubrirlos. Sin
dudas, una herramienta de la cual serás capaz de enamorarte.

Hernán Marcelo Racciatti


http://www.hernanracciatti.com.ar

Copyright © 2005 Hernán Marcelo Racciatti 11


http://www.hernanracciatti.com.ar
Artículo publicado en la revista @RROBA # 94
Suplemento “Hack Paso a Paso” #25 – Septiembre 2005
(Material Sin Editar)

Referencias

http://www.defcon.org
http://www.metasploit.com
http://www.whoppix.net
http://www.immunitysec.com/products-canvas.shtml
http://www.coresecurity.com/products/coreimpact/index.php
http://www.gentoo.org

Copyright © 2005 Hernán Marcelo Racciatti 12


http://www.hernanracciatti.com.ar

También podría gustarte