Como a nossa prevenção é considerada a partir da perspectiva do intruso, primeiro precisamos saber como o intruso invade. Atualmente, os métodos mais populares de invasão da Web são primeiro obter o webshell do site procurando vulnerabilidades do programa e, em seguida, encontrar métodos exploráveis correspondentes para aumentar os privilégios com base na configuração do servidor e, em seguida, obter permissões do servidor. Portanto, é um método eficaz de cooperar com o servidor para configurar a prevenção do webshell.
1. Impedir que o banco de dados seja baixado ilegalmente
Deve-se dizer que os administradores com um pouco de segurança de rede alterarão o caminho padrão do banco de dados dos programas de sites baixados da Internet. Claro, alguns administradores são muito descuidados. Eles pegam o programa e instalam-no diretamente em seu próprio servidor, sem nem mesmo deletar o arquivo de descrição, muito menos alterar o caminho do banco de dados. Dessa forma, os hackers podem baixar diretamente o programa fonte do site do site do código-fonte, testá-lo localmente para encontrar o banco de dados padrão e, em seguida, baixar o banco de dados para ler as informações do usuário e os dados internos (geralmente criptografados MD5) para encontrar o gerenciamento entre e faça login para obter o webshell. Outra situação é que o caminho para o banco de dados do site fica exposto devido a um erro de programa. Então, como evitar que isso aconteça? Podemos adicionar o mapeamento estendido do mdb. Conforme mostrado abaixo:
Abra o IIS e adicione um mapeamento MDB, para que o mdb possa ser analisado em outros arquivos que não podem ser baixados: "Propriedades do IIS" - "Diretório inicial" - "Configuração" - "Mapeamento" - "Extensão de aplicativo" e adicione o arquivo .mdb para aplicar a análise Você mesmo pode escolher o arquivo usado para analisá-lo, desde que o arquivo do banco de dados esteja inacessível.
As vantagens disso são: 1. Arquivos de banco de dados no formato de sufixo mdb definitivamente não serão baixados 2. Funciona para todos os arquivos mdb no servidor, o que é muito útil para administradores de host virtual;
2. Impedir o upload
Para a configuração acima, se você estiver usando um banco de dados MSSQL, desde que haja um ponto de injeção, você ainda poderá usar a ferramenta de injeção para adivinhar o banco de dados. Se não houver nenhuma autenticação ao fazer upload de arquivos, podemos fazer upload diretamente de um Trojan asp para obter o webshell do servidor.
Em relação ao upload, podemos resumir da seguinte forma: os diretórios que podem ser carregados não recebem permissões de execução e os diretórios que podem ser executados não recebem permissões de upload. O programa da web é executado pelo usuário do IIS. Precisamos apenas conceder permissão de gravação ao usuário do IIS em um diretório de upload específico e, em seguida, remover a permissão de execução do script desse diretório para evitar que invasores obtenham o webshell por meio do upload. Método de configuração: primeiro, no diretório da web do IIS, abra a guia de permissões e conceda apenas aos usuários do IIS permissões de leitura e lista de diretório, em seguida, insira o diretório onde os arquivos carregados são salvos e o banco de dados é armazenado, adicione permissões de gravação aos usuários do IIS e, finalmente, Basta alterar "Pure Script" para "None" na opção "Propriedades"-"Permissão de Execução" desses dois diretórios. Veja a imagem abaixo:
Um último lembrete: ao definir as permissões acima, você deve prestar atenção à configuração da herança do diretório pai. Evite configurar em vão.
[Página cortada]
3. Injeção MSSQL
Para a defesa do banco de dados MSSQL, dizemos que devemos primeiro começar com a conta de conexão do banco de dados. Não use a conta SA para o banco de dados. Usar a conta SA para conectar-se ao banco de dados é um desastre para o servidor. De modo geral, você pode usar a conta de permissão DB_OWNER para se conectar ao banco de dados. Se puder funcionar normalmente, é mais seguro usar o usuário público. Depois de definir a permissão dbo para se conectar ao banco de dados, o invasor basicamente só pode obter o webshell adivinhando o nome de usuário e a senha ou backup diferencial. Para o primeiro, podemos defendê-lo criptografando e modificando o endereço de login padrão do plano de fundo de gerenciamento. . Para backup diferencial, sabemos que sua condição é ter permissões de backup e conhecer o diretório da web. A procura de diretórios da web geralmente é obtida percorrendo o diretório para pesquisar ou lendo diretamente o registro. Qualquer um desses dois métodos usa os dois procedimentos armazenados estendidos xp_regread e xp_dirtree. É claro que também podemos excluir os arquivos DLL correspondentes.
Mas se o diretório da web for exposto devido a um erro de programa, não há nada que você possa fazer. Portanto, também precisamos diminuir as permissões da conta e não conseguir concluir a operação de backup. As operações específicas são as seguintes: Nas propriedades desta conta - opções de acesso ao banco de dados, basta selecionar o banco de dados correspondente e conceder-lhe permissões DBO. Não operar outros bancos de dados. Em seguida, vá para database-properties-permissions para remover as permissões de backup e log de backup do usuário, para que os invasores não possam obter o webshell por meio de backup diferencial.
[Página cortada] 3. Injeção MSSQL
Para a defesa do banco de dados MSSQL, dizemos que devemos primeiro começar com a conta de conexão do banco de dados. Não use a conta SA para o banco de dados. Usar a conta SA para conectar-se ao banco de dados é um desastre para o servidor. De modo geral, você pode usar a conta de permissão DB_OWNER para se conectar ao banco de dados. Se puder funcionar normalmente, é mais seguro usar o usuário público. Depois de definir a permissão dbo para se conectar ao banco de dados, o invasor basicamente só pode obter o webshell adivinhando o nome de usuário e a senha ou backup diferencial. Para o primeiro, podemos defendê-lo criptografando e modificando o endereço de login padrão do plano de fundo de gerenciamento. . Para backup diferencial, sabemos que sua condição é ter permissões de backup e conhecer o diretório da web. A procura de diretórios da web geralmente é obtida percorrendo o diretório para pesquisar ou lendo diretamente o registro. Qualquer um desses dois métodos usa os dois procedimentos armazenados estendidos xp_regread e xp_dirtree. É claro que também podemos excluir os arquivos DLL correspondentes.
Mas se o diretório da web for exposto devido a um erro de programa, não há nada que você possa fazer. Portanto, também precisamos diminuir as permissões da conta e não conseguir concluir a operação de backup. As operações específicas são as seguintes: Nas propriedades desta conta - opções de acesso ao banco de dados, basta selecionar o banco de dados correspondente e conceder-lhe permissões DBO. Não operar outros bancos de dados. Em seguida, vá para database-properties-permissions para remover as permissões de backup e log de backup do usuário, para que os invasores não possam obter o webshell por meio de backup diferencial.