Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SISTEMAS OPERATIVOS
Curso Febrero 2016 – Junio 2016
Objetivos
Presentación
Ejercicios
Indicaciones para la PEC
Evaluación
Entrega
Fechas
SEGURIDAD EN SISTEMAS OPERATIVOS
Práctica Final
Objetivos
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.
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.
Hitos
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
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/
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).
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.
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.
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.
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.
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/
Una vez el módulo es encontrado o añadido se debe configurar para llevar a cabo la explotación
de la vulnerabilidad.
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).
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:
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/
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.
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.
¿Qué módulo podemos utilizar de Metasploit para realizar Pass the Hash? (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.
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.
Existen preguntas que pueden responderse de múltiples formas distintas, simplemente elegid y
comentad aquella que se haya utilizado.
Evaluación
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