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.

7 de setembro de 2016

Roubando credenciais de usuários Windows e MAC

É um ataque bem interessante esse descoberto pelo @mubix, e é bem útil emsituações onde o usuário bloqueou a máquina, mas deixou seu usuário logado. O mais interessante é que foi testado e funciona contra todas as versões de Windows e MAC.

Abaixo é possível ver o vídeo do teste com sucesso:



O equipamento utilizado pode ser construído por vocês, ou pode-se usar o HAK5 LAN Turtle, vendido pela HAK5.

A lógica do ataque é razoavelmente simples e só precisa de três coisas: um dispositivo USB Ethernet + DHCP + Responder, e com isso conseguimos capturar as credenciais de um computador que esteja com sua tela de login bloqueada, porém com um usuário logado.

Nesse link tem toda a informação necessária para entender o ataque, criar seu próprio USB Armory pronto para o ataque, ou como configurar o HAK5 LAN Turtle que já vem quase pronto para o ataque.

Divirtam-se!