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

viernes, 19 de agosto de 2016

Tr0ll 1 trolleando a Fwhibbit

Buenas hackers! CTF de Vulnhub


Si queréis hacer el CTF, a partir de aquí os recomiendo que no leais nada, simplemente como guía si os veis atascados, como muchas veces me sucede ami cuando resuelvo un CTF, que necesito echarle un ojo jijiji


Atención Spoiler!!


Ejecutamos el netdiscover:

A continuacion usamos nmap, para descubrir las direcciones IP dentro de una subred:


Ahora ya descubierto la direccion IP en la misma red, realizamos un reconocimiento para ver que
puertos tiene abiertos y sus servicios.
Con la opción -sV permite ver la versión de los servicios, con -sS permite TCP SYN, con -A permite la deteción de OS, la versión, script scanning, y traceroute. Con -T4 indica el tiempo de envió de los paquetes, es decir desde 0-6, la más baja es la más lenta, y también mejor ya que podría evadir algunos firewall.



Al ejecutar con -A los scripts por defecto de nmap, como el http-enum.nse, hemos descubierto un archivo llamado robots.txt muy interesante.
Y como se puede apreciar tiene el puerto 21 FTP, con el login anonymous habilitado!!
EL 22 SSH
El 80 HTTP
Ahora con curl, realizamos una petición HTTP con la siguiente dirección del servidor:

Curl: Herramienta muy útil para hacer peticiones HTTP, que nos permite usar distintos protocolos
para dichas peticiones.
Introducimos la dirección del servidor en el navegador y WTF!!!

Usaremos nikto y el CLI de dirb:



También podemos usar wfuzz:


En robots.txt tenemos esto:

Hacemos Curl, y vemos que hay una imagen en la página HTML:


Vamos con el FTP:
Usaremos un auxiliar, para saber la versión aunque ya el Nmap nos lo pudo mostrar anteriormente


Conectamos mediante FTP, y antes de ver el archivo que existe, capturamos trafico para ver lo
vulnerable que es el servicio FTP, dandonos el user y pass en texto claro.


Analizamos a su vez el tráfico capturando paquetes con Wireshark:


Ahora abrimos el archivo lol.pcap:


Y vemos que existe un archivo .txt:


Y leemos su significado, dando a analizar y follow:


También podemos ver el acrhivo lol.pcap con strings:


Probamos el directorio que nos menciona el archivo,en el navegador:


Vemos que existe un binario en el servidor, nos lo descargamos con wget:


Damos permisos de ejecución al binario y ejecutamos:


Bien esta dirección nose en cuanto nos puede ayudar, pero ¿qué podría significar?
Probamos con file para ver el tipo de fichero y strings:


Nos devuelve algo más de información... Siendo una dirección de memoria podríamos usar gdb pero sin resultados positivos. Así que vamos hacer algo más sencillo poniendo esa dirección en el navegador:


Bien pues encontramos dos directorios en la cual podemos encontrar información valiosa, en uno de ellos encontramos un .txt donde contiene usernames, mientras que en el otro directorio tenemos las password.
Por tanto que mejor que descargarnos los archivos con wget y montarnos el diccionario, ya que esto es una vía de acceso en uno de los servicios ya sea ftp o ssh.


Con nano users.txt:


Nos descargamos el archivo pass y creamos el diccionario:


Si visualizas Pass.txt solo viene una linea en el archivo, "buen trabajo", por tanto nose esta maquina tengo la sensación de que me esta troleando jjj, leyendo algún walkthroughs, haré lo siguiente:



Usamos hydra para realizar un ataque de fuerza bruta:


Sin resultados....Probemos con el servicio SSH:


