Hacemos el reconocimiento con nmap:
En primer lugar revisamos el ftp como anonymous, pero está vacío:
Y esto corre dentro del puerto 80:
Si hacemos fuzzing, encontramos un wordpress:
Y en la web vemos el usuarios elyana:
Y al ser wordpress, también tenemos el wp-login.php:
Si en el panel de login ponemos el usuario elyana, vemos que el mensaje de error cambia, por lo que nos muestra que este usuario existe:
Con esta información, podemos hacer un ataque de fuerza bruta, pero vemos que no encuentra las credenciales:
Por lo que haremos una enumeración de plugins:
wpscan --url http://10.10.7.50/wordpress/ -e p
Y encontramos este que es vulnerable:
Tenemos un script que explota un local file inclusion y podemos leer archivos internos de la máquina:
https://github.com/p0dalirius/CVE-2016-10956-mail-masta
Por tanto lo ejecutamos de la siguiente forma para intentar leer el fichero /etc/passwd:
python3 CVE-2016-10956_mail_masta.py -t http://10.10.123.20/wordpress/ -f /etc/passwd
Y vemos que funciona:
De todos modos, en más webs nos enseñan alternativas para leer archivos internos de la máquina, como ene sta otra de wpscan:
https://wpscan.com/vulnerability/8609
Lo probamos en el navegador y funciona:
Pero si queremos obtener el fichero wp-config.php, tenemos que hacer uso de un wrapper:
http://10.10.6.206/wordpress/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=php://filter/convert.base64-encode/resource=../../../../../wp-config.php
Esto lo tenemos que decodificar ya que viene en base64:
Y vemos las credenciales del usuario elyana:
Elyana:H@ckme@123
Por tanto iniciamos sesión en el panel de autenticación de wordpress y ya estamos dentro:
Una vez dentro vamos a la parte de theme editor y luego al archivo de footer.php, que tendremos que modificar con un archivo malicioso:
Nos bajamos el php de pentest monkey para enviarnos una reverse shell y lo configuramos de la siguiente forma:
Lo pegamos en el footer.php::
Cargamos la página oficial:
Y recibimos la reverse shell:
Dentro de la máquina, dentro del directorio Elyana, vemos que hay una pista que nos dice que la contraseña está escondida en el sistema y que la encontremos:
Investigando vemos que dentro del /etc/crontab se llama a un script dentro del directorio backups:
Y este es el contenido del script:
Por tanto le añadimos el código para enviarnos una bash como root:
Nos ponemos en escucha con netcat y recibimos la conexión como root:
Ahora, si visualizamos las flags, veremos que están en base64, pero podemos decodificarlas fácilmente y ya las obtenemos:



























