Passando por filtros de URL by Blind_Bard Contato : bill@unig2001.com.br Greetz to: coracaodelao, module, xf86config, hts, slash-DOMI, d3m3ns, CeZiNHa, meleu, a todos os outros participantes do Scene e a Ana Paula. Este e um texto de objetivos educacionais que tem por finalidade ensi nar pessoas a driblarem os dispositivos de filtragem de acesso a URLs - comumente instalados em instituicoes que nao desejam que seus usua- rios tenham acesso a determinados sites. Talvez a tatica possa ser usada no sentido inverso - apesar nao fazer ideia de como no momento (de qualquer forma, o desafio esta lancado :-). Nao sou um professor ou mestre - este e um artigo qualquer, inspirado no trabalho de uma publicacao da area de seguranca. Leia este para- grafo novamente ate entender realmente que nao clamo ser o autor des- ta tecnica. Nao me responsabilizo por quaisquer danos causados pelo uso das infor macoes aqui contidas, nem por uma possivel incorrecao nas mesmas. Se seu computador explodir, devorar sua empregada, gritar bandalheira ou simplesmente parar de funcionar, NAO me culpe. Eu so quero ajudar. Ah, e e sempre bom lembrar: "elite", cai fora. PASSANDO POR FILTROS DE URL Aaaaah... um dia frio de agosto e voce, as 16:50h, nao tem mais o que fazer na imponente 'corporacao' em que estagia. A letargia e sufocan- te, e nao ha mais formularios de chamados tecnicos por preencher!! Sua mente clama por diversao e conhecimento (quero dizer que voce, ou vai acessar pornografia, ou vai acessar paginas sobre o underground). Voce abre o browser, deixa que seus dedos corram lepidos sobre o te - clado e... Access denied. Access control configuration prevents [...] Oh, ceus! Alguem (muito acima de voce na hierarquia, seu reptil) ins- talou um software de filtragem de URLs... Que nesse caso, alias, e o Squid (que tem ate alguns bugs interessantes) - e se o dono da compa- nhia souber que tem um Unix aqui... alguem vai morrer! ;-) OK, let's rock! Um IP e normalmente representado como um conjunto de 4 octetos separa dos por pontos. Na verdade esses octetos existem simplesmente para facilitar a 'abs- tracao' e assimilacao dos numeros: em verdade um IP pode ser tratado e representado como um inteiro de 32 bits (4 x 8 = 32, lembra? :-), e num ambiente de seguranca media, certamente ninguem vai pensar nas im plicacoes disto. O que voce acha de tentar digitar o numero inteiro correspondente ao IP do site a ser acessado, em vez de sua perseguida URL? Certamente ninguem o tera incluido em uma lista de 'bloqueios'! Ah, ainda nao matou como obter este numero inteiro? Ta, aqui vai a re ceita de bolo: 1. Suponha que a URL a ser acessada e http://foo.bar.com.br/ e que o IP do server e 200.255.31.33; 2. Converta cada um dos octetos deste IP em binario, assim: 200 = 11001000 255 = 11111111 31 = 00011111 33 = 00100010 (tem um txt do Nash que ensina isso, nao vou explicar de novo :-) ou use uma calculadora cientifica); 3. Posicione estes numeros binarios em sequencia, formando um so; 11001000 11111111 00011111 00100010 (200) (255) (31) (33) 4. Converta este grande binario em inteiro; 11001000 11111111 00011111 00100010 = 3372162850 (novamente, leia o txt ou use uma calculadora) 5. Acesse http://3372162850 . Ooooooooh, que emocao, la esta o site - talvez apenas texto, mas o su ficiente para despertar a sua curiosidade! /* Implementacao de um programa que faz os calculos acima para voce. ----------------------------------------------------------------- Desenvolvido por: CSS Modificado/comentado por: Blind_Bard */ #include #include #include int main (int argc, char *argv[]) { /* verifica se o argumento foi passado corretamente */ if (argc != 2) { /* nao! entao avise ao camarada e saia com erro */ (void) fprintf (stderr, "use: %s \n", argv[0]); exit (-1); } { /* realiza o calculo utilizando deslocamento de bits (pra quem ja estudou o assunto, ele faz o mesmo que aquela "tabelinha" de conversao, com os valores 8, 16, 32, 64) */ char *cptr = strtok (argv[1], "."); int shift = 24; unsigned long acc = 0L; while (cptr != NULL) { acc += atol (cptr) << shift; shift -= 8; cptr = strtok (NULL, "."); } /* imprime o resultado (daaaa...) */ (void) printf ("%lu\n", acc); } return (0); } E isso ai... artigo pequeno, mas que tem sua utilidade - tanto pelo numero de colegas que reclamam destes inconvenientes, quanto por dei- xar aberto o caminho para a descoberta de novos usos para a informa - cao aqui contida. No mais, o conceito e bem simplorio. E claro que isso tambem pode ser bloqueado... mas e bem improvavel a- tualmente. So nao garanto que va dar tao certo em duas semanas, quando os admins que assinam a lista e visitam o Unsek ja estiverem informados ;-) A - proveite! Um [] aos caras, um beijo pras garotas ;-) Blind_Bard. ============================== http://www.unlockcrew.rg3.net/ ==============================