[0x1B] EGG Hunter Exploit

COMPARTILHAR:

Whatsapp Telegram Twitter Facebook Reddit

Aprenda a técnica Egg Hunter: como superar limites de espaço em exploits usando buscas na memória para executar shellcodes através de tags específicas

Este tutorial faz parte do GUIA COMPLETO do professional em Segurança Ofensiva de Software, saiba mais.

Aula 27: EGG HUNTER

No cenário de desenvolvimento de exploits, um dos obstáculos mais comuns enfrentados por pesquisadores de segurança é a limitação de espaço para a injeção de payloads. Quando a vulnerabilidade explorada (como um buffer overflow) oferece apenas alguns poucos bytes para a execução de código, torna-se impossível injetar um shellcode completo e funcional, como os gerados pelo Metasploit. Para contornar essa barreira, utiliza-se a técnica conhecida como Egg Hunter.

A técnica recebe esse nome em referência à tradição de "caça aos ovos" de Páscoa, comum nos Estados Unidos. No contexto da exploração, o "ovo" (egg) é uma tag. Essa tag é uma pequena string de 4 bytes, geralmente repetida (totalizando 8 bytes) que o atacante coloca no início do seu shellcode principal.

O Egg Hunter em si é um estágio inicial do payload, extremamente pequeno e otimizado, cuja única função é varrer a memória do processo em busca dessa tag. Assim que a tag é localizada, o Egg Hunter desvia o fluxo de execução para o código que vem logo após ela, permitindo a execução do shellcode completo que estava escondido em outra área da memória.

Existem diversos motivos pelos quais o espaço para exploração pode ser limitado:

  • Manipulação da Pilha pela Aplicação: Mesmo que o atacante consiga injetar um código grande, a própria aplicação pode continuar executando e chamar funções que sobrescrevem partes da pilha (stack), corrompendo o shellcode antes que ele seja executado.
  • Restrição de Caracteres: Filtros de entrada que barram caracteres específicos podem forçar o payload a crescer demais para evitar esses bytes proibidos, impedindo que ele caiba no espaço disponível.
  • Arquitetura da Função: Algumas funções vulneráveis possuem buffers naturalmente pequenos que não comportam um payload de estágio único.
O ataque funciona como um payload de dois estágios:
  1. Injeção do Shellcode (Ovo): O atacante envia o shellcode completo (com a tag identificadora no início) através de qualquer entrada aceita pela aplicação (ex: um pacote de dados anterior ou outra variável). Ele não precisa saber exatamente onde esse código ficará, apenas garantir que ele esteja presente na memória.
  2. Exploração e Execução do Hunter: O atacante explora a falha enviando o Egg Hunter (o código de busca). Este código varre a memória de forma seletiva para evitar travamentos.
Um desafio crítico é que o Hunter não pode simplesmente acessar todos os endereços de memória. Tentar ler áreas inacessíveis ou reservadas ao sistema operacional causará uma exceção de acesso, derrubando o processo e interrompendo o ataque.

No Windows, o Hunter utiliza chamadas de sistema (como a NtDisplayString ou a NtAccessCheckAndAuditAlarm) para verificar se um endereço é legível sem causar um erro fatal. O processo segue esta lógica:
  1. O Hunter consulta o sistema sobre a acessibilidade de um endereço.
  2. Se o sistema retornar um erro de acesso, o Hunter pula para a próxima página de memória.
  3. Se o acesso for permitido, ele compara o conteúdo do endereço com a tag escolhida.
  4. Ao encontrar a tag, ele salta para o endereço e inicia a execução do payload principal.
A eficiência do Egg Hunter depende do seu tamanho e da rapidez com que varre a memória.

Figura 1: Aplicação vulnerável

Utilizando a aplicação que desenvolvemos um exploit que explora a vulnerabilidade de Buffer Overflow anteriormente, vamos agora construir um exploit que utilize um Egg Hunter (Figura 1).

Figura 2: Gerando Egghunter e TAG

Primeiramente vamos gerar o código do Egghunter definindo sua tag com o seguinte comando utilizando o Mona no Immunity (Figura 2): !mona egg -t LTAG

Figura 3: Desenvolvimento código

Reutilizando o código do exploit que desenvolvemos em aulas anteriores, foi adicionado a tag e o código do Egghunter (Figura 3).

Figura 4: Breaking point

Vamos analisar o crash. No Immunity adicione um breaking point no endereço referente a instrução "JMP ESP" para acompanhar o fluxo do código (Figura 4).

Figura 5: Estado da aplicação após jump esp

Observa-se que nSEH e SEH foram sobrescritos com “B” (Figura 5). Portanto optarei por colocar o código do EggHunter entre o lixo e a sobrescrita do EIP.

Figura 6: Jump -50 bytes

Portanto será feito um jump back de 50 bytes (Figura 6).

Figura 7: Código final do exploit

| Junk … | EggHunter | … Junk | EIP | JumpBack 50 | Egg | Shellcode |

                          |------←------|

Entre o início do lixo (junk) e a sobrescrita do EIP são 4116 bytes. Então o Egghunter foi adicionado a -50 bytes da sobrescrita do EIP e os bytes restante até a sobrescrita foram preenchidos com lixo. Após a sobrescrita do EIP foi adicionado a instrução que realiza um jump back de 50 bytes, em seguida adicionado nossa TAG (egg) e por fim o shellcode, um payload do tipo messagebox para Windows (Figura 7).

