Você está na página 1de 17

Captulo 8 Enumerao de informaes e servios - 101

Captulo 9 Testando o sistema

9.1. Objetivos
Entender como ocorrem ataques de negao de servio Entender o que DoS, DDoS, e DRDoS Entender o que e como realizar sequestro de sesso

Captulo 9 Testando o sistema - 102

9.2. O que negao de servio?


Quem acompanha os noticirios de informtica ou o prprio Boletim Anti-Vrus do InfoWester certamente j se deparou com matrias que citam ataques DoS ou ataques DDoS a sites. O objetivo deste captulo dar explicaes sobre isso e tambm mostrar as conseqncias de tais ataques. Durante um ataque de negao de servio, o atacante deixa o sistema impossvel de ser usado ou significantemente lento, a ponto de conseguir realizar poucas tarefas. Esses ataques podem ser realizados contra um sistema individual ou contra uma rede inteira e normalmente so realizados com sucesso. Qualquer tipo de ataque que afete o pilar Disponibilidade da trade Confidencialidade-Integridade-Disponibilidade, pode ser considerado um ataque de negao de servio, desde puxar a tomada de alimentao de energia de um servidor, at utilizar uma rede zumbi para ataque em massa. Na maior parte das vezes, o objetivo do atacante no conseguir acesso informaes, roubo de dados, ou tomar o controle da mquina. O objetivo realmente causar a indisponibilidade de servios nos sistemas do alvo, e isso pode levar a potenciais prejuzos financeiros, do ponto de vista comercial, por exemplo. Abaixo temos alguns exemplos de ataques realizados em site conhecidos, que de alguma forma causou prejuzos financeiros aos sites atacados. Exemplos de ataques: Contra DNS da Telefonica Speedy Contra sistema de votao do BBB Globo Contra sites de update update.microsoft.com

Captulo 9 Testando o sistema - 103 Contra sites grandes: CNN Yahoo

9.3. DoS
De acordo com a definio do CERT (Computer Emergency Response Team), os ataques DoS (Denial of Service), tambm denominados Ataques de Negao de Servios, consistem em tentativas de impedir usurios legtimos de utilizarem um determinado servio de um computador. Para isso, so usadas tcnicas que podem: sobrecarregar uma rede a tal ponto em que os verdadeiros usurios dela no consigam us-la; derrubar uma conexo entre dois ou mais computadores; fazer tantas requisies a um site at que este no consiga mais ser acessado; negar acesso a um sistema ou a determinados usurios. Explicando de maneira ilustrativa, imagine que voc usa um nibus regularmente para ir ao trabalho. No entanto, em um determinado dia, uma quantidade enorme de pessoas "furaram a fila" e entraram no veculo, deixando-o to lotado que voc e os outros passageiros regulares no conseguiram entrar. Ou ento, imagine que voc tenha conseguido entrar no nibus, mas este ficou to cheio que no conseguiu sair do lugar por excesso de peso. Este nibus acabou negando o seu servio - o de transport-lo at um local -, pois recebeu mais solicitaes - neste caso, passageiros - do que suporta. importante frisar que quando um computador/site sofre ataque DoS, ele no invadido, mas sim, tem apenas o servio parado. Os ataques do tipo DoS mais comuns podem ser feitos devido a algumas caractersticas do protocolo TCP/IP (Transmission Control Protocol / Internet Protocol), sendo possvel ocorrer em qualquer computador que o utilize. Uma das formas de ataque mais conhecidas a SYN Flooding, onde um computador tenta estabelecer uma conexo com um servidor atravs de um sinal do TCP conhecido por SYN (Synchronize). Se o servidor atender ao pedido de conexo, enviar ao computador solicitante um sinal chamado ACK (Acknowledgement). O problema que em ataques desse tipo, o servidor no consegue responder a todas as solicitaes

