T H E $$Pø"ý$b ,gPø"ý$b ,gPø""ý$b ,gPø$$$$$$$$ý$b ,gø ý$b $$ $$ $$ $$ $$ $$ $$$$$$ $$ $$ $$ $$ $$ "ý $$ $$ $$$$ $$ $$ $$ $$ $$Pý" ,p $$, ,$$ `$$' $$, ,$$ $$ $$ gg $$ $$$$$$$$$ $$ $$$$$$$$$ $$ $$ $$ $$ $$' `$$ $$ $$' `$$ $$ $$ $$ $$ $$ $$ $$ $$ $$ $$ $$ $$ $$ $$ $$ .$$. $$ $$ T$, gP' T$, gP' $$ $$ $$$$ $$ $$ $$Pýýø" $$Pýýø" "ý ý" $$$$ "ý ý" ý" K N i G H T S ______________________________Death_Knights_________________________________ ---------------------------------------------------------------------------- deathknights #02b e-mail: death@deathknights.com page: http://www.deathknights.com ______________________________Death_Knights_________________________________ ---------------------------------------------------------------------------- .-----------. | SECOES \_______________________________________________________________ `----------------------------------------------------------------------------' 1 * ESCLARECiMENTOS Cacaio 2 * CELULAR STUFF BlydD 3 * ANARCHY Cacaio 4 * ANARCHY [2] ReNeGaDe 5 * CHEATiNG DOS GAMES Cacaio 6 * Mailing LiST Cacaio 7 * Win 98 Bugs Macleod 8 * foi na USP Bloddy Killer (BK) 9 * Dicas para lamers Cacaio 10 * Entrando pela porta da frente Milly 11 * PortScan Cacaio 12 * WinNT Passwords [Parte 2] Cacaio -- 13 * BONUS [1] Macleod 14 * BONUS [2] Cacaio 15 * FEW WORDS Cacaio ______________________________Death_Knights_________________________________ ---------------------------------------------------------------------------- -=[ 1 ]=- .----------------. | ESCLARECiMENTOS \__________________________________________________________ `----------------------------------------------------------------------------' Nao nos responsabilizamos pela informacao contida neste zine. Se voce usar indevidamente qualquer informacao contida aqui, a responsabilidade e' to- da sua. Este grupo nao visa nenhum fim lucrativo. Nos fazemos isto por diver- sao e nada mais. Se voce nao gostou da informacao contida aqui, nao nos perturbe. O problema e' todo seu. A secao de E-MAiL'z foi retirada deste numero da zine, pois a zine ja estava com um tamanho um pouco grande, e nao queriamos fazer algo sacal. A quem mandou e-mail, muito obrigado, nos lemos todos, e respondemos aos que mereciam ser respondidos. -=[ 2 ]=- .----------------------------------------------------------------------. | DESBLOQUEiO, MODiFiCACAO E PROTECAO DA OPERACAO DE APARELHOS MOTOROLA \____ `----------------------------------------------------------------------------' by BlydD Tipow, acabei de chegar em casa, e tive a ideia de escrever esta materia. Jah faz alguns meses que nao escrevo nada, entao estah aqui a minha parte. Entao segura esta, porque ela eh fresquinha e eu descobri. Estive pensando um dia desses, como eu poderia burlar o cadeado eletronico dos motorola. Nao eh algo muito util, mas quando se tem um celular bloqueado em suas maos, esse macetezinho pode ser usado. Nao queria fazer algo muito grande, mas acho que vai acabar ficando. Sendo assim, dividi este assunto em partes: 1 - DESCOBRINDO O CODIGO 2 - MODIFICANDO O CODIGO 3 - PROTEGENDO SEU CELULAR CONTRA ISSO (ninguem faz isso. hehehe) .-------------------------------------. | 1 - DESCOBRINDO O CODIGO `-------------------------. `=================-=-====--==-=-=-===----==---=-=---=-=--- -- - - Quando alguem trava um celular motorola, ele fica praticamente inoperante, a nao ser a utilizacao da tecla de emergencia (Turbo Dial). e a outra seria o POWER. (hehehehe). Agora tem outra que ninguem ainda divulgou era o FCN (Funcao). Eh a partir desta tecla que vamos comecar a brincar com o celular. Agora roube um celular ou pegue o seu proprio celular, caso vc tiver. Os aparelhos que podem ser usados este macete sao de PT 550 ateh Ultra TAC 750). Se ele jah estiver bloqueado, otimo! Passos: 1o - [FNC] + [0] + [COD. SERV. 2x] + [RCL] | `---> 000000 2o - Pressione [*] 15x Pronto, o numero que aparece aih, eh o codigo de uso do celular. Se quizer voltar, basta desligar e ligar o aparelho, que jah estarah desbloqueado e melhor ainda, voce jah sabe a senha dele. .---------------------------------------. | 2 - MODIFICANDO O CODIGO `-----------------------. `=================-=-====--==-=-=-===----==---=-=---=-=--- -- - - Certo, agora se queremos que o celular seja de nosso dominio, devemos mudar o codigo dele. Para fazer isto, siga os passos abaixo: 1o - [FCN] + [0] + [COD. SERV. 1x] + [NOVO CODIGO] + [STO] Importante: O celular tem que estar desbloqueado anteriormente para ser feita esta operacao. Caso o mesmo ainda estiver bloqueado, siga os passos do item (1 - DESCOBRINDO O CODIGO) e quando for mostrado o numero atual, digite o novo numero, pressione [*] e depois aperte [SND] .---------------------------------------. | 3 - PROTEGENDO SEU CELULAR CONTRA ISSO `-----------------------. `=================-=-====--==-=-=-===----==---=-=---=-=--- -- - - Isso que eu vou falar, pretendo que nao seja espalhado tao publicamente como jah eh proposto pelo ZINE, pelo motivo de quanto mais pessoas souberem, menos celulares teremos. hehehe Certamente voce nao deve ter entendido o que eh o COD. SERV. Isso significa, o codigo de servico do celular. Vejamos, quando voce habilita um celular, a empresa deveria dizer para voce, "Ei, qual o codigo de servico que voce deseja?". Mas isso nao eh perguntado, porque vc obviamente, responderia, "que isso?" hehe. Codigo de servico, eh o codigo geral de operacao do seu celular. Nao eh recomendado a todas as pessoas, devido a falta de QI do pessoal para guardar senhas. Esse codigo consiste-se em 6 numeros. .----------------------------------------------------------------. | Importante: O padrao de COD. DE SERV. da Motorola eh o 000000. | | O padrao de senha de uso da Motorola eh o 123. | `----------------------------------------------------------------' Para vc muda-lo basta seguir estes passos: 1o - [FNC] + [0] + [COD. SERV. 2x] + [RCL] 2o - Pressione [*] 13x 3o - Digite o novo codigo (6 numeros) 4o - Pressione [*] + SND Outra coisa, se o codigo de servico for mudado, bye bye. Soh abrindo a porcaria do celular e resetando a eprom, eh claro, isso nao dah para ser explicado aki. Se tiverem interesse em tirar duvidas ou apresentar novas ideias, aqui estah o meu email. Ateh mais, agora preciso ir ao banheiroooo. BlydD@deathsdoor.com Cya! -=[ 3 ]=- .---------. | ANARCHY \_________________________________________________________________ `----------------------------------------------------------------------------' by Cacaio Antes de iniciar, queremos deixar bem claro que nao temos nenhuma responsabilidade do que pode acontecer se executado algum dos procedimentos citados, tendo em vista que alguns poderao te deixar em grandes problemas, preso e levar a danos fisicos, morais, materiais e alguns ate a morte. Correntes de Bicicleta... Se voce quer abrir uma corrente de bicicleta cuja tranca e' por senha numerica, aqui voce sabera como. Nao e nem um pouco dificil, qualquer um pode fazer isto. Vamos a pratica! Digamos que a combinacao tem 4 numeros. Entao voce puxa para ambos os lados a corrente, e veja se as 4 catracas se movem. Mova a ultima catraca para todas as posicoes possiveis ate que ela nao se mexa. Digamos, neste caso, que parou no 5, entao voce ja sabe que o primeiro numero e 5 e que a combinacao e 5???. Entao, repita o procedimento com todas as ca- tracas, do mesmo modo, ate que apenas as ultimas se mexam. Digamos que parou no 4 agora, logo a combinacao e 54??. E voce vai fazendo a mesma coisa ate encontrar todos os numeros. O terceiro e 1 e o quarto 3, logo a combinacao e 5413, basta puxar a corrente que esta aberta. Lembre-se, isto e apenas dizendo como fazer isto, e nao um incen- tivo a roubar bicicletas. Cocktail Molotov... Como fazer a maioria ja sabe, basta uma garrafa, combustivel, um pedaco de pano e pronto. Mas ai esta o problema: o combustivel evapora muito rapidamente, assim seu efeito e pequeno. Mas aqui neste zine mostraremos como fazer e utilizar um combustivel usado em Cocktail Molotov na primeira guerra mundial, e era jogado nos tanques de guerra para que os soldados se rendessem, devido ao grande calor e a dificuldade deste combustivel evaporar. Ai vai como fazer este combustivel: Coloque um pouco de gasolina em uma garrafa ou outro recipiente qualquer. Adquira um pouco de estiro-espuma e coloque junto com a gasolina, ate que a gasolina pare a reacao com o produto. Agora, voce tera um xarope pegajoso. Coloque este combustivel na garrafa, ao inves do outro que voce usa normalmente. Pronto! Voce ja sabe como fazer Cocktail Molotov com Napalm(o combustivel). Se lembre de NUNCA tocar o Napalm, e o guarde bem, pois ele dura muito tempo. Como fazer uma bomba simples... Esta e' uma bomba simples e so de efeito moral. Pra quem so' quer se divertir, e' uma boa. MATERIAL °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° °° 2 sacos plasticos °° °° 1 pedra quadrada (4x4x4cm aprox.) °° °° 10 rojoes °° °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° Coloque os sacos plasticos(daqueles de mercado) um dentro do outro. Tire a polvora dos rojoes e coloque no saco plastico que esta dentro do outro, amontoada, ou nao funcionara. Coloque a pedra em cima da polvora, amarre o saco bem apertado sendo que a pedra nao fique 'sambando' no saco. Pronto! Para explodir basta jogar o saco onde quiser que exploda, mas o saco tem que cair de pe, para que funcione. Cacaio@a-Vip.com -=[ 4 ]=- .------------. | ANARCHY [2] \______________________________________________________________ `----------------------------------------------------------------------------' by ReNeGaDe Nao sou de ir falando muito, entao la vai o que tenho pra ensinar pra voces: Lampada que quando acende explode: Pegue uma lampada normal e faca um furo no bocal a parte metalica apos ter feito o furo pegue um pouco de polvora, e derrame fazendo com que caia no filamento depois e so recolocar a lampada no lugar mais se certifique que esteja desligada a corrente depois e so esperar que o otario acenda a luz e b00m! Pedra de sodio: Pegue uma pequena pedra de sodio (sodio metalico) do tamanho de um tijolo e jogue na agua mas se certifique que esteja bem longe pois vai ser um estouro muito forte e perigoso. -=[ 5 ]=- .--------------------. | CHEATiNG DOS GAMES \______________________________________________________ `----------------------------------------------------------------------------' by Cacaio Pra comecar vou falar o por que desta materia; um dia, eu estafa falando com um amigo meu sobre o Debug e ele me falou que poucas pessoas sabiam usa-lo, e que seria uma boa eu fazer uma materia usando o mesmo. Entao, eu gostei da ideia e fiz a materia, mas alem do Debug ensino tambem outros modos... vamos la! .----------------. | 5.1 - ViA DEBUG `----------------------------------------------. `=================-=-====--==-=-=-===----==---=-=---=-=--- -- - - Abra o diretorio e chame o Debug. Ao fazer isso, o prompt fica com um hifem amtes do cursor, assim: - Em seguida, basta executar a receita do cheat para conseguir os efeitos desejados. Para voce entender o que esta fazendo, fique ligado no significado de alguns comandos mais comuns: n - especifica o nome do arquivo a ser mudado l - carrega o conteudo do arquivo chamado e - comando para ativar a mudanca w - salva as mudancas feitas no arquivo q - sai do debug Exemplo: usando o Debug para ficar com $ 2 bilhoes em SimCity 2000 -n simcity1.sc2 [ENTER] (para chamar o arquivo no qual sera feita a mudanca) -l 100 [ENTER] (carrega a parte do arquivo que sera mudado) -e 127 [ENTER] (localiza o enderecoa ser mudado. Em seguida, o computador mostrara o conteudo daquele endereco, que e o que voce deve alterar) 129D:0127 XX. (nesta linha, XX sao um numero qualquer que o computador lhe fornece. Depois de XX., digite 7F e tecle espaco) 129D:0128 XX. (depois do XX. digite 02 e espaco) XX. (depois do ponto, digite FF e espaco) -w (salva as mudancas) -q (sai do debug) Pronto! Voce acaba de alterar o jogo e sair do Debug. Agora e so rodar novamente o jogo e esbanjar grana! ;P .-----------------------. | 5.2 - ViA OUTRO EDITOR `---------------------------------------. `=================-=-====--==-=-=-===----==---=-=---=-=--- -- - - Use um editor hexadecimal qualquer, como o hedit, X-Tree, Norton, PC Tools ou qualquer outro. Abra o arquivo. Ah... pra quem nao sabe, o editor mostraa o conteudo do arquivo em hexadecimal (numeracao em base 16). Na coluna da esquerda estao os numeros correspondentes aos enderecos do programa; na da direita ficam os dados do arquivo, separados em 16 offsets. Para alterar um programa, basta localizar o endereco e alterar. Exemplo: usando um editor hexadecimal para ficar com $ 2 bilhoes em SC 2000 Localize o endereco 0020 na coluna da esquerda, e nesta linha, mude o oitavo offset para 7F, o nono para 02, o decimo para FF e o decimo primeiro para FF. Salve o arquivo e pronto... voce fez a mesma coisa que foi feita com o Debug. Cacaio@a-Vip.com -=[ 6 ]=- .--------------. | Mailing LiST \____________________________________________________________ `----------------------------------------------------------------------------' by Cacaio -LiST Temos agora uma mailing list que fala de tudo, mas nao sao todos quem podem participar. Se voce acha que tem chances em participar da lista, mande um e-mail para death@deathknights.com dizendo o por que de voce querer participar da lista e seu e-mail real. Nao garantimos que todos que mandarem e-mail entrarao na lista. Bem... eh isso! -=[ 7 ]=- .------------. | Win98 Bugs \______________________________________________________________ `----------------------------------------------------------------------------' by Macleod Quando vi a reportagem do win98, fiquei todo empolgado, afinal a microsoft ate que enfim iria lancar um os que talvez prestasse, depois das varias reclamacoes com o win95, resolvi fazer o download, que nao e pequeno(72-73 discos), e' rapido so pra quem tem um cable modem, que e equipamente paleozoico nos eua(la se usa isdn), e futuristico no Brasil :P,o win98 tem bem mais bugs do que o win95, alem de rodar bem mais lento tb, dentro os bugs e prolemas que pude constatar estao: 1-error 625- nao estabelece conexoes, indicando problemas no provedor 2-o windows update( atualizador de programas para win98) nao funciona 3-a instalacao nao permite que o usuario nao instale o ie40 4- o driver converter(fat32) deixa seu hd com 25% a mais de espaco, mas deixa o pc mais lento, alem de nao permitir que vc instale o win95 devolta 5-o defrag trava sempre e dificilmente passa dos 10% esses problemas foram encontrados na versao build 1689 a ultima versao do win98 e' o build 1721.3, pelo menos era ate abril/98 :P se vc quiser mesmo assim, fazer o download do win98 va em: ftp://ftp.resnet.ucla.edu --> anon ftp ftp://ftp.sinclair.edu --> anon ftp se esse ftp nao funcionar me mande um email que eu procuro pra vc e te passo outro endereco,a ultima versao tem 72 discos e o serial number e': HGBRM-RBK3V-M9FXV-V38J4 existe tb o plus 98 , um addon pro win98, que pode ser obtido em : ftp://129.21.115.4 --> anon ftp nesse endereco vc encontra tb o win98 e o win nt 5 beta, mas esse ultimo so aconselho a instalacao se vc tiver no minimo um pentium 166 MMX a versao final do win98 vc vai poder fazer o download em ftp warez em 25 de junho, esse e a previsao informacoes para usuarios do win98:http://www.zdnet.com/zdhelp/win_help/win98_htlp/html O melhor mesmo é vc esperar a versao final ou ficar com seu win95, ou ate se vc for mais inteligente, instale o linux :P cya diablo_br@yahoo.com -=[ 8 ]=- .------------. | foi na USP \______________________________________________________________ `----------------------------------------------------------------------------' by BK heya d00d bom... vim falar sobre um assunto muito loko q eu e um amigo fizemos foi na USP de Ribeirao Preto. bom... tudo comecou assim: D-Fuhrer(meu amigo) conseguiu uma shell com um amigo dele numa maquina linux da USP... e ele rodou sniffer la... e pegou uma porrada de senhas da maquina da Faculdade de Medicina de Ribeirao Preto (FMRP)... 290k de log isso pq rodou por menos de 12 horas... imaginem se tivesse rodado por 1 semana... ia ser enorme mas beleza.. bom... rodou nesse pouco tempo pq ele contou pro amigo dele e eles brigaram .. perderam amizadade e tal.. mas ele conseguiu pegar o log pelo menos... isso a mais ou menos 9 a 10 meses. bom.. eu ainda nao tinha muita amizade com o D-Fuhrer... entao nao tinha pq ele me passar... mas la pra julho (isso foi +- em marco) ele me passou o log do sniffer... eu usei bastante essas senhas (PS: sao PPP e shell) la pro fim do ano... na epoca do natal(1997) quase todas as senhas foram canceladas... e tanto eu qto ele nao tinhamos conseguido hackear a FMRP(SunOS 5.5.1) em uma noite... eu consegui um exploit q funcionou... hackeei la.. peguei o passwd inteiro... liguei prele.. passei prele... de 400 e poucas senhas.. deu pra desencriptar quase 200... blz.. depois mais pra frente.. um outro amigo meu me passou a shell da mae dele(Medica da USP) EERP(Escola de Enfermage de Ribeirao Preto (Linux 1.2.18) fui la.. hackeei.. mas essas eram so shells mesmo... rodei sniffer.. pegou algumas ppp da... CIRP (Centro de Informatica de Ribeirao Preto) mas nao tinham shells hehhehe mas tudo bem passei pro D-Fuhrer tbm... uma outra noite eu fui durmir la na casa dele.. e comecamos testar essas senhas em outras maquinas... e funcionou em mais umas 3... SunOS 5.5.1 ... hackeamos tbm... 2 AIX... hackeamos tbm... mas as PPPs sao somente 10 da cirp e quase 200 da fmrp... bom.. a USP chegou a contratar uma empresa pra tentar pegar a gente.. e nao conseguiu... nos cansamos e resolvemos mandar um email pra eles falando sobre o q fizemos ... e escrevemos tbm q nao iamos estragar nada.. deletar nada.. alterar... e ler nada de ninguem.. q nosso interesse era apenas contas PPP ... queriamos 2 contas PPP uma pra mim(BK) e outra pro D-Fuhrer ... mandamos nossos telefones... nossos nomes... nossos emails e tudo mais... em menos de 1 semana a USPNet foi fechada... ficou quase 1 mes destavida pra acessos discados.... eles deletaram todos os USERS da FMRP / CIRP / EERP / GENBOV (Genetica Bovina... AIX) e mais um monte.... e convocaram todos de novo pra recadastro .... sei la.. preferiram RECADASTRO TOTAL do q criarem 2 contas... bom... se nos conseguirmos 1 shell la.. pode ter certeza q vai ser diferente nao vamos estragar nada... ah.. caso vc q esteja lendo seja da USP de Ribeirao Preto... pergunte pro Admin da FMRP do Igor(BK) e do Eduardo(D-Fuhrer) ah.. nao tivemos intencao de dar tanto trabalho pra voces.. q chegaram a contratar uma empresa pra nos achar! hehhehe blz galera ate' a proxima zine... to no IRC meu nick -> BK ou bogomips (BrasNET / BrasIRC) cya l8er! bogomips@deathsdoor.com -=[ 9 ]=- .-------------------. | Dicas para lamers \_______________________________________________________ `----------------------------------------------------------------------------' by Cacaio ATENCAO LAMERS! Primeira lista de dicas totalmente dedicada a voces! 30 dias que sao a sua cara! Desenvolvidas para voces! Facam tudo o que diz aqui e nunca mais serao os mesmos! °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° 01. Antes de tudo, tire uma foto do seu micro. 02. Seja sempre um mexe-mexe! Nada de cursos, revistas e livros especializados. 03. Limpe o video com alcool e agua sanitaria. 04. Entre no Setup, fuxique e troque algumas coisas. 05. Coloque uma senha no Setup: que tal Schwartznneagger? 06. Mantenha a impressora sempre ligada. 07. Crie um ramdrive e instale seu sistema operacional nele. 08. Disquetes ficam melhor armazenados em armarios de ferro ou aco. 09. E' bom o micro pegar sol: evita o 'Cold Start'. 10. Quando o cartucho InkJet estiver no meio, complete com querosene. 11. Limpe as placas da CPU com esponjas de aco para dar brilho. 12. Se voce usa DOS, substitua o seu COMMAND.COM por um menor, do dos 2.11. 13. Memoria sobrando? Venda-a ou troque por disquetes de 360k. 14. Fique atento as novidades de informatica lancadas pelos Monges no Tibet. 15. Desligue o botao de Turbo. 16. Winchester cheio demais? Apague asteriscos! 17. Dois ou mais CD's cabem numa mesma capa: basta ficarem de frente. 18. Economize IRQ'z: coloque o mesmo para o Mouse, para o Modem e para a placa de Som! 19. Deixe o gabinete aberto para ventilar a barra-bus. 20. Espirrou no teclado? Jogue um pouco de talco nele. 21. Quando a fita da impressora estiver fraca, coloque o papel dobrado. 22. Para limpar fiapos do teclado, passe um alfinete entre as teclas. 23. Multimidia? Entao aproveite para gravar todos seus CD's no winchester! 24. Na sala do computador use carpete ou tapete. 25. Quando cair a energia, deixe todos os botoes ligados ate voltar. 26. Nao se preocupe com trovoadas: o raio ate facilita que os bits deslizem. 27. No inverno cubra seu micro com um cobertor. 28. Copie seu sistema operacional para disquetes de 360k. 29. Desconfie do software que sua namorada gostar. 30. Agora olhe a foto do inicio para se lembrar de como era bom antes disso tudo! °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° Cacaio@a-Vip.com -=[ 10 ]=- .-------------------------------. | Entrando pela porta da frente \___________________________________________ `----------------------------------------------------------------------------' by Milly Ola, sou Milly, a mais nova colaboradora do The Death Knights. Minha especialidade e' sistemas PC. Uma das minhas primeiras peripecias foi a invasao de uma netware. Para conseguir isso usei uma filosofia bem simples, por que arrombar a janela se abrir a porta da frente e mais facil e menos suspeito? Portanto ao inves de forcar a barra chamando a atencao do servidor e consequentemente do supervisor eu esperei pacientemente que o supervisor me entregasse sua password. Apos verificar que os usuarios nao resetavam os micros apos a utilizacao eu me aproveitei dessa brecha e me instalei no teclado, armazenando a senha em uma area publica que criei. Portanto segui o seguinte plano: 1. cirava uma area publica acima de qualquer suspeita (distribuicao de shareware) 2. me instalava na memoria; 3. aguardava a execucao do arquivo LOGIN.EXE 4. armazenava em um arquivo o nick e o pass 5. "infectava" o login script dos usuarios inexperientes LOCALIZANDO O EXECUTAVEL Para aguardar a execucao do arquivo LOGIN.EXE foi preciso me instalar na INT 21h. A funcao 4Bh carrega e executa um programa na memoria: INT 21 - DOS 2+ - "EXEC" - LOAD AND/OR EXECUTE PROGRAM AH: 4Bh AL: type of load 00h - load and execute 01h - load but do not execute (debugger) 03h - load overlay 04h - load and execute in background (European MS-DOS 4.0 only) "Exec & Go" (see also AH=80h) DS:DX: ASCIIZ program name (must include extension) ES:BX: parameter block (see below) CX: mode (subfunction 04h only) Format of EXEC parameter block for AL=00h,01h,04h: Offset Size Description 00h WORD segment of environment to copy for child process (copy caller's environment if 0000h) 02h DWORD pointer to command tail to be copied into child's PSP 06h DWORD pointer to first FCB to be copied into child's PSP 0Ah DWORD pointer to second FCB to be copied into child's PSP 0Eh DWORD (AL=01h) 12h DWORD (AL=01h) Apos detectar a chamada ao LOGIN.EXE existe a possibilidade do usuario (entenda-se lamer) ter digitado o nick na linha de comando, portanto foi preciso verificar a existencia de algum argumento e ja armazena-lo no arquivo de senhas. TRATAMENTO DO TECLADO Depois de digitar a linha de comando o usuarios tem que digitar o nick e o pass, ou simplesmente o pass. Ai entra a interrupcao 09h, essa interrupcao e' ativada por hardware atraves da IRQ 1 ativado pelo controlador do teclado. Quando a interrupcao do teclado e chamada um dado e colocado no port 60h, porem deixei o tratamento da interrupcao para o DOS e me preocupei somente com o que foi digitado. Portanto precisei tambem me instalar na INT 09h. No tratamento de chamda o DOS recupera o dado do controlador do teclado e o insere na lista circular do teclado ou nas flags de status e por ultimo re-habilita o controlador de interrupcao. O buffer do teclado segue o seguinte mapeamento: 40h:1Ah - POINTER TO NEXT CHARACTER IN KEYBOARD BUFFER (word) 40h:1Ch - POINTER TO FIRST FREE SLOT IN KEYBOARD BUFFER (word) 40h:1Eh - DEFAULT KEYBOARD CIRCULAR BUFFER (16 words) 1Ah 1Ch 1Eh 3Eh ++---++--++--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--++ ||OUT||IN|| | | | | CIRCULAR BUFFER | | | | | | || ++---++--++--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--++ ^ ^ IN OUT O ponteiro OUT e o offset para a 1a tecla a ser retirado da lista. O ponteiro IN e o offset para o 1o espaco livre onde a INT 09h deve colocar a proxima tecla pressinada. Ja, o buffer circular contem 16 words cada representando o codigo da tecla e o caracter correspondente, respectivamente. Quando um dado e inserido no Buffer Circular e verificado inicialmente se IN+2 e' igual a OUT, neste caso o buffer esta cheio e nao e inserido nenhum caracter, enquanto que o beep caracteristico e acionado. No caso do buffer nao estar cheio coloca-se os dados na posicao apontada por IN que entao e' incrementado duas vezes. No caso de se retirar algo do buffer verifica-se se OUT e' igual a IN, neste caso o buffer esta vazio, e nao ha caracteres a se retirar. No caso do buffer nao estar vazio retira-se os dados na posicao apontada por OUT que entao e incrementado duas vezes. NOTA: o incremento de ponteiros para buffers circulares deve se manter dentro dos limites do buffer, portanto ao se incrementar um ponteiro alem do limite superior do buffer deve-se retorna-lo ao inicio do buffer. Nesse caso eu nao precisei inserir ou retirar nenhum tipo de dado do Buffer de teclado. O que foi feito foi ao ser chamada a INT 09h armazenei o valor do ponteiro IN e chamei a rotina antiga de tratamento de interrupcao, que incrementara o ponteiro IN do buffer no caso de ser tratar de uma tecla de caracter. Apos chamar a rotina antiga eu vou verificar se foi inserido algo no buffer, se o ponteiro IN for diferente do antigo ponteiro IN leio o que foi inserido, e' o caracter que precisamos. MANIPULACAO DE ARQUIVO Bem, agora ja temos o tratamento da INT 21h e da INT 09h, falta agora a rotina de gravacao do arquivo. Para isso foi preciso a rotina de acesso a disco mais rapida e menor possivel, o que encontrei em C foram as rotinas em IO.H: open e relacionadas, por chamarem a interrupcao diretamente se encaixam perfeitamen- te nos requisitos necessarios. Os serviços de interrupcao de manipulacao de arquivos sao: INT 21 - DOS 2+ - "OPEN" - OPEN EXISTING FILE AH: 3Dh AL access and sharing modes DS:DX: ASCIZ filename CL: attribute mask of files to look for (server call only) Return: if CF clear: SUCCESSFUL AX: file handle if CF set: ERROR AX: error code INT 21 - DOS 2+ - "CLOSE" - CLOSE FILE AH: 3Eh BX: file handle Return: if CF clear: SUCCESSFUL AX: destroyed if CF set: ERROR AX: error code INT 21 - DOS 2+ - "READ" - READ FROM FILE OR DEVICE AH: 3Fh BX: file handle CX: number of bytes to read DS:DX: buffer for data Return: if CF clear: SUCCESSFUL AX: number of bytes read (0 if at EOF before call) if CF set: ERROR AX: error code INT 21 - DOS 2+ - "WRITE" - WRITE TO FILE OR DEVICE AH: 40h BX: file handle CX: number of bytes to write DS:DX: data to write Return: if CF clear: SUCCESSFUL AX: number of bytes actually written if CF set: ERROR AX: error code Antes de armazenar os dados no arquivo, deixe-os na memoria a espera de um enter, que provavelmente indicaria a execucao de um comando qualquer, e consequentemente um acesso a rede. Para evitar bisbilhoteiros eu criptografei o arquivo de senhas, atraves de uma chave de um byte aplicada com XOR no arquivo. Recomendo funcoes que podem ser facilmente recuperadas, como ADD, SUB ou XOR, rapidas, simples e eficazes. "Infeccao" do login-script Logo apos conseguir uma senha podemos utilizar as informacoes de usuarios avançados e/ou importantes. Porem ainda existem aqueles usuarios que mal utilizam a rede. Aparentemente inuteis esses usuarios podem se tornar seus colaboradores, basta para isso inserir em seus login-script uma linha que execute seu arquivo, dessa forma em todos os computadores que esses usuarios logarem estarao aptos a robarem senhas para voce. Ultimas Consideracoes Preste muita atencao no nome em que colocara no executavel, como ele nao se esconde na memoria, portanto um MEM /C podera identificar um invasor (caso seja utilizado GETPASS.EXE), portanto deve-se utilizar nomes parecidos com drivers de rede, como VMS ou AIX, procure ler alguns livros de redes ethernet ou netware. E' isso ai, me coloco a disposicao de duvidas! MillyPad@hotmail.com. -=[ 11 ]=- .----------. | PortScan \________________________________________________________________ `----------------------------------------------------------------------------' by Cacaio Aih pessoal, eu tava sem o que fazer e resolvi fazer um port scanner. Pra que serve? Se voce nao sabe, nem compile... ja que voce nao sabe o que e', pode ser um virus! Isto e bastante util se voce souber usar. Bem... aih vai o source!!! -------xX !!! CuT HeRe !!! !!! CuT HeRe !!! !!! CuT HeRe !!! Xx------- /* file psctdk.c by Cacaio */ /* * T H E * * $$Pø"ý$b ,gPø"ý$b ,gPø""ý$b ,gPø$$$$$$$$ý$b ,gø ý$b * $$ $$ $$ $$ $$ $$ $$$$$$ $$ $$ * $$ $$ $$ "ý $$ $$ $$$$ $$ $$ * $$ $$ $$Pý" ,p $$, ,$$ `$$' $$, ,$$ * $$ $$ gg $$ $$$$$$$$$ $$ $$$$$$$$$ * $$ $$ $$ $$ $$' `$$ $$ $$' `$$ * $$ $$ $$ $$ $$ $$ $$ $$ $$ * $$ $$ $$ $$ $$ $$ .$$. $$ $$ * T$, gP' T$, gP' $$ $$ $$$$ $$ $$ * $$Pýýø" $$Pýýø" "ý ý" $$$$ "ý ý" * ý" * K N i G H T S * * Portscan 1.2 by Cacaio * Please, if you use my code give me credit. * This code is made specially for The Death Knights. * Visit our webpage at http://www.deatahknights * If you want to contact me, e-mail me. * */ #include #include #include #include #include #define MAX_PORT 1024 int s; struct sockaddr_in addr; char rmt_host[100]; int skan(port) int port; { int r; s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if (s < 0) { /* Error - what do ya think? :P */ printf("ERROR: socket() failed\n"); exit(0); } addr.sin_family = PF_INET; addr.sin_port = htons(port); addr.sin_addr.s_addr = inet_addr(rmt_host); r = connect(s,(struct sockaddr *) &addr, sizeof(addr)); close(s); if (r==-1) { return (1 == 0); } return (1 == 1); } main(argc,argv) int argc; char *argv[]; { int a,b,c,d,e,f; struct hostent *foo; struct servent *bar; if (argc < 2) { /* returns when not used with proper parameters. */ fprintf(stderr,"usage: %s <host> [highest port]\n",argv[0]); fprintf("The Death Knights Port Scanner 1.2 by Cacaio!"); fprintf("http://www.deathknights.com Cacaio@deathknights.com"); exit(0); } if (sscanf(argv[1],"%d.%d.%d.%d",&a,&b,&c,&d) != 4) { foo = gethostbyname(argv[1]); if (foo == NULL) { /* it happens when the address doesn't have a dns or occurr a dns error */ fprintf(stderr,"error: cannot resolve host %s\n",argv[1]); fprintf("The Death Knights Port Scanner 1.2 by Cacaio!"); fprintf("http://www.deathknights.com Cacaio@deathknights.com"); exit(0); } sprintf(rmt_host,"%d.%d.%d.%d",(unsigned char )foo->h_addr_list[0][0], (unsigned char ) foo->h_addr_list[0][1], (unsigned char ) foo->h_addr_list[0][2], (unsigned char ) foo->h_addr_list[0][3]); } else { strncpy(rmt_host,argv[1],99); } if (argc > 2) { f = atoi(argv[2]); } else f = MAX_PORT; /* all ok... r0cking... */ fprintf(stdout,"Scanning host %s - TCP ports 1 through %d\n",rmt_host,f); fprintf("The Death Knights Port Scanner 1.2 by Cacaio!"); fprintf("http://www.deathknights.com Cacaio@deathknights.com"); for (e =1;e<=f;e++) { char serv[100]; if (skan(e)) { bar = getservbyport(htons(e),"tcp"); printf("%d (%s) is running.\n",e,(bar == NULL) ? "UNKNOWN" : bar->s_name); } } /* THE END!!! >) */ } -------xX !!! CuT HeRe !!! !!! CuT HeRe !!! !!! CuT HeRe !!! Xx------- Eh isso aih! Facam a festa! Cacaio@a-Vip.com -=[ 12 ]=- .---------------------------. | WinNT Passwords [Parte 2] \_______________________________________________ `----------------------------------------------------------------------------' by Cacaio No tdk01, eu falei onde podem ser vistas em pleno texto as senhas do WinNT, e agora falarei sobre um pequeno utilitario que transforma a password database que estra no registro do NT (em HKEY_LOCAL_MACHINE\SECURITY\SAM\Domains\Account\Users) para um valido formato sbpasswd. Isso daqui pode ajudar alguns admnistradores de Samba que tem uma master password database em uma maquina WinNT e quer a colocar em sincronia com o arquuivo smbpassword no sei servidor UNIX/Samba. Fazendo isto as senhas nao aparecem mais como texto. Este utilitario descarrega as entradas de password do NT no seguinte formato: ::::comment:homedir: Onde: e' o user name no WinNT e' o Relative ID (RID) do WinNT e' o lanman passwrod haso do usuario. e' o WinNT (md4) password hash -\ Se o usuario nao tiver senha, aparecera 'NO PASSWORD*****'. Se a conta for invalida ou desativada, terao 32 '*''s. -NOTA- O homedir nao pode conter o caractere ':', pos eles sao utilizados como separa- dores de campo no arquvo smbpasswd (sendo para UNIX), todos os caracteres ':' depois da letra do triva se tornarao '_'. .----------------------------. | Como usar o pwdump `----------------------------------. `=================-=-====--==-=-=-===----==---=-=---=-=--- -- - - So uma sugestao: eu recomendo fazer isto nas suas maquinas NT e entao criar users UNIX (no /etc/passwd) com os mesmos dados da conta no UNIX e no NT RID. Estas contas no /etc/passwd devem ter desativado a entrada de senhas, proibindo que usuarios NT loguem no UNIX via telnet. Isto nao vai proibir que usem o Samba como um servidor. O smbpasswod criado de- ve ser copado para $SAMBA/private/smbpasswd (onde $SAMBA e o diretorio base em que voce instalou o Samba. Para deixar que o samba sempre en- cripte as senhas de users, coloque o seguinte setting: security = user encrypted passwords = yes Isto no seu arquivo smb.conf. Fazendo isto o seu sistema estara apto para usufruir dos beneficios deste utilitario. O utilitario pwdump.exe pode colocar um \\machine name como argumento, isso e' para que quando utilizado, faca o que deve na maquina remota ao inves da local, se tiver privilegios o suficiente, claro. Ele ira pegar o estilo do password database da maquina local. .------------------. | Source `--------------------------------------------. `=================-=-====--==-=-=-===----==---=-=---=-=--- -- - - Para compilar o source, voce precisa da biblioteca DES. Ela pode ser obtida em: ftp://ftp.psy.uq.oz.au/pub/Crypto/DES/libdes-4.01.tar.gz Para compilar voce pode usar qualquer compilador. -------xX !!! CuT HeRe !!! !!! CuT HeRe !!! !!! CuT HeRe !!! Xx------- /* file pwdump.c */ /* * T H E * * $$Pø"ý$b ,gPø"ý$b ,gPø""ý$b ,gPø$$$$$$$$ý$b ,gø ý$b * $$ $$ $$ $$ $$ $$ $$$$$$ $$ $$ * $$ $$ $$ "ý $$ $$ $$$$ $$ $$ * $$ $$ $$Pý" ,p $$, ,$$ `$$' $$, ,$$ * $$ $$ gg $$ $$$$$$$$$ $$ $$$$$$$$$ * $$ $$ $$ $$ $$' `$$ $$ $$' `$$ * $$ $$ $$ $$ $$ $$ $$ $$ $$ * $$ $$ $$ $$ $$ $$ .$$. $$ $$ * T$, gP' T$, gP' $$ $$ $$$$ $$ $$ * $$Pýýø" $$Pýýø" "ý ý" $$$$ "ý ý" * ý" * K N i G H T S * * Visit our webpage at http://www.deathknights.com * */ /* * (C) Jeremy Allison 1997. All rights reserved. * * This program is free for commercial and non-commercial use. * * Redistribution and use in source and binary forms, with or without * modification, are permitted. * * THIS SOFTWARE IS PROVIDED BY JEREMY ALLISON ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ #include #include #include #include #include "des.h" char *error_to_string(DWORD error) { char *msgbuf; if(FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */ (char *)&msgbuf, 0, NULL ) == 0) return 0; return msgbuf; } /* * Return a pointer to a string describing an os error. * error_to_string returns a pointer to LocalAlloc'ed * memory. Cache it and release when the next one is * requested. 1000 */ char *str_oserr(DWORD err) { static char *lastmsg = 0; if(lastmsg) LocalFree((HLOCAL)lastmsg); lastmsg = error_to_string(err); return lastmsg; } BOOL get_sid(const char *name, SID **ppsid) { SID_NAME_USE sid_use; DWORD sid_size = 0; DWORD dom_size = 0; char *domain; *ppsid = 0; if(LookupAccountName(0, name, 0, &sid_size, 0, &dom_size, &sid_use) == 0) { if(GetLastError() != ERROR_INSUFFICIENT_BUFFER) { fprintf( stderr, "get_sid: LookupAccountName for size on name %s failed. Error was %s\n", name, str_oserr(GetLastError())); return FALSE; } } *ppsid = (SID *)LocalAlloc( LMEM_FIXED, sid_size); domain = (char *)LocalAlloc( LMEM_FIXED, dom_size); if( *ppsid == 0 || domain == 0) { fprintf( stderr, "get_sid: LocalAlloc failed. Error was %s\n", str_oserr(GetLastError())); if(*ppsid) LocalFree((HLOCAL)*ppsid); if(domain) LocalFree((HLOCAL)domain); *ppsid = 0; return FALSE; } if(LookupAccountName(0, name, *ppsid, &sid_size, domain, &dom_size, &sid_use) == 0) { fprintf( stderr, "get_sid: LookupAccountName failed for name %s. Error was %s\n", name, str_oserr(GetLastError())); LocalFree((HLOCAL)*ppsid); LocalFree((HLOCAL)domain); *ppsid = 0; return FALSE; } LocalFree((HLOCAL)domain); return TRUE; } BOOL create_sd_from_list( SECURITY_DESCRIPTOR *sdout, int num, ...) { va_list ap; SID **sids = 0; char *name; DWORD amask; DWORD acl_size; PACL pacl = 0; int i; if((sids = (SID **)calloc(1,sizeof(SID *)*num)) == 0) { fprintf(stderr, "create_sd_from_list: calloc fail.\n"); return FALSE; } acl_size = num * (sizeof(ACL) + sizeof(ACCESS_ALLOWED_ACE) + sizeof(DWORD)); /* Pega todos os SID's */ va_start( ap, num); for( i = 0; i < num; i++) { name = va_arg( ap, char *); amask = va_arg(ap, DWORD); if(get_sid( name, &sids[i]) == FALSE) goto cleanup; acl_size += GetLengthSid(sids[i]); } va_end(ap); if((pacl = (PACL)LocalAlloc( LMEM_FIXED, acl_size)) == 0) { fprintf( stderr, "create_sd_from_list: LocalAlloc fail. Error was %s\n", str_oserr(GetLastError())); goto cleanup; } if(InitializeSecurityDescriptor( sdout, SECURITY_DESCRIPTOR_REVISION) == FALSE) { fprintf( stderr, "create_sd_from_list: InitializeSecurityDescriptor fail. Error was %s\n", str_oserr(GetLastError())); goto cleanup; } if(InitializeAcl( pacl, acl_size, ACL_REVISION) == FALSE) { fprintf( stderr, "create_sd_from_list: InitializeAcl fail. Error was %s\n", str_oserr(GetLastError())); goto cleanup; } va_start(ap, num); for( i = 0; i < num; i++) { ACE_HEADER *ace_p; name = va_arg( ap, char *); amask = va_arg( ap, DWORD); if(AddAccessAllowedAce( pacl, ACL_REVISION, amask, sids[i]) == FALSE) { fprintf( stderr, "create_sd_from_list: AddAccessAllowedAce fail. Error was %s\n", str_oserr(GetLastError())); goto cleanup; } /* Make sure the ACE is inheritable */ if(GetAce( pacl, 0, (LPVOID *)&ace_p) == FALSE) { fprintf( stderr, "create_sd_from_list: GetAce fail. Error was %s\n", str_oserr(GetLastError())); goto cleanup; } ace_p->AceFlags |= ( CONTAINER_INHERIT_ACE | OBJECT_INHERIT_ACE); } /* Add the ACL into the sd. */ if(SetSecurityDescriptorDacl( sdout, TRUE, pa 1000 cl, FALSE) == FALSE) { fprintf( stderr, "create_sd_from_list: SetSecurityDescriptorDacl fail. Error was %s\n", str_oserr(GetLastError())); goto cleanup; } for( i = 0; i < num; i++) if(sids[i] != 0) LocalFree((HLOCAL)sids[i]); free(sids); return TRUE; cleanup: if(sids != 0) { for( i = 0; i < num; i++) if(sids[i] != 0) LocalFree((HLOCAL)sids[i]); free(sids); } if(pacl != 0) LocalFree((HLOCAL)pacl); return FALSE; } int set_userkeys_security( HKEY start, const char *path, SECURITY_DESCRIPTOR *psd, HKEY *return_key) { HKEY key; DWORD err; char usersid[128]; DWORD indx = 0; if((err = RegOpenKeyEx( start, path, 0, KEY_ENUMERATE_SUB_KEYS, &key)) != ERROR_SUCCESS) { fprintf(stderr, "set_userkeys_security: Failed to open key %s to enumerate. \ Error was %s.\n", path, str_oserr(err)); return -1; } do { DWORD size; FILETIME ft; size = sizeof(usersid); err = RegEnumKeyEx( key, indx, usersid, &size, 0, 0, 0, &ft); if(err == ERROR_SUCCESS) { HKEY subkey; indx++; if((err = RegOpenKeyEx( key, usersid, 0, WRITE_DAC, &subkey)) != ERROR_SUCCESS) { fprintf(stderr, "set_userkeys_security: Failed to open key %s to set security. \ Error was %s.\n", usersid, str_oserr(err)); RegCloseKey(key); return -1; } if((err = RegSetKeySecurity( subkey, DACL_SECURITY_INFORMATION, psd)) != ERROR_SUCCESS) { fprintf(stderr, "set_userkeys_security: Failed to set security on key %s. \ Error was %s.\n", usersid, str_oserr(err)); RegCloseKey(subkey); RegCloseKey(key); return -1; } RegCloseKey(subkey); } } while(err == ERROR_SUCCESS); if(err != ERROR_NO_MORE_ITEMS) { RegCloseKey(key); return -1; } if(return_key == 0) RegCloseKey(key); else *return_key = key; return 0; } int restore_sam_tree_access( HKEY start ) { char path[128]; char *p; HKEY key; DWORD err; SECURITY_DESCRIPTOR sd; DWORD admin_mask; admin_mask = WRITE_DAC | READ_CONTROL; if(create_sd_from_list( &sd, 2, "SYSTEM", GENERIC_ALL, "Administrators", admin_mask) == FALSE) return -1; strcpy( path, "SECURITY\\SAM\\Domains\\Account\\Users"); /* Remove the security on the user keys first. */ if(set_userkeys_security( start, path, &sd, 0) != 0) return -1; /* now go up the path, restoring security */ do { if((err = RegOpenKeyEx( start, path, 0, WRITE_DAC, &key)) != ERROR_SUCCESS) { fprintf(stderr, "restore_sam_tree_access:Failed to open key %s to set \ security. Error was %s.\n", path, str_oserr(err)); return -1; } if((err = RegSetKeySecurity( key, DACL_SECURITY_INFORMATION, &sd)) != ERROR_SUCCESS) { fprintf(stderr, "restore_sam_tree_access: Failed to set security on key %s. \ Error was %s.\n", path, str_oserr(err)); RegCloseKey(key); return -1; } RegCloseKey(key); p = strrchr(path, '\\'); if( p != 0) *p = 0; } while( p != 0 ); return 0; } int set_sam_tree_access( HKEY start, HKEY *return_key) { char path[128]; char *p; HKEY key; DWORD err; BOOL security_changed = FALSE; SECURITY_DESCRIPTOR sd; DWORD admin_mask; BOOL finished = FALSE; admin_mask = WRITE_DAC | READ_CONTROL | KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS; if(create_sd_fr 1000 om_list( &sd, 2, "SYSTEM", GENERIC_ALL, "Administrators", admin_mask) == FALSE) return -1; strcpy( path, "SECURITY\\SAM\\Domains\\Account\\Users"); p = strchr(path, '\\'); do { if( p != 0) *p = 0; else finished = TRUE; if((err = RegOpenKeyEx( start, path, 0, WRITE_DAC, &key)) != ERROR_SUCCESS) { fprintf(stderr, "set_sam_tree_access:Failed to open key %s to set \ security. Error was %s.\n", path, str_oserr(err)); return (security_changed ? -2: -1); } if((err = RegSetKeySecurity( key, DACL_SECURITY_INFORMATION, &sd)) != ERROR_SUCCESS) { fprintf(stderr, "set_sam_tree_access: Failed to set security on key %s. \ Error was %s.\n", path, str_oserr(err)); RegCloseKey(key); return (security_changed ? -2: -1); } security_changed = TRUE; RegCloseKey(key); if(p != 0) { *p++ = '\\'; p = strchr(p, '\\'); } } while( !finished ); if(set_userkeys_security( start, path, &sd, &key) != 0) return -2; if(return_key == 0) RegCloseKey(key); else *return_key = key; return 0; } int get_int( char *array ) { return ((array[0]&0xff) + ((array[1]<<8)&0xff00) + ((array[2]<<16)&0xff0000) + ((array[3]<<24)&0xff000000)); } void str_to_key(unsigned char *str,unsigned char *key) { void des_set_odd_parity(des_cblock *); int i; key[0] = str[0]>>1; key[1] = ((str[0]&0x01)<<6) | (str[1]>>2); key[2] = ((str[1]&0x03)<<5) | (str[2]>>3); key[3] = ((str[2]&0x07)<<4) | (str[3]>>4); key[4] = ((str[3]&0x0F)<<3) | (str[4]>>5); key[5] = ((str[4]&0x1F)<<2) | (str[5]>>6); key[6] = ((str[5]&0x3F)<<1) | (str[6]>>7); key[7] = str[6]&0x7F; for (i=0;i<8;i++) { key[i] = (key[i]<<1); } des_set_odd_parity((des_cblock *)key); } void sid_to_key1(unsigned long sid,unsigned char deskey[8]) { unsigned char s[7]; s[0] = (unsigned char)(sid & 0xFF); s[1] = (unsigned char)((sid>>8) & 0xFF); s[2] = (unsigned char)((sid>>16) & 0xFF); s[3] = (unsigned char)((sid>>24) & 0xFF); s[4] = s[0]; s[5] = s[1]; s[6] = s[2]; str_to_key(s,deskey); } void sid_to_key2(unsigned long sid,unsigned char deskey[8]) { unsigned char s[7]; s[0] = (unsigned char)((sid>>24) & 0xFF); s[1] = (unsigned char)(sid & 0xFF); s[2] = (unsigned char)((sid>>8) & 0xFF); s[3] = (unsigned char)((sid>>16) & 0xFF); s[4] = s[0]; s[5] = s[1]; s[6] = s[2]; str_to_key(s,deskey); } int check_vp(char *vp, int vp_size, char **username, char **fullname, char **comment, char **homedir, char *lanman,int *got_lanman, char *md4, int *got_md4, DWORD rid ) { des_key_schedule ks1, ks2; des_cblock deskey1, deskey2; int username_offset = get_int(vp + 0xC); int username_len = get_int(vp + 0x10); int fullname_offset = get_int(vp + 0x18); int fullname_len = get_int(vp + 0x1c); int comment_offset = get_int(vp + 0x24); int comment_len = get_int(vp + 0x28); int homedir_offset = get_int(vp + 0x48); int homedir_len = get_int(vp + 0x4c); int pw_offset = get_int(vp + 0x9c); *username = 0; *fullname = 0; *comment = 0; *homedir = 0; *got_lanman = 0; *got_md4 = 0; if(username_len < 0 || username_offset < 0 || comment_len < 0 || fullname_len < 0 || homedir_offset < 0 || comment_offset < 0 || pw_offset < 0) return -1; username_offset += 0xCC; fullname_offset += 0xCC; comment_offset += 0xCC; homedir_offset += 0xCC; pw_offset += 0xCC; if((*username = (char *)malloc(username_len + 1)) == 0) { fprintf(stderr, "check_vp: malloc fail for username.\n"); return -1; } if((*fullname = (char *)malloc(fullname_len + 1)) == 0) 1000 { fprintf(stderr, "check_vp: malloc fail for username.\n"); free(*username); *username = 0; return -1; } if((*comment = (char *)malloc(comment_len + 1)) == 0) { fprintf(stderr, "check_vp: malloc fail for comment.\n"); free(*username); *username = 0; free(*fullname); *fullname = 0; return -1; } if((*homedir = (char *)malloc(homedir_len + 1)) == 0) { fprintf(stderr, "check_vp: malloc fail for homedir.\n"); free(*username); *username = 0; free(*fullname); *fullname = 0; free(*comment); *comment = 0; return -1; } wcstombs( *username, (wchar_t *)(vp + username_offset), username_len/sizeof(wchar_t)); (*username)[username_len/sizeof(wchar_t)] = 0; wcstombs( *fullname, (wchar_t *)(vp + fullname_offset), fullname_len/sizeof(wchar_t)); (*fullname)[fullname_len/sizeof(wchar_t)] = 0; wcstombs( *comment, (wchar_t *)(vp + comment_offset), comment_len/sizeof(wchar_t)); (*comment)[comment_len/sizeof(wchar_t)] = 0; wcstombs( *homedir, (wchar_t *)(vp + homedir_offset), homedir_len/sizeof(wchar_t)); (*homedir)[homedir_len/sizeof(wchar_t)] = 0; if(pw_offset >= vp_size) { /* No password */ *got_lanman = 0; *got_md4 = 0; return 0; } if(pw_offset + 32 > vp_size) { /* Account disabled ? */ *got_lanman = -1; *got_md4 = -1; return 0; } sid_to_key1(rid,(unsigned char *)deskey1); des_set_key((des_cblock *)deskey1,ks1); sid_to_key2(rid,(unsigned char *)deskey2); des_set_key((des_cblock *)deskey2,ks2); vp += pw_offset; des_ecb_encrypt((des_cblock *)vp, (des_cblock *)lanman, ks1, DES_DECRYPT); des_ecb_encrypt((des_cblock *)(vp + 8), (des_cblock *)&lanman[8], ks2, DES_DECRYPT); vp += 16; des_ecb_encrypt((des_cblock *)vp, (des_cblock *)md4, ks1, DES_DECRYPT); des_ecb_encrypt((des_cblock *)(vp + 8), (des_cblock *)&md4[8], ks2, DES_DECRYPT); *got_lanman = 1; *got_md4 = 1; return 0; } void print_hexval(char *val) { int i; for(i = 0; i < 16; i++) printf("%02X", (unsigned char)val[i]); } void strip_text( char *txt ) { char *p; for( p = strchr(txt, ':'); p ; p = strchr( p + 1, ':')) *p = '_'; for( p = strchr(txt, '\n'); p ; p = strchr(p + 1, '\n')) *p = '_'; for( p = strchr(txt, '\r'); p ; p = strchr(p + 1, '\r')) *p = '_'; } int printout_smb_entry( HKEY user, DWORD rid ) { DWORD err; DWORD type; DWORD size = 0; char *vp; char lanman[16]; char md4_hash[16]; char *username; char *fullname; char *comment; char *homedir; int got_lanman; int got_md4; /* Find out how much space we need for the 'V' value. */ if((err = RegQueryValueEx( user, "V", 0, &type, 0, &size)) != ERROR_SUCCESS) { fprintf(stderr, "printout_smb_entry: Unable to determine size needed \ for user 'V' value. Error was %s.\n.", str_oserr(err)); return -1; } if((vp = (char *)malloc(size)) == 0) { fprintf(stderr, "printout_smb_entry: malloc fail for user entry.\n"); return -1; } if((err = RegQueryValueEx( user, "V", 0, &type, (LPBYTE)vp, &size)) != ERROR_SUCCESS) { fprintf(stderr, "printout_smb_entry: Unable to read user 'V' value. \ Error was %s.\n.", str_oserr(err)); free(vp); return -1; } /* Check heuristics */ if(check_vp(vp, size, &username, &fullname, &comment, &homedir, lanman, &got_lanman, md4_hash, &got_md4, rid) != 0) { fprintf(stderr, "Failed to parse entry for RID %X\n", rid); free(vp); return 0; } /* Ensure username of comment 1000 don't have any nasty suprises for us such as an embedded ':' or '\n' - see multiple UNIX passwd field update security bugs for details... */ strip_text( username ); strip_text( fullname ); strip_text( comment ); strip_text( homedir ); printf("%s:%d:", username, rid); if(got_lanman) { if(got_lanman == -1) /* Conta desativada? */ printf("********************************"); else print_hexval(lanman); } else printf("NO PASSWORD*********************"); printf(":"); if(got_md4) { if(got_md4 == -1) /* Conta desativada? */ printf("********************************"); else print_hexval(md4_hash); } else printf("NO PASSWORD*********************"); printf(":"); if(*fullname) printf("%s", fullname); if(*fullname && *comment) printf(","); if(*comment) printf("%s", comment); printf(":"); if(*homedir) printf("%s", homedir); printf(":\n"); free(username); free(comment); free(homedir); free(vp); return 0; } int enumerate_users( HKEY key) { DWORD indx = 0; DWORD err; DWORD rid; char usersid[128]; do { DWORD size; FILETIME ft; size = sizeof(usersid); err = RegEnumKeyEx( key, indx, usersid, &size, 0, 0, 0, &ft); if(err == ERROR_SUCCESS) { HKEY subkey; indx++; if((err = RegOpenKeyEx( key, usersid, 0, KEY_QUERY_VALUE, &subkey)) != ERROR_SUCCESS) { fprintf(stderr, "enumerate_users: Failed to open key %s to read value. \ Error was %s.\n", usersid, str_oserr(err)); RegCloseKey(key); return -1; } rid = strtoul(usersid, 0, 16); if(rid != 0) { if(printout_smb_entry( subkey, rid ) != 0) { RegCloseKey(subkey); return -1; } } RegCloseKey(subkey); } } while(err == ERROR_SUCCESS); if(err != ERROR_NO_MORE_ITEMS) { RegCloseKey(key); return -1; } return 0; } void usage(const char *arg0) { fprintf(stderr, "Usage: %s <\\\\machine>\n", arg0); exit(-1); } /* * uso: \\machine */ int main(int argc, char **argv) { char username[128]; DWORD size; HKEY start_key = HKEY_LOCAL_MACHINE; HKEY users_key; int err; if(argc > 2) usage(argv[0]); size = sizeof(username); if(GetUserName(username, &size)== FALSE) { fprintf(stderr, "%s: GetUserName() failed. Error was %s.", argv[0], str_oserr(GetLastError())); return -1; } if(stricmp( "Administrator", username) != 0) { fprintf(stderr, "%s: You must be running as user Administrator \ to run this program\n", argv[0]); return -1; } if(argc == 2) { if((err = RegConnectRegistry( argv[1], HKEY_LOCAL_MACHINE, &start_key)) != ERROR_SUCCESS) { fprintf(stderr, "%s: Failed to connect to registry on remote computer %s.\ Error was %s.\n", argv[0], argv[1], str_oserr(err)); return -1; } } if((err = set_sam_tree_access( start_key, &users_key)) != 0) { if(err == -2) restore_sam_tree_access( start_key); return -1; } enumerate_users( users_key ); RegCloseKey(users_key); restore_sam_tree_access( start_key ); if(start_key != HKEY_LOCAL_MACHINE) RegCloseKey(start_key); return 0; } -=[ 13 ]=- .-----------. | BONUS [1] \_______________________________________________________________ `----------------------------------------------------------------------------' by Macleod Esse bonus eh pros punheteiros de plantao... la vao senhas de porn sites! http://www.xpics.com/ass/ass.html?acb=acb138444-64000 L: too_sexy P: for_my_pussy http://www.sexmuseum.com/?acb=acb138444-g4000 L: qwerty P: wet_pussy http://www.xxxsexphotos.com/?acb=acb138444-n1000 L: destiny P: analsex http://members.sexroulette.com/?acb=acb138444-d4000 L: wet_horny P: sucke_me http://www.livesexstream.com/?acb=acb138444-j1000 L: julio6 P: romeo6s.xoom.com/herbie/ l:HaRd p:coRe http://members.pornheaven.com/ l:porno p:archive http://www.megapussy.com/members/ l/p:zena69 http://www.asianhq.com/members/ l:hacking@iseawatchwavmanuk.com p:wavmanuk http://www.pornotheater.com/lobby/members l:isp@hotmail.com p:ispno1 http://www.asianoh.com/playground/members.html l:willdroid p:rulezz http://www.erosisland.com/members l:zulu@eros.com p:zulu http://www.ladyasia.com/members/members/index.html l:stevie_13@hotmail.com p:vilely http://www.cinemaxxx.com/members l:nuts72@hotmail.com p:AB72780 http://www.digitaldesires.com/member/default.html l:whtrbt1 p:benny1 http://www.jordanlee.com/xxx/uncensrd.htm l:JMTHILL@INNET.LU P:abgrtyu http://www.aspenhill.com/asian/asina.htm l:oriental p:sex4sale http://www.pornhq.com/members/index.html L:quanamar@yahoo.com p:bychaos http://www.vavoom.com/members-only/index.html L:dingman p:dongman http://www.cinemaxxx.com/members/index.html l:PASSCORP@LAME.ORG p:zulu www.oddity.com l:JT4811 p:npoduq www.kinkyporn.com l:5379 p:1567 www.secondbell.com l:764281 p:764281 www.hotchick.com l:limited p:passwords www.cinemaxxx.com l:joe@io.org p:password www.aspweb.com l:limited p:passwords www.galleryx.com.. l:556709 P:556709 www.kinkyporn.com L:5379 P:1567 schoolgirls-r-us.com L:duvet P:duvet www.photoshoot.com/hicks/members/ L:dappy P:ajtkxwm5 www.pictureview.com L:heather P:heather www.hardchannels.com L:mongo69 P:lucifer www.redlight.com L:dany21 P:dany www.farmsex.com L:1234 P:1234 www.erosisland.com/members/ L:password P:password www.alleykatz.com/secure/right.htm L:skyline P:miki www.cybererotica.com L:scrappy P:scrappy www.jordanlee.com/xxx/uncensrd.htm L:x P:secret www.brothel.com/Member/Members.html L:brothel P:brothel www.greatxxx.com/sites/beast/members L:greatxxx.beast P:anicock62 www.realsexmagazine.com/pass.html L:qwerty P:qwerty www.danisherotica.com l:bill p:bill www.newrave.com l:badgod p:emperor www.run-aways.com L:digicafe@pair.com P:071669 www.hustler.com l:slakr p:slakr members.dirtypictures.com l: youup p: weed 204.181.154.146/members/entry.htm l:1888 p:2127 www.sexfantasy.com/html/members.m.html l:nbrawley P:nancy www1.pictureview.com/groupindex.html l:bruce P:lee www.upskirts.com/members/docs/newmcont.htm l:swingl P:upskirts -=[ 14 ]=- .-----------. | BONUS [2] \_______________________________________________________________ `----------------------------------------------------------------------------' by Cacaio Senhas da PersoCom Brasilia. Estas senhas estao aqui por que os pedidos foram muitos, e eu tambem ja tava pensando nisso a um certo tempo... hehehe.... se divirtam! Ahhh... se seus dados estao aqui nao me culpe, mas sim a PersoCom. Ela que me liberou todos estes dados tendo a seguranca tao falha... Nome completo = Tyrone ferreira Barbosa User Name = tyrone Senha = 390390 Fone = ??? 2576 1omail = tyrone Senha = 390390 2omail = thays.barbosa Senha = 390390 3omail = talys Senha = 390390 ------------------------------------------------------------------------------------- Nome Completo= Manoel Humberto Ribeiro fone= ???-1734 userid=mribeiro e-mail=mribeiro senha= 030500 ----------------------------------------------------------------------------------- Nome Completo: Maternal e Jardim de Infancia Casinha Branca User Name: cbranca Senha: 263037 Telefone : ???-7211 E-mail : casa.branca Senha: 263037 --------------------------------------------------------------------------------- Nome Completo: Cristinalice Mendonça Souza de Oliveira User Name: cristinalice Senha: 590303 Telefone : ???-3684 1o E-mail: cris.mso Senha: 590303 --------------------------------------------------------------------------------- Nome Completo: Antonio Lisboa Cardoso User Name: lisboa Senha = 252479 Fone : ??? 0234 1omail : lisboa Senha = 252479 ---------------------------------------------------------------------------------- Nome Completo: Frederico Jose Machado Porto User Name: fredjmp senha = 586625 fone: ???-3526 e-mail: fredjmp senha = 586625 e-mails adicionais: e-mail: lucypp senha= 586625 e-mail: aallpp senha= 586625 ---------------------------------------------------------------------------------- Nome Completo: Mariana Gomes de M. e Bomfim User Name: bomfim Senha: 123456 Telefone : ???-4021 1o e-mail: bomfim Senha: 123456 2o e-mail: marianagmb Senha: 654321 3o e-mail: josejmb Senha: 234567 ---------------------------------------------------------------------------------- Nome Completo: Helio Guedes de Campos Barros User Name: heliobarros Senha:h12300 Telefone : ???-3290 1o e-mail: hbarros Senha:hl2300 2o e-mail: duda Senha:duda50 3o e-mail: lbarros Senha:luis40 ---------------------------------------------------------------------------- Nome Completo= Nicio Oliveira Júnior telefone= ???-0311 useri= nicio senha= bsbad627 e-mail= baldoni senha=bsbad627] ------------------------------------------------------------------------- Nome Completo = Osvaldo de OLiveira Filho User Name = ofilho Senha = cbarao Fone = ??? 4483 1omail = casadobarao Senha = cbarao ----------------------------------------------------------------------- Nome Completo = Liliane Bezerra da C. Fontenelle User Name = lilianebrf Senha = 358729 Fone = ??? 3081 1omail = lilianebrf Senah = 358729 ------------------------------------------------------------------------- Nome Completo = Osvaldo de OLiveira Filho User Name = ofilho Senha = cbarao Fone = ??? 4483 1omail = casadobarao Senha = cbarao ------------------------------------------------------------------------------------- Nome Completo = Marcia Cenira de O. Castro Silva User Name = mercia Senha = 272221 Fone = ??? 7302 1omail = mercia Senha = 272221 ------------------------------------------------------------------------------------- Nome Completo = William Alves de Faria User Name = will Senha = 021068 Fone = ??? 4554 1omail = will Senha = 021068 ------------------------------------------------------------------------------------- Nome Completo: Francivalda Petrucci User name: petrucci Senha: petrucci Telefone : ???-4884 1o E-mail: petrucci Senha: petrucci ------------------------------------------------------------------------------------- Nome Completo= Ana America Goncalves Silva User Name = america Senha = 697807 fone = ??? 5906 1oMail = america Senha = alegria -------------------------------------------------------------------------- Nome Completo= Cilma Helena V. Blumm Ferreira User Name = blumm Senha = faca39590s Fone = ??? 3791 1o mail = ferbl Senha = faca39590s 2o mail = cilma Senha = faca39590s ---------------------------------------------------------------------------- 4-Nome Completo= Marilene Dias de Souza User Name = mds Senha = ccc3331 1o mail = mds Senha = ccc3331 ----------------------------------------------------------------------------- nome completo = gilvania conceicao Borges telefone = ???-2735 userid = Gilvania senha = gilvania e-mail= gilvania senha =gilvania e mail adicionais = gilmar senha=gilmar --------------------------------------------------------------------------------- nome completo= grimaldo b.da silva userid= grimaldo senha=110370 e-mail=grimaldo senha = 110307 fone= ???-2987 --------------------------------------------------------------------------------- nome completo = Sempre-Maternal e jardim de infancia userid= sempre senha=121604 e-mail= lilisa senha=121604 e-mail=mines senha=121604 fone= ???-4108 ---------------------------------------------------------------------------------- Nome Completo = Angela Nobrega de Sa User Name = juacyr.angela Senha: 27302509 1o e-mail: juacyr.angela Senha: 27302509 Telefone: ???-3906 ---------------------------------------------------------------------------------- Nome completo: Jorge de M. Borges User name: jmorais Senha: t2d2m5g7 1o e-mail: jmorais Senha: t2d2m5g7 Telefone: ???-1051 Ta axando pouco? Tenho que guardar umas pros members... hehehe :P -=[ 15 ]=- .-----------. | FEW WORDS \_______________________________________________________________ `----------------------------------------------------------------------------' by Cacaio De uma olhada em nossa page! http://www.deathknights.com Prez/founder: Cacaio Se voce quiser se tornar um membro, esqueca, ja temos muitos membros. AVISO NOVAMENTE: O grupo The Death Knights nao visa nenhum fim lucrativo. Qualquer uso das informacoes contidas aqui nao e de nossa responsabilidade. Se voce fizer algo descrito e se der mal, problema seu. Nos ensinamos, mas nao pedimos para usarem o conhecimento adquirido com este zine. E para terminar, nosso sincero ao Internet Billing Company, por nos dar mais de 3000 cartoes de credito bons, por usar um sistema de encriptacao de apenas 32 caracteres. Se nao quiserem que usemos os cartoes, entrem em contato conosco e poderemos negociar. (19/04) Ate' o proximo numero! ______________________________Death_Knights_________________________________ ---------------------------------------------------------------------------- Criticas? Sugestoes? death@deathknights.com