23 de janeiro de 2017

Teste de Invasão em Redes e Aplicações WEB

Descrição:
Esse treinamento é a união de dois treinamentos em um só: Teste de Invasão em Redes e Teste de Invasão em Aplicações WEB. A ideia surgiu da necessidade de criar um curso mais completo, unificado, e que fosse possível dar prosseguimento sem quebrar o ritmo.

O treinamento completo terá 60h de duração, totalmente prático, com execução de técnicas básicas à avançadas, chegando a criação de um exploit do zero, para exploração remota de um servidor para execução de um shellcode escolhido.

O aluno terá à sua disposição máquinas virtuais locais e na nuvem para execução dos exercícios, ao vivo, seguindo a tela compartilhada do instrutor, durante a aula.

Instrutor:
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).

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 Windows
  • Conhecimento básico de Linux
  • Criação de máquinas virtuais com VirtualBox ou VMWare


Material:
  • Slides em pdf
  • Apostila
  • Vídeo de todas as aulas gravadas ao longo do treinamento
  • Máquinas Virtuais específicas


Carga horária: 60h
Início: 27 de Março de 2017
Horário: segundas e terças-feiras, das 22h às 24h
Investimento: R$ 1.490,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 Redes e 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.

Observação 1: para pagamentos via depósito em conta, com 5% de desconto, entre em contato com luizwt at gmail.com.

Observação 2: desconto de 10% para ex-alunos via Paypal ou BCash, ou 20% via depósito em conta.

Ementa completa:
  • Introdução à Segurança da Informação
  • Introdução ao Teste de Invasão e Ética Hacker
  • Escrita de Relatório
  • Google Hacking
  • Varreduras ativas, passivas e furtivas de rede
  • Enumeração de informações e serviços
  • Definindo vetores de ataque
  • Ignorando Proteções
  • Técnicas de Força Bruta
  • Elevação de Privilégios Locais
  • Testando o sistema
  • Técnicas de Sniffing
  • Ataques a Servidores WEB
  • Ataques a Redes Sem Fio
  • Fuzzing & Exploits de Buffer Overflow
  • Apagando Rastros
  • Metasploit Framework
  • WarGames
  • Ciclo de Desenvolvimento de Software Seguro
  • OWASP
  • Arquiteturas e tecnologias de Aplicações WEB
  • Cifras Simétricas
  • Cifras Assimétricas
  • Funções de hash criptográficas
  • 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
  • Ferramentas Básicas para pentest WEB
  • Navegadores WEB
  • Proxies de interceptação
  • Web spiders
  • Fuzzers
  • 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
  • Avaliação dos aspectos de autenticação
  • Arquivos contendo credenciais de acesso
  • Pistas no código
  • Teste de Gerenciamento de Sessões
  • 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
  • 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
  • OWASP Top 10 
  • Resumo de cada Vulnerabilidade
  • Explorações e Desafios práticos de cada vulnerabilidade do OWASP Top 10
  • Defesa

9 de dezembro de 2016

BadUSB: comprometendo máquinas Windows através da porta USB

Algum tempo atrás, uma nova ameaça foi descoberta, chamada de BadUSB, que veio na forma de hardware... especificamente na forma de USB.

Para aqueles não familiarizados com estes dispositivos o nome diz tudo: BadUSB, porque estes USBs não são utilizados como armazenamento, mas se passam por outro dispositivo, como: teclados, mouses... que executarão um código pré-programados pelo atacante. E este falsa USB quando conectado a um computador pode executar comandos no terminal, instalar um backdoor para acesso posterior desse computador, roubar credenciais e muitos mais.

Tudo isso é porque os USBs falsos quando conectados a uma máquina executam outro firmware que não é a memória USB normal, comportando-se como qualquer outro tipo de dispositivo e é capaz de executar qualquer tipo ação na máquina à qual ele está conectado sem que o usuário em questão perceba algo.

Existem vários dispositivos no mercado com estas características, mas o mais adequado para o que estou falando é o RubberDucky, um dispositivo criado pela Hak5.

O RubberDucky funciona como um teclado e executa o que temos armazenados no seu micro SD só de conectarmos ele a outro dispositivo.

