Mostrando entradas con la etiqueta aplicaciones web. Mostrar todas las entradas
Mostrando entradas con la etiqueta aplicaciones web. Mostrar todas las entradas

domingo, 24 de abril de 2016

Guía Kevgir Parte (II)

Buenas tardes hackers, continuamos con la segunda parte y última de la PoC. En la anterior vimos de manera general los servicios disponibles en el servidor y la explotación del FTP y Tomcat.



NFS 2049
El NFS, es un servicio para poder compartir carpetas en la red. Mediante una llamada de procedimiento remoto RPC, se muestran los programas en equipos remotos con el comando rpcinfo. Si ejecutamos showmount, muestra la información de montaje en el servidor NFS. Montamos con mount el backup, previa creación de la carpeta en /tmp/nfs en la maquina victima y copiamos el .zip a nuestra maquina kali linux. 
De esta forma, mediante el servicio NFS, obtenemos un backup con información posiblemente muy útil. 


El archivo .zip se encuentra protegido con contraseña. Por tanto mediante un ataque por diccionario obtendremos dicha pass. Descomprimimos el archivo.


Usando grep, haremos una búsqueda recursiva de la password, en la carpeta html




JOOMLA 8081


Es un sistema de gestión de contenidos (CMS). Permite crear sitios dinámicos e interactivos. 
Con la consola de Metasploit, usando un auxiliar identificaremos la versión.


Haciendo uso de robots.txt, nos lista una serie de directorios de Joomla.


Hacemos nikto, para realizar un escaneo en busca de vulnerabilidades web



Como pueden observar, nikto es una potente herramienta que nos arroja información bastante útil para nuestra fase de pentesting.

Vista esta vulnerabilidad, ya podemos ir navegando en los distintos directorios! 
Pero antes de nada pasaremos un escaner para analizar las vulnerabilidades del CMS con joomscan.


Existen 19 vulnerabilidades encontradas. Explotaremos una de ellas Joomla Remote Admin Password Change Vulnerability.
Escribimos la URL que nos indica y en el campo token escribimos el siguiente carácter '. Una vez nos de la posibilidad de cambiar la contraseña, ya podremos acceder al panel de administración de Joomla. 


A partir de este momento, tenemos la posibilidad de modificar absolutamente todo del sitio web como administradores que somos. 
Desde la configuración global, podemos modificar por el ejemplo el nombre del sitio.


Configuración del sistema



En configuración del servidor, modificamos el media setting para permitir archivos PHP.


También nos arroja información de la existencia de una BBDD MySQL.


En Media Manager, creamos una carpeta para subir un script escrito en PHP, con el fin de ganar un shell



La subimos y el resultado es negativo, Possible IE XSS Attack found
Habrá que probar suerte con otro servicio, y "gaining access" con el mismo script PHP.


REDIS 6379
Redis es un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor) pero que opcionalmente puede ser usada como una base de datos persistente. Más información aquí

A través de Telnet, comprobamos si Redis tiene algún tipo de autenticación.



Bingo! No existe ningún tipo de seguridad.
Verificamos más información del sistema mediante el siguiente comando.




Mediante un auxiliar de Metasploit, podemos obtener más información del sistema



Usando otro auxiliar, podemos aprovechar la funcionalidad expuesta por Redis para lograr subir archivos. Quizás sea posible subir la shell escrita en PHP, anterior y así "gaining access". 

 

Mediante este método se ha podido subir la shell. A continuación lo único que habrá que hacer es interactuar con la URL y probar si nos devuelve el resultado tras la ejecución de los comandos.


El resultado es simplemente una shell de usuario en el navegador.



Jenkins 9000



Simplemente usando un auxiliar y un exploit en Metasploit, obtenemos el usuario y contraseña del login, y una sesión meterpreter. 

Ejecutamos el auxiliar


Login succesful admin:hello ;)

Ahora ejecutamos el siguiente exploit.



Con esto tendríamos una de las muchas shell conseguidas en esta PoC, con la diferencia que obtenemos en esta una sesión meterpreter. Una vez llegado a este punto podemos eejcutar una serie de opciones disponibles en meterpreter además de la shell de usuario obtenida.




Con esto, ya quedaría terminada esta pequeña guia sobre esta maquina vulnerable. No es complicada la explotación de este servidor, y sirve de práctica para nuevos iniciados en este mundo del pentesting para así seguir desarrollando vuestras habilidades como hackers.
Más adelante, se irán desarrollando más guías sobre nuevos retos que vayan surgiendo, para que sirva de ayuda para aquellos que quieran hacerla. 

Un saludo, naivenom.




sábado, 19 de marzo de 2016

Guia Metasploitable 2: Parte 2

Continuamos con la segunda parte de la guía de Metasploitable 2. En esta entrega vamos a explotar el puerto 80, en el que vamos a encontrar varias aplicaciones web vulnerables. Esto es lo que nos aparece al entrar.



TWIKI

La primera aplicación que aparece es Twiki. Se trata de un gestor de contenidos tipo wiki, escrito en Perl y con licencia GPL. Soporta extensiones para acceso a base de datos, diagramas, hojas de calculo, seguimiento de proyectos y muchas otras posibilidades.

Éste tiene una vulnerabilidad que podemos explotar con Metasploit.

Configuración exploit
Shell obtenida
Obtendremos una shell sin privilegios. Para escalar privilegios utilizaremos el mismo exploit que usamos en el puerto 22 (SSH), en la primera parte de ésta guía.


