Hack Me Please 1: El Reto

      No hay comentarios en Hack Me Please 1: El Reto

Hack Me Please 1: El Reto

Hack Me Please: 1

Es una máquina virtual creada como practica para pruebas de penetración de seguridad ofensiva, la cual se puede encontrar en vulnhub.com.

Me encontraba en un webinar cuando hablaron de ella y la propusieron como reto el cual es tener acceso como root, por lo que escribo lo que realice para llegar a la resolución.

  1. Descargamos la máquina virtual: Clic aquí
  2. Ya que tenemos la máquina virtual vemos que es un archivo tipo ova, por lo que lo montamos con ayuda de virtualbox.

    Cómo instalar Oracle VM VirtualBox


    Todo lo que necesitas saber sobre los archivos OVA en VirtualBox


  3. Ya que lo importamos, en mi caso cambie la configuración de la red a “Adaptador Puente” para que tome una ip de mi red y sea un poco más real por así decirlo.
  4. Una vez que iniciemos la máquina, procedemos con identificar los equipos en nuestra red en mi caso en una consola en windows ejecute el comando “arp -a”:
    ARP
  5. Ya que tenemos la IP de la máquina virtual escaneamos con nmap para visualizar que puertos tiene abiertos y obtuvimos los puertos abiertos: 80 (http) y 3306 (mysql):
    nmap 192.168.100.19

    NMAP

  6. Ahora ya sabemos que tiene una web, por lo que procedemos a revisar y me encuentro con que es meramente informativo el sitio y toca revisar el código fuente del sitio para ver si podemos ver algo que nos indique si es algún tipo de cms y buscar fallos en el:
    Hack Me Please: 1
  7. Encontré un archivo javascript “main.js” en donde hay un comentario indicando algo de una aplicacion “SeedDMS”:
    SeedDMS
  8. Por lo que se agrega ese directorio al enlace principal “http://192.168.100.19/seeddms51x/seeddms-5.1.22/” y nos arroja un login, al ver esto lo primero que paso por mi cabeza fue intentar buscar si era vulnerable a SQL Injection pero no fue así:
    SeedDMS
  9. Ahora fui a ExploitDB para buscar vulnerabilidades ya reportadas del sistema en cuestión “SeedDMS” y encontré con que tiene vulnerabilidad de tipo RCE, y viendo la información indica que las carpetas default donde carga los archivos es “/data/1048576/” y por lo que veo enumera los archivos cargados y los renombra al número según como fue cargado, pero quedo casi donde mismo ya que necesito estar logeado.
    SeedDMS
  10. Por lo que me doy a la tarea de buscar archivos de configuración del sistema, buscando en google “seeddms config file” en donde el primer resultado es de un repositorio de SeedDMS en github en donde muestra el archivo “settings.xml”, y buscando más información del sistema, veo que este archivo de texto plano lleva los datos de configuración, por lo que inmediatamente ingreso al archivo del sitio de la máquina virtual “http://192.168.100.19/seeddms51x/conf/settings.xml” y encuentro los datos de acceso a la base de datos:
  11. Ahora pruebo conectarme a la base de datos siendo esta prueba satisfactoria para poder ver los datos de acceso al sistema:
    mysql -h 192.168.100.19 -u seeddms -p

    SeedDMSComo ya sabemos que la base de datos se llama “seeddms” lo indicamos para trabajar en ella:

    use seeddms;

    SeedDMS

  12. Ahora procederemos a buscar las tablas de los usuarios:
    show tables;

    SeedDMS
    SeedDMS

  13. Ya tenemos 2 usuarios pero una contraseña está cifrada en md5 la cual se intentó crackear lo cual no fue exitoso, pero cambiaremos el hash por otro para que la contraseña sea “123456”:
    Usuario: admin
    Contraseña: f9ef2c539bad8a6d2f3432b6d49ab51a
    
    Usuario: saket
    Contraseña: Saket@#$1337

    SeedDMS

  14. Ingresamos al sistema con el usuario “admin” y la contraseña “123456” y listo, estamos dentro:
    SeedDMS
  15. En este momento ya sabemos que es un sistema de gestión de documentos, y por lo que vimos en exploitdb, podremos subir una reverse shell sin problema la cual dejo el enlace: https://github.com/pentestmonkey/php-reverse-shell en donde cambiaremos la ip y el puerto al equipo que se conectara, en mi caso:
    SeedDMS
  16. Antes de cargarla pondremos a la escucha ese puerto para que pueda conectarse sin problemas con ayuda de netcat:
    nc -lvvp 666

    SeedDMS


    Todo lo que necesitas saber sobre Netcat


  17. Ya que tenemos el puerto a la escucha, procedemos a cargar la reverse shell y ejecutamos;
    SeedDMS
    Nos aparece este error, pero si cargo el archivo por lo que procedemos a ejecutar accediendo a el “http://192.168.100.19/seeddms51x/data/1048576/4/1.php” y listo ya tenemos shell:
    SeedDMS
  18. Ahora buscaremos la forma de escalar privilegios, por lo que primero revisaremos los usuarios del sistema y encontramos un usuario (saket) del cual tenemos posibles datos de acceso por lo que probaremos si son correctos:
    su saket

    SeedDMS
    Los datos son correctos y vemos que este usuario tiene privilegios sudo, por lo que ya solo nos queda elevar a root, pero al intentarlo nos aparece error:
    SeedDMS

  19. Esto es por que no tenemos una shell tan interactiva por así decirlo, para lograr esto generaremos una shell interativa a traves de python:
    python3 -c "import pty; pty.spawn('/bin/bash')"

    SeedDMS

  20. Ahora si intentaremos escalar privilegios con el comando sudo su, y listo ya nos pregunta nuevamente la contraseña y ya somos root;
    SeedDMS

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *