Practica Final Solucion

SEGURIDAD EN SISTEMAS OPERATIVOS Curso Febrero 2016 – Junio 2016 Práctica Final - Solución EXPLOTACIÓN DE SISTEMAS Y H

Views 262 Downloads 3 File size 900KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

SEGURIDAD EN SISTEMAS OPERATIVOS Curso Febrero 2016 – Junio 2016

Práctica Final - Solución

EXPLOTACIÓN DE SISTEMAS Y HACKING ÉTICO



Objetivos



Presentación



Ejercicios



Indicaciones para la PEC



Evaluación



Entrega



Fechas

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final

Objetivos

Los objetivos de esta PEC son: -

Familiarizarse con el entorno de Metasploitable.

-

Llevar a cabo la explotación de un sistema Linux y Windows.

-

Entender técnicas utilizadas en auditorías internas.

-

Manejar la herramienta de auditoría técnica Metasploit.

Presentación La práctica final de la asignatura presenta tres hitos diferenciados. En los hitos el alumno estudiará formas de vulnerar un sistema operativo, ya sea directamente o a través de una aplicación o servicio de terceros. Previo a la realización de los ejercicios debemos familiarizarnos con el entorno, por lo que se recomienda que se lea información sobre Metasploit. Familiarizaros con Metasploitable Hay que descargar la ISO de Metasploitable y utilizar mediante VirtualBox o VMWare. El uso de Metasploitable es sencillo, ya que no hace falta instalarla, solamente con arrancar la máquina virtual con la ISO es suficiente. Metasploitable es un entorno o máquina virtual preparada con diversas vulnerabilidades. La ISO de Metasploitable la podéis descargar desde la siguiente https://sourceforge.net/projects/metasploitable/files/Metasploitable2/

dirección

URL:

Tenéis más información sobre los requisitos de la máquina y de dónde descargarla en la siguiente dirección URL: https://www.offensive-security.com/metasploitunleashed/requirements/ Familiarizaros con Metasploit Para familiarizarse con la herramienta Metasploit os recomendamos que descarguéis el manual sobre la herramienta y lo leáis. Hitos La práctica final consta de tres partes:  El primer hito es conseguir explotar una vulnerabilidad de la máquina Metasploitable. En este hito tenéis que utilizar alguna herramienta que os permita realizar fingerprinting sobre la máquina Metasploitable. En el apartado de ejercicios se detallará más sobre el proceso a realizar en este primer hito.  El segundo hito consiste en explotar una vulnerabilidad de la herramienta Easy File Management Web Server 5.3 sobre un sistema Windows 7. En el apartado de ejercicios se detallará más sobre el proceso a realizar en este segundo hito.

Curso Febrero 2016 - Junio 2016.

2

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final 

El tercer hito consiste en utilizar la técnica Pass the Hash (PtH) en entornos Windows con el objetivo de poder desplazarse lateralmente entre máquinas Windows.

Ejercicios 1. Montar laboratorio práctica final Vamos a montar un laboratorio para esta práctica final. Para ello debéis descargaros diferentes máquinas:  Metasploitable. Esta máquina no hay que instalarla, solamente utilizar la ISO con Virtual Box. Se puede descargar desde esta dirección URL: https://sourceforge.net/projects/metasploitable/files/Metasploitable2/  Windows 7. Se debe obtener una máquina Windows 7, la cual podéis descargar desde DreamSpark o, ya instalada en formato VHD, desde el sitio web Modern IE: https://dev.windows.com/en-us/microsoft-edge/tools/vms/windows/  Windows XP. Esta máquina puede ser descargada también desde Modern IE: https://dev.windows.com/en-us/microsoft-edge/tools/vms/windows/  Metasploit Framework. Metasploit está disponible para diferentes entornos (Linux, Windows y OS X). Podéis instalarlo en vuestra máquina Debian. También podéis utilizar una distribución Kali Linux, dónde ya viene instalada: https://www.kali.org/downloads/

Curso Febrero 2016 - Junio 2016.

