29 de agosto de 2008

Como remover um malware que se esconde na Lixeira

Outro dia eu estava lendo os arquivos do blog Geringonças e gambiarras do Jefferson Ryan e me deparei com um artigo explicando algumas formas de eliminar mauwares que se escondem dentro da lixeira do windows, achei tão pertinente, simples e útil que postei aqui no brazuca.

OK, então o PC já está infectado e você já determinou que o filho de uma $%@## está escondido em C:\Recycler, mas você não consegue tirá-lo de lá porque ao clicar na pasta onde ele está escondido ela aparece como vazia? Isso é fácil de resolver quando você sabe por que isso acontece.

Editado: O jeito mais fácil de fazer isso mesmo é apagar a lixeira inteira porque ela é recriada automaticamente na próxima vez que o usuário jogar algo lá. O que vou explicar a seguir é para os casos onde você não quiser ou não puder apagar a(s) lixeira(s), por qualquer motivo.

Editado 2: Para o propósito deste texto, existe uma diferença bem grande entre esvaziar a lixeira e apagar a lixeira.

O comportamento "especial" de pastas como a Lixeira é definido pelo conteúdo de um arquivo desktop.ini contido nela. Apesar da Microsoft ter decretado a obsolescência dos arquivos INI há muito tempo em favor do Registro, continua usando arquivos INI para isso porque não haveria como garantir que a pasta mantivesse seu status ao mover o drive para outro PC, se o status fosse armazenado no Registro.

Quando o Windows lê um arquivo desktop.ini que diz que aquela pasta é uma Lixeira, ele só exibe os arquivos contidos nessa pasta que estiverem no banco de dados da Lixeira. Assim se o malware se copia para uma Lixeira sem usar o mecanismo de exclusão para a Lixeira do Windows, ele fica invisível. E isso é ridiculamente fácil de se fazer.

Para conseguir entrar na pasta e ver todos os arquivos, incluindo o malware, você precisa excluir o arquivo desktop.ini ou eliminar seu conteúdo, mas como fazer isso se desktop.ini também está invisível? Podem existir vários métodos para se fazer isso, mas o mais simples é este:

Com o Explorer, entre na Lixeira até onde puder ir. Geralmente será um caminho como este:

C:\RECYCLER\S-1-5-21-1177238915-261478967-625345543-1003

Copie o caminho, que aparece na barra de endereço do Explorer.

Abra o notepad, peça Arquivo->Abrir e na caixa de escolha de arquivo cole o caminho. Antes de dar o ENTER, acrescente "\desktop.ini" (sem as aspas). Você ficará com um caminho como este:

C:\RECYCLER\S-1-5-21-1177238915-261478967-625345543-1003\desktop.ini

Dê ENTER. O arquivo desktop.ini abrirá exibindo este conteúdo (se for uma Lixeira):

[.ShellClassInfo]
CLSID={645FF040-5081-101B-9F08-00AA002F954E}

Mas não importa o que está escrito. Selecione tudo, apague e salve o arquivo.

Tente entrar na pasta de novo com o Explorer. Ela será uma pasta normal agora e você verá tanto o arquivo desktop.ini quanto o malware e qualquer outra coisa que estiver escondida lá.

Se existirem várias lixeiras dentro de Recycler (o Windows cria uma para cada usuário) repita o procedimento para todas elas.

Óbviamente, você pode ter que fazer isso no Modo de Segurança ou dando boot por outra instalação, ou o malware irá impedir você de apagá-lo.

Nenhum comentário: