15
luigiasir.wordpress.com Analizando vulnerabilidades con Metasploitable2 Luigi Guarino 31/10/2017

Analizando vulnerabilidades con Metasploitable2Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017 luigiasir.wordpress.com 15 Conclusión Recordar que todo lo trabajado

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

luigiasir.wordpress.com

Analizando vulnerabilidades con

Metasploitable2

Luigi Guarino

31/10/2017

Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017

luigiasir.wordpress.com 2

Índice

Introducción ...................................................................................................................... 3

¿Y que es una vulnerabilidad? ...................................................................................... 3

Laboratorio de pruebas ..................................................................................................... 3

¿Qué es Acunetix? ........................................................................................................ 3

Analizando el entorno... .................................................................................................... 4

Acunetix ........................................................................................................................ 4

1. Análisis de las vulnerabilidades web ............................................................. 4

2. Análisis de los resultados (Acunetix) ............................................................. 6

3. Análisis de la web .......................................................................................... 7

Nmap ............................................................................................................................. 8

1. Análisis de los puertos.................................................................................... 8

2. Análisis de los resultados ............................................................................... 8

Atacando con DVWA ..................................................................................................... 10

PHP-CGI remote code execution ................................................................................ 12

File Inclusion .............................................................................................................. 13

SQL Injection .............................................................................................................. 13

Conclusión ...................................................................................................................... 15

Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017

luigiasir.wordpress.com 3

Introducción

Vamos a efectuar un análisis de seguridad a S.O Metasploitable2, una distribución de

servidor basada en Linux, la cual nos ofrece unos servicios que intencionadamente,

tienen fallos de seguridad y puertos abiertos y, por tanto, están listos para ser

explotados.

Lo primero que haremos sera definir la auditoria de seguridad como, el estudio que se

realiza a un sistema o conjunto de los mismos, con el objetivo de identificar y analizar

las vulnerabilidades de este, pudiendo posteriormente defenderse o atacarlas.

¿Y que es una vulnerabilidad?

Una vulnerabilidad es una debilidad en el sistema, que puede ocasionar un agujero de

seguridad. Más bien, una vulnerabilidad puede llegar a ser la puerta de entrada de los

"malos". Por tanto, supone un riesgo y amenaza para nuestro equipo.

Laboratorio de pruebas

Para realizar la auditoria de seguridad vamos a montar nuestro laboratorio. Para ello,

vamos a contar con tres maquinas virtuales en Virtual Box:

Servidor Metasploitable2: @ip 10.0.0.1/8

Windows 7 Pro (x64): @ip 10.0.0.2/8

Kali Linux 2017.2 (x64): @ip 10.0.0.3/8

Los tres equipos se encontrar en red entre ellos (Internal Network). Por tanto, estamos

realizando una auditoría interna. Además, en la maquina W7 hemos realizado la

instalación de Acunetix.

¿Qué es Acunetix?

Acunetix es un escáner de vulnerabilidades en servidores web. La

aplicación automatiza el proceso de encontrar agujeros de seguridad en el servidor, y

además, los califica en Crítico, Medio o Bajo.

Muy útil para esta entrada, ya que, Metasploitable2 realiza la función de servidor web.

Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017

luigiasir.wordpress.com 4

Analizando el entorno...

Acunetix

1. Análisis de las vulnerabilidades web

Vamos a lanzar el análisis de vulnerabilidades web Acunetix, especializando este

mismo para tecnologías PHP. Para ello seguimos estos pasos:

1. Comprobamos que la página web esta activa desde cualquier navegador, por ejemplo:

2. Iniciamos Acunetix → New Scan... → Introducimos la @ip del servidor:

3. Next → Next → Y comprobamos que se han recogido los parámetros para PHP:

Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017

luigiasir.wordpress.com 5

4. Clicamos Next hasta que comienza a buscar vulnerabilidades:

En la parte de derecha de la aplicación (Alerts summary), se muestran ordenadas por

"peligro" las amenazas encontradas.

Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017

