Dado que nuestra prevención se considera desde la perspectiva del intruso, primero necesitamos saber cómo invade el intruso. En la actualidad, los métodos de intrusión web más populares consisten en obtener primero el webshell del sitio web buscando vulnerabilidades del programa y luego encontrar los métodos explotables correspondientes para escalar privilegios según la configuración del servidor y luego obtener permisos del servidor. Por lo tanto, es un método eficaz cooperar con el servidor para configurarlo y evitar webshell.
1. Evitar que la base de datos se descargue ilegalmente
Cabe decir que los administradores con un poco de seguridad de red cambiarán la ruta de base de datos predeterminada de los programas de sitios web descargados de Internet. Por supuesto, algunos administradores son muy descuidados: obtienen el programa y lo instalan directamente en su propio servidor, sin siquiera eliminar el archivo de descripción, y mucho menos cambiar la ruta de la base de datos. De esta manera, los piratas informáticos pueden descargar directamente el programa fuente del sitio web desde el sitio del código fuente, luego probarlo localmente para encontrar la base de datos predeterminada y luego descargar la base de datos para leer la información del usuario y los datos internos (generalmente cifrados con MD5) para encontrar la administración. entrada e inicie sesión para obtener el webshell. Otra situación es que la ruta a la base de datos del sitio web está expuesta debido a un error del programa. Entonces, ¿cómo evitar que esto suceda? Podemos agregar el mapeo extendido de mdb. Como se muestra a continuación:
Abra IIS y agregue una asignación MDB, para que mdb pueda analizarse en otros archivos que no se pueden descargar: "Propiedades de IIS" - "Directorio de inicio" - "Configuración" - "Asignación" - "Extensión de aplicación" y agregue el archivo .mdb para aplicar el análisis Puede elegir el archivo utilizado para analizarlo usted mismo, siempre que el archivo de la base de datos sea inaccesible.
Las ventajas de esto son: 1. Los archivos de base de datos en formato de sufijo mdb definitivamente no se descargarán 2. Funciona para todos los archivos mdb en el servidor, lo cual es muy útil para los administradores de hosts virtuales;
2. Evitar la carga
Para la configuración anterior, si está utilizando una base de datos MSSQL, siempre que haya un punto de inyección, aún puede usar la herramienta de inyección para adivinar la base de datos. Si no hay ninguna autenticación al cargar archivos, podemos cargar directamente un troyano asp para obtener el webshell del servidor.
En cuanto a la carga, podemos resumirlo de la siguiente manera: los directorios que se pueden cargar no reciben permisos de ejecución y los directorios que se pueden ejecutar no reciben permisos de carga. El usuario de IIS ejecuta el programa web. Solo necesitamos otorgarle permiso de escritura al usuario de IIS en un directorio de carga específico y luego eliminar el permiso de ejecución del script de este directorio para evitar que intrusos obtengan el webshell mediante la carga. Método de configuración: primero, en el directorio web de IIS, abra la pestaña de permisos y solo otorgue a los usuarios de IIS permisos de lectura y lista de directorios, luego ingrese al directorio donde se guardan los archivos cargados y se almacena la base de datos, agregue permisos de escritura a los usuarios de IIS y, finalmente, Simplemente cambie "Pure Script" a "Ninguno" en la opción "Propiedades" - "Permiso de ejecución" de estos dos directorios. Vea la imagen a continuación:
Un último recordatorio: cuando configura los permisos anteriores, debe prestar atención a configurar la herencia del directorio principal. Evite configurar en vano.
[Cortar-Página]
3. Inyección MSSQL
Para la defensa de la base de datos MSSQL, decimos que primero debemos comenzar con la cuenta de conexión de la base de datos. No utilice la cuenta SA para la base de datos. Usar la cuenta SA para conectarse a la base de datos es un desastre para el servidor. En términos generales, puede utilizar la cuenta de permiso DB_OWNER para conectarse a la base de datos. Si puede ejecutarse normalmente, lo más seguro es utilizar el usuario público. Después de configurar el permiso dbo para conectarse a la base de datos, el intruso básicamente solo puede obtener el webshell adivinando el nombre de usuario y la contraseña o una copia de seguridad diferencial. Para el primero, podemos defenderlo cifrando y modificando la dirección de inicio de sesión predeterminada del fondo de administración. . Para el respaldo diferencial sabemos que su condición es tener permisos de respaldo y conocer el directorio de la web. La búsqueda de directorios web generalmente se logra recorriendo el directorio para buscar o leyendo directamente el registro. Cualquiera de estos dos métodos utiliza los dos procedimientos almacenados extendidos xp_regread y xp_dirtree. Solo necesitamos eliminar estos dos almacenes extendidos. Por supuesto, también podemos eliminar los archivos dll correspondientes.
Pero si el directorio web queda expuesto debido a un error del programa, no hay nada que puedas hacer. Por lo tanto, también debemos reducir los permisos de la cuenta para que no podamos completar la operación de copia de seguridad. Las operaciones específicas son las siguientes: En las propiedades de esta cuenta - opciones de acceso a la base de datos, solo necesita seleccionar la base de datos correspondiente y otorgarle permisos DBO. No opere otras bases de datos. Luego vaya a permisos-propiedades-base de datos para eliminar los permisos de copia de seguridad y registro de copia de seguridad del usuario, de modo que los intrusos no puedan obtener el webshell a través de una copia de seguridad diferencial.
[Cortar-Página] 3. Inyección MSSQL
Para la defensa de la base de datos MSSQL, decimos que primero debemos comenzar con la cuenta de conexión de la base de datos. No utilice la cuenta SA para la base de datos. Usar la cuenta SA para conectarse a la base de datos es un desastre para el servidor. En términos generales, puede utilizar la cuenta de permiso DB_OWNER para conectarse a la base de datos. Si puede ejecutarse normalmente, lo más seguro es utilizar el usuario público. Después de configurar el permiso dbo para conectarse a la base de datos, el intruso básicamente solo puede obtener el webshell adivinando el nombre de usuario y la contraseña o una copia de seguridad diferencial. Para el primero, podemos defenderlo cifrando y modificando la dirección de inicio de sesión predeterminada del fondo de administración. . Para el respaldo diferencial sabemos que su condición es tener permisos de respaldo y conocer el directorio de la web. La búsqueda de directorios web generalmente se logra recorriendo el directorio para buscar o leyendo directamente el registro. Cualquiera de estos dos métodos utiliza los dos procedimientos almacenados extendidos xp_regread y xp_dirtree. Solo necesitamos eliminar estos dos almacenes extendidos. Por supuesto, también podemos eliminar los archivos dll correspondientes.
Pero si el directorio web queda expuesto debido a un error del programa, no hay nada que puedas hacer. Por lo tanto, también debemos reducir los permisos de la cuenta para que no podamos completar la operación de copia de seguridad. Las operaciones específicas son las siguientes: En las propiedades de esta cuenta - opciones de acceso a la base de datos, solo necesita seleccionar la base de datos correspondiente y otorgarle permisos DBO. No opere otras bases de datos. Luego vaya a permisos-propiedades-base de datos para eliminar los permisos de copia de seguridad y registro de copia de seguridad del usuario, de modo que los intrusos no puedan obtener el webshell a través de una copia de seguridad diferencial.