3

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final 2. Explotando vulnerabilidades en Metasploitable En este hito debéis crear la máquina para Metasploitable y arrancar desde el CD/DVD con la ISO. Es recomendable configurar la red de la máquina Metasploitable de forma que tengáis conectividad con vuestras otras máquinas y con la máquina anfitriona (máquina física). En esta actividad deberéis responder en la memoria de trabajo a las siguientes preguntas y mostrar el proceso completo que habéis llevado a cabo para obtener las respuestas. La captura de imágenes es algo importante, ya que demostráis cómo habéis ido haciendo el proceso. a) Fingerprinting sobre la máquina Metasploitable. Utilizar alguna herramienta para llevar a cabo un fingerprinting sobre la máquina Metasploitable. Recopilar todos los puertos y versiones posibles. Se recomienda utilizar herramientas como Nmap y módulos de Metasploit como auxiliary/scanner/portscan/tcp o auxiliary/scanner/ftp/ftp_version y similares. (1 punto) Para poder hacer el fingerprinting a la máquina Metasploitable simplemente utilizaremos algunas herramientas. En primer lugar utilizaremos Nmap con algunos flags como son los siguientes: - Para detectar sistema operativo utilizaremos el flag –O. - Para detectar la versión del producto que se encuentra detrás de un puerto utilizaremos –sV. - Para indicar un rango de puertos podemos utilizar el flag –p . Por ejemplo, ejecutando la instrucción nmap –O –sV . Esta es una de las varias posibilidades que hay para obtener un fingerprint de la máquina Metasploitable.

Curso Febrero 2016 - Junio 2016.

4

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final Por otro lado, se puede utilizar módulos de tipo Auxiliary de Metasploit con un fin parecido. Por ejemplo, el módulo auxiliary/scanner/portscan/tcp permite obtener un listado de puertos abiertos de la máquina Metasploitable.

Otro ejemplo para hilar más fino con los módulos de Metasploit es la posibilidad de utilizar los módulos de tipo Auxiliary con el fingerprint del protocolo que queramos, por ejemplo auxiliary/scanner/ftp/ftp_version o auxiliary/scanner/http/http_version.

Curso Febrero 2016 - Junio 2016.

5

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final

b) Fijaros en el puerto 21 de la máquina Metasploitable. ¿Qué servicio está corriendo? ¿Qué versión es? ¿Existe alguna vulnerabilidad conocida? (1 Punto) Si realizamos una pequeña búsqueda en Google y en sitios especializados como Exploit-DB, SecurityFocus o 0day.today sobre la aplicación vsftpd 2.3.4 podemos encontrar una vulnerabilidad conocida y un exploit para ella. La vulnerabilidad puede observarse aquí: https://www.exploit-db.com/exploits/17491/.

c) Conseguir ejecutar un payload sobre la máquina Metasploitable a través del puerto 21. ¿Existe un módulo de Metasploit que se aproveche de alguna vulnerabilidad del software que se ejecuta en el puerto 21? Demostrar con imágenes vuestro proceso. Tenéis que conseguir ejecutar código que os devuelva el control sobre la máquina Metasploitable. (1 Punto) En este punto tenemos que realizar una búsqueda en la consola de Metasploit para ver si tenemos un módulo para ello. Por ejemplo, se puede utilizar el comando search vsftpd 2.3.4 con el fin de encontrar un módulo para ello.

Curso Febrero 2016 - Junio 2016.

6

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final

El módulo que debemos utilizar es exploit/unix/ftp/vsftpd_234_backdoor. Se puede obtener más información sobre lo que hace el módulo con el comando info, una vez el módulo se encuentre cargado con el comando use.

Curso Febrero 2016 - Junio 2016.

7

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final 3. Explotación de sistemas Windows En este segundo hito hay que crear una máquina Windows 7 (https://dev.windows.com/enus/microsoft-edge/tools/vms/windows/) en el entorno virtual. Hay que instalar la siguiente aplicación de terceros denominada Easy File Management Web Server 5.3 (Es importante la versión): https://www.exploit-db.com/apps/a46371c665d7c85689b47534904bc3f1efmsetup.exe. Esta aplicación es un servidor web el cual contiene una vulnerabilidad explotable en sistemas Windows 7. Debéis contestar a las siguientes preguntas: a) Realizar fingerprinting sobre la máquina Windows 7, una vez la herramienta Easy File Management Web Server se encuentre en ejecución. ¿Qué versión devuelve vuestro fingerprint sobre Easy File Management Web Server? (1 Punto) De nuevo para este hito haremos fingerprint. En primer lugar podemos usar otra vez Nmap, tal y como se puede ver en la imagen. El resultado será claro, el puerto 80 tiene un servicio habilitado, extraño para una máquina cliente, pero verosímil.

Parece que nmap no ha podido extraer el software, pero si nos fijamos en la respuesta que devuelve el servidor nos encontramos con lo siguiente:

Cómo se puede observar el servidor devuelve un header denominado Server, el cual contiene una posible versión de la aplicación. Con Metasploit y los módulos de tipo auxiliary volvemos a llevar a cabo el proceso con el http_version y se obtiene la siguiente versión.

Curso Febrero 2016 - Junio 2016.

8

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final

b) Detallar el proceso de búsqueda de un módulo de Metasploit que explote la vulnerabilidad. Detallar con imágenes el proceso y demostrar que conseguís acceso a la máquina Windows 7 con la configuración del siguiente payload windows/meterpreter/reverse_tcp. (1 Punto) De nuevo si buscamos la versión Easy File Management Web Server 4.0 que devuelve el fingerprint, aunque seamos que tenemos instalada la versión 5.3, encontraremos una vulnerabilidad y un exploit público para dicha vulnerabilidad. Se puede encontrar información en este recurso de exploit-db: https://www.exploit-db.com/exploits/33790/

