Mostrando entradas con la etiqueta exploit. Mostrar todas las entradas
Mostrando entradas con la etiqueta exploit. Mostrar todas las entradas

martes, 30 de agosto de 2016

La fraude fiscale des grandes sociétés

Buenas hackers! Y bienvenidos a otro CTF de Vulnhub

"Welcome to Droopy. This is a beginner's boot2root/CTF VM.
The VM is set to grab a DHCP lease on boot.
There's 2 hints I would offer you:
1.) Grab a copy of the rockyou wordlist.
2.) It's fun to read other people's email.
SHA1SUM: e6862fa5ebc9c2a8e582e77f440510062afe47ba droopyctf.ova
Special thanks and shout-outs go to Barrebas and Rasta_Mouse for testing, and g0tmi1k for advice and offering to host my first CTF."

Atención Spoiler!!

En este CTF veremos el uso de exploits locales gracias a searchsploit, las diferentes técnicas entre el uso de un script en Python, una shell escrita en PHP y nc, o el uso más automatizado de Metasploit.
La escalada de privilegios basada en el uso de un exploit local debido a la versión del Kernel. Recomiendo mucho esta página web para poder realizar escalada de privilegios en Linux básicos---> https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/
Una vez obtenido un fichero en .tc nos indica que es TrueCrypt y que tendremos que obtener una password en texto plano para poder montar un volumen. El descifrado se usa Hashcat.


Un saludo, Naivenom

jueves, 7 de julio de 2016

Setoolkit + BeEF

Buenas hackers! En esta PoC os traigo como clonar un sitio web mediante la ingeniería social en un entorno controlado, es decir, virtualizado dentro de la misma red virtual que nos proporciona VMware. La prueba de concepto la podeís encontrar grabada y editada en el canal de Youtube del blog, Rabbit Hutch


Consiste en el uso de SET, una de las herramientas de ingeniería social más potentes en el mundo de la ciberseguridad y el hacking.
También se usa la herramienta BeEF pudiendo mejorar el ataque de ingeniería social mediante la inyección del hook.js, y así usar el framework para usar exploits con la combinación de Metasploit, con el objetivo de obtener información del sistema operativo, cookies, direccionamiento IP, el cliente del navegador etc...

El uso de BeEF para realizar una fase de explotación en el sistema y recolección de información se verá en otros vídeos más adelante en el canal Rabbit Hutch.
Aún así tenemos una buena entrada en el blog sobre el uso de BeEF
Si quereís saber más información sobre este nuevo proyecto visitar la web de Rabbit Hutch

Proof of Concept


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.





lunes, 11 de abril de 2016

Guia Metasploitable 2: Parte 3


Hola hackers!!

Ésta es la tercera y última parte de la guía Metasploitable 2. En la segunda parte vimos como explotar las diferentes aplicaciones web que nos ofrece Metasploitable.
Retomaremos  la guía en el puerto 445, que es el siguiente en el escaneo con Nmap realizado en la primera parte de la guía.


PUERTO 445 SAMBA

Samba es el equivalente al SMB de Windows en los sistemas Unix. Permite compartir archivos e impresoras en una red local.
Para este puerto disponemos de varios escáneres en Metasploit mediante los que obtener información del servicio.

  • smb_version: nos muestra la versión del SMB.

Establecemos la IP de la máquina objetivo en RHOSTS y ejecutamos el escáner con el comando run. En este caso se trata de Samba 3.0.20-Debian.

  • smb_enumusers: mediante este escáner obtenemos los nombres de usuario de Metasploitable.

Hemos obtenido una buena lista de nombres de usuario con los que crear un diccionario por ejemplo para realizar un futuro ataque de fuerza bruta.

  • smb_enumshares: obtendremos las carpetas compartidas del objetivo.


Además de los escaneres, disponemos de un exploit mediante el cual obtendremos una shell con privilegios root.

Configuración del exploit.

Shell con privilegios root.



PUERTOS 512, 513, 514 SERVICIOS "r"

Estos servicios son herramientas con una parte cliente y otra servidor que permiten la conexión remota entre máquinas (terminal remota y trasferencia de archivos).

El puerto 513 corresponde a rlogin y se utiliza como terminal virtual (parecido a telnet).
El puerto 514 (rsh) es utilizado para ejecutar comandos en una máquina remota sin necesidad de acceder a ella.

Estos servicios han sido configurados erróneamente para permitir el acceso remoto desde cualquier máquina. Para aprovechar ésta mala configuración, nos conectaremos al puerto 513 mediante el cliente rsh-client y como usuario root (al no ser necesario introducir la contraseña).

 Conexión por el puerto 513.


PUERTO 1099 JAVA-RMI

Se trata de un mecanismo de Java para invocar un método de forma remota. Proporciona una forma simple de comunicación entre servidores en aplicaciones basadas exxclusivamente en Java (para la comunicación entre otras tecnologías debe utilizarse CORBA o SOAP).

Para la explotación de este puerto disponemos de un exploit en Metasploit.

 Configuración del exploit.

 Shell obtenida con privilegios root.



PUERTO 2049 NFS 

