Trojans
Definição de Trojan
O nome trojan é uma alusão à história do antigo cavalo de tróia, em que o governante da
cidade de Tróia na antiga Grécia foi presenteado com um cavalo de madeira no qual havia
escondido soldados inimigos. Possui muitas características similares aos vírus, tais como:
perda de arquivos, falhas na memória, erros em periféricos, etc... A grande diferença é que o
trojan pode ser considerado um vírus inteligente, pois é controlado à distância pela pessoa
que o instalou. Esse indivíduo então, consegue “enxergar” o seu computador, podendo
realizar desde as mais simples tarefas como mexer o mouse à utilização do seu IP como ponte
para outros ataques. Conseguem ficar escondidos em arquivos de inicialização do sistema
operacional e se iniciam toda vez que a máquina é ligada.
Perigo real
A popularização da Internet e a facilidade de se criar um programa cavalo de tróia fazem
com que esse método de invasão seja atualmente o mais perigoso de todos. Ele não depende
de falhas no seu sistema, é quase indetectável e pela sua facilidade de uso pode ser operado
por crianças de 6 anos. Pode-se esconder um trojan em fotos, arquivos de música, aplicativos
e jogos. Sendo assim, nunca abra arquivos executáveis enviados por estranhos ou pegos em
sites duvidosos. Existem muitas técnicas para se instalar um trojan em uma máquina. Um
bom exemplo no Windows 98/ME é mapeando a unidade desse computador (netbios), copiar
o programa e alterar o arquivo win.ini Assim toda vez que você for jogar paciência ou mesmo
abrir o bloco de notas, tome cuidado com o tamanho do arquivo executável. Se estiver muito
grande, desconfie.
Tipos de cavalo de tróia
Invasão por portas TCP e UDP
Esse é o trojan mais comum existente na Internet hoje. Netbus, Back Orifice, SubSeven,
Hack’a’tack, Girlfriend, Netsphere e muitos outros são facilmente encontrados pela rede.
Possuem na sua maioria dois arquivos: um servidor para ser instalado no computador da
vítima e um cliente com interface gráfica para manipular o servidor remotamente. As portas
de um sistema variam entre 0 e 65535 e servem para identificar serviços rodando no sistema(
como o servidor web que utiliza a porta 80). O servidor se torna mais um serviço ao escolher
alguma porta para “escutar” as chamadas do cliente.O trojan que utiliza portas TCP,
estabelece uma conexão com o servidor, atuando diretamente de dentro do sistema. Já o que
41
utiliza portas UDP, comunica-se via pacotes de dados enviados ao host alvo. Não tão
confiável como o TCP, não garante a entrega dos pacotes e o recebimento da resposta. Quase
todos os trojans atuais são para a arquitetura Windows. Os poucos existentes em outros
sistemas, tais como: Unix, Linux, Novell e Macintosh são chamados de backdoors. A
diferença entre o trojan comum e o backdoor é que o último é muito mais difícil de se
instalar. Em um sistema Unix por exemplo, para conseguir se instalar um backdoor é preciso
possuir privilégios de super usuário (root).
Trojans de informação
Não é tão usado quanto o de portas mas igualmente (ou até mais) perigoso. Enquanto a
maioria das funções dos trojans comuns é apenas para aborrecer( sumir com a barra de
tarefas, apagar o monitor, desligar o Windows, etc...), o trojan de informação se concentra em
ficar residente detectando todos os tipos de dados vitais do sistema. Ele consegue toda senha
digitada no servidor junto ao endereço ip das máquinas e envia a informação para uma conta
de e-mail configurada pelo invasor. Existem alguns programas mais sofisticados que além de
enviar por e-mail, pode enviar a informação por icq ou qualquer outro tipo de messenger.
Geralmente o programa envia a informação em um prazo de cada 5 a 10 minutos. Ao
contrário do trojan de portas, possui apenas o arquivo servidor e um tamanho bem menor.
Exemplo: o servidor do trojan de portas Netbus possui cerca de 490 kb de tamanho. Já o
trojan de informações k2ps possui cerca de 17 kb.
Trojans de ponte
É um tipo não muito conhecido mas largamente usado por hackers e crackers do mundo
inteiro. Consiste em instalar um servidor no seu computador que possibilite que através dele
(e do seu endereço ip) o invasor possa realizar ataques de invasão e de recusa de serviço.
Então, se um grande site for invadido e baterem na sua casa, procure pois deve haver algum
desses no seu sistema. Um programa comum é o WinProxy, que pode ser instalado
facilmente e não levanta nenhum tipo de suspeitas. Conheço alguém que o possui na sua
máquina e jura que é um firewall. Leia mais sobre os trojans de ponte na seção anonimidade.
Rootkits
Esse tipo especial de backdoor é utilizado no Unix e Linux. Ao ser executado pelo
operador do sistema ele substitui arquivos executáveis importantes (como o ps por exemplo)
por versões “infectadas”. Essas versões podem ser tanto trojans de portas quanto de
informação. Vão fornecer acesso irrestrito ao invasor com poderes de super-usuário, e o mais
importante: os acessos não ficam registrados nos logs. Para conhecer alguns dos rootkits mais
usados e o tipo de alteração causada por eles, visite o website: www.rootshell.com.
Trojans comerciais
Alguém já ouviu falar do PcAnywhere? Ou do terminal remoto do Windows 2000 e XP?
Esses programas (além de muitos outros) possibilitam que você controle completamente a
máquina de alguém, como se estivesse sentado ali. Quer jogar Quake no computador
invadido? Clique no botão iniciar dele e faça tudo como se estivesse no seu próprio
computador. A vantagem desses programas (já que são comerciais), é que o anti-vírus não
pega. Tente também o excelente VNC (que pode ser pego em www.superdownloads.com.br),
que é gratuito. Se você configurar direitinho um programa desses na vítima, seja piedoso.
42
Cliente para conexões do programa comercial VNC, criado pela AT&T
Escondendo o trojan em arquivos confiáveis
Existem muitos programas na Internet que escondem os servidores em arquivos
executáveis. Um deles é o The Joiner, que possibilita você juntar o trojan com algum outro
executável e criar um terceiro contendo os dois. Além de possibilitar que o coloque em fotos.
Um método engraçado muito utilizado hoje pelos que se dizem “hackers”, é renomear algum
executável para foto e deixar um largo espaço. Por exemplo: supondo que o nosso servidor é
o arquivo server.exe. Então iríamos renomeá-lo para loira.jpg .exe.
Assim muitos usuários inexperientes caem no truque. Todos os métodos citados
anteriormente têm somente uma falha: se você criar um executável pelo The Joiner ou
renomear o servidor, qualquer programa anti-vírus logo detectará o arquivo. Para que o antivírus
não o detecte, é só usar a imaginação. Crie um programa em alguma linguagem e
coloque o servidor no meio dos arquivos. Faça com que o programa quando executado
renomeie o servidor e o execute. Assim, se o servidor estiver como voodoo.dll passe-o para
sysconf.exe e execute. Esse método não é infalível mas engana a grande maioria dos
programas de detecção. Mas não todos. Anti-vírus geralmente o pega.
The Joiner: esconda o servidor em outro arquivo
Utilizando compressores de executáveis
Como vimos no ítem anterior, vários métodos podem ser usados para esconder um cavalo
de tróia. Depende mais da imaginação do invasor. Só que ainda assim podem ser facilmente
detectados. Esse é o primeiro livro a citar o método do compressor de executáveis windows
32 bits, apesar de essa técnica já vir sendo utilizada em larga escala. Consiste em usar um
programa compressor de arquivos EXE, que apenas diminua o seu tamanho retirando espaços
vazios desnecessários. Um programa comum é o Petite que diminui cerca de 30% ou mais do
arquivo original. Um trojan (ou mesmo um vírus) comprimido é absolutamente indetectável
por anti-vírus e scanners. Isso porquê esses programas se baseiam na estrutura do arquivo
para identificá-lo. É como se tivesse fotos na memória e as comparasse. Como não encontrou
43
nenhuma igual, não mostra nenhum tipo de aviso. Um operador de sistemas têm que conhecer
muito bem seus arquivos e conferir sempre novas alterações (como datas e horas de novos
arquivos) para evitar que um trojan comprimido seja instalado em seu sistema. Não dependa
só de anti-vírus. Mas atenção: os compressores de executáveis não comprimem arquivos que
já foram comprimidos (como o server do trojan subseven).
Vamos realizar passo a passo o processo de esconder um trojan de um anti-vírus.
1. Passaremos o Norton para que encontre o arquivo infectado:
2. Agora, abriremos o programa PETITE para comprimir o arquivo EXE do
servidor do Netbus.
3. Com o arquivo já comprimido, novamente testamos o anti-vírus:
44
Spoofando uma porta
É muito raro a utilização do spoof em trojans. Isso porquê se a pessoa envia um pedido de
conexão a um servidor, ela precisa estar usando o seu endereço IP real para receber a
resposta. Apenas com o protocolo UDP, que envia comandos sem estabelecimento de
conexão, isso é possível. Em quase todos os casos, o endereço IP capturado por um programa
anti-trojans é realmente o do invasor. A única exceção é quando se utiliza um trojan de ponte
para se conectar a outro (geralmente TCP). Exemplo:
A máquina A têm duas opções. Pode se conectar ao trojan existente na máquina C. Mas
o invasor não quer correr nenhum risco pois não está usando nenhum tipo de recursos de
anonimidade. Então ele se conecta à máquina B que está na mesma rede que a máquina C
mas não possui nenhum tipo de segurança. Se utilizando da confiança entre as duas
máquinas, ele se conecta à máquina C que vai responder tudo o que invasor quiser, pois
pensa que é a máquina B. Essa técnica, chamada de IP Spoof, foi utilizado pelo hacker
Kevin Mitnick para conseguir acesso ao computador do analista de sistemas Shimomura. O
processo será descrito em detalhes na seção anonimidade.
Métodos eficazes e os não tão eficazes de se retirar o programa
Basicamente existem quatro métodos de se retirar um cavalo de tróia. Cada um possui suas
vantagens e falhas. O ideal seria usar um pouco de todos.
Máquina
A
Máquina
B
Máquina
C
45
Detecção por portas
Esse é um método utilizado por programas como o Xôbobus, o meu Anti-Trojans e
muitos outros. Funciona do seguinte modo: os programadores estudam as portas TCP e UDP
utilizadas pelos trojans e criam um programa que abre essas portas. Assim, quando um
invasor vir a porta aberta e pensar que é um cavalo de tróia que está instalado ali, cairá em
uma armadilha tendo o seu endereço IP detectado. Esse método não é muito eficiente pois
facilmente podemos mudar as portas que os trojans utilizam. Mas ainda é um método muito
usado pois muitas pessoas não se lembrar de trocar as portas.
Detecção pelo arquivo
Esse é o método usado pelos anti-vírus e o programa The Cleaner. Ele detecta o trojan
checando a sua estrutura. Se o arquivo estiver renomeado (sem ser para executável) ou estiver
comprimido, esse método se torna inútil. Para ser realmente eficaz, deve ser usado junto à
detecção de portas. Assim, mesmo que seu anti-vírus não encontrou um trojan, o Anti-
Trojans pode encontrar.
Detecção por string
Na minha opinião, o melhor método de todos. Pouco divulgado publicamente, se torna a
melhor garantia para se detectar um trojan sem falhas. Isso porquê mesmo que o programa for
comprimido ou mude suas portas, ele ainda estará usando uma das 65535 portas do sistema e
se comunicará com o cliente. A comunicação entre cliente e servidor se dá por uma string
(texto) enviada. Por exemplo: O Netbus 1.7 envia uma string assim “Netbus 1.7x” quando
alguma conexão é estabelecida. Se for o cliente, ele responderá com outra string. Então para
analisar todas as portas do seu sistema e saber quais estão abertas e possuem strings, utilize
um programa como o Chaoscan ou algum outro scanner de porta que lhe dê essas
informações.
Detecção manual
Muito eficaz também, a checagem manual do sistema pelo operador pode facilitar muito a
vida. Olhando registro, arquivos de inicialização, conferindo os programas carregados na
memória, o tamanho dos arquivos, etc... Todas essas precauções evitam dores de cabeça. Essa
política adotada junto aos outros tipos de detecção faz com que você exclua em 100% a
chance de uma invasão por cavalos de tróia.
Passo-a-passo: cavalos de tróia
Utilizando um trojan
Vamos utilizar um trojan para nos conectarmos a algum computador infectado. Antes de
tudo, verifique se o computador alvo está com o servidor instalado (o arquivo que
comprimimos anteriormente). Agora seguiremos os seguintes passos com o trojan Netbus:
1. Abra o programa Netbus (se o anti-vírus acusar vírus, passe o petite nele também)
2. Em hostname / IP , coloque o IP da máquina a ser invadida (se for seu próprio
computador, utilize 127.0.0.1). Se a porta no servidor for diferente de 12345 (o padrão
do Netbus), coloque-a em port.
46
3. Clique em connect!
Ao aparecer a mensagem “Connected” na barra de status, significa que a invasão foi bem
sucedida. Vamos agora realizar algumas ações:
1. Clique em Open CD-ROM para abrir o drive de cd da vítima.
2. Vá em Start Program e coloque c:\windows\calc.exe para abrir a calculadora.
3. Clique em Go to URL e mande a pessoa para algum site.
4. Use Listen para pegar os caracteres digitados pela pessoa e intervir no meio (como se
você estivesse escrevendo no Word e de repente as palavras se formam sozinhas).
5. A Port Redirect cria uma ponte. Coloque uma porta (geralmente use a 80) e um site.
Assim quando for ao Internet Explorer e digitar o IP do computador invadido, você
cairá nesse site configurado. Por exemplo: ao digitar 127.0.0.1 no browser fui enviado
para www.whitehouse.gov.
6. Dá para fuçar bem nas opções, mas a mais interessante é a App Redirect. Abra-a,
coloque uma porta qualquer (100 por exemplo) e mande executar um shell nessa porta
(no caso do Windows 95, 98 e ME, use c:\command.com , no NT, 2000 e XP use
cmd.exe). Agora utilize o telnet (vá em iniciar/ executar e digite: telnet 127.0.0.1 100 ,
trocando o endereço ip padrão pelo da vítima) e pronto. Você está no prompt do MSDOS
da pessoa. Têm o controle total da máquina.
7. Para desconectar, apenas clique em disconnect.
8. A opção server admin retira o servidor.
Utilizando o Anti-Trojans
Vamos utilizar como exemplo de detecção por portas, o meu programa Anti-Trojans
versão 1.6. Se quiser tentar outro programa, tente o Xô Bo Bus brasileiro ou algum
estrangeiro (procure no Superdownloads). É claro que um firewall (como veremos depois) é
mais potente. Mas é mais complicado para usuários comuns. Veremos passo a passo.
1. Abra o programa
47
2. Clique na pasta Configuração , e coloque a mensagem para a pessoa que tentar lhe
invadir. Se quiser, configure um e-mail para que a tentativa de invasão seja reportada.
3. Clique na pasta Monitorar.
4. Clique no botão Monitorar. Agora clique com o botão direito no ícone do superman na
barra de tarefas e selecione esconder.
5. Simule uma tentativa de invasão indo em Iniciar / Executar e digitando:
telnet 127.0.0.1 12345
O programa irá detectar a tentativa de invasão e mostrará uma mensagem com o horário,
o endereço IP do invasor, o seu host e o tipo de invasão tentada.
Para terminar o capítulo de trojans, uma pequena dica: altere o arquivo autorun.inf
de algum cd (aquele que faz o cd rodar sozinho quando no drive) e faça-o executar
algum servidor. É simples, até com o bloco de notas dá para fazer a alteração. Daí é
só gravar o cd (em uma gravadora, com alguns outros programas para despistar) e
pronto. Quem desconfiará de colocar um simples cd no drive? Esse processo também
funciona na unidade C e em disquetes. Experime