11 de fevereiro de 2014

Teste de Invasão em Aplicações WEB - Curso EaD em Abril/2014


Data: 15/04/2014

Descrição do Treinamento:
O treinamento visa apresentar as principais características de uma aplicação WEB, bem como alguns dos protocolos presentes nas mesmas. Após a fundamentação teórica necessária, as principais vulnerabilidades existentes em cada características abordada previamente, serão apresentadas, assim como as ferramentas, métodos e técnicas de exploração de cada uma.
O treinamento é essencialmente prático, onde os alunos acompanham o instrutor em cada um dos testes realizados, colocando em prática o conhecimento adquirido na resolução de desafios práticos ao final do curso.

Objetivos:
Explicar os procedimentos necessários para a execução de um teste de invasão focado em aplicações WEB, além de demonstrar de forma prática, como realizar a descoberta de vulnerabilidades e quais os procedimentos necessários para explorá-las.

Quem deve participar:
  • Profissionais de TI, que tenham interesse na área de segurança;
  • Profissionais de segurança que tenham interesse em teste de invasão (pentesters, peritos forenses e etc);
  • Desenvolvedores que queiram aprender como funcionam as vulnerabilidades e como mitigá-las.

Pré-requisitos:
  • Conhecimento básico de análise de vulnerabilidades
  • Conhecimento básico de Linux
  • Criação de máquinas virtuais com VirtualBox ou VMWare

Material:
  • Slides em pdf
  • Vídeo de todas as aulas gravadas ao longo do treinamento
Carga horária: 40h

Horário: terças e quintas-feiras, das 22h às 24h

Investimento: R$ 800,00

Inscrição: Quem tiver interesse no curso, por favor, acesse o link http://bit.ly/ZkbwEE e faça sua inscrição no curso "Teste de Invasão em Aplicações WEB". Para pagamentos via PagSeguro, Paypal ou BCash, após preencher o formulário, aguarde o e-mail com o link de cobrança.


EMENTA

Introdução
  • Ciclo de Desenvolvimento de Software Seguro
  • OWASP
  • Arquiteturas e tecnologias de Aplicações WEB
  • Revisão de Criptografia
    • Cifras
    • Cifras Simétricas
    • Cifras Assimétricas
    • Funções de hash criptográficas
    • MACs
    • Assinaturas Digitais
    • Certificados Digitais
  • Protocolos SSL e TLS
  • Protocolos HTTP e HTTPS
  • Requisição HTTP
  • Autenticação HTTP
  • Esquemas de Codificação
    • Codificação de URL
    • Codificação HTML

Information Gathering
  • Introdução a Testes de Invasão
  • Metodologia de Teste de Invasão
  • Ferramentas Básicas
    • Navegadores WEB
    • Proxies de interceptação
    • Web spiders
    • Fuzzers
    • Varredores de portas e serviços
    • Varredores de vulnerabilidades
    • Outras ferramentas
  • Reconhecimento
    • Levantamento de informações em fontes públicas
  • Google Hacking
  • Identificação de sistemas operacionais, serviços e portas
  • Identificação do servidor WEB
  • Levantamento dos métodos suportados
  • Mapeamento
  • Identificação dos pontos de entrada de informação
  • Exploração de Controles Client-Side
  • Detecção de hosts virtuais
  • Descoberta de arquivos e diretórios
  • Cópia das páginas e recursos da aplicação
  • Identificação dos pontos de entrada de informação
  • Descoberta de vulnerabilidades e exploração
  • Evasão de restrições em campos HTML
  • Evasão de validação de Javascript
  • Exploração de campo oculto


Teste de Mecanismos de Autenticação
  • Tecnologias de autenticação empregadas em aplicações web
  • Descoberta de vulnerabilidade e exploração
  • Uso de informações obtidas nas fases de reconhecimento e mapeamento
  • Usuário e senha padronizados
  • Enumeração de identificadores de usuários
  • Mecanismo vulnerável de recuperação de senhas
  • Funcionalidade "Lembrar usuário"
  • Transporte inseguro de credenciais de acesso
  • Mecanismo vulnerável de troca de senhas
  • Autenticação com múltiplos fatores
  • Ataque de força bruta
  • Ataque de dicionário
  • Engenharia social
  • Contramedidas
  • Avaliação dos aspectos de autenticação
  • Arquivos contendo credenciais de acesso
  • Pistas no código