Y si esa era la pass.... :(
Por tanto, vamos a conectarnos por SSH al servidor:



Bien obtuvimos una shell, pero se me cerro la conexion THIS F*** MACHINE IS TROLLING ME?
Si estamos conectados cierto tiempo, nos cierra la conexión...
Bueno nos conectamos de nuevo, y vamos a ver los ficheros con permisos de escritura y redirijimos los errores a /dev/null:



Existe un fichero en Python donde tenemos permisos de escritura, lo visualizamos:



Este script lo que hace es borrar de forma recursiva todo lo contenido en /tmp
En esta carpeta es donde podemos siempre ejecutar algún exploit o scripts para poder realizar una escalada de privilegios.
Seguidamente nos dirijimos a var/log ya que es interesante ver el cron, debido a que quizás haya una tarea programada de ejecutar el script cleaner.py.
Antes veremos los permisos:


Tenemos permisos para escritura, lectura y ejecución con el usuario actual...
Visualizamos:


Efectivamente cada 2 minutos se ejecuta todos los dias este script. Coincide con el tiempo que se nos desconecta la conexión al servidor. Así que si editamos este script y en vez de que borre todo lo que existe en /tmp, copiamos lo que hay en /bin/sh a /tmp/sh y cambiamos a permisos de setuid y ejecutables para cualquier usuario, podremos ser root.


Bien una vez editado el script vamos a esperar a que se nos desconecte, para que el cron haga su trabajo ejecutando el cleaner.py. Nos logueamos y ejecutamos /tmp/sh


Ahora nos dirijimos a /root y alli esta la bandera!:


Espero que os sirva esta posible solución al CTF
Un saludo Naivenom

miércoles, 10 de agosto de 2016

Pentesting a la abeja (Parte I)

Buenas hackers! En este CTF vamos a hacer un pentesting a esta maquina de Vulnhub
Es una maquina muy completa que permite realizar un test de intrusión al servidor, además de hacer retos de pentesting web tal como SQLi, XSS, LFI etc...



----------------
bee-box - README
----------------

bee-box is a custom Linux VM pre-installed with bWAPP.

With bee-box you have the opportunity to explore all bWAPP vulnerabilities!
bee-box gives you several ways to hack and deface the bWAPP website.
It's even possible to hack the bee-box to get root access...

This project is part of the ITSEC GAMES project. ITSEC GAMES are a fun approach to IT security education. 
IT security, ethical hacking, training and fun... all mixed together.
You can find more about the ITSEC GAMES and bWAPP projects on our blog.

We offer a 2-day comprehensive web security course 'Attacking & Defending Web Apps with bWAPP'.
This course can be scheduled on demand, at your location!
More info: http://goo.gl/ASuPa1 (pdf)

Enjoy!

Cheers

Malik Mesellem
Twitter: @MME_IT
 

Atención Spoiler!!

Se verá dirbuster para realizar una busqueda mediante fuerza bruta en directorios y archivos del servidor. Existen distintos diccionarios en la carpeta wordlists sobre esta herramienta.
Una vez visto con dirbuster el listado de directorios obtenidos y garantizado un metodo de acceso para poder subir un backdoor, vamos a iniciar el metasploit para comprobar FTP por el puerto 21, y asi un medio de subida al servidor.
Con el usuario anonymous se aprecia que tiene permisos de lectura y escritura, y por tanto que esta habilitado este tipo de usuario en el servidor FTP, muy usado en las organizaciones para acceso publico.
Se crea un backdoor en php, para poder obtener una shell reversa, con msfvenom.
Una vez subido necesitamos tener el exploit multi/handler a la escucha de la conexión inversa o payload creado con msfvenom en php. Por tanto tenemos que elegir el payload que usamos para crear ese rabbit.php
Una vez a la escucha, abrimos el navegador y enviamos una peticion http clickeando el archivo rabbit.php y asi se nos abrira una sesion meterpreter a nivel usuario del servidor.


Un saludo Naivenom

viernes, 10 de junio de 2016

Reto VulnHub: Bobby

Qué pasa hackers! Hoy vengo con ganas de traeros un reto de VulnHub. Para quien no lo conozca, VulnHub es una página donde pueden encontrarse diferentes recursos para practicar y aprender acerca de seguridad, administración y redes, muchas veces en forma de reto.

Estos retos te dan un objetivo, que en materias de seguridad suele ser ganar acceso de root (o administrador) de sistema dentro de una máquina virtual, aunque puede ser otro objetivo, como el robo de información conseguir un flag o bandera, por poner ejemplos. En el caso que nos ocupa, es un reto de seguridad cuyo objetivo es conseguir dicho flag.

Un flag o bandera es normalmente un fichero, dentro de la propia máquina (más o menos escondido), que podemos conseguir cumpliendo los objetivos y consiguiendo acceso a cierta parte del sistema de archivos de la misma. Este flag es la prueba de que hemos conseguido dichos objetivos; por decirlo de alguna forma, hemos superado la prueba. 

La máquina que trataremos es Bobby. Bobby es un pobre sujeto que ha decidido comenzar un blog personal alojado en su misma máquina, publicando algunos datos personales sin prestar demasiada atención a la seguridad de la misma antes de ponerla al alcance de cualquiera en Internet.

La fuente de dicha máquina puede encontrarse aquí. Para instalar la máquina necesitaremos un software de virtualización (yo utilizo VMware Workstation, otra opción es Virtual Box). En la página encontraremos un fichero ejecutable, que al ejecutarse abrirá una utilidad para generar una imagen de Windows XP Professional SP3 vulnerable, tomando como entrada una imagen normal de dicho sistema operativo.

Este método suele utilizarse en páginas como VulnHub; modifica un sistema operativo para asegurarse que al instalarse sea vulnerable de una u otra manera (abriendo puertos, instalando servicios de red, creando usuarios, etc.) sin tener que modificar nada en la máquina posteriormente.

Una vez instalada la máquina, tenemos un equipo XP vulnerable. En mi caso, suelo configurar todas las máquinas de prueba en modo de red NAT para que no sean accesibles desde el exterior, pero sí entre ellas.

Máquina XP de Bobby funcionando en Vmware Workstation
Podemos empezar realizando una exploración de los puertos y servicios de la máquina mediante Zenmap (o nmap). Puede hacerse en la máquina anfitrión o a través de cualquier otra máquina que tengamos virtualizada en la misma red NAT. En este caso utilizaré para las pruebas una máquina Kali Linux.

Primero tenemos que conocer la dirección IP de la máquina objetivo. Aunque normalmente podemos conocerla mediante un barrido IP con nmap o Zenmap, en la página donde conseguimos la máquina podemos ver que está configurada con la IP 192.168.1.11. Por ahorrarnos problemas de direccionamiento, estableceremos nuestra red NAT dentro de la misma subred (192.168.10/24).

Conociendo ya a priori la dirección IP del objetivo, ejecutamos un escaneo IP intenso con Zenmap. Puede hacerse de forma similar en nmap, pero así tenemos resultados más visuales.

Reporte de Zenmap
Vemos ya que hay dos servicios abiertos: un servicio web tipo IIS (servidor web de Microsoft) y un servicio FTP. Ya tenemos por dónde empezar a explorar. Si accedemos al servicio mediante el explorador web, nos encontraremos un blog personal que Bobby acaba de empezar, con algunos datos acerca de su persona: su película favorita, su grupo favorito y su sistema operativo preferido.

El blog de Bobby
Siempre que nos encontremos una página web, se debería echar un vistazo al código fuente de la misma en búsqueda de pistas acerca de su naturaleza, comentarios del autor, etc. La experiencia puede decirnos que, al ser una página muy simple, probablemente programada puramente a mano, haya anotaciones y comentarios en el HTML. Efectivamente, podemos ver uno interesante.

Comentario en el código fuente
Al parecer, Bobby prefiere que le llamen Bobby, y no Bob o Robert. Este tipo de datos siempre vienen bien a la hora de recolectar información; al usuario de este sistema se le llama de tres maneras, que bien pueden ser su nombre de usuario o parte de él. Lo anotaremos para luego.

Podemos seguir explorando un poco el servicio web. Para ello podemos contar con herramientas como Nikto o WhatWeb, que realizan una serie de comprobaciones automáticas sobre el servidor web y nos arrojan datos muy valiosos acerca del mismo. Ambas herramientas se encuentran dentro de Kali Linux, pero son descargables para otras distribuciones.

Salida de Nikto sobre el servicio web
Salida de WhatWeb sobre el servicio web
Algunos datos interesantes que tenemos sobre el servicio es que es un Microsoft IIS versión 5.1 (desactualizado), y que tiene habilitados los métodos PUT y TRACE, que son considerados muy inseguros. Es sobre todo interesante este primer método, ya que nos permite subir archivos al servidor web. Además, no se ha borrado la página /localstart.asp, incluida de forma predeterminada en servidores IIS antiguos como este.

Tras una breve exploración al servicio web, comprobamos que podemos conectarnos al servicio FTP mediante una simple sesión de consola. Pero, ¿cual es el usuario y la contraseña? En este punto es interesante probar un ataque de fuerza bruta mediante diccionario sobre el servicio FTP.

Para ello, necesitamos dos diccionarios: uno para los nombres de usuario, dado que no conocemos ninguno, y otro para las contraseñas. Para el primero, podemos intentar con uno bastante simple hecho a mano, contando con los posibles nombres de Bobby: Bobby, Bob y Robert.

Lista/diccionario corto de usuarios
Los introduciremos con la primera letra tanto en mayúscula como en minúscula, solo por si acaso. Si estos usuarios no resultan, habría que probar otras opciones más avanzadas; de momento, mantengámoslo simple.

Para el diccionario de contraseñas, utilizaremos la herramienta cewl, incluida dentro de Kali Linux. Dicha herramienta lee una página web y crea un diccionario simple a partir de las palabras que encuentra en ella. Aunque no distingue mayúsculas y minúsculas, siendo el resultado un diccionario muy simple y algo inexacto, suele ser un buen punto sobre el que empezar.

Diccionario de contraseñas generado por cewl
Para el ataque por fuerza bruta mi primera opción suele ser siempre THC Hydra, incluida también en Kali Linux con una interfaz gráfica (Hydra GTK). La configuración del ataque es bastante sencilla, simplemente introduciendo la IP objetivo, el protocolo para el ataque (FTP) y los diccionarios de usuarios y contraseñas.

El resultado aparece enseguida; hemos tenido suerte. El usuario es bob, la contraseña es Matrix. ¡Hay que proteger más los servicios, hombre!

Resultado del bruteforce
Mediante una sesión de consola, podemos acceder al servicio FTP utilizando estos credenciales. ¡Bingo! Además, nos ha tocado la lotería: tenemos acceso al directorio wwwroot que contiene las páginas web accesibles mediante el servicio IIS.

Tachán, acceso al FTP via consola
Como pequeña prueba para comprobar nuestros permisos, nos introduciremos en el directorio wwwroot e intentaremos crear un directorio llamado owned para la ocasión. Efectivamente, podemos hacerlo, así que tenemos permisos de escritura sobre el directorio raíz del servicio web. Algo preocupantemente peligroso para la víctima porque, como veremos ahora, podemos vulnerar el servicio subiendo un backdoor.

Comprobamos que tenemos permisos de escritura
Al parecer, también se ha dejado una pequeña pista en el archivo hint.html que encontramos en el directorio raíz del servicio web. Tras descargarlo, podemos ver que íbamos bien encaminados:

Pequeña pista para la explotación
Ahora podemos entrar en la fase más jugosa: la explotación. Dado que podemos subir ficheros al directorio web, una buena opción es subir en el equipo víctima un backdoor o puerta trasera que al ser accedido se conecte a nuestra máquina, proporcionando acceso completo a la víctima.

El backdoor deberá ser activado mediante el servicio web; para ello, tendrá que tener un formato de página web. Sabemos que el servidor es un Microsoft IIS con tecnología ASP, así que tendrá que ser un código ejecutable en dicho entorno.

Metasploit Framework, que podemos encontrar también en Kali Linux, nos proporciona herramientas para crear backdoors de estas características. Utilizaremos la herramienta msfvenom que nos proporciona Metasploit para esta tarea.

En este caso, msfvenom creará una página tipo ASP que, al ser accedida, realizará una conexión a nuestro equipo (lo que se conoce como conexión inversa, dado que es la víctima la que se conecta a nosotros) y ejecutará el payload Meterpreter, proporcionándonos una interfaz de acceso completa e interactiva con la víctima en forma de comandos.

El primer paso será crear el propio backdoor. Puede hacerse de manera muy sencilla con msfvenom en una consola de Kali Linux. Hay que prestar especial atención a las opciones que le indicamos, que deberán proporcionar información sobre el equipo víctima a la herramienta, como la arquitectura (x86), familia del sistema operativo (Windows) y sobre nuestro equipo, indicando la IP y el puerto a la escucha al que se conectará el backdoor.


Creación del backdoor
Acto seguido dejaremos a la escucha en nuestro equipo un handler de Metasploit que recibirá la conexión desde el equipo víctima. Para no tener que desplegar todo el framework, lo haremos mediante la utilidad msfcli, que simplemente ejecuta el handler de forma directa. Tendremos que especificar, nuestra IP y puerto que queremos a la escucha, así como el payload que se ejecutará.

Handler para la conexión

Por último, subiremos al equipo víctima el archivo ASP que ejecutará el backdoor, haciendo uso de nuestra conexión FTP. La transferencia se realiza con éxito.

Subida del backdoor a la víctima
 Solo queda ir a un explorador web, ejecutar el backdoor, y cruzar los dedos...

Sesión de Meterpreter abierta
¡El ataque ha tenido éxito! En el handler que dejamos a la escucha tenemos un intérprete Meterpreter funcionando con permisos de sistema. Hemos conseguido acceso total a la máquina. Dado que el objetivo era conseguir un flag como prueba de nuestro éxito, abriremos un intérprete de comandos de Windows con nuestra conexión Meterpreter para buscarla. La encontraremos en el escritorio del usuario Administrator.

Flag o secreto de la máquina
 Con esto, el reto queda terminado y superado. Espero que os haya gustado el desafío. Para cualquier duda o reclamación, dejad un comentario e intentaré responder lo mejor que pueda. Gracias por leer.

Un saludo!
hartek

Google Analytics