A Biblioteca da Escola de Hackers Apresenta:
Hacker’s Black Book (O Livro Negro do Hacker)
Tradução Livre feita pela Equipe da Escola de Hackers = 2011 =
A Biblioteca da Escola de Hackers Apresenta:
Hacker’s Black Book (O Livro Negro do Hacker)
Tradução Livre feita pela Equipe da Escola de Hackers = 2011 =
Biblioteca da Escola de Hackers
[2]
www.escoladehackers.com.br
Hacker's Black Book
Sobre este livro Este livro é uma adaptação com tradução livre baseada no Hacker's Black Book publicado pela Ingo Haese Publishing. A edição original pode ser encontrada na Internet no formato PDF, nos idiomas inglês e alemão. A edição em português é exclusiva da Escola de Hackers. O original é um livro antigo, o que fizemos foi, tanto quanto possível, atualizar as informações para a realidade de hoje. Na época em que foi lançado causou grande impacto entre os estudantes de hacking e não é por acaso que ainda é vendido no site Amazon.com por 132 dólares, um preço que consideramos alto para um livro defasado e com poucas páginas.
www.cursodehacker.com.br
[3]
Biblioteca da Escola de Hackers
[4]
www.escoladehackers.com.br
Hacker's Black Book
Sumário Introdução, 7 Sistema de Proteção por Senha com JavaScript, 9 Sistema de Proteção por Senha com .htaccess, 14 Senhas Fracas, 21 Ataque Direto ao Arquivo de Senhas, 25 As Ferramentas do Administrador, 27 Carders. 28 Obtendo Nomes de Usuários, 34 Criando Usuários Automaticamente, 35 Imagens Fora das Pastas Protegidas, 37 Packet Sniffing, 38 Cavalo de Tróia, 41 Dicas do Autor, 53 Aspectos Legais, 54 www.cursodehacker.com.br
[5]
Biblioteca da Escola de Hackers Perfil do Hacker, 56 Ética Hacker, 57 Trabalhando Anônimo. 59 Meu Ambiente de Trabalho, 61 Considerações Finais, 64
[6]
www.escoladehackers.com.br
Hacker's Black Book
Introdução Esta publicação tem por objetivo ajudá‐lo de duas diferentes formas. A primeira é dar as pessoas que perderam suas senhas à possibilidade de recuperá‐las. O segundo objetivo do livro é auxiliar os donos de sites com conteúdo protegido a fazerem esta proteção com técnicas simples, sem a necessidade de muito conhecimento para proteger estes dados. Os webmasters que passam a conhecer as técnicas que vamos descrever aumentam significativamente a capacidade de proteger‐se contra intrusos.
www.cursodehacker.com.br
[7]
Biblioteca da Escola de Hackers
[8]
www.escoladehackers.com.br
Hacker's Black Book
Sistema de Proteção por Senha com JavaScript O tipo mais simples de sistemas de proteção de senhas é a proteção com JavaScript. Para solicitações de acesso ao usuário quando entra em um determinado lugar em um site ou quando clica em algum campo para adicionar a senha. Este tipo de proteção é muito simples e oferece o mínimo de proteção. Os sites com proteção por JavaScript são bastante vulneráveis.
Quando se solicita o código fonte HTML freqüentemente um código JavaScript é similar ao abaixo:
www.cursodehacker.com.br
[9]
Biblioteca da Escola de Hackers Tí t ul o do Si t e t i t l e> f unct i on j spr ot ecao( ) { pass = pr ompt ( " Di gi t e sua senha" , " senha" ) ; i f ( pass = " 123456" ) { document . l ocat i on. hr ef = ht t p: / / www. si t e. com/ cur sos. ht ml ; } el se { al er t ( " Senha I ncor r et a! " ) ; } } scr i pt > head>
Conforme pode ser visto no código a senha digitada é comparada com 123456 e se estiver correta, dá acesso [10]
www.escoladehackers.com.br
Hacker's Black Book a página cursos.html. Agora é possível entender, como a senha foi chamada e dessa forma pode simplesmente acessar ou selecionar diretamente a URL desejada. Freqüentemente a senha é usada com o intuito de gerar uma URL final. Por exemplo, a URL secreta pode indicar: “http://www.site.com/membros/cursos/123456.html”, com a senha “123456” codificado como parte da URL. A função de proteção apropriada no código HTML do site pode parecer como abaixo: f unct i on j spr ot ecao ( ) { pass = pr ompt ( " Di gi t e sua senha" , " senha" ) ; document . l ocat i on. hr ef =" ht t p: / / www. si t e. com/ membr os/ cur sos/ " +p ass+" . ht ml " ; }
Neste exemplo há mais proteção que o anterior. Mas de qualquer forma a listagem é por meio do servidor HTTP. Uma URL selecionada por meio do navegador, como: http://www.site.com/membros/cursos/123456.html www.cursodehacker.com.br
[11]
Biblioteca da Escola de Hackers dará acesso ao conteúdo protegido. Mesmo se a pessoa não conhecer a senha de acesso, ela poderá fazer diversas tentativas ou usar uma ferramenta do tipo Browser Off ‐Line para clonagem de sites, como por exemplo o WebZip (http://www.spidersoft.com/webzip/):
Outra opção é o HTTrack Website Copier (http://www.httrack.com), com a vantagem de ser distribuído sobre licença GLP e ter versão para Linux: [12]
www.escoladehackers.com.br
Hacker's Black Book
www.cursodehacker.com.br
[13]
Biblioteca da Escola de Hackers
Sistema de Proteção por Senha com .htaccess Quase todos servidores Web usados hoje controlam a chamada senha de proteção HTACCESS. Inicialmente era usado com servidores Apache, mas muitos outros servidores Web têm um padrão compatível com HTACCESS. Portanto isto é usado com freqüência pelos chamados sites pagos. Vários sites usam este mecanismo de proteção. Um site que usa HTACCESS pode ser reconhecido pela caixa de diálogo de login, que é diferente da gerada por JavaScript conforme vemos a seguir:
[14]
www.escoladehackers.com.br
Hacker's Black Book Para entender a função desta proteção, é preciso ter algum conhecimento da linguagem do sistema operacional Unix. Com o Unix (e/ou Linux, BSD etc.) e também com o Servidor Web Windows como o Microsoft IIS. Os documentos HTML são armazenados hierarquicamente em estruturas de diretórios. Estamos nos referindo a uma estrutura de árvore:
O root (super usuário) da arvore é o domínio sem informações adicionais. Por exemplo www.escoladehackers.com é o domínio e este é o root da estrutura de diretórios. Os arquivos em HTML podem ser protegidos se colocados em uma pasta e configurarmos o HTACCESS para restringir o acesso a esta pasta. O arquivo deve incluir .htaccess (com ponto antes). O arquivo HTACCESS é colocado para garantir em qual arquivo de senha e contra qual tipo de listagem
www.cursodehacker.com.br
[15]
Biblioteca da Escola de Hackers é protegido. Este arquivo HTACCESS se parece com o abaixo: Aut hUser Fi l e / usr / home/ myhomedi r / pass es Aut hName MyPr ot ect edSi t e Aut hType Basi c r equi r e val i d- user Li mi t >
Este arquivo HTACCESS especifica que o arquivo de senhas no servidor é o usr/home/mybomedir/passes. As opções “AuthName” indicam, o que designa uma caixa de diálogo PopUp para digitar o nome de usuário e senha. O interessante sobre a proteção HTACCESS é que pelo arquivo HTACCESS todas as subpastas são também protegidas contra listagem. Todos os arquivos e pastas que queremos proteger podem ser reunidos sob a mesma proteção HTACCESS. A seguir um exemplo do arquivo da senha: r ober t : $1$4A$J RL0VdCRzYt bpekr LBYzl / manf r ed: $1$30$ddEyRl dHykHUo654KE01i / t homas: $1$sa$09gr ZEC5VRI Ww. QkLA/ Ge/ [16]
www.escoladehackers.com.br
Hacker's Black Book Para cada membro os arquivos de senha contem uma linha, que consiste em duas partes separadas por uma coluna. A primeira parte é o nome do usuário. A segunda parte contém a senha em forma de código criptografado que é especificado pela máquina. Mesmo que alguém consiga obter o arquivo com a senha, por ser uma senha codificada a senha real não é confirmada. A senha é decodificada para a senha real pela função cryptQ do sistema Unix e comparada com a senha codificada baixada do arquivo de senha. Se as senhas são iguais, então o Login está OK. Explicando o .htaccess Em vários servidores Web (geralmente Apache), o .htaccess (hypertext access) é o nome padrão do arquivo de configuração do sistema a nível de diretório, que permite um gerenciamento descentralizado das configurações do servidor Web. O arquivo .htaccess é colocado dentro de cada diretório ou subdiretório onde queira sobrescrever as configurações de alcance global. O alcance desta configuração é determinada pelo administrador do servidor. O propósito original do
www.cursodehacker.com.br
[17]
Biblioteca da Escola de Hackers .htaccess era permitir o controle de acesso por diretório (ex. solicitar senha para acessar conteúdo), daí o nome que tem. Hoje em dia o .htaccess é capaz de sobrescrever muitas outras configurações do servidor, principalmente no que se refere a controle de conteúdo. Nos servidores Apache, o formato dos arquivos .htaccess são iguais ao do arquivo de configuração global do servidor. Outros servidores Web, tais como Sun Java System Web Server e Zeus Web Server, implementam a mesma sintaxe, mas seus arquivos de configuração globais são totalmente diferentes. As diretivas contidas no arquivo .htaccess aplicam‐se tão somente ao diretório onde o arquivo .htacess reside bem como seus subdiretórios (a não ser que esteja explicitamente desabilitado), mas por razões de desempenho e segurança este não pode afetar os diretórios ascendentes. Usos mais comuns •
[18]
Autorização, autenticação
www.escoladehackers.com.br
Hacker's Black Book Arquivos .htaccess são muito usados para especificar restrições de segurança para um diretório específico, daí a palavra "access" em seu nome. É comum o .htaccess vir acompanhado de um arquivo .htpasswd o qual pode armazenar usuários válidos e suas respectivas senhas. •
Rewriting URLs
Servidores geralmente usam .htaccess para reescrever URLs longas e às vezes incompreensíveis, para URLs mais curtas e fáceis de memorizar. •
Blocking
Usa allow/deny para bloquear usuários por endereço de IP ou domínio. Também usa para bloquear bad bots, rippers e referrers. •
SSI
Habilitar server‐side includes. •
Lista de diretórios
www.cursodehacker.com.br
[19]
Biblioteca da Escola de Hackers Controla como o servidor irá reagir quando uma página Web não é encontrada. •
Páginas de erro personalizadas
Muda a página a ser mostrada quando um erro ocorre no lado do servidor. No lugar da página com a mensagem de erro padrão do servidor, o administrador do site pode configurar suas próprias páginas com mensagens de erros. •
MIME types
Instrui o servidor sobre como tratar as diferentes extensões de arquivos. •
Cache Control
Arquivos .htaccess permitem que servidores controlem o caching dos navegadores e proxies para reduzir o bandwidth (largura de banda).
[20]
www.escoladehackers.com.br
Hacker's Black Book
Senhas Fracas Como foi possível reconhecer, é muito difícil acessar sites protegidos por HTACCESS. De qualquer forma alguns Webmasters são simplesmente muito descuidados para usar a proteção HTACCESS de forma correta e oferecem ao agressor algumas possibilidades. Uma senha fraca é uma senha que pode facilmente ser descoberta. Aqui algumas das mais freqüentes combinações de usuário/ senha1: asdf / asdf 123456/ 123456 f uck/ me qwer t z/ qwer t z qwer t y/ qwer t y ql w2e3 abc123
Particularmente na grande maioria dos sites pagos, que têm milhares de membros, é provável que possuam senhas fracas. Também podemos imaginar que alguns 1
A lista de senhas fracas original do livro é muito precária. Recomendamos uma visita a http://tinyurl.com/ah2lxg para ver uma lista mais completa. www.cursodehacker.com.br
[21]
Biblioteca da Escola de Hackers membros têm conta em vários sites diferentes e não querem usar uma senha para cada um deles. Descobrindo uma senha é bem provável que consiga entrar em várias contas do usuário. O nome do site também é usado como senha com freqüência. Exemplo: Site:
www.hotsex.com
www.hotbabes.com
Usuário:
hot
hot
Senha:
sex
babes
Ou os membros simplesmente usam seu nome. É surpreendente a freqüência com que o primeiro nome é usado. Nos Estados Unidos os nomes e senhas mais comuns são: j ohn/ smi t h j ohn/ j ohn mi l l er / mi l l er r i ck/ r i ck f r ank/ f r ank
Veja também a lista de nomes comuns publicadas em http://www.tomshardware.com/news/imperva‐ rockyou‐most‐common‐passwords,9486.html: [22]
www.escoladehackers.com.br
Hacker's Black Book
Em outros países é claro que a relação de nomes comuns é diferente, mais o interessante é que muita gente tem usado o mesmo nome como nome de usuário e senha. A mais fraca de todas as senhas são as chamadas senhas de registro. O Webmaster apenas confirma qualquer dado que um novo membro gera sem verificar e entrada e sem avisar sobre qualquer erro que possa www.cursodehacker.com.br
[23]
Biblioteca da Escola de Hackers surgir na caixa de diálogo da senha, aceitando, inclusive, senhas em branco. Para aumentar a segurança das senhas o Webmaster pode seguir algumas dicas: • •
•
•
•
•
[24]
Não permitir o uso de senhas em branco. Não permitir que o usuário use a mesma combinação como nome de usuário e senha. Obrigar o uso de letras, números e caracteres especiais na mesma senha. Obrigar a senha a ter um tamanho mínimo de caracteres como, por exemplo, 6, 8 ou até mais caracteres. Usar CAPTCHA para inibir ataques por força bruta. Testar o código do site contra ataques de injeção de código, captura de sessão e cache, etc.
www.escoladehackers.com.br
Hacker's Black Book
Ataque Direto ao Arquivo de Senhas Normalmente não deveria ser possível alcançar o arquivo de senha. Mas existem situações em que isto acaba ocorrendo, conforme veremos a seguir: O arquivo de senha se encontra em um servidor HTML público, então na listagem, o qual os documentos HTML são acessíveis via WWW. O servidor Web tem vários usuários que possuem um servidor Web virtual. O segundo caso surge quando o administrador do site aluga seu servidor em um grande provedor de acesso na Web, que opera com muitos servidores adicionais em seu computador. Então é possível que o arquivo de senhas de uma conta esteja no mesmo computador que o arquivo de senhas é pode ser acessado de fora. Por meio de FTP ou Telnet se pode, então, mudar a listagem, para manter e ler o arquivo de senhas. Usando programas de cracking, como o Brutus AET22 se pode ter um retorno do computador com as senhas. Entretanto o programa usa muitas horas para isso e nem sempre tem sucesso. 2
http://www.hoobie.net/brutus/
www.cursodehacker.com.br
[25]
Biblioteca da Escola de Hackers
[26]
www.escoladehackers.com.br
Hacker's Black Book
As Ferramentas do Administrador Muitos Webmasters de sites pagos têm acesso a chamada área do administrador, também conhecida como Painel de Controle. É o local onde ele cria novas senhas ou apaga senhas antigas e tem acesso a todos os recursos do site, incluindo contas de e‐Mail de todos os usuários, contas de FTP, etc. Com freqüência estas áreas do administrador não são tão bem protegidas quanto deveriam, então em vez de gastar tempo atacando uma página Web, muitos invasores partem em busca do pote de ouro, que é o acesso ao Painel de Controle do administrador. O primeiro passo é saber qual URL exibirá a área do administrador, como por exemplo: ht t p: / / www. si t e. com/ admi n ht t p: / / www. si t e. com/ cpanel ( CPanel ) ht t p: / / www. si t e. com/ admi n/ l ogi n. ht ml ht t p: / / www. si t e. com/ wp- admi n ( Wor dpr ess ) ht t p: / / www. si t e. com/ admi ni st r at or ( J ooml a)
Em seguida é fazer os ataques usando técnicas de quebra de senha On‐Line ou o exploit apropriado. www.cursodehacker.com.br
[27]
Biblioteca da Escola de Hackers
Carders Carder3 é todo aquele que trabalha inserindo informações erradas no sistema, com a intenção de se registrar em um site pago como novo membro. Isso é naturalmente proibido e essas orientações são para uso do Webmaster, para eles se protegerem contra esse tipo de abuso. Nós queremos descrever aqui o caso mais comum, em que a associação (registro) on‐line é pago com cartão de 3
Carder é um termo amplamente utilizado por pessoas que atuam em grupo ou sozinhas na internet com o intuito de conseguir dados de cartões de créditos para fraudes on‐line. Os grupos de carders (carding) normalmente se reúnem em salas de bate papo IRC (Internet Realy Chat) em servidores instalados em máquinas vulneráveis. Usualmente um carder analisa determinado shopcart em busca de vulnerabilidades, principalmente para baixar (download) o banco de dados com os dados dos clientes da loja vitima. Após a extração dos dados da loja vitima, o carder utiliza os dados para compra em outra loja. Os produtos são entregues em laranjas, chamados por eles de DROP ou Drops. Com a vinda dos sistemas moset (Verified by Visa) a vida dos carders passou a ser mais complicada, dando então espaço para a aplicação de novos golpes, como roubo de senhas de bancos, se tornando o famoso banking. ‐ Wikipédia [28]
www.escoladehackers.com.br
Hacker's Black Book crédito e a liberação do acesso é imediata. O Carder usa isto para ficar anônimo na internet. Os grandes portais costumam oferecer 30 dias de acesso gratuito, desde que antes seja informado os dados do cartão de crédito. Na situação de uso normal, se o verdadeiro dono do cartão não quiser continuar usufruindo do portal após os trinta dias gratuitos, basta entrar em contato com o atendimento do portal e cancelar a assinatura. Alguns portais permitem o cancelamento on‐line, via área do usuário. Na prática isto quer dizer que se alguém inserir dados de cartões de crédito falsos ou sem a autorização do verdadeiro dono, a fraude só será descoberta um mês depois, quando finalmente o portal vai tentar registrar a operação junto à administradora do cartão. Este tipo de fraude não é dirigida só contra portais. Sites de games, pornográficos, serviços de hospedagem, mailing, cursos online, onde houver algum tipo de acesso pago, certamente haverá alguém tentando obter o acesso mediante fraude.
www.cursodehacker.com.br
[29]
Biblioteca da Escola de Hackers No começo da Internet, quando era obrigatório pagar a um provedor para ter acesso a Internet, as fraudes usando números de cartão de crédito eram feitas para ter acesso a Internet. O invasor vasculhava o lixo próximo a centros comerciais e em pouco tempo encontrava o carbono usado antigamente, nas máquinas manuais de passar o cartão de crédito. Hoje em dia este tipo de fraude continua, mas a segurança dos cartões aumentou muito, incluindo um código de segurança e microchip embutido no plástico do cartão. Mesmo assim ainda há quem consiga ter acesso a sites e serviços faça compras on‐line. Existe um mercado negro, onde invasores roubam banco de dados de lojas virtuais, com centenas ou milhares de números de cartões de crédito e depois os vendem em sites de leilão ou no IRC. A forma mais primitiva de aplicar este tipo de golpe consiste no uso de geradores de cartão de crédito.
[30]
www.escoladehackers.com.br
Hacker's Black Book
Procurando no Google por Credit Card Generator é possível encontrar muitos programas que prometem gerar cartões de crédito válidos. Apesar da melhora na segurança das transações online, muitos sites só conseguem determinar se o cartão de crédito é válido ou não, sem determinar exatamente se o numero do cartão existe e a quem ele pertence.
www.cursodehacker.com.br
[31]
Biblioteca da Escola de Hackers Contudo há um truque rápido e efetivo, em ordem para receber o numero de cartão de credito com a data correta. Muitos dos programas mencionados acima oferecem a possibilidade de gerar de um cartão de credito existente, com novos números. Esse procedimento é chamado extrapolação. Os números gerados se diferem somente nos últimos dígitos e onde os números do cartão com o cartão de credito publicado normalmente estão em ordem ascendente para serem atribuídos. Ou seja, o cartão gerado a partir de um número válido tem boas chances de realmente existir na base da operadora. A validade é provavelmente a mesma do cartão que foi usado como base para o gerador. O usuário destas técnicas costuma se esconder por trás de proxys anônimos, sendo o T.O.R. um dos mais conhecidos. Quando a fraude é descoberta, devido ao trabalho que dá localizar, reunir provas e acionar judicialmente o invasor, na maioria das vezes não acontece nada.
[32]
www.escoladehackers.com.br
Hacker's Black Book Quando o invasor começa a dar grandes prejuízos a ou forma quadrilha para expandir suas atividades, aí sim ele passa a fazer parte do grupo que tanto a operadora como a polícia, tem interesse que seja investigado.
www.cursodehacker.com.br
[33]
Biblioteca da Escola de Hackers Obtendo Nomes de Usuários Alguns sites pagos dão, durante o processo de registro, antes de receberem qualquer pagamento, a possibilidade dos novos membros selecionarem o nome de usuário. Se o nome desejado já existir, isto é comunicado e é necessário selecionar outro nome. Vamos supor que no cadastro você informe Hacker como nome de usuário e seja avisado que este nome de usuário já existe. Esta informação vai ser útil de diversas maneiras, porque agora que você já conhece o nome do usuário, poderá tentar recuperar a senha ou enviar e‐ Mails se passando pelo serviço, informando links para um site falso, onde esperamos que o verdadeiro usuário digite a senha. Este tipo de golpe é conhecido como Pishing Scam (Golpe da Pescaria) e têm dado muito trabalho as empresas, pois até hoje funciona. Sugerimos aos Webmasters dos sites pagos que o novo membro só poderá selecionar um nome de usuário depois de confirmado o pagamento.
[34]
www.escoladehackers.com.br
Hacker's Black Book
Criando Usuários Automaticamente Freqüentemente é como se o novo membro enviasse o pagamento do site pago para um serviço de cartão de crédito. Depois de verificação do pagamento vem um novo cliente para site pago e conseqüentemente é tratado da mesma forma. Normalmente é enviado depois de efetuado o pagamento, com que a data do login é criada. O novo membro pode selecionar o nome de usuário e senha e recebe depois a opção de sua entrada imediata. O modelo insere os dados automaticamente dentro do arquivo da senha. Aqui tem um erro freqüente: é possível criar novos pares de usuário/senha simplesmente clicando no botão “voltar” do navegador, então é possível produzir usuários/senha adicionais várias vezes. Como Webmasters, eles deveriam usar algum destes mecanismos de proteção: A empresa de cartão de credito deve transmitir um único código PIN, que pode então listar de um código PIN valido e criar um usuário/senha com cada pagamento somente UMA VEZ e depois de verificar www.cursodehacker.com.br
[35]
Biblioteca da Escola de Hackers com sucesso. Este procedimento é chamado pela maioria das empresas de cartão de credito de PIN Hardcoding. O Script que o usuário/senha cria, deve também ser examinado por meios do HTTP Referer (identifica do ponto de vista da pagina da Web) das variáveis do servidor, que o usuário vem da empresa de cartão de crédito. De outra forma um invasor astuto pode escrever um script, que tente diferentes números PIN até encontrar um que seja válido.
[36]
www.escoladehackers.com.br
Hacker's Black Book
Imagens Fora das Pastas Protegidas Este erro é um dos mais freqüentes, uma vez que será fácil pesquisar: como previamente mencionado, a respectiva listagem e os subdiretórios sempre vão estar protegidas via HTACCESS. Se as figuras dos membros do site estão listadas, não estão abrigadas na árvore, então esta listagem e as figuras podem ser consideradas ali sem entradas de usuário/senha. Isto é, se também a figura não estiver na listagem de proteção. Então entrar no caminho é suficiente para listar todas as figuras. Estas figuras listadas têm com freqüência o nome “imagem” ou “gfx”, “pix”, “figura”, “gráficos”, etc. Aquele arquivo HTACCESS fica na listagem protegida dos “membros”. Lá também ficam os documentos em HTML dos membros. As figuras ficam, contudo, nestes exemplos de listagem do diretório “imagem”, e os membros não estão de forma hierárquica e não são protegidos por senha. Isso preocupa como no exemplo www.sitepago.com, sendo possível entrar na URL WWW pelo navegador, digitando www.sitepago. /imagem e receber a lista das figuras coletadas.
www.cursodehacker.com.br
[37]
Biblioteca da Escola de Hackers
Packet Sniffing Isto possivelmente é algo mais complicado que os outros procedimentos descritos, porque alguns pré‐ requisitos têm que ser conhecidos: tem que haver uma LAN (Ethernet Network) e se for um computador com Linux, o acesso será como root para então poder usar o Packet Sniffer como, por exemplo, o Wireshark:
[38]
www.escoladehackers.com.br
Hacker's Black Book Um pacote de um computador em uma LAN é enviado a principio para todos os computadores da rede. Os Farejadores de Pacote ou Packet Sniffers são particularmente armadilhas perigosas, pois quem aluga um provedor de acessos e servidor, naturalmente trabalha com muitos clientes em um LAN e todos estarão sujeitos a terem seus dados capturados por um farejador de pacotes. Uma proteção contra Packet Sniffing é a divisão da rede em segmentos. Usado com uma rede de tecnologia Broadcast não funcionará, mas, os pacotes serão encaminhados por tabelas de rota para o computador roteado. Também sugerimos o emprego do SSL (Secure Sockets Layer). Neste código todos os pacotes, podem ser interceptados, mas não podem ser lidos. SSL é oferecido pela maioria das empresas de hospedagem. O conteúdo do código SSL estará no prefixo HTTPS . Para a empresa dona do site protegido com SSL, será necessário ter um certificado de segurança, como o
www.cursodehacker.com.br
[39]
Biblioteca da Escola de Hackers fornecido pela empresa VeriSign4. Mas este é um serviço pago, então, o que costumam fazer por aí, é contratar o serviço SSL junto com o serviço de hospedagem. Neste exemplo você estará usando a ID SSL compartilhada pelo provedor. Uma pequena desvantagem é que a conexão HTTPS é mais lenta que as conexões HTTP, principalmente se houver uma alta taxa de codificação.
4
http://www.verisign.com.br
[40]
www.escoladehackers.com.br
Hacker's Black Book
Cavalo de Tróia Trojan Horse ou Cavalo de Tróia é um programa geralmente malicioso, que vêm com uma surpresa escondida intencionalmente pelo programador, inesperada para o usuário. Costumam ser projetados para provocar danos ou executar atividades malignas, porém, disfarçados como algo útil.
www.cursodehacker.com.br
[41]
Biblioteca da Escola de Hackers A seguir vemos a imagem a de um programa cavalo de tróia, que finge ser o ativador do Windows XP mas na verdade rouba dados de cartões de crédito:
Os Trojans não se reproduzem, mas causam danos graves em um computador. No Brasil são os maiores responsáveis pela invasão de contas bancárias e outros tipos de golpes virtuais. Para burlar a proteção do antivírus, estes programas costumam ser feitos por encomenda. [42]
www.escoladehackers.com.br
Hacker's Black Book Vamos conhecer os dois mais famosos representantes desta categoria: o BackOrifice e o NetBus. Back Orifice:
O grupo hacker americano denominado Cult of The Dead Cow5 (Culto da Vaca Morta) criou o Back Orifice, 5
http://www.cultdeadcow.com/tools/bo.html
www.cursodehacker.com.br
[43]
Biblioteca da Escola de Hackers um dos mais populares programas do tipo Cavalo de Tróia que já existiu. Apesar do Cavalo de Tróia ser considerado um código malicioso, existem ferramentas parecidas usadas por administradores de rede de todo o mundo. São as Ferramentas de Acesso Remoto ou RAT (Remote Access Tools). Apesar destes dois tipos de programa permitir o controle de qualquer computador à distância, a diferença é que o Cavalo de Tróia é distribuído como se fosse um programa, um joguinho, por exemplo, e a ferramenta de acesso remoto vai embutida no Trojan. É isto que torna este tipo de programa um risco para a segurança. Basicamente qualquer Cavalo de Tróia funciona assim: 1) O invasor cria um módulo servidor; 2) O invasor insere o módulo servidor dentro do código de algum programa legítimo. Como a intenção é atrair a vítima, é comum o programa hospedeiro ser algo atrativo, como um ativador do Windows, um gerador de senhas para celular ou qualquer outro que seja interessante, mesmo que não funcione. [44]
www.escoladehackers.com.br
Hacker's Black Book 3) O invasor distribui o programa hospedeiro e aguarda a conexão. Para o servidor do trojan funcionar a vítima terá que baixar o hospedeiro e executá‐lo em seu computador. Mas com a popularização da tecnologia Web 2.0, muitos trojans conseguem se instalar a partir de barras de ferramentas do navegador, e‐Mails formatados em DHTML e até após visitarmos páginas Web. Talvez você já tenha visto no Google o aviso de que determinado site poderá causar dano ao seu computador.
O nome Back Orifice é uma sátira ao software servidor da Microsoft chamado Back Office.
www.cursodehacker.com.br
[45]
Biblioteca da Escola de Hackers O Back Orifice trabalha com uma arquitetura cliente‐ servidor. Um programa servidor pequeno e discreto é instalado em uma máquina, permitindo que ela seja manipulada remotamente por um programa cliente com interface gráfica instalado em outro computador. Esses dois componentes comunicam‐se entre si usando o protocolo de rede TCP e/ou UDP. Numa referência ao crescente fenômeno Leet, esse programa comumente é executado usando a porta 31337. Apesar do Back Orifice possuir propósitos legitimamente sérios, tais como administração remota, há outros fatores que o tornam apropriado para atividades menos benignas. O servidor é capaz de se esconder de inspeções básicas feitas pelo usuário do sistema. Se embutido num Cavalo de Tróia, ele facilmente ludibria o usuário, podendo ser instalado automaticamente por engano e usado para atacar, espionar ou apenas irritar usuários incautos. Por essas e por outras razões, a indústria de antivírus imediatamente categorizou a ferramenta como praga eletrônica e adicionou o Back Orifice às suas listas de quarentena. Apesar deste fato, ele foi amplamente [46]
www.escoladehackers.com.br
Hacker's Black Book usado por aspirantes a hacker devido a sua interface simples e instalação fácil. O programa cliente do Back Orifice permite: •
• •
• • •
•
• • • •
• •
Abrir aplicações para uso remoto por meio de telnet Criar / listar / deletar pastas Copiar / deletar / procurar / compactar / descompactar / ver arquivos Abrir / fechar servidor HTTP Simular pressionamento de teclas Permitir vários métodos para captura de tela (inclusive criação de .AVIs) Algumas funções de Rede (conexões ativas, por exemplo) Ping Host Listar / desligar / criar Process (Aplicativos) Várias funções no registro Abrir caixa de Dialogo (similar à de erro do Windows) Travar o computador Reiniciar (Rebootar) o computador
www.cursodehacker.com.br
[47]
Biblio eca da Escol de Hackers • •
Mostrar sen as (passwords) do sistema Mandar e re eber arquivo por TCP
O Back Orifice te um sucesso chamado B ck Orifice 20006, lançado em 1999.
6
http: /www.bo2k.co /index2.shtml
[48]
w w.escoladehac ers.com.br
Hacker's Black Book NetBus NetBus é outra ferramenta de administração remota que se popularizou como trojan. Possui uma interface muito simples e muito fácil de utilizar que utiliza a porta 12345. Tem funções como abrir e fechar a gaveta do driver de CD ou DVD, iniciar programas, controlar mouse, entre outras funcionalidades. O indivíduo que controla a máquina infectada remotamente pode fazer download, abrir programas, deletar arquivos e formatar partições. Um perigo se cair em mãos mal‐ mal‐ intencionadas, porém sendo muito útil em assistência remota.
www.cursodehacker.com.br
[49]
Biblioteca da Escola de Hackers O primeiro NetBus foi desenvolvido por um programador sueco chamado Carl‐ Carl‐Fredrik Neikter com a intenção de fazer manutenção de computadores a longa distância, mas rapidamente foi aproveitada por invasores devido à sua facilidade de uso. Esse programa é composto por duas partes: um cliente, que é o arquivo netbus.exe e o servidor que é o arquivo patch.exe. O arquivo patch.exe é que deverá ser instalado no computador a ser acessado remotamente. Utilizando algumas portas TCP, o administrador da rede pode fazer a distância, praticamente tudo o que poderia ser feito no computador. Depois que você baixar o NetBus e descompactar em uma pasta, você terá três arquivos: netbus.exe, netbus.rtf e netbus.rtf e patch.exe. O patch.exe é o servidor do NetBus, é o arquivo perigoso que em hipótese alguma deve ser executado em seu micro. O arquivo netbus.rtf contém um pequeno guia em inglês dos autores. O arquivo netbus.exe é o cliente que você usa para poder acessar os servidores infectados. Este arquivo você pode iniciar sem preocupações. Sugerimos que inicialmente faça [50]
www.escoladehackers.com.br
Hacker's Black Book testes em seu próprio computador, instalando o módulo servidor, o patch.exe, em máquina virtual de testes. Uma dúvida de quem está iniciando é como os usuários infectados serão localizadas na Internet. Esta pergunta se baseia no fato de que o IP da maioria dos usuários muda a cada conexão. Os programas de acesso remoto, incluindo o NetBus, permitem ser configurados para enviar mensagem de e‐ Mail contendo o IP do usuário infectado assim que ele estabelece a conexão. Mesmo que a conexão caia várias vezes, o NetBus enviará um e‐Mail informando o novo número IP que vai permitir a conexão e o acesso remoto ao servidor. A má notícia é que todos os programas do tipo Cavalo de Tróia conhecidos, principalmente o NetBus e o Back Orifice, estão na lista negra dos antivírus e softwares de segurança mais populares. Para fazer um Trojan funcionar atualmente você precisa aprender como ocultá‐lo do antivírus, alterando a assinatura do servidor, o arquivo patch.exe, ou deverá www.cursodehacker.com.br
[51]
Biblioteca da Escola de Hackers criar o seu próprio código malicioso, usando uma assinatura ainda não reconhecida por antivírus. Outra opção bem mais fácil de implementar é usar ferramentas comerciais de acesso remoto, que tem o mesmo efeito, mas não são bloqueadas por nenhum software de segurança por padrão. Estes programas são conhecidos como Programas de Assistência Remota e acabam por fazer o mesmo que se espera de um Trojan, que é o controle remoto do PC.
[52]
www.escoladehackers.com.br
Hacker's Black Book
Dicas do Autor7 Se você de tem a intenção de administrar servidores Web então nunca pense em usar um servidor Web Microsoft NT. Os sistemas Windows NT tem tantos buracos quanto um queijo suíço. Em vez disso você deve usar um sistema baseado em Unix, como Linux ou BSD. Infelizmente na Alemanha os provedores de acesso oferecem soluções, mas a maioria em sistemas NT. Uma grande vantagem do servidor UNIX é a separação da segurança, em que se pode logar via Telnet a então controlar o servidor. Como todo mundo sabe, Linux é livre e Apache, um dos melhores servidores Web, que é também um software livre. Se você quiser saber mais sobre as vantagens do Linux em relação ao Windows, procure na Internet por “UNIX vs. NT”.
7
N.E.: Este livro foi escrito no tempo em que os servidores Microsoft mais usados eram o Windows Server 2000 e o NT 4. Nos dias de hoje, desde o Windows 2003 Server, os sistemas Microsoft estão tão ou mais seguros que o equivalente Linux. www.cursodehacker.com.br
[53]
Biblioteca da Escola de Hackers
Aspectos Legais8 §202 Espionagem de dados: 1. Quem fornece dados sem autorização, que não são certamente seguros e com entrada sem autorização, ou outra, tem pena de três anos ou mais de prisão. 2. Dados citados no parágrafo 1. Como de outra maneira não percebidos diretamente nos dados armazenados eletronicamente, magneticamente ou são veiculados. §263 Fraude computacional: 1. Quem comete fraude com a intenção de prover para a si ou a um terceiro um beneficio pecuniário ilegal, pelo fato que ele influenciara o resultado dos dados da metodologia de processamento pelo uso de efeitos incorretos da expiração é punido com cinco anos ou mais de prisão. §303a Alteração de dados: 2. Quem por si alterar dados (§ 202), deletar, suprimir, o deixar sem utilidade, tem pena de 5 anos ou mais (prisão). 8
Baseado na legislação dos EUA.
[54]
www.escoladehackers.com.br
Hacker's Black Book 3. A tentativa é punível. §303b Sabotagem de computadores: 1. Quem sabotar um processamento de dados, para empresas estrangeiras, uma empresa estranha ou autoridade de substancial importância, em que, a) comprometa um ato do §303a parag.1 ou, b) destrua, danifique, deixa sem utilidade ou altere um sistema de processamento de dados, com pena de 5 anos ou mais (prisão). 2. A tentativa é punível.
N.E.: Sendo um livro lançado nos EUA, obviamente que os avisos legais são baseados na legislação americana. Por outro lado todas estas ações criminosas também são previstas na legislação brasileira, não necessariamente na Lei de Crimes de Informática.
www.cursodehacker.com.br
[55]
Biblioteca da Escola de Hackers
Perfil do Hacker 1.
2. 3. 4. 5.
[56]
Uma pessoa, que investiga e tenta por boa vontade conhecer os detalhes de um sistema programável para expandir suas possibilidades. Uma pessoa entusiasta da programação (até mesmo obsessiva). Uma pessoa que compartilha valores e conhecimento. Uma pessoa que é boa em programar rápido. (com desaprovação) Alguém que irrestritamente interfere em qualquer lugar e tenta descobrir informações. Portanto, hacker de senhas, hacker de redes. Para estes o termo correto é Cracker (aquele que quebra).
www.escoladehackers.com.br
Hacker's Black Book
Ética Hacker O termo hacker é freqüentemente o associado a membros de comunidades na Internet. Isto implica que a pessoa adere à Ética Hacker e é melhor que os que se auto‐intitulam hackers. Hackers se consideram como um tipo de elite, uma meritocracia, pois são aceitos por suas habilidades, assim como novos membros não são muito bem vindos. Portanto isto deixa certa satisfação aos que chamados de hackers, muito mais do que os que se auto‐ proclamam, muitos sendo vigaristas. O termo hacker para a categoria é designado pelo estudo intelectual livre, com profundo conhecimento dos sistemas computacionais. Pela convicção sentida pelo coração se pode incluir que a beleza nos computadores existe e que a estética de um programa perfeito pode liberar o pensamento e o espírito. Com base em que a eletrônica e as telecomunicações são grandes áreas inexploradas, não podem ser preditas, e que os hackers pode descobrir qualquer coisa. Para alguns essa liberdade é como respirar, a invenção rica www.cursodehacker.com.br
[57]
Biblioteca da Escola de Hackers da espontaneidade, que resiste a vida e faz viáveis as portas para a maravilha e para o poder individual se abrirem. Mas para alguns – e muitos se tornam – o hacker é uma figura sinistra, um sociopata com conhecimento, que está pronto para quebrar a infinidade individual e penetrar na vida das outras pessoas, isso por si só, sendo anarquista do bem‐estar pelo motivo publicado. Cada forma de poder sem responsabilidade, sem exame direto, formal e sem reconciliação que toma parte do medo humano – e o direito.
[58]
www.escoladehackers.com.br
Hacker's Black Book
Trabalhando Anônimo Você não deve dar a ninguém a possibilidade de fazerem um perfil (profile) seu, tomando em conta as considerações a seguir: •
•
•
Quando costumamos entrar em contato com hackers, se você trocar informações com eles, então as informações devem ser criptografadas em PGP, para uma conta anônima. Use uma conta não usada normalmente e pode ser do www.hotmail.com, www.gmail.com ou www.yahoo.com, como preferir. Você deve trocar de e‐Mail regularmente e também uma obter uma nova chave PGP. Cuide para que sua criptografia seja a mais forte disponível. Atualize sempre a versão do PGP, pois bugs nas versões mais antigas podem comprometer a segurança. Se você quer realmente participar de um canal IRC, então altere sempre seu sinal e altere também seu host (há muitos computadores na internet com canais IRC instalados, você não deve usar “Relays” (ou roteadores de IP e IP Spoofing)
www.cursodehacker.com.br
[59]
Biblioteca da Escola de Hackers •
•
Eu sei que alterar o Nick não é bom, porque você acaba sem reputação no meio da massa; mas reputação é tão mortal quanto útil (outros hackers te aceitam imediatamente e também há mais comentários dos principiantes – ao seu redor – de qualquer forma, se você criar seu próprio Exploit, então você não esta tão longe da grande parte dos hackers, e você não conhece os simples remanescentes no IRC). O re‐roteador, que passa a conexão TCP, é útil, e é considerando interessante, se quiser ter proteção contra ataques de outros hackers e se alguém tiver causado muito aborrecimento no IRC.
N.E.: Desde o lançamento do livro novas tecnologias de acesso surgiram, como por exemplo, a farta disponibilidade de acesso sem fio nas grandes cidades e até mesmo nas cidades do interior. Muitas prefeituras tem projeto de disponibilizar acesso sem fio a todos os moradores, tornando isto uma tendência, bem como uma ótima fonte de anonimato.
[60]
www.escoladehackers.com.br
Hacker's Black Book
Meu Ambiente de Trabalho Como primeira opção, utilizo um servidor de uma grande universidade com muitos usuários ou um grande provedor de acesso usando PPP a partir de um terminal. Um pequeno computador me serve como firewall e roteador e supervisiona todos os pacotes detalhadamente. Além disso, eu fiz uma conexão com SSH para um computador invadido por mim, onde consigo acompanhar as atividades de todos os usuários logados e as conexões de rede. Quando percebo que estou sendo investigado ou notado, eu encerro a conexão imediatamente. Se eu estou em uma situação de ataque direto e critico, eu uso DOS (Denial of Service) ou bloqueio o administrador, a fim de deixar a conexão mais lenta, só para prevenir. Meu segundo computador é uma estação de trabalho onde criei uma conexão SSH para o primeiro computador anti‐vestígio (anti‐trace). Este fica fora e eu tenho total controle dele. E vou com um computador www.cursodehacker.com.br
[61]
Biblioteca da Escola de Hackers adicional anti‐vestígio (anti‐trace) para meu computador de hacking, eu tenho direitos de super usuário (root), o segundo computador também tem um simples Relay TCP, então eu salvo a conexão com os arquivos de log, etc. Para hackear computadores diretamente eu vou a domínios muito seguros ou saio daqui para uma nova rede (isto existe naturalmente, e são alterados de forma irregular). Para fazer varreduras eu uso particularmente um computador com grandes privilégios no canal IRC que escaneia o domínio de todos, tudo bem escondido e codificado com 3DES. A conexão codificada SSH é necessária na maioria das redes, então o administrador não pode barrar minha entrada por SSH, porque se não, barraria a dele também. Se você tem somente um computador à disposição, então você não pode se proteger também com um Firewall de Linux ou BSD (FreeBSD/OpenBSD). Você pode ainda fragmentar seu Kernel, isso suporta mais para você com informações detalhadas sobre [62]
www.escoladehackers.com.br
Hacker's Black Book pacotes, então você esta habilitado a um ataque DoS, ataque ao roteador e usar traceroute para reconhecer sua origem.
www.cursodehacker.com.br
[63]
Biblioteca da Escola de Hackers
Considerações Finais Segue uma lista dos sites9 que consultei para escrever este livro. Espero que também sejam úteis a você: • • • • • • • • • • • • • •
http://www.false.com/security http://www.insecurity.org/nmap http://www.secunet.com http://geek girl. com/bugtraq http://root‐brightly. com http://root‐brightly. com/doc http://www. sparc. com/charles/seeurity. html http://commands.com.inter.net/sod/ http://www.phrack.corn http://www.cs.purdue.edu/coast/ http://www.pilot.net/securityguide. html http://underground.org/ http://www.lopht.com http://www.infonexus.corn/‐deamon9
9
N.E.: Alguns destes sites não estão mais disponíveis. Você pode ter acesso ao conteúdo original a partir do cachê do Google ou consultando os arquivos da Internet em http://www.archive.org/web/web.php. [64]
www.escoladehackers.com.br
Hacker's Black Book • • •
http://www.cert.org http://www.cert.dfn.de ftp://ftp.blib.pp.se/pub/cracking
www.cursodehacker.com.br
[65]
Biblioteca da Escola de Hackers
Glossário Hacker
1337/l33t
Forma de escrever o alfabeto latino usando outros símbolos em lugar das letras, como números por exemplo. A própria palavra leet admite muitas variações, como l33t ou 1337. O uso do leet reflete uma subcultura relacionada ao mundo dos jogos de computador e internet, sendo muito usada para confundir os iniciantes e para firmar-se como parte de um grupo.
Assembly
Linguagem de programação básica equivalente à linguagem de máquina.
Backdoor
Ou Porta dos fundos, é um trecho de código malintencionado que cria uma ou mais falhas de segurança para dar acesso ao sistema operacional a pessoas nãoautorizadas
BBS
Bulletin Board System, ou Sistema de Quadro de Avisos. Sistema no qual um ou mais computadores recebem chamadas de usuários e depois de uma checagem permitem que eles retirem ou depositem arquivos.
Black hat
Pessoa que usa seus conhecimentos com computadores e outras tecnologias de maneira maliciosa ou criminosa
CPD
Sigla para Centro de Processamento de Dados, o local onde são concentrados os computadores e sistemas (software) responsáveis pelo processamento de dados de uma empresa ou organização.
Cracker
É o termo usado para designar quem quebra um sistema de segurança, de forma ilegal ou sem ética.
Crack
(software) É a modificação de um software para remover métodos de proteção como prevenção de cópia e número de serial.
Debug
É um programa, ou componente de um programa, que
[66]
www.escoladehackers.com.br
Hacker's Black Book auxilia o programador a encontrar erros de programação em seu código ou em programas desenvolvidos por terceiros
DoS
Denial-of-service ou Ataque de negação de serviço. Tentativa de tornar os recursos de um sistema indisponíveis para seus usuários. Alvos típicos são servidores web. Não se trata de uma invasão de sistema e sim da sua invalidação por sobrecarga.
Engenharia social
Método utilizado para obter acesso a informações importantes ou sigilosas em organizações ou sistemas por meio da enganação ou exploração da confiança das pessoas
Exploit
Programa de computador com uma sequência de comandos que se aproveita das vulnerabilidades de um sistema computacional ou de serviços.
E-zine
Electronic magazine, revista eletrônica distribuída na Internet
Keygen
Significa gerador de chaves, key generator em inglês. Um pequeno programa de computador que gera uma chave do CD ou um número da série/registro de um software ou algoritmo de criptografia.
Patch
Conserto de um programa que acrescenta ou modifica somente uma parte pequena de um software
Phreak
Acrônimo de Phone Hacker. É o hacker da telefonia
Script kid
Nome atribuído aos grupos de hackers inexperientes (geralmente das faixas etárias mais baixas) que desenvolvem atividades relacionadas com segurança da informação utilizando-se do trabalho intelectual dos verdadeiros especialistas técnicos. Esses hackers, não possuem conhecimento de programação, e não estão interessados em tecnologia, mas em ganhar fama ou outros tipos de lucros pessoais.
www.cursodehacker.com.br
[67]
Biblioteca da Escola de Hackers Sistemas operacionais
Programa (software) ou um conjunto de programas cuja função é servir de interface entre um computador e o usuário. É comum utilizar-se a abreviatura SO (em português) ou OS (do inglês "Operating System").
Qualquer programa de computador que pode ser usado, Software livr e copiado, estudado, modificado e redistribuído com algumas restrições. Spyware
Tecnologia projetada para, secretamente, coletar informações sobre o usuário
Técnicas de invasão
Fórmula de obter acesso não-autorizado em servidores que explora vulnerabilidades e falhas de sistemas.
Trojan
Trojan ou Cavalo de Tróia é um programa que age como a lenda do cavalo de Tróia: ele vem escondido dentro de outro arquivo, entrando no computador, e liberando uma porta para um possível invasor
Vírus
Programa de computador destinado a causar danos
White hat
Hacker ético. Pessoa que é eticamente oposta ao abuso de sistemas de computadores
[68]
www.escoladehackers.com.br
Hacker's Black Book
www.cursodehacker.com.br
[69]