o – módulo 06 – tarefa 02 - desecsecurity.com · solução - tarefa 02 - módulo 06 - script...

7
Manual de Autocorreção – Módulo 06 – Tarefa 02

Upload: vananh

Post on 10-Nov-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: o – Módulo 06 – Tarefa 02 - desecsecurity.com · Solução - Tarefa 02 - Módulo 06 - Script para descoberta de arquivos e diretórios Objetivo desse exercício, é criar um

Manual de Autocorreção – Módulo 06 – Tarefa 02

Page 2: o – Módulo 06 – Tarefa 02 - desecsecurity.com · Solução - Tarefa 02 - Módulo 06 - Script para descoberta de arquivos e diretórios Objetivo desse exercício, é criar um

Tarefa 02 - Módulo 06 - Script para descoberta de arquivos e diretórios Objetivo desse exercício, é criar um script que descubra arquivos e diretórios de um determinado host. Você deve informar o alvo e a wordlist a ser usada e o script deve retornar os diretórios e arquivos que encontrar no servidor.

O script deve ter um funcionamento similar ao mostrado abaixo

Dicas de estudo: Aula 12,13,14 e 15 - Módulo 06 Códigos de resposta HTTP (HTTP_CODE) man curl

Page 3: o – Módulo 06 – Tarefa 02 - desecsecurity.com · Solução - Tarefa 02 - Módulo 06 - Script para descoberta de arquivos e diretórios Objetivo desse exercício, é criar um

É de extrema importância que você estude e tente resolver o exercício antes de visualizar a solução, visualizar a solução abaixo antes de tentar resolver sozinho vai comprometer

significativamente o seu aprendizado e o desenvolvimento do seu mindset.

Page 4: o – Módulo 06 – Tarefa 02 - desecsecurity.com · Solução - Tarefa 02 - Módulo 06 - Script para descoberta de arquivos e diretórios Objetivo desse exercício, é criar um

Solução - Tarefa 02 - Módulo 06 - Script para descoberta de arquivos e diretórios Objetivo desse exercício, é criar um script que descubra arquivos e diretórios de um determinado host. Você deve informar o alvo e a wordlist a ser usada e o script deve retornar os diretórios e arquivos que encontrar no servidor.

O script deve ter um funcionamento similar ao mostrado abaixo

Estamos levando em conta que você assistiu as aulas 12,13,14 e 15 do módulo 06, caso não tenha assistido volte e assista, pois, o conteúdo é de extrema importância para a solução desta tarefa. Entendendo a lógica Antes de criar o nosso script nós precisamos entender a lógica por trás da técnica

1) Fazer uma requisição HTTP buscando um determinado recurso (arquivo/diretório) 2) Analisar o código de resposta HTTP pois ele vai indicar se o recurso existe ou não

Page 5: o – Módulo 06 – Tarefa 02 - desecsecurity.com · Solução - Tarefa 02 - Módulo 06 - Script para descoberta de arquivos e diretórios Objetivo desse exercício, é criar um

No nosso caso precisamos carregar uma lista com centenas de possíveis diretórios e arquivos a serem validados.

Podemos usar uma lista padrão pronta como a que o programa dirb do kali Linux possuí que fica localizada em /usr/share/dirb/wordlists/small.txt ou podemos criar nossa própria wordlist de arquivos e diretórios. Vamos criar uma lista de teste para a nossa tarefa

Esta lista contém tanto nomes de diretórios quanto nomes de arquivos. Temos que ler a nossa lista e fazer requisições HTTP para o servidor para validar se existe ou não, para isto podemos usar o for para ler a nossa lista e o curl para fazer a requisição. curl -s -w "%{http_code}" -o /dev/null www.grandbusiness.com.br

Legenda: -s = modo silencioso -w "%{http_code}" = mostra o código de resposta http -o /dev/null = envia toda saída para o lixo

Com isso podemos facilmente saber se o recurso solicitado existe ou não no servidor

Page 6: o – Módulo 06 – Tarefa 02 - desecsecurity.com · Solução - Tarefa 02 - Módulo 06 - Script para descoberta de arquivos e diretórios Objetivo desse exercício, é criar um

No primeiro exemplo estamos buscando naoexiste no nosso alvo e o retorno foi o código 404 que significa que esse recurso não existe. Em seguida estamos fazendo uma nova requisição na raiz / e temos como código de retorno 200 que significa que o recurso existe no servidor. Sabendo disso podemos usar nosso conhecimento em bash script para ler a nossa lista, fazer as requisições http e analisar a resposta. for dir in $(cat lista.txt);do respdir=$(curl -s -o /dev/null -w "%{http_code}" $1/$dir/) if [ $respdir == "200" ] then echo "Diretorio encontrado: $dir " fi done

1) O for vai percorrer a lista.txt e armazenar cada linha na variável dir

2) Em seguida vamos fazer a requisição com o curl no primeiro argumento ($1) que é o

nosso alvo seguido da nossa variável dir ($dir/) e armazenar a saída na variável respdir 3) Com o if iremos checar se a variável respdir é igual a 200 (código de sucesso)

4) Em caso positivo o programa então exibe a mensagem diretório encontrado e mostra o

conteúdo da variável $dir no momento da execução. Logo em seguida podemos fazer o mesmo procedimento, porém buscando por arquivos. for file in $(cat lista.txt);do respfile=$(curl -s -o /dev/null -w "%{http_code}" $1/$file) if [ $respfile == "200" ] then echo "Arquivo encontrado: $file " fi done fi

*Observe que não existe / após a variável $file pois se houver uma barra após essa variável o programa ira entender que se trata de um diretório e não de um arquivo. No inicio do programa podemos fazer uma validação dos argumentos para que ele informe como utilizar o programa. #!/bin/bash if [ "$1" == "" ] then echo "Desec Security - Ricardo Longatto"

Page 7: o – Módulo 06 – Tarefa 02 - desecsecurity.com · Solução - Tarefa 02 - Módulo 06 - Script para descoberta de arquivos e diretórios Objetivo desse exercício, é criar um

echo "$0 www.alvo.com.br lista.txt" else

Como resultado final teremos um código simplista conforme demonstrado abaixo

É importante que você pense em formas de melhorar o script e torna-lo mais organizado, o exemplo abaixo demonstra o uso do script e uma saída com fontes coloridas.