Captulo 9 Testando o sistema - 104 e ento passa a recusar novos pedidos. Outra forma de ataque comum o UPD Packet Storm, onde um computador faz solicitaes constantes para que uma mquina remota envie pacotes de respostas ao solicitante. A mquina fica to sobrecarregada que no consegue executar suas funes. No so apenas grande quantidades de pacotes geradas que podem causar um ataque de negao de servio. Problemas em aplicativos tambm podem gerar. Ping da Morte

9.3.1. Exemplo de ataques DoS

Em Linux: $ :(){ :|:& };: $ dd if=/dev/zero of=/var/spool/mail/meu_usuario $ perl e 'while (1) { fork(); open $fh, </proc/meminfo; open $hf, >/tmp/bla; }' $ dd if=/dev/urandom of=/dev/mem $ perl -e 'fork while fork'

Em Windows: Em um .bat: %0|%0 Ou: :s start %0

Captulo 9 Testando o sistema - 105 goto :s

9.3.2. Prtica dirigida


C4

O C4 uma ferramenta que gera ataques de DoS em redes locais com SYN Flood . Vamos conhec-la um pouco mais, digitando no terminal: $./c4 Com esse comando, teremos como retorno a sintaxe e a explicao resumida dos parmetros e opes do comando c4. A sintaxe correta para um ataque de SYN Flood com o c4 contra um host especfico : Sintaxe: ./c4 -h [ip_alvo] E alguns dos parmetros existentes so: Parmetros: -h destination ip/host -p destination port range [start,end] -t attack timeout -l % of box link to use (defaults to random ) (defaults to forever) (defaults to 100% )

Vamos formar duplas e realizar ataques de DoS na mquina do companheiro de exerccio. Cuidado, pois esse ataque pode travar a mquina do companheiro e at mesmo a sua!

9.4. DDoS
O DDoS, sigla para Distributed Denial of Service, um ataque DoS ampliado, ou seja, que utiliza at milhares de computadores para atacar um determinado alvo.