Cómo se puede ver en la descripción del módulo de Metasploit disponible en exploit-db, el exploit es funcional para la versión 4.0 y 5.3 de la aplicación. Si se utiliza el comando search en Metasploit, en función del framework que tengáis puede que esté disponible dicho módulo o que tengáis que descargarlo de exploit-db y añadirlo al framework. Una vez el módulo es encontrado o añadido se debe configurar para llevar a cabo la explotación de la vulnerabilidad.

Curso Febrero 2016 - Junio 2016.

9

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final

c) ¿Qué diferencia hay entre una conexión de tipo reverse y de tipo bind en un payload? Realiza una explotación dónde se vea y configure un Meterpreter de tipo reverse y otro de tipo bind. (1 Punto) Una conexión de tipo reverse significa que cuando el payload se ejecuta en la máquina remota, se generará una conexión desde la máquina comprometida hacia la máquina del atacante para devolver el control y poder introducir comandos. Tiene como particularidad que cuando configuramos el payload hay que indicarle el valor LHOST, que es el atributo que indica a qué dirección IP se debe devolver el control una vez el exploit tiene éxito.

En el caso de una conexión de tipo bind significa que cuando el payload se ejecuta se ata (o “bindea”) a un puerto y queda a la espera de que el atacante realice una conexión a dicho puerto con el fin de obtener el control. En otras palabras, cuando el payload se ejecuta en la máquina comprometida, el payload se queda a la escucha en un puerto de la máquina de la víctima, esperando una conexión desde el atacante para obtener el control. Tiene como particularidad que cuando configuramos el payload hay que indicar el valor RHOST, ya que el payload se quedará a la escucha en esa dirección IP y Metasploit, de forma trasparente, irá a conectarse a esa dirección IP y puerto (RPORT).

Curso Febrero 2016 - Junio 2016.

10

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final 4. Pass the Hash en sistemas Windows La técnica Pass the Hash es una técnica de hacking que permite a un atacante autenticarse en un servidor remoto a través del servicio SMB mediante la utilización de hashes NTLM y/o LM. Podéis encontrar más información histórica en: https://en.wikipedia.org/wiki/Pass_the_hash Para este hito tendréis que utilizar la máquina Windows 7 y la máquina XP. Para que todo funcione correctamente tenéis que seguir los siguientes pasos:  Habilitar el usuario Administrador o Administrator en la máquina Windows 7 y XP. Tened en cuenta que, tanto si instaláis vosotros mismo Windows 7 o lo descargáis del sitio recomendado, el usuario Administrador (o Administrator) vendrá deshabilitado. Tiene que ser el administrador real de la máquina, no podéis crear un usuario administrador, no será válido. Fijaros en la imagen, vendrá de este modo: 



La contraseña del usuario Administrador tanto en Windows XP como en Windows 7 debe ser igual. Por ejemplo, si el usuario Administrador en Windows 7 tiene como clave “123abc..” en Windows XP también deberá ser “123abc..” En un entorno corporativo las máquinas de un departamento tienen como contraseña del administrador local la misma en todas las máquinas. Esto permitirá que la técnica Pass the Hash pueda ayudar al pentester a moverse lateralmente sobre diversas máquinas.



Arrancar sesión en Windows 7 con el usuario Administrator (o Administrador) real, el que habéis habilitado. Ejecutar la herramienta Easy File Management Web Server 5.3. Cuando volváis a explotar la vulnerabilidad estaréis ejecutando el Meterpreter en el contexto de usuario con máximo privilegio. Utilizar el comando getsystem de Meterpreter para conseguir ser SYSTEM en Windows. Una vez consigáis ser SYSTEM podéis ejecutar el comando run hashdump en Meterpreter y obtener el contenido del fichero SAM. Podéis ver un ejemplo de un volcado de SAM en la siguiente imagen:

Curso Febrero 2016 - Junio 2016.

11

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final



