Unsekurity Team
irc.brasnet.org : #unsekurity
http://unsekurity.virtualave.net
e-brain - eebrain@hotmail.com

				 _ ______ __  _
				| | Sony |  || \
				| | 1.44 |__|| |
				| |__________| |
				| Win32 Trojan |
				|    Coding    |
                                |  bY e-brain  |
				|O____________O|


        Com certeza alguns de voces estao pensando: "que bosta! esse cara eh
um lammer da porra que ainda brinca com o windows dele, e fica brincando de
invadir os outros com trojans!"
        Ai vai minha resposta: bando de imbecil sem cabeca p/ porra nenhuma,
eh isso qeu voces sao. Conheco muita gente por ai (MUITA MESMO!!!) que fica
dizendo: como vc fica usando windows cara! Windows fede! Usa linux! Linux eh
o canal!
        Esses tipos nao sabem nem mudar a porra da hora pelo DOS e se acham
"Os Entendedores da Computacao". Olha cara. O linux tah ai, mas ainda
grande parte do mercado empresarial e domestico eh do windows.
Voce precisa entender a fundo do sistema com o qual estah trabalhando (ou
pegar exploits prontos - LAME SCRIPT KID MODE).

Now to the mad stuff! =]
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Escondendo o processo

        Esconder uma aplicacao windows daquela famosa janela Ctrl+Alt+Del,
nao eh nenhum bicho de sete cabecas. Alias, eh apenas uma questao de usar de
uma chamada do sistema, para propositos diferentes dos quais ela foi criada.
        A API a ser usada eh a RegisterServiceProcess, localizada em
kernel32.dll. o formato eh RegisterServiceProcess(ProcessID, Type)
ProcessID: pode ser setado p/ 0 sempre.
Type: 0 service, 1 process
        No noso caso, queremos que a aplicacao seja registrada como service.
Eh ai que estah o X da questao. A janela de Ctrl+Alt+Del soh registra os
processos que estao sendo executados. Os servicos continuam ocultos, com
excessao do windows NT, onde servicos e processos sao exibidos. Neste caso
eu nunca soube de algo que pudesse esconder uma aplicacao, a nao ser uma
tecnica que serah discutida logo abaixo.
P.S.: existem varios programas que mostram ao usuario tudo o que estah sendo
executado em sua maquina, inclusive servicos. Um exemplo eh um utilitario que
vem dentro do Win98, para verificacao do sistema.

                                .o!o.

Executando na inicializacao

        Nenhum misterio. Ha varias maneiras de se executar um arquivo na
inicializacao do sistema:
1. Colocar um atalho na pasta Iniciar, do menu iniciar. Se voce optar por
esta tecnica, recomendo ir estudar em uma escola de deficientes e largar o
computador, porque c nao vai ter futuro nenhum na vida.

2. Adicionar seu programa na linha "run" do win.ini.

3. Adicionar o programa na chave:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Run, ou
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\RunService, ou
HKEY_CURRENT_USER\Software\Microsoft\Windows\Run, ou
HKEY_CURRENT_USER\Software\Microsoft\Windows\RunService, ou
HKEY_USERS\.Default\Software\Microsoft\Windows\RunService, ou
HKEY_USERS\.Default\Software\Microsoft\Windows\RunService.

        Pow! Quanta chave de registro! Bem... entao ai vai entao uma breve
explicacao sobre estas chaves de registro do windows.
        Na pasta HKEY_LOCAL_MACHINE, qualquer usuario que conectar na maquina
ira carregar o processo.
        Na pasta HKEY_CURRENT_USER, se voce tiver trojaneado um certo usuario
da maquina, apenas aquele usuario ira carregara o trojan, ao logar na maquina.
Isto eh util, quando nada mais te interessa no sistema, alem dos arquivos
daquele usuario. E com um sistema de aviso que o trojan pode te enviar quando
o usuario estiver conectado, voce pode saber exatamente quando agir.
        A pasta HKEY_CURRENT_USER eh apenas um link para a pasta do usuario
logado, dentro de HKEY_USERS. Se o usuario logado for , por exemplo, Estevez,
a pasta apontara p/ HKEY_USERS\Estevez.
        A pasta HKEY_USERS\.Default, eh sempre utilizada quando a maquina tem
apenas um unico usuario. Consequentemente, HKEY_CURRENT_USER ira apontar
apenas para HKEY_USERS\.Default sempre.

                                .o!o.

Instalando-se no sistema

        O progama deve na primeira vez que for executado, se copiar para um
dir (geralmente o dir do windows, ou windows\system), exibir uma mensagem de
erro (por exemplo uma MEssage Box "Error loading SHiT.DLL"), fingir que foi
descarregado e se ocultar.
        Ao ser carregado pelo boot, o programa nao deve fazer o mesmo. Apenas
carregar e ficar oculto. Basta verificar se o diretorio em que o trojan estah,
eh aquele onde voce quer que ele seja instalado.
        Aqui vai um diagrama bem explicado do qeu fazer p/ nao haver confusao
ao instalar o trojan no sistema.

            programa foi executado
                      |
                      |
                      v
            estah no dir requerido?
              Sim          Nao-----> copiar-se p/ o dir desejado
               |                                 |
               |                                 |
               v                                 v
          Ocultar-se <----+           escrever chave de registro
                          |                      |
                          |                      |
                          |                      v
                          |            exibir mensagem de erro
                          |                      |
                          +----------------------+


                                .o!o.

That's all folks!
        Daqui por diante acho que todos jah sabem o que fazer. Nao tem segredo
nenhum. Basta saber programar. Abrir uma porta, copiar arquivos, etc...
Basta saber usar as API's do windows p/ obter toda e qualquer tipo de
informacao do computador que desejar. Existem bons livros os quais eu nao me
lembro agora que documentam as API's do windows. Verdadeiras biblias. Basta
consulta-las.
                                                Happy coding,
                                                        e-brain

Apendix

        Jah ia me esquecendo! Eu disse que tinha uma maneira de esconder uma
aplicacao do WinNT. Eh verdade, existe sim, mas eh um pouco mais complicada.
O fato consiste em infectar um arquivo com seu codigo. Isso exige um pouco de
conhecimento de infeccao virotica (yeah dud! virii rlz!).
        Um exemplo seria infectar o ICQ, para que ele executasse nosso codigo,
antes de passar o controle ao ICQ, e abrisse uma porta, etc, etc...
        Existe alguns inconvenientes nessa tecnica a serem contornados, e toda
a programacao serah feita em baixo nivel. Pretendo escrever um outro texto
explicando programacao em 32 bits usando API's, mas nao contem muito com esse
texto. procurem por ai material e ponham a mao na massa! Essa eh parte do
espirito do fucador: a persistencia! =]
