-->

quinta-feira, 7 de agosto de 2008

Como remover um malware que se esconde na Lixeira

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.

14 comentários:

  1. Se o negócio é pra power user, eu tenho uma saida mais rapida que costumo usar nesses casos.

    Abro um prompt do dos (tela preta!) e mando ver:

    pula pro drive que tem a lixeira que quer mexer.

    cd recycled (ou recycler, depende...)
    attrib -s desktop.ini
    edit desktop.ini (mexe no que precisar, salva e sai)
    attrib +s desktop.ini

    Dessa forma o windows não chia que não pode mexer no arquivo.

    ResponderExcluir
  2. Luciano,

    desktop.ini não está na pasta Recycler. Ele está em uma pasta oculta dentro da pasta Recycler.

    Você testou o método que está recomendando?

    ResponderExcluir
  3. Jefferson.

    Ai é que esta... depende da versão do Windows ou de coisas que eu até o presente momento desconheço.

    Eu uso o windows 2000 SP4. E tenho exatamente 4 unidades de disco fisicas no meu PC.

    E um deles é particionado.

    Então eu tenho 5 unidades alocadas com "letras" para discos rígidos, ok? em 3 deles realmente existe um diretório RECYCLED que o desktop.ini já esta diretamente dentro dele. E dois deles que tem o diretório RECYCLER e dentro tem um diretório S-1-5-21-682003330-287218729-839522115-500 ou variante disso e dentro dele esta o desktop.ini

    Agora qual a diferença física entre RECYCLER e RECYCLED? Desconheço.

    A diferença visual que observo é:

    RECYCLED tem o ícone padrão da lixeira e não tem o diretório com "números" dentro. O arquivos excluidos ficam no root do diretório recycled

    RECYCLER não tem o ícone padrão da lixeira, e dentro dela tem o diretório com aquele numero monstro, de dentro dele estão os arquivos excluídos e o desktop.ini

    Se achar interesante, eu posso tirar um printscreen dos dois caso e te envio.

    ResponderExcluir
  4. Bom.. resolvi fazer uma imagem pra você ver a doideira.

    Tá aqui:

    http://i6.photobucket.com/albums/y212/Fudeba/lixeira.jpg

    Pode abrir sem receio, o link é limpo e é um algum meu no photobucket.

    Se quiser usar a imagem pra algum propósito, pode ficar a vontade.

    ResponderExcluir
  5. Luciano,

    Recycled é o nome da lixeira no Windows 95/98. Não existem lixeiras distintas para cada usuário (o 95/98 não tem uma noção correta de perfis de usuário) por isso desktop.ini está na raiz de Recycled.

    Do Windows 2000 em diante a pasta se chama Recycler. E cada usuario tem sua lixeira individual dentro dela. O número no nome da lixeira é o SID do usuário.

    Se suas unidades tem a pasta Recycled você já as usou pelo menos uma vez dando boot pelo 95/98.

    ResponderExcluir
  6. Ai é que esta o engraçado... Estes HD's foram formatados aqui neste PC mesmo, com windows 2000 e nunca viram a cara de um Windows 98 ou Millenium que seja!

    "E agora José?" Quem explica isso?

    E o mais curioso, viu que na lixeira do drive E: tem três SID diferentes e o mesmo aponta sempre para a mesma lixeira? Na imagem eu não mostro isso, mas em qualquer um que eu entrar, dá na mesma lixeira.

    Mistérios...

    ResponderExcluir
  7. Luciano,

    1)Meu melhor palpite é que você tenha rodado nesse PC algum software burro que acha que "mover para a Lixeira" é "mover para uma pasta chamada Recycled". É preciso usar a chamada correta da API do Windows para mover um arquivo para a Lixeira apropriadamente. Eu rodo Win2K SP4 há meses como meu servidor e eu não tenho uma pasta Recycled lá.

    2)O Windows 2000 está enrolando você. As três lixeiras tem conteúdos diferentes mas você só pode ver o conteúdo do usuário logado atualmente. Apague o arquivo desktop.ini de cada uma delas e você verá.

    ResponderExcluir
  8. Esqueci de acrescentar:

    A existência de uma pasta Recycled no Win2K pode indicar uma execução prévia de um malware qualquer destinado ao Win9x.

    ResponderExcluir
  9. Bom... eu já andei expiando dentro de todas as "lixeiras" pelo prompt do DOS com o attrib, que vai mostrar tudo, até os arquivos que estão ocultos (atributos -A e -H) e não são exibidos na lixeira.

    E pra dizer que eu não achei nada, somente na lixeira do C:\ tinha um arquivo INFO2 com 20 bytes perdido por lá. Arranquei o atributo hidden dele e dei um move pra um diretório qualquer, abri num editor hexadecimal e não tem absolutamente nada nele.

    Cada vez to entendendo menos ainda eheheh.

    ResponderExcluir
  10. Luciano,

    Esse é o conteúdo normal de lixeiras vazias no Win2K. INFO2 é o banco de dados que armazena o caminho/nome original de cada arquivo na lixeira.

    ResponderExcluir
  11. Bom... então esta explicado, pois realmente eu fiz um teste sem o arquivo INFO2 e a lixeira se comporta de um modo pra lá de bizarro. Qualquer arquivo que você exclua, vai pra dentro da lixeira, mas não fica visível! Ele só aparece no prompt do DOS, mediante um attrib!

    Isso me vem a cabeça que pode ser uma forma de algum virus explorar essa falha! Bastaria excluir o arquivo INFO2 e pode jogar o que quiser dentro da lixeira, e depois recria-lo e pronto.

    Os arquivos que foram injetados lá não aparecem na lixeira mas estão lá.

    Eita...

    Bom, fica a dica, se quiser expiar o conteudo da lixeira, sem muito malabarismo, basta entrar no diretório dela pelo dos, e dar um attrib, tudo o que estiver lá vai aparecer.

    ResponderExcluir
  12. Luciano,

    O vírus não precisa se preocupar com o arquivo INFO2. Basta se copiar para a lixeira sem usar a API de movimentação para a lixeira. Os vírus já exploram isso há pelo menos seis anos (foi quando encontrei o primeiro). Por exemplo, no prompt digite copy [arquivo] [caminho_da_lixeira] e veja se [arquivo] aparece na Lixeira pelo Windows. E essa é só uma das diversas formas de se fazer isso.

    E do meu ponto de vista, o seu método é que requer um "malabarismo". Se você acrescentar o que é necessário para entrar nas pastas ocultas (algo que você não citou em seu comentário), a dificuldade ficará ainda mais evidente para quem, como eu, prefere usar prompt de comando só quando existe uma vantagem clara. ;)

    ResponderExcluir
  13. Minha descrição acima do papel das pastas "Recycler" e "Recycled" está incorreta.

    Recycled é usada em partições FAT32.
    Recycler é usada em partições NTFS.

    O Windows 9x só cria pastas Recycled, porque ele nem enxerga partições NTFS. Para existirem pastas Recycled e Recycler em uma mesma partição, acrescente as seguintes possibilidades (as que citei antes continuam válidas):

    *A partição foi convertida de FAT32 para NTFS;
    *O conteúdo de uma partição NTFS foi mesclado com o conteúdo de uma partição FAT32.

    ResponderExcluir
  14. Muito bom seu blog Jefferson! Parabéns!

    ResponderExcluir

Siga as regras do blog ou seu comentário será ignorado.