Backdoor corre WordPress con un plugin vulnerable lo que nos permitió obtener información de los procesos en ejecución, encontramos que corre un servidor de gdb por donde accedimos a un primer usuario. Tras conectarnos a una sesion screen logramos acceso como root.
Nombre | Backdoor |
---|---|
OS | Linux |
Puntos | 20 |
Dificultad | Facil |
IP | 10.10.11.125 |
Maker | |
|
Recon
nmap
nmap muestra multiples puertos abiertos: SSH (22), HTTP (80) y waste? (1337).
|
|
Web Site
Una solicitud de curl nos muestra en los headers algunas direcciones que pertenecen a WordPress.
|
|
Al visitar la pagina vemos que efectivamente es un WordPress, y no muestra mayor informacion.
WordPress
Enumeramos los plugins con la opcion por default aunque no mostró nada inicialmente, por lo que cambiamos a deteccion mixta, aún asi solo muestra el plugin akismet
en su version 4.2.1. Además la versión de Wordpress (5.8.1) no parece ser vulnerable.
|
|
Directory Traversal
El plugin akismet no parece tener algun tipo de vulnerabilidad, aún asi, en la carpeta o directorio de plugins se muestra ebook-download
.
Si accedemos al readme.txt
vemos que permite la descarga de archivos. Al investigar un poco acerca de este plugin encontramos que permite acceder a cualquier directorio de la maquina. Si realizamos una solicitud con curl el resultado es el archivo wp-config.php
donde vemos las credenciales de la base de datos de WordPress.
|
|
Sabiendo que podemos acceder a cualquier archivo de la maquina utilizamos un wordlist para enumerar los archivos e informacion sensible.
|
|
User - User
Proc - Enumeration
Archivos de configuracion no mostraron mucha información, pero vemos /proc
e investigando acerca de estos archivos, especificamente de net/tcp vemos que es posible decodificar su contenido y ver que puertos estan a la escucha localmente. Utilizando un script de perl vemos que existe el puerto 1337 aun asi este puerto no muestra ninguna informacion al conectarnos con netcat pero aún asi aparece abierto en nmap.
|
|
Investigando un poco más sobre Directory Traversal encontramos un post que explica que es posible obtener informacion leyendo los archivos /proc
los cuales pueden tener mucha informacion acerca de los procesos en ejecucion, variables, directorios, configuracion, etc. Inicialmente obtuvimos el archivo /proc/sched_debug
el cual nos mostró todos los procesos incluyendo el PID de cada uno de estos (full output en pestaña 2), vemos algunos interesantes, como cron, sh, sleep y true.
|
|
|
|
Creamos un wordlist para enumerar los procesos a los cuales podemos acceder a /proc/{pid}/cmdline
para ver si encontramos informacion interesante.
|
|
Tras ejecutar ffuf vemos una lista de archivos cmdline.
|
|
Tras descargar cada uno de los archivos vemos multiples comandos siendo ejecutados entre ellos un servidor de gdbserver
ejecutado por el usuario user
y, screen
por root. gdb esta siendo ejecutado en el puerto 1337 que encontramos en net/tcp.
|
|
GDBServer
ELF File
Encontramos que es posible ejecutar un archivo elf para obtener una shell inversa tras configurar un archivo en el servidor. Creamos el archivo utilizando msfvenom
.
|
|
Ejecutamos gdb con el archivo creado.
|
|
Realizamos la conexión con el servidor gdb, subimos el .elf
, configuramos como ejecutable el archivo para finalmente ejecutarlo.
|
|
En nuestra shell con netcat vemos que logramos obtener una shell como usuario user
.
|
|
Metasploit
Encontramos que existe un exploit de metasploit que permite ejecutar comandos. Tras configurar el exploit en metasploit obtuvimos una shell con el usuario user
y la flag user.txt
.
|
|
Privesc
Enumerando los procesos en ejecucion por el usuario root vemos que esta ejecutando una sesion suelta (detached), tal y como se mostraba en los archivos proc.
|
|
Nos conectamos a la sesion como invitado logrando obtener una shell como root y nuestra flag root.txt
.
|
|