O documento apresenta diversas técnicas de exploração e pós-exploração, incluindo exploits para Windows, Internet Explorer e Firefox, além de ferramentas como Meterpreter, PSExec e técnicas como keylogging, sniffing e manutenção de acesso. O documento fornece exemplos e demonstrações das técnicas.
O documento descreve microcontroladores, especificamente o PIC, seu funcionamento interno, programação e processo de gravação. O PIC é um microcontrolador produzido pela Microchip que contém um processador, memória e pinos de entrada/saída, permitindo controlar sistemas digitais através da programação.
Este documento discute como viver como hacker ético. Apresenta o autor Antonio Costa e seu trabalho como desenvolvedor de segurança e membro do BugSec Team. Discute várias maneiras de seguir uma carreira em segurança cibernética, incluindo participar de conferências, hackerspaces e publicações on-line. Também aborda vários tipos de vulnerabilidades e técnicas de hacking ético, como SQL injection e fuzzing.
O documento apresenta os conteúdos do módulo 5 de Desenvolvimento de páginas web dinâmicas em PHP do curso de Técnico de Gestão e Programação de Sistemas Informáticos. São abordados conceitos básicos de PHP como variáveis, operadores, constantes e estruturas de dados.
[1] O documento fornece instruções sobre como invadir e corrigir vulnerabilidades em sites, incluindo passos como descobrir falhas, explorar SQL injection e cross-site scripting, e usar ferramentas como scanners e backdoors.
[2] Também discute como corrigir essas vulnerabilidades, mantendo programas atualizados e validando parâmetros de usuários.
[3] O objetivo é fornecer conhecimento sobre invasão e prevenção/correção de falhas em sites da internet.
Este documento fornece instruções sobre como invadir sites e corrigir vulnerabilidades de segurança. Ele discute técnicas como varredura de portas, injeção de SQL, roubo de cookies e como manter sistemas atualizados e seguros.
Este documento fornece uma introdução sobre como desenvolver aplicações web com PHP e MySQL. Ele discute a instalação do Apache, PHP e MySQL no Windows e Linux, sintaxe básica do PHP como tipos, variáveis e estruturas de controle, e como PHP pode interagir com MySQL para construir aplicações web dinâmicas.
O documento apresenta diversas técnicas de exploração e pós-exploração, incluindo exploits para Windows, Internet Explorer e Firefox, além de ferramentas como Meterpreter, PSExec e técnicas como keylogging, sniffing e manutenção de acesso. O documento fornece exemplos e demonstrações das técnicas.
O documento descreve microcontroladores, especificamente o PIC, seu funcionamento interno, programação e processo de gravação. O PIC é um microcontrolador produzido pela Microchip que contém um processador, memória e pinos de entrada/saída, permitindo controlar sistemas digitais através da programação.
Este documento discute como viver como hacker ético. Apresenta o autor Antonio Costa e seu trabalho como desenvolvedor de segurança e membro do BugSec Team. Discute várias maneiras de seguir uma carreira em segurança cibernética, incluindo participar de conferências, hackerspaces e publicações on-line. Também aborda vários tipos de vulnerabilidades e técnicas de hacking ético, como SQL injection e fuzzing.
O documento apresenta os conteúdos do módulo 5 de Desenvolvimento de páginas web dinâmicas em PHP do curso de Técnico de Gestão e Programação de Sistemas Informáticos. São abordados conceitos básicos de PHP como variáveis, operadores, constantes e estruturas de dados.
[1] O documento fornece instruções sobre como invadir e corrigir vulnerabilidades em sites, incluindo passos como descobrir falhas, explorar SQL injection e cross-site scripting, e usar ferramentas como scanners e backdoors.
[2] Também discute como corrigir essas vulnerabilidades, mantendo programas atualizados e validando parâmetros de usuários.
[3] O objetivo é fornecer conhecimento sobre invasão e prevenção/correção de falhas em sites da internet.
Este documento fornece instruções sobre como invadir sites e corrigir vulnerabilidades de segurança. Ele discute técnicas como varredura de portas, injeção de SQL, roubo de cookies e como manter sistemas atualizados e seguros.
Este documento fornece uma introdução sobre como desenvolver aplicações web com PHP e MySQL. Ele discute a instalação do Apache, PHP e MySQL no Windows e Linux, sintaxe básica do PHP como tipos, variáveis e estruturas de controle, e como PHP pode interagir com MySQL para construir aplicações web dinâmicas.
A vulnerabilidade de buffer overflow na aplicação Easy RM to MP3 Converter permite sobrescrever o registro EIP. Após determinar o tamanho exato do buffer, o palestrante mostra como direcionar o fluxo de execução para seu código malicioso ("shellcode") colocado na pilha. Ele então explica como encontrar um local seguro na memória para armazenar o shellcode e faz com que o EIP pule para lá através do opcode "jmp esp".
O documento fornece dicas sobre boas práticas de programação PHP para obter alta performance e escalabilidade. Em três frases ou menos, resume-se:
Divida a aplicação em camadas, use frameworks para padronização e reuso de código, e otimize o banco de dados e cache para melhorar a performance e capacidade de suportar alto tráfego.
O documento fornece uma introdução sobre a linguagem de programação PHP. Resume as seguintes informações essenciais:
1) PHP surgiu em 1995 e foi criado por Rasmus Lerdorf para analisar estatísticas de acesso a seu currículo online.
2) PHP é uma linguagem de script usada para automatizar tarefas e gerar conteúdo dinâmico em sites.
3) PHP roda do lado do servidor e é interpretada, permitindo a criação de sites dinâmicos que acessam bancos de dados.
Workshop - Cotrole sua casa remotamente através da InternetFabio Souza
Workshop realizado no Red Bull Basement no dia 24/11.
Materiais Necessários para realizar esse workshop
placa nodeMCU
protoboard
módulo Rele
Códigos Exemplos
Exemplo 1 - blink
Exemplo 2 - Conexão WIFI
Exemplo 3 - Web Server - Hello World
Exemplo 4 - web Server - Acionamento de Saídas Digitais
Exemplo 5 - MQTT
Exemplo Bonus - MQTT- Leiutra de sensor DHT11 e acionamento de saídas
Slides
Introdução
IoT
Eletrônica Básica
ESP8266
Hands ON
Feedback
Se tiver alguma dúvida, crítica ou sugestão, envia para: fs.embarcados@gmail.com
Bons Estudos!
Mais detalhes em: https://github.com/FBSeletronica/Workshop-ESP8266
Configurando aplicações em ambiente RedHat OpenShift através do EclipseAlberlan Barros
Este documento ensina como implantar uma aplicação PHP simples na plataforma OpenShift usando o Eclipse, explicando como gerar chaves SSH, criar um projeto no Eclipse vinculado ao OpenShift, fazer alterações no código e implantá-las (deploy) no servidor remoto.
A empresa 4Linux é uma pioneira no ensino de Linux no Brasil, com mais de 30.000 alunos satisfeitos. Ela oferece treinamento em missões críticas de tecnologia da informação e é parceira de treinamento da IBM, tendo recebido reconhecimento internacional por sua inovação em cursos como Hackerteen e Boteconet.
Aprendendo a criar plugins para o Wordpress - Richard BarrosRichard Barros
O documento apresenta os principais pontos para aprender a criar plugins para WordPress: o WordPress é fácil de usar, há milhares de plugins existentes e uma forte comunidade; para começar é necessário ter um site WordPress, conhecimento básico de PHP e um servidor para testes; os plugins interagem com o WordPress por meio de hooks, actions e filtros; é apresentado um pouco de código para exemplificar o uso dessas ferramentas; é importante seguir as boas práticas de segurança e documentação.
1) O documento descreve 7 passos para usar PHP na linha de comando (CLI).
2) Os passos incluem habilitar o PHP-CLI, adicionar um shebang, passar argumentos, usar STDIN, STDOUT e STDERR e códigos de saída.
3) O documento fornece exemplos de como implementar cada um desses passos.
Este documento apresenta como criar um ambiente de desenvolvimento para aplicações Django utilizando Docker e Docker Compose. Ele explica como instalar as ferramentas necessárias, criar um Dockerfile para definir a infraestrutura do projeto, configurar o docker-compose.yml para executar o projeto em containers e como executar comandos do Django no container.
Apresentação dos microntroladores, especialmente da linha pic16f, onde o alvo foi o PIC16f628a, que é bem simples de encontrar para comprar e de programar. Apesar de trabalhar com apenas 8 bits, é o robusto o suficiente para realizar automação que requeira PWM, comparação, USART; 16 I/O; e uma série de outras vantagens.
Depurando Aplicacoes PHP com XDebug e FirePHP IIJefferson Girão
Este documento fornece uma introdução às ferramentas Xdebug e FirePHP para depuração de aplicações PHP. Explica como configurar e usar os recursos do Xdebug, como depuração remota, tracing e profiling. Também apresenta o FirePHP, um plugin para o Firebug que permite depuração de aplicações AJAX através de respostas JSON e XML.
Este documento fornece técnicas e dicas para desenvolvimento em PHP sem o uso de "Programação Orientada a Gambiarras" (POG). Ele discute o que é POG, exemplos comuns, causas e ferramentas para evitá-la, incluindo técnicas de programação inspiradas por Chuck Norris.
O documento fornece instruções para importar e usar um robô de exemplo chamado AndersonRobot no NetBeans, explica recursos avançados do AdvancedRobot, dá exemplos de robôs avançados e descreve uma Liga Nacional de Robocode no Brasil.
Talk apresentada interna na empresa IXCsoft, com o objetivo de mostrar as principais novidades das versões 7.4 e 8.0 do PHP.
O foco foi mostrar pequenos trechos de códigos para utilização em software da Empresa.
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDBVinicius de Sá
Este documento apresenta conceitos e práticas sobre PHP e MongoDB. Resume os principais tópicos sobre a instalação e uso do PHP e MongoDB, incluindo como conectar os dois para realizar operações CRUD (criar, ler, atualizar e deletar) em uma coleção do MongoDB usando a extensão Mongo do PHP.
O ROS é uma estrutura(framework) de software flexível e de código aberto para programação de robôs. O ROS fornece uma camada de abstração de hardware, na qual os desenvolvedores podem criar aplicativos de robótica sem se preocupar com o hardware subjacente. O ROS também fornece diferentes ferramentas de software para
visualizar e depurar dados do robô.
O documento discute programação segura, apresentando exemplos de como diferentes perfis enxergam um código, falhas famosas causadas por bugs e como técnicas como verificação de tamanho de strings, mensagens padronizadas, CRC e confirmação de recebimento melhoram a segurança da comunicação serial entre um microcontrolador e um aplicativo.
A vulnerabilidade de buffer overflow na aplicação Easy RM to MP3 Converter permite sobrescrever o registro EIP. Após determinar o tamanho exato do buffer, o palestrante mostra como direcionar o fluxo de execução para seu código malicioso ("shellcode") colocado na pilha. Ele então explica como encontrar um local seguro na memória para armazenar o shellcode e faz com que o EIP pule para lá através do opcode "jmp esp".
O documento fornece dicas sobre boas práticas de programação PHP para obter alta performance e escalabilidade. Em três frases ou menos, resume-se:
Divida a aplicação em camadas, use frameworks para padronização e reuso de código, e otimize o banco de dados e cache para melhorar a performance e capacidade de suportar alto tráfego.
O documento fornece uma introdução sobre a linguagem de programação PHP. Resume as seguintes informações essenciais:
1) PHP surgiu em 1995 e foi criado por Rasmus Lerdorf para analisar estatísticas de acesso a seu currículo online.
2) PHP é uma linguagem de script usada para automatizar tarefas e gerar conteúdo dinâmico em sites.
3) PHP roda do lado do servidor e é interpretada, permitindo a criação de sites dinâmicos que acessam bancos de dados.
Workshop - Cotrole sua casa remotamente através da InternetFabio Souza
Workshop realizado no Red Bull Basement no dia 24/11.
Materiais Necessários para realizar esse workshop
placa nodeMCU
protoboard
módulo Rele
Códigos Exemplos
Exemplo 1 - blink
Exemplo 2 - Conexão WIFI
Exemplo 3 - Web Server - Hello World
Exemplo 4 - web Server - Acionamento de Saídas Digitais
Exemplo 5 - MQTT
Exemplo Bonus - MQTT- Leiutra de sensor DHT11 e acionamento de saídas
Slides
Introdução
IoT
Eletrônica Básica
ESP8266
Hands ON
Feedback
Se tiver alguma dúvida, crítica ou sugestão, envia para: fs.embarcados@gmail.com
Bons Estudos!
Mais detalhes em: https://github.com/FBSeletronica/Workshop-ESP8266
Configurando aplicações em ambiente RedHat OpenShift através do EclipseAlberlan Barros
Este documento ensina como implantar uma aplicação PHP simples na plataforma OpenShift usando o Eclipse, explicando como gerar chaves SSH, criar um projeto no Eclipse vinculado ao OpenShift, fazer alterações no código e implantá-las (deploy) no servidor remoto.
A empresa 4Linux é uma pioneira no ensino de Linux no Brasil, com mais de 30.000 alunos satisfeitos. Ela oferece treinamento em missões críticas de tecnologia da informação e é parceira de treinamento da IBM, tendo recebido reconhecimento internacional por sua inovação em cursos como Hackerteen e Boteconet.
Aprendendo a criar plugins para o Wordpress - Richard BarrosRichard Barros
O documento apresenta os principais pontos para aprender a criar plugins para WordPress: o WordPress é fácil de usar, há milhares de plugins existentes e uma forte comunidade; para começar é necessário ter um site WordPress, conhecimento básico de PHP e um servidor para testes; os plugins interagem com o WordPress por meio de hooks, actions e filtros; é apresentado um pouco de código para exemplificar o uso dessas ferramentas; é importante seguir as boas práticas de segurança e documentação.
1) O documento descreve 7 passos para usar PHP na linha de comando (CLI).
2) Os passos incluem habilitar o PHP-CLI, adicionar um shebang, passar argumentos, usar STDIN, STDOUT e STDERR e códigos de saída.
3) O documento fornece exemplos de como implementar cada um desses passos.
Este documento apresenta como criar um ambiente de desenvolvimento para aplicações Django utilizando Docker e Docker Compose. Ele explica como instalar as ferramentas necessárias, criar um Dockerfile para definir a infraestrutura do projeto, configurar o docker-compose.yml para executar o projeto em containers e como executar comandos do Django no container.
Apresentação dos microntroladores, especialmente da linha pic16f, onde o alvo foi o PIC16f628a, que é bem simples de encontrar para comprar e de programar. Apesar de trabalhar com apenas 8 bits, é o robusto o suficiente para realizar automação que requeira PWM, comparação, USART; 16 I/O; e uma série de outras vantagens.
Depurando Aplicacoes PHP com XDebug e FirePHP IIJefferson Girão
Este documento fornece uma introdução às ferramentas Xdebug e FirePHP para depuração de aplicações PHP. Explica como configurar e usar os recursos do Xdebug, como depuração remota, tracing e profiling. Também apresenta o FirePHP, um plugin para o Firebug que permite depuração de aplicações AJAX através de respostas JSON e XML.
Este documento fornece técnicas e dicas para desenvolvimento em PHP sem o uso de "Programação Orientada a Gambiarras" (POG). Ele discute o que é POG, exemplos comuns, causas e ferramentas para evitá-la, incluindo técnicas de programação inspiradas por Chuck Norris.
O documento fornece instruções para importar e usar um robô de exemplo chamado AndersonRobot no NetBeans, explica recursos avançados do AdvancedRobot, dá exemplos de robôs avançados e descreve uma Liga Nacional de Robocode no Brasil.
Talk apresentada interna na empresa IXCsoft, com o objetivo de mostrar as principais novidades das versões 7.4 e 8.0 do PHP.
O foco foi mostrar pequenos trechos de códigos para utilização em software da Empresa.
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDBVinicius de Sá
Este documento apresenta conceitos e práticas sobre PHP e MongoDB. Resume os principais tópicos sobre a instalação e uso do PHP e MongoDB, incluindo como conectar os dois para realizar operações CRUD (criar, ler, atualizar e deletar) em uma coleção do MongoDB usando a extensão Mongo do PHP.
O ROS é uma estrutura(framework) de software flexível e de código aberto para programação de robôs. O ROS fornece uma camada de abstração de hardware, na qual os desenvolvedores podem criar aplicativos de robótica sem se preocupar com o hardware subjacente. O ROS também fornece diferentes ferramentas de software para
visualizar e depurar dados do robô.
O documento discute programação segura, apresentando exemplos de como diferentes perfis enxergam um código, falhas famosas causadas por bugs e como técnicas como verificação de tamanho de strings, mensagens padronizadas, CRC e confirmação de recebimento melhoram a segurança da comunicação serial entre um microcontrolador e um aplicativo.
2. $Whoami
Rodolpho Concurde (ROd0X)
Penetration Tester
Instructor I.T
Consultant of I.S – 16 years
EC-C|EH
Talks at: Hack In The Box, Ekoparty, Arab Security Conference, Red Team Village,
Hacker Halted, Qubit Conference, MorterueloCON, Bsides Athens, Bsides SATX, etc.
Author: Hakin9 Magazine: Stack Overflow and From SEH Overwrite with Egg Hunter to
Get a Shell & Pentest Magazine: Covert Channel, From Fuzzing to Get a Shell and From SEH
Overwrite to Get a Shell.
https://www.linkedin.com/in/rodolphoconcurde
rconcurde@gmail.com
4. Manipulador de Exceções
Exception Handler é um pedaço de código, de dentro de uma aplicação
que têm o objetivo de tratar qualquer exceção que possa ocorrer
durante a execução do software.
O manipulador de exceções se parece com:
5. Uma exceção é um evento inesperado (um erro) que ocorre em um
sistema ou programa. Quando ocorre uma exceção, o fluxo normal de
execução do programa é interrompido. É importante que a aplicação
possa "lidar" com a exceção ou erro para continuar executando
normalmente.
Os endereços dos "manipuladores de exceção" são armazenados na
pilha.
O sistema operacional Windows possui um "manipulador" padrão que
captura qualquer exceção que não seja tratada pelo programa.
Quando o Windows lida com uma exceção em um programa, você
normalmente verá a mensagem: "o programa encontrou um problema
e precisa ser fechado".
6. O SEH funciona em cadeia e está localizado no final da pilha.
No clássico Buffer Overflow (vanilla), o exploit substitui o
endereço de retorno, sem se preocupar em escrever mais bytes na
pilha, mas com a técnica SEH Overwrite é possível obter
mais espaço para o shellcode, para ter um exploit mais estável.
7. Buffer overflow
Buffer overflow é uma anomalia onde um programa, enquanto
escreve dados para um buffer, ultrapassa o limite do buffer e
sobrescreve locais de memória adjacentes.
Pode ser:
Heap based: local na memória que aloca muita quantidade
de dados e, dinamicamente;
Stack based: aloca um tamanho limitado ou fixo de
dados, como, dados de variáveis ou funções locais.
9. P0C
Na máquina do atacante usaremos o Kali Linux (com python 2 ou 2.7)
e o software vulnerável que usaremos será o Easy File Sharing Web
Server 7.2, que está sendo executado no Windos 10 Home Single
Language 22H2/Windows XP Service Pack 3 e pode ser baixado em:
https://www.exploit-db.com/apps/60f3ff1f3cd34dec80fba130ea481f31-efssetup.exe
10. P0C
Abra o Immunity Debugger, depois abra o software vulnerável, e no
Immunity, click em File menu → Attach.
Escolha o software vulnerável e click em Attach!
Depois click em Play ou pressione F9 para rodar o software vulnerável
dentro do Immunity.
11. P0C
Nós iniciamos com o código de fuzzing em python.
Este código vai enviar 5000 “A” contra o IP do alvo na porta TCP
80.
12. P0C
Para ver o SEH chain, nós devemos clicar no menu: View → SEH chain
Como nós vemos na imagem, nós temos
o campo Address e SE handler com o
valor sobrescrito com 41414141, então
clique com o botão direito no 41414141 e
Follow address in stack.
13. P0C
Na imagem abaixo, nós vemos o Pointer to next SEH record e o valor
SE handler sobrescrito com 41414141, isto significa que funcionou,
nós sobrescrevemos o SEH chain! 8-)
14. P0C
Agora, nos necessitamos encontrar quantos caracteres são necessários para
sobrescrever o SEH, para obter controle do SEH chain.
Para isto, nós usaremos a ferramenta pattern_create.
No Kali, no diretório: /usr/share/metasploit-framework/tools/exploit → digite:
./pattern_create.rb -l 5000
Pattern_create gerou uma grande quantidade de padronizados caracteres.
Copie estes caracteres gerados, e cole no python exploit script, na variável
crash1.
15. P0C
Então envie o exploit code contra o alvo como mostra a imagem abaixo.
Clique em View → SEH chain, e como mostra a imagem abaixo nós
temos o Address e SE handler sobrescritos.
16. P0C
Agora, nós usaremos a ferramenta pattern_offset para encontrar o
offset do SE handler.
No diretório /usr/share/metasploit-framework/tools/exploit, digite como
mostra a imagem abaixo:
./pattern_offset.rb -l 5000 -q 46356646
17. P0C
Nós encontramos o offset 4065! Isso significa que nós necessitamos de
4065 bytes para sobrescrever o SEH. Na imagem abaixo, nós colocamos
na variável crash1: 4061 * “A” + “B” * 4 + “C” * 4, isto significa que nós
vamos preencher o SEH chain com 4 “B” e 4 “C”.
18. P0C
Novamente, envie o exploit code contra o alvo como mostra a imagem
abaixo.
Clique em View → SEH chain, depois botão direito em 43434343 e Follow
address in stack, como mostra a imagem abaixo.
19. P0C
Como mostra a imagem abaixo, nós temos BBBB como
Pointer to next SEH record, e CCCC como SE handler.
20. P0C
Agora nós necessitamos encontrar no Immunity uma instrução POP POP RETN, essa
instrução vai como mostra a imagem abaixo, fazer um retorno para o Pointer to next SEH
record. The Pointer to next SEH record, nós vamos sobrescrever com um jump para nosso
shellcode para obtermos um reverse shell! 8-)
Dê uma olhada na imagem abaixo!
21. P0C
Agora nós necessitamos encontrar no Immunity um endereço que tenha a instrução
POP POP RETN, para isso, nós usaremos o mona.py script.
https://raw.githubusercontent.com/corelan/mona/master/mona.py
Você pode fazer o download do mona.py e colar em:
c:Program FilesImmunity IncImmunity DebuggerPyCommands
Digite na barra de comando: !mona seh, aguarde um minito até o Immunity processar tudo.
22. P0C
Clique em View → Log para ver o log!
Veja a imagem abaixo, “for more pointers,
open seh.txt...”
23. P0C
Veja o arquivo seh.txt na pasta Immunity Debugger.
Nós usaremos o endereço 0x100103fe, que é um POP esi, POP edi and
RET, com os mecanismos de segurança ASLR, Rebase, SafeSEH as False!
24. P0C
Agora nós necessitamos encontrar o OPCODE para instrução
JMP SHORT 8, que vai ser nosso jump para nosso shellcode!
Para isso, nós usaremos a ferramenta nasm_shell, como mostra a
imagem abaixo. Digite no diretório:
/usr/share/metasploit-framework/tools/exploit#./nasm_shell.rb
nasm> JMP SHORT 8
E nós temos EB06 como mostra a imagem abaixo.
25. P0C
Agora, como mostra a imagem abaixo, crie uma variável NSEH e coloque
o valor de SHORT JMP com x90x90, que significa NOP no operation,
NOPs não fazem nada. E variável SEH, com endereço para o
POP POP RETN.
Digite seu exploit code como mostra a imagem abaixo!
26. P0C
Abra o Immunity novamente, anexe o software vulnerável dentro do
Immunity, e rode o software novamente. Então, clique com o botão direito
sobre o code area, e Go to Expression, como mostra a imagem abaixo.
28. P0C
Nós encontramos o endereço para o POP POP RETN; vamos agora,
colocar uma Breakpoint no endereço 100103fe para parar neste endereço;
para isto, clique com o botão direito em 100103fe e clique em Breakpoint
→ Toggle, como mostra imagem abaixo.
30. P0C
O software parou o fluxo da execução, como nós podemos ver na imagem
abaixo, nós temos um Access violation; press Shift F7, depois F9 para
continuar!
31. P0C
Agora, nós paramos em nossa Breakpoint 100103fe que é o inicio de
nosso POP POP RETN.
Press F7 para passar etapa-a-etapa o POP POP RETN!
32. P0C
Chegando o fluxo do programa em RETN, nós vemos o endereço indicado
na imagem abaixo: Return to 01876fd4
34. P0C
Nós já sabemos que temos um pequeno espaço para nosso shellcode,
por isso nós usaremos uma técnica chamada “egg hunter”.
Egg hunter é um pequeno pedaço de shellcode que procura por um
shellcode realmente maior que o invasor não conseguiu encaixar no
espaço de buffer disponível, para isso, faça uso deste pequeno pedaço
de shellcode "egg hunter" para redirecionar o fluxo de execução para o
shellcode maior, que estará localizado, obviamente, em um espaço maior.
36. Comando: !mona egg -t w00t -wow64 win10
P0C – Egg hunter para Windows 10
37. Agora nós precisamos procurar por bad characters, dependendo
da aplicação, tipo de vulnerabilidade e protocolo em uso, pode ser que
certos caracteres sejam considerados “bad” e, por isso, não deveriam ser
usados no seu buffer ou shellcode.
One exemplo de bad characters is 0x00.
Esse caracter é considerado bad porque um null byte é também usado
para terminar um string copy operation, o que truncaria nosso buffer
sempre que o null byte aparecesse.
Para testar se há mais badchars que podem afetar o software, feche o
software e o Immunity, e reabra o Immunity e anexe o software no
Immunity novamente.
P0C – Bad characters
38. P0C – Bad characters
Nós vamos enviar a string abaixo dentro de nosso exploit code.
"x01x02x03x04x05x06x07x08x09x0ax0bx0cx0dx0ex0fx10"
"x11x12x13x14x15x16x17x18x19x1ax1bx1cx1dx1ex1fx20"
"x21x22x23x24x25x26x27x28x29x2ax2bx2cx2dx2ex2fx30"
"x31x32x33x34x35x36x37x38x39x3ax3bx3cx3dx3ex3fx40"
"x41x42x43x44x45x46x47x48x49x4ax4bx4cx4dx4ex4fx50"
"x51x52x53x54x55x56x57x58x59x5ax5bx5cx5dx5ex5fx60"
"x61x62x63x64x65x66x67x68x69x6ax6bx6cx6dx6ex6fx70"
"x71x72x73x74x75x76x77x78x79x7ax7bx7cx7dx7ex7fx80"
"x81x82x83x84x85x86x87x88x89x8ax8bx8cx8dx8ex8fx90"
"x91x92x93x94x95x96x97x98x99x9ax9bx9cx9dx9ex9fxa0"
"xa1xa2xa3xa4xa5xa6xa7xa8xa9xaaxabxacxadxaexafxb0"
"xb1xb2xb3xb4xb5xb6xb7xb8xb9xbaxbbxbcxbdxbexbfxc0"
"xc1xc2xc3xc4xc5xc6xc7xc8xc9xcaxcbxccxcdxcexcfxd0"
"xd1xd2xd3xd4xd5xd6xd7xd8xd9xdaxdbxdcxddxdexdfxe0"
"xe1xe2xe3xe4xe5xe6xe7xe8xe9xeaxebxecxedxeexefxf0"
"xf1xf2xf3xf4xf5xf6xf7xf8xf9xfaxfbxfcxfdxfexff"
39. P0C – Bad characters
Enviando badchars contra o alvo!
40. P0C
Cole o egg hunter code no exploit code, adicione o payload2 =
badchars, adicione o egg hunter na variável crash1 e adicione
w00tw00t + payload2 na variável payload.
O w00t é uma marcação para encontrar nosso payload2.
44. P0C
A imagem abaixo, mostra o egg hunter code, e clique com o botão
direito em EDX e Follow in Dump, para mostrar o dump – w00tw00t.
Lembre-se, que w00t é um valor que antecede nosso shellcode.
45. P0C
JMP EDI, pula do final de nosso código egg hunter para nosso
shellcode maior!
46. Temos todos os chars enviados, presentes, ou seja, temos ausência de
badchar!
Obs: note que não enviamos o char x00, pois já sabiamos que o mesmo
é um badchar.
P0C
47. Foi observado que o exploit code é executado perfeitamente no software
vulnerável, concedendo um shell reverso também no Windows 10.
Contudo, ao tentar passar etapa-a-etapa a execução dentro do Egg hunter
no Windows 10, o processo entra em loop e não avança para procurar por
badchars.
Note bem que o exploit em Windows 10 também funciona perfeitamente,
e gera um shell reverso para o atacante, mas a execução do exploit dentro
do Immunity entra em um loop dentro do código do egg hunter.
Devido a este bug entre o debugger e o software anexado, é indicado que
se faça a procura por badchars em outra versão do Windows como,
por exemplo, no Windows XP, como já demonstrado em slides anteriores
nesta mesma apresentação!
OBS: Egg hunter para Windows 10
49. Agora, nós devemos gerar nosso shellcode para ganhar um reverse shell.
Para isto, nós vamos usar a ferramenta msfvenom.
Faça como mostra a imagem abaixo!
P0C
52. Reinicie o software vulnerável no Immunity, coloque a respectiva
Breakpoint, e envie o exploit code atualizado contra o alvo.
Exploit code para Windows 10 sendo executado!
P0C
53. Veja que o código do shellcode gerado pelo msfvenom e inserido no
exploit code é o mesmo do que o código no Immunity!
P0C