HereBash

TAG -> Dockerlabs | CTF

Datos
  • Máquina -> HereBash

  • Dificultad -> Medio

  • Creador -> firstatack

Primero que todo verificamos conectividad con la maquina victima.

 ping -c 1 172.17.0.2 -R
PING 172.17.0.2 (172.17.0.2) 56(124) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.132 ms
RR: 	172.17.0.1
	172.17.0.2
	172.17.0.2
	172.17.0.1

--- 172.17.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.132/0.132/0.132/0.000 ms

Mediante el TTL podemos intuir que estamos frente a una maquina Linux, procedemos a crear nuestras carpetas de trabajo con mkt y entramos a recognition para hacer un escaneo primario.

 PortScanner -i 172.17.0.2 -t 1000 -s 2 -a V C -o recognition.txt

[+] Autor: Anonymous17
[+] Targeted: 172.17.0.2
[+] (TTL -> 64): Linux
[!] Escaneo de puertos (socket):

  [!] Puerto 22 abierto!
  [!] Puerto 80 abierto!
  [+] Port: 1000 / 1000 

[+] Lista de puertos abiertos: [22, 80]
[+] Información de servicios y versiones:

  [+] 22/tcp    ssh       OpenSSH 6.6p1 Ubuntu 3ubuntu13 (Ubuntu Linux; protocol 2.0)
  [+] 80/tcp    http      Apache httpd 2.4.58 ((Ubuntu))

[+] Comprobando vulnerabilidades:

  [!] SSH posiblemente vulnerable: Enumeración de usuarios 
  [+] Tecnologías detectadas en HTTP:

        http://172.17.0.2:80 [200 OK] Apache[2.4.58],
        Country[RESERVED][ZZ],
        HTTPServer[Ubuntu Linux][Apache/2.4.58 (Ubuntu)],
        IP[172.17.0.2],
        Title[Apache2 Ubuntu Default Page: It works],

[*] Evidencia guardada en recognition.txt

Al parecer el SSH es vulnerable a enumeración de usuarios pero esta parcheado, procedemos a hacer escaneos un escaneo de vulnerabilidades básicas.

Por ahora no vemos nada interesante, así que hacemos un escaneo mas exhaustivo con nmap

Aun no vemos nada fuera de lo común, pero podemos hacer un ultimo escaneo con nmap de vulnerabilidades en el puerto 80.

El script http-enum descubrió una carpeta scripts, esta carpeta no contiene nada interesante pero seria una buena idea hacer un fuzzing mas a profundidad.

Encontramos varias cosas interesantes primero una pagina html el cual podríamos sacar una lista de usuarios o contraseñas y tambien en otra carpeta vemos una imagen que descargaremos para su posterior análisis.

Al parecer si tiene información oculta podemos usar la herramienta stegseek para romper la contraseña de seguridad.

Ahora sabiendo la contraseña podemos extraer correctamente el archivo.

Ahora nos extrajo un zip el cual tambien requiere credenciales de seguridad, en este caso podemos usar zip2john para extraer el hash y romper la contraseña con john, en mi caso como ya rompí la contraseña simplemente poniendo --show puede ver la contraseña igualmente pondré el comando que se usaría con john.

Como podemos ver la contraseña es chocolate, procedemos a descomprimir el zip.

Nos da una posible contraseña, usando Hydra podremos probar que usuario existe en ssh que tenga esta contraseña de la siguiente manera.

Usando el wordlists de xato tendríamos que tener mucha paciencia hasta que llegue a rosa, después de tener estas credenciales procedemos a logearnos por ssh y le damos un pequeño tratamiento a la TTY.

Si listamos el contenido de su home vemos un directorio un poco extraño

Dentro de ese directorio hay muchas carpetas con archivos dentro, pero hay un ejecutable que nos da una idea de que esta pasando.

Con esta información podemos deducir que existe una contraseña entre todos esos archivos, así que usando el comando find hacemos una búsqueda de la siguiente manera.

Lo que hicimos fue:

  • Ejecutar el comando find especificando que trabaje desde donde se ejecuta, esto lo hacemos usando el punto (.)

  • Con -type f limitamos la búsqueda de archivos regulares, osea no carpetas ni enlaces simbólicos.

  • El -exec le dice a find que ejecute un comando en cada archivo que coincida con los criterios especificados.

  • En este caso ejecutaremos el comando cat los {} es para indicar el nombre del archivo que find encontró, terminamos el comando con \;.

  • A la salida de este comando le agregamos con | el comando grep lo que hace es filtrar lo que le pasemos, en este caso, le indicamos que filtre por la letra x aunque con el signo $ le indicamos que haga todo lo contrario, osea que nos muestre las coincidencias que no tengan x.

Con este comando encontramos las credenciales de pedro, así que procedemos a escalar a pedro.

En el home de pedro tambien vemos algo interesante, hay un directorio que se llama ... procedemos a entrar en el.

En este directorio encontramos una nota oculta que nos dice que, la contraseña de juan esta en algún lado del sistema fuera del home de pedro, por lo cual recurrimos a find de nuevo e intuimos que el archivo que contiene la contraseña de juan lleva en alguna parte juan, así que procedemos a buscar.

Le acertamos, encontramos lo que parece ser un base64 pero en realidad la contraseñe es así mismo tal cual en base64.

Dentro del home de juan vemos un archivo oculto del patron, el cual pudiera ser root, la nota nos dice que dejo sus credenciales en algún lado del sistema, después de usar find y buscar en diferentes lugares, me percato de que las credenciales están dentro de los alias de juan.

Nota

Alias: Es donde podemos abreviar comandos por medio de shortcuts.

Ejemplo: alias l='ls -la'

Con esto podemos dar por terminado esta maquina.

Last updated