luigiasir.wordpress.com 6

5. Resultado tras 6 horas:

2. Análisis de los resultados (Acunetix)

Tras la espera, hemos encontrado 8 amenazas críticas y unas 491 altas. Nos

centraremos únicamente en las amenazas críticas:

3 vulnerabilidades Cross site scripting

1 vulnerabilidad Directory Trasversal

1 vulnerabilidad File inclusion

1 vulnerabilidad PHP-CGI remote code execution

2 vulnerabilidad SQL Injection

¿Qué es Cross site scripting (XSS)?

Una página vulnerable a XSS significa que es susceptible a ser atacada mediante

inyección de código HTML o Javascript.

Esta inyección puede provocar el robo de cookies, realizar phising de la web o desfase

de la misma.

¿Qué es Directory Trasversal?

Es la vulnerabilidad de un sistema, mal estructurado, que permite a los usuarios a

cualquier directorio padre del sistema.

¿Qué es File inclusion?

File inclusion es, como define su nombre, la inclusion de ficheros locales, es decir,

ficheros que se encuentran en el mismo servidor de la web.

Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017

luigiasir.wordpress.com 7

Este ataque, permite comprometer ficheros de configuración del sistema.

¿Qué es PHP-CGI remote code execution?

Se trata de la ejecución de código PHP desde remoto. Permitir acceder al código

fuente y modificarlo a nuestro gusto.

¿Qué es SQL Injection?

Es una de técnicas más utilizadas a la hora de explotar servidores. Se basa en la

infiltración de código SQL, en una base de datos mal configurada, y permite extraer

credenciales y así, realizar accesos ilegítimos al sistema.

3. Análisis de la web

Sí accedemos a la web, podemos comprobar que existen varias aplicaciones en la

misma. Vamos a analizar las vulnerabilidades que pueden tener cada una de ellas:

TWiki

La aplicación TWiki es vulnerable mediante exploit. Con éste, podemos abrirnos una

shell en el sistema y posteriormente, escalar privilegios en esta misma con otro exploit.

DVWA

Esta aplicación es uno de los posibles objetivos de SQL Injection, PHP-CGI remote

code execution, XSS y File Inclusion, todas ellas encontradas anteriormente mediante

Acunetix... lo tiene todo.

Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017

luigiasir.wordpress.com 8

Nmap

1. Análisis de los puertos

Abrimos consola en Kali y ejecutamos nmap -sV 10.0.0.1:

Los puertos marcados son los servicios que pueden ser vulnerados y por tanto, vamos a

analizarlos.

2. Análisis de los resultados

Una vez tenemos los puertos que está escuchando nuestro servidor Metasploitable,

vamos a listar las posibilidades de explotar estos mismos:

Puerto 21 FTP

En este puerto se encuentra escuchando el software vsftpd, en su versión 2.3.4.

Precisamente, esta versión es vulnerable, ya que se puede generar una backdoor con

metasploitble.

Puerto 22 SSH

Se encuentra corriendo la versión de OpenSSH 4.7p1. Sí analizamos este servicio con

Nessus u otro programa de escaneo de vulnerabilidades, encontramos que las

credenciales se encuentran por defecto. Es decir, podemos logearnos como user con

password user.

Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017

luigiasir.wordpress.com 9

Puerto 23 Telnet

Esta vulnerabilidad es una de las más claras. Si realizamos telnet al servidor... él mismo

nos dice las credenciales para logearnos:

Puerto 445 Samba

La versión de Samba que se está ejecutando es susceptible de ser explotada mediante

exploit.

Puertos 512, 513 y 514

Estos puertos son utilizando para la comunicación remota entre cliente y servidor.

Estos servicios están mal configurados y por ello, podemos comunicarnos

remotamente desde cualquier máquina, logeandonos como root.

Puerto 2049 NFS

Este puerto se utiliza para acceder al sistema de archivos NFS. El servicio puede ser

atacado, montando un disco virtual y accediendo a esta mismo sin impedimento.

