Análise de Worms
1. Introdução
Não me admira mais o quanto grande é o estrago que um worm faz quando se tem apenas um pequeno problema. É de vital importância saber como um worm funciona, e o porque ainda estamos a perigo de tal utilitário que nada mais, nada menos, é basicamente.
Com a presente demanda de segurança, crescem cada vez mais, sites que "falam" de segurança , mas que no fundo não dizem nada. Onde são colocados exploits a toa , para qualquer um lá ir e "testar" em seu equipamento tal exploit. Mas não é bem assim que funciona. Hoje, basta ir em algum site grande de segurança, pegar um c, compila-lo, e testa-lo. A adaptação para criar nele um worm, seria só criar um sistema inteligente que testasse esse exploit em um sistema , e auto copia-lo para o mesmo . Nessa parte, vemos onde está a inteligência de eventuais "hackers", falta de conhecimento. Por outro lado, vemos que alguns hackers estão evoluindo, e é nesses que devemos nos preocupar. Por exemplo, um dos primeiros worms avançados, criados em falhas da MS, só apagava mp3's, mas, com a evolução e a "rippagem" desenfreada, foram criados worms que dessem conta de apagar e contaminar outras máquinas de melhor forma.
Talvez esse texto que reune grande quantidade de infos de worms reais, ajude a nos manter seguros, ou até a apresentar novas técnicas. O texto faz uma breve análise de quão perigosos estão ficando os worm's. Vendo suas principais formas de contaminação.
2. História e teoria
Em 2 de Novembro de 1988, a Internet caiu em desespero, por volta das 6 da tarde, um programa que foi executado em uma máquina (máquinas VAX ou SUN rodando variantes BSD), coletava dados da máquina infectada, e com esses dados (networking) ia a outras máquinas, e assim, ia "infectando" máquinas de forma a replicar-se milhares de vezes. O Caos foi tão grande em certas redes, que certas máquinas ficaram em "quarentena". Universidades e gênios ai viram uma das primeiras preocupações com a segurança de sistemas, que naquele tempo, segurança não era tão primordial. Foi nisso que Robert T. Morris (autor do worm, conhecido mais tarde como Morris Worm) pensou.
É de vital importância que aqui fique claro, que, é preciso antes de tudo, uma execução remota do alvo ou um problema no sistema alvo, algum exploit remoto, ou algo que pegue as informações sobre o sistema em questão. Como por exemplo, se o sistema tivesse problemas remotos (você pode achar isso diariamente, e principalmente exploits remotos para linux), você facilmente poderia codar algum programa, para que execute o exploit, e se auto copia para o sistema infectado, e com isso pegue a tabela de hosts, e assim contamina mais máquinas, e assim por diante. Por outro lado, também poderíamos obter informações do sistema, uma tentativa as vezes frustrante nesse caso do worm, pois seria na base do brute force a tentativa de invasão. Teríamos nesse caso uma tentativa de brute em tal porta, e assim, logaríamos em tal lugar, e assim por diante.
O worm utilizou serviços que naquele tempo, eram considerados util's básicos para operação. Naquele tempo, uma das opções do worm, foi a utilização de um exploit remoto para fingerd (overflow), ou com eventuais problemas de sendmail como utilizações no debug (alá <"!ls -la; exit 0">,lembre-se,estamos em 1988. Se o worm não conseguisse utilizar um dos dois problemas no sistema remoto, ele ainda tentaria senhas tradicionais obtidas através de informações do próprio fingerd, ou do smtp.
3. Estudo de casos
3.1. Microsoft:
Basicamente, estamos estudando problemas de auto execução, ou falsa mensagem. Temos exemplos de execução arbitrária através de overflow, ou até problemas de sharing.
3.1.1. Win32.Bymer Worm
Primeiramente, ele vê se existe um share no sistema alvo, se estiver aberto, procura binários do próprio Bymer. Os autores desse worm, basicamente se divertiram porque esse worm, não destrói ou danifica seu sistema (teoricamente), só o faz parte de algum concurso, em exemplo, os da distributed.net, onde era preciso quebrar o RC5-64. Você acaba sendo "voluntário involuntário" da operação. E assim, além de fazer uma cópia de si, e tentar outros shares em outras máquinas, tem-se um aproveitamento do seu CPU. E quanto mais máquinas ele conseguir "infectar", melhores chances de quebrar o RC.
3.1.2. Love-Letter
Ao ver o que acontece com o "LOVE-LETTER-FOR-YOU", vemos o caos que é feito na sua máquina sem você perceber. Ele tem seu ciclo de vida basicamente assim:
Ao abrir o attach do email, o script começa a se auto copiar:
$windir/Win32DLL.vbs
$systemdir/MSKernel32.vbs
$windir/LOVE-LETTER-FOR-YOU.TXT.vbs
Logo após, ele se introduz no registry, para se auto executar. Após isso, ele faz o download de um arquivo a partir de um IE colocando a página inicial para um site. Se já existe tal arquivo contaminado, ele simplesmente adiciona about:blank a pagina default. Este arquivo é o arquivo contaminado. A partir daí, ele começa mandando emails com o script attachado para todas as pessoas que estão na lista de emails. Depois disso, começa algo fantástico. Ele procura no seu hd, por extensões conhecidas, como Vbs, vbe, js, jse, css, wsh, sct, hta, vbs, jpg, etc. E todos estes arquivos são sobrescritos pelo vírus, quando se acha uma mp3, ele copia o script para o mesmo dir das mp3. Quando ele acha um mIRC por exemplo, um pequeno script para o mIRC é criado que manda uma página em html, que tenta infectar você usando o IE para todas as pessoas que entram no canal.
3.1.3. ExploreZip
Ele vem com algum cliente de email. Se executado, ele irá residir na memória. Ou seja, ele não irá precisar do Outlook para ser executado. Simplesmente virá como um attach. Como um vírus normal, irá apagar arquivos, deixar seu pc travando a qualquer hora, etc. Na parte do worm, ele funciona basicamente como funcionava o Melissa. Ele começa se auto copiando para:
C:\WINDOWS\_SETUP.EXE
C:\WINDOWS\SYSTEM\EXPLORE.EXE
Se no caso, for um sistema de email baseado em MAPI (Messaging Application Program Interface ex. Outlook, Outlook Express, etc.), o worm tenta logar no sistema com diferentes profiles MAPI, por default: Outlook, Outlook Internet Settings, Exchange. Quando chega uma nova mensagem, o worm é ativado.
O worm então pega os primeiros nomes do header, e o coloca numa nova mensagem, do tipo:
"Hi [alvo]
I received your email and I shall send you a reply!
Till then, take a look at the attached zipped docs."
E no final, pode se ir a signature do atacante (já contaminado). E segue o attach com o Zipped_Files.exe. E assim, recomeça o ciclo.
3.1.4. Code Red
O Code red, foi um grande avanço, mas como todo bom worm, ele ainda usa a mesma coisa que Morris usou a mais de 10 anos, um sistema compromissado com um bug remoto. O Code Red afeta entre outros:
Microsoft Windows NT 4.0 with IIS 4.0 or IIS 5.0 ou Index Server 2.0
Windows 2000 com IIS 4.0 ou IIS 5.0 e Indexing services
Seu ciclo de vida básico:
Quando contaminado, o sistema tenta conectar na 80 de qualquer sistema, randomicamente, até uma máquina vulnerável ser encontrada. Quando achada, o worm gera o HTTP GET, com o exploit remoto (overflow) sobre o Indexing Service. Nos primórdios beta's do code red, eram substituídos todos os index.html do sistema e substituido por isso:
HELLO! Welcome to http://www.worm.com (http://www.worm.com)! Hacked By Chinese!
Para saber se o Code Red andou pela sua máquina, basta observar a seguinte string:
/default.ida?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNN%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%
u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531
b%u53ff%u0078%u0000%u00=a
3.1.5. Wscript.KakWorm
Ele se espalha com o Outlook Express, vem junto com as mensagens usando a opção de Signature do Outlook. Ele utiliza 3 arquivos para se distribuir, .hta, .reg e .bat. A mensagem que contém esta worm, é escrita em html. Normalmente ele usa uma falha de segurança do Outlook, que é chamada de "Scriptlet Typelib", que adiciona um shortcut para um .hta na pasta de auto inicialização, fazendo assim, que na próxima vez que o computador for reiniciado, o .hta é executado.
Quando se está contaminado, ele diz a mensagem:
"Kagou-Anti-Kro$oft says not today!"
3.1.6. Sircam
Este famoso worm, chega em attach com o seguinte conteúdo:
Subject: Qualquer um, mas o arquivo attachado também terá o mesmo nome que o subject.
Attach: Extensões .bat, .com, .lnk ou .pif.
Mensagem: Será randômica, mas terá sempre (a não ser por variações) as seguintes frases:
"Hi! How are you?
See you later. Thanks"
Versões em português foram criados também, mas com uma variação mais inteligente do worm. Através de leituras de profiles, pode-se ver e transmitir dados na forma ideal para as "vítimas".
3.1.7) Nimda
Nimda vem do inverso de Admin. Imagine um worm que une todas as opções de contaminações vistos até aqui, inteligente o suficiente para ver nacionalidade. Voraz o bastante para infectar por share, ou tentar se espalhar via spam (problemas de MIME, permitindo execução ao ler, ou prever o email), ou problemas de soft's da ms (overflow, traversal exploit's). Altera registros, e se cria de uma forma quase invisível. Podendo até ser letal quando se visita uma page. Esse é o Nimda, e até a criação deste documento, ainda estava infectando milhares de máquinas pela net.
3.2. Unix/Unix likes
Muito se disse que não seria um grande holocausto afetar sistemas desse tipo. Mas com a crescente demanda de linux, cresce também a preocupação com isso. Aqui, basicamente, os worms se comportam de maneiras bastante parecidas. Infectam sistemas com problemas remotos.
3.2.1. Ramen
O Ramen atualmente é um dos mais perigosos worm's para sistemas não MS existentes. Originalmente, ele começa a fazer um scan para detectar serviços, começa a atacar na porta 21, detecta versões do ftp, se for encontrado, ele cria em um arquivo chamado /usr/src/.poop. Ramen, então pega uma versão dele, ramen.tgz do sistema que está atacando. Em quanto está instalado na maquina, ele habilita uma porta qualquer, normalmente a porta 27374 para transmissões futuras do próprio worm.
O Ramen procura por todo o sistema, incluindo sistemas mountados, e renomeia qualquer arquivo index.html com uma cópia de uma página do worm (defacement). Ai, ele manda email para contas criadas em servidores free (um bom worm, normalmente manda informações da máquina infectada para seus autores). A partir daí, o Ramen começa a procurar novas máquinas, começando a fazer um novo scan em classe B, procurando por ftp's vulneráveis novamente.
Pode-se trocar o exploit facilmente, mexendo no .c, facilmente se acha novos exploits na packetstorm, hora ou outra aparecem remotos.
4. Conclusões
Vimos que a criatividade é o grande segredo dos worm's. A cada passo que se dá fechando certo problema, hackers estão outros dez passos a frente. Existem milhares de outros worm's, com milhares de outras formas de contaminação não citadas nesse documento, espero poder ter mais espaço e tempo para escrever mais, e aprofundar certos temas.
Fonte:
http://www.securityfocus.com (http://www.securityfocus.com)
http://www.packetstormsecurity.org (http://www.packetstormsecurity.org)
http://www.secforum.com.br (http://www.secforum.com.br)
Para quem é bem iniciante no assunto, isso aí é uma bela introdução..
O assunto "worm" é beem extenso, mas isso pode ser um bom começo

Parabéns pela pesquisa
DarkSpawn..
[]s
Hmmmmmmmmmm
Adorei em

Vejo q tem gente q gosta de um "Virus" / Worm
Hm daqui a pouco vou por uma contribuição minha heaheahae
pra incrementar isso
Wait...
ótimo, adorei o post