Captulo 9 Testando o sistema - 106 Esse um dos tipos mais eficazes de ataques e j prejudicou sites conhecidos, tais como os da CNN, Amazon, Yahoo, Microsoft e eBay. Para que os ataques do tipo DDoS sejam bem-sucedidos, necessrio que se tenha um nmero grande de computadores para fazerem parte do ataque. Uma das melhores formas encontradas para se ter tantas mquinas, foi inserir programas de ataque DDoS em vrus ou em softwares maliciosos. Em um primeiro momento, os hackers que criavam ataques DDoS tentavam "escravizar" computadores que agiam como servidores na internet. Com o aumento na velocidade de acesso internet, passou-se a existir interesse nos computadores dos usurios comuns com acesso banda larga, j que estes representam um nmero muito grande de mquinas na internet. Para atingir a massa, isto , a enorme quantidade de computadores conectados internet, vrus foram e so criados com a inteno de disseminar pequenos programas para ataques DoS. Assim, quando um vrus com tal poder contamina um computador, este fica disponvel para fazer parte de um ataque DoS e o usurio dificilmente fica sabendo que sua mquina est sendo utilizado para tais fins. Como a quantidade de computadores que participam do ataque grande, praticamente impossvel saber exatamente qual a mquina principal do ataque. Quando o computador de um internauta comum infectado com um vrus com funes para ataques DoS, este computador passa a ser chamado de zumbi. Aps a contaminao, os zumbis entram em contato com mquinas chamadas de mestres, que por sua vez recebem orientaes (quando, em qual site/computador, tipo de ataque, entre outros) de um computador chamado atacante. Aps receberem as ordens, os computadores mestres as repassam aos computadores zumbis, que efetivamente executam o ataque. Um computador mestre pode ter sob sua responsabilidade at milhares de computadores. Repare que nestes casos, as tarefas de ataque DoS so distribudas a um "exrcito" de mquinas escravizadas. Da que surgiu o nome Distributed Denial of Service. A imagem abaixo ilustra a hierarquia de computadores usadas em ataques DDoS (alm de ilustrar tambm um ataque DoS e DRDos.

Captulo 9 Testando o sistema - 107

Como exemplo real de ataques DDoS ajudados por vrus, tem-se os casos das pragas digitais Codered, Slammer e MyDoom. Existem outros, mas estes so os que conseguiram os maiores ataques j realizado.

9.4.1. Ferramenta de DDoS

TFN2K Esta foi a primeira ferramenta de ataque DDoS disponvel publicamente. O TFN foi escrito por Mixter. Os ataques efetuados pelo TFN so: UDP Flooding; TCP SYN Flooding; ICMP Flooding; e Smurf Attack.

Captulo 9 Testando o sistema - 108

9.4.2. Prtica dirigida

Vamos testar, formando grupos de quatro, a utilizao do TFN2K para realizar um ataque de negao de servios; onde um ser o alvo, dois os slaves e um o master, que controla o ataque. Cada um do grupo ir revezar de papel com os outros, fazendo um rodzio. O controle dos mestres feito por linha de comando, e a execuo do programa deve ser acompanhada dos parmetros desejados com a sintaxe: Sintaxe: tfn <iplist> <type> [ip] [port] Onde: <iplist> a lista dos agentes que podem ser utilizados; <type> o tipo de ataque desejado; [ip] o endereo da vtima; e [port] a porta desejada para ataques TCP SYN flooding, que pode ser definida como um nmero aleatrio (parmetro 0). O TFN bastante "discreto". A comunicao entre os mestres e os agentes feita por mensagens ICMP tipo 0, o que torna difcil o monitoramento dessas comunicaes, pois muitas ferramentas de monitoramento no analisam o campo de dados de mensagens ICMP.

9.5. Principais tipos de ataques 9.5.1. Ping Flood


Ping flood um ataque de negao de servio simples no qual o atacante sobrecarrega o sistema vtima com pacotes ICMP Echo Request (pacotes ping). Este ataque apenas bem sucedido se o atacante possui mais largura de

Captulo 9 Testando o sistema - 109 banda que a vitima. Como a vitima tentar responder aos pedidos, ir consumir a sua largura de banda impossibilitando-a responder a pedidos de outros utilizadores. As nicas maneiras de proteger deste tipo de ataque limitando o trfego do ping na sua totalidade ou apenas limitando o trfego de pacotes ICMP Echo Request com um tamanho menos elevado.

9.5.2. SYN Flood


SYN flood ou ataque SYN uma forma de (DoS) em sistemas computadorizados, na qual o atacante envia uma seqncia de requisies SYN para um sistema-alvo. Quando um cliente tenta comear uma conexo TCP com um servidor, o cliente e o servidor trocam um srie de mensagens, que normalmente so assim: O cliente requisita uma conexo enviando um SYN (synchronize) ao servidor. O servidor confirma esta requisio mandando um SYN-

ACK(acknowledge) de volta ao cliente. O cliente por sua vez responde com um ACK, e a conexo est estabelecida. Isto o chamado aperto de mo em trs etapas (Three-Way Handshake).

Captulo 9 Testando o sistema - 110

Um cliente malicioso pode no mandar esta ltima mensagem ACK. O servidor ir esperar por isso por um tempo, j que um simples congestionamento de rede pode ser a causa do ACK faltante. Esta chamada conexo semi-aberta pode ocupar recursos no servidor ou causar prejuzos para empresas usando softwares licenciados por conexo. Pode ser possvel ocupar todos os recursos da mquina, com pacotes SYN. Uma vez que todos os recursos estejam ocupados, nenhuma nova conexo (legtima ou no) pode ser feita, resultando em negao de servio. Alguns podem funcionar mal ou at mesmo travar se ficarem sem recursos desta maneira. Ao contrrio do que muitos pensam, no resolve ataque negao de servio por Syn flood limitando a quantidade de conexes por minuto (como usar o mdulo limit ou recent do iptables), pois as conexes excedentes seriam descartadas pelo firewall, sendo que desta forma o prprio firewall tiraria o servio do ar. Se eu, por exemplo, limito as conexes SYN a 10/seg, um atacante precisa apenas manter uma taxa de SYNs superior a 10/s para que conexes legtimas sejam descartadas pelo firewall. O firewall tornou a tarefa do atacante ainda mais fcil. Um ataque de Syn Flood feito com os IPs forjados (spoof), para que o atacante no receba os Syn-

Captulo 9 Testando o sistema - 111 ACKs de suas falsas solicitaes.

9.5.3. Smurf Attack


O Smurf outro tipo de ataque de negao de servio. O agressor envia uma rpida seqncia de solicitaes de Ping (um teste para verificar se um servidor da Internet est acessvel) para um endereo de broadcast. Usando spoofing, o atacante faz com que o servidor de broadcast encaminhe as respostas no para o seu endereo, mas para o da vtima. Assim, o computadoralvo inundado pelo Ping.

9.6. Recomendaes
sugerido que o Pen-tester seja cauteloso com o uso desse tipo de ataque ou de ferramentas que possam causar uma negao de servio. Exceto em casos que o cliente solicite tal tipo de ataque, no devemos realizar esse ataque, pois pode prejudicar os negcios da empresa.

Captulo 9 Testando o sistema - 112

9.7. Sequestro de Sesso


A idia por detrs do ataque de sequestro de sesso, ou session hijacking, justamente utilizar credenciais vlidas para acessar recursos que no esto disponveis publicamente. Um exemplo de session hijacking, conseguir acessar um servidor SSH a partir de uma sesso aberta de um usurio vlido. Outro exemplo, muito utilizado pela maioria dos atacantes que quer ganhar acesso no-autorizado contas de usurios, o sequestro de sesso de aplicaes WEB, onde possvel acessar o e-mail, orkut, facebook, conta bancria e burlar qualquer outro tipo de controle de acesso de aplicaes online, de forma que possa acessar informaes confidenciais do alvo. A ferramenta utilizada para um ataque de session hijacking de SSH o sshmitm, instalado a partir da suite dsniff (funciona apenas na verso SSH1). Sintaxe: sshmitm [-d] [-I] [-p porta] host [porta] Parmetros: -d -I -p port host port Enable verbose debugging output. Monitor / hijack an interactive session. Specify the local port to listen on. Specify the remote host to relay connections to. Specify the remote port to relay connections to.

9.8. Prtica dirigida com o HUNT


Outra ferramenta interessante utilizada para um ataque de session hijacking o HUNT.

Captulo 9 Testando o sistema - 113 Para conhecermos essa interessante ferramenta, vamos instal-la para testar suas funcionalidades: #aptitude install hunt Atravs das opes existentes no menu da ferramenta, vamos navegar entre eles para conhecer as opes existentes e testar algumas funcionalidades. Vamos testar algumas dessas ferramentas na rede alvo para ver o que conseguimos. Para iniciar o hunt, para executarmos o comando: #hunt

E ser exibida a seguinte tela para ns:

Onde: O -> o prompt do shell do hunt. l/w/r) list/watch/reset connections - Lista as conexes ativas (L), assiste a uma conexo (W) e encerra uma conexo (R). a) arp/simple hijack (avoids ack storm if arp used) - essa ser a ltima opo que usaremos. Essa opo para ser usada caso sua rede for segmentada por switch, pois ela permite Arp Poisoning.

