Tecnologia da informação

OSCE, OSED e eCXD: Certificações de desenvolvimento de Exploits

Introdução

Meu nome é Hélvio Junior, também conhecido como M4v3r1ck. Para quem me conhece, sabe da minha paixão estudo sobre low level exploitation, envolvendo buffer overflow, process injection e etc…

Durante todo este processo uma coisa que sempre busquei foi encontrar no mercado certificações sobre este assunto. Até pouco tempo atrás tínhamos somente uma certificação, a antiga OSCE (descontinuada em outubro de 2020), mas hoje em temos algumas outras opções de certificação como a OSED (Offensive Security Exploit Developer) e eCXD (eLearnSecurity Certified eXploit Developer), bem como a OSEE (Offensive Security Exploitation Expert).

O objetivo deste artigo é realizar um breve review sobre as certificações eCXD e OSED, bem como realizar um comparativo entre elas contendo conteúdos e passos para uma correta preparação para ambas. Adicionalmente comentar sobre a minha experiência na realização delas.

Leia mais

Shellcoding – Encontrando endereço da função dinamicamente. Análise da biblioteca block_api

Neste artigo iremos dissecar a biblioteca da Metasploit chamada Block API responsável por localizar em tempo de execução o endereço das funções dentro dos módulos carregados na aplicação.

Introdução

Antes de entrarmos efetivamente no assunto deste post é interessante conceituar algumas coisas: A primeira delas é sobre o termo Shellcoding.

Shellcoding é um termo muito utilizado para designar um código escrito em assembly utilizando durante o processo de exploração de binários (Windows e Linux), seja para criação de um shell reverso, bind shell como para execução de comandos, execução de uma aplicação e etc.

Em um processo de criação de shellcoding temos a possibilidade de trabalhar com 2 estratégias, a primeira delas utilizando Syscall e a segunda utilizando APIs dos subsistemas do sistema operacional.

Leia mais

OSWE – Uma história de insucessos!

Estamos vivendo em um ano que certamente ficará marcado na história da humanidade, mas de forma especial na vida de muitos de nós. Desta forma decidi escrever um pouco da minha trajetória para me certificar OSWE (https://www.offensive-security.com/awae-oswe/), mas quero contar essa trajetória com um foco um pouco diferente do que comumente escrevo, quero focar nos insucessos e tropeços dessa trajetória.

Leia mais

Instalando OpenVPN com autenticação em MySQL

OpenVPN é um software Linux utilizado para criação de tuneis VPN. Neste artigo demonstrarei passo-a-passo como instalar o OpenVPN com os seguintes pré-requisitos:

  • Versão atualizada do próprio repositório do OpenVPN;
  • Utilização de Certificado digital;
  • Autenticação via banco de dados MySQL;
  • Scripts em python para atualização dos dados em tempo real (usuário conectado, usuário desconectado e dados trafegados)

Maiores informações e documentação do OpenVPN pode ser obtida neste endereço: https://openvpn.net/

Leia mais

Instalando CTFd no Ubuntu 20.04 com Nginx e uWSGI

CTFd é uma plataforma desenvolvida em Python para organização de jogos no estilo Capture sua Bandeira (Capture The Flag) muito comum em ambientes controlados de Segurança Ofensiva e Defensiva. Segue a url do fabricante (https://ctfd.io/)

Como demorei para encontrar tutoriais completos e atualizados resolvi juntar tudo em um só e funcional para vocês. Até a versão 18.04 do Ubuntu há um tutorial funcional utilizando a aplicação gunicorn, porém como este pacote foi descontinuado na versão 20.04 do Ubuntu tive que buscar uma forma de fazer e é este trabalho que trago para vocês de forma organizada e comando por comando.

Leia mais

Buffer Overflow Linux – Melhorando o GDB

O GDB (The GNU Project Debugger) é hoje sem dúvida o melhor debugger para ambientes Linux e Unix. Porém sua interface padrão causa um pouco de rejeição para quem está começando a se aventurar no processo de criação de exploits ou engenharia reversa.

Por este motivo trago para vocês algumas dicas que vão lhe ajudar bastante neste processo.

Leia mais

Gerando Bytearray de 0x00 a 0xFF utilizando bash

Com o comando abaixo é possível gerar um arquivo binário contendo os bytes de 0x00 a 0xff

root@M4v3r1ck:~# for i in {0..255}; do hex=$(printf %1x "$i"); echo -e -n "\x$hex"; done > bytearray.bin

Posteriormente pode-se verificar com o comando xxd

root@M4v3r1ck:~# xxd bytearray.bin
00000000: 0001 0203 0405 0607 0809 0a0b 0c0d 0e0f  ................
00000010: 1011 1213 1415 1617 1819 1a1b 1c1d 1e1f  ................
00000020: 2021 2223 2425 2627 2829 2a2b 2c2d 2e2f   !"#$%&'()*+,-./
00000030: 3031 3233 3435 3637 3839 3a3b 3c3d 3e3f  0123456789:;<=>?
00000040: 4041 4243 4445 4647 4849 4a4b 4c4d 4e4f  @ABCDEFGHIJKLMNO
00000050: 5051 5253 5455 5657 5859 5a5b 5c5d 5e5f  PQRSTUVWXYZ[\]^_
00000060: 6061 6263 6465 6667 6869 6a6b 6c6d 6e6f  `abcdefghijklmno
00000070: 7071 7273 7475 7677 7879 7a7b 7c7d 7e7f  pqrstuvwxyz{|}~.
00000080: 8081 8283 8485 8687 8889 8a8b 8c8d 8e8f  ................
00000090: 9091 9293 9495 9697 9899 9a9b 9c9d 9e9f  ................
000000a0: a0a1 a2a3 a4a5 a6a7 a8a9 aaab acad aeaf  ................
000000b0: b0b1 b2b3 b4b5 b6b7 b8b9 babb bcbd bebf  ................
000000c0: c0c1 c2c3 c4c5 c6c7 c8c9 cacb cccd cecf  ................
000000d0: d0d1 d2d3 d4d5 d6d7 d8d9 dadb dcdd dedf  ................
000000e0: e0e1 e2e3 e4e5 e6e7 e8e9 eaeb eced eeef  ................
000000f0: f0f1 f2f3 f4f5 f6f7 f8f9 fafb fcfd feff  ................