Vamos baixar e instalar o Immunity Debugger
Site, Alternativo aqui . Quando o download terminar, dê um duplo clique no arquivo ImmunityDebugger_1_85_setup e instale o software com as opções padrão. Ele também irá instalar Python.
Iniciando Immunity e anexando um Processo;
Na sua desktop vá até o icone do immunity e o execulte. Essa é a janela que você verá
Agora vamos anexar um processo em execução para a immunity. Isso vai encapsular o processo dentro Immunity, Assim podemos analizar processo e controlar.
Na barra do menu Immunity Debugger, clique em File, Attach.
Em "Select process to attach" na caixa selecione o vulnserver como mostra abaixo e clique em Attach
Modificando a aparência do Immunit;
Vamos modificar a aparência dos painéis no Immunity que estão com os textos muito pequeno, como mostrado abaixo.
Isso é muita informação para perceber imediatamente, e muito difícil de ler.
Para tornar o texto mais legível, clique com o botão direito do mouse em algum lugar no top painel, No menu de contexto, clique em Appearance, "Font (all)", "OEM fixed font", como mostrado abaixo. O tipo de letra se torna mais clara.
No painel esquerdo inferior, clique com o botão direito do mouse e clique em: Hex ", Hex/ASCII (16 bytes)", como mostrado abaixo.
Compreendendo as janelas do Immunity;
Está é a "CPU Windows" do Immunity,
ASSEMBLY CODE ( Esta é a parte mais difícil de se compreender. Ela mostra as instruções do processador, um de cada vez na "Linguagem Assembly", instruções como MOV e CMP. A linguagem assembly é difícil de aprender, mas você não precisa aprender muito para desenvolver exploits simples. )
REGISTERS ( Os itens mais importantes aqui são: ) ++ Clica aqui
EIP: Ponteiro de instrução (contador de programa) - É o endereço da próxima instrução a ser processado.
ESP: Ponteiro de pilha - É o topo da pilha
EBP: Ponteiro base da pilha - É a parte inferior do ponteiro de pilha
HEX DUMP ( Isso mostra uma região da memória em hexadecimal à esquerda e à direita em ASCII. simples de desenvolvimento o exploit , vamos usar esse painel para olhar para regiões de memória alvo, geralmente rotulados com texto ASCII. )
CURRENT INSTRUCTION (Mostra exatamente a instrução do processo que está em execução no momento. O Immunity foi atribuído automaticamente em um ponto de interrupção do início do processo e agora a sua execução foi interrompida. )
STATUS ( Mostra se o programa está em pausa ou em execução. Quando Immunity atribui um processo, o processo inicia-se no estado pausado.
No menu do Immunity Debugger, no canto superior esquerdo, clique no botão Run, como mostrado abaixo. Isso executa o servidor vulnerável dentro do depurador, para que possamos trabalhar
Observando o servidor no Immunity;
Na máquina Kali vamos execultar o script fuzz e inserir em:
"Tamanho do Ataque" 2000 bytes. o servidor não responde pois ele está falhando.
Agora olhando para o windows no Immunity, no canto inferior esquerdo, você verá "Violação de acesso para [41414141], como mostrado abaixo.
"41" é o código em hexadecimal para o caractere "A", como mostrado abaixo.
Isto significa que os caracteres 'A' você foram enviados e de alguma forma mal interpretada pelo servidor como um endereço para gravar dados. Os endereços são 32 bits de comprimento, que é de 4 bytes, e 'A' é de 41 em hexadecimal, por isso, tornou-se o endereço 41414141.
Reiciando o servidor no Immunity
No menu do Immunity Debugger, no canto superior, clique no botão Debug, no menu contexto vá até restart, como mostrado abaixo. e em seguida na janela que aparecerá clique em SIM. Isso reiciará o servidor vulnerável dentro do depurador, para que possamos atacar novamente. E depois rode o servidor clicando em RUN
Enviando 3000 caracteres 'A'
Na máquina Kali vamos execultar o script fuzz mais uma vez e inserir em:
"Tamanho do Ataque" 3000 bytes. o servidor não responde pois ele está falhando.
Olhando para o windows na janela do Immunity, no canto inferior esquerdo, você verá "Violação de acesso ao executar [41414141], Também destaquei uns intens em Registers <FPU> como mostrado abaixo.
Este é o clássico de explorar o buffer overflow , Os caracteres injectados são colocados em EIP quando uma sub-rotina retorna, portanto, tornam-se o endereço da próxima instrução a ser executada.
41414141 não é um endereço válido, portanto Immunity detecta que o programa está falhando e faz uma pausa para que você possa ver o que está acontecendo. Isso é comum em desenvolvimento do exploit - O comprimento do ataque tem resultados diferentes do ataque de 2000 bytes como fizemos antes.
A partir de agora, vamos usar um comprimento de 3000 para todos os ataques.
Reinicie o servidor vulnerável novamente
"como você fez antes lá em cima"
No menu do Immunity Debugger, no canto superior, clique no botão Debug, no menu contexto vá até restart, e em seguida na janela que aparecerá clique em sim. Isso reiciará o servidor vulnerável dentro do depurador, para que possamos atacar novamente. E depois rode o servidor clicando em RUN
Criando um padrão não-repetido de caracteres
Ir para a terceira parte clicando aqui
0 comentários:
Postar um comentário