Figura 8: Breakpoint instrução “jmp esp”

Figura 9: Jump back 50 bytes

Figura 10: Egghunter

Após realizar jump negativo de 50 bytes, caímos exatamente no Egghunter (Figura 10).

Figura 11: Busca pela TAG com Mona

Utilizando o Mona foi verificado a ocorrência da TAG na memória (Figura 11).

Figura 12: Preparar arquivo para comparar shellcode

Figura 13: Verificado integridade do shellcode

Utilizando o comando compare do Mona, foi verificado que o shellcode está integro na memória (Figura 13).

Figura 14: Exploit com EggHunter funcionando

Após compilar o exploit e gerar o arquivo, carregou-se o arquivo eggoverflow.wav na aplicação que então elevou a CPU a 100% ao buscar pela nossa tag na memória. Após encontrar a tag o payload foi executado com sucesso (Figura 14).

Podemos concluir que o Egg Hunter é uma ferramenta de precisão em ataques de corrupção de memória. Certas implementações de Egg Hunter utilizam chamadas de sistema que possuem o mesmo identificador em diversas versões do Windows, facilitando a criação de exploits estáveis. Enquanto um payload comum de busca de tags no Metasploit pode ter cerca de 92 bytes, um Egg Hunter customizado e otimizado pode ser significativamente menor, encaixando-se em brechas mínimas de memória. Sendo assim, essa técnica permite que exploits sobrevivam a ambientes com restrições severas de memória, transformando uma pequena falha de poucos bytes numa porta de entrada para a execução completa de código arbitrário.

Próxima aula, clique aqui.
Nome

#ann,25,#HK,30,#LTCode,135,Artigo - Diversos,158,Artigo - Games,201,Artigo - Tecnologia,641,autor-thomaz,7,blueteam,16,cftv,4,Coluna - Alternative World,24,Coluna - Fail,12,Coluna - Tec Line,14,Criptomoeda,72,Curiosidades - Diversos,49,Curiosidades - Tecnologia,50,en,2,estudo,8,HN,12,IA,10,logica,14,Pentest,28,Programar C,29,Programar POO,6,Programar Python,6,Programar Shell,25,Programar verilog,12,qradar,4,Raspberry Pi,15,Redes,3,Review,4,root,138,Shorty Awards,1,Smartphones - Reviews,33,Teoria,10,Top Nostalgia,2,VPN,19,WhatsApp,46,
ltr
item
Limon Tec: [0x1B] EGG Hunter Exploit
[0x1B] EGG Hunter Exploit
Aprenda a técnica Egg Hunter: como superar limites de espaço em exploits usando buscas na memória para executar shellcodes através de tags específicas
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikJMn5LIEfrtHPEivASNGrjkvEXwlg4pIfsUmJSG3iiHB7Qq2GaWwJER5C7ACwPdzjN3mOJMzZdm6Bafmml93aqYJZ_yJFwmxuidt2RVhJnGRLXV2v545RJExEEpfLRP6o2trej48bX-8CaV9ryot9es4nMq4iCNEvPxcVUu2M8uAvqxo4gECtD5lHKw/w640-h421/limontec_seguranca_ofensiva_software.png
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikJMn5LIEfrtHPEivASNGrjkvEXwlg4pIfsUmJSG3iiHB7Qq2GaWwJER5C7ACwPdzjN3mOJMzZdm6Bafmml93aqYJZ_yJFwmxuidt2RVhJnGRLXV2v545RJExEEpfLRP6o2trej48bX-8CaV9ryot9es4nMq4iCNEvPxcVUu2M8uAvqxo4gECtD5lHKw/s72-w640-c-h421/limontec_seguranca_ofensiva_software.png
Limon Tec
https://www.limontec.com/2026/05/egg-hunter-exploit.html?m=0
https://www.limontec.com/?m=0
https://www.limontec.com/
https://www.limontec.com/2026/05/egg-hunter-exploit.html
false
2157924926610706248
UTF-8
Carregar todos posts Não encontramos nenhum post VER TUDO Ler mais Responder Cancelar resposta Deletar Por Home PÁGINAS POSTS Ver tudo RECOMENDADO PARA VOCÊ LABEL ARQUIVO SEARCH TODOS POSTS Não encontramos nenhum post relacionado a sua requisição VOLTAR PÁGINA INICIAL Domingo Segunda Terça Quarta Quinta Sexta Sábado Dom Seg Ter Qua Qui Sex Sab Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Jan Fev Mar Abr Maio Jun Jul Ago Set Out Nov Dez apenas agora 1 minuto atrás $$1$$ minutes ago 1 hora atrás $$1$$ hours ago Ontem $$1$$ days ago $$1$$ weeks ago mais de 5 semanas atrás Seguidores Seguir ESTE CONTEÚDO ESTÁ BLOQUEADO PASSO 1: Compartilhe com seus amigos PASSO 2: Clique no link compartilhado Copiar Todo Código Selecionar Todo Código Todos códigos foram copiados para seu clipboard Não é possível copiar códigos / textos, por favor aperte [CTRL]+[C] (ou CMD+C no Mac) para copiar Tabela de conteúdo