h2hc university 2014

Post on 05-Jul-2015

794 Views

Category:

Technology

14 Downloads

Preview:

Click to see full reader

DESCRIPTION

H2HC University 2014 Hackers to Hackers Conference Joaquim Espinhara & Filipe Balestra

TRANSCRIPT

Introducão aos Pentests e Era Atual

Joaquim Espinhara

Senior Penetration Tester Artist

Filipe Balestra

Curious Penetration Tester

Agenda

• Introdução

• Quem sou eu?

• Motivação

• Mercado de Trabalho

• Certificações

• Conformidade (PCI/HIPAA/SOX)

• O que é Penetration Test?

• Tipos de Pentest

Agenda - Continuação

• Pentest x Análise de Vulnerabilidades

• Devo realizar um Pentest?

• Benefícios

• Pentester

• Conhecimento necessário

• Fases de um Pentest

• Demo #1

• Demo #2

• Demo #3

Agenda - Continuação

• Relatórios

• Conclusão

• Dúvidas

• Contato

Introdução

Quem sou eu?

Quem sou eu? Part II

• Senior Security Consultant – Trustwave Spiderlabs

• 8 anos de experiência

• Eventos

• Black Hat USA

• Black Hat Brazil

• HITB Kuala Lumpur Malásia

• Hackers to Hackers Conference – H2HC

• Secure Brasil

• You Shot the Sheriff -YSTS

• Etc.

Quem sou eu? Part III

• uPhisher

• Ulisses Alburquerque

• https://github.com/SpiderLabs/microphisher

Quem sou eu? Part IV

• Diretor Cipher Intelligence – CIPHER

• 12 anos de experiência

• Advisories

• Kernel FreeBSD / NetBSD

• Sun Solaris

• QNX RTOS

• Aplicações Web

• Papers

• System Management Mode Hack – Phrack Magazine 65

• Artigo para revista Hakin9

Motivação

Motivação – Part II

• Trabalho desafiador

• É um trabalho divertido

Mercado de Trabalho

• Global

• Oportunidades de trabalho remoto (Home Office)

• Linkedin é seu amigo

• Não faça besteira!!

• Background check

• Mercado baseado em reputação

• Então não faça besteira!!

Certificações

Certificações – Part II

• Não garantem seu emprego!

• Ajuda? Sim!

• CEH – Fuja! Run to the hills!!!

• Offensive Security

• OSCP

• OSWP

• OSCE

• OSEE

• OSWE

Certificações – Part III

• SANS

• GIAC *

• Cursos

• Offensive Security

• SANS

• Etc.

Certificações – Part IV• Eventos

• Brasil

• H2HC

• Roadsec

• YSTS

• Bsides

• Etc.

• Exterior

• Defcon (USA)

• Ekoparty (ARG)

• HITB (NL) (KUL)

• Infiltrate (USA), Thotcon (USA), CCC (DE), Etc.

Conformidade

• PCI – PCI Security Standards Council

• https://pt.pcisecuritystandards.org/minisite/en/

• Importância (Brasil)

• PCI

O que é Penetration Test?

• A.k.a Pentest

• Tradução literal: “Teste de Penetração”

• Também conhecido por: Teste de Invasão, Ethical Hacking, etc.

• É o processo de identificar e explorar vulnerabilidades em sistemas, redes, hardware, etc.

• Utiliza-se de diversos métodos: lógicos, físicos e engenharia social, misticos.

• Única forma de mensurar o risco real de uma vulnerabilidade.

Tipos de Pentest

• Milhares de nomenclaturas

• Blind/Black box

• Gray box

• Non Blind/White box

• Externo

• Interno

• Wireless

• Físico

• Engenharia Social

• Client-Side

• Aplicação, Etc.

Pentest x Análise de Vulnerabilidade

• Muita confusão!

• Pentest não é Análise de Vulnerabilidades

• Análise de Vulnerabilidades não é Pentest

Pentest x Análise de Vulnerabilidade – Part II

• Análise de Vulnerabilidades

• Não ocorre a exploração das vulnerabilidades

• Alta ocorrência de falsos positivos

• Pentest

• Ocorre a exploração das vulnerabilidades

• Não existe falsos positivos

• Risco real

Devo realizar um Pentest?

• Sim! Claro!

• Quem deve realizar um pentest?

• Todo mundo!

• Porque?

• Simulação real de ataque.

• Avaliação das suas soluções de defesa (firewall, ids, ips, av)

Benefícios

