Entonces, supongamos que alguien obtiene un shell de una máquina remota (por supuesto, a través de Internet). Pero el shell (linux) está bajo el usuario www. ¿Habría alguna forma de intentar la escalada de privilegios?
Sí. Los dos métodos principales de escalada de privilegios son:
Fallos en el kernel. Si existe una vulnerabilidad en el kernel, esto podría permitir que un usuario sin privilegios obtenga acceso de nivel raíz. Estas vulnerabilidades se han visto muchas veces en el pasado.
Programas Setuid. Si existe una vulnerabilidad en cualquiera de los programas Setuid instalados en el sistema, es posible que un usuario sin privilegios pueda usar esto para obtener acceso de root (o escalado). . Tales vulnerabilidades han sido comunes en el pasado.
(Existen otros métodos de escalamiento de privilegios, como explotar una condición de carrera en la forma en que un programa que se ejecuta como root usa el sistema de archivos, o vulnerabilidades en un servicio / demonio del sistema. Sin embargo, mi impresión es que son un poco menos común.)
Mi regla general es: si un atacante tiene acceso a una cuenta no root en su máquina, debe asumir que si son lo suficientemente dedicados y sofisticados, prepárese para poder obtener la raíz en su máquina . No es una cosa segura, sin duda, pero detener de manera confiable la escalada de privilegios es difícil cuando el atacante tiene acceso a una cuenta de usuario en su sistema.
Si esto suena abstracto, permítame hacerlo más concreto para usted. ¿Sabes cómo, para la mayoría de los teléfonos inteligentes, puedes ir a Internet y encontrar una manera de rootear o jailbreak a tu teléfono? Bueno, adivine qué: cuando ejecuta algún programa para "rootear" su teléfono, bajo las coberturas funciona explotando alguna vulnerabilidad de escalada de privilegios en su teléfono. Las herramientas para rootear su teléfono tienen una o más explotaciones de escalada de privilegios, y existe una comunidad de entusiastas de teléfonos que busca y recopila con avidez tales vulnerabilidades. Empíricamente, la mayoría de los teléfonos pueden estar enraizados; en otras palabras, la mayoría de los teléfonos tienen al menos una de estas vulnerabilidades. La prevalencia de tales vulnerabilidades le da una idea de la dificultad de prevenir de manera confiable la escalada de privilegios.
Estoy de acuerdo con la respuesta anterior, pero me gustaría ampliarlo un poco, las vulnerabilidades del kernel han sido comunes (recientemente, Ben informó que es un usuario común con un controlador de red que puede permitir el escalón privilegiado). linux no tiene La mejor protección de chroot (incluso con grsec), pero el kernel parcheado con grsec (en un servidor debería tener la protección "más alta" aplicada) hace que sea muy difícil para los usuarios que no son root realmente hacer algo. Ahora, una vez que un atacante tiene acceso a una cuenta de usuario, no está tan interesado en obtener root, pero está más interesado en usar eso como punto de apoyo para otros servidores en la red o usarlo como un tipo de zeus c & c, gané. No discuta zeus aquí porque eso haría que la discusión fuera muy extensa, pero como regla general, puede ejecutar un cron para hacer una búsqueda reg-ex para "Espere, la página se está cargando" ya que generalmente es una cuenta comprometida ( a través del kit de explotación de agujero negro). Los atacantes generalmente usan zeroaccess para mantener ese acceso y este es otro kit de exploits basado en javascript. En resumen, haga todas las actualizaciones de seguridad, ejecute los núcleos grsec y debería estar en buena forma, hth.
Lea otras preguntas en las etiquetas linux privileged-account