Teste de Gerenciamento de Sessões
  • Introdução
  • Descoberta de vulnerabilidades e exploração
    • Identificares de sessão previsíveis
    • Domínio de identificadores com baixa cardinalidade
    • Transmissão em claro de identificadores de sessão
    • Manipulação de identificador de sessão por meio de scripts
  • Atributos de cookies
    • Domain
    • Path
    • Secure
    • HttpOnly
  • Sequestro de sessão
  • Session Fixation
  • Encerramento vulnerável de sessão
  • Sessões simultâneas de um mesmo usuário
  • Cross-site request Forgery
  • Clickjacking
  • Contramedidas

OWASP Top 10 
  • Resumo de cada Vulnerabilidade
  • Exploração e Desafio prático
  • Defesa

30 de janeiro de 2014

Primeiro encontro OWASP RJ

Caros,

Enfim conseguimos organizar o primeiro encontro do Capítulo OWASP RJ. E só conseguimos isso através do apoios da Caelum RJ e do Romulo Soeiro pois através deles que conseguimos o espaço para o encontro.
Essa primeira reunião será composta de três palestras, onde será feita uma apresentação do projeto OWASP e as outras duas palestras terá conteúdo mais técnico. Vejam abaixo:

- Palestra: OWASP - Projetos e Iniciativas 
Resumo
Muitas pessoas da área de desenvolvimento ainda não conhecem esse projeto global, ou se já ouviram falar, não conhecem seus projetos. Essa apresentação tem como objetivo, apresentar a organização OWASP, seus projetos e planos para a comunidade de desenvolvedores que querem conhecer um pouco mais sobre segurança e, principalmente, desenvolvimento seguro.
Palestrante
Luiz Vieira (@hackproofing)
Luiz é Gerente da Ernst & Young, atuando em Fraud Investigation e Forensic Technologies. Atua também com Teste de Invasão em Redes e Aplicações, Análise de Malwares e ministra diversos treinamentos em diferentes área de segurança da informação. É dono do blog hackproofing.blogspot.com. Treinou centenas de alunos de diversas áreas de atuação, tais como Exército, Força Aérea Brasileira, Marinha, DICAT-DF (Divisão de Investigação de Crimes de Alta Tecnologia, da Polícia Civil), MPF e Polícia Federal. palestrou em diversos eventos como You Shot The Sheriff, FISL, LinuxCon, BSides, VOLDay e etc. Possui as seguintes certificações: COBIT, ITIL, ISO 27002, LPI, CEH, CHFI, CDFI, ACE, OSCP, OSCE, GXPN.

- Palestra: Segurança de serviços HTTP com OAuth 2.0
Resumo
Cada vez mais grandes sites e aplicações Web vêm expondo APIs que permitem aplicações de terceiros ler e modificar dados de seus usuários. Mas, como conceder acesso a terceiros sem compartilhar senhas e sem comprometer a segurança dos serviços e dos usuários? Esta é a proposta da especificação OAuth 2.0, que abordaremos durante esta palestra com um ponto de vista bem prático, incluindo a análise de possíveis ameaças.
Palestrante
Romulo Soeiro (@soeiro_santos)
Romulo é desenvolvedor de software com 10 anos de experiência em mercado web, sendo 6 em desenvolvimento corporativo utilizando plataforma JEE. Atuou em diversos projetos críticos na esferas públicas estadual e federal. Atualmente trabalha como desenvolvedor independente e instrutor da Caelum, onde treina profissionais em tecnologia Java. Possui MBA em Sistemas de Informação pela UFF e cursou Arquitetura e Segurança de Aplicações Web na School of Continuing and Professional Studies da NYU.

