Con acceso completo al disco de un servidor web IIS, ¿podría acceder al servidor de la base de datos?

4

Aquí hay una configuración teórica:

  • Tiene un servidor web que ejecuta Windows Server con IIS
  • Tiene un sitio web ejecutándose aquí que se conecta a una base de datos
  • Este sitio web puede iniciarse automáticamente cuando se inicia el servidor
  • La conexión a la base de datos se realiza mediante la autenticación confiable de Windows
  • Una parte maliciosa obtiene el disco duro de su servidor web

¿Es posible que la parte maliciosa obtenga acceso a la base de datos?

Por lo que yo sé, la autenticación confiable utiliza al usuario con el que se ejecuta el sitio web. Por lo tanto, debe haber algún tipo de inicio de sesión automático para este usuario. ¿Es esta el área que puede ser explotada? ¿Existe alguna complicación debido al controlador de dominio?

No publique respuestas como "Sí, por supuesto que es posible" o "No, es 100% seguro". Me gustaría recibir explicaciones sobre hasta qué punto es seguro y por qué.

    
pregunta Richard 13.04.2013 - 18:50
fuente

2 respuestas

3

Cuando las máquinas de Windows son parte de un dominio de Active Directory, Kerberos se utiliza para administrar la autenticación. Con Kerberos, el controlador de dominio es el maestro del juego: todos confían en él, y ninguno más. Lo que significa que cuando el sitio web se conecta a la base de datos, la máquina que contiene el sitio web (llamémoslo "WWW") habla con el controlador de dominio ("DC") y usa un valor secreto, almacenado en las entrañas de WWW. para convencer a DC de que es exactamente esa máquina, cuerdas y sonidos de espíritu y cuerpo: el valor secreto es accesible solo para el proceso más privilegiado en WWW.

Una vez que DC está convencido, respeta la solicitud de WWW que es: "dame un ticket que pueda mostrar a la base de datos, lo que demuestra que soy el usuario 'SomeDomain \ SomeAccount' que intenta conectarme a la base de datos con ese nombre" . Ese ticket es el resultado de un cálculo criptográfico que el servidor de base de datos (DB) verificará al hablar con el DC ("¿Este ticket es válido en este momento?"). Los boletos incluyen un tiempo de espera y son de corta duración.

¿Qué significa para nuestro problema? Significa que un atacante que obtiene una copia completa del disco duro de WWW aprende el valor secreto que WWW utiliza para autenticarse en el DC. Esto no le da ningún secreto que sería suficiente para conectarse directamente a la base de datos. De hecho, el DB solo confía en DC. Por lo tanto, para poder conectarse realmente a la base de datos, el atacante debe presentarse como WWW , es decir, arrancar una máquina en la misma red, que utilizará su conocimiento del contenido del disco duro de WWW para convencer a DC de que es el WWW legítimo, y obtener un ticket de conexión que complacerá a DB. Además, para lograrlo, la máquina WWW genuina deberá apagarse o, al menos, desconectarse de la red, porque si el DC ve dos máquinas simultáneamente, ambas afirman ser WWW y conocen el secreto específico de WWW a tal efecto. , entonces es probable que el DC se enfade y deje de hablar con ambos.

Resumen: En su escenario, el robo de una copia del disco completo del servidor web permitirá conexiones maliciosas a la base de datos solo en caso de un ataque activo en el que el atacante ejecuta un falso máquina en lugar del servidor web genuino. Esto es equivalente a tomar el control a nivel de administrador del servidor web (si el atacante cambia o no el hardware en realidad es irrelevante). Para conectarse correctamente a la base de datos, el controlador de dominio aún debe estar involucrado.

    
respondido por el Thomas Pornin 14.04.2013 - 15:37
fuente
0

Sí, hay una manera: simplemente coloque el contenido del disco duro en una máquina de su control y arranque. Ahora tiene un proceso ejecutándose allí que puede acceder a la base de datos.

Ahora manipulas la memoria de ese proceso para que haga lo que quieres. Puede forzar el acceso a Windows usando un restablecimiento de contraseña sin conexión para una cuenta de administrador no relacionada, o simplemente usar hardware de acceso directo a la memoria (memorias USB que explotan errores de NTFS, tarjetas PCI-E, ...). Luego puedes cortar el cerebro vivo de ese proceso y hacer que ejecute consultas arbitrarias.

    
respondido por el usr 13.04.2013 - 19:49
fuente

Lea otras preguntas en las etiquetas