Auditoría y CTF

Pentestit.ru – Test lab v.9 (Parte II)

Buenas hackers, seguimos con el write-up del lab. Pentestit.ru

 

Atención Spoiler!!

Buscamos aquellos directorios y ficheros con setuid.

1

Para ver la IP de la máquina en la cual estamos:

2

Tenemos Netcat. La forma más básica de operar consiste en:

  • Crear un socket para conectarse a un servidor ( o bien para hacer de servidor )
  • Enviar todo lo que entre por la entrada estándar por el socket
  • Sacar por la salida estándar todo lo recibido por el socket

Con el Netcat hacemos una conexión a ver que nos responde:

daemon@tl9-ssh:~$ nc 172.16.0.4 21

220 ProFTPD 1.3.5 Server (by CyBear 32C) [::ffff:172.16.0.4]

Ahora sabemos que el FTP tiene el ProFTPD 1.3.5

Usamos el NetCat para un escaneo de puertos.

3

El puerto 21 FTP está abierto. Realizando una búsqueda de la versión del FTP, vemos que es vulnerable. Los atacantes pueden obtener acceso al servidor debido a una vulnerabilidad en la seguridad del demonio del FTP y sustituir el código fuente por uno que contiene un backdoor en la versión ProFTPD 1.3.3c. Este backdoor introducido por los atacantes en el servidor permite a usuarios sin autenticación, acceso remoto y ejecutar la versión modificada del demonio del ProFTPD.

Seguimos leyendo el código y vemos ACIDBITCHEZ algo que me llama mucho la atención por su significado en el mundo underground.

4

Consultando el siguiente link: http://www.securitygeneration.com/security/proftpd-1-3-3c-briefly-backdoored-by-hackers/. Comprobamos que el código fuente de esta versión fue modificada para insertar un backdoor en él. Sabiendo el exploit automatizado que ofrece Metasploit, vemos HELP ACIDBITCHEZ. Por tanto con esta información hay que ver el código fuente del ProFTPD e irnos al código help.c, y vemos que la palabra cambia a CYBEAR32C. Hacemos NetCat al servidor FTP por el puerto correspondiente, ejecutamos la sentencia HELP CYBEAR32C, y acceso con éxito en el servidor FTP.

5

Realizamos un escaneo de otro servidor con NC y vemos que tiene el puerto 80 y 22 abierto. Nos conectamos vía SSH con el parámetro -L local_socket:host:hostport y creamos un túnel entre nuestro puerto local y el remoto, usando la conexión del usuario conocido.

6

Simplemente con poner en el navegador localhost y configurando el proxy, ya tendríamos la página web remota debido al tunelizado. Es un sitio en el cual podemos subirle una imagen.

7

Probamos subiendo un archivo PHP pero sin éxito, por tanto intentamos añadir una línea PHP en la sección de los comentarios de la imagen con exiftool. En las auditorias web ahí que probar a subir archivos con todas las extensiones posibles hasta conseguir introducirlo en el servidor. Le cambiamos a formato .pht fichero de hipertexto parcial, donde almacena una página HTML incluyendo código en PHP

Subimos el fichero y tenemos resultados negativos. Por tanto usaremos magic number que es requerido para identificar a un fichero como GIF. Con GIF89a evadimos la verificación de archivos si subimos el script con código en PHP en su interior, será reconocido por el servidor como una imagen por la cabecera, permitiendo ejecutar código PHP. Un número mágico en informática se refiere a unos caracteres alfanuméricos que de manera codificada identifican un archivo, generalmente ubicados al comenzar dicho archivo. Su uso está extendido en entornos asociados con Unix y sus derivados, como método alternativo de identificación.

Ejecutamos en el navegador y nos devuelve el “Hi” del echo. Seguidamente para poder ejecutar comandos de sistema en el servidor a través de una web shell, usamos una sencilla y lo añadimos al script.

8

Con esto ya obtenemos una webshell y podemos ejecutar comandos de sistema en el servidor Linux.

Un saludo, Naivenom

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Los datos introducidos se guardarán en nuestra base de datos como parte del comentario publicado, como se indica en la política de privacidad.