- Palestra: BadAss XSS - Esqueça o alert e vá para mundo real  
Resumo
Você provavelmente já deve ter cansado de demonstrar XSS com aquela famosa janelinha de alert ou com códigos que não fazem sentido nenhum em ataques reais. Adicione aqui gerentes, diretores e clientes "low tech" que continuam sem entender o problema. A palestra tem como objetivo trazer a diversão de volta para a exploração das falhas de XSS, mostrando maneiras diferentes de utilizá-las em cenários reais e tornar a demonstração mais interessante para gerentes e diretores.
Palestrante
Daniel C. Marques (@0xc0da)
Daniel é Consultor Sênio da Ernst & Young, atuando principalmente em Teste de Invasão e Análise de Vulnerabilidades. Trabalhando com Segurança da Informação desde 2004, participou de diversos projetos em líderes de mercado e em pesquisa relacionados a Análise de Vulnerabilidades, Sistemas Distribuídos e Certificação Digital, tendo palestrado em eventos como o Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais (SBSeg) e a Bsides São Paulo. É também instrutor no Instituto Infnet, além de colaborar com projetos em um laboratório de pesquisa. É Bacharel em Ciência da Computação pela Universidade Federal Fluminense (UFF) e LPIC-2.

Aproveito também para agradecer ao Daniel Marques, por dispor de seu tempo para apresentar uma das palestras do evento e compartilhar um pouco de seu conhecimento.
Essa é o primeiro de muitos outros eventos, mas esperamos das próximas vezes uma atmosfera um pouco menos formal, e com debates rolando sobre segurança da informação e desenvolvimento seguro.
O evento, obviamente, será no RJ e só dispomos de 50 vagas. Portanto, inscreva-se apenas se você tiver certeza de que comparecerá! 
As inscrições podem ser feitas aqui: http://www.eventick.com.br/encontro-owasp-rj

Obrigado à todos!

27 de dezembro de 2013

Python Tutor

Para quem gosta de python, e quer visualizar o resultado passo a passo de seu script, pode utilizar essa ferramenta abaixo, que é bem interessante, o Python Tutor!

25 de novembro de 2013

Hashcat - O mais rápido programa para quebra de senhas utilizando CPU

HashCat, um programa para quebra de senha, é considerado o programa mais rápido para esse tipo de operação, dentre as opções de programas que ainda utilizam o poder do processado/CPU. Obviamente que não nem de perto tão rápido quanto um programa que se utiliza do poder de processamento de uma GPU, mas nem por isso podemos deixá-lo de lado.

O mais importante desse programa, na minha opinião, é que o mesmo é capaz de trabalhar com multi-threads, utilizando os múltiplos cores das CPUs modernas, coisa que o John-The-Ripper (programa mais famosos desse tipo de operação) não faz.

John-The-Ripper, apesar de ser a ferramenta mais tradicional de todas, e muito boa ainda, precisa de patchs para ser capaz de trabalhar com múltiplos cores e suportar os hashs utilizados pelas versões mais recentes do kernel linux.

Por isso, achei interessante postar algo aqui no blog sobre essa ferramenta mais rápida e completa: HashCat.

A documentação, bem como os detalhes de sua utilização em linha de comando pode ser encontrada aqui: http://hashcat.net/wiki/doku.php?id=hashcat

É possível baixar essa ferramenta a partir desse link e possui as seguintes características (além de outras):

  • Multi-Thread
  • Multi-Hash (mais de 24 milhões de hashes)
  • Multi-OS (Linux, Windows e OSX)
  • Multi-Algo (MD4, MD5, SHA1, DCC, NTLM, MySQL, …)
  • Rules compatíveis com JTR e PasswordsPro
  • É possível continuar uma sessão de onde parou
  • Pode trabalhar em ambiente distribuído 
  • Pode utilizar múltiplas wordlists inclusive especificando mais de um diretório contendo wordlists
  • Número de threads pode ser configurado

17 de outubro de 2013

Livro WEB Penetration Testing with Kali Linux

Há pouco tempo saiu um livro bem interessante sobre teste de invasão em aplicações web utilizando o Kali Linux e as ferramentas já existentes no mesmo.

Os tópicos abordados no livro são:

  • Perform vulnerability reconnaissance to gather information on your targets
  • Expose server vulnerabilities and take advantage of them to gain privileged access
  • Exploit client-based systems using web application protocols
  • Learn how to use SQL and cross-site scripting (XSS) attacks
  • Steal authentications through session hijacking techniques
  • Harden systems so other attackers do not exploit them easily
  • Generate reports for penetration testers
  • Learn tips and trade secrets from real world penetration testers

