Antes de entrar en detalle a cerca de mandar y recibir shells, es importante entender lo que es una shell. En los términos más simples, las shells son lo que usamos para interactuar con el entorno de linea de comandos. En Linux, las más comunes son bash o sh mientras que en Windows son cmd.exe y Powershell.
Para obtener una shell del servidor en nuestra máquina, podemos conseguirlo de dos maneras:
- Mandando una shell desde el servidor a nuestra máquina (sólo si podemos inyectar comandos en el servidor), se conoce como reverse shell.
- Abriendo un puerto para que escuche y conectándonos a él (bind shell).
