You are on page 1of 22

Ataques a Servidores WEB

Objetivos
Aprender como encontrar vulnerabilidades em servidores web Conhecer diferentes as diferenas entre Apache e IIS Descobrir como explorar as vulnerabilidades encontradas

Tipos de ataques
DoS Jamming Networks Flooding Service Ports Misconfiguring Routers Flooding Mail Servers

Tipos de ataques
DDoS
FTP Bounce Attacks Port Scanning Attack Ping Flooding Attack Smurf Attack SYN Flooding Attack IP Fragmentation/Overlapping Fragment Attack IP Sequence Prediction Attack DNS Cache Poisoning SNMP Attack Send Mail Attack

Fingerprint em Web Server


Httprint Ferramenta para pegar o banner de identificao do servidor web.

Descobrindo Vulnerabilidades com Nikto


Nikto um script Perl usado para testar a segurana de seu servidor web.
# ./nikto.pl -update # ./nikto.pl -h 192.168.131.1 -o /192.168.131.1.txt

Podemos adicionar o sinalizador de evaso, que tenta contornar seus sistemas de IDS:
# perl nikto.pl -h www.xyz.com.br -evasion 1

Existem 9 opes diferentes para flags de evaso, 1 para Random URL encoding (non-UTF8).

Auditoria e Explorao de Web Servers com W3AF


Essa ferramenta um framework para auditoria e ataque em aplicaes web.

Pgina do projeto: http://sourceforge.net/projects/w3af/ Vdeos: http://w3af.sourceforge.net/videos/video-demos.php

Online Scanner
H vria ferramentas online que podemos utilizar para fazer a varredura de web servers e obter informaes necessrias para a explorao de vulnerabilidades encontradas. http://www.netcraft.com/

Contramedidas
Realizar constantes verificaes nas configuraes de segurana dos servidores web. Atualizar constantemente os servidores. Diminuir ao mximo as informaes que so transmitidas pelos web servers s ferramentas de fingerprinting.

Exploits

Objetivos
Entender o que um Buffer Overflow Aprender como explorar uma falha dessa categoria

Mas afinal, o que um exploit?


Um exploit, em segurana da informao, um programa de computador, uma poro de dados ou uma sequncia de comandos que se aproveita das vulnerabilidades de um sistema computacional

Quem cria exploits?


Programadores habilidosos Hackers Crackers Pesquisadores

Fontes de exploits
www.milw0rm.com www.securityfocus.com www.packetstormsecurity.com www.metasploit.com

Introduo - Memory Space

Introduo aos registradores


Esta aula baseada em IA32
Pode ser usado para armazenar dados e endereos, offsets, dentre outras funes

ESP (Stack Pointer)


Aponta para o topo da pilha

EIP (Instruction Pointer)


Contm o endereo da prxima instruo de mquina a ser executada

Introduo ao shellcode
O que um shellcode? Um payload o cdigo que ser executado no computador quando houver o comprometimento de alguma falha. Esse payload pode realizar diversas tarefas: adicionar um usurio no sistema, executar uma determinada aplicao, etc. Mas normalmente, o payload mais comum chamado de Shellcode Um simples exemplo que executa um exit() Shellcode = \x31\xdb\xb0\x01\xcd\x80

Buffer Overflow
Um buffer overflow acontece quando um programa vulnervel a esse tipo de falha tenta copiar mais informaes para dentro de um buffer do que esse buffer consegue suportar O que acontece quando tentamos colocar uma garrafa de 600ML de coca em um copo que cabe apenas 300ML?

Buffer Overflow
As vulnerabilidades de buffer overflow so consideradas ameaas crticas de segurana, apesar de ser uma falha bem conhecida e bastante sria, que se origina exclusivamente na ignorncia do programador referente a aspectos de segurana durante a implementao do programa. Exemplos: MSRPC, Openssh, Apache, IIS, dentre outros

Programa Vulnervel
overrun.c #include<stdio.h> main(){ char*name; char*dangerous_system_command; name=(char*)malloc(10); dangerous_system_command=(char*)malloc(128); printf("Addressofnameis%d\n",name); printf("Addressofcommandis%d\n",dangerous_system_command); sprintf(dangerous_system_command,"echo%s","Helloworld!"); printf("What'syourname?"); gets(name); system(dangerous_system_command); }

Executando
#gcc overrun.c -o over #./over Digite 0123456789123456ls Veja o que acontece!

Concluso
Com isso, conseguimos demonstrar o perigo que uma falha de programao em um programa. possvel obter controle completamente sobre o programa que esta sendo explorado. Se o programa oferecer algum servio remotamente, a falha pode ser explorada remotamente, da mesma forma que foi explorada localmente, apenas trocando o shellcode e criando os sockets que sero responsveis para se conectar no programa.

You might also like