Captulo 9 Testando o sistema - 114 s) simple hijack para realizar o sequestro de sesso no caso de sua rede no ser segmentada. o) options - onde iremos configurar tudo para iniciar o hijacking. x) exit essa opo usaremos para sair da configurao do hunt. Para iniciarmos a configurao dos parmetros necessrios para nosso ataque, escolhemos a opo o, e a seguinte tela ser exibida:

Dentro dessa tela, utilizaremos a opo a/m/d) add/mod/del conn policy entry, onde vamos definir as regras de conexo, ou seja vamos configurar aqui o que o hunt farejar. Por hora, vamos utilizar a opo a para fazer a configurao necessria. O hunt pedir a partir de qual endereo voc deseja sniffar as conexes (a origem dos pacotes). E logo depois o endereo de destino dos pacotes que deseja capturar com o hunt. Configure corretamente, informando o IP de origem e de destino dos pacotes que deseja capturar. Se deixarmos no IP de origem o endereo 0.0.0.0/0, ele vai capturar os pacotes vindos de qualquer lugar da rede, para o IP de destino configurado. Na terceira ele pedir um INSERT AT, apenas tecle enter, deixando a opo padro. Essa opo simplesmente para definir em qual posio da lista nossa regra aparecer. Depois disso digitamos x para voltarmos ao menu principal...