E para quem quiser consultá-lo, já está disponível na web no seguinte link: http://www.it-ebooks.info/book/3000/

Agradecimentos ao Alexandre Garcia pelo link, e ao Junior Carreiro por ter comentado sobre esse excelente site de livros de TI com download direto (adeus ebooklink e wowebook, com seus links quebrados)!

15 de outubro de 2013

Curso Pentest Avançado e Introdução à Exploração de Softwares - EAD

De 25/11/2013 à 28/01/2014 (intervalo de 19/12 à 12/01 devido a festas de fim de ano)

Obs: esse curso faz parte de duas formações: especialista em teste de invasão, e desenvolvedor de exploits. Entretanto, qualquer pessoa pode realizá-lo, sendo indicado, caso não seja aluno da formação, que cumpra os pré requisitos.

Curso que alia prática e teoria, abordando técnicas avançadas de exploração de sistemas, redes e protocolos vulneráveis. Com esse conteúdo, o aluno será capaz de sair do básico de teste de invasão e partir para um outro nível, com técnicas de exploração mais avançadas e conhecimento necessário para descobrir vulnerabilidades em aplicações e criar seus próprios exploits.

O instrutor será o profissional Luiz Vieira, com 18 anos de experiência em TI e 12 em segurança da informação. O instrutor do curso possui anos de experiência em testes de invasão, tanto em redes, quanto aplicações web, redes wireless e review code. E é uma oportunidade de aprender com quem convive com as necessidades e situações reais do mercado atual, com clientes de grande porte como multinacionais de diversas áreas (Petróleo e Gás, Telecomunicações, Transportes, Operadoras de Cartão de Crédito, Bancos, Instituições Militares e Órgãos Públicos).

O curso abordará técnicas de exploração tanto de Windows quanto Linux, e cobrirá os tópicos abaixo, de uma forma macro:

  • Explorando Redes - Onde o aluno aprenderá como burlar os controles de acesso de uma rede, bem como explorar vulnerabilidades comuns em redes modernas e seus protocolos.
  • Manipulando a Rede - O aluno será capaz de entender como manipular sistemas de rede para ganhar acesso privilegiado e a oportunidade de explorar sistemas dentro das mesmas.
  • Burlando Ambientes Restritos - Serão demonstrados ambientes em Linux e Windows, com restrições de Desktop, e as ferramentas e técnicas para burlar tais restrições.
  • Softwares Maliciosos e Bypass de Antivírus - O aluno aprenderá como injetar rotinas maliciosas em binários funcionais, e controlar o fluxo de execução de seu código. Verá na prática também, como burlar antivírus, controlando o fluxo de binários maliciosos, alterando assinatura, usando técnicas de anti-debugging e criptografia.
  • Python e Scapy para Pentesters - O aluno aprenderá como ler e modificar scripts em Python e manipulação de pacotes utilizando a ferramenta Scapy para aumentar sua produtividade durante um teste de invasão.
  • Introdução às Técnicas de Fuzzing - O aluno aprenderá como funciona de forma prática, bem como os benefícios, as técnicas de protocol fuzzing para identificar falhas em sistemas alvo.
  • Técnicas Avançadas de Fuzzing - O aluno será capaz de criar sequências de testes customizados utilizando o framework Sulley.
  • Introdução à Exploração de Sistemas Windows - O aluno entenderá os conceitos básicos de Windows para explorar as falhas comuns desse sistema e os Compile-Time Controls.
  • Windows Overflows - O aluno aprenderá como explorar vulnerabilidades no Windows a partir da stack, e burlar proteções de memória.
  • Introdução à Memória Dinâmica do Linux - O aluno aprenderá um pouco sobre arquitetura de processadores X86, gerenciamento de memória no Linux, assembly, linkedição e carregamento de processos.
  • Smashing the Stack - Será ensinado ao aluno como escrever exploits básicos para stack overflow e também contra programa protegidos com canary e ASLR.
  • Shellcode - O aluno adquirirá habilidade de escrever shellcodes em sistemas Linux e a metodologia para shellcodes em Windows.


