quinta-feira, 22 de janeiro de 2009

Pegando Vírus na Rede

Graças ao Ubuntu meu PC pegou um vírus pela rede, mas o vírus não pegou meu PC.

Outro dia no meu serviço, tivemos um pequeno problema com um vírus na rede, este vírus mandava a impressora imprimir um monte de lixo, pois a impressora estava ligada na rede.
Para descobrir de onde estava vindo este vírus criei uma pasta compartilhada no Ubuntu, e liberei a mesma para acesso total. Mas antes disto liguei um Sniffer(Wireshark) para saber qual PC que estava colocando esse vírus no meu PC. Resumindo, quando esse vírus se distribuia pela rede ele era impresso pela impressora. Dessa maneira consigo capturar ele na rede e saber de que máquina ele vem.



O nome do vírus que estava na minha pasta compartilhada era "lyqdkx.exe", utilizei o site VirusTotal para verificar se era realmente um vírus. Veja o relatório que foi gerado pelo VirusTotal.

Segundo este relatório o Kaspersky 7.0.0.125 detectou como sendo um Trojan, e a Microsoft detectou como um Worm.

Quando o vírus foi copiado para dentro da pasta compartilhada, parei o Wireshark e verifiquei o relatório em busca do nome "lyqdkx.exe". E lá estava o ip do PC contaminado.

Veja o relatório do Wireshark:

Cada linha do primeiro campo(em amarelo), de cima para baixo, é um pacote capturado na rede. Observe a coluna Source, contém o ip de origem do pacote, esse é o PC que gravou o arquivo na minha pasta compartilhada.
No campo do meio tem o conteúdo do pacote, a variavel QUERY_PATH_INFO Parameters, que está em SMB (Server Message Block Protocol), e guarda o nome do arquivo em File name. Neste campo também temos o nome do PC que gravou em SMB (Server Message Block Protocol)->SMB Header->User ID: 100 (NOMEDOPC\nomedousuario) .
O terceiro campo é apenas o conteúdo em hexadecimal.

Para gerar este relatório, depois que o arquivo foi gravado na pasta, no Wireshark clique em Edit->Find Packet... e em Find By marque String, no campo Filter digite o nome do arquivo, no meu caso "lyqdkx.exe".

Resolvendo o problema: Como tinhamos o ip e nome da máquina que estava ploriferando vírus na rede, ficou fácil de achar o computador. O computador era um notebook particular com Windows XP e antivírus desatualizado. O dono do notebook para se redimir instalou o Ubuntu e viveu feliz para sempre!

3 comentários:

Anônimo disse...

Muito bom o artigo cara...Linux veia.

Anônimo disse...

Olá Rene!

Ótimo post. Me deu uma luz de como encontrar o micro que está fazendo isso aqui na rede da empresa.

Mas a dúvida é.. vc aplicou um filtro pra SMB.. ou algo assim pra ficar mais reduzido o volume de informações? O programa gera uma tonelada de dados.

Se possível, como faço pra "secar" só pra o que quero. E como encontrar o nome da máquina? Apesar de ter olhado os screens.. fiquei na dúvida. o.O

Abraços! DheRLaN

Renê Dettenborn disse...

O Wireshark gera muitos logs realmente, ainda mais quando a rede está sobrecarregada. Não me preocupei muito com a quantidade de logs pois o vírus atacava de 1 em 1 hora.
Na documentação do Wireshark tem as instruções de como filtrar os pacotes.
Lembre-se que os vírus podem atacar de várias maneiras, então pode ser que nem apareça no seu relatório se fizer um filtro muito minuncioso.
Em relação ao nome da máquina, pode ser que nem apareça, pois o hospedeiro do vírus pode ter um firewall que bloqueia o envio do nome.
Veja no texto deste artigo onde falo sobre: Edit->Find Packet