Captulo 9 Testando o sistema - 115 Digitamos L para listar as conexes ativas. importante que aguardemos um pouco, porque pode demorar at que todas as conexes sejam exibidas. Podemos ainda, usar a opo W para sniffar as conexes. Escolhendo a opo L na shell, vemos que algumas mquinas esto trocando dados com o IP de destino configurado. Ento, usamos a opo S do menu principal, que o simple hijacking. O hunt pedir qual conexo deseja sequestrar, e elas viro numeradas. Basta escolher pela ordem numrica a conexo. Voc pode perceber, ento, que at agora no aconteceu nada, estamos apenas sniffando a conexo, mas quando pressionamos CTRL + C aparecer a mensagem: press any key>

Quando pressionarmos qualquer tecla, o sequestro est realizado e estaremos em modo interativo na conexo. como se tomssemos a identidade do CLIENTE,e o SERVIDOR continuar recebendo dados, agora vindos de nossa mquina! O CLIENTE de repente percebe que os comandos simplesmente no esto funcionando, mas no aparece nenhuma mensagem de erro, simplesmente o que o CLIENTE digitar como um ls no far nenhum efeito. Sequestrada a conexo, poderemos fazer o que quisermos com o SERVIDOR. Quando tudo estiver terminado, basta dar um CTRL+C para sair. Mas a vem a pergunta, e se minha rede possuir SWITCH? bem simples, vamos seguir os passos: Faa a mesma coisa que fizemos acima, configurando o que o hunt monitorar, liste as conexes, no menu principal use a opo d para listar os daemons do hunt e selecione a opo "A" de arp spoof. O hunt pedir para configurarmos os endereos IP de origem e destino pelos quais queremos fazer ARP Spoofing, e depois digite "S" para iniciar o Daemon.

Captulo 9 Testando o sistema - 116 Essa parte pode demorar bastante, mas basta ter calma. Aps terminar tudo, volte ao menu principal e apenas digite A de arp/simple hijack. Escolha a conexo desejada e o resto vocs j sabem :-)

9.9. Contramedidas
Infelizmente no existe muito o que fazer para prevenir esse tipo de ataque, quando estamos falando de ataques que envolvem inundao de pacotes. Normalmente, vence quem tem mais link! Porm, DoS causados por falhas em aplicaes podem ser evitadas com treinamento sobre programao segura para os programadores. Apesar de no existir nenhum meio que consiga impedir totalmente um ataque DoS, possvel detectar a presena de ataques ou de computadores (zumbis) de uma rede que esto participando de um DDoS. Para isso, basta observar se est havendo mais trfego do que o normal (principalmente em casos de sites, seja ele um menos conhecido, seja ele um muito utilizado, como o Google.com), se h pacotes TCP e UDP que no fazem parte da rede ou se h pacotes com tamanho acima do normal. Outra dica importante utilizar softwares de IDS (Intrusion Detection System Sistema de Identificao de Intrusos). Para preveno, uma das melhores armas verificar as atualizaes de segurana dos sistemas operacionais e softwares utilizados pelos computadores. Muitos vrus aproveitam de vulnerabilidades para efetuar contaminaes e posteriormente usar a mquina como zumbi. Tambm importante filtrar certos tipos de pacotes na rede e desativar servios que no so utilizados.

Captulo 9 Testando o sistema - 117

9.9.1. Find DdoS


uma ferramenta que foi desenvolvida por um rgo do FBI em funo da grande quantidade de ataques DDoS ocorridos. O find_ddos localiza no sistema os masters e agentes das ferramentas Trin00, Tribe Flood Network, TFN2k e Stacheldraht.