Biteme
En esta maquina tendremos que tener en cuenta el analisis del codigo fuente en php de la aplicación web durante la prueba de pentesting, asi mismo realizaremos un script en python para automatizar el proceso de encontrar la contraseña y codigo correcta. Para la escalada de privilegios tendremos que explotar los permisos que tiene el usuario sobre la ejecucion de un binario que es fail2ban.

Walkthrough
Enumeración
Iniciamos como en todas las maquinas realizando un nmap enumerando solo los puertos abiertos, ya que si lanzamos la enumeración de versiones y servicios esto tomara mucho tiempo.
Teniendo los puertos abiertos 22 y 80 procederemos a enumerar las versiones y servicios que se ejecuten en este.
Enumerando versión y servicio de cada uno de los puertos procederemos a seguir enumerando.
Puerto 80
Visitando el sitio web encontramos lo siguiente:

Para poder seguir enumerando el contenido del sitio web, procederemos enumerar los directorios del sitio web.
El directorio que encontramos es console, pero seguiremos enumerando el contenido web que se tiene.
Luego de enumerar encontramos los siguientes archivos:
/config.php
/robots.txt
/dashboard.php
/functions.php
/mfa.php
Buscando un poco de información sobre php, se puede agregar a una s a dashboard.phps se puede visualizar el código fuente function.highlight-file.
En lo siguiente podremos ver el código fuente de cada uno de los archivos .php
http://10.10.21.12/console/index.phps.
http://10.10.21.12/console/functions.phps
http://10.10.21.12/console/config.phps:
Para obtener el contenido en texto plano realizaremos lo siguiente:
Tenemos el usuario que es valido. Visualizando el código vemos que se hace una comparativa de los tes últimos dígitos de un hash, este hash es generado al ingresar la contraseña.
Explotación
Para automatizar el proceso de encontrar la palabra que al convertir un hash md5 en los tres últimos dígitos contengo 001.
Ejecutando el el script encontraremos las palabras que al pasarlo a hash md5 terminan en 001.
Haciendo uso de las credenciales: jason_test_account : violet pasaremos a un panel donde debemos ingresar un código.

Para encontrar el código realizaremos un script en python3, pero haciendo uso de las cabeceras donde esta la cookie de la sesión iniciada.
Ejecutamos el script y esperamos unos minutos para encontrar el código.
Al ingresar el código valido, la web nos redijera a un panel donde se hace búsquedas de archivos y visualizarlos.

Enumeraremos los usuarios del sistema haciendo uso de los buscadores y encontraremos con el usuario jason que en directorio /home/jason/.ssh/id_rsa. Este id_rsa esta encriptado, para encontrar el la contraseña del id_rsa haremos uso de ssh2john
Teniendo el hash, procederemos a crackear este con John The Ripper para obtener la contraseña.
Escalada de privilegios
Cambiando los permisos del id_rsa con el siguiente comando chmod 600 id_rsa para poder hacerlo uso.

Usuario: Jason
Enumerando los permisos del usuario del jason podemos ver los siguientes permisos.
Teniendo los permisos (fred) NOPASSWD: ALL, para escalar privilegios a fred ejecutaremos una /bin/bash como el usuario fred.
Usuario: fred
Enumerando los permisos de fred haremos uso de sudo -l para visualizar los permisos de ejecución con privilegios. Vemos que tenemos permisos de ejecutar /bin/systemctl restart fail2ban con privilegios de usuario root.
Fail2ban es una aplicación de software de código abierto diseñada para mejorar la seguridad de los servidores Linux al protegerlos contra ataques de fuerza bruta y otros tipos de ataques automatizados. La idea principal detrás de Fail2ban es detectar patrones de comportamiento malicioso en los registros (logs) del sistema y tomar medidas para prevenir o mitigar esos ataques.
Fail2ban utiliza filtros para definir patrones y acciones para especificar qué hacer cuando se detecta un patrón. Los filtros y acciones están definidos en archivos de configuración, lo que permite una personalización adecuada según las necesidades del administrador del sistema.
Integración con iptables o firewalld: Fail2ban a menudo trabaja en conjunto con iptables (o firewalld, dependiendo de la distribución de Linux) para agregar reglas de firewall dinámicamente y bloquear el tráfico de las direcciones IP que se consideran maliciosas.
Para escalar privilegios por vía fail2ban modificaremos el archivo /etc/fail2ban/action.d/iptables-multiport.conf para inyectar nuestro código malicioso.
Ahora inyectaremos nuestro comando para cambiar los permisos de la /bin/bash con el siguiente comando actionban=/bin/bash -c 'chmod u+s /bin/bash'.
Usuario: root
Ahora para que se ejecute el el comando que inyectamos, realizaremos varios intentos fallidos al logarnos por ssh.

Esperamos unos minutos para iniciar sesión y ejecutamos una bash -p

¡VAMOS!
Happy hacking :)
Last updated