O preço deste USB é de US $ 44,99 mais custos de transporte, que são mais de 39.50 $ (para o Rio de Janeiro). Um dispositivo um pouco caro...

Então, o que você diria se pudesse obter o mesmo por cerca de metade do preço do RubberDucky? Sim, podemos criar nosso próprio Rubber Ducky pela metade do preço, tudo graças ao Teensy que funciona com Arduino .

Para montar precisamo: uma placa Teensy, ter um Arduino instalado e um cabo USB.

Muitos dizem que tudo é mais fácil comRubberDucky porque a sintaxe para programar o USB é mais simples, mais fácil e mais rápido do que a programação com Arduino. Isso é verdade, mas hoje há uma ferramenta muito boa para isso, Brutal, uma ferramenta desenvolvida pelo grupo ScreetSec (criadores de Thefatrat ou LALIN) e foi lançado há pouquíssimo tempo. Esta ferramenta possui vários módulos que nos fornecem código escritos para Arduino com várias funções, que nos fornecem um monte de coisas ao usar nosso Teensy como um BadUSB.

A ferramenta tem os seguintes módulos:
  • Gerar um payload que execute uma conexão reversa TCP através de PowerShell
  • Baixa e executa um backdoor
  • Obtém as credenciais graças ao Mimikatz
  • Gera payloads para dar uma zoada no alvo
  • Gera payloads para administração do Windows
  • Executa diversos outros ataques contra o Windows

Instalação e execução da ferramenta:
  • Instalar os pacotes de PaensyLib na biblioteca do Arduíno.
  • git clone https://github.com/Screetsec/Brutal.git
  • cd Brutal
  • chmod +x Brutal.sh
  • ./Brutal.sh

PoC do Brutal:


9 de novembro de 2016

Auto_EAP e EAPMD5PASS: boas ferramentas para burlar NACs

Quem já fez ou faz o curso de Pentest Avançado comigo, sabe que abordamos a fase de bypass de controles de acesso à redes, inclusive aquelas que utilizam NAC. 

Muitas soluções para bloqueio de acesso à redes e autenticação, utilizam o protocolo EAP (Extensible Authentication Protocol) para redes wireless, através de diversas implementações, como WPA, WPA2 e IEEE 802.11. Para entender melhor esse protocolo, indico a leitura da RFC 5247, que é a atualização das obsoletas RFCs 2284 e 3748.

O grande problema aqui, é que algumas soluções (se não a maioria), ainda utiliza a definição do EAP como designado na RFC 3748, que é o EAP MD5-challenge, cujo algoritmo é fraco e a metodologia de autenticação é falha, permitindo que através da captura de pacotes de rede, com o MD5-challenge, o atacante consiga, utilizando uma boa wordlist, prever a senha de autenticação ao gerar o mesmo hash a partir do challenge enviado + palavra de uma wordlist que deve ser igual ao hash capturado no pacote de rede.

O que é mais interessante, é que isso pode ser feito até mesmo sem estar autenticado, pois o dispositivo obtém um acesso limitado na rede para poder se comunicar com o servidor RADIUS para troca de pacotes na tentativa de obtenção da autenticação. Nesse período, é possível capturar pacotes com os hashs necessários para descoberta da senha de autenticação.

É importante, no entanto, atentar para diferentes cenários, pois em redes wireless isso é muito mais tranquilo, já que os pacotes trafegam em broadcast, mas em redes cabeadas você precisa de duas placas de rede em modo bridge para se conectar ao switch com uma delas e na outra, um dispositivo que seja autenticado na rede mas que se utilize de criptografia fraca ou nenhuma, como impressoras e VoIP phones.

Para facilitar nossas vidas, existem algumas ferramentas que podem nos auxiliar nesse processo. Duas delas merecem destaque em minha opinião, EAPMD5pass e Auto_EAP.

O EAPMD5pass é um programa (precisa ser compilado) que permite, após a captura de pacotes utilizando tcpdump ou wireshark, por exemplo, tentar quebrar a senha dos pacotes enviados com o hash md5 do challenge + senha. Esse programa foi criado por um profissional conhecido e respeitado da área de segurança, chamado Johnny Long, e pode ser baixado a partir de seu site.