Este puerto se utiliza para que cualquier aplicación pueda acceder al sistema de archivos NFS (Network File System). Un atacante podría utilizar este puerto para montar un disco virtual y accceder a éste como si fuera de manera local permitiéndole ver y modificar archivos.

Para poner esto en práctica, primero veremos los directorios compartidos del equipo remoto mediante el comando showmount.

 Directorios compartidos.

 En este caso tiene el directorio raiz / compartido. Lo siguiente será crear una carpeta en nuestro equipo y montar el directorio remoto en ella.


Como podéis ver en la captura anterior, una vez tenemos el directorio montado, podemos acceder a él y ver o modificar lo que queramos como si se tratara de una carpeta de nuestro pc.


PUERTO 3306 MYSQL

Éste puerto es el utilizado por el servidor de bases de datos MySQL. Actualmente es el sistema de gestión de bases de datos más popular, principalmente en sitios de internet.

Si le pasamos un escáner de vulnerabilidades como Nessus, éste nos indica que es posible conectarse a la db sin necesidad de contraseña.


Una vez dentro podemos hacer lo que queramos puesto que disponemos de privilegios root.



PUERTO 5432 POSTGRESQL

PostgreSQL es un sistema de gestión de bases de datos relacional orientada a objetos y de código abierto.

En Metasploit disponemos de un auxiliar con el que hacer un ataque por fuerza bruta para intentar obtener usuario y contraseña.


  • PASS_FILE: archivo con la lista de contraseñas para probar (una contraseña por linea).
  • USERPASS_FILE: archivo con una lista de usuario contraseña (separados por un espacio y un par usuario/contraseña por linea).
  • USER_FILE: archivo con una lista de nombres de usuario (uno por linea).
Además de las opciones anteriores, debemos establecer RHOSTS con la IP del objetivo y los THREADS (número de palabras que probará cada vez) para que, en caso de tener unas listas muy extensas, no tarde mucho en comprobarlas.

 Usuario y contraseña encontrados!!

Además del auxiliar visto, disponemos de un exploit mediante el cual obtendremos la tan ansiada shell.

 Configuración del exploit.

Aprovechamos  que tenemos los credenciales obtenidos con el auxiliar e introducimos usuario y contraseña en las opciones del exploit, junto con RHOST.

Con todo configurado, lanzamos el exploit.

 Shell sin privilegios.

Ahora mismo no disponemos de privilegios root, para ello, en esta ocasión, vamos a utilizar el exploit udev_netlink. 

En la captura anterior podéis ver que el último comando introducido es background, esto es así porque para usar el siguiente exploit, es necesario tener una sesión previa, con background dejamos la sesión en segundo plano pero abierta.

 Shell con privilegios root.


Establecemos el número de la sesión (opción SESSION) obtenida anteriormente y que tenemos en background (para ver el número de sesión utilizamos el comando sessions -l), y una carpeta (opción WritableDir) con permisos para escritura(/tmp).

Lanzamos el exploit y ya tendremos la shell con privilegios root.


PUERTO 5900 VNC

VNC es un software libre de escritorio remoto, basado en una estructura cliente-servidor el cual permite tomar el control del servidor remotamente a través del cliente, pudiendo compartir la pantalla, controlar el ratón y teclado, en definitiva como si estuviéramos en frente del pc.

Analizando la máquina Metasploitable 2 con Nessus, éste nos indica que la contraseña para el servicio VNC es "password". Nos conectaremos con un cliente vncviewer.

VNCViewer con privilegios root. 


PUERTO 6667 IRC

Se llama IRC a una red de comunicación en tiempo real en la que puedes hablar con varios usuarios a la vez. Estos usuarios están conectados a una de las redes IRC como puede ser freenode, Hispano, etc. Éstas a su vez están divididas en canales de diferentes temáticas.

Existe un exploit en Metasploit que aprovecha un backdoor malicioso añadido al archivo Unreal3.2.8.1.tar.gz entre Noviembre 2009 y Junio 2010.

Configuración del exploit.

Shell con privilegios root.


PUERTO 8180 TOMCAT

Apache Tomcat funciona como un contenedor web con soporte de servlets (servlet: clase en el lenguaje de programación Java utilizada para ampliar las capacidades de un servidor). Tomcat puede funcionar como un servidor web por sí mismo.

Primero intentaremos obtener algo de información mediante el auxiliar tomcat_administration.

Credenciales obtenidos.

Con los credenciales en nuestro poder, podemos usar el exploit Apache Tomcat Manager Application Deployer Authenticated Code Execution. Éste exploit puede usarse tanto en plataformas Windows como Unix, cambiando el payload acorde a la plataforma.

Configuración del exploit.

Configuramos los campos PASSWORD y USERNAME con los credenciales obtenidos anteriormente, los típicos RHOST/RPORT con la IP y puerto de la máquina objetivo y LHOST/LPORT con la IP y puerto de la máquina atacante. Lanzamos el exploit.

Shell obtenida sin privilegios.

Para escalar privilegios podemos usar el exploit visto anteriormente (udev_netlink).


Hasta aquí la última entrega de ésta guía Metasploitable 2. Espero que os haya sido de utilidad y hayáis aprendido con ella. Como siempre está hecha con fines únicamente educativos, no nos hacemos responsables del mal uso que se le pueda dar. 

Un saludo.

Google Analytics