• Rápida avaliação da situação real da segurança da empresa.

• Eficaz

• Ajuda na tomada de decisões (investimentos, alocação de recursos)

• Recomendações direcionadas a sanar um problema

Pentester

• Pessoa que faz o teste

• Pentester != Pesquisador

• Brasil

• Consultor de Segurança

• Analista de Segurança

• Analista de Suporte

• Analista de RH, Analista de Software (Oh Wait!)

• Empresas especializadas

• Consultores especializados

Pentester – Conhecimento necessário

• Depende!

• Network

• Redes

• Protocolos

• A lot of stuff!

• Application

• Programação

• Protocolos

• A lot of stuff!

Pentester – Conhecimento necessário – Part II

• Diferenciais

• Foco

• Idiomas Estrangeiros

Fases de um pentest

• Definição de target

• Enumerar e identificar os ativos

• Identificar as vulnerabilidades

• Explorar as vulnerabilidades

• Atividades pós exploratórias

• Coleta de evidências

• Escrita do relatório

Demo Disclaimer

• Todos os demos são exercícios do site:

• http://www.pentesterlab.com/

Demo #1

• CVE-2012-1823: PHP CGI

• Difficulty

• Beginner

• The Bug

• Discovered by Eindbazen

• The bug is due to an error on how the URI is used and provided to PHP CGI when a URL lacks = sign (typically used to separate parameter's name and value. Basically, the URI is passed to the php-cgi binary without enough filtering or encoding allowing an attacker to pass extra-argument to php-cgi command line.

Demo #1

Demo #2

• Axis2 Web service and Tomcat Manager

• Difficulty

• Intermediate

• The Bug

• This exercise explains the interactions between Tomcat and Apache, then it will show you how to call and attack an Axis2 Web service. Using information retrieved from this attack, you will be able to gain access to the Tomcat Manager and deploy a WebShell to gain commands execution.

Demo #2

Demo #3

• From SQL injection to Shell

• Difficulty

• Beginner

• The Bug

• This exercise explains how you can from a SQL injection gain access to the administration console. Then in the administration console, how you can run commands on the system.

Demo #3 - I

Demo #3 II

Bônus

Bônus – Heartbleed

• OpenSSL

• CVE-2014-0160

• Critical

• Não é virus!!

• Memory Leak

Bônus - Heartbleed

Bônus - Heartbleed

Bônus

Bônus – Shellshock

• Bash

• CVE-2014-6271, CVE-2014-6277, CVE-2014-6278, CVE-2014-7169, CVE-2014-7186, CVE-2014-7187

• Critical

• Também não é virus!!

• RCE

• https://shellshocker.net/

Tópicos Avançados

PowerShell

• Nishang

• Is a framework and collection of scripts and payloads which enables usage of PowerShell for offensive security and post exploitation during penetration tests.

• https://github.com/samratashok/nishang

• PowerSploit

• Is a collection of Microsoft PowerShell modules that can be used to aid reverse engineers, forensic analysts, and penetration testers during all phases of an assessment.

• https://github.com/mattifestation/PowerSploit

Client-Side Attacks

• User-driven Attacks

• Document Dropper

• HTML Application

• Java Signed Applet

• Microsoft Office Macro

• Social-Engineer Toolkit (SET)

• Phishing Frenzy

• https://www.pentestgeek.com/2014/07/22/phishing-frenzy-hta-powershell-attacks-with-beef/

Anti-virus Evasion

• Veil-Evasion

• Is a tool designed to generate metasploit payloads that bypass common anti-virus solutions.

• https://github.com/Veil-Framework/Veil-Evasion

• Shellter

• Is a dynamic shellcode injection tool, and probably the first dynamic PE infector ever created.

• https://www.shellterproject.com/

Anti-virus Evasion II

Physical Attack

• Inception

• Is a physical memory manipulation and hacking tool exploiting PCI-based DMA. The tool can attack over FireWire, Thunderbolt, ExpressCard, PC Card and any other PCI/PCIe interfaces.

• Inception aims to provide a relatively quick, stable and easy way of performing intrusive and non-intrusive memory hacks against live computers using DMA.

• https://github.com/carmaa/inception

• https://wikileaks.org/spyfiles/files/0/293_GAMMA-201110-FinFireWire.pdf

Physical Attack II - SCADA

Exploit Hardening

• Java

• Reflection

• Sharing

• Serialization

• Multiple JVM

• X-Origin

• Emulators

• http://revuln.com/files/Ferrante_Auriemma_Reloading_Java_Exploits.pdf

Pentest atual

• Resultados normalmente obtidos através de ataques contra aplicações web e ataques client-side

• Principais ataques web:

• SQL Injection

• Escalação horizontal de privilégios / Controle de acesso ineficiente

• Interface administrativa de servidor de aplicação com senha default / sem senha

Ataques contra as aplicações web

• Ainda muito utilizado e principal porta de entrada em ataques server-side

Efetividade de Engenharia Social

• Testes de engenharia social – Pishing

• 37% dos e-mails foram abertos

• 10% dos e-mails abertos foram clicados mais de 1 vez

• Testes de engenharia social – Pendrive

• 25% dos arquivos abertos

Defesas Atuais

• Web Application Firewall

• Dynamic Analysis Systems (Sandbox)

0day 1 - WAF Bypass

• Bypass - Web Application Firewall

• Caracteres Fullwidth

• Unicode foi criado para suportar todas as línguas

• Fullwidth é um bloco do unicode que contém caracteres em latin para ser usado em colunas horizontais de

idiomas asiáticos (criados para manter o tamanho de uma coluna)

• U+FF1C (<) - %EF%BC%9C

• U+02B9 (‘) - %CA%B9

• Conversor -> http://www.linkstrasse.de/en/

Sandbox Analysis Evasion

• Identificação de ambiente virtualizado

• Envio de malware modular

• Uso de sleep()

• Uso de função que processa por muito tempo

• Espera por interação de usuário com o computador

Realidade dos Ataques

• Identificado em testes de intrusão:

• 6% das senhas são padrões

• Ausência de senha

• Aplicações antigas esquecidas em servidores de produção

• Servidores fora do inventário de ativos

• Diretórios internos compartilhados com conteúdo confidencial e sem controle de acesso

• Pass the Hash

• Injection em aplicação

Realidade dos Ataques – Parte II

Realidade dos Ataques – Parte II• Usuário SA sem senha

Realidade dos Ataques – Parte IV

• Ataque contra RSA

• Phising – Arquivo Excel – “2011 Recruitment Plan”

• Uso de um 0day (Adobe Flash Player)

• Malware saiu tranquilamente via callback

• Neiman Marcus

• A porta-voz da empresa disse que o ataque foi sofisticado, pois o nome do malware tinha o mesmo nome do software de

pagamento da empresa, então os alertas eram ignorados pela equipe de segurança

• Malware ficou instalado por mais de 8 meses

• Solução identificou

Realidade dos Ataques – Parte V

• Stuxnet

Reuso de credenciais

• Monitoramento de vazamento + levantamento de informações

0day 2 - SCADA

• Design/SQL Injection – Ecava IntegraXor

PUT /getdata?function=sql&dbgroup=-1&limit=2&outfmt=json&show_ms=1 HTTP/1.1

Host: localhost:7131

User-Agent: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

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

Accept-Encoding: gzip, deflate

Proxy-Connection: keep-alive

X-Requested-With: XMLHttpRequest

Content-Type: text/plain; charset=UTF-8

Content-Length: 842

SELECT event_id,state,CDbl(ack_timestamp) as ack_timestamp_tswithms,CDbl(inactive_timestamp) as

inactive_timestamp_tswithms,CDbl(time_stamp) as time_stamp_tswithms,group_name,message,nvalue,old_nvalue,case

when state=1 and ack_timestamp is null then 0 when state=1 and ack_timestamp is not null then 1 when state=2 then 2 else 3

end as seq from alarm where ( (time_stamp >= {ts '1970-01-01 00:00:00'} and time_stamp <= {ts '2100-01-01 00:00:00'} and

ack_timestamp is null and inactive_timestamp is null) or (time_stamp >= {ts '1970-01-01 00:00:00'} and time_stamp <= {ts '2100-

01-01 00:00:00'} and ack_timestamp is null and inactive_timestamp is not null) or (time_stamp >= {ts '1970-01-01 00:00:00'} and

time_stamp <= {ts '2100-01-01 00:00:00'} and ack_timestamp is not null and inactive_timestamp is null)) order by seq asc,

time_stamp desc

Relatórios

• Tipos

• Técnico

• Executivo

• Profissionalismo

• Bem escrito

• Template único

• Entrega via Sistema

• Desenvolva o seu!

Conclusão

Dúvidas

Contatos

• Twitter: @jespinhara

• Email: espinhara.net@gmail.com

• Twitter: @filipebalestra

• Email: filipe@balestra.com.br

top related