Mostrando entradas con la etiqueta kevgir. Mostrar todas las entradas
Mostrando entradas con la etiqueta kevgir. 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, 23 de abril de 2016

Guía Kevgir Parte (I)

Buenos días hackers! En esta PoC, os mostraré una guia de la maquina virtual Kevgir de canyoupwn.me. En esta maquina virtual, se podrá practicar técnicas conocidas en la fase del pentesting ya sea aplicaciones web vulnerables y contraseñas débiles. Las técnicas usadas son Hacking con Redis, Hacking con Tomcat y Jenkins, ataques por diccionario, escalada de privilegios, ataques con exploits y auxiliares, y otras vulnerabilidades como SUID bit.



El primer paso, es realizar un reconocimiento de la red interna, en busca de dispositivos en la infraestructura de red


El objetivo tiene como dirección IP 192.168.171.146. Probaremos la conectividad haciendo ping: 


Una vez elegido el objetivo y realizada la prueba de conectividad entre hosts, haremos un escaneo más en profundidad para enumerar los servicios y puertos abiertos:




 
Según la información obtenida, tenemos el puerto http abierto con un servidor Apache Tomcat 8080, Joomla en el 8081 y 9000 Jenkins. Además tenemos: NFS, SSH, FTP, Redis.

A través del SMB/TCP 445, haremos una enumeración del servicio Samba con enum4linux: 







  • Obtenemos usuarios bien conocidos, que podremos usar para hacer un pequeño diccionario
  • Información del sistema operativo Unix, servidor Samba Ubuntu
  • Usuarios del host: user, admin y root
  • Políticas de contraseñas
  • Dominios y grupos
Realizando otro escaneo y enumeración, usando la interfaz gráfica Zenmap, obtenemos los mismo resultados: 



Una vez recolectada la información más general, iremos analizando y explotando mediante técnicas de pentesting los diferentes servicios del Ubuntu.


FTP 25
Usamos hydra para realizar un ataque por diccionario y obtener la contraseña. Para ello hacemos un pequeño diccionario sobre lo recolectado con enum4linux


 
Como se puede observar, el servidor FTP es vulnerable usando un nombre y contraseña bastante débil. Mediante el FTP, se puede subir y descargar archivos del directorio que se comparte por el servidor. Si se tiene permisos para subir archivos, se puede subir un archivo con código malicioso y ejecutarlo empleando otro tipo de herramientas.






TOMCAT 8080

Con nikto escanearemos en busca de vulnerabilidades y carpetas de la aplicación web. 



Sacamos información interesante: /phpmyadmin/ 
Con esto sabemos que posee un gestor de base de datos MySQL. La información es poder, y si se tiene "gaining access" obtendremos información sensible y muy util dependiendo del objetivo del ataque.



Obtenemos más rutas del servidor Apache, en este caso muy interesantes como /manager/html y la cuenta por defecto de la aplicación de Tomcat: tomcat/tomcat. Es una vulnerabilidad muy grave por parte de un sysadmin, usar cuentas por defecto...

Con hydra mediante un ataque por diccionario, usando el mismo método que en el FTP, sacamos lo mismo para evitar falsos positivos: 


Y usando un auxiliar de metasploit, obtenemos la misma información.





Se desarrollará dos métodos en la parte de explotación para conseguir una shell o una sesión meterpreter, y en la parte de post-explotación se usará una técnica debido a una vulnerabilidad SUID bit en /bin/cp, para escalar privilegios, y también se explicará el procedimiento del uso de un exploit local.



Fase explotación Método (I)

Mediante la aplicación Tomcat Manager, el usuario puede subir archivos WAR con un payload malicioso creado con "msfvenom" y enviar peticiones http con "curl" un archivo .jsp para obtener una shell. 
Un archivo WAR o Web Application Archive, es simplemente un archivo JAR que contiene el conjunto de archivos necesarios para hacer funcionar una aplicación web. 
Con jar tf, visualizamos el contenido el archivo JAR. Uno de ellos es un .jsp. 
Los archivos .jsp, es un fichero web en Java


Una vez generado el payload, subimos el archivo WAR desde la aplicación


Usaremos netcat, "la navaja suiza del TCP/IP" para estar a la escucha por el puerto configurado en el payload reverse_tcp. Una vez el atacante realize una petición http a la URI donde se encuentra el archivo .jsp, el servidor Tomcat ejecutará el payload realizando la conexión reversa devolviendonos en el Netcat una shell de usuario. 





Una vez obtenido la shell, ya se ha conseguido el acceso "gaining access", al servidor Ubuntu. El problema radica en que al tener una shell usuario, no tenemos a penas privilegios de poder realizar una serie de acciones, y a su vez es preferible tener un entorno de terminal.



Para ello sabiendo que en ubuntu, esta instalado Python, generaremos una terminal escribiendo el siguiente pequeño script.







Fase de explotación Método (II)

Usando la consola de Metasploit (msfconsole), lanzaremos un exploit a la máquina victima consiguiendo una sesión meterpreter. El exploit usado es el tomcat_mgr_upload. 
Este exploit lo que hace es ejecutar un payload en un Tomcat Apache con la aplicación manager expuesta al atacante. Es similar al Método I, ya que sube un archivo WAR que contiene una aplicación con extensión .jsp mediante POST.



Una vez configurado, lanzamos el exploit y conseguiremos una sesión meterpreter.



Las ventajas con respecto al Método (I), es la potencia que nos ofrece Metasploit y el payload meterpreter, ya que permite nuevas funcionalidades además de la shell, dependiendo del nivel de privilegios que tengamos, en este caso de usuario. 



Fase Post-Explotación

Investigando con la shell obtenida en el Método (I), vemos los permisos que tiene el usuario con el siguiente comando.


Como pueden observar, el comando cp tiene SUID bit, por lo que se puede usar para copiar y sobrescribir archivos que un usuario root puede tener, sin serlo.
Modificamos el archivo, y en la linea admin cambiamos el user ID en 0 (la de root). 





Una vez modificado el archivo, iniciamos un simple servidor http en nuestra maquina kali linux



Desde la shell, nos descargamos el archivo con wget


Y copiamos el archivo descargado a /etc/passwd. Se sobrescribirá, y el resultado final será una escalada de privilegios sencilla.











Con esto ya somos root, amos y dueños del servidor Ubuntu.

Otro método de escalada de privilegios sería mediante el uso de este exploit 
El procedimiento sería el siguiente: 

  • Copiar el exploit en un archivo .c
  • Compilarlo con gcc, teniendo en cuenta que el sistema victima tiene una arquitectura de 32 bits. 
  • Iniciar un servidor http en nuestra maquina kali linux, simplemente para la posterior descarga del exploit escrito en lenguaje C desde la shell.
  • Dar permisos de ejecución al archivo y ejecutar el exploit.


Espero que os haya gustado la primera parte de la guía de esta PoC. En la próxima entrada se explicará las diferentes técnicas de acceso mediante la explotación de vulnerabilidades en los distintos servicios.

Un saludo, naivenom.





Google Analytics