Una vez obtenéis el hash LM:NTLM del usuario Administrador (o Administrator) podréis utilizarlo para conseguir acceso a la máquina Windows XP. Para más información podéis ir al recurso de Offensive Security que se encuentra en la siguiente dirección URL: https://www.offensive-security.com/metasploit-unleashed/psexec-pass-hash/

A continuación debéis responder a las siguientes preguntas en este hito: 

Detallar el proceso de obtención de hashes en el sistema Windows 7 a través del uso de Meterpreter. (1 Punto)

En primer lugar, y tras ejecutar el proceso como Administrador de la máquina local (podríais haber realizado una escalada de privilegios en el sistema, en vez de ejecutar como administrador local de la máquina el proceso Easy File Mangement Web Server) se obtiene una sesión a través de la explotación de la vulnerabilidad utilizada en el hito anterior. Para verificar que ejecutamos como Administrador lanzamos el comando getuid dentro de una sesión de Meterpreter.

Para poder utilizar run hashdump y obtener un listado de hashes (del fichero SAM) se debe ejecutar en el contexto de System. Para ello, hay que asegurarse de que se puede ejecutar run hashdump. Nos podemos encontrar que al ejecutarlo no podemos llevarlo a cabo.

Curso Febrero 2016 - Junio 2016.

12

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final

Ahora es el momento de ejecutar getsystem, ya que viendo getprivs, el usuario Administrador puede impersonalizar el token de System.

Una vez que ejecutamos en el contexto de System, se puede llevar a cabo la ejecución de la instrucción run hashdump dentro de Meterpreter y obtener el listado de hashes de la SAM local del sistema.

Curso Febrero 2016 - Junio 2016.

13

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final



¿Qué módulo podemos utilizar de Metasploit para realizar Pass the Hash? (1 Punto)

Si buscamos un poco por Metasploit o en Google obtenemos este módulo exploit/windows/smb/psexec y/o exploit/windows/smb/psexec_psh si queremos utilizar Powershell. 

Detallar la utilización del hash LM:NTLM obtenido en Windows 7 del Administrador (o Administrator) y mostrar cómo se accede al sistema Windows XP. (1 Punto)

En primer lugar, tras obtener los hashes del sistema Windows 7 utilizamos el hash del Administrador para ser utilizado en el módulo psexec. El RHOST será la máquina Windows XP con la que queremos autenticarnos con el hash extraído de la máquina Windows 7. El usuario debe ser el administrador real de la máquina, en este caso Administrador, pero podría ser Administrator, depende del idioma. El atributo SMBPass es el valor de hash LM:NTLM (esto es importante que sea así). Después se configura el payload como vimos anteriormente.

Una vez configurado el módulo lanzamos el comando exploit y nos autenticaremos en la máquina Windows XP, siempre y cuando el Administrador real de la máquina Windows 7 y XP tengan la misma contraseña.

Curso Febrero 2016 - Junio 2016.

14

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final



Buscar información sobre la herramienta WCE (Windows Credential Editor), la cual se debe ejecutar sobre sistemas Windows, y detallar su uso básico para sustituir el hash LM:NTLM en memoria. (1 Punto)

Windows Credential Editor permite sustituir las credenciales en memoria, siempre y cuando tengas privilegio para ello. La instrucción que permite sobrescribir las credenciales en memoria sería wce –s :::. Si por ejemplo, sustituyes las credenciales del administrador por las extraídas de Windows 7 podrías acceder a recursos compartidos de otras máquinas.

Curso Febrero 2016 - Junio 2016.

15

SEGURIDAD EN SISTEMAS OPERATIVOS Práctica Final

Indicaciones para la PEC Existen preguntas que pueden responderse de múltiples formas distintas, simplemente elegid y comentad aquella que se haya utilizado. Procurad que las respuestas sean lo más concretas posible. No os extendáis. El documento que enviéis al buzón no debe exceder las 20 páginas máximo. Se recomienda que utilicéis formato PDF para la entrega.

Evaluación La práctica final se evaluará de forma numérica.

Entrega Depositaréis en las respuestas del enunciado de la PEC en el área destinada a tal fin. Poned un solo documento, en formato PDF. En caso que hagáis dos documentos, uno para cada parte, entonces los enviáis dentro de un fichero comprimido (zip, rar, 7z, tgz…). El nombre del fichero debe ser PF_username.pdf. Así, por ejemplo un estudiante llamado Guillermo Fruitos enviará un fichero PFgfruitos.doc (o PFgfruitos.rar)

Fechas 9 de Mayo 9 de Junio

de 2016. de 2016.

Curso Febrero 2016 - Junio 2016.

Publicación del enunciado. Fecha límite de Entrega de la PF resuelta.

16