Está en la página 1de 16

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 dirección URL:


https://sourceforge.net/projects/metasploitable/files/Metasploitable2/

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/metasploit-
unleashed/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 <rango puertos>.

Por ejemplo, ejecutando la instrucción nmap –O –sV <dirección IP Metasploitable>. 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/en-
us/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/a46371c665d7c85689b47534904bc3f1-
efmsetup.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 <username>:<workgroup or domain>:<hashLM>:<hashNTLM>. 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 de 2016. Publicación del enunciado.


9 de Junio de 2016. Fecha límite de Entrega de la PF resuelta.

Curso Febrero 2016 - Junio 2016. 16

También podría gustarte