O aluno montará seus próprios LABs com orientação do instrutor, e poderá utilizar sua infraestrutura para realizar os testes durante a aula, e posteriormente ao assistir os vídeos gravados das aulas.

Máquinas virtuais necessárias: Kali Linux, Windows 7, Windows Vista, Windows XP e outras que serão disponibilizadas pelo instrutor ao início do curso. As máquinas podem ser virtualizadas utilizando VMWare ou VirtualBox.

Quem tiver interesse no curso, por favor, acesse o link http://bit.ly/ZkbwEE e faça sua inscrição no curso "Pentest Avançado e Introdução a Exploração de Softwares". Para pagamentos via Paypal ou PagSeguro, após preencher o formulário, aguarde o e-mail com o link de cobrança.

Carga horária: 40h
Investimento: R$ 950,00 (com possibilidade de parcelamento em até 3x no cartão de crédito)
Desconto: 10% de desconto para pgtos à vista.
Horário de aula: 22h às 24h
Dias de aula: seg., ter., e qua.
Início das aulas: 25/11/2013
Local: Internet

ATUALIZADO: HÁ APENAS 3 VAGAS DISPONÍVEIS

Observaçãopara pagamentos via depósito em conta, com 10% de desconto, entre em contato com luizwt at gmail.com.

19 de setembro de 2013

Analisando Malwares com Cuckoo Sandbox

Normalmente quando analisamos softwares maliciosos, a maioria dos profissionais utiliza um conjunto de ferramentas que facilita o seu trabalho e já está sempre à mão pela facilidade de acesso. Uma espécie de toolkit, que basta jogar em um pendrive. Esse toolkit auxilia nos seguintes processos:

  1. Aquisição do malware
  2. Análise do malware
  3. Relatório de análise


Não vou entrar nos aspectos que envolvem o primeiro e o terceiro processo. Portanto, vamos falar de análise, que é separada em duas categorias: estática e dinâmica (comportamental). Nesse post vamos falar um pouco sobre análise dinâmica, utilizando uma ferramenta específica, de um software pretensamente malicioso e verificar se ou como ele realiza suas ações.

Cuckoo



Para análises comportamentais de samples de sistemas Windows/x86, utilizo o Cuckoo Sandbox, que é um projeto Open Source baseado em Virtual Box como seu componente de máquina virtual (parece que isso será alterado em futuras versões, para que possa ser utilizado em outras plataformas de virtualização).

Para preparar o ambiente para instalação do Cuckoo, utilizarei um Ubuntu Linux configurado como sistema principal em uma máquina física, com o Virtual Box instalado, com uma instalação padrão, sem nenhuma especificidade exclusiva.


Instalando o Cuckoo

Após a configuração inicial do sistema, é necessário fazer o clone do repositório do Cuckoo no Github:

$ git clone https://github.com/cuckoobox/cuckoo.git

Também é necessário instalar os módulos Python utilizados pela ferramenta:

$ sudo apt-get install python
$ sudo apt-get install python-magic python-dpkt python-mako

É interessante instalar, também, o pacote ssdeep e seus módulo python, para verificação de hashs com fuzzing:

$ sudo apt-get install ssdeep

Acesse http://code.google.com/p/pyssdeep/ e faça o download do pyssdeep:

$ svn checkout svn checkout http://pyssdeep.googlecode.com/svn/trunk/ pyssdeep
$ cd pyssdeep
$ python setup.py build
$ sudo python setup.py install

Instalação do Sistema hospedeiro 
Para o ambiente de análise é necessário instalar um Windows virtualizado, no Virtual Box, para que sirva como hospedeiro do pretenso malware. Pode utilizar qualquer versão do Windows, mas é importante estar atento que o comportamento do malware será diferente em cada versão. Sendo assim, nesse post utilizarei como exemplo um Windows XP SP3.
Instale o XP de forma usual. E uma vez instalado, crie um usuário e configure sua senha. Esse passo é importante, para que o Cuckoo possa conectar-se e e executar o malware. Se for possível, você também pode criar um domínio no AD e conectar o cliente para simular a estrutura de uma pequena rede.
Outra coisa importante, é instalar o VirtualBox guest components. Para tanto, vá ao menu Devices / Install Guest Addons... A instalação será iniciada.
Faça também o download e a instalação do Python para Windows, através do site http://python.org/download/ .
Um módulo que é importante de ser instalado e que pode ser útil para nós é o PIL, Python Image Library, que pode ser baixado a partir do endereço http://www.pythonware.com/products/pil/. Esse módulo permitirá que tiremos screenshots automaticamente do desktop durante o processo de análise.
Configuração dos drives compartilhados
É possível adicionar drivers compartilhados através da interface gráfica, mas tentarei automatizar o processo, criando um script de configuração dos drivers e coleta do tráfego de rede. Obviamente que cada usuário precisará configurar os parâmetros, principalmente os paths de acordo com sua realidade. Execute o script logo abaixo com o seguinte comando:
$ ./AddMachine.sh MART-XP-1 >> conf/cuckoo.conf