Puerto 3306 MySQL

Este servicio simplemente, no le ha sido configurado una contraseña para acceder a

la base de datos.

Puerto 5432 POSTGRESQL

Otro sistema gestor de bases de datos como MySQL. Para esta BD, disponemos de otro

exploit para forzar las credenciales de logeo.

Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017

luigiasir.wordpress.com 10

Puerto 5900 VCN

Este servicio permite la ejecución de escritorio remoto. Si utilizamos una herramienta

de análisis de vulnerabilidades, como la mencionada anteriormente, Nessus,

averiguamos que la contraseña para acceder es tan simple como "password".

Puerto 6667 IRC

Se trata de un servicio de comunicación a tiempo real. Existe un exploit para atacar este

puerto (backdoor).

Atacando con DVWA

Como hemos comentado anteriormente, vamos a atacar la aplicación web DVWA,

utilizando las vulnerabilidades halladas mediante Acunetix.

Lo primero de todo vamos a logearnos como admin y contraseña password:

Ahora, vamos a crear una BD para realizar nuestros ataques, para ello:

1. Setup → Create / Reset Database

Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017

luigiasir.wordpress.com 11

2. DVWA Security → En el apartado Script Security seleccionamos Low →

Summit

3. Ya tenemos la aplicación lista para ser atacada

Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017

luigiasir.wordpress.com 12

PHP-CGI remote code execution

Comenzamos con ejecución de comandos. Vamos a lanzar un ping sobre el servidor y,

en el mismo comando, ejecutaremos la sentencia pwd. Para ello, navegamos al apartado

Command Execution y escribimos lo siguiente:

Esta vulnerabilidad nos permite ejecutar comandos de forma remota sobre el

servidor. La forma de redactarlo será siempre: @ip&comando. Ejemplo:

Como podemos suponer, esto alberga muchas posibilidades para atacar... eso ya

depende nuestra imaginación :)

Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017

luigiasir.wordpress.com 13

File Inclusion

Mediante este ataque, podemos acceder a ficheros del sistema de una forma muy

sencilla.

Seguimos los pasos:

1. Escribimos lo siguiente en la barra de direcciones:

http://10.0.0.1/dvwa/vulnerabilities/fi/?page=include.php

2. Sustituimos "incluide.php", por el fichero al que queremos acceder. Por ejemplo, el

fichero de usuarios del sistema: /etc/passwd

3. Obtenemos el fichero en la cabecera de la página:

SQL Injection

Por último, vamos a realizar un ataque de inyección de código SQL. Este ataque se

basa en ejecutar comandos SQL para conseguir información de la BD. Por ejemplo:

1. Vamos a buscar en las tablas de la base de datos información sobre "user". Para ello

usamos el siguiente comandó:' and 1=0 union select null, table_name from

information_schema.tables where table_name like 'user%' #

Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017

luigiasir.wordpress.com 14

2. Ahora, sabemos que tabla que contiene información sobre los usuarios se llama

user. Vamos a luster las columnas de esta tabla ejecutando:

' and 1=0 union select null, concat(table_name,0x0a,column_name) from

information_schema.columns where table_name = 'users' #

3. Tenemos dos columnas interesantes: user y password. Vamos a mostrar los datos

almacenados en ellas ejecutando:

' and 1=0 union select null, concat(user,0x0a,password) from users #

Y así, con los usuarios y sus respectivas contraseñas en nuestro poder, finalizamos el

manual.

Analizando vulnerabilidades con Metasploitable2 31 de octubre de 2017

luigiasir.wordpress.com 15

Conclusión

Recordar que todo lo trabajado en este manual ha sido realizado en un entorno de

pruebas y con el objetivo de practicar y aprender sobre los diferentes tipos de

vulnerabilidades que existen. Además, podemos concluir que la mayoría de estas

vulnerabilidades podrían ser solucionadas mediante actualización del software que

ofrece los servicios o, en algunos casos, mejorando la seguridad de estos mismos.