Já a segunda ferramenta, baseada em Python, Auto_EAP, se utiliza da biblioteca wpaspy para realizar ataques contra a autenticação de redes wireless, através de um daemon chamado wpa_daemon, para evitar o lock out de contas ativas. Para usar essa ferramenta, execute primeiro o script RunMeFirst.py. E o único problema que vejo nessa ferramenta, ainda é sua falta de suporte à wordlists para quebra de senha e o fato de não ser multi thread. Para quem sabe um pouco de Python, nada muito difícil de resolver, ou então esperar uma nova versão.

É isso pessoal, divirtam-se!

28 de outubro de 2016

Novo ataque contra Windows: AtomBombing

Foi descoberta há alguns dias uma falha de implementação no Windows que permite um ataque remoto que possibilita realizar man-in-the-middle contra browsers, tirar screenshot da tela do alvo, e acessar senhas armazenadas no browser.

É interessante dar uma lida na explicação da Microsoft em seu blog sobre o que são e como funcionam as Atom tables, que possibilitam essa exploração: 
https://msdn.microsoft.com/en-us/library/windows/desktop/ms649053(v=vs.85).aspx

AtomBombing afeta todas as versões do Windows. E foi testada em particular contra o Windows 10, sendo totalmente eficaz.

Entretanto, uma grande questão que surgiu, foi: esse problema não pode ser corrigido por um patch, já que não depende de uma brecha ou falha no código, e sim sobre como esse sistema operacional foi desenhado e implementado.

O mecanismo do Windows que o AtomBombing explora é chamado Atom tables. Essas tabelas são fornecidas pelo sistema operacional para permitir que aplicativos armazenem e acessem dados. Estas Atom tables também podem ser usadas para compartilhar dados entre aplicações.


O que foi descoberto é que um código malicioso pode escrever em uma Atom table e forçar um programa legítimo a recuperar o código malicioso da mesma. E assim, o programa legítimo, agora contendo o código malicioso, pode ser manipulado para executar esse código.

Esse outro link explica bem como isso ocorre e como pode ser feito: 
https://breakingmalware.com/injection-techniques/atombombing-brand-new-code-injection-for-windows/

Obviamente que tudo isso depende de realiza um code injection, mas uma simples engenharia social já possibilitaria realiza isso, pois esse código malicioso só conseguiria escrever nas Atom tables localmente. Para uma PoC, segue o link para um código que consegue fazer isso e injetar um shellcode a ser executado por um aplicativo válido e reconhecido: 
https://github.com/BreakingMalwareResearch/atom-bombing

Divirtam-se!

27 de outubro de 2016

ZIB - Botnet via TOR

O ZIB é conhecido como The Open TOR Botnet, sendo um projeto baseado em Python, que até alguns meses atrás ainda era completamente indetectável pelos antivírus, pois se utiliza de um padrão de encriptação e ofuscamento utilizado pelo DoD (Department of Defense) americano, que é alterado para cada novo deployment. Resumindo: para cada novo cliente gerado para a botnet, o tamanho e codificação do arquivo é diferente, nunca mantendo a mesma assinatura, por exemplo.

Outro ponto, que pode ser percebido pelo nome do projeto, é que a comunicação é feita via TOR, para encriptar e evitar o rastreamento da fonte de controle dos bots, que são gerenciados através do IRC.

Outras duas características desse bots, é que eles podem usar um sistema de autenticação para permitir que apenas usuários com credenciais possam acessá-los e comandá-los, seja toda a botnet, ou apenas uma parte da botnet; e a outra características, é o gerenciamento de pagamentos via BitCoin, através do qual o dono da botnet pode "alugar" seus hosts para outras pessoas.

É bem importante frisar, como o próprio desenvolvedor da ferramenta colocou em seu github, que essa ferramenta é para propósito de pesquisa. Portanto, indico o uso dessa ferramenta para que possam entender o funcionamento de uma botnet, e criar labs onde sejam capazes de monitorar o funcionamento e fazer a forense de hosts infectados, como exercício de resposta a incidentes.

Confesso que das versões gratuitas de botnets liberadas para pesquisa, essa foi uma das mais completas que encontrei até hoje.

Para entender as muitas características e funcionalidades, além de poder baixar os arquivos do ZIB, acessem o GitHub dos desenvolvedores através desse link.