12 de abril de 2017

CrackMapExec - um canivete suíço para pentest em redes Windows com Active Directory

CrackMapExec, ou simplesmente CME, é uma ferramenta focada para uso de pentesters em ambientes Windows/Active Directory. Com esse foco em mente, muitas das funcionalidades dessa ferramenta possuem características "stealth", para burlar proteções como IDS, IPS, antivírus e outros sistemas de detecção de ameaças em endpoints.

Essa ferramenta foi desenvolvida para ter diversas funcionalidades existentes baseadas em outras ferramentas, como psexec, Mimikatz e etc. No entanto, ela tem diversos pontos positivos se comparada a essas outras ferramentas, por exemplo:

  • Puramente em Python;
  • Uso de threads;
  • Uso apenas de chamadas de API do Windows para descoberta de sessões, usuários, dump de hashs SAM e etc;
  • Não é feito upload de nenhum binário para extração de credenciais, injeção de shellcode e etc.

Essa ferramenta ainda conta com uma base de dados que armazena e correlaciona credenciais que tenham sido extraídas das máquinas comprometidas.

Para instalá-la, é importante satisfazer algumas poucas dependências em seu sistema operacional, instalando os seguintes pacotes:

#apt-get install -y libssl-dev libffi-dev python-dev build-essential
E para baixar e o instalar a versão mais recente da ferramenta, basta executar os seguintes comandos, para baixar do github e fazer a instalação:
#~ git clone https://github.com/byt3bl33d3r/CrackMapExec
#- cd CrackMapExec && git submodule init && git submodule update --recursive
#~ python setup.py install
Para ter uma noção dos módulo que a aplicação tem, basta executar o seguinte comando:
#crackmapexec -L
Nesse link você consegue acesso ao repositório do GitHub, e de quebra lá também pode acessar a wiki, onde há todos os comandos e formas de usar a ferramenta e seus módulos, incluindo diferentes formas de executar comandos no Windows através do CrackMapExec.

É uma ferramenta que realmente vale a pena entender seu funcionamento, para facilitar o processo de pós exploração, movimentação lateral e escalada de privilégios em sistemas Windows com grandes redes utilizando o Active Directory.

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: 17 de Abril de 2017 (nova data)
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.

9 de setembro de 2016

Enfim, CISSP!

Hoje fiz minha prova de CISSP, primeira e única tentativa.

Há algumas semanas atrás agendei minha prova para o dia 26 de Outubro/2016, mas anteontem recebi um email da Pearson Vue dizendo que o centro de exames credenciado pela ISC2 aqui no Rio de Janeiro (Allen) não poderia aplicar a prova no dia agendado, e que precisaria remarcar. Qual não foi minha surpresa ao ver que as únicas datas disponíveis seriam dias 08 ou 09 de Setembro (hoje). Caso não quisesse remarcar para esses dias, tinha duas opções: solicitar o reembolso e desistir da prova, ou ir à outro estado para fazer a prova.

Como estava contando com as duas primeiras semanas de Outubro para estudar, durante minhas férias, não me sentia preparado para a prova, pois só havia lido o livro "CISSP 11th Hour, 2nd Edition". Mas um grande amigo meu (valeu Matuck!), me deu força para reagendar a prova para hoje mesmo, já que meu atual empregador estava pagando minha prova passando ou não no exame.

Bem, depois de desfiar esse terço e contar minha história triste, é hora de contar um pouco de minha estratégia para a prova. Usei basicamente quatro fontes de estudo para me preparar o pouco que foi possível. Foram elas, de acordo com o período:

