O servidor foi comprometido. Onde olhar?

1

Recentemente tivemos um servidor web rodando o Apache (2.2.3) comprometido e estamos no processo de limpeza de dados e mudança para outro servidor para que possamos reconstruir o atual.

Queremos tentar descobrir o que foi feito depois que terminamos de nos mudar para um novo servidor. Nós temos as coisas fáceis, o código PHP injetado em vários arquivos e o PHP inserido no banco de dados.

Ao mesmo tempo, ainda temos tags com os documentos html alterados ou um grande bloco de texto inserido logo após a tag de abertura no documento. Isso acontece em todos os arquivos HTML enviados para os mecanismos de pesquisa, seja a partir de um arquivo HTML estático ou gerados a partir de um arquivo PHP. Ele também redirecionará qualquer pessoa proveniente de mecanismos de pesquisa para outro site, desde que seu referenciador contenha determinadas palavras-chave.

Se a página está em cache em nosso proxy reverso, isso não acontece mais, o que nos ajudou a reduzi-la a algo potencialmente no Apache. É aqui que eu me pergunto "Onde eu pareço?" nós procuramos por módulos extras adicionados e verificados em nossos arquivos de configuração e ainda não encontramos nada que se destaque.

Onde podem estar alguns outros lugares para verificar para que possamos ver exatamente o que está acontecendo?

    
por DMClark 30.03.2011 / 20:48

2 respostas

1

Se você conhece as palavras-chave, você pode grep todos os arquivos em seu diretório / root para eles. Em seguida, percorra manualmente os resultados.

    
por 31.03.2011 / 16:25
0

Código inserido em arquivos ... a primeira coisa que eu acho é um usuário comprometido. FTP simples hack job. Na minha experiência (que é bastante considerável ser um administrador de linha de frente para uma empresa de hospedagem na web) senha fraca foi mais vezes que as pessoas gostam de admitir. Não há muitas maneiras de escrever em um arquivo e essa é uma delas.

Minha sincera recomendação é limpar tudo e, em seguida:

  1. Desative totalmente o FTP. Idealmente através de configurações de firewall.
  2. Aplique senhas restritas e também alterações regulares de senhas.
  3. Muitas vezes você será tentado a permitir permissões frouxas em arquivos e diretórios. Nunca permita gravação global. Há sempre um jeito melhor.
  4. Não use código PHP que não seja de uma fonte bem respeitada. Scripts de lixo das pesquisas do Google simplesmente não valem a pena.

Se você realmente deseja rastrear o evento que pode ter ocorrido, procure endereços IP com os quais você não esteja familiarizado em seus registros de FTP. Se você acha que foi um hack de script, verifique seu diretório / tmp em busca de scripts de hackers. Qualquer executável é uma má notícia, assim como qualquer script. Verifique seus logs de apache aplicáveis para referências aos arquivos afetados, especialmente se esses arquivos não forem acessados com frequência.

Lembre-se de que você pode apagar o código dos arquivos em massa com:

sed -ie s/regexorstring//g *

... execute no diretório apropriado. Isso é apenas um achado e substituição (rudimentar) que irá pegar qualquer corda que você queira e irá removê-la. Um pouco de expressões regulares irá facilitar bastante a tarefa.

    
por 07.07.2011 / 05:26