#!/bin/bash

host=$1

echo "[$host]"
echo "name = $host"
echo "username = User"
echo "password = cuckoo"
echo "share = shares/$host"
echo
echo

mkdir -p /home/mboman/Src/cuckoo/shares/$host

VBoxManage sharedfolder add $host --name $host --hostpath /home/hackproofing/Src/cuckoo/shares/$host --automount
VBoxManage sharedfolder add $host --name setup --hostpath /home/hackproofing/Src/cuckoo/shares/setup --automount --readonly
VBoxManage modifyvm $host --nictrace1 on --nictracefile1  /home/hackproofing/Src/cuckoo/shares/$host/dump.pcap

Aplicações de terceiros

Agora é o momento em que precisamos tornar nossa máquina virtual hospedeira mais parecida com uma máquina real, o que significa preenchê-la com "lixo". Por exemplo, se instalar o Microsoft Office em sua VM, mas não houver nenhum documento no diretório "My Documents", isso parecer''a muito estranho. Outra coisa estranha, é uma máquina Windows que não seja capaz de abrir um arquivo PDF, ou visualizar conteúdos Flash em websites; portanto, devemos instalar o Acrobat Reader e o plugin Flash, a menos que queira deixar a VM o mais limpa possível. Se quiser utilizar versões mais antigas de softwares a serem instalados, verifique se consegue encontrá-las em http://www.oldversion.com/.

Iniciando a análise

A maneira mais fácil de enviar um arquivo para análise, é utilizar o script submit.py:
$ ./submit.py -h
Usage: submit.py [options] filepath

Options:
  -h, --help            show this help message and exit
  -t TIMEOUT, --timeout=TIMEOUT
                        Specify analysis execution time limit
  -p PACKAGE, --package=PACKAGE
                        Specify custom analysis package name
  -r PRIORITY, --priority=PRIORITY
                        Specify an analysis priority expressed in integer
  -c CUSTOM, --custom=CUSTOM
                        Specify any custom value to be passed to
                        postprocessing
  -d, --download        Specify if the target is an URL to be downloaded
  -u, --url             Specify if the target is an URL to be analyzed
  -m MACHINE, --machine=MACHINE
                        Specify a virtual machine you want to specifically use
                        for this analysis

Exemplo:
$ ./submit.py 00028672e933f9a9156e3c36bb3a7da.exe

O que realmente é interessante no Cuckoo, e no script submit.py, é que podemos especificar a máquina na qual queremos executar o malware, o que é muito bom no caso de querer verificar como o malware reage em diferentes ambientes com diferentes aplicações.

Output da análise realizada pelo Cuckoo

Cuckoo salva os resultados da análise em diversos arquivos no diretório analysis/analysis-number/reports no seguinte formato (por padrão):
  • report.html - execution trace e opcionalmente screenshots do desktop no formato HTML. 
  • report.json - execution trace e opcionalmente screenshots do desktop no formato JSON.
  • report.maec.xml - execution trace e opcionalmente screenshots do desktop no formato MAEC XML.
  • report.metadata.xml - hashs do malware.
  • report.pickle - execution trace e opcionalmente screenshots do desktop Python Pickle Objects.
  • report.txt - execution trace em arquivo de texto.
A partir dessas informações, já dá para elaborar um relatório básico de análise, que pode inclusive dar suporte para análise estática de seu código.
É isso! Preparem seus labs e mãos à obra!