DVWA

Esta aplicación web dispone de varios fallos de seguridad como pueden ser SQL Injection, ejecucion de comandos, File Inclusion, etc.

Al entrar vemos un login, el user es "admin" y la pass "password".



Una vez dentro, lo primero que haremos es pinchar en Setup y Create/Reset Database, para crear la base de datos.



Lo siguiente es cambiar el nivel de seguridad, entramos en DVWA Security y lo cambiamos a Low, pinchamos en Submit.


Ya estamos listos para empezar a probar las vulnerabilidades.


Command Execution

Nos aparece una pantalla en la que podemos hacer un ping a la IP indicada. Pero además podemos ejecutar mas comandos con la siguiente  sintaxis: IP&&COMANDO.


Ejemplo: 127.0.0.1&&pwd


En la captura vemos como responde al ping y al comando pwd. Ahora ya depende de nuestra imaginación y los permisos que tengamos.


Cross Site Request Forgery (CSRF)

Esto es un ejemplo de una mala implementación del cambio de contraseña en una aplicación web.
  • Utiliza http en vez de https, por lo que va en texto plano.
  • Un atacante puede usar la URL para cambiar la contraseña-
Al entrar nos encontramos con esta pantalla.


Escribimos una contraseña y pulsamos Change.

Si nos fijamos en la URL, vemos  como aparece la nueva contraseña.


Ahora vamos a cambiar la contraseña desde la URL y actualizamos la página.


Nos aparece el mensaje Password Changed y en la URL la nueva contraseña establecida. Si salimos de DVWA y nos logueamos otra vez con la nueva contraseña, comprobareis que efectivamente funciona.


File Inclusion

Mediante esta vulnerabilidad podemos ver ciertos archivos del sistema como puede ser passwd, phpinfo, ftpusers, etc. Incluso podemos ejecutar un archivo que hayamos subido previamente como un backdoor.

En la web nos dice que modifiquemos una parte de la url para explotar la vulnerabilidad.



page=/etc/passwd


page=/var/www/phpinfo.php




Para el siguiente ejemplo, vamos a crear un backdoor con msfvenom.


Lo metemos en la máquina Metasploitable 2 de la forma que mas nos guste.
A continuación ponemos a la escucha en Kali el multi/handler para recibir la conexión.


Y por último, ejecutamos nuestro archivo introduciendo la ruta donde lo hayamos guardado. En mi caso lo he puesto en la carpeta /tmp.


Aquí tenemos la shell meterpreter, ya solo tendríamos que escalar privilegios mediante algún exploit.


SQL Injection

Es el turno del famoso SQL Injection. No voy a entrar en muchos detalles sobre el funcionamiento del mismo, para ello visita este enlace.

Para empezar introducimos el comando básico: 

' or ' 1=1 


La respuesta de la web es los nombres de usuario.

Para ver el nombre de usuario de la base de datos introducimos:

' or 0=0 union select null, user() # 

Usuario db: root


Para el nombre de la base de datos:  

' or 0=0 union select null, database() # 

 Nombre db: dvwa 

Buscaremos en las tablas de la base de datos information_schema (esta base de datos es donde se guarda la información sobre las db que el servidor MySQL maneja), las tablas que contengan la palabra user en su nombre. Para ello usamos el siguiente comando:

' and 1=0 union select null, table_name from information_schema.tables where table_name like 'user%' # 

Tabla: users 

Una vez sabemos el nombre de la tabla en cuestión, mostramos el nombre de las columnas:

' and 1=0 union select null, concat(table_name,0x0a,column_name) from information_schema.columns where table_name = 'users' # 

 Columnas db users 

Por último, mostramos la información de las columnas que nos interesan:

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


Con los usuarios y sus respectivos hashes podemos obtener las contraseñas con John the Ripper u otra aplicacion de crackeo de hashes. 

 Usuarios y contraseñas 


Upload

Mediante esta vulnerabilidad podemos subir un archivo al servidor para posteriormente ejecutarlo por ejemplo, con lo que ello conlleva.

He creado, mediante msfvenom, un archivo php que devolverá una shell meterpreter. Buscamos el archivo y lo subimos.





Path del archivo 

Una vez subido, lo ejecutamos desde la URL.


Con msfconsole y multi/handler escuchando, obtendremos la shell.


Cross-Site Scripting (XSS)

XSS permite a un atacante inyectar código en la web evitando las medidas de control, permitiéndole robar información sensible, secuestrar sesiones de usuario, etc.

El ejemplo básico para comprobar la vulnerabilidad es el siguiente:

<script>alert("¡¡FWHIBBIT!!")</script>

 Nos aparecerá el siguiente mensaje:






Otro de los usos que se le puede dar es utilizar un iframe para mostrar otra web por encima de la original. Con ésta técnica podemos engañar a un usuario para que piense que se trata de la web original cuando en realidad no lo es, obteniendo así sus credenciales.




Iframe con web indicada 


Para obtener la cookie de la sesion introducimos :

<script>alert(document.cookie)</script> 


 
Mediante XSS podemos incluso ejecutar un archivo php (como el usado en la parte de Upload).

<script>window.location="http://192.168.0.195/dvwa/hackable/uploads/hack.php"</script> 

 Teniendo multi/handler a la escucha, tendremos una shell meterpreter.


Hasta aquí la entrada de hoy, espero que os haya gustado. Recordar que esto es con fines educativos y en ningún momento debe utilizarse para malos fines.


Google Analytics