Giter Club home page Giter Club logo

poc_brainpan's Introduction

POC Brainpan

Brainpan é um serviço que roda em uma máquina windows, é considerado uma das preparações para a OSCP e aqui iremos mostrar como explorar uma vulnerabilidade de buffer overflow nesse binário. Ele é um serviço que roda na porta 9999 e para demonstração irei utilizar uma box da Tryhackme.

Através de uma conexão netcat temos algo interessante:

Data

Criando um script em python para se conectar e enviarmos um buffer de 'A' * 600

Data

Data

se observarmos com o immunity debugger vemos que os caracteres "A" transbordam do registro ESP e no EIP. 41 é o valor hexadecimal de "A" em ASCII.

Data

então usaremos o comando do metasploit chamado “pattern_create”(no kali basta usar “msf-pattern_create”) para descobrirmos o deslocamento exato do EIP e pegamos 600 bytes com padrão e enviaremos ao brainpan:

Data

Depois de rodar o script com o debugger ativo vamos ver que o valor "35724134" está no registrador EIP

Data

Agora usaremos o "pattern_offset" para descobrir o deslocamento exato do registro EIP.

Data

Sabendo que o registro EIP está no deslocamento 524. Iremos verificar isso com o script em python. Modificarmos nosso payload para enviar 524 caracteres "A" e seguidos de 4 "B" e inspecionar o debugger.

Data

Antes de criarmos nosso exploit por completo, devemos testar os badchars em nosso payload. Encontrei um em http://vulp3cula.gitbook.io/hackers-grimoire/exploitation/buffer-overflow e podemos modificar o script para enviar os badchars.

Data

Depois de executar o script, voltamos para Immunity, seguindo o valor hexadecimal do registro ESP. A lista de caracteres que enviamos de 01 para FF está no painel hexadecimal. Examinando vemos que não temos nenhum badchar.

Data

Procurando no nasm_shell do msf encontraremos o endereço hexa de JMP ESR e usaremos ele para pular para nosso shellcode.

Data

voltando ao debugger, digitarmos se procurarmos pelo endereço que tenha os registradores JMP ESP ou CALL ESP para acharmos uma forma de jogarmos nosso reverse shell para execução, iremos nos deparar com o endereço de memória que usaremos no EIP para pular para nosso shellcode, no caso é o "0x311712f3".

Usaremos ele em nosso payload e com o "[::-1]" para ser em little endian:

Data

Testando vemos que já podemos buildar nosso shellcode para ganharmos um reverse máquina que está executando o brainpan. Com o msfvenom criaremos o shellcode em python

Data

depois de executar o script com uma porta em nossa máquina a escuta, veremos que ganharemos um shell

Data

poc_brainpan's People

Watchers

Oblivion 悪 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.