- nos últimos dois meses: lia o livro "CISSP 11th Hour, 2nd Edition" de Eric Conrad, sempre no metrô, usando o Kindle no celular, durante o trajeto de casa para o trabalho e do trabalho para casa. Isso permitiu que eu conseguisse ler o livro inteiro uma única vez, já que é um livro resumido de pouco mais de 200 páginas.
- durante um mês antes dos Jogos Olímpicos: estudava cerca de 20 questões de simulados por dia usando questões de exemplos que encontrava em livros e materiais encontrados na internet. Precisei parar com isso durante as Olimpíadas, por conta de meu horário de trabalho com escalas de 12h virando a noite.
- ontem à noite, durante 2h: entrei no www.cybrary.it e baixei apenas os slides do curso de CISSP. Não tinha tempo para assistir os vídeos, então só li os pouco mais de 580 slides, onde todos os domínios estavam resumidos. Ajudou muito, por sinal, e ainda é gratuito!
- ontem à noite, durante 2h: como último recurso, um amigo mandou para mim um material de 11 páginas com um resumo muito bem construído do conteúdo abordado pela prova. Caso tenham interesse, podem baixar por esse link! Posso dizer que é o resumo total do que li no CISSP 11th Hour e nos slides da Cybrary, e pode ajudar muito para relembrar conteúdos antes da prova.

Essa foi minha estratégia e, como escrevi acima, permitiu que na primeira vez eu conseguisse passar na prova.

Obviamente não vou negar que os 20 anos de atuação na área de TI (comecei a trabalhar com 17 anos com TI de carteira assinada), e dentro desses 20 anos, os 15 de experiência com segurança da informação, me ajudaram muito, pois essa vivência fez com que eu só precisasse relembrar conceitos, ao invés de precisar aprender algo do zero. Posso citar alguns exemplos:

- criptografia: fiz há 3 anos atrás a prova de GXPN, que tem conceitos de criptografia bem mais aprofundados que o CISSP, então esse conteúdo foi tranquilo;
- domínio de segurança em SDLC: sou líder de um capítulo da OWASP desde 2012, e já dei treinamento para 12 turmas dentro de uma grande multinacional sobre segurança em SDLC;
- segurança em redes: atuando como gerente de segurança, colocando a mão na massa e ainda fazendo pentest, isso facilitou muito;
- BCP e DR: vivenciei isso na prática em grandes projetos, incluindo nos Jogos Olímpicos;
- security assessment: como pentester há mais de 10 anos, esse conteúdo foi bem tranquilo;
- gestão de segurança, governança, e compliance: também com experiência no desenvolvimento e auditoria de políticas e controles de segurança, o conteúdo foi bem tranquilo.

Agora, algumas dicas podem ajudar muito, já que o segredo da prova é entender como a ISC2 pensou ao desenvolver as questões:
- trabalhe com eliminação, pois sempre há mais de uma questão correta, então leia bem o enunciado e preste atenção em pegadinhas, tentando entender qual é a resposta MAIS correta que as outras;
- você precisa fazer a prova com a visão de um Analista de Riscos;
- na dúvida, a segurança física é sempre a melhor opção, pois é a primeira camada da segurança em profundidade;
- sempre aplique o conceito de segurança em camadas (produndidade);
- a segurança das pessoas sempre vem em primeiro lugar, SEMPRE!

Com essas dicas em mente, faça tantos simulados quanto forem possíveis, pois assim entenderá o mindset da ISC2, e então é só agendar a prova, que por enquanto não tem mais local para fazer no RJ. Quem quiser, precisará ir para São Paulo, Belo Horizonte, Curitiba ou Brasília.

E por último, como todo o material que estudei estava em inglês, optei por fazer a prova nesse idioma, para não correr o risco de confundir termos.

De 6h que poderia utilizar, finalizei a prova em metade do tempo permitido, não fazendo nenhum break, pois fiquei focado em não perder tempo ou a linha de raciocínio. Mas o mais chato para mim, foi não receber o resultado logo quando enviei as questões respondidas; ainda precisei ir até a recepção e aguardar a impressão do resultado....rs. Longos minutos de tensão...

Bem, é isso aí! Espero que as dicas ajudem, e que algum de vocês possa aproveitá-las para passar pelo exame com sucesso.